From acdcbc327f14a063d40c0cecf8abb0baecd474b0 Mon Sep 17 00:00:00 2001 From: yangchen Date: Mon, 25 Sep 2023 17:32:41 +0800 Subject: [PATCH] build: --- www/view/build/asset-manifest.json | 6 +++--- www/view/build/index.html | 2 +- .../build/static/js/{main.04fdcbff.js => main.fe6c2de7.js} | 4 ++-- .../js/{main.04fdcbff.js.map => main.fe6c2de7.js.map} | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename www/view/build/static/js/{main.04fdcbff.js => main.fe6c2de7.js} (80%) rename www/view/build/static/js/{main.04fdcbff.js.map => main.fe6c2de7.js.map} (89%) diff --git a/www/view/build/asset-manifest.json b/www/view/build/asset-manifest.json index 96addf7..20b9688 100644 --- a/www/view/build/asset-manifest.json +++ b/www/view/build/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { - "main.js": "/static/js/main.04fdcbff.js", - "main.js.map": "/static/js/main.04fdcbff.js.map", + "main.js": "/static/js/main.fe6c2de7.js", + "main.js.map": "/static/js/main.fe6c2de7.js.map", "static/css/1.75563d44.chunk.css": "/static/css/1.75563d44.chunk.css", "static/js/1.1be53246.chunk.js": "/static/js/1.1be53246.chunk.js", "static/js/1.1be53246.chunk.js.map": "/static/js/1.1be53246.chunk.js.map", @@ -12,6 +12,6 @@ "entrypoints": [ "static/css/1.75563d44.chunk.css", "static/js/1.1be53246.chunk.js", - "static/js/main.04fdcbff.js" + "static/js/main.fe6c2de7.js" ] } \ No newline at end of file diff --git a/www/view/build/index.html b/www/view/build/index.html index b724626..6c20858 100644 --- a/www/view/build/index.html +++ b/www/view/build/index.html @@ -1,3 +1,3 @@ CodeFever Community
C
o
d
e
F
e
v
e
r
\ No newline at end of file +
C
o
d
e
F
e
v
e
r
\ No newline at end of file diff --git a/www/view/build/static/js/main.04fdcbff.js b/www/view/build/static/js/main.fe6c2de7.js similarity index 80% rename from www/view/build/static/js/main.04fdcbff.js rename to www/view/build/static/js/main.fe6c2de7.js index 383c247..9cc4e9e 100644 --- a/www/view/build/static/js/main.04fdcbff.js +++ b/www/view/build/static/js/main.fe6c2de7.js @@ -1,2 +1,2 @@ -!function(e,t){for(var a in t)e[a]=t[a]}(window,function(e){function t(t){for(var r,s,o=t[0],c=t[1],l=t[2],d=0,u=[];d-1}},name:function(e){return function(t){return e===t.name}},names:function(e){return function(t){return e.some((function(e){return e===t.name}))}},group:function(e){return function(t){return e===t.group.id}},groups:function(e){return function(t){return e.some((function(e){return e===t.group.id}))}},groupMember:function(){return function(e){return e.groupMember}},notGroupMember:function(){return function(e){return!e.groupMember}},deleted:function(){return function(e){return e.deleteFlag}},notDeleted:function(){return function(e){return!e.deleteFlag}},fork:function(e){return function(t){return e===t.forkFrom}},forks:function(e){return function(t){return e.some((function(e){return e===t.forkFrom}))}},nameLikes:function(e){return function(t){return t.name.indexOf(e)>-1}},search:function(e,t){return function(a){return t.reduce((function(t,r){return t||a[r].toLowerCase().indexOf(e.toLowerCase())>-1}),!1)}},creator:function(e){return function(t){return e===t.owner}},creators:function(e){return function(t){return e.some((function(e){return e===t.owner}))}},withPermission:function(e){return function(t){return K(t.role,e)}},withPermissions:function(e){return function(t){return e.some((function(e){return K(t.role,e)}))}},groupName:function(e){return function(t){return e===t.group.name}},target:function(e){return function(t){return e===t.target}}};function G(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return void 0===e?t:e}function H(e){var t=new window.FormData;for(var a in e)if("object"!==typeof e[a]||a.match(/_(SAFE|BINARY)$/))t.append(a.replace(/_(SAFE|BINARY)$/,""),e[a]);else for(var r in e[a])"number"===typeof e[a].length?t.append(a+"[]",e[a][r]):t.append(a+"["+r+"]",e[a][r]);return t}function q(e,t,a){for(var r=0;rNumber.MAX_VALUE)return NaN;if("%"===t)e*=100;else for(;e>=1e3;)e/=1e3,a++;return a?(Math.round(10*e)/10+" "+["","k","M","G","T","P"][a]).trim()+(t||""):(t=t?" "+t:"",Math.round(100*e)/100+(t||""))}function W(){return"/"+[].slice.call(arguments).join("/")}function V(){for(var e={},t=0;t-1}function $(e){var t=e&&e.split(".").pop().toLowerCase();return t&&D.codeFileExtentsions[t]||"markdown"}function Z(e,t){var a=e?e.filter(U.indexOfEmails(t)):[];return a.length?a[0]:{temporary:!0,name:t,email:t,icon:""}}function Y(e){if(e.branches&&e.branches.length){var t=e.branches.filter(U.id(e.repository.defaultBranch));return t[0]?t[0].id:e.branches[0].id}return""}function X(e,t,a){window.setTimeout((function(){var r=window.document.createElement("textarea");r.innerHTML=e,a?a.appendChild(r):window.document.body.appendChild(r),r.select(),document.execCommand("copy"),a?a.removeChild(r):window.document.body.removeChild(r),t&&t()}),0)}function Q(e,t,a,r){r&&(t+="?"+function(e){var t=[];for(var a in e)t.push(a+"="+window.encodeURIComponent(e[a]));return t.join("&")}(r));var i="codefever-app",n=window.localStorage.getItem("lang")||"zh-cn";return a?window.fetch(t,{body:H(a),cache:"no-cache",credentials:"same-origin",headers:{"codefever-end-env":i,"codefever-end-lang":n,Accept:"application/json"},method:e,mode:"same-origin",redirect:"follow",referrer:"client"}):window.fetch(t,{cache:"no-cache",credentials:"same-origin",headers:{"codefever-end-env":i,"codefever-end-lang":n,Accept:"application/json"},method:e,mode:"same-origin",redirect:"follow",referrer:"client"})}var ee={GET:function(e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.requestTime=(new Date).getTime(),Q("GET",e,null,t)},POST:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Q("POST",e,t,a)},PUT:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Q("PUT",e,t,a)},DELETE:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Q("DELETE",e,t,a)},OPTIONS:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Q("OPTIONS",e,t,a)}};var te={getUserInfo:function(){return ee.GET("/api/user/info")},getKeyList:function(){return ee.GET("/api/user/listKey")},addSSHKey:function(e){return ee.POST("/api/user/addSSHKey",e)},removeSSHKey:function(e){return ee.POST("/api/user/removeSSHKey",e)},setUserData:function(e){return ee.POST("/api/user/update",e)},updateBasicInfo:function(e){return ee.POST("/api/user/updateBasicInfo",e)},updatePassword:function(e){return ee.POST("/api/user/updatePassword",e)},changeEmail:function(e){return ee.POST("/api/user/changeEmail",e)},getMFAData:function(){return ee.GET("/api/user/getMFAData")},revokeMFAData:function(){return ee.POST("/api/user/revokeMFAData",{})},updateMFAData:function(e){return ee.POST("/api/user/updateMFAData",e)},getCountriesCode:function(e){return ee.POST("/api/user/getCountriesCode",e)},confirmTel:function(e){return ee.POST("/api/user/confirmTel",e)},uploadAvatar:function(e){return ee.POST("/api/user/uploadAvatar",e)},getCode:function(e){return ee.POST("/api/user/getCode",e)},getEmailCode:function(e){return ee.POST("/api/user/getEmailCode",e)},addCommitEmail:function(e){return ee.POST("/api/user/addCommitEmail",e)},resentCommitEmailCode:function(e){return ee.POST("/api/user/resentCommitEmailCode",e)},deleteCommitEmail:function(e){return ee.POST("/api/user/deleteCommitEmail",e)},validationCommitEmailCode:function(e){return ee.POST("/api/user/validationCommitEmailCode",e)},notifications:function(e){return ee.GET("/api/user/notifications",null,e)},setNotificationRead:function(e){return ee.POST("/api/user/setNotificationRead",e)},deleteNotification:function(e){return ee.POST("/api/user/deleteNotification",e)},userNotificationSetting:function(e){return ee.POST("/api/user/userNotificationSetting",e)},notificationRefused:function(e){return ee.GET("/api/user/notificationRefused",null,e)},setGroupOrRepoNotification:function(e){return ee.POST("/api/user/setGroupOrRepoNotification",e)}};var ae={Event:function(e,t){return{type:e,data:t}},NewNotification:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return{type:"notification.message.add",data:{message:e,level:t,action:a}}},Network:function(e,t){},NewComformation:function(e,t,a,r){return{type:"notification.confirmation.popup",data:{title:e,description:t,accept:a,reject:r}}},consumeComformation:function(){return{type:"notification.confirmation.consume",data:null}},cancelComformation:function(){return{type:"notification.confirmation.close",data:null}},addComformation:function(e,t){return{type:"notification.confirmation.add",data:{key:e,data:t}}},removeComformation:function(e){return{type:"notification.confirmation.remove",data:{key:e}}}};var re=function(e){if("zh-cn"===(window.localStorage.getItem("lang")?window.localStorage.getItem("lang"):navigator.language.toLowerCase()||navigator.userLanguage.toLowerCase())){return{0:"\u64cd\u4f5c\u6210\u529f",256:"\u8bf7\u6c42\u9519\u8bef",257:"\u767b\u5f55\u4fe1\u606f\u5931\u6548, \u9700\u8981\u91cd\u65b0\u767b\u9646",258:null,259:null,260:null,261:"\u8bf7\u6c42\u7684\u5730\u5740\u4e0d\u5b58\u5728",262:"\u6ca1\u6709\u64cd\u4f5c\u6743\u9650",512:"\u8bf7\u6c42\u8d44\u6e90\u4e3a\u7a7a",513:"\u8f93\u5165\u9519\u8bef",514:"\u8f93\u5165\u503c\u8d85\u8fc7\u5141\u8bb8\u8303\u56f4",769:"\u6ca1\u6709\u6b64\u4ed3\u5e93\u7ec4",770:"\u6ca1\u6709\u6b64\u4ed3\u5e93",65280:"\u4e0d\u80fd\u8bc6\u522b\u7684\u54cd\u5e94\u6570\u636e\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5",65281:"\u7f51\u7edc\u94fe\u63a5\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5",65282:"\u8bf7\u6c42\u8fc7\u4e8e\u9891\u7e41\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5"}[e]||null}return{0:"Done",256:"Request Error",257:"Invalid Login",258:null,259:null,260:null,261:"Resource Not Found",262:"Insufficient Permission",512:"Empty Resource",513:"Invalid Input",514:"Input Out of Range",769:"No Such Group",770:"No Such Repository",65280:"Response Data Can Not Be Parsed, Try Later",65281:"Network Error, Try Later",65282:"Too Many Request, Try Later"}[e]||null};function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t&&t({type:"network.connection.error"}),t&&t(ae.NewNotification(re(65281),2)),e}var ne={getJSONData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(t&&t({type:"network.connection.ok"}),!e.ok){if(429===parseInt(e.status))return t&&t(ae.NewNotification(re(65282),1)),{code:1};if(parseInt(e.status)>=500)return t&&t(ae.NewNotification(re(65283),1)),{code:1}}var a={};return(a=e.json().catch((function(e){return t&&t({type:"network.connection.error"}),t&&t(ae.NewNotification(re(65280),2)),{code:1}}))).then((function(e){e&&e.code&&e.code<1024&&(t&&t(ae.NewNotification(re(e.code)||e.message,2)),257===parseInt(e.code)&&window.setTimeout((function(){window.location.href="/user/login"}),3e3),parseInt(e.code))})).catch((function(e){ie(e,t)})),a},getTextData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!e.ok){switch(e.status){case 429:t&&t(ae.NewNotification(re(65282),1));break;case 500:t&&t(ae.NewNotification(re(65283),1));break;default:t&&t(ae.NewNotification("Oooops...",1))}return null}return e.text()},getFile:function(e){},catchError:ie,withEventdispatcher:function(e){return function(t){return function(a){return t(a,e)}}},getHost:function(e){return e&&e.host},getSSHHost:function(e){return e&&e.ssh?e.ssh:"git@"+e.host.replace("http://","").replace("https://","")},makeSlug:function(e){return e.replace(/[^\w]/g,"_")}};var se={stateValidator:function(e,t){return function(){for(var a={},r=!1,i=t.length-1;i>=0;i--){var n=t[i];"string"!==typeof e.state[n.name]||e.state[n.name].match(n.passPattern)||(r|=!0,a[n.name]=n.errorMessage)}return e.setState({error:a}),!r}},codeValidator:function(e,t){return function(a){for(var r={},i=0;i div":{paddingRight:"0px !important"},"& button":{minWidth:e.spacing(18)}}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ce))),pe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).oldData=e.currentUserInfo[e.comData.field],r.state={data:r.oldData,showBtn:!1,error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"data",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:e.comData.label})})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"data",exceptionCode:1029,errorMessage:r.props.intl.formatMessage({id:"message.error.change_S_Fail"},{s:r.props.intl.formatMessage({id:e.comData.label})})}]),r}return Object(d.a)(a,[{key:"saveData",value:function(){var e=this,t=this.props,a=t.intl,r=t.comData,i=this.state.data;if(this.oldData===i||!this.checkInput())return!1;te.setUserData({data:i,field:r.field}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code){if(!e.checkResponse(t.code))return!1}else e.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.updated"}),0)),e.oldData=i,e.props.update()}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.intl,r=t.comData;return Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:a.formatMessage({id:r.label})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.data,error:!!this.state.error.data,helperText:this.state.error.data,placeholder:a.formatMessage({id:"message.error._S_empty"},{s:a.formatMessage({id:r.label})}),onChange:function(t){return e.setState({data:t.target.value})},onFocus:function(){return e.setState({showBtn:!0})}})}),this.state.showBtn&&Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({showBtn:!1})},children:a.formatMessage({id:"label.cancel"})}),"\xa0\xa0",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.saveData()},children:a.formatMessage({id:"label.save"})})]})]})})}}]),a}(i.a.Component),de=Object(R.b)(Object(C.a)((function(e){return{}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(pe))),ue=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={},r.updateAllInfo=r.updateAllInfo.bind(Object(N.a)(r)),r}return Object(d.a)(a,[{key:"updateAllInfo",value:function(e){var t=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||(t.props.dispatchEvent({type:"data.currentUserInfo.update",data:a.data}),"function"===typeof e&&e())}))}},{key:"render",value:function(){var e=this.props,t=e.classes,a=e.currentUserInfo,r=e.intl;return Object(oe.jsxs)("div",{children:[Object(oe.jsx)(w.a,{variant:"subtitle1",gutterBottom:!0,children:r.formatMessage({id:"label.settings"})}),Object(oe.jsxs)(M.a,{className:t.infoWrap,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",gutterBottom:!0,children:r.formatMessage({id:"label.profile"})}),Object(oe.jsx)("div",{className:"mt30"}),"u_key"in a?Object(oe.jsx)(de,{comData:{field:"name",label:"label.userName"},currentUserInfo:a,update:this.updateAllInfo}):"",Object(oe.jsx)("div",{className:"mt30"}),"u_key"in a?Object(oe.jsx)(le,{currentUserInfo:a,update:this.updateAllInfo}):"",Object(oe.jsx)("div",{className:"mt30"}),Object(oe.jsx)(w.a,{variant:"subtitle2",gutterBottom:!0,children:r.formatMessage({id:"label.loginCredential"})}),Object(oe.jsx)("div",{className:"mt30"}),"u_key"in a?Object(oe.jsx)(de,{comData:{field:"company",label:"label.company"},currentUserInfo:a,update:this.updateAllInfo}):"",Object(oe.jsx)("div",{className:"mt30"}),"u_key"in a?Object(oe.jsx)(de,{comData:{field:"job",label:"label.job"},currentUserInfo:a,update:this.updateAllInfo}):""]})]})}}]),a}(i.a.Component),me=Object(R.b)(Object(C.a)((function(e){return{infoWrap:{padding:"20px 30px 60px 30px",marginTop:20}}}))(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ue))),he=a(423),ge=a(458),be=a(460),fe=a(16),je=a(4),ve=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"showDoc",value:function(){var e=this.props,t=e.doc,a="cn";"en-us"===e.currentLanguage&&(a="en"),window.open("/doc/"+a+t,"_blank")}},{key:"render",value:function(){var e=this,t=this.props,a=t.tooltip,r=t.title,i=t.type,n=t.intl;return"button"===i?Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",onClick:function(){return e.showDoc()},children:[Object(oe.jsx)(fe.a,{icon:je.s}),"\xa0\xa0",r||n.formatMessage({id:"label.learnMore"})]}):"icon"===i?Object(oe.jsx)(be.a,{title:a||n.formatMessage({id:"label.learnMore"}),placement:"top",children:Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:Object(oe.jsx)("a",{style:{cursor:"pointer","&:hover":{textDecoration:"underline"}},onClick:function(){return e.showDoc()},children:Object(oe.jsx)(fe.a,{icon:je.s})})})}):Object(oe.jsx)(be.a,{title:a||n.formatMessage({id:"label.learnMore"}),placement:"top",children:Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:Object(oe.jsxs)("a",{style:{cursor:"pointer","&:hover":{textDecoration:"underline"}},onClick:function(){return e.showDoc()},children:[r||n.formatMessage({id:"label.learnMore"}),"\xa0",Object(oe.jsx)(fe.a,{icon:je.s})]})})})}}]),a}(i.a.Component),Oe=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{progress:{color:e.palette.info.main}}}))(Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}),(function(e,t){return{}}))(ve)))),ye=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.item,a=e.onDelete,r=e.classes;return Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",children:[Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"body1",className:r.line,children:[t.name," \xa0"]}),Object(oe.jsx)(w.a,{variant:"body2",className:r.line2,children:t.hash.replace(/([a-f0-9]{2})/gi,"$1:").slice(0,-1)})]}),Object(oe.jsx)(k.a,{item:!0,className:r.center,children:Object(oe.jsx)(_.a,{onClick:function(e){a&&a(t.id)},children:Object(oe.jsx)(fe.a,{icon:je.H,className:r.icon})})})]})}}]),a}(i.a.Component),xe=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{line:{marginTop:e.spacing(1),marginBottom:e.spacing(.5)},line2:{marginBottom:e.spacing(1)},center:{display:"flex",alignItems:"center"},icon:{color:e.palette.text.light}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ye))))),Se=a(418),Ce=a(422),Ne=a(421),Re=a(419),Me=a(420),we=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.data,a=e.intl,r=t||[[],[]];return r=J(a.formatMessage,r),Object(oe.jsxs)(Se.a,{children:[Object(oe.jsx)(Re.a,{children:Object(oe.jsx)(Me.a,{children:r[1].map((function(e,t){return Object(oe.jsx)(Ne.a,{style:{width:r[0][t]},children:Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:e})},t)}))})}),Object(oe.jsx)(Ce.a,{children:r.map((function(e,t){return t>1?Object(oe.jsx)(Me.a,{children:e.map((function(e,t){return Object(oe.jsx)(Ne.a,{children:e},t)}))},t):null}))})]})}}]),a}(r.Component),ke=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(we))))),_e=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,keyList:[],name:"",key:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"key",passPattern:/^.+$/m,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.SSHKey"})})},{name:"key",passPattern:/^((?:ssh|ecdsa)-[\w\d]+)\s+(\S)+(?:\s+(\S+))?\s*$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.SSHKey"})})},{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.name"})})},{name:"name",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"key",exceptionCode:1037,errorMessage:r.props.intl.formatMessage({id:"message.error.sshKeyDuplicate"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData()}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"addKey",value:function(){var e=this;if(!this.checkInput())return!1;var t=this.props,a=t.intl,r=t.dispatchEvent,i=this.state,n=i.key,s=i.name,o=n.match(/^((?:ssh|ecdsa)-[\w\d]+)\s+(\S+)(?:\s+(\S+))?\s*$/);return this.setState({pending:!0}),te.addSSHKey({name:s,key:o[2]}).then(ne.withEventdispatcher(r)(ne.getJSONData)).then((function(t){if(e.setState({pending:!1}),t.code){if(!e.checkResponse(t.code))return!1;t.code>1024&&r(ae.NewNotification(a.formatMessage({id:"message.error.AddFail"}),2))}else r(ae.NewNotification(a.formatMessage({id:"message.Added"}),0)),e.setState({name:"",key:""}),e.getData()})),!0}},{key:"removeKey",value:function(e){var t=this,a=this.props,r=a.intl,i=a.dispatchEvent;te.removeSSHKey({id:e}).then(ne.withEventdispatcher(i)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&i(ae.NewNotification(r.formatMessage({id:"message.error.removeFail"}),2)):(i(ae.NewNotification(r.formatMessage({id:"message.removed"}),0)),t.getData())}))}},{key:"getData",value:function(){var e=this;te.getKeyList().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.setState({keyList:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.classes,i=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:r.header,children:i.formatMessage({id:"label.SSHKey_pl"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{children:a.id?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[i.formatMessage({id:"label.addSSHKey"})," \xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/common/ssh_key.md"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:7,value:this.state.key,error:!!this.state.error.key,helperText:this.state.error.key,placeholder:i.formatMessage({id:"message.inputSSHKEYContent"}),onChange:function(t){var a=t.target.value,r=a.match(/^((?:ssh|ecdsa)-[\w\d]+)\s+(\S)+(?:\s+(\S+))?\s*$/),i={key:a,name:""};r&&r[3]&&(i.name=r[3]),e.setState(i)}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:i.formatMessage({id:"label.name"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){return e.setState({name:t.target.value})},placeholder:i.formatMessage({id:"message.inputSSHKEYName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{color:"primary",variant:"contained",disableElevation:!0,onClick:function(t){return e.addKey()},disabled:this.state.pending,className:r.btn,children:i.formatMessage({id:"label.addSSHKey"})})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:3}),Object(oe.jsx)(k.a,{item:!0,xs:7,className:r.table,children:Object(oe.jsx)(ke,{data:[["100%"],["label.SSHKeyManage"]].concat(Object(T.a)(this.state.keyList.filter(U.notDeleted()).map((function(t,a){return[Object(oe.jsx)(xe,{item:t,onDelete:function(t){return e.removeKey(t)}},a)]}))))})}),Object(oe.jsx)(k.a,{item:!0,xs:3})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})})]})}}]),a}(i.a.Component),Ee=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},paper:{padding:e.spacing(2)},btn:{margin:e.spacing(2)+"px 0px"},table:{"& th, & td":{textAlign:"left !important"}}}}))(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(_e))),Te=a(17),Ae=a(7),De=["icon","className","label","badge","intl","classes"],Ie=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.icon,a=e.className,r=e.label,i=e.badge,n=e.intl,s=e.classes,o=Object(Ae.a)(e,De),c=Object(oe.jsxs)(_.a,Object(y.a)(Object(y.a)({},o),{},{className:[s.button,a].join(" "),children:[Object(oe.jsx)(fe.a,{icon:t,className:s.icon}),i>0&&Object(oe.jsx)("div",{align:"center",className:s.badge,children:i>99?"":i})]}));return r?Object(oe.jsx)(be.a,{title:n.formatMessage({id:r}),placement:"top",disableFocusListener:!0,children:c}):c}}]),a}(i.a.Component),Pe=Object(R.b)(Object(C.a)((function(e){return{button:{minWidth:e.spacing(3)+"px !important",padding:"7px 8px !important"},icon:{width:"18px !important",height:"18px !important"},badge:{right:0,top:"-5px",zIndex:"1",fontSize:"12px",position:"absolute",borderRadius:"10px",background:"#FF3F35",height:e.spacing(2),minWidth:e.spacing(2),lineHeight:e.spacing(2)+"px",color:e.palette.primary.contrastText,border:"2px solid "+e.palette.background.light}}}))(Ie)),Fe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,primaryEmail:e.currentUserInfo.id?e.currentUserInfo.email:"",emails:e.currentUserInfo.id?e.currentUserInfo.emails:null,email:"",error:{},validationEmail:null,code:"",codeDisabled:[],count:{}};var i=e.intl;return r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"email",passPattern:/^.+$/,errorMessage:i.formatMessage({id:"message.error._S_empty"},{s:i.formatMessage({id:"label.email"})})},{name:"email",passPattern:/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,errorMessage:i.formatMessage({id:"message.error._S_invalid"},{s:i.formatMessage({id:"label.email"})})}]),r.codeCheckInput=se.stateValidator(Object(N.a)(r),[{name:"code",passPattern:/^\d+$/,errorMessage:i.formatMessage({id:"message.error._S_empty"},{s:i.formatMessage({id:"label.emailCode"})})},{name:"code",passPattern:/^\d{6}$/,errorMessage:i.formatMessage({id:"message.error._S_invalid"},{s:i.formatMessage({id:"label.emailCode"})})}]),r.codeCheckResponse=se.codeValidator(Object(N.a)(r),[{name:"code",exceptionCode:1036,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:i.formatMessage({id:"label.emailCode"})})}]),r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(e.currentUserInfo)===JSON.stringify(this.props.currentUserInfo)||(this.setState({primaryEmail:e.currentUserInfo.email,emails:e.currentUserInfo.emails}),!1)}},{key:"reloadUserData",value:function(e){var t=this;e&&this.cancelForm(),te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.props.dispatchEvent({type:"data.currentUserInfo.update",data:e.data})}))}},{key:"addCommitEmail",value:function(){var e=this,t=this.state,a=t.emails,r=t.email,i=this.props.intl;return!(!a||!this.checkInput())&&(a.filter(U.email(r)).length>0?(this.setState({error:{email:i.formatMessage({id:"message.error._S_duplicate"},{s:i.formatMessage({id:"label.email"})})}}),!1):(this.setState({pending:!0}),void te.addCommitEmail({email:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({pending:!1}),t.code?e.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.error.AddFail"}),2)):(e.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.emailCodeHasSendNewEmail"}),0)),e.createValidationForm(r),e.reloadUserData(!1))}))))}},{key:"resentCommitEmailCode",value:function(e){var t=this,a=this.props.intl,r=this.state.codeDisabled;if("undefined"===typeof r[e]&&(r[e]=!1),r[e])return!1;this.cancelForm(),te.resentCommitEmailCode({email:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(r){r.code?t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.error.getEmailCodeFail"}),2)):(t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.emailCodeHasSendNewEmail"}),0)),t.countDown(e))}))}},{key:"countDown",value:function(e){var t=this,a=this.state,r=a.count,i=a.codeDisabled;"undefined"===typeof r[e]&&(r[e]=120),r[e]?(this.setState({codeDisabled:Object(y.a)(Object(y.a)({},i),{},Object(Te.a)({},e,!0)),count:Object(y.a)(Object(y.a)({},r),{},Object(Te.a)({},e,--r[e]))}),window.setTimeout((function(){return t.countDown(e)}),1e3)):this.setState({codeDisabled:Object(y.a)(Object(y.a)({},i),{},Object(Te.a)({},e,!1)),count:Object(y.a)(Object(y.a)({},r),{},Object(Te.a)({},e,120))})}},{key:"validationCommitEmailCode",value:function(e){var t=this,a=this.props.intl,r=this.state.code;if(!e||!this.codeCheckInput())return!1;this.setState({pending:!0}),te.validationCommitEmailCode({id:e.id,email:e.email,code:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(t.setState({pending:!1}),e.code){if(!t.codeCheckResponse(e.code))return!1;t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.error.verifyFail"}),2))}else t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.verified"}),0)),t.reloadUserData(!0)}))}},{key:"deleteConfirm",value:function(e,t){var a=this,r=this.props.intl;this.cancelForm(),this.props.dispatchEvent(ae.addComformation("delete_my_email",{title:r.formatMessage({id:"message.confirmDelete"},{s:r.formatMessage({id:"label.email"})+" '"+t+"' "}),description:"",reject:function(){return!0},accept:function(){return a.deleteCommitEmail(e)}}))}},{key:"deleteCommitEmail",value:function(e){var t=this,a=this.props.intl;if(!e)return!1;this.setState({pending:!0}),te.deleteCommitEmail({id:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),t.props.dispatchEvent(ae.cancelComformation()),e.code?t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.error.deleteFail"}),2)):(t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.deleted"}),0)),t.reloadUserData(!0))}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,n=this.state,s=n.primaryEmail,o=n.emails,c=n.validationEmail,l=n.codeDisabled,p=n.count,d=[];return!!o&&(o.map((function(t,n){return"create"===t?d.push(e.createForm()):c===t.email?d.push(e.validationForm(t)):d.push([Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.email}),t.email===s?Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:r.formatMessage({id:"label.primaryEmail"})}):t.isCheck?Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:r.formatMessage({id:"message.contactedEmail"})}):Object(oe.jsxs)(w.a,{variant:"body2",component:"div",children:[r.formatMessage({id:"message.shouldValidation"}),Object(oe.jsxs)("a",{href:"#",disabled:l[t.email],className:[a.btn,l[t.email]?a.disabled:""].join(" "),onClick:function(a){return e.resentCommitEmailCode(t.email)},children:[r.formatMessage({id:"message.resendEmail"}),"?",l[t.email]&&"("+p[t.email]+")"]})]}),t.email!==s&&Object(oe.jsxs)(i.a.Fragment,{children:[!t.isCheck&&Object(oe.jsx)(Pe,{label:"message.shouldValidation",className:a.icon,onClick:function(a){return e.createValidationForm(t.email)},icon:je.m}),Object(oe.jsx)(Pe,{label:"label.delete",className:[a.icon,a.btn].join(" "),onClick:function(a){return e.deleteConfirm(t.id,t.email)},icon:je.H})]})]),!0})),[["30%","auto","auto"],["label.contactEmail","label.status",""]].concat(d))}},{key:"createForm",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl;return[Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.email,placeholder:r.formatMessage({id:"message._S_empty"},{s:r.formatMessage({id:"label.email"})}),error:!!this.state.error.email,helperText:this.state.error.email,onChange:function(t){return e.setState({email:t.target.value})}}),"",Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.ok",icon:je.e,onClick:function(t){return e.addCommitEmail()},className:a.ok}),Object(oe.jsx)(Pe,{label:"label.cancel",icon:je.g,onClick:function(t){return e.cancelForm()},className:a.cancel})]})]}},{key:"validationForm",value:function(e){var t=this,a=this.props,r=a.classes,n=a.intl;return[Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.email}),Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.code,placeholder:n.formatMessage({id:"message._S_empty"},{s:n.formatMessage({id:"label.emailCode"})}),error:!!this.state.error.code,helperText:this.state.error.code,onChange:function(e){return t.setState({code:e.target.value})}}),Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.ok",icon:je.e,onClick:function(a){return t.validationCommitEmailCode(e)},className:r.ok}),Object(oe.jsx)(Pe,{label:"label.cancel",icon:je.g,onClick:function(e){return t.cancelForm()},className:r.cancel})]})]}},{key:"cancelForm",value:function(){var e=this.state.emails;"create"===e[e.length-1]&&(e=e.slice(0,e.length-1)),this.setState({emails:e,email:"",error:{},validationEmail:null,code:""})}},{key:"createCommitEmailForm",value:function(){var e=this.state.emails;"create"!==e[e.length-1]&&(this.cancelForm(),this.setState({emails:[].concat(Object(T.a)(e),["create"])}))}},{key:"createValidationForm",value:function(e){this.cancelForm(),this.setState({validationEmail:e})}},{key:"render",value:function(){var e=this,t=this.props,a=t.history,r=t.classes,i=t.intl,n=this.state,s=n.pending,o=n.primaryEmail,c=n.emails;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:r.header,children:i.formatMessage({id:"label.emailManage"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.title,children:i.formatMessage({id:"message.primaryEmail"})}),Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:i.formatMessage({id:"message.primaryEmailDescription"})}),Object(oe.jsxs)(k.a,{container:!0,className:r.content,children:[Object(oe.jsx)(k.a,{item:!0,xs:3,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:o})}),Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(e){return a.push(W("settings","profile"))},children:i.formatMessage({id:"message.updatePrimaryEmail"})})})]})]}),Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:6,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.title,children:i.formatMessage({id:"message.myEmail"})}),Object(oe.jsxs)(w.a,{variant:"body2",component:"div",children:[i.formatMessage({id:"message.myEmailDescription"})," \xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/common/multiple_email.md"})]})]}),Object(oe.jsx)(k.a,{item:!0,xs:2,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:r.create,disabled:s,onClick:function(t){return e.createCommitEmailForm()},children:i.formatMessage({id:"message.addEmail"})})}),Object(oe.jsx)(k.a,{item:!0,xs:8,className:r.table,children:null!==c?Object(oe.jsx)(ke,{data:this.getTableData()}):Object(oe.jsx)(k.a,{container:!0,className:r.loading,children:Object(oe.jsx)(he.a,{})})})]})]})}}]),a}(i.a.Component),Le=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},title:{lineHeight:e.spacing(3)+"px",paddingBottom:e.spacing(2)},content:{paddingTop:e.spacing(3),paddingBottom:e.spacing(5),borderBottom:"1px solid "+e.palette.border,marginBottom:e.spacing(3)},create:{marginTop:e.spacing(1)},size:{fontSize:"12px"},btn:{textDecoration:"none !important",marginLeft:e.spacing(3)},icon:{color:e.palette.text.light},disabled:{opacity:.5,cursor:"not-allowed"},ok:{"& svg":{color:e.palette.success.main+" !important"}},cancel:{marginLeft:e.spacing(3),"& svg":{width:"14px !important",height:"14px !important",padding:"2px",color:e.palette.error.main+" !important"}},table:{marginTop:e.spacing(3),"& tbody tr":{"&:hover":{background:e.palette.background.light+" !important"}},"& td":{height:e.spacing(6)+"px","& > div":{verticalAlign:"middle"}}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Fe)))),Be=a(461),Ue=a(173),Ge=a.n(Ue),He=a(36),qe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={showImgIcon:!1},r.uploadFile=r.uploadFile.bind(Object(N.a)(r)),r.instanceID="",r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.instanceID=Math.floor(1e6*Math.random())}},{key:"uploadFile",value:function(e){var t=this.props,a=t.appendData,r=t.name,i=t.dataProvider,n=e.target.files[0],s=Object(y.a)({},a);if(s[r+"_BINARY"]=n,!n)return!1;i(s).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then(this.props.onUpdate)}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.src,n=t.type;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)("label",{htmlFor:"avater-uploader-"+this.instanceID,className:a.avatarLabel,onMouseEnter:function(){e.setState({showImgIcon:!0})},onMouseLeave:function(){e.setState({showImgIcon:!1})},children:["avatar"===n?Object(oe.jsx)(Be.a,{variant:"circular",src:r,className:Ge()(a.circleUserInfoAvatar)}):Object(oe.jsx)(Be.a,{variant:"rounded",src:r.length>1?r:"",className:Ge()(a.userInfoAvatar),children:1===r.length?r:""}),this.state.showImgIcon&&Object(oe.jsx)(k.a,{className:[a.iconBox,"avatar"===n?a.iconBoxCircle:a.iconBoxRounded].join(" "),children:Object(oe.jsx)(fe.a,{icon:He.h,className:a.editIcon})})]}),Object(oe.jsx)("input",{accept:"image/*",className:a.uploadInput,id:"avater-uploader-"+this.instanceID,type:"file",onChange:this.uploadFile})]})}}]),a}(i.a.Component),ze=Object(R.b)(Object(C.a)((function(e){return{avatarLabel:{cursor:"pointer",position:"relative",display:"inline-block",borderRadius:e.spacing(1)+"px"},iconBox:{width:"100%",position:"absolute",left:"0",bottom:"0",background:"#2F354D",opacity:.3},iconBoxRounded:{height:"40%",borderBottomLeftRadius:e.spacing(1)+"px",borderBottomRightRadius:e.spacing(1)+"px"},iconBoxCircle:{height:"100%",borderRadius:"50%"},editIcon:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontSize:e.spacing(2)+"px",color:"#fff"},uploadInput:{display:"none !important"},userInfoAvatar:{width:e.spacing(7),height:e.spacing(7)},circleUserInfoAvatar:{width:e.spacing(10),height:e.spacing(10)}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(qe))),We=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),(r=t.call(this,e)).updateUserInfo=r.updateUserInfo.bind(Object(N.a)(r)),r.mountedFlag=!1;var i=r.props.currentUserInfo;return r.state={name:i.name||"",email:i.email||"",team:i.team||"",role:i.role||"",oldPassword:"",newPassword:"",againPassword:"",mfaMode:0,mfaQRCodeData:"",mfaSecret:"",mfaCode1:"",mfaCode2:"",error:{}},r.checkBaseInfo=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^\S+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.userName"})})},{name:"name",passPattern:/^.{2,50}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:2,n2:50})},{name:"email",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",passPattern:/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"team",passPattern:/^.{0,50}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:50})},{name:"role",passPattern:/^.{0,50}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:50})}]),r.checkBaseResponse=se.codeValidator(Object(N.a)(r),[{name:"data",exceptionCode:1029,errorMessage:r.props.intl.formatMessage({id:"message.error.updateFail"})}]),r.checkPWDResponse=se.codeValidator(Object(N.a)(r),[{name:"oldPassword",exceptionCode:1040,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.password"})})}]),r.checkMFAInput=se.stateValidator(Object(N.a)(r),[{name:"mfaCode1",passPattern:/^\d{6}$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.mfaCode"})})},{name:"mfaCode2",passPattern:/^\d{6}$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.mfaCode"})})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"mfaCode1",exceptionCode:1041,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.mfaCode"})})},{name:"mfaCode2",exceptionCode:1042,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.mfaCode"})})}]),r}return Object(d.a)(a,[{key:"checkPWDInput",value:function(){var e=[{name:"oldPassword",passPattern:/^.{6,}$/,errorMessage:this.props.intl.formatMessage({id:"message.error._S_empty"},{s:this.props.intl.formatMessage({id:"label.oldPassword"})})},{name:"newPassword",passPattern:/^.{6,50}$/,errorMessage:this.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:6,n2:50})},{name:"againPassword",passPattern:new RegExp("^"+this.state.newPassword+"$"),errorMessage:this.props.intl.formatMessage({id:"message.error.inputNotSame"})}];return se.stateValidator(this,e)()}},{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.updateUserInfo()}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentUserInfo.name===e.currentUserInfo.name&&this.props.currentUserInfo.email===e.currentUserInfo.email&&this.props.currentUserInfo.team===e.currentUserInfo.team&&this.props.currentUserInfo.role===e.currentUserInfo.role||this.setState({name:e.currentUserInfo.name||"",email:e.currentUserInfo.email||"",team:e.currentUserInfo.team||"",role:e.currentUserInfo.role||""}),!0}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"avatarUploaded",value:function(e){e.code||(this.props.dispatchEvent(ae.NewNotification(this.props.intl.formatMessage({id:"message.updated"}),0)),this.updateUserInfo())}},{key:"updateUserInfo",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data}),t.data.mfaEnabled||e.prepareMFADeviceSetup())}))}},{key:"updateBasicInfo",value:function(){var e=this;if(!this.checkBaseInfo())return!1;te.updateBasicInfo({name:this.state.name,email:this.state.email,team:this.state.team,role:this.state.role}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code){if(!e.checkBaseResponse(t.code))return!1}else e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.updateUserInfo()}))}},{key:"updatePassword",value:function(){var e=this,t=this.state,a=t.oldPassword,r=t.newPassword;if(!this.checkPWDInput())return!1;te.updatePassword({current:a,new:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code){if(!e.checkPWDResponse(t.code))return!1;t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2))}else e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.updateUserInfo(),e.clearPWD()}))}},{key:"clearPWD",value:function(){this.setState({oldPassword:"",newPassword:"",againPassword:""})}},{key:"prepareMFADeviceSetup",value:function(){var e=this;this.setState({MFAPending:!0}),te.getMFAData().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({MFAPending:!1}),t&&!t.code&&t.data&&e.setState({mfaMode:1,mfaQRCodeData:t.data.image,mfaSecret:t.data.secret,mfaCode1:"",mfaCode2:""})}))}},{key:"revokeMFADevice",value:function(){var e=this;this.setState({MFAPending:!0}),te.revokeMFAData().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({MFAPending:!1}),t&&!t.code&&t.data&&(e.updateUserInfo(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.removed"}),0)))}))}},{key:"updateMFADevice",value:function(){var e=this;return!!this.checkMFAInput()&&(this.state.mfaCode1===this.state.mfaCode2?(this.setState({error:Object(y.a)(Object(y.a)({},this.state.error),{},{mfaCode2:this.props.intl.formatMessage({id:"message.error.inputSame"})})}),!1):(this.setState({MFAPending:!0}),void te.updateMFAData({secret:this.state.mfaSecret,code1:this.state.mfaCode1,code2:this.state.mfaCode2}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(e.setState({MFAPending:!1}),t.code){if(!e.checkResponse(t.code))return!1;t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2))}else e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.setState({mfaMode:0,mfaSecret:"",mfaCode1:"",mfaCode2:""}),e.updateUserInfo()}))))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:r.paper,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:[r.header,r.noMarginTop].join(" "),children:n.formatMessage({id:"menu.profile"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,sm:5,children:[Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginBottom,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.userName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.userName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value;e.setState({name:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.email"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.email"})}),value:this.state.email,error:!!this.state.error.email,helperText:this.state.error.email,onChange:function(t){var a=t.target.value;e.setState({email:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.team"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.team"})}),value:this.state.team,error:!!this.state.error.team,helperText:this.state.error.team,onChange:function(t){var a=t.target.value;e.setState({team:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.role"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.role"})}),value:this.state.role,error:!!this.state.error.role,helperText:this.state.error.role,onChange:function(t){var a=t.target.value;e.setState({role:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginTop,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.updateBasicInfo()},children:n.formatMessage({id:"label.save"})})})]}),Object(oe.jsxs)(k.a,{item:!0,xs:12,sm:7,children:[Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginBottom,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.userAvatar"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(ze,{name:"avatar",type:"avatar",appendData:{},src:D.HOSTS.PGYER_AVATAR_HOST+a.icon,onUpdate:function(t){return e.avatarUploaded(t)},dataProvider:te.uploadAvatar})})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:r.header,children:n.formatMessage({id:"label.security"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,children:Object(oe.jsxs)(k.a,{item:!0,xs:12,sm:5,children:[Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginBottom,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.oldPassword"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.oldPassword"})}),value:this.state.oldPassword,error:!!this.state.error.oldPassword,helperText:this.state.error.oldPassword,onChange:function(t){var a=t.target.value;e.setState({oldPassword:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.newPassword"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.newPassword"})}),value:this.state.newPassword,error:!!this.state.error.newPassword,helperText:this.state.error.newPassword,onChange:function(t){var a=t.target.value;e.setState({newPassword:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.newPasswordConfirm"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_retype"},{s:n.formatMessage({id:"label.newPassword"})}),value:this.state.againPassword,error:!!this.state.error.againPassword,helperText:this.state.error.againPassword,onChange:function(t){var a=t.target.value;e.setState({againPassword:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginTop,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.updatePassword()},children:n.formatMessage({id:"label.save"})})})]})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:r.header,children:n.formatMessage({id:"label.twoFactorAuthentication"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,sm:8}),0===this.state.mfaMode&&a.mfaEnabled&&Object(oe.jsxs)(k.a,{item:!0,xs:5,children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",className:r.btn,disabled:this.state.MFAPending,onClick:function(){return e.prepareMFADeviceSetup()},children:n.formatMessage({id:"label.changeMFADevice"})}),"\xa0\xa0",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.MFAPending,onClick:function(){return e.revokeMFADevice()},children:n.formatMessage({id:"label.removeMFADevice"})})]}),(1===this.state.mfaMode||!a.mfaEnabled)&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(w.a,{variant:"body2",component:"div",gutterBottom:!0,children:n.formatMessage({id:"message.mfaGuide"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:this.state.MFAPending?Object(oe.jsx)(he.a,{}):Object(oe.jsx)("img",{width:150,height:150,src:this.state.mfaQRCodeData})}),Object(oe.jsx)(k.a,{item:!0,xs:12,sm:7,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.mfaCode1,error:!!this.state.error.mfaCode1,helperText:this.state.error.mfaCode1,placeholder:n.formatMessage({id:"label.mfaCode1"}),onChange:function(t){return e.setState({mfaCode1:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,sm:7,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.mfaCode2,error:!!this.state.error.mfaCode2,helperText:this.state.error.mfaCode2,placeholder:n.formatMessage({id:"label.mfaCode2"}),onChange:function(t){return e.setState({mfaCode2:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.MFAPending,onClick:function(){return e.updateMFADevice()},children:n.formatMessage({id:"label.save"})})})]})]})}}]),a}(i.a.Component),Ve=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",borderBottom:"1px solid "+e.palette.border,fontSize:"18px",marginTop:e.spacing(4)},mainMarginTop:{marginTop:e.spacing(3)},mainMarginBottom:{marginBottom:e.spacing(1)},noMarginTop:{marginTop:"unset"},title:{marginTop:e.spacing(3),marginBottom:e.spacing(1)},pl:{paddingLeft:e.spacing(4)+"px !important"},btn:{color:e.palette.primary.main,cursor:"pointer"},paper:{paddingBottom:e.spacing(10)},fold:{fontWeight:500},flexRow:{display:"flex",flexFlow:"row nowrap",justifyContent:"flex-start",alignItems:"center"},flexRowCenter:{display:"flex",flexFlow:"row nowrap",alignItems:"center",padding:e.spacing(1.5)+"px "+e.spacing(1)+"px",marginLeft:e.spacing(4)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(We)))),Je=a(424),Ke=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.theme,r=e.icon,i=e.text,n=e.color,s=e.background,o={containedInfo:{main:a.palette.primary.contrastText,lighter:a.palette.secondary.main}},c=void 0===s||s,l=n?(a.palette[n]?a.palette:o)[n]:a.palette.primary;return r?Object(oe.jsxs)("span",{className:[t.root,t.iconPadding].join(" "),style:{backgroundColor:c?l.lighter:"",color:l.main},children:[Object(oe.jsx)("div",{className:t.icon,children:Object(oe.jsx)(fe.a,{icon:r})}),i]}):Object(oe.jsx)("span",{className:t.root,style:{backgroundColor:c?l.lighter:"",color:l.main},children:i})}}]),a}(i.a.Component),$e=Object(ge.a)(Object(C.a)((function(e){return{root:{padding:e.spacing(.5)+"px",lineHeight:1.5,fontSize:e.spacing(1.5)+"px",fontWeight:"normal",display:"inline",borderRadius:e.spacing(.5)},iconPadding:{paddingLeft:e.spacing(1)+"px"},icon:{width:0,left:"-14px",position:"relative",display:"inline-block",verticalAlign:"middle"}}}))(Ke)),Ze=["classes"],Ye=Object(C.a)((function(e){return{root:{padding:0,width:e.spacing(6),height:e.spacing(3),margin:e.spacing(1),marginRight:e.spacing(4.5)},disabled:{"& + $track":{cursor:"not-allowed !important"}},switchBase:{padding:1,"&$checked":{transform:"translateX(24px)",color:e.palette.primary.contrastText,"& + $track":{opacity:1,border:"none"}},"&$focusVisible $thumb":{color:e.palette.primary.light,border:"6px solid "+e.palette.border}},thumb:{width:"22px",height:"22px"},track:{opacity:1,borderRadius:"12px",boxSizing:"border-box",backgroundColor:e.palette.text.lighter,transition:e.transitions.create(["background-color","border"])},checked:{},focusVisible:{}}}))((function(e){var t=e.classes,a=Object(Ae.a)(e,Ze);return Object(oe.jsx)(Je.a,Object(y.a)({color:"primary",focusVisibleClassName:t.focusVisible,disableRipple:!0,classes:{root:t.root,disabled:t.disabled,switchBase:t.switchBase,thumb:t.thumb,track:t.track,checked:t.checked}},a))})),Xe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,refusedList:null,openSet:{},groupFold:{},otherRepository:!1},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData()}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.props.currentUserInfo)===JSON.stringify(e.currentUserInfo)&&JSON.stringify(this.props.groupList)===JSON.stringify(e.groupList)&&JSON.stringify(this.props.repositoryList)===JSON.stringify(e.repositoryList)&&JSON.stringify(this.state.refusedList)===JSON.stringify(t.refusedList)||(this.changeOpenSet(e,t),!1)}},{key:"changeOpenSet",value:function(e,t){var a=this,r=e.currentUserInfo,i=e.groupList,n=e.repositoryList,s=t.refusedList,o=t.openSet,c=!1;r.id&&(o[D.notificationStatus.mr]=this.isUserNotificationOpen(D.notificationStatus.mr,r.notification),o[D.notificationStatus.email]=this.isUserNotificationOpen(D.notificationStatus.email,r.notification)),s&&(n.length&&n.map((function(e,r){return o[e.id]=a.isTargetOpen(t,e.id),i.length&&0===i.filter(U.id(e.group.id)).length&&(c=!0),!0})),i.length&&i.map((function(e,r){if(o[e.id]=a.isTargetOpen(t,e.id),o[e.id]&&n.length){var i=n.filter(U.group(e.id));if(i.length){var s=i.filter((function(e,t){return!o[e.id]||e.role>e-1&1)}},{key:"isTargetOpen",value:function(e,t){return!e.refusedList.filter(U.target(t)).length}},{key:"getData",value:function(){var e=this;this.setState({pending:!0}),te.notificationRefused({}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({pending:!1,refusedList:t.code?[]:t.data})}))}},{key:"reloadUserInfo",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data})}))}},{key:"updated",value:function(e,t,a){var r=this.props,i=r.dispatchEvent,n=r.intl;this.setState({pending:!1}),t.code?i(ae.NewNotification(n.formatMessage({id:"message.error.updateFail"}),2)):a?this.reloadUserInfo():this.getData()}},{key:"userNotificationSetting",value:function(e){var t=this,a=this.state,r=a.pending,i=a.openSet;if(r||!e)return!1;var n=i[e]=!i[e];this.setState({pending:!0,openSet:i}),te.userNotificationSetting({offset:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.updated(n,e,!0)}))}},{key:"setGroupOrRepoNotification",value:function(e,t){var a=this,r=this.state,i=r.pending,n=r.openSet;if(i||!t||!e)return!1;var s=n[e]=!n[e];this.setState({pending:!0,openSet:n}),te.setGroupOrRepoNotification({type:t,target:e,open:s?1:0}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){a.updated(s,e,!1)}))}},{key:"tableFold",value:function(e){var t=this.state.groupFold;t[e]=!t[e],this.setState({groupFold:t})}},{key:"getTableRow",value:function(e,t){var a=this,r=this.props,i=r.classes,n=r.intl,s=this.state,o=s.openSet,c=s.groupFold,l=!!e.group,p=e.role0&&n.length>0&&r.map((function(t,a){var r=[["auto","auto","50px"],e.getTableRow(t,"")];return n.filter(U.group(t.id)).map((function(t,a){return r.push(e.getTableRow(t,s.span)),!0})),Object(oe.jsx)(k.a,{item:!0,xs:7,className:[s.title,d[t.id]||2===r.length?s.tableFold:""].join(" "),children:Object(oe.jsx)(ke,{data:r})},a)})),u&&Object(oe.jsx)(k.a,{item:!0,xs:7,className:[s.title,s.otherRepository].join(" "),children:Object(oe.jsx)(ke,{data:this.getRepositoryTable()})})]}):Object(oe.jsx)(k.a,{container:!0,className:s.loading,children:Object(oe.jsx)(he.a,{})})]})}}]),a}(i.a.Component),Qe=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},content:{paddingBottom:e.spacing(4),marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border},subtitle:{marginBottom:"14px"},desc:{fontSize:"14px"},title:{marginBottom:e.spacing(3),"&:last-child":{marginBottom:0},"& table tr th:nth-of-type(2), & table tr td:nth-of-type(2)":{textAlign:"right"}},tableFold:{"& table th":{border:"0px"},"& table tbody":{display:"none"}},switch:{display:"flex",justifyContent:"flex-end",alignItems:"center",paddingRight:e.spacing(12.5)},icon:{"& svg":{height:"12px !important",color:e.palette.text.light,transform:"rotate(180deg)",transition:"transform .3s"}},span:{marginLeft:e.spacing(2)},fold:{"& svg":{transform:"rotate(0deg)"}},otherRepository:{"& table thead":{display:"none"},"& table tr td:last-child":{width:"50px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,repositoryList:e.DataStore.repositoryList,groupList:e.DataStore.groupList}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Xe))));var et={userList:function(e){return ee.POST("/api/admin/userList",e)},updateUserStatus:function(e){return ee.POST("/api/admin/updateUserStatus",e)},closeUserMFA:function(e){return ee.POST("/api/admin/closeUserMFA",e)},resetPassword:function(e){return ee.POST("/api/admin/resetPassword",e)},checkPassword:function(e){return ee.POST("/api/admin/checkPassword",e)},setAdministrator:function(e){return ee.POST("/api/admin/setAdministrator",e)},addUser:function(e){return ee.POST("/api/admin/addUser",e)},groupList:function(e){return ee.POST("/api/admin/groupList",e)},groupMembers:function(e){return ee.POST("/api/admin/groupMembers",e)},groupAddMember:function(e){return ee.POST("/api/admin/groupAddMember",e)},groupRemoveMember:function(e){return ee.POST("/api/admin/groupRemoveMember",e)},setGroupOwner:function(e){return ee.POST("/api/admin/setGroupOwner",e)},repositoryList:function(e){return ee.POST("/api/admin/repositoryList",e)},repositoryMembers:function(e){return ee.POST("/api/admin/repositoryMembers",e)},repositoryAddMember:function(e){return ee.POST("/api/admin/repositoryAddMember",e)},repositoryRemoveMember:function(e){return ee.POST("/api/admin/repositoryRemoveMember",e)},systemStatus:function(){return ee.GET("/api/admin/systemStatus")},getConfig:function(){return ee.GET("/api/admin/config")},setConfig:function(e){return ee.POST("/api/admin/config",e)}},tt=a(43),at=a(425),rt=a(426),it=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.paletteName,r=e.theme,n=e.title,s=e.icon,o=e.label,c=e.unit,l=e.numbericValue,p=e.to,d=e.intl,u=e.history,m=a&&r.palette[a]?r.palette[a]:{},h=l,g=c;if("fromValue"===a&&(m="number"===typeof l?l>=85?r.palette.error:l>=70?r.palette.warning:r.palette.success:"Running"===l?r.palette.success:r.palette.error),h&&(h=(l===parseFloat(l)?z(l):l)||"NaN"),g){var b=function(e,t){var a,r,i,n,s,o,c=["p","u","m","","k","M","G","T","P"];return t&&e?(e=e.toString().trim(),a=(t=t.toString().trim()).slice(0,1),r=t,(i=c.indexOf(a))>-1?r=t.slice(1):(i=3,a=""),n=e.slice(-1),s=e,(o=c.indexOf(n))>-1?s=e.slice(0,-1):(o=3,n=""),[s,c[o+i-3]+r]):[e,t]}(h,g),f=Object(tt.a)(b,2);h=f[0],g=f[1]}return Object(oe.jsx)(at.a,{className:[t.card,p&&t.clickable].join(" "),style:{backgroundColor:m&&m.main},onClick:function(){p&&u.push(p)},children:Object(oe.jsx)(rt.a,{className:t.content,style:{paddingBottom:r.spacing(2)},component:"div",children:Object(oe.jsxs)(k.a,{container:!0,spacing:0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:8,children:[Object(oe.jsx)(w.a,{className:t.title,variant:"subtitle1",component:"h1",style:{color:m&&m.contrastText,fontSize:16},children:n||(o?d.formatMessage({id:o}):"-")}),Object(oe.jsx)(w.a,{variant:"h5",component:"h1",style:{color:m&&m.contrastText,fontSize:24},children:l||0===l?Object(oe.jsxs)(i.a.Fragment,{children:[h," ",g||""]}):Object(oe.jsx)(he.a,{size:24,style:{color:m&&m.light}})})]}),Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsx)(w.a,{className:t.icon,variant:"h4",component:"div",children:Object(oe.jsx)(fe.a,{icon:s,style:{color:m&&m.dark,fontSize:32}})})})]})})})}}]),a}(r.Component),nt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{card:{minWidth:e.spacing(22),height:e.spacing(14)},content:{paddingTop:e.spacing(2),paddingBottom:e.spacing(2)},title:{marginBottom:e.spacing(2)},icon:{textAlign:"right",marginTop:e.spacing(1)},clickable:{cursor:"pointer"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(it))))),st=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).mountedFlag=!1,r.state={pending:!0,data:null},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData()}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.state)!==JSON.stringify(this.nextState)}},{key:"getData",value:function(){var e=this;this.setState({pending:!0}),et.systemStatus().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t&&!t.code&&t.data&&e.setState({pending:!1,data:t.data})}))}},{key:"render",value:function(){var e=this.props.intl,t=this.state.pending;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",e.formatMessage({id:"label.statistic"})," "]})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{label:"label.user_pl",paletteName:"info",icon:je.Z,numbericValue:t?null:this.state.data.usage.user,to:"/admin/users"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{label:"label.group_pl",paletteName:"info",icon:je.fb,numbericValue:t?null:this.state.data.usage.group,to:"/admin/groups"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{label:"label.repository_pl",paletteName:"info",icon:je.eb,numbericValue:t?null:this.state.data.usage.repository,to:"/admin/repositories"})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",e.formatMessage({id:"label.systemResources"})," "]})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"CPU",paletteName:"fromValue",icon:je.bb,numbericValue:t?null:this.state.data.vm.cpu,unit:"%"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"RAM",paletteName:"fromValue",icon:je.bb,numbericValue:t?null:this.state.data.vm.memory,unit:"%"})}),!t&&this.state.data.vm.disk.length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",e.formatMessage({id:"label.diskUsgae"})," "]})}),!t&&this.state.data.vm.disk.map((function(e,t){return Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:e.name,paletteName:"fromValue",icon:je.U,numbericValue:e.usage,unit:"%"})},t)})),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",e.formatMessage({id:"label.serviceStatus"})," "]})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"CodeFever",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.codefever?"Running":"Stopped"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"Nginx",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.nginx?"Running":"Stopped"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"PHP-FPM",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.php?"Running":"Stopped"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"Crond",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.crond?"Running":"Stopped"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"SendMail",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.sendmail?"Running":"Stopped"})})]})}}]),a}(i.a.Component),ot=Object(R.b)(Object(C.a)((function(e){return{}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(st)))),ct=a(267),lt=a(430),pt=a(428),dt=a(452),ut=a(431),mt=a(429),ht=a(432),gt=a(451),bt=a(427),ft=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.tabs,a=e.onChange,r=e.currentTab,i=e.children,n=e.classes;return Object(oe.jsxs)(k.a,{container:!0,className:n.background,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(gt.a,{value:r||0,indicatorColor:"primary",textColor:"primary",onChange:a,children:t.map((function(e,t){return Object(oe.jsx)(bt.a,{value:t,label:e},t)}))})}),Object(oe.jsx)(k.a,{item:!0,children:i})]})}}]),a}(i.a.Component),jt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{background:{backgroundColor:e.palette.background.light}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ft))))),vt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,count:0,list:[],category:0,keyword:"",sort:"name",page:1,pagesize:20,settingAnchor:null,settingUser:null,password1:"",password2:"",resetPassword:!1,error:{},settingAdmin:!1,password:"",addUser:!1,name:"",email:"",newPassword:""},r.mountedFlag=!1,r.timeout=null,r.checkPasswordInput=se.stateValidator(Object(N.a)(r),[{name:"password1",passPattern:/^.{6,50}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:6,n2:50})}]),r.checkEmailInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.{1,15}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:1,n2:15})},{name:"email",passPattern:/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.email"})})}]),r.checkEmailResponse=se.codeValidator(Object(N.a)(r),[{name:"email",exceptionCode:1030,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",exceptionCode:1029,errorMessage:r.props.intl.formatMessage({id:"message.error.AddFail"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData(this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;return this.state.category===t.category&&this.state.keyword===t.keyword&&this.state.sort===t.sort&&this.state.page===t.page||(this.state.page===t.page&&this.setState({page:1}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((function(){return a.getData(t)}),200)),!0}},{key:"getData",value:function(e){var t=this,a=e.category,r=e.keyword,i=e.sort,n=e.page,s=e.pagesize;this.setState({pending:!0}),et.userList({category:a,keyword:r,sort:i,page:n,pagesize:s}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),!e.code&&t.setState({count:e.data.count,list:e.data.list})}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state.list,n=[];return i.map((function(t){return n.push([Object(oe.jsxs)(k.a,{className:a.name,children:[Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.avatar,className:a.icon}),Object(oe.jsxs)(k.a,{children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:t.name}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.email})]})]}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.projects}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.created}),Object(oe.jsxs)(k.a,{className:a.tag,children:[t.mfaEnabled&&Object(oe.jsx)($e,{color:"success",text:"2FA"}),t.admin&&Object(oe.jsx)($e,{color:"info",text:r.formatMessage({id:"label.administrator"})}),!t.status&&Object(oe.jsx)($e,{color:"error",text:r.formatMessage({id:"message.disabled"})})]}),Object(oe.jsx)(Pe,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingUser:t})},icon:je.gb})]),!0})),[["auto","auto","auto","auto","auto"],["label.name","label.repository","label.requestCreated","",""]].concat(n)}},{key:"updateUserStatusConfirm",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;if(this.setState({settingAnchor:null}),!a)return!1;this.props.dispatchEvent(ae.addComformation("setting_user_status",{title:t.formatMessage({id:a.status?"message.userStatusDisabled":"message.userStatusEnabled"}),description:t.formatMessage({id:a.status?"message.userStatusDisabled_N":"message.userStatusEnabled_N"},{n:a.name}),reject:function(){return!0},accept:function(){return e.updateUserStatus()}}))}},{key:"updateUserStatus",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;et.updateUserStatus({user:a.id,status:a.status?D.commonStatus.delete:D.commonStatus.normal}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(r){e.props.dispatchEvent(ae.cancelComformation()),r.code||(e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:a.status?"message.disabled":"message.enabled"}),0)),e.getData(e.state))}))}},{key:"closeUserMFAConfirm",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;if(this.setState({settingAnchor:null}),!a)return!1;this.props.dispatchEvent(ae.addComformation("disable_user_mfa",{title:t.formatMessage({id:"message.closeMFA"}),description:t.formatMessage({id:"message.closeMFA_N"},{n:a.name}),reject:function(){return!0},accept:function(){return e.closeUserMFA()}}))}},{key:"closeUserMFA",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;et.closeUserMFA({user:a.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){e.props.dispatchEvent(ae.cancelComformation()),a.code||(e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.closed"}),0)),e.getData(e.state))}))}},{key:"resetPassword",value:function(){var e=this,t=this.props.intl,a=this.state,r=a.settingUser,i=a.password1,n=a.password2;return!!this.checkPasswordInput()&&(n!==i?(this.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.error.inputNotSame"}),2)),!1):void et.resetPassword({user:r.id,password:i}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){e.setState({resetPassword:!1}),e.props.dispatchEvent(ae.cancelComformation()),a.code||e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.reseted"}),0))})))}},{key:"checkPassword",value:function(){var e=this,t=this.props.intl,a=this.state.password;et.checkPassword({password:a}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code?e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.error._S_invalid"},{s:t.formatMessage({id:"label.password"})}),2)):e.setAdministrator()}))}},{key:"setAdministrator",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;this.setState({settingAdmin:!1}),et.setAdministrator({user:a.id,admin:a.admin?0:1}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||(e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.updated"}),0)),e.getData(e.state))}))}},{key:"addUser",value:function(){var e=this,t=this.state,a=t.name,r=t.email;if(!this.checkEmailInput())return!1;et.addUser({name:a,email:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code){if(!e.checkEmailResponse(t.code))return!1}else e.setState({addUser:!1,newPassword:t.data.password}),e.getData(e.state)}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state,n=i.pending,s=i.count,o=i.category,c=i.keyword,l=i.sort,p=i.page,d=i.pagesize,u=i.settingAnchor,m=i.settingUser,h=i.resetPassword,g=i.password1,b=i.password2,f=i.error,j=i.settingAdmin,v=i.password,O=i.addUser,y=i.name,x=i.email,S=i.newPassword;return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(jt,{currentTab:o,onChange:function(t,a){return!n&&e.setState({category:a})},tabs:[r.formatMessage({id:"label.all"}),r.formatMessage({id:"label.enabledMFA"}),r.formatMessage({id:"label.disabledMFA"}),r.formatMessage({id:"label.blocked"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:4,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.setState({addUser:!0,name:"",email:"",error:{}})},children:r.formatMessage({id:"label.addUser"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.searchByName"}),value:c,onChange:function(t){return e.setState({keyword:t.target.value})}}),Object(oe.jsx)(w.a,{variant:"h6",component:"span",className:a.sortLabel,children:r.formatMessage({id:"label.sort"})}),Object(oe.jsxs)(E.a,{select:!0,variant:"outlined",value:l,onChange:function(t){return e.setState({sort:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(pt.a,{value:"email",children:r.formatMessage({id:"label.email"})}),Object(oe.jsx)(pt.a,{value:"created",children:r.formatMessage({id:"label.createTime"})})]})]})}),n?Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(he.a,{})}):s?Object(oe.jsxs)(oe.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getTableData()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:a.page,children:Object(oe.jsx)(dt.a,{count:Math.ceil(s/d),page:p,onChange:function(t,a){return e.setState({page:a})},shape:"rounded",color:"primary"})})]}):Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(w.a,{variant:"caption",component:"span",children:r.formatMessage({id:"label.noMore"})})}),m&&Object(oe.jsxs)(oe.Fragment,{children:[Object(oe.jsxs)(ct.a,{anchorEl:u,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(u),onClose:function(t){return e.setState({settingAnchor:null})},children:[Object(oe.jsx)(pt.a,{onClick:function(t){return e.updateUserStatusConfirm()},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:m.status?"label.disable":"label.enable"})})}),m.status&&Object(oe.jsx)(pt.a,{onClick:function(t){return e.setState({resetPassword:!0,settingAnchor:null})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"message.resetPassword"})})}),m.status&&m.mfaEnabled&&Object(oe.jsx)(pt.a,{onClick:function(t){return e.closeUserMFAConfirm()},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"message.closeMFA"})})}),m.status&&Object(oe.jsx)(pt.a,{onClick:function(t){return e.setState({settingAdmin:!0,settingAnchor:null,password:""})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:m.admin?"message.cancelAdministrator":"message.setAdministrator"})})})]}),Object(oe.jsxs)(lt.a,{maxWidth:"sm",open:h,fullWidth:Boolean(!0),onClose:function(t){return e.setState({resetPassword:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"message.reset_N_Password"},{n:m.name})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.newPassword"})}),value:g,error:!!f.password1,helperText:f.password1,onChange:function(t){return e.setState({password1:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_retype"},{s:r.formatMessage({id:"label.newPassword"})}),value:b,onChange:function(t){return e.setState({password2:t.target.value})}})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({resetPassword:!1})},children:r.formatMessage({id:"label.cancel"})}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.resetPassword()},children:r.formatMessage({id:"label.ok"})})]})]})})]}),Object(oe.jsxs)(lt.a,{maxWidth:"sm",open:j,fullWidth:Boolean(!0),onClose:function(t){return e.setState({settingAdmin:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:m.admin?"message.cancelAdministrator":"message.setAdministrator"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.password"})}),value:v,onChange:function(t){return e.setState({password:t.target.value})}})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({settingAdmin:!1})},children:r.formatMessage({id:"label.cancel"})}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.checkPassword()},children:r.formatMessage({id:"label.ok"})})]})]})})]})]}),Object(oe.jsxs)(lt.a,{maxWidth:"sm",open:O,fullWidth:Boolean(!0),onClose:function(t){return e.setState({addUser:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.addUser"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.name"})}),value:y,error:!!f.name,helperText:f.name,onChange:function(t){return e.setState({name:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.email"})}),value:x,error:!!f.email,helperText:f.email,onChange:function(t){return e.setState({email:t.target.value})}})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({addUser:!1})},children:r.formatMessage({id:"label.cancel"})}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.addUser()},children:r.formatMessage({id:"label.ok"})})]})]})})]}),Object(oe.jsxs)(lt.a,{maxWidth:"sm",open:!!S,fullWidth:Boolean(!0),onClose:function(t){return e.setState({newPassword:""})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"message.successAddUser"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",children:[r.formatMessage({id:"label.name"}),":\u2003",y,"\u2003"]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",children:[r.formatMessage({id:"label.email"}),":\u2003",x,"\u2003"]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",children:[r.formatMessage({id:"label.newPassword"}),":\u2003",S,"\u2003",Object(oe.jsx)(Pe,{label:"label.copy",onClick:function(t){return X(S,(function(){return e.props.dispatchEvent(ae.NewNotification(r.formatMessage({id:"message.copied"}),0))}),t.target.parentElement)},icon:je.k})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.setState({newPassword:""})},children:r.formatMessage({id:"label.ok"})})})]})})]})]})}}]),a}(i.a.Component),Ot=Object(R.b)(Object(C.a)((function(e){return{search:{display:"flex"},keyword:{flexGrow:1},sortLabel:{lineHeight:e.spacing(4)+"px",padding:"0px "+e.spacing(2)+"px"},name:{display:"flex",textAlign:"left",alignItems:"center",margin:e.spacing(1)+"px 0px"},icon:{margin:e.spacing(1)},tag:{"& > *":{marginRight:e.spacing(1)}},page:{display:"flex",justifyContent:"flex-end"}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(vt))),yt=a(159),xt=a(462),St=a(95),Ct=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.currentLanguage,a=e.timestamp,r=e.absolute,i=e.relative,n="zh-cn"===t?O.a:St.a;a*=a<31536e6?1e3:1;var s=(new Date).getTime();return r||i||(Math.abs(a-s)<6048e5?i=!0:r=!0),Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[r&&a>0&&Object(yt.a)(a,"yyyy-MM-dd HH:mm:ss",{locale:n}),i&&!r&&a>0&&Object(xt.a)(a,s,{locale:n})]})}}]),a}(r.Component),Nt=Object(R.b)(Object(h.f)(Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}),(function(e,t){return{}}))(Ct))),Rt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,count:0,list:[],keyword:"",sort:"name",page:1,pagesize:20,settingAnchor:null,settingGroup:null,members:[],memberManage:!1,email:"",error:{}},r.mountedFlag=!1,r.timeout=null,r.checkAddResponse=se.codeValidator(Object(N.a)(r),[{name:"email",exceptionCode:1031,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",exceptionCode:1032,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotAddCreatorAsMember"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData(this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;return this.state.keyword===t.keyword&&this.state.sort===t.sort&&this.state.page===t.page||(this.state.page===t.page&&this.setState({page:1}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((function(){return a.getData(t)}),200)),!0}},{key:"getData",value:function(e){var t=this,a=e.keyword,r=e.sort,i=e.page,n=e.pagesize;this.setState({pending:!0}),et.groupList({keyword:a,sort:r,page:i,pagesize:n}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),!e.code&&t.setState({count:e.data.count,list:e.data.list})}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state.list,n=[];return i.map((function(t){return n.push([Object(oe.jsxs)(k.a,{className:a.name,children:[t.icon?Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.icon,className:a.icon}):Object(oe.jsx)(Be.a,{className:a.icon,children:t.name[0].substr(0,1).toUpperCase()}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.displayName})]}),Object(oe.jsx)(Nt,{timestamp:t.created}),t.status===D.commonStatus.normal?Object(oe.jsx)(Pe,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingGroup:t})},icon:je.gb}):Object(oe.jsx)($e,{color:"error",text:r.formatMessage({id:"message.deleted"})})]),!0})),[["auto","auto","auto"],["label.group","label.requestCreated",""]].concat(n)}},{key:"openMemberManage",value:function(){var e=this,t=this.state.settingGroup;if(this.setState({memberManage:!0,settingAnchor:null}),!t)return!1;et.groupMembers({group:t.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){return e.setState({members:t.data})}))}},{key:"getMembersTable",value:function(){var e,t=this,a=this.props,r=a.classes,i=a.intl,n=this.state.members,s=[],o=(e={},Object(Te.a)(e,L.Role.GUEST,"label.guest"),Object(Te.a)(e,L.Role.REPORTER,"label.reporter"),Object(Te.a)(e,L.Role.DEVELOPER,"label.developer"),Object(Te.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(Te.a)(e,L.Role.OWNER,"label.owner"),e);return n.map((function(e){return s.push([Object(oe.jsxs)(k.a,{className:r.name,children:[Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+e.icon,className:r.icon}),Object(oe.jsxs)(k.a,{children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:e.name}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.email})]})]}),Object(oe.jsx)($e,{color:"info",text:i.formatMessage({id:o[e.role]})}),e.creatorFlag&&Object(oe.jsx)($e,{color:"success",text:i.formatMessage({id:"label.creator"})}),Object(oe.jsx)(Nt,{timestamp:e.joined}),Object(oe.jsx)(k.a,{className:r.tag,children:e.deleteFlag||e.status===D.commonStatus.delete?Object(oe.jsx)($e,{color:"error",text:i.formatMessage({id:"message.deleted"})}):!e.creatorFlag&&e.role1024&&i(ae.NewNotification(r.formatMessage({id:"message.error.removeFail"}),2)):(i(ae.NewNotification(r.formatMessage({id:"message.removed"}),0)),t.openMemberManage())}))}},{key:"setRoleConfirm",value:function(e){var t=this,a=this.props.intl;if(!e)return!1;this.props.dispatchEvent(ae.addComformation("set_group_member_role",{title:a.formatMessage({id:"message.setGroupOwner_S"},{s:" '"+e.name+"'"}),description:"",reject:function(){return!0},accept:function(){return t.setGroupOwner(e)}}))}},{key:"setGroupOwner",value:function(e){var t=this,a=this.props,r=a.intl,i=a.dispatchEvent,n=this.state.settingGroup;et.setGroupOwner({group:n.id,user:e.id}).then(ne.withEventdispatcher(i)(ne.getJSONData)).then((function(e){i(ae.cancelComformation()),e.code?e.code>1024&&i(ae.NewNotification(r.formatMessage({id:"message.error.updateFail"}),2)):(i(ae.NewNotification(r.formatMessage({id:"message.updated"}),0)),t.openMemberManage())}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state,n=i.pending,s=i.count,o=i.keyword,c=i.sort,l=i.page,p=i.pagesize,d=i.settingAnchor,u=i.memberManage,m=i.email,h=i.error;return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.searchGroup"}),value:o,onChange:function(t){return e.setState({keyword:t.target.value})}}),Object(oe.jsx)(w.a,{variant:"h6",component:"span",className:a.sortLabel,children:r.formatMessage({id:"label.sort"})}),Object(oe.jsxs)(E.a,{select:!0,variant:"outlined",value:c,onChange:function(t){return e.setState({sort:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(pt.a,{value:"created",children:r.formatMessage({id:"label.createTime"})})]})]})}),n?Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(he.a,{})}):s?Object(oe.jsxs)(oe.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getTableData()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:a.page,children:Object(oe.jsx)(dt.a,{count:Math.ceil(s/p),page:l,onChange:function(t,a){return e.setState({page:a})},shape:"rounded",color:"primary"})})]}):Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(w.a,{variant:"caption",component:"span",children:r.formatMessage({id:"label.noMore"})})}),Object(oe.jsx)(ct.a,{anchorEl:d,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(d),onClose:function(t){return e.setState({settingAnchor:null})},children:Object(oe.jsx)(pt.a,{onClick:function(t){return e.openMemberManage()},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"label.memberManage"})})})}),Object(oe.jsxs)(lt.a,{maxWidth:"md",open:u,fullWidth:Boolean(!0),onClose:function(t){return e.setState({memberManage:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.memberManage"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.plsInputInvitedEmail"}),value:m,error:!!h.email,helperText:h.email,onChange:function(t){return e.setState({email:t.target.value})}}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.addMember()},children:r.formatMessage({id:"label.invite"})})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getMembersTable()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({memberManage:!1})},children:r.formatMessage({id:"label.cancel"})})})]})})]})]})}}]),a}(i.a.Component),Mt=Object(R.b)(Object(C.a)((function(e){return{search:{display:"flex"},keyword:{flexGrow:1},sortLabel:{lineHeight:e.spacing(4)+"px",padding:"0px "+e.spacing(2)+"px"},name:{display:"flex",textAlign:"left",alignItems:"center",margin:e.spacing(1)+"px 0px"},icon:{margin:e.spacing(1)},page:{display:"flex",justifyContent:"flex-end"},tag:{"& > *":{marginLeft:e.spacing(1)}}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Rt))),wt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,count:0,list:[],keyword:"",sort:"name",page:1,pagesize:20,settingAnchor:null,settingRepository:null,members:[],memberManage:!1,email:"",error:{}},r.mountedFlag=!1,r.timeout=null,r.checkAddResponse=se.codeValidator(Object(N.a)(r),[{name:"email",exceptionCode:1031,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",exceptionCode:1032,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotAddCreatorAsMember"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData(this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;return this.state.keyword===t.keyword&&this.state.sort===t.sort&&this.state.page===t.page||(this.state.page===t.page&&this.setState({page:1}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((function(){return a.getData(t)}),200)),!0}},{key:"getData",value:function(e){var t=this,a=e.keyword,r=e.sort,i=e.page,n=e.pagesize;this.setState({pending:!0}),et.repositoryList({keyword:a,sort:r,page:i,pagesize:n}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),!e.code&&t.setState({count:e.data.count,list:e.data.list})}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state.list,n=[];return i.map((function(t){return n.push([Object(oe.jsxs)(k.a,{className:a.name,children:[t.icon?Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.icon,className:a.icon}):Object(oe.jsx)(Be.a,{className:a.icon,children:t.name[0].substr(0,1).toUpperCase()}),Object(oe.jsxs)(w.a,{variant:"body1",component:"div",children:[t.group.displayName," / ",t.displayName]})]}),Object(oe.jsx)(Nt,{timestamp:t.created}),t.status===D.commonStatus.normal?Object(oe.jsx)(Pe,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingRepository:t})},icon:je.gb}):Object(oe.jsx)($e,{color:"error",text:r.formatMessage({id:"message.deleted"})})]),!0})),[["auto","auto","auto"],["label.repository","label.requestCreated",""]].concat(n)}},{key:"openMemberManage",value:function(){var e=this,t=this.state.settingRepository;if(this.setState({memberManage:!0,settingAnchor:null}),!t)return!1;et.repositoryMembers({repository:t.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){return e.setState({members:t.data})}))}},{key:"getMembersTable",value:function(){var e,t=this,a=this.props,r=a.classes,i=a.intl,n=this.state.members,s=[],o=(e={},Object(Te.a)(e,L.Role.GUEST,"label.guest"),Object(Te.a)(e,L.Role.REPORTER,"label.reporter"),Object(Te.a)(e,L.Role.DEVELOPER,"label.developer"),Object(Te.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(Te.a)(e,L.Role.OWNER,"label.owner"),e);return n.map((function(e){return s.push([Object(oe.jsxs)(k.a,{className:r.name,children:[Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+e.icon,className:r.icon}),Object(oe.jsxs)(k.a,{children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:e.name}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.email})]})]}),Object(oe.jsx)($e,{color:"info",text:i.formatMessage({id:o[e.role]})}),Object(oe.jsxs)(k.a,{children:[e.creatorFlag&&Object(oe.jsx)($e,{color:"success",text:i.formatMessage({id:"label.creator"})}),e.groupMember&&Object(oe.jsx)($e,{color:"success",text:i.formatMessage({id:"label.group"})+i.formatMessage({id:"label.member"})})]}),Object(oe.jsx)(Nt,{timestamp:e.joined}),Object(oe.jsxs)(k.a,{className:r.tag,children:[(e.deleteFlag||e.status===D.commonStatus.delete)&&Object(oe.jsx)($e,{color:"error",text:i.formatMessage({id:"message.deleted"})}),!e.creatorFlag&&!e.groupMember&&e.role1024&&i(ae.NewNotification(r.formatMessage({id:"message.error.removeFail"}),2)):(i(ae.NewNotification(r.formatMessage({id:"message.removed"}),0)),t.openMemberManage())}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state,n=i.pending,s=i.count,o=i.keyword,c=i.sort,l=i.page,p=i.pagesize,d=i.settingAnchor,u=i.memberManage,m=i.email,h=i.error;return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.searchRepository"}),value:o,onChange:function(t){return e.setState({keyword:t.target.value})}}),Object(oe.jsx)(w.a,{variant:"h6",component:"span",className:a.sortLabel,children:r.formatMessage({id:"label.sort"})}),Object(oe.jsxs)(E.a,{select:!0,variant:"outlined",value:c,onChange:function(t){return e.setState({sort:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(pt.a,{value:"created",children:r.formatMessage({id:"label.createTime"})})]})]})}),n?Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(he.a,{})}):s?Object(oe.jsxs)(oe.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getTableData()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:a.page,children:Object(oe.jsx)(dt.a,{count:Math.ceil(s/p),page:l,onChange:function(t,a){return e.setState({page:a})},shape:"rounded",color:"primary"})})]}):Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(w.a,{variant:"caption",component:"span",children:r.formatMessage({id:"label.noMore"})})}),Object(oe.jsx)(ct.a,{anchorEl:d,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(d),onClose:function(t){return e.setState({settingAnchor:null})},children:Object(oe.jsx)(pt.a,{onClick:function(t){return e.openMemberManage()},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"label.memberManage"})})})}),Object(oe.jsxs)(lt.a,{maxWidth:"md",open:u,fullWidth:Boolean(!0),onClose:function(t){return e.setState({memberManage:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.memberManage"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.plsInputInvitedEmail"}),value:m,error:!!h.email,helperText:h.email,onChange:function(t){return e.setState({email:t.target.value})}}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.addMember()},children:r.formatMessage({id:"label.invite"})})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getMembersTable()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({memberManage:!1})},children:r.formatMessage({id:"label.cancel"})})})]})})]})]})}}]),a}(i.a.Component),kt=Object(R.b)(Object(C.a)((function(e){return{search:{display:"flex"},keyword:{flexGrow:1},sortLabel:{lineHeight:e.spacing(4)+"px",padding:"0px "+e.spacing(2)+"px"},name:{display:"flex",textAlign:"left",alignItems:"center",margin:e.spacing(1)+"px 0px"},icon:{margin:e.spacing(1)},page:{display:"flex",justifyContent:"flex-end"},tag:{"& > *":{marginLeft:e.spacing(1)}}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(wt))),_t=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).mountedFlag=!1,r.state={allowRegister:!1,host:"",ssh:"",email_from:"",email_name:"",pending:!0,error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"host",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.url"})})},{name:"host",passPattern:/^http(s)?:\/\/[^/]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.urlPrefix"})})},{name:"ssh",passPattern:/^[^@]+@.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.sshPrefix"})})},{name:"email_name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.name"})})},{name:"email_from",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email_from",passPattern:/^[^@]+@[^@]+\.[^@]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.email"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData()}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"getData",value:function(){var e=this;this.setState({pending:!0}),et.getConfig().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.setState({pending:!1,host:t.data.host,ssh:t.data.ssh,allowRegister:t.data.allowRegister,email_from:t.data.email.from,email_name:t.data.email.name})}))}},{key:"updateConfig",value:function(){var e=this;if(!this.checkInput())return!1;var t={host:this.state.host,ssh:this.state.ssh,allowRegister:this.state.allowRegister,email:{name:this.state.email_name,from:this.state.email_from}},a={data:JSON.stringify(t)};this.setState({pending:!0}),et.setConfig(a).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({pending:!1}),t.code||(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.getData(),e.reloadUserData())}))}},{key:"reloadUserData",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.setting"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{className:a.paper,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.host"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,mg:9,lg:8,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.urlPrefix"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.host,error:!!this.state.error.host,helperText:this.state.error.host,placeholder:r.formatMessage({id:"label.urlPrefix"}),onChange:function(t){return e.setState({host:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.sshPrefix"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.ssh,error:!!this.state.error.ssh,helperText:this.state.error.ssh,placeholder:r.formatMessage({id:"label.sshPrefix"}),onChange:function(t){return e.setState({ssh:t.target.value})}})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:"\xa0"}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:" SMTP "})}),Object(oe.jsx)(k.a,{item:!0,xs:12,mg:9,lg:8,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.senderName"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.email_name,error:!!this.state.error.email_name,helperText:this.state.error.email_name,placeholder:r.formatMessage({id:"label.name"}),onChange:function(t){return e.setState({email_name:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.senderAddress"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.email_from,error:!!this.state.error.email_from,helperText:this.state.error.email_from,placeholder:r.formatMessage({id:"label.email"}),onChange:function(t){return e.setState({email_from:t.target.value})}})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:"\xa0"}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.register"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,mg:9,lg:8,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.allowRegister"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Je.a,{checked:this.state.allowRegister,onChange:function(){e.setState({allowRegister:!e.state.allowRegister})},inputProps:{"aria-label":"secondary checkbox"}})})]})})]})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.updateConfig()},children:r.formatMessage({id:"label.save"})})})]})}}]),a}(i.a.Component),Et=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(_t)))),Tt=a(454),At=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.history,r=e.repositoryInfo,i=e.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:0,alignContent:"center",className:t.container,onClick:function(e){a.push(W(r.group.name,r.name))},children:[Object(oe.jsx)(k.a,{item:!0,xs:6,md:5,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,children:r.icon?Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+r.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,children:r.name.substr(0,1).toUpperCase()})}),Object(oe.jsxs)(k.a,{item:!0,xs:8,className:t.baseInfo,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"div",style:{lineHeight:"22px",height:"22px"},children:[r.group.displayName+"/",Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"span",children:[r.displayName,"\xa0\xa0\xa0\xa0",Object(oe.jsx)($e,{color:r.role===L.Role.OWNER?"containedInfo":"info",text:i.formatMessage({id:"label.roleID_"+r.role})})]})]}),r.description&&Object(oe.jsx)(w.a,{variant:"caption",component:"div",className:"text-overflow",style:{lineHeight:"20px",height:"18px"},children:r.description})]})]})}),Object(oe.jsxs)(k.a,{item:!0,xs:5,md:3,container:!0,alignItems:"center",className:t.counts,children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",style:{lineHeight:1},children:[Object(oe.jsx)(fe.a,{icon:je.r}),"\xa0\xa0",r.forkCount]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",style:{lineHeight:1},children:[Object(oe.jsx)(fe.a,{icon:je.y}),"\xa0\xa0",r.mergeRequestCount.open]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",style:{lineHeight:1},children:[Object(oe.jsx)(fe.a,{icon:je.v}),"\xa0\xa0",r.members.length]})})]}),Object(oe.jsx)(Tt.a,{mdDown:!0,children:Object(oe.jsx)(k.a,{item:!0,md:3,container:!0,alignItems:"center",children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[i.formatMessage({id:"label.updatedIn"}),": ",Object(oe.jsx)(Nt,{timestamp:r.updated})]})})}),Object(oe.jsx)(k.a,{item:!0,xs:1,style:{alignSelf:"center"},children:Object(oe.jsx)(Pe,{label:"label.setting",icon:je.E,onClick:function(e){e.stopPropagation(),a.push(W(r.group.name,r.name,"settings"))}})})]})}}]),a}(r.Component),Dt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{container:{height:e.spacing(9),padding:e.spacing(2)+"px "+e.spacing(3)+"px",border:"1px solid "+e.palette.border,marginBottom:"-1px",borderLeft:"none",borderRight:"none",cursor:"pointer","&:hover":{backgroundColor:e.palette.background.dark}},item:{height:e.spacing(5)},icon:{width:e.spacing(5),height:e.spacing(5)},baseInfo:{display:"flex",flexFlow:"column wrap",justifyContent:"center"},avatar:{width:e.spacing(4),height:e.spacing(4),marginRight:"-"+e.spacing(1)+"px",border:"1px solid "+e.palette.border},counts:{"& > div":{width:e.spacing(6)}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentGroupConfig:e.DataStore.currentGroupConfig}}),(function(e,t){return{}}))(At))))),It=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.imageName,r=e.title,n=e.notice,s=e.children,o=e.pending;return Object(oe.jsxs)(k.a,{container:!0,spacing:4,className:t.container,children:[o&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,className:t.loading,children:Object(oe.jsx)(he.a,{})})}),!o&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)("img",{className:[t.img,t.alignBlock].join(" "),src:D.HOSTS.STATIC_HOST+"static/"+D.STATIC_VERSION+"/images/"+a})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsx)(w.a,{className:[t.text,t.alignBlock].join(" "),variant:"body2",children:r}),Object(oe.jsx)("br",{}),Object(oe.jsx)(w.a,{className:[t.text,t.alignBlock,t.lighter].join(" "),variant:"body2",children:n})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)("div",{className:t.alignBlock,children:s})})]})]})}}]),a}(r.Component),Pt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{container:{marginTop:"10vh"},alignBlock:{textAlign:"center",margin:"0 auto",display:"block"},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},img:{width:e.spacing(20)},text:{maxWidth:e.spacing(60)},lighter:{color:e.palette.text.lighter}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(It))))),Ft=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={popoverAnchor:null,popoverTab:0},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.groupConfig,r=e.repositoryList,i=e.intl,n=e.history;return Object(oe.jsx)(M.a,{elevation:1,className:t.content,children:a&&a.group&&a.group.id?Object(oe.jsxs)(k.a,{container:!0,spacing:3,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:3,className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:a.group.icon?Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+a.group.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,children:a.group.name.substr(0,1).toUpperCase()})}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"h6",className:t.text,children:[a.group.displayName," \xa0\xa0"]}),Object(oe.jsx)(w.a,{variant:"caption",component:"div",className:t.subtext,children:a.group.description})]})]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(e){return n.push(W("groups",a.group.name,"repositories","new"))},children:i.formatMessage({id:"label.newRepository"})})})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body2",className:t.iconBar,children:[Object(oe.jsx)(fe.a,{icon:je.B}),"\xa0 ",i.formatMessage({id:"label._N_repository"},{n:r.filter(U.group(a.group.id)).length})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.y}),"\xa0",i.formatMessage({id:"label._N_mergeRequest"},{n:r.filter(U.group(a.group.id)).reduce((function(e,t){return e+t.mergeRequestCount.open}),0)})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.v}),"\xa0 ",i.formatMessage({id:"label._N_member"},{n:a.count.member})]})})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"space-between",children:Object(oe.jsx)(he.a,{})})})}}]),a}(r.Component),Lt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{content:{height:e.spacing(15.5),boxSizing:"border-box",borderBottom:"1px solid "+e.palette.border,borderRadius:0},icon:{height:e.spacing(5),width:e.spacing(5)},text:{height:e.spacing(3),lineHeight:e.spacing(3)+"px",overflow:"hidden"},subtext:{paddingTop:e.spacing(.5),height:e.spacing(1.5),lineHeight:e.spacing(1.5)+"px"},iconBar:{height:e.spacing(3),lineHeight:e.spacing(3)+"px"},clonePopvoer:{width:e.spacing(50)+"px"},cloneContent:{padding:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList}}),(function(e,t){return{}}))(Ft))))),Bt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={currentTab:0},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.currentGroupKey,i=t.currentGroupConfig,n=t.repositoryList,s=t.repositoryListPending,o=t.match,c=t.intl;n.sort((function(e,t){return t.updated-e.updated}));var l=n.filter(U.withPermission(L.PermissionCode.REPO_READ)),p=[c.formatMessage({id:"label.all"}),c.formatMessage({id:"label.IJoined"}),c.formatMessage({id:"label.ICreated"})],d=[function(){return!0},U.not(U.creator(a.id)),U.creator(a.id)];if(r)p[0]=c.formatMessage({id:"label.repository"}),l=l.filter(U.group(r));else if(o.params.repositoryID){var u=n.filter(U.id(o.params.repositoryID))[0];l=l.filter(U.fork(o.params.repositoryID)),p[0]=u?c.formatMessage({id:"label.forkFrom_S"},{s:[u.group.displayName,u.displayName].join("/")}):c.formatMessage({id:"label.forkFrom_S"},{s:c.formatMessage({id:"label.unknownRepository"})})}return l=l.filter(d[this.state.currentTab]),Object(oe.jsxs)(k.a,{container:!0,spacing:i.group?0:3,children:[i.group&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Lt,{groupConfig:i})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(jt,{tabs:p,currentTab:this.state.currentTab,onChange:function(t,a){e.setState({currentTab:a})},children:!i.group&&!o.params.repositoryID&&Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(){e.props.history.push(i.group?W("groups",i.group.name,"repositories","new"):W("repositories","new"))},children:c.formatMessage({id:"label.newRepository"})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[l.map((function(e,t){return Object(oe.jsx)(Dt,{repositoryInfo:e},t)})),0===l.length&&Object(oe.jsx)(Pt,{imageName:"repositories-empty.png",title:c.formatMessage({id:"message._S_listEmpty"},{s:c.formatMessage({id:"label.repository"})}),pending:s,notice:c.formatMessage({id:"message.repositoryListEmptyNotice"}),children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(){e.props.history.push(i.group?W("groups",i.group.name,"repositories","new"):W("repositories","new"))},children:c.formatMessage({id:"label.newRepository"})})})]})]})}}]),a}(i.a.Component),Ut=Object(R.b)(Object(C.a)((function(e){return{}}))(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,currentGroupKey:e.DataStore.currentGroupKey,currentGroupConfig:e.DataStore.currentGroupConfig,repositoryList:e.DataStore.repositoryList,repositoryListPending:e.DataStore.repositoryListPending}}),(function(e,t){return{}}))(Bt))),Gt=a(433);var Ht={list:function(){return ee.GET("/api/repository/list")},create:function(e){return ee.POST("/api/repository/create",e)},fork:function(e){return ee.POST("/api/repository/fork",e)},config:function(e){return ee.GET("/api/repository/config",null,e)},uploadAvatar:function(e){return ee.POST("/api/repository/uploadAvatar",e)},update:function(e){return ee.POST("/api/repository/update",e)},updateName:function(e){return ee.POST("/api/repository/updateName",e)},defaultBranch:function(e){return ee.POST("/api/repository/defaultBranch",e)},protectedBranchRules:function(e){return ee.GET("/api/repository/protectedBranchRules",null,e)},createProtectedBranchRule:function(e){return ee.POST("/api/repository/createProtectedBranchRule",e)},updateProtectedBranchRule:function(e){return ee.POST("/api/repository/updateProtectedBranchRule",e)},deleteProtectedBranchRule:function(e){return ee.POST("/api/repository/deleteProtectedBranchRule",e)},addMember:function(e){return ee.POST("/api/repository/addMember",e)},changeMemberRole:function(e){return ee.POST("/api/repository/changeMemberRole",e)},removeMember:function(e){return ee.POST("/api/repository/removeMember",e)},changeOwner:function(e){return ee.POST("/api/repository/changeOwner",e)},deleteRepository:function(e){return ee.POST("/api/repository/deleteRepository",e)},activities:function(e){return ee.GET("/api/repository/activities",null,e)},mergeRequests:function(e){return ee.GET("/api/repository/mergeRequests",null,e)},mergeRequestClose:function(e){return ee.POST("/api/repository/mergeRequestClose",e)},mergeRequestCommits:function(e){return ee.GET("/api/repository/mergeRequestCommits",null,e)},mergeRequestReview:function(e){return ee.POST("/api/repository/mergeRequestReview",e)},assignReviewer:function(e){return ee.POST("/api/repository/assignReviewer",e)},deleteReviewer:function(e){return ee.POST("/api/repository/deleteReviewer",e)},object:function(e){return ee.GET("/api/repository/object",null,e)},pathStack:function(e){return ee.GET("/api/repository/pathStack",null,e)},fileContent:function(e){return ee.GET("/api/repository/fileContent",null,e)},commitList:function(e){return ee.GET("/api/repository/commitList",null,e)},commitDetail:function(e){return ee.GET("/api/repository/commitDetail",null,e)},fileChanges:function(e){return ee.GET("/api/repository/fileChanges",null,e)},refListContainSHA:function(e){return ee.GET("/api/repository/refListContainSHA",null,e)},branchList:function(e){return ee.GET("/api/repository/branchList",null,e)},createBranch:function(e){return ee.POST("/api/repository/createBranch",e)},deleteBranch:function(e){return ee.POST("/api/repository/deleteBranch",e)},tagList:function(e){return ee.GET("/api/repository/tagList",null,e)},createTag:function(e){return ee.POST("/api/repository/createTag",e)},deleteTag:function(e){return ee.POST("/api/repository/deleteTag",e)},targetRepository:function(e){return ee.GET("/api/repository/targetRepository",null,e)},lastCommitLog:function(e){return ee.GET("/api/repository/lastCommitLog",null,e)},getBlameInfo:function(e){return ee.GET("/api/repository/blameInfo",null,e)},createMergeRequest:function(e){return ee.POST("/api/repository/createMergeRequest",e)},mergeRequestDetail:function(e){return ee.GET("/api/repository/mergeRequestDetail",null,e)},checkMergeType:function(e){return ee.POST("/api/repository/checkMergeType",e)},mergeBranch:function(e){return ee.POST("/api/repository/mergeBranch",e)},mergeRequestVersionList:function(e){return ee.GET("/api/repository/mergeRequestVersionList",null,e)},relatedMergeRequests:function(e){return ee.GET("/api/repository/relatedMergeRequests",null,e)},getWebhook:function(e){return ee.POST("/api/repository/getWebhook",e)},webhooks:function(e){return ee.POST("/api/repository/webhooks",e)},editWebhook:function(e){return ee.POST("/api/repository/editWebhook",e)},deleteWebhook:function(e){return ee.POST("/api/repository/deleteWebhook",e)},getRepositoryWebhookLogs:function(e){return ee.POST("/api/repository/getRepositoryWebhookLogs",e)},getRepositoryWebhookLogData:function(e){return ee.POST("/api/repository/getRepositoryWebhookLogData",e)}},qt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,name:"",group:"",slug:"",description:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"group",passPattern:/^[0-9a-f]{32}$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notChoose"},{s:r.props.intl.formatMessage({id:"label.group"})})},{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})},{name:"name",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"name",passPattern:/^[0-9a-zA-Z\\._-]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_has_illegal_character"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})},{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"slug",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"description",passPattern:/^.{0,200}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:200})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1025,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"name",exceptionCode:1026,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;if(!e.groupListPending&&e.currentUserInfo.id&&(!e.groupList.filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup()).length&&!e.history.location.pathname.match(/^\/groups\/new/i)))return e.dispatchEvent(ae.cancelComformation()),e.dispatchEvent(ae.addComformation("default_group_create_confirm",{title:this.props.intl.formatMessage({id:"message.defaultGroupReqiured"}),description:this.props.intl.formatMessage({id:"message.defaultGroupReqiuredDescription"}),reject:function(){e.history.push("/repositories")},accept:function(){e.history.push("/groups/new"),a.props.dispatchEvent(ae.cancelComformation())}})),!0;if(!t.group&&e.currentGroupKey)this.setState({group:e.currentGroupKey,pending:!1});else if(!t.group){var r=e.groupList.filter(U.withPermission(L.PermissionCode.GROUP_CREATE_REPO)).filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup());r[0]&&this.setState({group:r[0].id,pending:!1})}return!(this.state.description!==t.description&&t.description.length<201)||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"createRepository",value:function(){var e=this;if(!this.checkInput())return!0;var t={group:this.state.group,name:this.state.slug,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),Ht.create(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code)e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createRepositoryFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1});else{var a=t.data;Ht.list().then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.setState({pending:!1}),e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data}),e.props.history.push(W(a.group.name,a.name)))}))}})),!0}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=t.groupList,n=t.currentGroupKey,s=t.currentUserInfo,o=i.filter(U.withPermission(L.PermissionCode.GROUP_CREATE_REPO));return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.newRepository"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{className:a.paper,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error.input_S_placeholder"},{s:r.formatMessage({id:"label.repositoryName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.group,error:!!this.state.error.group,helperText:this.state.error.group,onChange:function(t){return e.setState({group:t.target.value})},disabled:!!n.length,InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(s),"/"]}),endAdornment:Object(oe.jsx)(Gt.a,{position:"end",children:"/"})},className:a.svg,children:o.map((function(e){return Object(oe.jsx)(pt.a,{value:e.id,children:e.name},e.id)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"label.repositorySlug"}),value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,error:!!this.state.error.description,helperText:this.state.error.description,value:this.state.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:a.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>200?a.outRange:"",children:[this.state.description.length,"/200"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/repositories")},children:r.formatMessage({id:"label.cancel"})}),Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.createRepository()},children:r.formatMessage({id:"label.ok"})})]})]})})})})})]})}}]),a}(i.a.Component),zt=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)},btn:{marginLeft:e.spacing(2)},svg:{"& svg":{right:e.spacing(3)}},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,currentGroupKey:e.DataStore.currentGroupKey,groupListPending:e.DataStore.groupListPending,groupList:e.DataStore.groupList}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(qt)))),Wt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,forkID:"",name:"",group:"",slug:"",description:"",error:{}},r.observed={forkRepositoryInfo:""},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"group",passPattern:/^[0-9a-f]{32}$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notChoose"},{s:r.props.intl.formatMessage({id:"label.group"})})},{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})},{name:"name",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"slug",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1025,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"name",exceptionCode:1026,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){if(!e.groupListPending&&e.currentUserInfo.id&&(!e.groupList.filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup()).length&&!e.history.location.pathname.match(/^\/groups\/new/i)))return e.dispatchEvent(ae.cancelComformation()),e.dispatchEvent(ae.addComformation("default_group_create_confirm",{title:this.props.intl.formatMessage({id:"message.defaultGroupReqiured"}),description:this.props.intl.formatMessage({id:"message.defaultGroupReqiuredDescription"}),reject:function(){e.history.push("/repositories")},accept:function(){e.history.push("/groups/new")}})),!0;var a=e.match.params.repositoryID,r=(e.repositoryList||[]).filter(U.id(a))[0];this.observed.forkRepositoryInfo!==JSON.stringify(r)&&(this.observed.forkRepositoryInfo=JSON.stringify(r),r&&this.setState({forkID:a,name:r.displayName,slug:r.name,description:r.description}));var i=e.groupList.filter(U.withPermission(L.PermissionCode.GROUP_CREATE_REPO));if(!t.group){var n=i.filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup());n&&n[0]&&n[0].id&&this.setState({group:n[0].id,pending:!1})}return!0}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"forkRepository",value:function(){var e=this;if(!this.checkInput())return!0;var t={forkID:this.state.forkID,group:this.state.group,name:this.state.slug,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),Ht.fork(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code)e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.forkRepositoryFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1});else{var a=t.data;Ht.list().then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.setState({pending:!1}),e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data}),e.props.history.push(W(a.group.name,a.name)))}))}})),!0}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=t.match,n=t.repositoryList,s=t.groupList,o=t.currentUserInfo,c=s.filter(U.withPermission(L.PermissionCode.GROUP_CREATE_REPO)),l=i.params.repositoryID,p=n.filter(U.id(l))[0];return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.forkRepository"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{className:a.paper,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:7,children:p?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.forkFrom_S"},{s:ne.getHost(o)+W(p.group.name,p.name)+" ("+p.group.displayName+"/"+p.displayName+")"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:this.state.group,error:!!this.state.error.group,helperText:this.state.error.group,onChange:function(t){return e.setState({group:t.target.value})},InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(o),"/"]}),endAdornment:Object(oe.jsx)(Gt.a,{position:"end",children:"/"})},className:a.svg,children:c.map((function(e){return Object(oe.jsx)(pt.a,{value:e.id,children:e.name},e.id)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:this.state.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/repositories")},children:[Object(oe.jsx)(fe.a,{icon:He.k}),"\xa0 ",r.formatMessage({id:"label.cancel"})," \xa0"]}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.forkRepository()},children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.h}),"\xa0 ",r.formatMessage({id:"label.fork"})," \xa0"]})]})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})})})})]})}}]),a}(i.a.Component),Vt=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)},btn:{marginRight:e.spacing(2)},svg:{"& svg":{right:e.spacing(3)}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,repositoryList:e.DataStore.repositoryList,groupListPending:e.DataStore.groupListPending,groupList:e.DataStore.groupList}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Wt)))),Jt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,name:"",description:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})},{name:"name",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"name",passPattern:/^[0-9a-zA-Z\\._-]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_has_illegal_character"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"description",passPattern:/^.{0,200}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:200})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"name",exceptionCode:1026,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.props.currentRepositoryConfig.repository&&this.setState({name:this.props.currentRepositoryConfig.repository.displayName,description:this.props.currentRepositoryConfig.repository.description})}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(e.currentRepositoryConfig)!==JSON.stringify(this.props.currentRepositoryConfig)&&e.currentRepositoryConfig.repository?(this.setState({name:e.currentRepositoryConfig.repository.displayName,description:e.currentRepositoryConfig.repository.description}),!1):!(this.state.description!==t.description&&t.description.length<201)||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"updateRepository",value:function(){var e=this;if(!this.checkInput())return!0;var t={repository:this.props.currentRepositoryConfig.repository.id,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),Ht.update(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(e.setState({pending:!1}),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.reloadRepositoryData())})),!0}},{key:"avatarUploaded",value:function(e){e.code||(this.props.dispatchEvent(ae.NewNotification(this.props.intl.formatMessage({id:"message.updated"}),0)),this.reloadRepositoryData())}},{key:"reloadRepositoryData",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),Ht.config({rKey:this.props.currentRepositoryConfig.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:r.header,children:n.formatMessage({id:"menu.general"})})}),a.repository?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.repositoryAvatar"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(ze,{name:"avatar",appendData:{repository:a.repository.id},src:a.repository.icon?D.HOSTS.STATIC_AVATAR_PREFIX+a.repository.icon:a.repository.name.substr(0,1).toUpperCase(),onUpdate:function(t){return e.avatarUploaded(t)},dataProvider:Ht.uploadAvatar})}),Object(oe.jsx)(k.a,{item:!0,xs:3}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.repositoryName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error.input_S_placeholder"},{s:n.formatMessage({id:"label.repositoryName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.repositoryDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:this.state.description,error:!!this.state.error.description,helperText:this.state.error.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:r.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>200?r.outRange:"",children:[this.state.description.length,"/200"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,style:{textAlign:"right"},children:[Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/"+a.group.name+"/"+a.repository.name+"/files")},children:["\xa0 ",n.formatMessage({id:"label.cancel"})," \xa0"]}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:r.btn,disabled:this.state.pending,onClick:function(t){return e.updateRepository()},children:[this.state.pending&&Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}),"\xa0 ",n.formatMessage({id:"label.update"})," \xa0"]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:4})]}):Object(oe.jsx)(i.a.Fragment,{children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})]})}}]),a}(i.a.Component),Kt=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},paper:{padding:e.spacing(2)},btn:{marginLeft:e.spacing(2)},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Jt)))),$t=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,branch:e.currentRepositoryConfig.repository?e.currentRepositoryConfig.repository.defaultBranch:"",rules:null,updateRuleId:null,rule:"",rolePush:L.Role.OWNER,roleMerge:L.Role.OWNER,error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"rule",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.rule"})})},{name:"rule",passPattern:/^([0-9a-zA-Z/]{1,30}|\/\^?.{1,30}\$?\/[igm]*)$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.rule"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props)}},{key:"shouldComponentUpdate",value:function(e,t){return!(JSON.stringify(e.currentRepositoryConfig)!==JSON.stringify(this.props.currentRepositoryConfig)&&!this.props.currentRepositoryConfig.repository)||(this.setState({branch:e.currentRepositoryConfig.repository.defaultBranch}),this.getData(e),!1)}},{key:"getData",value:function(e){var t=this,a=e.currentRepositoryConfig;if(!a.repository)return!1;this.setState({pending:!0}),Ht.protectedBranchRules({repository:a.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.cancelForm(),e.code||t.setState({pending:!1,rules:e.data})}))}},{key:"getTableData",value:function(){var e=this,t=this.props.classes,a=this.state,r=a.rules,n=a.updateRuleId,s=[];return!!r&&(r.map((function(a,r){return"create"===a||a.id===n?s.push(e.createForm()):s.push([Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:a.rule}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.getAllowRoler(a.rolePush)}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.getAllowRoler(a.roleMerge)}),Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.modification",icon:je.m,className:t.icon,onClick:function(t){return e.editRule(a)}}),Object(oe.jsx)(Pe,{label:"label.delete",className:[t.btn,t.icon].join(" "),onClick:function(t){return e.deleteConfirm(a.id,a.rule)},icon:je.H})]})]),!0})),[["150px","200px","200px","150px"],["label.branchRule","label.allowPush","label.allowMerge","label.operating"]].concat(s))}},{key:"getAllowRoler",value:function(e){var t=this.props.intl;return[t.formatMessage({id:"message.noBodyAllow"}),t.formatMessage({id:"label.owner"}),t.formatMessage({id:"label.maintianer"}),t.formatMessage({id:"label.developer"})].slice(e===L.Role.NOBODY?0:1,L.Role.NOBODY-e+1).join(" + ")}},{key:"createForm",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl;return[Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.rule,placeholder:r.formatMessage({id:"message.inputBranchOrRegexp"}),error:!!this.state.error.rule,helperText:this.state.error.rule,onChange:function(t){return e.setState({rule:t.target.value})}}),Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.rolePush,error:!!this.state.error.rolePush,helperText:this.state.error.rolePush,onChange:function(t){return e.setState({rolePush:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:L.Role.OWNER,children:this.getAllowRoler(L.Role.OWNER)}),Object(oe.jsx)(pt.a,{value:L.Role.MAINTAINER,children:this.getAllowRoler(L.Role.MAINTAINER)}),Object(oe.jsx)(pt.a,{value:L.Role.DEVELOPER,children:this.getAllowRoler(L.Role.DEVELOPER)}),Object(oe.jsx)(pt.a,{value:L.Role.NOBODY,children:this.getAllowRoler(L.Role.NOBODY)})]}),Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.roleMerge,error:!!this.state.error.roleMerge,helperText:this.state.error.roleMerge,onChange:function(t){return e.setState({roleMerge:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:L.Role.OWNER,children:this.getAllowRoler(L.Role.OWNER)}),Object(oe.jsx)(pt.a,{value:L.Role.MAINTAINER,children:this.getAllowRoler(L.Role.MAINTAINER)}),Object(oe.jsx)(pt.a,{value:L.Role.NOBODY,children:this.getAllowRoler(L.Role.NOBODY)})]}),Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.ok",icon:je.e,onClick:function(t){return e.createProtectedBranchRule()},className:a.ok}),Object(oe.jsx)(Pe,{label:"label.cancel",icon:je.g,onClick:function(t){return e.cancelForm()},className:a.cancel})]})]}},{key:"settingDefaultBranch",value:function(){var e=this,t=this.props.currentRepositoryConfig,a=this.state.branch;if(!t.repository||a===t.repository.defaultBranch)return!1;this.setState({pending:!0}),Ht.defaultBranch({repository:t.repository.id,old:t.repository.defaultBranch,branch:a}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.reloadRepositoryData()),e.setState({pending:!1})}))}},{key:"reloadRepositoryData",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),Ht.config({rKey:this.props.currentRepositoryConfig.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:t.data})}))}},{key:"cancelForm",value:function(){var e=this.state.rules;e&&e.length&&"create"===e[e.length-1]&&(e=e.slice(0,e.length-1)),this.setState({rules:e,updateRuleId:null,rule:"",rolePush:L.Role.OWNER,roleMerge:L.Role.OWNER,error:{}})}},{key:"createRule",value:function(){var e=this.state.rules;e.length&&"create"===e[e.length-1]||(this.cancelForm(),this.setState({rules:[].concat(Object(T.a)(e),["create"])}))}},{key:"editRule",value:function(e){this.cancelForm(),this.setState({updateRuleId:e.id,rule:e.rule,rolePush:e.rolePush,roleMerge:e.roleMerge})}},{key:"deleteConfirm",value:function(e,t){var a=this,r=this.props.intl;this.cancelForm(),this.props.dispatchEvent(ae.addComformation("delete_protected_branch_rule",{title:r.formatMessage({id:"message.confirmDelete"},{s:r.formatMessage({id:"label.rule"})+" '"+t+"' "}),description:"",reject:function(){return!0},accept:function(){a.deleteRule(e,t)}}))}},{key:"createProtectedBranchRule",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.intl,i=this.state,n=i.rules,s=i.rule,o=i.rolePush,c=i.roleMerge,l=i.updateRuleId;if(!a.repository||!this.checkInput())return!1;var p=n.filter(U.rule(s));if(p.length>0&&(!l||l&&l!==p[0].id))return this.setState({error:{rule:r.formatMessage({id:"message.error._S_duplicate"},{s:r.formatMessage({id:"label.rule"})})}}),!1;var d={repository:a.repository.id,rule:s,rolePush:o,roleMerge:c};this.setState({pending:!0}),l?Ht.updateProtectedBranchRule(Object(y.a)(Object(y.a)({},d),{},{id:l})).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.getData(e.props)),e.setState({pending:!1})})):Ht.createProtectedBranchRule(Object(y.a)({},d)).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createProtectedBrancheRuleFail"}),2)):(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.created"}),0)),e.getData(e.props)),e.setState({pending:!1})}))}},{key:"deleteRule",value:function(e,t){var a=this,r=this.props.currentRepositoryConfig;if(!r.repository||!e||!t)return!1;this.setState({pending:!0}),Ht.deleteProtectedBranchRule({repository:r.repository.id,id:e,rule:t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.error.deleteFail"}),2)):(a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.deleted"}),0)),a.getData(a.props)),a.props.dispatchEvent(ae.cancelComformation()),a.setState({pending:!1})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.classes,i=t.intl,n=this.state,s=n.pending,o=n.branch,c=n.rules;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:r.header,children:i.formatMessage({id:"label.branchSetting"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,className:r.border,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.title,children:i.formatMessage({id:"label.defaultBranch"})}),Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:i.formatMessage({id:"message.defaultBranchDescription"})}),Object(oe.jsx)(k.a,{className:r.content,children:a.repository&&Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:3,children:Object(oe.jsxs)(E.a,{select:!0,fullWidth:!0,variant:"outlined",value:null!==o?o:"0",onChange:function(t){return e.setState({branch:t.target.value})},children:[!a.repository.defaultBranch&&null===o&&Object(oe.jsx)(pt.a,{value:0,children:i.formatMessage({id:"message.settingDefaultBranch"})}),a.branches.map((function(e,t){return Object(oe.jsx)(pt.a,{value:e.name,children:e.name},t)}))]})}),Object(oe.jsx)(k.a,{item:!0,xs:9,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.settingDefaultBranch()},className:r.btn,disabled:s,children:i.formatMessage({id:"message.settingToDefaultBranch"})})})]})})]}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:8,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.title,children:i.formatMessage({id:"label.protectedBranch"})}),Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:i.formatMessage({id:"message.protectedBranchDescription"})})]}),Object(oe.jsx)(k.a,{item:!0,xs:4,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.createRule()},disabled:s,className:r.create,children:i.formatMessage({id:"message.createProtectedBranchRule"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.table,children:null!==c?0!==c.length?Object(oe.jsx)(ke,{data:this.getTableData()}):Object(oe.jsx)(Pt,{imageName:"branch-rules-empty.png",title:i.formatMessage({id:"message.protectedBranchRuleEmpty"}),notice:""}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:r.loading,children:Object(oe.jsx)(he.a,{})})})]})})]})}}]),a}(i.a.Component),Zt=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},title:{lineHeight:e.spacing(3)+"px",paddingBottom:e.spacing(2)},content:{paddingTop:e.spacing(3),paddingBottom:e.spacing(5)},create:{marginTop:e.spacing(1)},size:{fontSize:"12px"},btn:{marginLeft:e.spacing(1)},border:{borderBottom:"1px solid "+e.palette.border,marginBottom:e.spacing(3)},icon:{color:e.palette.text.light,"& svg":{width:"16px !important",height:"16px !important"}},ok:{"& svg":{color:e.palette.success.main+" !important"}},cancel:{marginLeft:e.spacing(1),"& svg":{width:"14px !important",height:"14px !important",padding:"2px",color:e.palette.error.main+" !important"}},table:{marginTop:e.spacing(3),"& tbody tr":{"&:hover":{background:e.palette.background.light+" !important"}},"& td":{lineHeight:e.spacing(6)+"px","& > div":{verticalAlign:"middle"}}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))($t)))),Yt=a(455),Xt=a(464),Qt=a(434),ea=a(457),ta=[{event:null,title:"menu.file_pl",checked:!1,divider:!0},{event:"hook:postReceive",title:"label.pushEvent",checked:!0,divider:!1},{event:"repo:fork",title:"label.forkRepository",checked:!1,divider:!1},{event:"branch:create",title:"label.newBranch",checked:!1,divider:!1},{event:"branch:remove",title:"label.deleteBranch",checked:!1,divider:!1},{event:"branch:changeDefaultBranch",title:["label.update_S_","label.defaultBranch"],checked:!1,divider:!1},{event:"tag:create",title:"label.newTag",checked:!1,divider:!1},{event:"tag:remove",title:"label.deleteTag",checked:!1,divider:!1},{event:"mergeRequest:create",title:"label.createMergeRequest",checked:!1,divider:!1},{event:"mergeRequest:close",title:"label.closeMergeRequest",checked:!1,divider:!1},{event:"mergeRequest:merge",title:"label.mergeRequest",checked:!1,divider:!1},{event:"mergeRequestReviewer:create",title:"message.selectReviewer",checked:!1,divider:!1},{event:"mergeRequestReviewer:delete",title:"message.deleteReviewer",checked:!1,divider:!1},{event:"mergeRequestReviewer:review",title:"label.reviewReviewer",checked:!1,divider:!1},{event:null,title:"label.member_pl",checked:!1,divider:!0},{event:"repo:addMember",title:"label.inviteMember",checked:!1,divider:!1},{event:"repo:changeMemberRole",title:"label.changeMemberRole",checked:!1,divider:!1},{event:"repo:removeMember",title:"label.removeMember",checked:!1,divider:!1},{event:null,title:"menu.setting_pl",checked:!1,divider:!0},{event:"repo:updateAvator",title:["label.update_S_","label.repositoryAvatar"],checked:!1,divider:!1},{event:"repo:updateName",title:["label.update_S_","label.repositoryName"],checked:!1,divider:!1},{event:"repo:updateDescription",title:["label.update_S_","label.repositoryDescription"],checked:!1,divider:!1},{event:"repo:changeOwner",title:["label.update_S_","label.owner"],checked:!1,divider:!1},{event:"repo:changeURL",title:["label.update_S_","label.repositoryURL"],checked:!1,divider:!1},{event:"repo:remove",title:"label.deleteRepository",checked:!1,divider:!1},{event:"branch:createProtectedBranchRule",title:"label.createProtectedBranchRule",checked:!1,divider:!1},{event:"branch:changeProtectedBranchRule",title:"label.changeProtectedBranchRule",checked:!1,divider:!1},{event:"branch:removeProtectedBranchRule",title:"label.removeProtectedBranchRule",checked:!1,divider:!1}],aa=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.title,a=e.children,r=e.classes;return Object(oe.jsxs)(k.a,{container:!0,className:r.list,children:[t&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:t?"":r.list2,children:a})]})}}]),a}(i.a.Component),ra=Object(C.a)((function(e){return{list:{border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px "},title:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3),background:e.palette.background.main,borderRadius:e.spacing(.5)+"px "+e.spacing(.5)+"px 0px 0px","& > div":{lineHeight:e.spacing(5)+"px"}},list2:{"& div:nth-child(1), & li:nth-child(1)":{border:"0px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(aa))),ia=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={webhookTab:0,webhookId:"",logData:null},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){}},{key:"getData",value:function(e){var t=this;if(!e)return!1;this.setState({webhookTab:0,webhookId:e,logData:null}),Ht.getRepositoryWebhookLogData({id:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.setState({logData:e.data})}))}},{key:"getTime",value:function(e,t){return Math.floor(100*(t-e))/100}},{key:"render",value:function(){var e=this,t=this.props,a=t.list,r=t.classes,i=t.intl,n=this.state,s=n.webhookTab,o=n.webhookId,c=n.logData;return Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ra,{title:"",children:a.map((function(t){return Object(oe.jsxs)(k.a,{container:!0,className:r.webhook,children:[Object(oe.jsxs)(k.a,{item:!0,xs:8,className:r.subline,children:[Object(oe.jsx)(fe.a,{icon:t.success?je.P:je.R,className:t.success?r.success:r.error}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:r.webhookid,children:t.id}),Object(oe.jsx)(Pe,{label:"label.copy",onClick:function(e){return X(t.id)},icon:je.k})]}),Object(oe.jsxs)(k.a,{item:!0,xs:4,className:[r.subline,r.date].join(" "),children:[Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:t.created}),o===t.id?Object(oe.jsx)(Pe,{label:"label.close",onClick:function(t){return e.setState({webhookId:""})},icon:je.g,className:r.more}):Object(oe.jsx)(Pe,{label:"label.detail",onClick:function(a){return e.getData(t.id)},icon:je.cb,className:r.more})]}),o&&o===t.id&&c&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.detail,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(jt,{tabs:[i.formatMessage({id:"label.request"}),Object(oe.jsxs)(k.a,{children:[i.formatMessage({id:"label.response"}),"\u2003",Object(oe.jsx)($e,{color:t.success?"success":"error",text:t.status+""})]})],currentTab:s,onChange:function(t,a){return e.setState({webhookTab:a})},children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:r.time,children:[Object(oe.jsx)(fe.a,{icon:je.f}),"\xa0",i.formatMessage({id:"message.useTime_n"},{n:e.getTime(t.start,t.end)})]})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h5",component:"div",children:i.formatMessage({id:"label.httpHeaders"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{className:r.code,children:0===s?Object.keys(c.request.headers).map((function(e){return Object(oe.jsxs)(k.a,{children:[Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"span",children:[e,":"]}),"\u2003",Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:c.request.headers[e]})]},e)})):Object.keys(c.response.headers).map((function(e){return Object(oe.jsxs)(k.a,{children:[Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"span",children:[e,":"]}),"\u2003",Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:c.response.headers[e]})]},e)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h5",component:"div",children:[0===s?i.formatMessage({id:"label.httpPayload"}):i.formatMessage({id:"label.httpBody"}),"\xa0",0===s&&Object(oe.jsx)(Oe,{type:"icon",doc:"/repo/webhooks.md"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{className:r.code,children:Object(oe.jsx)("pre",{children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:0===s?JSON.stringify(JSON.parse(c.request.body),null,4):c.response.body})})})})]})})]},t.id)}))})})}}]),a}(i.a.Component),na=Object(R.b)(Object(C.a)((function(e){return{webhook:{borderTop:"1px solid "+e.palette.border},subline:{display:"flex",alignItems:"center",height:e.spacing(6),padding:"0px "+e.spacing(3)+"px"},date:{justifyContent:"flex-end"},success:{color:e.palette.success.main},error:{color:e.palette.error.main},webhookid:{marginLeft:e.spacing(2),marginRight:e.spacing(1),borderRadius:e.spacing(.5),background:e.palette.background.dark,padding:e.spacing(.5)+"px "+e.spacing(1)+"px"},more:{marginLeft:e.spacing(2)},detail:{padding:e.spacing(3),paddingTop:0},time:{lineHeight:e.spacing(5)+"px"},code:{overflowX:"auto",padding:e.spacing(1),borderRadius:e.spacing(.5),background:e.palette.background.main,border:"1px solid "+e.palette.border}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ia))),sa=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,webhooks:null,webhook:null,pushEvent:"hook:postReceive",edit:!1,webhookLogs:null,isShowWebhookForm:!!window.location.search,url:"",secret:"",trigger:"1",active:"1",error:{},events:JSON.parse(JSON.stringify(ta))},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"url",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.url"})})},{name:"url",passPattern:/^http(s)?:\/\/.+/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.url"})})},{name:"url",passPattern:/^\S{0,255}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:255})},{name:"secret",passPattern:/^\S{0,255}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:255})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props)}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(e.currentRepositoryKey)===JSON.stringify(this.props.currentRepositoryKey)||(this.getData(e),!1)}},{key:"getData",value:function(e){var t=this,a=e.currentRepositoryKey;if(!a)return!1;this.setState({pending:!0}),Ht.webhooks({repository:a}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var a=e.data;a.map((function(e,a){return e.events=t.getEvents(e.events),!0})),t.setState({pending:!1,webhooks:a})}}))}},{key:"getWebhookLogs",value:function(e){var t=this;if(!e)return!1;Ht.getRepositoryWebhookLogs({webhook:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.setState({webhookLogs:e.data})}))}},{key:"editWebhook",value:function(){var e=this,t=this.props,a=t.intl,r=t.currentRepositoryKey,i=this.state,n=i.pending,s=i.isShowWebhookForm,o=i.trigger,c=i.url,l=i.secret,p=i.webhook,d=i.edit,u=i.active;if(n||!s||!this.checkInput())return!1;var m="1"===o?this.state.pushEvent:this.getCheckedEvents();m||this.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.webhookEventsNeed"}),1)),this.setState({pending:!0}),Ht.editWebhook({repository:r,rwKey:p?p.id:"",url:c,secret:l,events:m,active:u}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({pending:!1}),t.code||(e.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:d?"message.updated":"message.created"}),0)),e.initData(),e.setState({isShowWebhookForm:!1}),e.getData(e.props))}))}},{key:"updateWebhook",value:function(e){var t=this,a=this.props.currentRepositoryKey;if(!a)return!1;this.setState({pending:!0}),Ht.getWebhook({repository:a,rwKey:e.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var a=e.data;t.setState({pending:!1,edit:!0,webhook:a,isShowWebhookForm:!0,url:a.url,secret:a.secret,trigger:a.events===t.state.pushEvent?"1":"2",events:t.getEvents(a.events),active:a.active})}}))}},{key:"deleteWebhook",value:function(e){var t=this,a=this.props,r=a.currentRepositoryKey,i=a.intl;this.props.dispatchEvent(ae.addComformation("delete_webhook",{title:i.formatMessage({id:"message.confirmDelete"},{s:i.formatMessage({id:"label.webhook"})}),description:"",reject:function(){return!0},accept:function(){Ht.deleteWebhook({repository:r,rwKey:e.id}).then(ne.withEventdispatcher(t.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.props.dispatchEvent(ae.cancelComformation()),e.code||(t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.deleted"}),0)),t.getData(t.props))}))}}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state.webhooks,n=[];return i.map((function(t){var i=0;return n.push([Object(oe.jsx)(be.a,{title:r.formatMessage({id:"1"===t.active?"label.enable":"label.disable"}),placement:"top",children:Object(oe.jsx)("div",{className:[a.dot,a.cursorPointer,"1"===t.active?"":a.close].join(" ")})}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.user}),Object(oe.jsx)(be.a,{title:t.url,placement:"top",children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:a.cursorPointer,onClick:function(a){return X(t.url,(function(){return e.props.dispatchEvent(ae.NewNotification(r.formatMessage({id:"label.copied"}),0))}))},children:t.url.substr(0,40)})}),Object(oe.jsx)(be.a,{title:t.secret,placement:"top",children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:a.cursorPointer,onClick:function(a){return X(t.secret,(function(){return e.props.dispatchEvent(ae.NewNotification(r.formatMessage({id:"label.copied"}),0))}))},children:t.secret.substr(0,20)})}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.events.map((function(e,t){return e.checked?4===++i?"...":i>4?"":("string"===typeof e.title?r.formatMessage({id:e.title}):r.formatMessage({id:e.title[0]},{s:r.formatMessage({id:e.title[1]})}))+"; ":""}))}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:Object(oe.jsx)(Nt,{timestamp:1*t.updated})}),Object(oe.jsxs)(w.a,{children:[Object(oe.jsx)(Pe,{label:"label.update",icon:je.m,className:a.icon,onClick:function(a){return e.updateWebhook(t)}}),Object(oe.jsx)(Pe,{label:"label.delete",icon:je.H,className:a.icon,onClick:function(a){return e.deleteWebhook(t)}}),Object(oe.jsx)(Pe,{label:"label.log",icon:je.X,className:a.icon,onClick:function(a){return e.getWebhookLogs(t.id)}})]})]),!0})),[["10px","auto","auto","auto","auto","auto","auto"],["","label.creator","label.url","label.webhookSecret","label.webhookTrigger","label.updateTime",""]].concat(n)}},{key:"initData",value:function(){this.setState({edit:!1,webhook:null,url:"",secret:"",trigger:"1",events:JSON.parse(JSON.stringify(ta)),active:"1"})}},{key:"getEvents",value:function(e){var t=JSON.parse(JSON.stringify(ta));return e=e.split(","),t.map((function(t){return e.indexOf(t.event)>-1?t.checked=!0:t.checked=!1,!0})),t}},{key:"changeEvent",value:function(e){var t=this.state.events,a=!1;e.target.checked&&(a=!0),t.map((function(t){return t.event===e.target.value&&(t.checked=a),!0})),this.setState({events:t})}},{key:"getCheckedEvents",value:function(){var e=this.state.events,t=[];return e.map((function(e){return e.checked&&t.push(e.event),!0})),t.join(",")}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,n=this.state,s=n.pending,o=n.webhooks,c=n.webhookLogs,l=n.isShowWebhookForm,p=n.url,d=n.secret,u=n.trigger,m=n.events,h=n.edit,g=n.active,b=n.error;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",className:a.header,children:[r.formatMessage({id:"label.webhookSetting"}),!l&&Object(oe.jsx)(_.a,{color:"primary",disableElevation:!0,variant:"contained",disabled:s,onClick:function(t){return e.setState({isShowWebhookForm:!0})},children:r.formatMessage({id:"label.createWebhook"})})]})}),l&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:h?"label.updateWebhook":"label.createWebhook"})})}),Object(oe.jsxs)(k.a,{container:!0,className:a.webhookForm,children:[Object(oe.jsx)(k.a,{item:!0,xs:3}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",children:[r.formatMessage({id:"label.url"})," ",Object(oe.jsx)("span",{className:a.need,children:"*"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.url"})}),value:p,error:!!b.url,helperText:b.url,onChange:function(t){return e.setState({url:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.contentType"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:"application/json"})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",children:[r.formatMessage({id:"label.webhookSecret"}),"\xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/repo/webhooks.md"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.webhookSecret"})}),value:d,error:!!b.secret,helperText:b.secret,onChange:function(t){return e.setState({secret:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.webhookTrigger"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(Xt.a,{value:u,onChange:function(t){return e.setState({trigger:t.target.value})},children:[Object(oe.jsx)(Qt.a,{value:"1",control:Object(oe.jsx)(Yt.a,{}),label:r.formatMessage({id:"label.pushTrigger"})}),Object(oe.jsx)(Qt.a,{value:"2",control:Object(oe.jsx)(Yt.a,{}),label:Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:r.formatMessage({id:"label.customeTrigger"})}),"\xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/repo/webhooks.md"})]})})]})}),"2"===u&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:1}),Object(oe.jsx)(k.a,{item:!0,xs:11,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,children:m.map((function(t,a){return t.divider?Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:t.title})})}):Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsx)(Qt.a,{control:Object(oe.jsx)(ea.a,{checked:t.checked,onChange:function(t){return e.changeEvent(t)},value:t.event}),label:"string"===typeof t.title?r.formatMessage({id:t.title}):r.formatMessage({id:t.title[0]},{s:r.formatMessage({id:t.title[1]})})})})}))})})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.status"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(Xt.a,{value:g,onChange:function(t){e.setState({active:t.target.value})},row:!0,children:[Object(oe.jsx)(Qt.a,{value:"1",control:Object(oe.jsx)(Yt.a,{}),label:r.formatMessage({id:"label.enable"})}),Object(oe.jsx)(Qt.a,{value:"2",control:Object(oe.jsx)(Yt.a,{}),label:r.formatMessage({id:"label.disable"})})]})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{color:"primary",variant:"outlined",disableElevation:!0,disabled:s,onClick:function(t){h&&e.initData(),e.setState({isShowWebhookForm:!1})},children:r.formatMessage({id:"label.cancel"})}),Object(oe.jsxs)(_.a,{color:"primary",variant:"contained",disableElevation:!0,className:a.btn,disabled:s,onClick:function(t){return e.editWebhook()},children:[s&&Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}),r.formatMessage({id:h?"label.update":"label.create"})]})]})]})})]})]}),!l&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.webhookList"})})}),o?o.length>0?Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getTableData()})}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:a.loading,children:Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:r.formatMessage({id:"message.webhookListEmpty"})})}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:a.loading,children:Object(oe.jsx)(he.a,{})})]}),c&&Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:a.logs,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h5",component:"div",children:[r.formatMessage({id:"label.webhookLog"}),"\xa0\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:["(",r.formatMessage({id:"message.show_n_record"},{n:30}),")"]})]})}),Object(oe.jsx)(na,{list:c})]})]})]})}}]),a}(i.a.Component),oa=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{display:"flex",marginBottom:e.spacing(4),justifyContent:"space-between",lineHeight:e.spacing(5)+"px",borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},webhookForm:{paddingTop:e.spacing(6),marginBottom:e.spacing(2),paddingBottom:e.spacing(6)},btn:{verticalAlign:"bottom",marginTop:e.spacing(2),marginLeft:e.spacing(3)},icon:{color:e.palette.text.light},need:{color:"red"},logs:{marginTop:e.spacing(3)},dot:{width:e.spacing(1),height:e.spacing(1),borderRadius:"50%",backgroundColor:e.palette.primary.main},close:{backgroundColor:e.palette.error.main},cursorPointer:{cursor:"pointer"}}}))(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(sa))),ca=a(437),la=a(435),pa=a(436),da=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.currentUserInfo,a=e.item,r=e.classes,i=e.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+a.icon,className:r.avatar})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:r.userName,children:[a.name," \xa0",t.id===a.id&&Object(oe.jsx)($e,{text:i.formatMessage({id:"label.yourself"})})]})})]})}}]),a}(i.a.Component),ua=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{avatar:{width:e.spacing(4),height:e.spacing(4)},userName:{lineHeight:e.spacing(4)+"px"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{}}))(da))))),ma=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"update",value:function(e){"number"===typeof e?this.props.onUpdate(e):this.props.onRemove(e)}},{key:"render",value:function(){var e=this,t=this.props,a=t.item,r=t.intl,n=t.disabled,s=t.classes,o=t.removeable;return n=n||a.creatorFlag||a.deleteFlag,Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Ne.a,{children:Object(oe.jsx)(ua,{item:a})}),Object(oe.jsx)(Ne.a,{children:a.email}),Object(oe.jsx)(Ne.a,{className:s.padding,align:"right",children:Object(oe.jsxs)(E.a,{select:!0,disabled:n,className:n?s.disabled:"",value:a.role,onChange:function(t){return t.target.value&&e.update(t.target.value)},align:"right",InputProps:{classes:{underline:s.underline}},children:[Object(oe.jsx)(la.a,{disableSticky:!0,children:r.formatMessage({id:"label.role"})}),Object(oe.jsx)(pt.a,{value:L.Role.GUEST,children:r.formatMessage({id:"label.guest"})},L.Role.GUEST),Object(oe.jsx)(pt.a,{value:L.Role.REPORTER,children:r.formatMessage({id:"label.reporter"})},L.Role.REPORTER),Object(oe.jsx)(pt.a,{value:L.Role.DEVELOPER,children:r.formatMessage({id:"label.developer"})},L.Role.DEVELOPER),Object(oe.jsx)(pt.a,{value:L.Role.MAINTAINER,children:r.formatMessage({id:"label.maintianer"})},L.Role.MAINTAINER),Object(oe.jsx)(pt.a,{value:L.Role.OWNER,children:r.formatMessage({id:"label.owner"})},L.Role.OWNER),o&&Object(oe.jsx)(pa.a,{className:s.split}),o&&Object(oe.jsxs)(pt.a,{value:a.id,className:s.deleteMember,children:[Object(oe.jsx)(fe.a,{icon:je.H}),"\xa0\xa0",r.formatMessage({id:"label.removeMember"})]},a.id)]})})]})}}]),a}(i.a.Component),ha=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{padding:{paddingRight:e.spacing(1)},underline:{"&&&:before":{borderBottom:"none"},"&&:after":{borderBottom:"none"}},backgroundColor:{"&&&:focus":{backgroundColor:"none"}},deleteMember:{color:e.palette.error.main},split:{margin:e.spacing(1)+"px 0px"},disabled:{"& svg":{opacity:0}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ma))))),ga=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"deleteConfirm",value:function(e,t){var a=this,r=this.props,i=r.intl,n=r.removeMember,s=r.isRepository,o=r.currentConfig;this.props.dispatchEvent(ae.addComformation("branch_remove",{title:i.formatMessage({id:"message.confirmDelete"},{s:i.formatMessage({id:"label.member"})+" '"+t+"' "}),description:"",reject:function(){return!0},accept:function(){n(s?o.repository.id:o.group.id,e),a.props.dispatchEvent(ae.cancelComformation())}}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.intl,r=t.classes,n=t.currentConfig,s=t.changeMemberRole,o=t.isRepository,c=t.groupMember,l=t.currentUserInfo,p=c?n.members.filter(U.notDeleted()).filter(U.groupMember()):n.members.filter(U.notDeleted()).filter(U.notGroupMember()),d=n.members.filter(U.id(l.id))[0];return Object(oe.jsx)(i.a.Fragment,{children:n?Object(oe.jsx)(ca.a,{component:M.a,children:Object(oe.jsxs)(Se.a,{children:[Object(oe.jsx)(Re.a,{children:Object(oe.jsxs)(Me.a,{className:r.textMain,children:[Object(oe.jsx)(Ne.a,{width:"40%",children:c?a.formatMessage({id:"label.groupMember"}):a.formatMessage({id:"label.repositoryMember"})}),Object(oe.jsx)(Ne.a,{width:"40%",children:a.formatMessage({id:"label.email"})}),Object(oe.jsxs)(Ne.a,{width:"20%",align:"right",children:[a.formatMessage({id:"label.role"})," ",Object(oe.jsx)(Oe,{doc:"/common/role.md",type:"icon"})]})]})}),Object(oe.jsx)(Ce.a,{children:p.map((function(t,a){return Object(oe.jsx)(Me.a,{className:r.tableRow,children:Object(oe.jsx)(ha,{item:t,disabled:d.role1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.AddFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(e.setState({pending:!1,email:""}),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.Added"}),0)),e.reloadRepositoryData())})),!0}},{key:"changeMemberRole",value:function(e,t,a){var r=this,i={repository:e,userID:t,roleID:a};Ht.changeMemberRole(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&r.props.dispatchEvent(ae.NewNotification(r.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(r.props.dispatchEvent(ae.NewNotification(r.props.intl.formatMessage({id:"message.updated"}),0)),r.reloadRepositoryData())}))}},{key:"removeMember",value:function(e,t){var a=this,r={repository:e,userID:t};Ht.removeMember(r).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.error.removeFail"}),2)):(a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.removed"}),0)),a.reloadRepositoryData())}))}},{key:"reloadRepositoryData",value:function(){var e=this;Ht.config({rKey:this.props.currentRepositoryConfig.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.classes,i=t.intl;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:"flex-end",className:r.marginBottom,children:[Object(oe.jsx)(k.a,{item:!0,xs:3,children:Object(oe.jsx)(E.a,{fullWidth:!0,value:this.state.email,error:!!this.state.error.email,helperText:this.state.error.email,onChange:function(t){return e.setState({email:t.target.value})},onKeyDown:function(t){13===t.keyCode&&e.addMembers()},variant:"outlined",placeholder:i.formatMessage({id:"message.plsInputInvitedEmail"})})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,onClick:function(t){return e.addMembers()},disabled:this.state.pending,children:[this.state.pending?[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," "]:"",i.formatMessage({id:"label.inviteMember"})]})})]}),Object(oe.jsx)(k.a,{container:!0,spacing:2,className:r.marginBottom,children:a.repository?Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ba,{currentConfig:a,changeMemberRole:function(t,a,r){return e.changeMemberRole(t,a,r)},removeMember:function(t,a){return e.removeMember(t,a)},isRepository:Boolean(!0),groupMember:Boolean(!1)})}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:r.loading,children:Object(oe.jsx)(he.a,{})})}),Object(oe.jsx)(k.a,{container:!0,spacing:2,children:a.members?a.members.filter(U.notDeleted()).filter(U.groupMember()).length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ba,{currentConfig:a,changeMemberRole:function(t,a,r){return e.changeMemberRole(t,a,r)},removeMember:function(t,a){return e.removeMember(t,a)},isRepository:Boolean(!0),groupMember:Boolean(!0)})}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:r.loading,children:Object(oe.jsx)(he.a,{})})})]})}}]),a}(i.a.Component),ja=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)},btn:{marginRight:e.spacing(2)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},marginBottom:{marginBottom:e.spacing(4)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(fa))));var va={list:function(){return ee.GET("/api/group/list")},create:function(e){return ee.POST("/api/group/create",e)},config:function(e){return ee.GET("/api/group/config",null,e)},mergeRequests:function(e){return ee.GET("/api/group/mergeRequests",null,e)},activities:function(e){return ee.GET("/api/group/activities",null,e)},uploadAvatar:function(e){return ee.POST("/api/group/uploadAvatar",e)},update:function(e){return ee.POST("/api/group/update",e)},addMember:function(e){return ee.POST("/api/group/addMember",e)},changeMemberRole:function(e){return ee.POST("/api/group/changeMemberRole",e)},removeMember:function(e){return ee.POST("/api/group/removeMember",e)},changeOwner:function(e){return ee.POST("/api/group/changeOwner",e)},updateName:function(e){return ee.POST("/api/group/updateName",e)},deleteGroup:function(e){return ee.POST("/api/group/deleteGroup",e)}},Oa=Object(C.a)((function(e){return{root:{minHeight:e.spacing(6)}}}))(pt.a),ya=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,groupConfig:{},slug:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"slug",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1025,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){return""!==t.slug||!e.currentRepositoryConfig.repository||(this.setState({slug:e.currentRepositoryConfig.repository.name}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1,this.setState({slug:""})}},{key:"deleteRepository",value:function(){var e=this;this.props.dispatchEvent(ae.addComformation("repository_delete_repository",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.repositoryDeleteRepositoryNotice"}),reject:function(){return!0},accept:function(){e.deleteRepositoryConfirmed(),e.props.dispatchEvent(ae.cancelComformation())}}))}},{key:"deleteRepositoryConfirmed",value:function(){var e=this;this.props.dispatchEvent(ae.addComformation("repository_delete_repository_confirm",{title:this.props.intl.formatMessage({id:"label.dangerOperationConfirm"}),description:this.props.intl.formatMessage({id:"message.repositoryDeleteRepositoryConfirmNotice"}),reject:function(){return!0},accept:function(){var t={repository:e.props.currentRepositoryConfig.repository.id};e.setState({pending:!0}),Ht.deleteRepository(t).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.deleteFail"}),0)):(e.reloadRepositoryGroupList(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.deleted"}),0)),e.props.history.push(W("repositories"))),e.props.dispatchEvent(ae.cancelComformation()),e.setState({pending:!1})}))}}))}},{key:"changeSlug",value:function(){var e=this;if(!this.checkInput())return!1;this.props.dispatchEvent(ae.addComformation("repository_change_slug",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.repositoryChangeURLNotice"}),reject:function(){return!0},accept:function(){var t={repository:e.props.currentRepositoryConfig.repository.id,name:e.state.slug};e.setState({pending:!0}),Ht.updateName(t).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)&&t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(e.reloadRepositoryData(),e.reloadRepositoryGroupList(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.props.history.push(W("repositories"))),e.setState({pending:!1}),e.props.dispatchEvent(ae.cancelComformation())}))}}))}},{key:"changeOwner",value:function(e){var t=this;this.props.dispatchEvent(ae.addComformation("repository_change_creator",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.repositoryChangeCreatorNotice"}),reject:function(){return!0},accept:function(){var a={repository:t.props.currentRepositoryConfig.repository.id,userID:e};t.setState({pending:!0}),Ht.changeOwner(a).then(ne.withEventdispatcher(t.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.updateFail"}),2)):(t.reloadRepositoryData(),t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.updated"}),0))),t.props.dispatchEvent(ae.cancelComformation()),t.setState({pending:!1})}))}}))}},{key:"reloadRepositoryData",value:function(){var e=this;Ht.config({rKey:this.props.currentRepositoryConfig.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:t.data})}))}},{key:"reloadRepositoryGroupList",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.groupList.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.currentUserInfo,i=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:i.header,children:n.formatMessage({id:"label.repositoryAdvancedSetting"})})}),a.repository?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.updateCreator"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:a.repository.owner,onChange:function(t){return e.changeOwner(t.target.value)},children:a.members.map((function(e,t){return Object(oe.jsx)(Oa,{value:e.id,children:Object(oe.jsx)(ua,{item:e})},t)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.section,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.updateRepositoryURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(r),"/",a.group.name,"/"]})},onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(_.a,{color:"primary",variant:"contained",disableElevation:!0,onClick:function(t){return e.changeSlug()},disabled:this.state.pending,children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.d}),"\xa0 ",n.formatMessage({id:"label.save"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.section,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.deleteRepository"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsx)(w.a,{variant:"body2",children:n.formatMessage({id:"message.repositoryDeleteTipFirst"})}),Object(oe.jsx)(w.a,{variant:"body2",children:n.formatMessage({id:"message.repositoryDeleteTipSecond"})})]}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(_.a,{variant:"contained",disableElevation:!0,onClick:function(t){return e.deleteRepository()},className:i.warning,disabled:this.state.pending,children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:je.H}),"\xa0 ",n.formatMessage({id:"label.deleteRepository"})]})})]})})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:i.loading,children:Object(oe.jsx)(he.a,{})})]})}}]),a}(i.a.Component),xa=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},section:{marginTop:e.spacing(3)},paper:{padding:e.spacing(2)},btn:{marginRight:e.spacing(2)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},warning:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ya)))),Sa=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.theme,r=e.history,i=e.groupInfo,n=e.repositoryList,s=e.intl;return Object(oe.jsx)(at.a,{className:t.card,onClick:function(){r.push(W("groups",i.name))},children:Object(oe.jsx)(rt.a,{className:t.content,style:{paddingBottom:a.spacing(2)},component:"div",children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:3,className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:i.icon?Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+i.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,children:i.name.substr(0,1).toUpperCase()})}),Object(oe.jsxs)(k.a,{item:!0,className:t.title,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:"text-overflow",children:i.displayName}),Object(oe.jsx)(w.a,{variant:"body1",className:t.ownerMarker,children:Object(oe.jsx)($e,{color:i.role===L.Role.OWNER?"containedInfo":"info",text:s.formatMessage({id:"label.roleID_"+i.role})})})]})]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(Pe,{label:"label.setting",icon:je.E,onClick:function(e){e.stopPropagation(),r.push(W("groups",i.name,"settings"))}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"caption",component:"div",className:[t.description,"text-overflow"].join(" "),children:i.description||"..."})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[Object(oe.jsx)(fe.a,{icon:je.B,className:t.listIcon})," \xa0",n.filter(U.group(i.id)).length," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.v,className:t.listIcon})," \xa0",i.members.length]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(pa.a,{})}),Object(oe.jsx)(k.a,{container:!0,item:!0,xs:12,children:i.members.map((function(e,a){return e.icon?Object(oe.jsx)(Be.a,{className:t.avatar,src:D.HOSTS.PGYER_AVATAR_HOST+e.icon},a):Object(oe.jsx)(Be.a,{className:t.avatar,children:e.name.substr(0,1).toUpperCase()},a)}))})]})})})}}]),a}(r.Component),Ca=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{card:{cursor:"pointer",transition:e.transitions.create("box-shadow"),boxShadow:e.boxShadow.card,"&:hover":{boxShadow:e.boxShadow.cardHover}},content:{padding:e.spacing(3),paddingBottom:e.spacing(2)},icon:{width:e.spacing(6),height:e.spacing(6)},title:{maxWidth:e.spacing(16),overflow:"hidden"},ownerMarker:{lineHeight:e.spacing(3)+"px"},description:{height:e.spacing(1.5),lineHeight:e.spacing(1.5)+"px"},avatar:{marginRight:e.spacing(1),width:e.spacing(3),height:e.spacing(3)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList}}),(function(e,t){return{}}))(Sa))))),Na=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={currentTab:0},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this,t=this.props,a=t.groupList,r=t.currentUserInfo,i=t.classes,n=t.intl,s=[n.formatMessage({id:"label.all"}),n.formatMessage({id:"label.IJoined"}),n.formatMessage({id:"label.ICreated"})],o=[function(){return!0},U.not(U.creator(r.id)),U.creator(r.id)],c=a.filter(U.withPermission(L.PermissionCode.REPO_READ)).filter(o[this.state.currentTab]);return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(jt,{tabs:s,currentTab:this.state.currentTab,onChange:function(t,a){e.setState({currentTab:a})},children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(){e.props.history.push(W("groups","new"))},children:n.formatMessage({id:"label.newGroup"})})})}),c.map((function(e,t){return Object(oe.jsx)(k.a,{item:!0,xs:12,sm:6,md:4,lg:3,className:i.container,children:Object(oe.jsx)(Ca,{groupInfo:e},t)},t)})),0===c.length&&Object(oe.jsx)(Pt,{imageName:"repositories-empty.png",title:n.formatMessage({id:"message._S_listEmpty"},{s:n.formatMessage({id:"label.group"})}),notice:n.formatMessage({id:"message.groupListEmptyNotice"}),children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(){e.props.history.push(W("groups","new"))},children:n.formatMessage({id:"label.newGroup"})})})]})}}]),a}(i.a.Component),Ra=Object(R.b)(Object(C.a)((function(e){return{container:{minWidth:e.spacing(40)}}}))(Object(l.b)((function(e,t){return{groupList:e.DataStore.groupList,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{}}))(Na))),Ma=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,personalGroupCreateFlag:!1,groupList:null,groupListChecked:!1,name:"",slug:"",description:"",error:{}},r.observed={forkRepositoryInfo:""},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"name",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})},{name:"name",passPattern:/^[0-9a-zA-Z\\._-]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_has_illegal_character"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupURL"})})},{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupSlug"})})},{name:"slug",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"description",passPattern:/^.{0,200}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:200})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1027,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.groupURL"})})},{name:"name",exceptionCode:1028,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.groupName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){var e=this;this.mountedFlag=!0,va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.props.dispatchEvent({type:"data.groupList.update",data:t.data}),e.setState({groupList:t.data}))}))}},{key:"shouldComponentUpdate",value:function(e,t){if(e.currentUserInfo&&e.currentUserInfo.id&&null!==t.groupList&&!t.groupListChecked)if(t.groupList.filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup()).length)this.setState({groupListChecked:!0,personalGroupCreateFlag:!1,pending:!1});else{var a=e.currentUserInfo.email.split("@");this.setState({groupListChecked:!0,personalGroupCreateFlag:!0,pending:!1,name:a[0],slug:ne.makeSlug(a[0])})}return!(this.state.description!==t.description&&t.description.length<201)||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"createGroup",value:function(){var e=this;if(!this.checkInput())return!0;var t={name:this.state.slug,type:this.state.personalGroupCreateFlag?B.USER:B.NORMAL,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),va.create(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code)e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createGroupFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1});else{var a=t.data;va.list().then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.setState({pending:!1}),e.props.dispatchEvent({type:"data.groupList.update",data:t.data}),e.props.history.push(W("groups",a.name)))}))}})),!0}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=t.currentUserInfo;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.newGroup"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{className:a.paper,children:null!==this.state.groupList?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[this.state.personalGroupCreateFlag&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",gutterBottom:!0,children:r.formatMessage({id:"message.createPersonalGroupNotice"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.groupName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error.input_S_placeholder"},{s:r.formatMessage({id:"label.groupName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.groupURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message._S_empty"},{s:r.formatMessage({id:"label.path"})}),value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(i),"/"]})},onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.groupDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:this.state.description,error:!!this.state.error.description,helperText:this.state.error.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:a.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>200?a.outRange:"",children:[this.state.description.length,"/200"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/groups")},children:[Object(oe.jsx)(fe.a,{icon:He.k}),"\xa0 ",r.formatMessage({id:"label.cancel"})," \xa0"]}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.createGroup()},children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.h}),"\xa0 ",r.formatMessage({id:"label.ok"})," \xa0"]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:3})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})})]})}}]),a}(i.a.Component),wa=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)},btn:{marginLeft:e.spacing(2)},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Ma)))),ka=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,name:"",description:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"name",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})},{name:"name",passPattern:/^[0-9a-zA-Z\\._-]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_has_illegal_character"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"description",passPattern:/^.{0,200}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:200})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"name",exceptionCode:1028,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.groupName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.props.currentGroupConfig.group&&this.setState({name:this.props.currentGroupConfig.group.displayName,description:this.props.currentGroupConfig.group.description})}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(e.currentGroupConfig)!==JSON.stringify(this.props.currentGroupConfig)&&e.currentGroupConfig.group?(this.setState({name:e.currentGroupConfig.group.displayName,description:e.currentGroupConfig.group.description}),!1):!(this.state.description!==t.description&&t.description.length<201)||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"updateGroup",value:function(){var e=this;if(!this.checkInput())return!0;var t={group:this.props.currentGroupConfig.group.id,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),va.update(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(e.setState({pending:!1}),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.reloadGroupData())})),!0}},{key:"avatarUploaded",value:function(e){e.code||(this.props.dispatchEvent(ae.NewNotification(this.props.intl.formatMessage({id:"message.updated"}),0)),this.reloadGroupData())}},{key:"reloadGroupData",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.groupList.update",data:t.data})})),va.config({gKey:this.props.currentGroupConfig.group.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentGroupConfig.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentGroupConfig,r=t.classes,i=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:r.header,children:i.formatMessage({id:"menu.general"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:a.group?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:i.formatMessage({id:"label.groupAvatar"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(ze,{name:"avatar",appendData:{group:a.group.id},src:a.group.icon?D.HOSTS.STATIC_AVATAR_PREFIX+a.group.icon:a.group.name.substr(0,1).toUpperCase(),onUpdate:function(t){return e.avatarUploaded(t)},dataProvider:va.uploadAvatar})}),Object(oe.jsx)(k.a,{item:!0,xs:3}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:i.formatMessage({id:"label.groupName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:i.formatMessage({id:"message.error._S_empty"},{s:i.formatMessage({id:"label.groupName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:i.formatMessage({id:"label.groupDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,error:!!this.state.error.description,helperText:this.state.error.description,value:this.state.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:r.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>200?r.outRange:"",children:[this.state.description.length,"/200"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,style:{textAlign:"right"},children:[Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:r.btn,disabled:this.state.pending,onClick:function(t){return e.updateGroup()},children:[this.state.pending&&Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}),"\xa0 ",i.formatMessage({id:"label.update"})," \xa0"]}),Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,className:r.btn,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/groups")},children:["\xa0 ",i.formatMessage({id:"label.cancel"})," \xa0"]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:3})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})]})}}]),a}(i.a.Component),_a=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(1),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},paper:{padding:e.spacing(2)},btn:{marginLeft:e.spacing(2)},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentGroupConfig:e.DataStore.currentGroupConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ka)))),Ea=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,groupConfig:{},email:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"email",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",passPattern:/^.+@[^.]+\..+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.email"})})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"email",exceptionCode:1031,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",exceptionCode:1032,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotAddCreatorAsMember"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){return this.state.email===t.email||0!==t.email.length||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"addMembers",value:function(){var e=this;if(!this.checkInput())return!0;var t={group:this.props.currentGroupConfig.group.id,email:this.state.email};return this.setState({pending:!0}),va.addMember(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.AddFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(e.setState({pending:!1,email:""}),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.Added"}),0)),e.reloadGroupData())})),!0}},{key:"changeMemberRole",value:function(e,t,a){var r=this,i={group:e,userID:t,roleID:a};va.changeMemberRole(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&r.props.dispatchEvent(ae.NewNotification(r.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(r.props.dispatchEvent(ae.NewNotification(r.props.intl.formatMessage({id:"message.updated"}),0)),r.reloadGroupData())}))}},{key:"removeMember",value:function(e,t){var a=this,r={group:e,userID:t};va.removeMember(r).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.error.removeFail"}),2)):(a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.removed"}),0)),a.reloadGroupData())}))}},{key:"reloadGroupData",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),va.config({gKey:this.props.currentGroupConfig.group.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentGroupConfig.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentGroupConfig,r=t.classes,i=t.intl;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:"flex-end",className:r.marginBottom,children:[Object(oe.jsx)(k.a,{item:!0,xs:3,children:Object(oe.jsx)(E.a,{fullWidth:!0,value:this.state.email,error:!!this.state.error.email,helperText:this.state.error.email,onChange:function(t){return e.setState({email:t.target.value})},onKeyDown:function(t){13===t.keyCode&&e.addMembers()},variant:"outlined",placeholder:i.formatMessage({id:"message.plsInputInvitedEmail"})})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,onClick:function(t){return e.addMembers()},disabled:this.state.pending,children:[this.state.pending?[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," "]:"",i.formatMessage({id:"label.inviteMember"})]})})]}),Object(oe.jsx)(k.a,{container:!0,spacing:2,children:a.group?Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ba,{currentConfig:a,changeMemberRole:function(t,a,r){return e.changeMemberRole(t,a,r)},removeMember:function(t,a){return e.removeMember(t,a)},isRepository:Boolean(!1),groupMember:Boolean(!0)})}):Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})]})}}]),a}(i.a.Component),Ta=Object(R.b)(Object(C.a)((function(e){return{btn:{marginRight:e.spacing(2)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},marginBottom:{marginBottom:e.spacing(4)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentGroupConfig:e.DataStore.currentGroupConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Ea)))),Aa=Object(C.a)((function(e){return{root:{minHeight:e.spacing(6)}}}))(pt.a),Da=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,slug:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupSlug"})})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"slug",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1027,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.groupURL"})})},{exceptionCode:1033,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotDeleteUserGroup"})},{exceptionCode:1034,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotDeleteNonEmptyGroup"})},{exceptionCode:1035,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotChangeOwnerOfUserGroup"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){return""!==t.slug||!e.currentGroupConfig.group||(this.setState({slug:e.currentGroupConfig.group.name}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1,this.setState({slug:""})}},{key:"deleteGroup",value:function(){var e=this;this.props.dispatchEvent(ae.addComformation("group_delete_group",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.groupDeleteRepositoryNotice"}),reject:function(){return!0},accept:function(){e.deleteGroupConfirmed(),e.props.dispatchEvent(ae.cancelComformation())}}))}},{key:"deleteGroupConfirmed",value:function(){var e=this;this.props.dispatchEvent(ae.addComformation("group_delete_group_confirm",{title:this.props.intl.formatMessage({id:"label.dangerOperationConfirm"}),description:this.props.intl.formatMessage({id:"message.groupDeleteRepositoryConfirmNotice"}),reject:function(){return!0},accept:function(){var t={group:e.props.currentGroupConfig.group.id};e.setState({pending:!0}),va.deleteGroup(t).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)&&t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.deleteFail"}),2)):(e.reloadRepositoryGroupList(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.deleted"}),0)),e.props.history.push(W("groups"))),e.setState({pending:!1}),e.props.dispatchEvent(ae.cancelComformation())}))}}))}},{key:"changeSlug",value:function(){var e=this;if(!this.checkInput())return!1;this.props.dispatchEvent(ae.addComformation("group_change_slug",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.groupChangeURLNotice"}),reject:function(){return!0},accept:function(){var t={group:e.props.currentGroupConfig.group.id,name:e.state.slug};e.setState({pending:!0}),va.updateName(t).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)&&t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(e.reloadGroupData(),e.reloadRepositoryGroupList(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.props.history.push(W("groups"))),e.setState({pending:!1}),e.props.dispatchEvent(ae.cancelComformation())}))}}))}},{key:"changeOwner",value:function(e){var t=this;this.props.dispatchEvent(ae.addComformation("group_change_creator",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.groupChangeCreatorNotice"}),reject:function(){return!0},accept:function(){var a={group:t.props.currentGroupConfig.group.id,userID:e};t.setState({pending:!0}),va.changeOwner(a).then(ne.withEventdispatcher(t.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?t.checkResponse(e.code)&&e.code>1024&&t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(t.reloadGroupData(),t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.updated"}),0))),t.props.dispatchEvent(ae.cancelComformation()),t.setState({pending:!1})}))}}))}},{key:"reloadGroupData",value:function(){var e=this;va.config({gKey:this.props.currentGroupConfig.group.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentGroupConfig.update",data:t.data})}))}},{key:"reloadRepositoryGroupList",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.groupList.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentGroupConfig,r=t.currentUserInfo,i=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:i.header,children:n.formatMessage({id:"label.groupAdvancedSetting"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:a.group?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.updateCreator"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:a.group.owner,onChange:function(t){return e.changeOwner(t.target.value)},children:a.members.map((function(e,t){return Object(oe.jsx)(Aa,{value:e.id,children:Object(oe.jsx)(ua,{item:e})},t)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.section,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.updateGroupURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(r),"/"]})},onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(_.a,{color:"primary",variant:"contained",disableElevation:!0,onClick:function(t){return e.changeSlug()},disabled:this.state.pending,children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.d}),"\xa0 ",n.formatMessage({id:"label.save"})]})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.section,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.deleteGroup"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(_.a,{color:"secondary",variant:"contained",disableElevation:!0,onClick:function(t){return e.deleteGroup()},className:i.warning,disabled:this.state.pending,children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.j}),"\xa0 ",n.formatMessage({id:"label.deleteGroup"})]})})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})]})}}]),a}(i.a.Component),Ia=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(1),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},section:{marginTop:e.spacing(3)},paper:{padding:e.spacing(2)},btn:{marginRight:e.spacing(2)},warning:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentGroupConfig:e.DataStore.currentGroupConfig,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Da))));var Pa,Fa={parser:function(e){var t=e.item.type,a=[],r={};if(e.currentGroupConfig.group?a=e.currentGroupConfig.members:e.currentRepositoryConfig.repository&&(a=e.currentRepositoryConfig.members),r=a.filter(U.id(e.item.creator))[0],e.relatedGroup=e.groupList.filter(U.id(e.item.group))[0],e.relatedRepository=e.repositoryList.filter(U.id(e.item.repository))[0],r||(r={icon:null,id:e.item.creator,name:"userID_"+e.item.creator.slice(0,8)}),e.relatedGroup||(e.relatedGroup={id:e.item.group,displayName:"groupID_"+e.item.group.slice(0,8),name:null}),e.relatedRepository||(e.relatedRepository={id:e.item.repository,displayName:"repositoryID_"+e.item.repository.slice(0,8),name:null,group:e.relatedGroup}),513===t){var n=e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W("groups",e.relatedGroup.name),children:e.relatedGroup.displayName}):e.item.content.name;return{user:r,action:e.formatter({id:"message.activity.createdGroup"}),detail:n}}if(514===t)return{user:r,action:e.formatter({id:"message.activity.updateGroup_S_Avator"},{s:e.relatedGroup.displayName}),detail:""};if(515===t){var s=Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateFrom_S1_To_S2"},{s1:e.item.content.from,s2:e.item.content.to})});return{user:r,action:e.formatter({id:"message.activity.updateGroup_S_Name"},{s:e.relatedGroup.displayName}),detail:s}}if(516===t)return{user:r,action:e.formatter({id:"message.activity.updateGroup_S_Description"},{s:e.relatedGroup.displayName}),detail:""};if(517===t){var c=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.addGroup_S_Memeber"},{s:e.relatedGroup.displayName}),detail:c?c.name+" <"+c.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(518===t){var l=a.filter(U.id(e.item.content.uid))[0],p=e.formatter({id:"label.roleID_"+e.item.content.to});return{user:r,action:e.formatter({id:"message.activity.changeGroup_S_MemebrRole"},{s:e.relatedGroup.displayName}),detail:(l?l.name+" <"+l.email+">":e.item.content.name+" <"+e.item.content.email+">")+": "+p}}if(519===t){var d=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.removeGroup_S_Memebr"},{s:e.relatedGroup.displayName}),detail:d?d.name+" <"+d.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(520===t){var u=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.setGroup_S_Creator"},{s:e.relatedGroup.displayName}),detail:u?u.name+" <"+u.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(521===t){var m=Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateFrom_S1_To_S2"},{s1:W("groups",e.item.content.from),s2:W("groups",e.item.content.to)})});return{user:r,action:e.formatter({id:"message.activity.setGroup_S_URL"},{s:e.relatedGroup.displayName}),detail:m}}if(769===t){var h=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name),children:[e.relatedGroup.displayName,"/",e.relatedRepository.displayName]}):e.item.content.name;return{user:r,action:e.formatter({id:"message.activity.createdRepository"}),detail:h}}if(770===t){var g=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name),children:[e.relatedGroup.displayName,"/",e.relatedRepository.displayName]}):e.item.content.name,b=Object(oe.jsxs)(i.a.Fragment,{children:[g," ",e.formatter({id:"label.forkFrom_S"},{s:e.item.content.sourceName})]});return{user:r,action:e.formatter({id:"message.activity.forkRepository"}),detail:b}}if(771===t)return{user:r,action:e.formatter({id:"message.activity.updateRepository_S_Avator"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:""};if(772===t){var f=Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateFrom_S1_To_S2"},{s1:e.item.content.from,s2:e.item.content.to})});return{user:r,action:e.formatter({id:"message.activity.updateRepository_S_Name"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:f}}if(773===t)return{user:r,action:e.formatter({id:"message.activity.updateRepository_S_Description"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:""};if(774===t){var j=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.addRepository_S_Memeber"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:j?j.name+" <"+j.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(775===t){var v=a.filter(U.id(e.item.content.uid))[0],O=e.formatter({id:"label.roleID_"+e.item.content.to});return{user:r,action:e.formatter({id:"message.activity.changeRepository_S_MemebrRole"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:(v?v.name+" <"+v.email+">":e.item.content.name+" <"+e.item.content.email+">")+": "+O}}if(776===t){var y=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.removeRepository_S_Memebr"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:y?y.name+" <"+y.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(777===t){var x=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.setRepository_S_Creator"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:x?x.name+" <"+x.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(778===t){var S=Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateFrom_S1_To_S2"},{s1:W(e.relatedGroup.name,e.item.content.from),s2:W(e.relatedGroup.name,e.item.content.to)})});return{user:r,action:e.formatter({id:"message.activity.setRepository_S_URL"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:S}}if(779===t)return{user:r,action:e.formatter({id:"message.activity.deleteRepository"}),detail:e.item.content.name};if(1025===t){var C=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name),children:e.item.content.name}):e.item.content.name,N=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.from.slice(0,8)),children:e.item.content.from.slice(0,8)}):e.item.content.from.slice(0,8),R=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.to.slice(0,8)),children:e.item.content.to.slice(0,8)}):e.item.content.to.slice(0,8),M=Object(oe.jsxs)(i.a.Fragment,{children:[N," .. ",R," -> ",C]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_Branch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:M}}if(1026===t){var w=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name),children:e.item.content.name}):e.item.content.name,k=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.to.slice(0,8)),children:e.item.content.to.slice(0,8)}):e.item.content.to.slice(0,8),_=Object(oe.jsxs)(i.a.Fragment,{children:[k," -> ",w]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_NewBranch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:_}}if(1027===t){var E=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.name),""),children:e.item.content.name}):e.item.content.name,T=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.newBranch"})," ",E]});return{user:r,action:e.formatter({id:"message.activity.created_S_NewBranch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:T}}if(1028===t)return{user:r,action:e.formatter({id:"message.activity.delete_S_Branch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"label.deleteBranch"})+" "+e.item.content.name};if(1029===t)return{user:r,action:e.formatter({id:"message.activity.update_S_DefaultBranch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"message.updateDefaultBranch"}),"\xa0",e.item.content.from&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.from)),children:e.item.content.from})," ->\xa0"]}),Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.to)),children:e.item.content.to})]})};if(1030===t)return{user:r,action:e.formatter({id:"message.activity.created_S_ProtectedBranchRule"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"message.createProtectedBranchRule"}),"\xa0",Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"settings/branch"),children:e.item.content.name})]})};if(1031===t)return{user:r,action:e.formatter({id:"message.activity.update_S_ProtectedBranchRule"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"message.updateProtectedBranchRule"}),"\xa0",Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"settings/branch"),children:e.item.content.name})]})};if(1032===t)return{user:r,action:e.formatter({id:"message.activity.delete_S_ProtectedBranchRule"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"message.deleteProtectedBranchRule"}),"\xa0",e.item.content.name]})};if(1281===t){var A=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name),children:e.item.content.name}):e.item.content.name,D=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.from.slice(0,8)),children:e.item.content.from.slice(0,8)}):e.item.content.from.slice(0,8),I=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.to.slice(0,8)),children:e.item.content.to.slice(0,8)}):e.item.content.to.slice(0,8),P=Object(oe.jsxs)(i.a.Fragment,{children:[D," .. ",I," -> ",A]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_Tag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:P}}if(1282===t){var F=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name),children:e.item.content.name}):e.item.content.name,L=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.to.slice(0,8)),children:e.item.content.to.slice(0,8)}):e.item.content.to.slice(0,8),B=Object(oe.jsxs)(i.a.Fragment,{children:[L," -> ",F]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_NewTag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:B}}if(1283===t){var G=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name,""),children:e.item.content.name}):e.item.content.name,H=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.newTag"})," ",G]});return{user:r,action:e.formatter({id:"message.activity.created_S_NewTag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:H}}if(1284===t)return{user:r,action:e.formatter({id:"message.activity.delete_S_Tag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"label.deleteTag"})+" "+e.item.content.name};if(1793===t){var q=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id,z=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.openMergeRequest"})," ",q]});return{user:r,action:e.formatter({id:"message.activity.open_S_MergeRquest"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:z}}if(1794===t){var V=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id,J=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.closeMergeRequest"})," ",V]});return{user:r,action:e.formatter({id:"message.activity.close_S_MergeRquest"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:J}}if(1795===t){var K=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id,$=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.mergeRequest"})," ",K]});return{user:r,action:e.formatter({id:"message.activity.merge_S_MergeRquest"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:$}}if(1796===t){var Z=a.filter(U.id(e.item.content.reviewer))[0],Y=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id;return{user:r,action:e.formatter({id:"message.activity.assign_S_Reviewer"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"message.assign_N_M_Reviewer"},{n:Z.name,m:Y})}}if(1797===t){var X=a.filter(U.id(e.item.content.reviewer))[0],Q=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id;return{user:r,action:e.formatter({id:"message.activity.delete_S_Reviewer"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"message.delete_M_N_Reviewer"},{n:X.name,m:Q})}}if(1798===t){var ee=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id;return{user:r,action:e.formatter({id:"message.activity.review_S_Reviewer"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"message.review_M_Reviewer"},{m:ee})}}return 2305===t?{user:r,action:e.formatter({id:"message.activity.create_S_Webhook"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.createWebhook"})})}:2306===t?{user:r,action:e.formatter({id:"message.activity.update_S_Webhook"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateWebhook"})})}:2307===t?{user:r,action:e.formatter({id:"message.activity.delete_S_Webhook"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.deleteWebhook"})})}:{user:r,action:"",detail:""}}},La=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.item,a=e.groupList,r=e.currentGroupConfig,i=e.repositoryList,n=e.currentRepositoryConfig,s=e.intl,o=e.classes,c={item:t,groupList:a,repositoryList:i,currentGroupConfig:r,currentRepositoryConfig:n,formatter:s.formatMessage},l=Fa.parser(c);return Object(oe.jsx)(k.a,{item:!0,xs:12,className:o.item,children:Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",alignItems:"center",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+l.user.icon,className:o.avatar})}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"body1",className:o.action,children:[" ",l.user.name," ",l.action]}),Object(oe.jsxs)(w.a,{variant:"body2",className:o.paddingRight2,children:[" ",l.detail," "]})]})]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body2",children:[s.formatMessage({id:"label.editIn"}),":\xa0",Object(oe.jsx)(Nt,{timestamp:t.time})]})})]})})}}]),a}(i.a.Component),Ba=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{avatar:{width:e.spacing(3),height:e.spacing(3)},item:{border:"1px solid "+e.palette.border,marginBottom:"-1px",padding:e.spacing(2)+"px "+e.spacing(3)+"px","&:first-child":{borderRadius:"4px 4px 0px 0px"},"&:last-child":{borderRadius:"0px 0px 4px 4px"}},action:{lineHeight:e.spacing(3)+"px"},paddingRight2:{paddingRight:e.spacing(2),lineHeight:e.spacing(3)+"px"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,currentRepositoryConfig:e.DataStore.currentRepositoryConfig,groupList:e.DataStore.groupList,currentGroupConfig:e.DataStore.currentGroupConfig}}),(function(e,t){return{}}))(La))))),Ua=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={activityList:[],page:1,listFinshed:!1,pending:!0,category:0,keyword:""},r.observed={keyword:""},r.mountedFlag=!1,r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.setState({page:1,listFinshed:!1,pending:!0,activityList:[]}),this.getData(this.props,this.state),this.mountedFlag=!0}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.props.currentGroupConfig)!==JSON.stringify(e.currentGroupConfig)||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.setState({page:1,listFinshed:!1,pending:!0,activityList:[]}),this.getData(e,t),!1):this.state.page===t.page||t.pending?this.state.category===t.category||(this.setState({pending:!0,page:1,activityList:[]}),this.getData(e,t),!1):(this.setState({pending:!0}),this.getData(e,t),!1)}},{key:"getData",value:function(e,t){var a=this;this.observed.keyword=t.keyword,e.currentRepositoryConfig.repository?Ht.activities({repository:e.currentRepositoryKey,category:t.category,keyword:t.keyword,page:t.page,pagesize:20}).then(ne.withEventdispatcher(e.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var t=e.data.length<20;a.setState({pending:!1,activityList:[].concat(Object(T.a)(a.state.activityList),Object(T.a)(e.data)),listFinshed:t})}})):e.currentGroupConfig.group&&va.activities({group:e.currentGroupKey,category:t.category,keyword:t.keyword,page:t.page,pagesize:20}).then(ne.withEventdispatcher(e.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var t=e.data.length<20;a.setState({pending:!1,activityList:[].concat(Object(T.a)(a.state.activityList),Object(T.a)(e.data)),listFinshed:t})}}))}},{key:"searchActivity",value:function(){this.observed.keyword!==this.state.keyword&&(this.setState({activityList:[]}),this.getData(this.props,this.state))}},{key:"render",value:function(){var e=this,t=this.props,a=t.intl,r=t.classes,i=D.activityCategory,n=[];return n[i.all]=a.formatMessage({id:"label.all"}),n[i.commit]=a.formatMessage({id:"label.commitActivity"}),n[i.mergeRequest]=a.formatMessage({id:"label.mergeRequestActivity"}),n[i.member]=a.formatMessage({id:"label.memberActivity"}),Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(jt,{tabs:n,currentTab:this.state.category,onChange:function(t,a){return e.setState({category:a})},children:Object(oe.jsx)(E.a,{variant:"outlined",className:r.input,placeholder:"",defaultValue:this.state.keyword,onChange:function(t){return e.setState({keyword:t.target.value})},onKeyDown:function(t){13===t.keyCode&&e.searchActivity()},InputProps:{startAdornment:Object(oe.jsx)(Gt.a,{position:"start",children:Object(oe.jsx)(fe.a,{icon:je.D})})}})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsx)(k.a,{container:!0,children:this.state.activityList.length>0&&this.state.activityList.map((function(e,t){return Object(oe.jsx)(Ba,{item:e},t)}))}),Object(oe.jsx)(k.a,{container:!0,justifyContent:"center",className:r.marginTop3,children:Object(oe.jsx)(k.a,{item:!0,children:this.state.pending?Object(oe.jsx)(he.a,{}):this.state.listFinshed?Object(oe.jsx)(_.a,{size:"small",disabled:!0,children:a.formatMessage({id:"label.noMore"})}):Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",size:"small",disableElevation:!0,onClick:function(t){return e.setState({page:e.state.page+1})},children:[a.formatMessage({id:"label.more"})," \xa0\xa0",Object(oe.jsx)(fe.a,{icon:He.a})]})})})]})]})}}]),a}(i.a.Component),Ga=Object(R.b)(Object(C.a)((function(e){return{input:{width:e.spacing(30),maxWidth:"100%"},icon:{color:e.palette.text.light},marginTop3:{marginTop:e.spacing(3)}}}))(Object(l.b)((function(e,t){return{currentGroupKey:e.DataStore.currentGroupKey,currentGroupConfig:e.DataStore.currentGroupConfig,currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Ua))),Ha=a(438),qa=a(415),za=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={popoverAnchor:null,popoverTab:0},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.repositoryConfig,i=t.intl,n=t.history,s=t.repositoryList,c=t.currentUserInfo,l=s.filter(U.id(r&&r.repository&&r.repository.forkFrom||""))[0];return Object(oe.jsx)(M.a,{elevation:1,className:a.content,children:r&&r.repository&&r.repository.id?Object(oe.jsxs)(k.a,{container:!0,spacing:3,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:3,className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:r.repository.icon?Object(oe.jsx)(Be.a,{variant:"square",className:a.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+r.repository.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:a.icon,children:r.repository.name.substr(0,1).toUpperCase()})}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"h6",className:a.text,children:[r.group.displayName,"/",r.repository.displayName," \xa0\xa0",l?Object(oe.jsx)(w.a,{variant:"body2",component:"span",className:a.text,children:Object(oe.jsx)(o.b,{to:W(l.group.name,l.name),children:i.formatMessage({id:"label.forkFrom_S"},{s:l.group.displayName+"/"+l.displayName})})}):""]}),Object(oe.jsx)(w.a,{variant:"caption",component:"div",className:a.subtext,children:r.repository.description})]})]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,justifyContent:"flex-end",className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(Ha.a,{variant:"outlined",className:a.border,children:[Object(oe.jsxs)(_.a,{onClick:function(e){return n.push(W("repositories/fork",r.repository.id))},children:[Object(oe.jsx)(fe.a,{icon:je.r}),"\xa0 ",i.formatMessage({id:"label.fork"})]}),Object(oe.jsx)(_.a,{disabled:!r.repository.forkCount,onClick:function(e){return n.push(W("repositories/forklist",r.repository.id))},children:r.repository.forkCount})]})}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){e.state.popoverAnchor?e.setState({popoverAnchor:null}):e.setState({popoverAnchor:t.currentTarget})},children:i.formatMessage({id:"label.clone"})}),Object(oe.jsx)(qa.a,{elevation:2,open:!!this.state.popoverAnchor,anchorEl:this.state.popoverAnchor,TransitionProps:{timeout:0},onClose:function(t){e.state.popoverAnchor?e.setState({popoverAnchor:null}):e.setState({popoverAnchor:t.currentTarget})},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:Object(oe.jsxs)(M.a,{className:a.clonePopvoer,children:[Object(oe.jsx)(M.a,{className:a.cloneHeader,children:Object(oe.jsx)(jt,{tabs:["HTTPS","SSH"],currentTab:this.state.popoverTab,onChange:function(t,a){e.setState({popoverTab:a})}})}),0===this.state.popoverTab&&Object(oe.jsxs)(M.a,{className:a.cloneContent,children:[Object(oe.jsxs)(w.a,{variant:"body2",gutterBottom:!0,children:[i.formatMessage({id:"message.differenceBetweenHTTPSAndSSH"})," \xa0",Object(oe.jsx)(Oe,{doc:"/common/clone_method.md"})]}),Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:ne.getHost(c)+W(r.group.name,r.repository.name)+".git",InputProps:{id:"repsoditory-http-url-text",readOnly:!0,endAdornment:Object(oe.jsx)(Gt.a,{position:"end",className:a.copy,children:Object(oe.jsx)(Pe,{label:"label.copy",icon:je.k,onClick:function(e){var t=document.getElementById("repsoditory-http-url-text");t.select(),document.execCommand("Copy"),t.blur()}})})}})]}),1===this.state.popoverTab&&Object(oe.jsxs)(M.a,{className:a.cloneContent,children:[Object(oe.jsxs)(w.a,{variant:"body2",gutterBottom:!0,children:[i.formatMessage({id:"message.generateAndSetSSHKey"})," \xa0",Object(oe.jsx)(Oe,{doc:"/common/ssh_key.md"})]}),Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:ne.getSSHHost(c)+[r.group.name,r.repository.name].join("/")+".git",InputProps:{id:"repsoditory-ssh-url-text",readOnly:!0,endAdornment:Object(oe.jsx)(Gt.a,{position:"end",className:a.copy,children:Object(oe.jsx)(Pe,{label:"label.copy",icon:je.k,onClick:function(e){var t=document.getElementById("repsoditory-ssh-url-text");t.select(),document.execCommand("Copy"),t.blur()}})})}})]})]})})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body2",className:a.iconBar,children:[Object(oe.jsx)(fe.a,{icon:je.i}),"\xa0 ",i.formatMessage({id:"label._N_commit"},{n:r.count.commit})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.d}),"\xa0 ",i.formatMessage({id:"label._N_branch"},{n:r.count.branch})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.G}),"\xa0 ",i.formatMessage({id:"label._N_tag"},{n:r.count.tag})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.p}),"\xa0 ",i.formatMessage({id:"label._N_byte"},{n:z(r.count.file)})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.y}),"\xa0 ",i.formatMessage({id:"label._N_mergeRequest"},{n:r.repository.mergeRequestCount.open})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.v}),"\xa0 ",i.formatMessage({id:"label._N_member"},{n:r.members.length})]})})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"space-between",children:Object(oe.jsx)(he.a,{})})})}}]),a}(r.Component),Wa=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{content:{height:e.spacing(15.5),boxSizing:"border-box",borderBottom:"1px solid "+e.palette.border,borderRadius:0},icon:{height:e.spacing(5),width:e.spacing(5)},text:{height:e.spacing(3),lineHeight:e.spacing(3)+"px",overflow:"hidden"},subtext:{paddingTop:e.spacing(.5),height:e.spacing(1.5),lineHeight:e.spacing(1.5)+"px"},iconBar:{height:e.spacing(3),lineHeight:e.spacing(3)+"px"},clonePopvoer:{width:e.spacing(50)+"px"},cloneContent:{padding:e.spacing(2)},cloneHeader:{padding:"0px "+e.spacing(2)+"px"},border:{"& button":{borderColor:e.palette.border,padding:"2px "+e.spacing(2)+"px"}},copy:{marginLeft:"2px","& button":{position:"relative",right:"-14px",borderLeft:"1px solid "+e.palette.border,borderRadius:"0px 4px 4px 0px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{}}))(za))))),Va=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"composeOptions",value:function(e,t){var a=this,r=[];return e&&(e.branches||e.tags)&&(e.branches&&e.branches.length&&(r.push(Object(oe.jsx)(la.a,{disableSticky:!0,children:this.props.intl.formatMessage({id:"label.branch"})},"b")),r=r.concat(e.branches.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.id,children:[Object(oe.jsx)(fe.a,{icon:je.d,className:a.props.classes.icon}),"\xa0\xa0",e.name]},"b"+t)})))),e.tags&&e.tags.length&&(r.push(Object(oe.jsx)(la.a,{disableSticky:!0,disabled:!0,children:this.props.intl.formatMessage({id:"label.tag"})},"t")),r=r.concat(e.tags.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.id,children:[Object(oe.jsx)(fe.a,{icon:je.G,className:a.props.classes.icon}),"\xa0\xa0",e.name]},"t"+t)})))),e.branches.filter(U.id(t)).length||e.tags.filter(U.id(t)).length||(r.push(Object(oe.jsx)(la.a,{disableSticky:!0,disabled:!0,children:this.props.intl.formatMessage({id:"label.commit"})},"c")),r.push(Object(oe.jsxs)(pt.a,{value:t,children:[Object(oe.jsx)(fe.a,{icon:je.i,className:this.props.classes.icon}),"\xa0\xa0",t]},"c0")))),r}},{key:"render",value:function(){var e=this.props,t=e.currentRevision,a=e.revisionList,r=e.onChange,i=e.classes;return Object(oe.jsx)(E.a,{select:!0,value:t,variant:"outlined",onChange:function(e){return e.target.value&&r(e.target.value)},className:i.select,children:this.composeOptions(a,t)})}}]),a}(i.a.Component),Ja=Object(R.b)(Object(C.a)((function(e){return{select:{"& > div > svg":{width:e.spacing(3),height:e.spacing(3)}},icon:{color:e.palette.text.light}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{}}))(Va)))),Ka=a(449),$a=a(264),Za=a(98),Ya=a.n(Za),Xa=(a(189),a(190),a(191),a(192),a(193),a(194),a(195),a(196),a(197),a(198),a(199),a(200),a(201),a(202),a(203),a(204),a(205),a(206),a(207),a(208),a(209),a(210),a(211),a(212),a(213),a(214),a(215),a(216),a(217),a(218),a(219),a(220),a(221),a(222),a(223),a(224),a(225),a(226),a(227),a(228),a(229),a(230),a(231),a(232),a(233),a(234),a(235),a(236),a(237),a(238),a(239),a(240),a(241),a(242),a(243),a(244),a(245),a(246),a(247),a(248),a(249),a(250),a(174)),Qa=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).code=i.a.createRef(),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.refreshCodeLine()}},{key:"componentDidUpdate",value:function(){this.refreshCodeLine()}},{key:"refreshCodeLine",value:function(){if("string"===typeof this.props.htmlCode){var e=document.createElement("span");if(e.innerHTML=this.props.htmlCode,"string"===typeof this.props.original){for(var t=Object(Xa.a)(this.props.original,this.props.code),a=0,r=[],i=0;i=n){a+=n;continue}return[i,t-a]}var s=i.innerText.length;if(!(t-a>=s))return this.findOffset(i,t-a);a+=s}}},{key:"render",value:function(){return Object(oe.jsx)("pre",{children:Object(oe.jsx)("code",{ref:this.code,children:this.props.code})})}}]),a}(i.a.Component),er=Object(R.b)(Object(C.a)((function(e){return{addition:{backgroundColor:e.palette.background.additionDarker},deletion:{backgroundColor:e.palette.background.deletionDarker}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Qa)))),tr=a(350),ar=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.to,a=e.children;return Object(r.createElement)(o.b,Object(y.a)(Object(y.a)({},this.props),{},{key:"origin_child",to:t}),a)}}]),a}(i.a.Component),rr=ar,ir=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={copyHash:"label.copyHash"},r}return Object(d.a)(a,[{key:"copyHash",value:function(){var e=window.document.createElement("input");e.setAttribute("value",this.props.hash),e.setAttribute("type","text"),window.document.body.appendChild(e),e.select(),document.execCommand("Copy"),window.document.body.removeChild(e),this.setState({copyHash:"label.copied"})}},{key:"render",value:function(){var e=this,t=this.props,a=t.hash,r=t.classes,i=this.state.copyHash;return Object(oe.jsxs)(Ha.a,{"aria-label":"outlined button group",children:[Object(oe.jsx)(_.a,{disabled:!0,id:"hashValue",className:r.disabledBtn,children:a}),Object(oe.jsx)(Pe,{label:i,icon:je.k,className:r.icon,onClick:function(t){return e.copyHash(t)},onMouseLeave:function(){window.setTimeout((function(){return e.setState({copyHash:"label.copyHash"})}),150)}})]})}}]),a}(r.Component),nr=Object(R.b)(Object(C.a)((function(e){return{disabledBtn:{"&:disabled":{color:e.palette.text.main,border:"1px solid "+e.palette.border}},icon:{color:e.palette.primary.main,border:"1px solid "+e.palette.border,borderLeft:"0px",borderRadius:"0px 4px 4px 0px"}}}))(ir)),sr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.intl,a=e.classes,r=e.data,n=e.linkPathBase,s=e.currentRepositoryConfig,o=e.showBorder,c=e.blameMode,l=e.path,p=r||{},d={};if(s){var u=Z(s.members,p.email);u&&((d=u).hash=p.sha,d.commitContent=p.commit,d.commitTime=p.time)}return Object(oe.jsxs)(tr.a,{className:o?a.listItem:"",children:[Object(oe.jsx)(mt.a,{primary:Object(oe.jsx)(i.a.Fragment,{children:Object(oe.jsxs)(w.a,{component:"span",variant:"body2",color:"textPrimary",children:[Object(oe.jsx)(rr,{to:n+"/"+d.hash.substr(0,8)+(l||""),children:d.commitContent?d.commitContent:""}),c&&Object(oe.jsx)(rr,{style:{display:"inline-block",float:"right"},to:n+"/"+d.hash.substr(0,8),children:d.hash.substr(0,8)})]})}),secondary:Object(oe.jsx)(i.a.Fragment,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:1,className:a.secondaryWrap,component:"span",children:[Object(oe.jsx)(k.a,{item:!0,component:"span",children:Object(oe.jsx)(Be.a,{src:d.icon?D.HOSTS.PGYER_AVATAR_HOST+d.icon:"/static/images/default_avatar.png",className:a.avatar,component:"span"})}),Object(oe.jsx)(k.a,{item:!0,component:"span",children:Object(oe.jsxs)(w.a,{component:"span",variant:"body2",children:[d.name?d.name:"",d.temporary&&Object(oe.jsxs)(i.a.Fragment,{children:["\xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/common/multiple_email.md",tooltip:t.formatMessage({id:"message.itsMyEmail"})})]})]})}),Object(oe.jsx)(k.a,{item:!0,component:"span",children:Object(oe.jsxs)(w.a,{component:"span",variant:"body2",children:[t.formatMessage({id:"label.editIn"}),":",Object(oe.jsx)(Nt,{timestamp:Number(d.commitTime)})]})})]})})}),!c&&Object(oe.jsx)(nr,{hash:d.hash.substr(0,8)})]},d.hash)}}]),a}(r.Component),or=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{listItem:{borderTop:"1px solid "+e.palette.border,paddingLeft:e.spacing(3),paddingRight:e.spacing(3)},avatar:{width:e.spacing(3),height:e.spacing(3)},secondaryWrap:{padding:e.spacing(1),paddingLeft:0,paddingBottom:0}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(sr))))),cr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),r=t.call(this,e);var n=window.location.href.match(/^.*#(\d+)$/);return r.state={lineNumber:n?parseInt(n[1]):-1},r.ref=i.a.createRef(),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){if(this.ref.current){for(var e=this.ref.current,t=0;e;)t+=e.offsetTop,e=e.offsetParent;document.querySelector(".app-content").scrollTop=t-64-105}return!0}},{key:"shouldComponentUpdate",value:function(e,t){return!0}},{key:"componentDidUpdate",value:function(e,t){return!0}},{key:"render",value:function(){var e=this,t=this.props,a=t.object,r=t.blame,i=t.currentRepositoryConfig,n=t.match,s=t.classes,o=t.fragment,c=this.state.lineNumber,l=$(a.path),p=o?a.object:a.object.raw.split("\n"),d=Ya.a.highlight(p.join("\n"),Ya.a.languages[l]||Ya.a.languages.markdown,l).split("\n"),u=[];if(r&&r.length){var m=0;u=p.map((function(e,t){var a=null,o=r.filter((function(e){return e.start===t+1}));return o&&o[0]&&(m=o[0].length,a=Object(oe.jsx)("td",{className:s.blame,rowSpan:o[0].length,children:Object(oe.jsx)(or,{data:o[0].commit,linkPathBase:W(n.params.groupName,n.params.repositoryName,"commit"),currentRepositoryConfig:i,blameMode:!0},t)})),Object(oe.jsxs)("tr",{className:a&&s.topBorder,children:[t===p.length-1&&0===p[t].length||m--<1?Object(oe.jsx)("td",{className:s.blame}):a,Object(oe.jsx)("td",{className:s.lineNumber,children:Object(oe.jsx)("code",{children:t+1})}),Object(oe.jsx)("td",{className:s.code,children:Object(oe.jsx)(er,{code:e,htmlCode:d[t]})})]},t)}))}else u="blame"===n.params.type?p.map((function(e,t){return Object(oe.jsxs)("tr",{children:[0===t&&Object(oe.jsx)("td",{className:s.blameLoading,rowSpan:p.length,children:Object(oe.jsx)(he.a,{size:24})}),Object(oe.jsx)("td",{className:s.lineNumber,children:Object(oe.jsx)("code",{children:t+1})}),Object(oe.jsx)("td",{className:s.code,children:Object(oe.jsx)(er,{code:e,htmlCode:d[t]})})]},t)})):p.map((function(t,a){var r={};return o&&o[a]&&(r={color:"#fff",background:o[a]}),Object(oe.jsxs)("tr",{ref:a+1===c?e.ref:null,children:[Object(oe.jsx)("td",{className:s.lineNumber,style:r,children:Object(oe.jsx)("code",{children:a+1})}),Object(oe.jsx)("td",{className:s.code,children:Object(oe.jsx)(er,{code:t,htmlCode:d[a]})})]},a)}));return Object(oe.jsx)("table",{className:s.table,children:Object(oe.jsx)("tbody",{children:u})})}}]),a}(i.a.Component),lr=Object(R.b)(Object(C.a)((function(e){return{table:{width:"100%",tableLayout:"fixed",borderCollapse:"collapse","& tr:first-child":{border:"none"}},topBorder:{borderTop:"1px solid "+e.palette.border},blame:{width:e.spacing(40),verticalAlign:"middle"},blameLoading:{width:e.spacing(40),verticalAlign:"top",textAlign:"center",paddingTop:e.spacing(10)},lineNumber:{lineHeight:e.spacing(2)+"px",width:e.spacing(4),padding:"0 "+e.spacing(1)+"px",textAlign:"right",verticalAlign:"middle",userSelect:"none",color:e.palette.text.lighter,backgroundColor:e.palette.background.main},code:{verticalAlign:"middle",overflowWrap:"break-word"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(cr)))),pr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={mdSourceShow:!1,copyAnchor:null},r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return!0}},{key:"copySomething",value:function(e){this.setState({copyAnchor:null}),window.setTimeout((function(){var t=window.document.createElement("textarea");t.innerHTML=e,window.document.body.appendChild(t),t.select(),document.execCommand("copy"),window.document.body.removeChild(t)}),0)}},{key:"getDisplayMode",value:function(e){return e.object.oversize?D.obejctDisplayType.oversize:e.object.size<=0?D.obejctDisplayType.empty:e.object.mime&&(e.object.mime.match(/^text/)||"application/xml"===e.object.mime)?e.path&&e.path.match(/.*\.md$/i)?D.obejctDisplayType.markdown:D.obejctDisplayType.text:e.object.mime&&e.object.mime.match(/^image/)?D.obejctDisplayType.image:"video/mp4"===e.object.mime?D.obejctDisplayType.video:D.obejctDisplayType.unknown}},{key:"getObjectIcon",value:function(e){return je.p}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.object,n=t.blame,s=t.classes,o=t.match,c=t.history,l=t.intl,p=this.state.mdSourceShow,d=this.getDisplayMode(r);return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,container:!0,className:s.fileInfo,children:[Object(oe.jsxs)(k.a,{item:!0,xs:8,children:[Object(oe.jsx)(fe.a,{icon:this.getObjectIcon(r.object.mime),className:s.icon}),"\xa0\xa0",Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:r.path}),"\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"div",children:[" \xa0|\xa0 ",z(r.object.size,"Bytes")]}),"\xa0\xa0",Object(oe.jsx)(Pe,{label:"label.copy",icon:je.k,onClick:function(t){return e.setState({copyAnchor:t.target})},className:s.icon2}),Object(oe.jsxs)(ct.a,{anchorEl:this.state.copyAnchor,transitionDuration:0,open:!!this.state.copyAnchor,onClose:function(t){return e.setState({copyAnchor:null})},children:[Object(oe.jsx)(pt.a,{value:"0",onClick:function(t){return e.copySomething(r.path)},children:l.formatMessage({id:"label.copyPath"})}),(d===D.obejctDisplayType.text||d===D.obejctDisplayType.markdown)&&Object(oe.jsx)(pt.a,{value:"1",onClick:function(t){return e.copySomething(r.object.raw)},children:l.formatMessage({id:"label.copyCode"})})]}),d===D.obejctDisplayType.markdown&&Object(oe.jsx)(i.a.Fragment,{children:p?Object(oe.jsx)(Pe,{label:"message.displayRendereFile",icon:je.p,onClick:function(){return e.setState({mdSourceShow:!1})}}):Object(oe.jsx)(Pe,{label:"message.displaySource",icon:je.h,onClick:function(){return e.setState({mdSourceShow:!0})}})})]}),o.params.path&&Object(oe.jsx)(k.a,{item:!0,xs:4,className:s.blame,children:Object(oe.jsxs)(Ha.a,{size:"small","aria-label":"small outlined button group",children:[Object(oe.jsx)(_.a,{onClick:function(e){return c.push(W(a.group.name,a.repository.name,"commits",encodeURIComponent(o.params.rev)+o.params.path))},children:l.formatMessage({id:"label.history"})}),(d===D.obejctDisplayType.text||d===D.obejctDisplayType.markdown)&&Object(oe.jsx)(_.a,{onClick:function(e){return c.push(W(a.group.name,a.repository.name,"blame"===o.params.type?"files":"blame",encodeURIComponent(o.params.rev)+o.params.path))},children:"blame"===o.params.type?"Normal":"Blame"})]})})]}),Object(oe.jsxs)(k.a,{item:!0,xs:12,className:[s.detail,d===D.obejctDisplayType.text||p?s.editorBg:""].join(" "),children:[d===D.obejctDisplayType.text&&Object(oe.jsx)(lr,{object:r,blame:n}),d===D.obejctDisplayType.markdown&&Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,className:p?"":s.height0,children:Object(oe.jsx)(lr,{object:r,blame:n})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,className:[p?s.height0:s.markdown,"markdown-body"].join(" "),children:[Object(oe.jsx)("link",{rel:"stylesheet",href:"https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/4.0.0/github-markdown.min.css"}),Object(oe.jsx)(Ka.a,{children:r.object.raw,remarkPlugins:[$a.a]})]})]}),d===D.obejctDisplayType.image&&Object(oe.jsx)("img",{src:"data:"+r.object.mime+";base64,"+r.object.base64Encoded,className:s.mediaFile}),d===D.obejctDisplayType.video&&Object(oe.jsx)("div",{className:s.mediaFile,children:Object(oe.jsx)("video",{width:"100%",controls:!0,children:Object(oe.jsx)("source",{src:"data:"+r.object.mime+";base64,"+r.object.base64Encoded,type:r.object.mime})})}),d===D.obejctDisplayType.unknown&&Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:s.unknown,children:l.formatMessage({id:"message.fileTypeNotSupport"})}),d===D.obejctDisplayType.empty&&Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:s.unknown,children:l.formatMessage({id:"message.fileContentEmpty"})}),d===D.obejctDisplayType.oversize&&Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:s.unknown,children:l.formatMessage({id:"message.fileContentOversize"})})]})]})}}]),a}(i.a.Component),dr=Object(R.b)(Object(C.a)((function(e){return{icon:{color:e.palette.text.lighter},icon2:{color:e.palette.primary.main},fileInfo:{lineHeight:e.spacing(5)+"px",paddingLeft:e.spacing(3),paddingRight:e.spacing(3),background:e.palette.background.main,border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px "+e.spacing(.5)+"px 0 0","& > div":{display:"flex",alignItems:"center"}},blame:{justifyContent:"flex-end","& button":{background:e.palette.background.light,borderColor:e.palette.border}},editorBg:{background:e.palette.background.light},detail:{overflowX:"hidden",border:"1px solid "+e.palette.border,borderRadius:"0 0 "+e.spacing(.5)+"px "+e.spacing(.5)+"px",borderTop:"0px"},mediaFile:{display:"block",margin:"auto",marginTop:e.spacing(5),marginBottom:e.spacing(5),maxWidth:"80%"},oldImage:{display:"block",marginTop:e.spacing(5),marginBottom:e.spacing(3),border:"1px solid "+e.palette.error.main,padding:e.spacing(2),marginLeft:"auto",marginRight:"auto",maxWidth:"80%"},newImage:{display:"block",marginTop:e.spacing(5),marginBottom:e.spacing(3),border:"1px solid "+e.palette.success.dark,marginLeft:"auto",padding:e.spacing(2),marginRight:"auto",maxWidth:"80%"},height0:{height:"0px",paddingTop:"0px !important",paddingBottom:"0px !important",overflow:"hidden"},unknown:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:e.spacing(32)},markdown:{boxSizing:"border-box",minWidth:"200px",maxWidth:"980px",margin:"0 auto",padding:"45px"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{}}))(pr)))),ur=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.currentRepositoryConfig,a=e.currentUserInfo,r=e.classes,i=e.intl;if(!t.repository)return null;var n="git remote add origin "+a.host+"/"+t.group.name+"/"+t.repository.name+".git",s=['echo "# '+t.repository.name+'" >> README.md',"git init","git add README.md",'git commit -m "first commit"',"git branch -M main",n,"git push -u origin main"],o=[n,"git branch -M main","git push -u origin main"];return Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsxs)(k.a,{className:r.setup,children:[Object(oe.jsx)(w.a,{variant:"h1",component:"div",children:i.formatMessage({id:"message.createNewRepository"})}),Object(oe.jsxs)(k.a,{className:r.code,children:[Object(oe.jsx)(Pe,{className:r.icon,label:"label.copy",onClick:function(e){return X(s.join("\n"))},icon:je.k}),s.map((function(e,t){return Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:Object(oe.jsx)("code",{children:e})},t)}))]})]}),Object(oe.jsxs)(k.a,{className:[r.setup,r.noBorder].join(" "),children:[Object(oe.jsx)(w.a,{variant:"h1",component:"div",children:i.formatMessage({id:"message.pushRepository"})}),Object(oe.jsxs)(k.a,{className:r.code,children:[Object(oe.jsx)(Pe,{className:r.icon,label:"label.copy",onClick:function(e){return X(o.join("\n"))},icon:je.k}),o.map((function(e,t){return Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:Object(oe.jsx)("code",{children:e})},t)}))]})]})]})}}]),a}(i.a.Component),mr=Object(R.b)(Object(C.a)((function(e){return{setup:{padding:e.spacing(3)+"px",borderRadius:"4px 4px 0px 0px",border:"1px solid "+e.palette.border},noBorder:{borderTop:0,borderRadius:"0px 0px 4px 4px"},code:{position:"relative",marginTop:e.spacing(1),padding:e.spacing(1.5)+"px",borderRadius:e.spacing(.5)+"px",background:e.palette.background.main},icon:{top:e.spacing(1.5)+"px",right:e.spacing(1.5)+"px",position:"absolute"}}}))(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{}}))(ur))),hr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,pathStack:[],search:"",objectData:{},blameData:null,readmeFile:{}},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getPathStack(this.props,this.state)}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.props.match.params)!==JSON.stringify(e.match.params)?this.props.match.params.type!==e.match.params.type&&this.props.match.params.rev===e.match.params.rev&&this.props.match.params.path===e.match.params.path?(this.getObject(e,t),!1):(this.getPathStack(e,t),!1):JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.getPathStack(e,t),!1):JSON.stringify(this.state.pathStack)===JSON.stringify(t.pathStack)||(this.getObject(e,t),!1)}},{key:"getPathStack",value:function(e,t){var a=this;return!e.currentRepositoryKey||!e.currentRepositoryConfig.repository||(e.match.params.path&&"/"!==e.match.params.path||0!==t.pathStack.length?(this.setState({objectData:{},pending:!0}),Ht.pathStack({repository:e.currentRepositoryKey,revision:e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),path:e.match.params.path||"/"}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({pending:!1,pathStack:e.data})})),!0):(this.getObject(e,t),!0))}},{key:"getObject",value:function(e,t){var a=this;if(!e.currentRepositoryConfig.branches||!e.currentRepositoryConfig.branches.length)return this.setState({blameData:null,objectData:{},pending:!1}),!0;t.pathStack.length>0&&"blob"===t.pathStack[t.pathStack.length-1].type&&"blame"===e.match.params.type&&this.getBlame(e,t);var r=t.pathStack.reduce((function(e,t){return(e?e+"/":"")+t.name}),"");this.setState({blameData:null,objectData:{},pending:!0}),Ht.object({repository:e.currentRepositoryKey,parent:t.pathStack.length&&t.pathStack[t.pathStack.length-1].object||e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),revision:e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),path:r||"/"}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?a.setState({pending:!1}):(a.setState({pending:!1,search:"",objectData:e.data}),a.getReadmeFile(e.data))}))}},{key:"getBlame",value:function(e,t){var a=this;this.setState({blameData:null});var r=t.pathStack.reduce((function(e,t){return(e?e+"/":"")+t.name}),"");Ht.getBlameInfo({repository:e.currentRepositoryKey,revision:e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),path:r||"/"}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({search:"",blameData:e.data.blame})}))}},{key:"getReadmeFile",value:function(e){var t=this;if("blob"!==e.type){var a=e.object.filter((function(e){return"readme.md"===e.name.toLowerCase()}));a[0]&&Ht.object({repository:this.props.currentRepositoryKey,parent:a[0].object,revision:this.props.match.params.rev&&decodeURIComponent(this.props.match.params.rev)||Y(this.props.currentRepositoryConfig),path:e.path+"/"+a[0].name}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.setState({readmeFile:e.data})}))}this.setState({readmeFile:{}})}},{key:"makeFileListData",value:function(e){var t=this,a=this.state.pathStack.reduce((function(e,t){return(e?e+"/":"")+t.name}),""),r=e.sort((function(e,t){return e.type===t.type?0:"blob"===e.type?1:-1})).map((function(e){return[Object(oe.jsxs)(w.a,{variant:"body1",children:["blob"===e.type&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(fe.a,{icon:je.p})," \xa0\xa0",Object(oe.jsx)(o.b,{className:t.props.classes.linkObjectName,to:W(t.props.currentRepositoryConfig.group.name,t.props.currentRepositoryConfig.repository.name,"files",encodeURIComponent(t.props.match.params.rev||Y(t.props.currentRepositoryConfig)),a?a+"/"+e.name:e.name),children:e.name})]}),"tree"===e.type&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(fe.a,{icon:je.U})," \xa0\xa0",Object(oe.jsx)(o.b,{className:t.props.classes.linkObjectName,to:W(t.props.currentRepositoryConfig.group.name,t.props.currentRepositoryConfig.repository.name,"files",encodeURIComponent(t.props.match.params.rev||Y(t.props.currentRepositoryConfig)),a?a+"/"+e.name:e.name),children:e.name})]}),"commit"===e.type&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(fe.a,{icon:je.eb})," \xa0\xa0",e.name,"\xa0",Object(oe.jsx)(be.a,{title:e.url,placement:"top",disableFocusListener:!0,children:Object(oe.jsxs)(w.a,{component:"span",variant:"body2",children:["@",e.object.slice(0,8)]})})]})]}),e.commit&&e.commit.sha&&Object(oe.jsx)(o.b,{className:t.props.classes.linkCommitMessage,to:W(t.props.currentRepositoryConfig.group.name,t.props.currentRepositoryConfig.repository.name,"commit",e.commit.sha.slice(0,8)),children:e.commit.commit}),Object(oe.jsx)(Nt,{timestamp:e.commit.time})]}));return[["30%","auto","auto"],["label.name","label.lastCommit","label.lastUpdate"]].concat(Object(T.a)(r))}},{key:"composePathBreadCrumb",value:function(){for(var e=[this.props.currentRepositoryConfig.group.name,this.props.currentRepositoryConfig.repository.name,"files",encodeURIComponent(this.props.match.params.rev||Y(this.props.currentRepositoryConfig))],t=[Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:Object(oe.jsx)(o.b,{to:W.apply(void 0,e),className:this.props.classes.linkCommitMessage,children:this.props.currentRepositoryConfig.repository.name})},"p")],a=0;a li":{border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryError:e.DataStore.currentRepositoryError,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(hr)))),br=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={commitList:[],page:1,pending:!1,listFinshed:!1,searchInput:"",search:""},r.pageSize=20,r.mountedFlag=!1,r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.setState({page:1,listFinshed:!1,commitList:[],searchInput:"",search:""}),this.getData(this.props,this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey||this.props.match.params.rev!==e.match.params.rev||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.setState({page:1,listFinshed:!1,commitList:[],searchInput:"",search:""}),1===t.page&&""===t.search&&this.getData(e,t),!1):this.state.search!==t.search?(this.setState({page:1,listFinshed:!1,commitList:[]}),1===t.page&&this.getData(e,t),!1):this.state.page===t.page||(this.getData(e,t),!1)}},{key:"getData",value:function(e,t){var a=this;if(!e.currentRepositoryConfig.repository||t.pending||!this.mountedFlag)return!1;if(!e.currentRepositoryConfig.branches||!e.currentRepositoryConfig.branches.length)return!1;var r=e.intl;this.setState({pending:!0}),Ht.commitList({repository:e.currentRepositoryKey,revision:e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),path:e.match.params.path?decodeURIComponent(e.match.params.path):"",page:t.page,pagesize:this.pageSize,keyword:t.search}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(i){if(i.code)e.dispatchEvent(ae.NewNotification(r.formatMessage({id:"message.error.showCommitListFailed"}),2));else{var n=i.data,s=[],o=0,c="";if(s[o]={date:"",list:[]},n.length){n.map((function(e,t){return c?(new j.a).format(1e3*Number(e.time),"yyyy-MM-dd")===c?(s[o].date=c,s[o].list.push(e)):(s[o+=1]={date:"",list:[]},c=(new j.a).format(1e3*Number(e.time),"yyyy-MM-dd"),s[o].date=c,s[o].list.push(e)):(c=(new j.a).format(1e3*Number(e.time),"yyyy-MM-dd"),s[o].date=c,s[o].list.push(e)),!0}));var l=n.length0){var r=!1;t.commitList.map((function(a,i){return a.date===e.date?(r=!0,a.list=[].concat(Object(T.a)(a.list),Object(T.a)(e.list)),a):(r||i!==t.commitList.length-1||t.commitList.push(e),!0)}))}return!0})),t.commitList.length&&1!==t.page?a.setState({pending:!1,commitList:Object(T.a)(a.state.commitList),listFinshed:l}):a.setState({pending:!1,commitList:[].concat(s),listFinshed:l})}else a.setState({pending:!1,listFinshed:!0,commitList:[]})}}))}},{key:"pageReload",value:function(e,t,a){t&&a||(t=this.state.refType,a=this.state.ref);var r=this.props,i=r.currentRepositoryConfig,n=r.history,s=W(i.repository.group.name,i.repository.name,"commits",t,encodeURIComponent(a));return e?n.push(s):s}},{key:"filterCommits",value:function(e){e?(this.observed.keyword=e,this.setState({page:1}),this.getData(this.props,this.state)):(this.observed.keyword="",this.setState({page:1}))}},{key:"render",value:function(){var e=this,t=this.state.commitList,a=this.props,r=a.currentRepositoryConfig,i=a.match,n=a.history,s=a.classes,o=a.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[r.branches&&0!==r.branches.length&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",children:[Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(Ja,{currentRevision:i.params.rev&&decodeURIComponent(i.params.rev)||Y(r),revisionList:{branches:r.branches,tags:r.tags},onChange:function(e){return n.push(W(r.group.name,r.repository.name,"commits",encodeURIComponent(e)))}}),"\xa0\xa0",Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:s.path,children:i.params.path?i.params.path.substr(1):""})]}),Object(oe.jsx)(k.a,{item:!0,xs:2,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",disabled:this.state.pending,value:this.state.searchInput,onChange:function(t){return e.setState({searchInput:t.target.value})},onKeyDown:function(t){13===t.keyCode&&e.setState({search:t.target.value})},InputProps:{startAdornment:Object(oe.jsx)(Gt.a,{position:"start",children:Object(oe.jsx)(fe.a,{icon:je.D})})}})})]})}),this.state.commitList.length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,spacing:3,children:t.map((function(e,t){var a=e.date+" ["+o.formatMessage({id:"label._N_commit"},{n:e.list.length})+"]";return Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ra,{title:a,children:e.list.map((function(e,t){return Object(oe.jsx)(or,{showBorder:!0,path:i.params.path,data:e,linkPathBase:W(i.params.groupName,i.params.repositoryName,i.params.path?"files":"commit"),currentRepositoryConfig:r},t)}))})},t)}))})}),!this.state.pending&&this.state.commitList.length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"center",children:this.state.pending?Object(oe.jsxs)(_.a,{color:"primary",size:"small",disabled:!0,disableElevation:!0,children:[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," \xa0\xa0",o.formatMessage({id:"label.processing"})]}):this.state.listFinshed?t.length>0?Object(oe.jsx)(_.a,{size:"small",disabled:!0,children:o.formatMessage({id:"label.noMore"})}):"":Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",size:"small",disableElevation:!0,onClick:function(t){return e.setState({page:e.state.page+1})},children:[o.formatMessage({id:"label.more"})," \xa0\xa0",Object(oe.jsx)(fe.a,{icon:He.a})]})})}),0===this.state.commitList.length&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Pt,{imageName:"commits-empty.png",notice:o.formatMessage({id:"message.noCommitRecord"}),pending:this.state.pending})})]})}}]),a}(i.a.Component),fr=Object(R.b)(Object(h.f)(Object(ge.a)(Object(C.a)((function(e){return{path:{lineHeight:e.spacing(4)+"px"}}}))(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(br))))),jr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={keyword:e.match.params.tag?e.match.params.tag:e.match.params.branch?e.match.params.branch:""},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.refType,a=e.pending,r=e.searchRef,i=e.sortDesc,n=e.sortSwitch,s=e.children,o=e.tabValue,c=e.tabChange,l=e.currentRepositoryConfig,p=e.history,d=e.classes,u=e.intl;return Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsxs)(jt,{currentTab:o,onChange:function(e,t){return c(t)},tabs:"branch"===t?[u.formatMessage({id:"label.all"}),u.formatMessage({id:"label.active"}),u.formatMessage({id:"label.inactive"})]:[],children:[Object(oe.jsx)(E.a,{variant:"outlined",className:d.input,placeholder:u.formatMessage({id:"message.input_S_name"},{s:u.formatMessage({id:"label."+t})}),defaultValue:this.state.keyword,onChange:function(e){return r(e.target.value)},InputProps:{startAdornment:Object(oe.jsx)(Gt.a,{position:"start",children:Object(oe.jsx)(fe.a,{icon:je.D})})}}),"\xa0",Object(oe.jsx)(Pe,{label:"label.sort",onClick:n,className:[d.icon,i?"":d.transform].join(" "),icon:je.F}),l.branches&&l.branches.length>0&&Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:d.button,disabled:a,onClick:function(){return p.push(W(l.repository.group.name,l.repository.name,"tag"===t?"tags":"branches","new"))},children:u.formatMessage({id:"tag"===t?"label.newTag":"label.newBranch"})})]}),Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:s})})]})}}]),a}(i.a.Component),vr=Object(R.b)(Object(C.a)((function(e){return{input:{width:e.spacing(30),maxWidth:"100%"},button:{marginLeft:e.spacing(4)},icon:{color:e.palette.text.light},transform:{transform:"rotateX(180deg)"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{}}))(jr)))),Or=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={page:1,perpage:10,anchor:[]},r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.props.repage!==e.repage&&this.setState({page:1}),!0}},{key:"refListsDeal",value:function(e){var t=this.props,a=t.currentRepositoryConfig,r=t.history;e.map((function(e){return e.map((function(e,t){var i=W(a.repository.group.name,a.repository.name,"files",encodeURIComponent(e.name),"");if(e.nameA=Object(oe.jsx)(rr,{to:i,onClick:function(){return r.push(i)},children:e.name}),e.commit.sha){var n=W(a.repository.group.name,a.repository.name,"commit",e.commit.sha.substring(0,8));e.shaA=Object(oe.jsx)(rr,{to:n,onClick:function(){return r.push(n)},children:e.commit.sha.substring(0,8)}),e.logA=Object(oe.jsx)(rr,{to:n,onClick:function(){return r.push(n)},children:e.commit.commit})}return e.commit.email&&(e.updater=Z(a.members,e.commit.email)),!0})),!0}))}},{key:"openRefItemMenu",value:function(e,t){var a=this.state.anchor;a[e]=t.target,this.setState({anchor:a})}},{key:"closeRefItemMenu",value:function(e){var t=this.state.anchor;t[e]=null,this.setState({anchor:t})}},{key:"refListItem",value:function(e,t,a){var r=this,n=this.props,s=n.currentRepositoryConfig,o=n.refType,c=n.deleteRef,l=n.tabValue,p=n.classes,d=n.intl,u=this.state,m=u.page,h=u.perpage,g=Y(s);return!(0===l&&!t.length)&&Object(oe.jsxs)(k.a,{container:!0,className:p.refListItem,children:[t.length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ra,{title:e?d.formatMessage({id:"label."+e}):"",children:t.slice(0,m*h).map((function(t,a){return Object(oe.jsxs)(k.a,{container:!0,className:p.refItem,children:[Object(oe.jsxs)(k.a,{item:!0,xs:11,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:p.oneline,children:[Object(oe.jsx)(fe.a,{className:p.icon,icon:"tag"===o?je.G:je.d}),"\xa0\xa0\xa0",Object(oe.jsx)(w.a,{component:"span",className:p.refName,children:t.nameA}),"\xa0\xa0",Object(oe.jsx)(w.a,{component:"span",className:p.refLog,children:t.detail}),"\xa0\xa0","branch"===o&&t.protected&&Object(oe.jsx)(fe.a,{className:p.icon2,icon:je.C}),"branch"===o&&t.name===g&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)($e,{color:"secondary",text:d.formatMessage({id:"label.default"})})," \xa0\xa0\xa0"]}),"branch"===o&&t.name!==g&&!!t.isMerge&&Object(oe.jsx)($e,{color:"success",icon:je.P,text:d.formatMessage({id:"message.merged"})})]}),Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:p.oneline,children:[Object(oe.jsx)(fe.a,{className:p.icon,icon:je.i}),"\xa0\xb7\xa0",Object(oe.jsx)(w.a,{component:"span",className:p.refSha,children:t.shaA}),"\xa0\xb7\xa0",Object(oe.jsx)(w.a,{component:"span",className:p.refLog,children:t.logA}),"\xa0\xb7\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"span",className:p.refUpdate,children:[t.updater.name,"\xa0",d.formatMessage({id:"label.updatedIn"}),"\xa0"]}),Object(oe.jsx)(Nt,{timestamp:1*t.commit.time})]})]}),Object(oe.jsxs)(k.a,{item:!0,xs:1,className:p.delete,children:["branch"===o&&t.name!==g&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.more",onClick:function(t){return r.openRefItemMenu(e+a,t)},icon:je.cb}),Object(oe.jsx)(ct.a,{anchorEl:r.state.anchor[e+a],transitionDuration:0,open:!!r.state.anchor[e+a],onClose:function(t){return r.closeRefItemMenu(e+a)},children:Object(oe.jsxs)(pt.a,{onClick:function(){r.closeRefItemMenu(e+a),c(t.name)},children:[Object(oe.jsx)(fe.a,{className:p.icon,icon:je.H}),"\xa0\xa0",d.formatMessage({id:"label.delete"})]})})]}),"tag"===o&&Object(oe.jsx)(Pe,{label:"label.delete",className:p.icon,onClick:function(){return c(t.name)},icon:je.H})]})]},a)}))})}),0!==l&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,className:p.more,justifyContent:"center",children:Object(oe.jsx)(k.a,{item:!0,children:m*h>=t.length?Object(oe.jsx)(_.a,{size:"small",disabled:!0,children:d.formatMessage({id:"label.noMore"})}):Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",size:"small",disableElevation:!0,onClick:function(e){return r.setState({page:r.state.page+1})},children:[d.formatMessage({id:"label.more"})," \xa0\xa0",Object(oe.jsx)(fe.a,{icon:He.a})]})})})})]},a)}},{key:"render",value:function(){var e=this,t=this.props,a=t.refType,r=t.count,n=t.refTitles,s=t.refLists,o=t.pending,c=t.currentRepositoryConfig,l=t.classes,p=t.history,d=t.intl;this.refListsDeal(s);var u=0;return s&&s.map((function(e,t){return u+=e.length,!0})),Object(oe.jsx)(i.a.Fragment,{children:r?u?s.map((function(t,a){return e.refListItem(n[a],t,a)})):Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,className:l.more,justifyContent:"center",children:Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(_.a,{disabled:!0,children:d.formatMessage({id:"label.noMore"})})})})}):Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(Pt,{imageName:"tag"===a?"branches-empty.png":"tags-empty.png",title:d.formatMessage({id:"message.repository_S_empty"},{s:d.formatMessage({id:"label."+a})}),notice:d.formatMessage({id:"tag"===a?"message.repositoryTagEmpty":"message.repositoryBranchEmpty"}),children:"tag"===a?c.branches&&c.branches.length>0&&Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:o,onClick:function(){return p.push(W(c.repository.group.name,c.repository.name,"tags","new"))},children:d.formatMessage({id:"label.newTag"})}):Object(oe.jsx)(Oe,{type:"button",doc:"/git/create_branch.md",title:d.formatMessage({id:"label.newBranch"})})})})})}}]),a}(i.a.Component),yr=Object(R.b)(Object(C.a)((function(e){return{refListItem:{marginTop:e.spacing(3)},oneline:{display:"flex",height:e.spacing(3),alignItems:"center"},refItem:{padding:e.spacing(1.5)+"px "+e.spacing(3)+"px",borderTop:"1px solid "+e.palette.border},refName:{"& a":{color:e.palette.text.main+" !important",fontWeight:600}},refLog:{display:"flex",alignItems:"center",maxWidth:"35%","& a":{display:"inline-block",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:e.palette.text.main+" !important"}},refUpdate:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},refSha:{"& a":{color:e.palette.secondary.main+" !important"}},delete:{display:"flex",justifyContent:"flex-end",alignItems:"center"},more:{paddingTop:e.spacing(2)},icon:{color:e.palette.text.light},icon2:{color:e.palette.success.main,marginRight:e.spacing(2.5)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{}}))(Or)))),xr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).observed={keyword:r.props.match.params.branch?r.props.match.params.branch:"",tabValue:0,data:null},r.state={refTitles:[],branchLists:null,pending:!0,repage:0,sortDesc:!0},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.getData(e),!1):this.state.sortDesc===t.sortDesc||(this.dataSort(t.sortDesc),!1)}},{key:"getData",value:function(e){var t=this;if(!e.currentRepositoryKey||!e.currentRepositoryConfig.repository)return!1;Ht.branchList({repository:e.currentRepositoryKey}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),e.code||(t.observed.data=e.data,t.dataSort(t.state.sortDesc))}))}},{key:"dataSort",value:function(e){this.observed.data&&(this.observed.data.sort((function(t,a){return e?a.commit.time-t.commit.time:t.commit.time-a.commit.time})),this.dataFilter(this.observed.tabValue))}},{key:"dataFilter",value:function(e){var t=this.observed,a=t.data,r=t.keyword;this.observed.tabValue=e;var i=null;i=null!==a&&a.length?r?a.filter(U.nameLikes(r)):a:[];var n=[],s=[],o=Math.floor((new Date).getTime()/1e3),c=7776e3;i.map((function(t,a){return o-t.commit.time<=c&&(0===e||1===e)?n.push(t):o-t.commit.time>c&&(0===e||2===e)&&s.push(t),!0}));var l=[],p=[];0===e?(l.push("active","inactive"),p.push(n,s)):1===e?(l.push("active"),p.push(n)):2===e&&(l.push("inactive"),p.push(s)),this.setState({refTitles:l,branchLists:p,repage:this.state.repage+1})}},{key:"filterBranch",value:function(e){this.observed.keyword=e,this.dataFilter(this.observed.tabValue)}},{key:"deleteBranch",value:function(e){var t=this,a=this.props,r=a.currentRepositoryKey,i=a.intl;if(!r||!e)return!1;Ht.deleteBranch({repository:r,branch:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code?t.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.error.deleteFail"}),2)):(t.observed.data=t.observed.data.filter((function(t,a){return t.name!==e})),t.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.deleted"}),0)),t.dataFilter(t.observed.tabValue)),t.props.dispatchEvent(ae.cancelComformation())}))}},{key:"deleteConfirm",value:function(e){var t=this,a=this.props.intl;this.props.dispatchEvent(ae.addComformation("branch_remove",{title:a.formatMessage({id:"message.confirmDelete"},{s:a.formatMessage({id:"label.branch"})+" '"+e+"' "}),description:"",reject:function(){return!0},accept:function(){t.deleteBranch(e)}}))}},{key:"render",value:function(){var e=this,t=this.state,a=t.refTitles,r=t.branchLists,i=t.pending,n=t.repage,s=t.sortDesc;return Object(oe.jsx)(k.a,{container:!0,spacing:3,children:Object(oe.jsx)(vr,{refType:"branch",pending:i,tabValue:this.observed.tabValue,tabChange:function(t){return e.dataFilter(t)},searchRef:function(t){return e.filterBranch(t)},sortDesc:s,sortSwitch:function(){return e.setState({sortDesc:!s})},children:r?Object(oe.jsx)(yr,{refType:"branch",count:this.observed.data?this.observed.data.length:0,refTitles:a,refLists:r,deleteRef:function(t){return e.deleteConfirm(t)},repage:n,pending:i,tabValue:this.observed.tabValue}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:this.props.classes.loading,children:Object(oe.jsx)(he.a,{})})})})}}]),a}(r.Component),Sr=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(xr)))),Cr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).observed={keyword:r.props.match.params.tag?r.props.match.params.tag:"",data:null},r.state={tagList:null,pending:!0,repage:0,sortDesc:!0},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props)}},{key:"getData",value:function(e){var t=this;if(!e.currentRepositoryKey||!e.currentRepositoryConfig.repository)return!1;Ht.tagList({repository:e.currentRepositoryKey}).then(ne.withEventdispatcher(e.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),e.code||(t.observed.data=e.data,t.dataSort(t.state.sortDesc))}))}},{key:"dataSort",value:function(e){this.observed.data&&(this.observed.data.sort((function(t,a){return e?a.commit.time-t.commit.time:t.commit.time-a.commit.time})),this.dataFilter())}},{key:"dataFilter",value:function(){var e=this.observed,t=e.data,a=e.keyword,r=null;r=null!==t&&t.length?a?t.filter(U.nameLikes(a)):t:[],this.setState({tagList:[r],repage:this.state.repage+1})}},{key:"filterTag",value:function(e){this.observed.keyword=e,this.dataFilter()}},{key:"deleteTag",value:function(e){var t=this,a=this.props,r=a.currentRepositoryKey,i=a.intl;if(!r||!e)return!1;Ht.deleteTag({repository:r,tag:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code?t.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.error.deleteFail"}),2)):(t.observed.data=t.observed.data.filter((function(t,a){return t.name!==e})),t.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.deleted"}),0)),t.dataFilter()),t.props.dispatchEvent(ae.cancelComformation())}))}},{key:"deleteConfirm",value:function(e){var t=this,a=this.props.intl;this.props.dispatchEvent(ae.addComformation("tag_remove",{title:a.formatMessage({id:"message.confirmDelete"},{s:a.formatMessage({id:"label.tag"})+" '"+e+"' "}),description:"",reject:function(){return!0},accept:function(){t.deleteTag(e)}}))}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.getData(e),!1):this.state.sortDesc===t.sortDesc||(this.dataSort(t.sortDesc),!1)}},{key:"render",value:function(){var e=this,t=this.state,a=t.tagList,r=t.pending,i=t.repage,n=t.sortDesc;return Object(oe.jsx)(k.a,{container:!0,spacing:3,children:Object(oe.jsx)(vr,{refType:"tag",pending:r,searchRef:function(t){return e.filterTag(t)},sortDesc:n,sortSwitch:function(){return e.setState({sortDesc:!n})},children:null!==a?Object(oe.jsx)(yr,{refType:"tag",count:this.observed.data?this.observed.data.length:0,refTitles:[""],refLists:a,deleteRef:function(t){return e.deleteConfirm(t)},repage:i,pending:r}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:this.props.classes.loading,children:Object(oe.jsx)(he.a,{})})})})}}]),a}(i.a.Component),Nr=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Cr)))),Rr=a(125),Mr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,name:"",origin:"",description:"",error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.tagName"})})},{name:"name",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"name",passPattern:/^\w+(\.\w+)*$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.tagName"})})},{name:"origin",passPattern:/^.{0,40}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:40})},{name:"description",passPattern:/^[\S\n]{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"name",exceptionCode:1027,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.tagName"})})},{name:"name",exceptionCode:1030,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.tagName"})})},{name:"origin",exceptionCode:1036,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.createOrigin"})})}]),r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.state.pending&&this.props.currentRepositoryKey&&void 0!==this.props.currentRepositoryConfig.repository&&this.setState({pending:!1}),this.state.pending&&void 0!==this.props.currentRepositoryConfig.repository&&this.props.currentRepositoryKey!==e.currentRepositoryKey&&this.setState({pending:!1}),this.state.pending&&this.props.currentRepositoryKey&&JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)&&this.setState({pending:!1}),!0}},{key:"createTag",value:function(){var e=this,t=this.props,a=t.currentRepositoryKey,r=t.currentRepositoryConfig,i=t.history,n=t.intl,s=this.state,o=s.name,c=s.origin,l=s.description;if(!a||!r.repository||!this.checkInput())return!1;if("new"===o||".git"===o.slice(o.length-4))return this.setState({error:{name:n.formatMessage({id:"message.error._S_invalid"},{s:this.props.intl.formatMessage({id:"label.tagName"})})}}),!1;var p,d=Object(Rr.a)(r.branches);try{for(d.s();!(p=d.n()).done;){var u=p.value;if(o===u.name)return this.setState({error:{name:n.formatMessage({id:"message.error._S_duplicate"},{s:this.props.intl.formatMessage({id:"label.tagName"})})}}),!1}}catch(b){d.e(b)}finally{d.f()}var m,h=Object(Rr.a)(r.tags);try{for(h.s();!(m=h.n()).done;){var g=m.value;if(o===g.name)return this.setState({error:{name:n.formatMessage({id:"message.error._S_duplicate"},{s:this.props.intl.formatMessage({id:"label.tagName"})})}}),!1}}catch(b){h.e(b)}finally{h.f()}this.setState({pending:!0}),Ht.createTag({repository:a,name:o,origin:c,description:l}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createTagFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(r.tags.push({id:o,name:o}),++r.count.tag,i.push(W(r.repository.group.name,r.repository.name,"tags")))}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.history,i=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:i.title,children:n.formatMessage({id:"label.newTag"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.tagName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error.input_S_placeholder"},{s:n.formatMessage({id:"label.tagName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){e.setState({name:t.target.value,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.choseCreateOrigin"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.origin,error:!!this.state.error.origin,helperText:this.state.error.origin,onChange:function(t){return e.setState({origin:t.target.value})},children:[Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.tag"})}),a.tags&&a.tags.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.G}),"\xa0\xa0",e.name]},t)}))]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.tagDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:this.state.description,error:!!this.state.error.description,helperText:this.state.error.description,onChange:function(t){e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:i.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>30?i.outRange:"",children:[this.state.description.length,"/30"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",className:i.mr16,disabled:this.state.pending,onClick:function(){return r.push(W(a.repository.group.name,a.repository.name,"tags"))},children:n.formatMessage({id:"label.cancel"})}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.createTag()},children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit",className:i.mr16}):"",n.formatMessage({id:"label.ok"})]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:"\xa0"})]})})]})}}]),a}(i.a.Component),wr=Object(R.b)(Object(C.a)((function(e){return{title:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(3),borderBottom:"1px solid "+e.palette.border},icon:{color:e.palette.text.light},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main},mr16:{marginRight:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Mr)))),kr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,name:"",origin:"",error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"name",passPattern:/^.{1,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"name",passPattern:/^\w[\w/-\\.]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"origin",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notChoose"},{s:r.props.intl.formatMessage({id:"label.createOrigin"})})},{name:"origin",passPattern:/^.{1,40}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:40})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"name",exceptionCode:1027,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"name",exceptionCode:1030,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"origin",exceptionCode:1036,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.createOrigin"})})}]),r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.state.pending&&this.props.currentRepositoryKey&&void 0!==this.props.currentRepositoryConfig.repository&&this.setState({pending:!1}),this.state.pending&&void 0!==this.props.currentRepositoryConfig.repository&&this.props.currentRepositoryKey!==e.currentRepositoryKey&&this.setState({pending:!1}),this.state.pending&&this.props.currentRepositoryKey&&JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)&&this.setState({pending:!1}),!0}},{key:"createBranch",value:function(){var e=this,t=this.props,a=t.currentRepositoryKey,r=t.currentRepositoryConfig,i=t.history,n=t.intl,s=this.state,o=s.name,c=s.origin;if(!a||!r.repository||!this.checkInput())return!1;if("new"===o||".git"===o.slice(o.length-4))return this.setState({error:{name:n.formatMessage({id:"message.error._S_invalid"},{s:this.props.intl.formatMessage({id:"label.branchName"})})}}),!1;var l,p=Object(Rr.a)(r.branches);try{for(p.s();!(l=p.n()).done;){var d=l.value;if(o===d.name)return this.setState({error:{name:n.formatMessage({id:"message.error._S_duplicate"},{s:this.props.intl.formatMessage({id:"label.branchName"})})}}),!1}}catch(g){p.e(g)}finally{p.f()}var u,m=Object(Rr.a)(r.tags);try{for(m.s();!(u=m.n()).done;){var h=u.value;if(o===h.name)return this.setState({error:{name:n.formatMessage({id:"message.error._S_duplicate"},{s:this.props.intl.formatMessage({id:"label.branchName"})})}}),!1}}catch(g){m.e(g)}finally{m.f()}this.setState({pending:!0}),Ht.createBranch({repository:a,name:o,origin:c}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createBranchFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(r.branches.push({id:o,name:o}),++r.count.branch,i.push(W(r.repository.group.name,r.repository.name,"branches")))}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.history,i=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:i.title,children:n.formatMessage({id:"label.newBranch"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.branchName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.name,placeholder:n.formatMessage({id:"message.error.input_S_placeholder"},{s:n.formatMessage({id:"label.branchName"})}),error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){return e.setState({name:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.choseCreateOrigin"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.origin,error:!!this.state.error.origin,helperText:this.state.error.origin,onChange:function(t){return e.setState({origin:t.target.value})},children:[Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.tag"})}),a.tags&&a.tags.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.G}),"\xa0\xa0",e.name]},t)}))]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:"\xa0"}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",className:i.mr16,disabled:this.state.pending,onClick:function(){return r.push(W(a.repository.group.name,a.repository.name,"branches"))},children:n.formatMessage({id:"label.cancel"})}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.createBranch()},children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit",className:i.mr16}):"",n.formatMessage({id:"label.ok"})]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:"\xa0"})]})})]})}}]),a}(i.a.Component),_r=Object(R.b)(Object(C.a)((function(e){return{title:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(3),borderBottom:"1px solid "+e.palette.border},icon:{color:e.palette.text.light},mr16:{marginRight:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(kr)))),Er=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,refList:[],refTotal:0},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData(this.props)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey?(this.getData(e),!1):this.props.currentHash===e.currentHash||(this.getData(e),!1)}},{key:"getData",value:function(e){var t=this;if(!e.currentHash||!e.currentRepositoryKey)return!1;Ht.refListContainSHA({repository:e.currentRepositoryKey,hash:e.currentHash}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var a=[];a.branch=e.data.branch,a.tag=e.data.tag,t.setState({pending:!1,refList:a,refTotal:e.data.branch.length+e.data.tag.length})}}))}},{key:"render",value:function(){var e=this.props,t=e.show,a=e.classes,r=e.parentHash,i=e.currentGroup,n=e.currentRepository,s=e.history,c=e.intl,l=this.state,p=l.refList,d=l.refTotal;return Object(oe.jsxs)(k.a,{container:!0,className:[a.content,t?a.contentShow:""].join(" "),children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,className:a.parent,children:[Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:c.formatMessage({id:"label.parentNode"})}),Object(oe.jsx)(k.a,{children:r.length>0?r.map((function(e,t){return Object(oe.jsx)(o.b,{className:a.parentA,to:W(i,n,"commit",e?e.substr(0,8):""),children:e?e.substr(0,8):""},t)})):""})]}),Object(oe.jsxs)(k.a,{item:!0,xs:12,className:[a.parent,a.borderNone].join(" "),children:[Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:a.versions,children:c.formatMessage({id:"message.someVersion"})}),d>0?p.branch.map((function(e,t){var r=W(i,n,"files",encodeURIComponent(e));return Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",className:a.button,onClick:function(){return s.push(r)},children:[Object(oe.jsx)(fe.a,{icon:je.d}),"\xa0",e]},t)})):Object(oe.jsxs)(_.a,{color:"primary",size:"small",disabled:!0,disableElevation:!0,children:[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," \xa0\xa0"]}),d>0?p.tag.map((function(e,t){var r=W(i,n,"files",encodeURIComponent(e));return Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",className:a.button,onClick:function(){return s.push(r)},children:[Object(oe.jsx)(fe.a,{icon:je.G}),"\xa0",e]},t)})):Object(oe.jsxs)(_.a,{color:"primary",size:"small",disabled:!0,disableElevation:!0,children:[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," \xa0\xa0"]})]})]})}}]),a}(r.Component),Tr=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{content:{maxHeight:"0px",marginTop:e.spacing(3)+"px",overflow:"hidden",transition:"max-height .3s",border:"1px solid "+e.palette.border,borderBottom:"0px"},contentShow:{maxHeight:"1000px",border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px"},parent:{padding:e.spacing(2)+"px 0px",margin:"0px "+e.spacing(2)+"px",borderBottom:"1px solid "+e.palette.border},parentA:{display:"inline-block",marginTop:e.spacing(2),marginRight:e.spacing(2)},borderNone:{border:"0px"},versions:{marginBottom:e.spacing(1)},button:{marginRight:e.spacing(1),marginTop:e.spacing(1)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Er))))),Ar=a(439),Dr=a(440),Ir=a(441),Pr=a(156),Fr=a.n(Pr),Lr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={originalHTML:[],modifiedHTML:[],original:[],modified:[],fullfileContent:[],diffContent:[]},r.checkResponse=se.codeValidator(Object(N.a)(r),[{exceptionCode:1038,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"phrase.file"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.props.showFullFile?this.makeFullDiffContent():(this.makeDiffContent(),this.state.fullfileContent.length>0&&this.buildFullFileContent())}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.showFullFile===e.showFullFile||(e.showFullFile?this.makeFullDiffContent():(this.makeDiffContent(),this.state.fullfileContent.length>0&&this.buildFullFileContent()),!1)}},{key:"getFileContent",value:function(e){var t=this;Ht.object({repository:this.props.repository,parent:this.props.fileDiffInfo.original.sha}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code?t.checkResponse(a.code)&&t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.error.getFileFail"}),2)):(t.state.fullfileContent=a.data.object&&a.data.object.raw?a.data.object.raw.split("\n"):[],t.setState({fullfileContent:t.state.fullfileContent}),e(a))}))}},{key:"highlight",value:function(e){for(var t=$(this.props.fileDiffInfo.original.name||this.props.fileDiffInfo.modified.name||""),a=Ya.a.highlight(e.join("\n"),Ya.a.languages[t]||Ya.a.languages.markdown,t).split("\n"),r=[],i=0;i0){if(this.props.fileDiffInfo&&this.props.fileDiffInfo.diff&&this.props.fileDiffInfo.diff.line.length){for(var t=this.state.fullfileContent.length,a=this.props.fileDiffInfo.diff.line,r=[],i=[],n=[],s=[null,null],o=0;o0){var r=this.state.diffContent,i=r[t];if("head"===e){var n=this.state.diffContent[t-1],s=this.state.diffContent[t+1];if(!n&&s[1]<=20){for(var o=[],c=s[0]-1,l=s[1]-1;l>0;l--)o.unshift([c,l,""]),c--;return r.splice.apply(r,[t,1].concat(o)),this.setState({diffContent:r}),!0}if(n&&n[1]&&n[1]+21>=s[1]){for(var p=[],d=n[0]+1,u=n[1]+1;u=s[1]-20;b--)h.unshift([g,b,""]),g--;return r.splice.apply(r,[t+1,0].concat(h)),this.setState({diffContent:r}),!0}if("tail"===e){var f=this.state.diffContent[t-1],j=this.state.diffContent[t+1];if(!i&&f[0]+21>this.state.fullfileContent.length){for(var v=[],O=f[1]+1,y=f[0]+1;y<=this.state.fullfileContent.length;y++)v.push([y,O,""]),O++;return r.splice.apply(r,[t,1].concat(v)),this.setState({diffContent:r}),!0}if(i&&j&&j[1]&&f[1]+21>=j[1]){for(var x=[],S=f[0]+1,C=f[1]+1;C0&&(!this.state.fullfileContent.length||this.state.diffContent[this.state.diffContent.length-1][0] "+a.modified.name," \xa0\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[a.original.mode===a.modified.mode?"":a.original.mode+" -> "+a.modified.mode," \xa0"]})]}),Object(oe.jsx)(Pe,{label:v,icon:je.k,className:s.icon,onClick:function(t){e.copyPath(t,a.modified.name),t.stopPropagation()},onMouseLeave:function(){window.setTimeout((function(){return e.setState({copyPath:"label.copyPath"})}),100)}})]}),N===g&&Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"span",className:s.add,children:["+",a.diff.additions]}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:s.delete,children:a.diff.deletions}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:s.separator,children:"|"}),Object(oe.jsx)(be.a,{title:x,disableFocusListener:!0,placement:"top",children:Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleFullFile(t)},children:Object(oe.jsx)(fe.a,{icon:y?He.c:je.o})})}),i===n&&m&&Object(oe.jsx)(be.a,{title:O+"@"+m,disableFocusListener:!0,placement:"top",children:Object(oe.jsx)(_.a,{onClick:function(t){return e.viewFileDetail(C)},children:Object(oe.jsx)(fe.a,{icon:je.p})})})]}),N===b&&i===n&&u&&m&&Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(be.a,{title:O+"@"+u,disableFocusListener:!0,placement:"top",children:Object(oe.jsxs)(_.a,{className:s.viewOldFileBtn,onClick:function(t){return e.viewFileDetail(S)},children:[Object(oe.jsx)(fe.a,{icon:je.p}),"\xa0\xa0",o.formatMessage({id:"label.browserUnchangedFIle"})," \xa0","@"+u]})}),Object(oe.jsx)(be.a,{title:O+"@"+m,disableFocusListener:!0,placement:"top",children:Object(oe.jsxs)(_.a,{className:s.viewFileBtn,onClick:function(t){return e.viewFileDetail(C)},children:[Object(oe.jsx)(fe.a,{icon:je.p}),"\xa0\xa0",o.formatMessage({id:"label.browserFile"}),"\xa0","@"+m]})})]})]})}),Object(oe.jsx)(Ir.a,{className:s.panelDetail,children:Object(oe.jsx)(Gr,{fileDiffInfo:a,repository:i,renderSideBySide:r,layoutUpdateTimeStamp:l,showFullFile:y})})]})}}]),a}(r.Component),qr=Object(R.b)(Object(C.a)((function(e){return{add:{color:e.palette.success.main,cursor:"default",marginLeft:e.spacing(3),marginRight:e.spacing(2)},delete:{color:e.palette.error.main,cursor:"default",marginLeft:e.spacing(1),marginRight:e.spacing(1)},viewFileBtn:{minWidth:e.spacing(24)},viewOldFileBtn:{minWidth:e.spacing(27)},fileName:{cursor:"default",marginTop:e.spacing(.5)},viewFile:{marginLeft:e.spacing(2)},panelSummary:{border:"1px solid "+e.palette.border,position:"sticky",top:e.spacing(16),zIndex:7},panelDetail:{zIndex:e.spacing(1),overflow:"hidden"},separator:{color:e.palette.border},icon:{color:e.palette.primary.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Hr)))),zr=0,Wr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).fileBrowser={changeFilesTmp:null,treeFiles:null,listFiles:null},r.state={count:0},r.initChangeFiles(),r.listFilesRef=i.a.createRef(),r}return Object(d.a)(a,[{key:"initChangeFiles",value:function(){var e=this.props.changeFiles;if(!e||!e.length)return!1;e.map((function(e,t){var a=e.name.lastIndexOf("/");return e.used=!1,e.dirname=-1!==a?e.name.slice(0,a):"",e.filename=-1!==a?e.name.slice(a+1):e.name,!0})),this.initTreeFiles(),this.initListFiles()}},{key:"initTreeFiles",value:function(){var e=this,t=this.props.changeFiles;return!(!t||!t.length)&&(this.fileBrowser.treeFiles={"/":!0,"/open":!0},this.fileBrowser.changeFilesTmp=Object(T.a)(t),this.fileBrowser.changeFilesTmp.sort((function(e,t){return e.dirname!==t.dirname&&e.dirname.indexOf(t.dirname)>-1?-1:0})),this.fileBrowser.changeFilesTmp.map((function(t,a){var r=e.fileBrowser.treeFiles;t.dirname&&t.dirname.split("/").map((function(e,t){return!!e&&(void 0===r[e]&&(r[e]={"/":!0,"/open":!0}),r=r[e],!0)}));return r[t.filename]=Object(y.a)({"/":!1},t),!0})),!0)}},{key:"initListFiles",value:function(){var e=this,t=this.props.changeFiles;return!(!t||!t.length)&&(this.fileBrowser.listFiles=[],t.map((function(a,r){if(a.used)return a;a.used=!0;var i={name:a.dirname,files:[a]};return t.map((function(e,t){return e.used?e:(e.dirname===i.name&&(e.used=!0,i.files.push(e)),!0)})),e.fileBrowser.listFiles.push(i),!0})),!0)}},{key:"treeFiles",value:function(e,t,a){var r=this,n=this.props,s=n.fileClick,o=n.classes,c=Object.keys(t),l=0;return!(c.length<3)&&(c.map((function(e,a){return l+="/"===e||"/open"===e||t[e]["/"]?0:1,!0})),Object(oe.jsx)(i.a.Fragment,{children:l>0||c.length>3?Object(oe.jsxs)(w.a,{component:"div",children:[Object(oe.jsxs)(w.a,{component:"div",className:o.tree,style:this.calcPadding(a,!0),onClick:function(e){t["/open"]=!t["/open"],r.setState({count:r.state.count+1})},children:[Object(oe.jsx)(fe.a,{icon:t["/open"]?He.f:He.e}),"\xa0\xa0",e]}),t["/open"]&&c.map((function(e,n){return"/"!==e&&"/open"!==e&&Object(oe.jsx)(i.a.Fragment,{children:t[e]["/"]?r.treeFiles(e,t[e],a+1):Object(oe.jsxs)(w.a,{component:"div",className:o.tree,onClick:function(a){return s(t[e].hash)},style:r.calcPadding(a,!1),children:[Object(oe.jsx)(fe.a,{icon:He.d}),"\xa0\xa0",t[e].filename,Object(oe.jsxs)(w.a,{component:"span",className:o.delete,children:["-",t[e].delete]}),Object(oe.jsxs)(w.a,{component:"span",className:o.add,children:["+",t[e].add,"\xa0"]})]})},n)}))]}):c.map((function(n,s){return"/"!==n&&"/open"!==n&&Object(oe.jsx)(i.a.Fragment,{children:r.treeFiles(("/"!==e?e+"/":"")+n,t[n],a)},s)}))}))}},{key:"calcPadding",value:function(e,t){return{paddingLeft:(2*e+(t?1:3))*zr+"px"}}},{key:"listFiles",value:function(){var e=this,t=this.props,a=t.fileClick,r=t.classes,i=this.fileBrowser.listFiles;return!(!i||!i.length)&&Object(oe.jsx)(w.a,{component:"div",ref:this.listFilesRef,children:i.map((function(t,i){return Object(oe.jsxs)(w.a,{component:"div",className:r.listSub,children:[Object(oe.jsxs)(w.a,{component:"div",className:r.listDir2,children:[e.calcDir(t.name),"/"]}),Object(oe.jsxs)(w.a,{component:"div",className:r.listDir,children:[t.name,"/"]}),t.files&&t.files.map((function(e,t){return Object(oe.jsxs)(w.a,{component:"div",className:r.listFile,onClick:function(t){return a(e.hash)},children:[Object(oe.jsx)(fe.a,{icon:He.i}),"\xa0\xa0",e.filename,Object(oe.jsxs)(w.a,{component:"span",className:r.delete,children:["-",e.delete]}),Object(oe.jsxs)(w.a,{component:"span",className:r.add,children:["+",e.add,"\xa0"]})]},t)}))]},i)}))})}},{key:"calcDir",value:function(e){if(!e)return"";for(var t=e.split("/"),a=t.length-2;t.join("/").length>32&&a>0;)t[a--]="..";return t.join("/")}},{key:"listFilesScroll",value:function(e){if(this.props.treeView)return!1;for(var t=e.target.scrollTop,a=0,r=0,i=5*zr,n=this.listFilesRef.current.children,s=0;s=a&&tr-i?(n[s].style="position: relative",n[s].children[0].style="top: "+(n[s].clientHeight-i)+"px"):(n[s].style="position: static",n[s].children[0].style="top: 0; width: "+n[s].clientWidth+"px"):(n[s].style="position: relative",n[s].children[0].style="top: 0"),a+=n[s].clientHeight}},{key:"render",value:function(){var e=this,t=this.props,a=t.treeView,r=t.classes;return this.initChangeFiles(),Object(oe.jsx)(k.a,{container:!0,className:r.fileBrowserTop,children:Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.fileBrowser,onScroll:function(t){return e.listFilesScroll(t)},children:a?this.treeFiles("/",this.fileBrowser.treeFiles,0):this.listFiles()})})}}]),a}(i.a.Component),Vr=Object(R.b)(Object(C.a)((function(e){return zr=parseInt(e.spacing(1)),{fileBrowserTop:{position:"relative",height:"100%"},fileBrowser:{maxHeight:"100%",overflow:"auto",overflowX:"hidden",background:e.palette.background.light},tree:{paddingRight:e.spacing(1),lineHeight:e.spacing(4.5)+"px",cursor:"pointer","& > *":{lineHeight:e.spacing(4.5)+"px"},"&:hover":{background:e.palette.background.dark}},listSub:{position:"relative"},listDir:{lineHeight:e.spacing(5)+"px",paddingLeft:e.spacing(1),background:e.palette.background.light},listDir2:{position:"absolute",width:"100%",left:"0",top:"0",paddingLeft:e.spacing(1),lineHeight:e.spacing(5)+"px",boxSizing:"border-box",background:e.palette.background.light,overflowX:"hidden"},listFile:{lineHeight:e.spacing(5)+"px",paddingLeft:e.spacing(3),paddingRight:e.spacing(1),cursor:"pointer","& > *":{lineHeight:e.spacing(5)+"px"},"&:hover":{background:e.palette.background.dark}},add:{float:"right",color:e.palette.success.main},delete:{float:"right",color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(Wr)))),Jr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).mountedFlag=!1,r.observed={currentRepositoryKey:null},r.state={changedFilesInfo:[],diffViwerLayoutUpdateTimestamp:0,fileTreeIsOpen:!1,fileTreeGridNumber:3,effectFileCount:0,fileDiff:[],renderSideBySide:!0,addLine:0,deleteLine:0,pending:!0,large:!1},r}return Object(d.a)(a,[{key:"toggleDiffShow",value:function(){this.setState({renderSideBySide:!this.state.renderSideBySide,diffViwerLayoutUpdateTimestamp:(new Date).getTime()})}},{key:"toggleFileTree",value:function(){this.setState({fileTreeIsOpen:!this.state.fileTreeIsOpen,renderSideBySide:this.state.fileTreeIsOpen,diffViwerLayoutUpdateTimestamp:(new Date).getTime()})}},{key:"jumpToAnchor",value:function(e){window.location.href=window.location.href.split("#")[0]+"#"+e}},{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.observed.currentRepositoryKey=this.props.currentRepositoryKey,this.setState({pending:!0}),this.getData(this.props)}},{key:"getFileTreeInfo",value:function(e){for(var t=[],a=0;a1?e.parentHash[1]:e.childHash}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(e.data.large)return t.setState({effectFileCount:e.data.count,large:!0,pending:!1}),!1;var a=e.data.detail.reduce((function(e,t){return e+t.diff.additions}),0),r=e.data.detail.reduce((function(e,t){return e+t.diff.deletions}),0),i=t.getFileTreeInfo(e.data.detail);t.setState({changedFilesInfo:i,effectFileCount:e.data.count,fileDiff:e.data.detail,addLine:a,deleteLine:r,pending:!1})}))}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey||this.props.childHash!==e.childHash?(this.setState({pending:!0}),this.getData(e),!1):this.props.parentHash[0]===e.parentHash[0]||(this.setState({pending:!0}),this.getData(e),!1)}},{key:"render",value:function(){var e=this,t=this.state,a=t.effectFileCount,r=t.addLine,n=t.deleteLine,s=t.fileDiff,o=t.renderSideBySide,c=t.pending,l=t.fileTreeIsOpen,p=t.fileTreeGridNumber,d=t.changedFilesInfo,u=t.diffViwerLayoutUpdateTimestamp,m=t.large,h=this.props,g=h.classes,b=h.intl,f=h.childHash,j=h.parentHash,v=h.currentRepositoryKey;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",className:g.stickyPosition,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(w.a,{variant:"body1",className:g.diffTitle,children:[b.formatMessage({id:"label.fileModification"})," \xa0",c?"":"("+a+")"]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,container:!0,justifyContent:"flex-end",alignItems:"center",children:Object(oe.jsxs)(k.a,{item:!0,className:g.content,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"span",children:[b.formatMessage({id:"label.allFiles"})," : \xa0",c?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):a]}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:g.add,children:c?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):"+"+r}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:g.delete,children:c?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):n}),Object(oe.jsxs)(Ha.a,{variant:"outlined",color:"primary",size:"small",children:[Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleDiffShow(t)},children:o?"inline":"side-by-side"}),Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleFileTree(t)},children:l?b.formatMessage({id:"label.closeFileTree"}):b.formatMessage({id:"label.openFileTree"})})]})]})})]}),Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:l?p:12,className:l?g.fileTreeSticky:g.fileTreeHide,children:Object(oe.jsx)(Vr,{changeFiles:d,treeView:Boolean(!1),fileClick:function(t){return e.jumpToAnchor(t)}})}),Object(oe.jsxs)(k.a,{item:!0,xs:l?12-p:12,children:[!c&&s&&s.length>0&&Object(oe.jsx)(k.a,{container:!0,children:s.map((function(e,t){return Object(oe.jsx)(k.a,{item:!0,xs:12,id:e.modified.sha,className:g.fileDiffPanel,children:Object(oe.jsx)(qr,{modifiedRepositoryKey:v,fileDiffInfo:e,renderSideBySide:o,hash:f,parentHash:j,layoutUpdateTimeStamp:u,fileTreeIsOpen:l},t)},t)}))}),!m&&(c||!s||!s.length)&&Object(oe.jsx)(k.a,{container:!0,children:Object(oe.jsx)(Pt,{imageName:"branches-empty.png",title:b.formatMessage({id:"message._S_listEmpty"},{s:b.formatMessage({id:"label.file"})}),pending:c})}),m&&Object(oe.jsx)(k.a,{container:!0,className:g.loading,children:Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:b.formatMessage({id:"message.diffFileToMany"})})})]})]})]})}}]),a}(r.Component),Kr=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{add:{color:e.palette.success.main,marginLeft:e.spacing(3),marginRight:e.spacing(2)},delete:{color:e.palette.error.main,marginLeft:e.spacing(1),marginRight:e.spacing(1)},changedFile:{color:e.palette.primary.main,paddingBottom:e.spacing(1),backgroundColor:"transparent",fontSize:"1.25rem","&:hover":{backgroundColor:"transparent",boxShadow:"none"}},typography:{padding:e.spacing(2)},changedFileList:{width:"100%",maxWidth:e.spacing(113),backgroundColor:e.palette.background.paper},paper:{minWidth:e.spacing(38),width:"100%"},expansionMargin0:{margin:0},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},content:{zIndex:e.spacing(1),backgroundColor:e.palette.background.light},stickyPosition:{position:"sticky",top:e.spacing(8),zIndex:e.spacing(1),padding:e.spacing(2)+"px 0px",backgroundColor:e.palette.background.light},fileTreeHide:{display:"none"},fileTreeSticky:{position:"sticky",top:e.spacing(14.5),maxHeight:window.innerHeight-116+"px"},diffTitle:{lineHeight:e.spacing(4)+"px"},fileDiffPanel:{marginBottom:e.spacing(3)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Jr))))),$r=Object(C.a)((function(e){return{root:{width:e.spacing(3),height:e.spacing(3)}}}))(Be.a),Zr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).mountedFlag=!1,r.state={currentGroup:e.match.params.groupName?e.match.params.groupName:"",currentRepository:e.match.params.repositoryName?e.match.params.repositoryName:"",commitDetail:{},commiterInfo:{name:""},optionAnchorEl:null,parentHash:[],parentHashShow:!1},r.mountedFlag=!1,r}return Object(d.a)(a,[{key:"openOptionPopover",value:function(e){this.setState({optionAnchorEl:e.currentTarget})}},{key:"closeOptionPopover",value:function(){this.setState({optionAnchorEl:null})}},{key:"componentDidMount",value:function(){this.mountedFlag=!0,(0,this.props.closeDrawer)(),this.getData(this.props,this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.match.params.hash!==e.match.params.hash||this.props.currentRepositoryKey!==e.currentRepositoryKey?(this.getData(e,t),!1):JSON.stringify(this.props.currentRepositoryConfig)===JSON.stringify(e.currentRepositoryConfig)||(this.getData(e,t),!1)}},{key:"copyHash",value:function(e){var t=this.props.intl;this.copySomething(e),this.setState({copyHash:t.formatMessage({id:"label.copied"})})}},{key:"copySomething",value:function(e){var t=window.document.createElement("input");t.setAttribute("value",e),t.setAttribute("type","text"),window.document.body.appendChild(t),t.select(),document.execCommand("copy"),window.document.body.removeChild(t)}},{key:"getData",value:function(e,t){var a=this;if(!e.match.params.hash||!e.currentRepositoryKey||!e.currentRepositoryConfig.repository)return!1;Ht.commitDetail({repository:e.currentRepositoryKey,commitSHA:e.match.params.hash}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){var r=t.data;if(!r)return!1;if(e.currentRepositoryConfig){var i=Z(e.currentRepositoryConfig.members,r.email),n=r.parent.split(" ");a.setState({commitDetail:r,commiterInfo:i,parentHash:n})}}))}},{key:"render",value:function(){var e=this,t=this.state,a=t.commitDetail,r=t.commiterInfo,n=t.currentRepository,s=t.currentGroup,o=t.parentHash,c=t.parentHashShow,l=this.props,p=l.classes,d=l.currentRepositoryKey,u=l.history,m=l.intl,h=l.match;return Object(oe.jsx)(i.a.Fragment,{children:Object(oe.jsx)(k.a,{container:!0,spacing:3,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(M.a,{elevation:1,children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",children:[Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:a.commit}),Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:p.oneline,children:[Object(oe.jsx)($r,{src:r.icon?D.HOSTS.PGYER_AVATAR_HOST+r.icon:"/static/images/default_avatar.png"}),"\xa0\xa0",Object(oe.jsxs)(w.a,{component:"span",variant:"body2",children:[r.name,"\xa0\xa0",m.formatMessage({id:"label.editIn"}),"\xa0"]}),a.time&&Object(oe.jsx)(w.a,{component:"span",variant:"body2",children:Object(oe.jsx)(Nt,{timestamp:a.time})})]})]}),Object(oe.jsxs)(k.a,{item:!0,className:p.oneline,children:[Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({parentHashShow:!c})},children:[m.formatMessage({id:"label.detail"}),Object(oe.jsx)(fe.a,{icon:je.L,className:[p.icon,c?p.transform:""].join(" ")})]}),a.sha&&Object(oe.jsx)(k.a,{className:p.ml16,children:Object(oe.jsx)(nr,{hash:a.sha.substr(0,8)})}),Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:p.ml16,onClick:function(){return u.push(W(s,n,"files",h.params.hash,""))},children:m.formatMessage({id:"label.browserFile"})})]})]}),Object(oe.jsx)(Tr,{show:c,parentHash:o,currentHash:h.params.hash,currentGroup:s,currentRepository:n,currentRepositoryKey:d}),Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"space-between",children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Kr,{id:"FileDiffDetail",parentHash:o,childHash:h.params.hash,rKey:d})})})]})})})})}}]),a}(i.a.Component),Yr=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{oneline:{display:"flex",alignItems:"center"},ml16:{marginLeft:e.spacing(2)},icon:{marginLeft:e.spacing(1),fontSize:e.spacing(1),color:e.palette.text.main},transform:{transform:"rotate(180deg)"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{closeDrawer:function(){e({type:"drawer.expandStatus.close"})},dispatchEvent:function(t){e(t)}}}))(Zr))))),Xr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.repositoryInfo,a=e.reviewers,r=e.classes;return Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:a.length>0&&a.map((function(e,a){var i=t.members.filter(U.id(e.user))[0];return Object(oe.jsxs)(k.a,{item:!0,className:r.reviewer,children:[Object(oe.jsx)(Be.a,{className:r.reviewerIcon,src:D.HOSTS.PGYER_AVATAR_HOST+i.icon}),Object(oe.jsx)(fe.a,{icon:e.isReview?je.P:je.M,className:[r.isReview,e.isReview?r.reviewed:""].join(" ")})]},a)}))})}}]),a}(i.a.Component),Qr=Object(C.a)((function(e){return{reviewer:{position:"relative"},reviewerIcon:{marginLeft:"-8px",borderRadius:"50%",boxSizing:"border-box",width:e.spacing(4),height:e.spacing(4),border:"2px solid "+e.palette.background.light+" !important"},isReview:{right:0,bottom:0,zIndex:"1",fontSize:"12px",borderRadius:"50%",position:"absolute",color:e.palette.text.light,background:e.palette.background.light,border:"2px solid "+e.palette.background.light},reviewed:{color:e.palette.success.main}}}))(Object(h.f)(Xr)),ei=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).dataDeal(),r}return Object(d.a)(a,[{key:"dataDeal",value:function(){var e=this.props,t=e.data,a=e.repositoryList,r=e.history;if(!t&&!a.length)return!1;var i=a.filter(U.id(t.targetRepository));if(i.length){var n=i[0];t.targetRepository=n;var s=W(n.group.name,n.name,"commits",encodeURIComponent(t.targetBranch));t.targetLink=Object(oe.jsx)(rr,{to:s,onClick:function(e){return r.push(s)},children:t.targetBranch});var o=W(n.group.name,n.name,"mergerequests",t.number);t.titleLink=Object(oe.jsx)(rr,{to:o,onClick:function(e){return r.push(o)},children:t.title})}else t.targetLink=t.targetBranch,t.titleLink=t.targetBranch;var c=a.filter(U.id(t.sourceRepository));if(c.length){var l=c[0];t.sourceRepository=l;var p=W(l.group.name,l.name,"commits",encodeURIComponent(t.sourceBranch));t.sourceLink=Object(oe.jsx)(rr,{to:p,onClick:function(e){return r.push(p)},children:t.sourceBranch}),t.updater=Z(l.members,t.commit.email).name}else if(t.sourceLink=t.sourceBranch,i.length){var d=i[0];t.updater=Z(d.members,t.commit.email).name}else t.updater=t.commit.email}},{key:"render",value:function(){var e=this.props,t=e.isRepository,a=e.data,r=e.classes,i=e.intl,n=D.mergeRequestStatus;return Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",alignItems:"center",className:r.item,children:[Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:[r.oneline,r.title].join(" "),children:[a.titleLink,"\xa0\xa0\xa0\xa0",a.status===n.open&&Object(oe.jsx)($e,{color:"success",background:!1,icon:je.j,text:i.formatMessage({id:"message.opened"})}),a.status===n.merged&&Object(oe.jsx)($e,{color:"info",background:!1,icon:je.z,text:i.formatMessage({id:"message.merged"})}),a.status===n.closed&&Object(oe.jsx)($e,{color:"warning",background:!1,icon:je.q,text:i.formatMessage({id:"message.closed"})})]}),Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:r.oneline,children:[Object(oe.jsx)(w.a,{component:"span",children:!t&&a.targetRepository.name}),Object(oe.jsxs)(w.a,{component:"span",children:["!",a.number]}),"\xa0\xb7\xa0",Object(oe.jsxs)(w.a,{component:"span",className:r.textMain,children:[Object(oe.jsx)(fe.a,{icon:je.y}),"\xa0",a.sourceLink,"\xa0",Object(oe.jsx)(fe.a,{icon:He.b}),"\xa0",a.targetLink]}),"\xa0\xb7\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[a.updater,"\xa0\xa0",i.formatMessage({id:"label.editIn"}),":\xa0\xa0",Object(oe.jsx)(Nt,{timestamp:1*a.commit.time})]})]})]}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(k.a,{item:!0,className:r.reviewers,children:a.reviewers.length>0?Object(oe.jsx)(Qr,{reviewers:a.reviewers,repositoryInfo:a.targetRepository}):Object(oe.jsx)(k.a,{item:!0,children:"\xa0"})}),Object(oe.jsxs)(w.a,{variant:"body2",component:"div",children:[i.formatMessage({id:"label.updateTime"}),":\xa0\xa0",Object(oe.jsx)(Nt,{timestamp:1*a.update})]})]})]})}}]),a}(i.a.Component),ti=Object(R.b)(Object(C.a)((function(e){return{item:{padding:e.spacing(1.5)+"px "+e.spacing(3)+"px",borderTop:"1px solid "+e.palette.border},oneline:{lineHeight:e.spacing(3.5)+"px"},title:{"& a":{color:e.palette.text.main+" !important",fontWeight:600}},textMain:{"& a":{color:e.palette.text.main+" !important"}},reviewers:{marginBottom:e.spacing(.5)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ei)))),ai=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,isGlobal:!e.match.params.groupName,isRepository:null,tabValue:0,keyword:"",sortDesc:!0,page:1,pagesize:10,noMore:!1,mrList:null,relatedRepository:[]},r.observed={keyword:""},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props,this.state,!1)}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.props.currentGroupConfig)!==JSON.stringify(e.currentGroupConfig)||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.getData(e,t,!1),!1):this.state.page===t.page||t.pending?this.state.sortDesc!==t.sortDesc?(this.getData(e,t,!0),!1):this.state.tabValue===t.tabValue||(this.getData(e,t,!0),!1):(this.setState({pending:!0}),this.getData(e,t,!1),!1)}},{key:"getData",value:function(e,t,a){var r=this;a&&(this.observed.keyword=t.keyword,this.setState({pending:!0,page:1,mrList:null}));var i={status:t.tabValue,keyword:t.keyword,sort:t.sortDesc?"desc":"asc",page:a?1:t.page,pagesize:t.pagesize};e.currentRepositoryConfig.repository?(i.repository=e.currentRepositoryConfig.repository.id,Ht.mergeRequests(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){r.getDataDeal(e,!0)}))):e.currentGroupConfig.group?(i.group=e.currentGroupConfig.group.id,va.mergeRequests(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){r.getDataDeal(e,!1)}))):t.isGlobal&&Ht.relatedMergeRequests(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){r.getDataDeal(e,!1)}))}},{key:"getDataDeal",value:function(e,t){e.code?this.setState({mrList:[]}):this.setState({pending:!1,isRepository:t,mrList:[].concat(Object(T.a)(this.state.mrList?this.state.mrList:[]),Object(T.a)(this.state.isGlobal?e.data.mergeRequests:e.data)),noMore:(this.state.isGlobal?e.data.mergeRequests.length:e.data.length)0&&this.getTargetRepository(r[0].id)}return this.state.groupName||this.state.repositoryName||e.repositoryList.length>0&&(this.getInitRepositoryBranches(e.repositoryList[0].id),this.getTargetRepository(e.repositoryList[0].id)),!1}if(this.props.history.listen((function(e){if("/mergerequests/new"===e.pathname)return a.setState({groupName:"",repositoryName:""}),!1})),this.state.originRepository!==t.originRepository&&e.repositoryList.length>0){if(this.state.groupName&&!this.state.repositoryName){var i=e.repositoryList.filter(U.groupName(t.groupName));this.getInitRepositoryBranches(t.originRepository),i.length>0&&this.getTargetRepository(t.originRepository)}else this.state.repositoryName||this.state.groupName||this.state.originRepository?(this.getInitRepositoryBranches(t.originRepository),this.getTargetRepository(t.originRepository)):(this.getInitRepositoryBranches(e.repositoryList[0].id),this.getTargetRepository(t.originRepository));return!1}if(!this.state.originRepository&&!this.state.repositoryName&&!this.state.groupName&&e.repositoryList.length>0)return this.setState({originRepository:e.repositoryList[0].id}),!0;if(!this.state.originRepository&&!this.state.repositoryName&&this.state.groupName&&e.repositoryList.length>0){var n=e.repositoryList.filter(U.groupName(t.groupName));return n.length&&this.getInitRepositoryBranches(n[0].id),!1}return!0}},{key:"componentDidMount",value:function(){this.getTargetRepository()}},{key:"getTargetRepository",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",a=this.props.currentRepositoryKey;if(!a&&!t)return!1;Ht.targetRepository({repository:a||t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(r){if(!r.code){var i="",n=r.data;n.map((function(e){return e.forkFlag&&(i=e.rKey),!0})),i||(i=a||t),Ht.branchList({repository:i}).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(r){r.code||e.setState({originRepository:a||t,targetRepository:i,targetRepositoryList:n,targetRepositoryBranches:r.data})}))}}))}},{key:"getInitRepositoryBranches",value:function(e){var t=this;Ht.branchList({repository:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||t.setState({originRepository:e,originRepositoryBranches:a.data,error:!1})}))}},{key:"getOriginRepositoryBranches",value:function(e){var t=this;Ht.branchList({repository:e.target.value}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||t.setState({originRepository:e.target.value,originRepositoryBranches:a.data,error:!1,originLastCommit:!1,targetLastCommit:!1})}))}},{key:"getTargetRepositoryBranches",value:function(e){var t=this;Ht.branchList({repository:e.target.value}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||t.setState({targetRepository:e.target.value,targetRepositoryBranches:a.data,error:!1,targetLastCommit:!1})}))}},{key:"selectOriginBranch",value:function(e){var t=this,a=this.props,r=a.currentRepositoryKey,i=a.repositoryList,n=this.state.originRepository;Ht.lastCommitLog({ref:e.target.value,repository:r||n}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){if(!a.code){var r=n?i.filter(U.id(n)):null;t.setState({originLastCommit:a.data,originBranch:e.target.value,originRepositoryInfo:r[0],error:!1})}}))}},{key:"selectTargetBranch",value:function(e){var t=this,a=this.props.repositoryList,r=this.state.targetRepository;Ht.lastCommitLog({ref:e.target.value,repository:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(i){if(!i.code){var n=r?a.filter(U.id(r)):null;t.setState({targetLastCommit:i.data,targetBranch:e.target.value,targetRepositoryInfo:n[0],error:!1})}}))}},{key:"GoMergeRequestDetail",value:function(){var e=this.props.history,t=this.state,a=t.originRepository,r=t.targetRepository,i=t.originBranch,n=t.targetBranch,s=t.targetRepositoryInfo;a===r&&i===n?this.setState({error:!0}):e.push(W(s.group.name,s.name,"mergerequests","detail",a,encodeURIComponent(i),r,encodeURIComponent(n)))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.classes,n=t.intl,s=t.repositoryList,o=this.state,c=o.targetRepositoryList,l=o.targetRepositoryBranches,p=o.originLastCommit,d=o.targetLastCommit,u=o.originBranch,m=o.targetBranch,h=o.originRepository,g=o.targetRepository,b=o.error,f=o.repositoryName,j=o.groupName,v=o.originRepositoryBranches,O=o.originRepositoryInfo,y=o.targetRepositoryInfo,x=[];return!f&&j&&(x=s.filter(U.groupName(j))),Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:r.title,children:n.formatMessage({id:"label.createMergeRequest"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{className:r.repositorySelect,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.branchTitle,children:n.formatMessage({id:"label.sourceBranch"})}),Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:r.branchSelect,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:h.length?h:"empty",onChange:function(t){return e.getOriginRepositoryBranches(t)},onClick:function(t){return!h&&e.props.history.push(W("repositories/new"))},children:[f&&a.repository&&Object(oe.jsxs)(pt.a,{value:a.repository.id,children:[a.repository.group.name,"/",a.repository.name]},a.repository.id),!!x.length&&j&&x.map((function(e,t){return e.group.name!==j?null:Object(oe.jsx)(pt.a,{value:e.id,children:e.group.displayName+"/"+e.displayName},e.id)})),0===x.length&&0===h.length&&j&&Object(oe.jsx)(pt.a,{value:"empty",children:n.formatMessage({id:"label.createRepository"})}),!j&&!f&&!!h.length&&!!s.length&&s.map((function(e,t){return Object(oe.jsx)(pt.a,{value:e.id,children:e.group.displayName+"/"+e.displayName},e.id)})),(!h.length||!s.length)&&Object(oe.jsx)(pt.a,{value:"empty",children:n.formatMessage({id:"label.createRepository"})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:u,onChange:function(t){return e.selectOriginBranch(t)},children:[Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),!a.branches&&v&&v.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)}))]})})]}),(O||a.repository)&&p&&u&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.commit,children:Object(oe.jsx)(or,{showBorder:Boolean(!1),data:p,current:u,currentRefType:"branch",currentGroup:O.group.name||a.repository.group.name,currentRepositoryConfig:a.repository?a:O,currentRepository:a.repository?a.repository.name:O.name,linkPathBase:W(O.group.name||a.repository.group.name,a.repository?a.repository.name:O.name,"commit")})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{className:r.repositorySelect,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.branchTitle,children:n.formatMessage({id:"label.targetBranch"})}),Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:r.branchSelect,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:g.length?g:"empty",onChange:function(t){return e.getTargetRepositoryBranches(t)},children:[c&&c.map((function(e,t){return Object(oe.jsx)(pt.a,{value:e.rKey,children:e.name},e.rKey)})),0===c.length&&Object(oe.jsx)(pt.a,{value:"empty",children:n.formatMessage({id:"label.createRepository"})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:m,onChange:function(t){return e.selectTargetBranch(t)},children:[Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),l&&l.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)}))]})})]}),(y||a.repository)&&d&&m&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.commit,children:Object(oe.jsx)(or,{showBorder:Boolean(!1),data:d,current:m,currentRefType:"branch",currentGroup:y.group.name||a.repository.group.name,currentRepositoryConfig:a.repository?a:y,currentRepository:a.repository?a.repository.name:y.name,linkPathBase:W(y.group.name||a.repository.group.name,a.repository?a.repository.name:y.name,"commit")})})]})}),b&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:6}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",align:"center",className:b?r.errorInfo:r.hideError,children:n.formatMessage({id:"message.selectDifferentBranch"})})})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:!h||!g||!u||!m||b,onClick:function(){return e.GoMergeRequestDetail()},children:n.formatMessage({id:"label.compareBranch"})})})]})})]})}}]),a}(i.a.Component),ni=Object(R.b)(Object(C.a)((function(e){return{title:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(3),borderBottom:"1px solid "+e.palette.border},repositorySelect:{border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px",overflow:"hidden"},branchTitle:{lineHeight:e.spacing(5)+"px",background:e.palette.background.main,padding:"0px "+e.spacing(2)+"px",borderBottom:"1px solid "+e.palette.border},branchSelect:{padding:e.spacing(2)},commit:{borderTop:"1px solid "+e.palette.border},icon:{color:e.palette.text.light},errorInfo:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText},hideError:{display:"none"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ii)))),si=a(414),oi=a(453),ci=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a);var i=(r=t.call(this,e)).props,n=i.latestVersion,s=i.baseVersion;return r.state={diffViwerLayoutUpdateTimestamp:0,renderSideBySide:!0,fileTreeIsOpen:!1,fileTreeGridNumber:3,startHash:n,endHash:s},r}return Object(d.a)(a,[{key:"toggleDiffShow",value:function(){this.setState({renderSideBySide:!this.state.renderSideBySide,diffViwerLayoutUpdateTimestamp:(new Date).getTime()})}},{key:"componentDidMount",value:function(){var e=this.props,t=e.latestVersion,a=e.baseVersion;this.setState({startHash:t,endHash:a})}},{key:"toggleFileTree",value:function(){this.setState({fileTreeIsOpen:!this.state.fileTreeIsOpen,renderSideBySide:this.state.fileTreeIsOpen,diffViwerLayoutUpdateTimestamp:(new Date).getTime()})}},{key:"jumpToAnchor",value:function(e){window.location.href=window.location.href.split("#")[0]+"#"+e}},{key:"shouldComponentUpdate",value:function(e,t){return this.state.startHash!==t.startHash?(this.props.getVersionDiff(e.sourceRepository,e.targetRepository,t.startHash,this.state.endHash,e),!1):this.state.endHash===t.endHash||(this.props.getVersionDiff(e.sourceRepository,e.targetRepository,this.state.startHash,t.endHash,e),!1)}},{key:"changeHash",value:function(e,t){var a=e.target.value;"start"===t?this.setState({startHash:a}):this.setState({endHash:a})}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,n=t.changedFilesInfo,s=t.fileDiff,o=t.pending,c=t.effectFileCount,l=t.addLine,p=t.deleteLine,d=t.showVersionCompare,u=t.versionList,m=t.baseVersionList,h=t.baseVersion,g=t.sourceRepository,b=t.latestVersion,f=this.state,j=f.renderSideBySide,v=f.fileTreeIsOpen,O=f.fileTreeGridNumber,y=f.diffViwerLayoutUpdateTimestamp,x=f.startHash,S=f.endHash;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:d?"space-between":"flex-end",alignItems:"center",className:a.diffInfoSticky,children:[d&&Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(si.a,{className:a.margin,children:Object(oe.jsx)(oi.a,{variant:"outlined",value:x||b,onChange:function(t){return e.changeHash(t,"start")},children:u&&u.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.sha,children:[Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:0===t?r.formatMessage({id:"label.lastModified"}):r.formatMessage({id:"label.lastModified_N"},{n:u.length-t})}),Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:"-"+e.sha.substr(0,8)})]},t)}))})})}),Object(oe.jsx)(k.a,{item:!0,className:a.and,children:r.formatMessage({id:"label.and"})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(si.a,{className:a.margin,children:Object(oe.jsx)(oi.a,{variant:"outlined",value:S||h,onChange:function(t){return e.changeHash(t,"end")},children:m&&m.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.sha,children:[Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:0===t?"Base Line":r.formatMessage({id:"label.lastModified_N"},{n:m.length-t})}),Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:"-"+e.sha.substr(0,8)})]},t)}))})})})]})}),Object(oe.jsxs)(k.a,{item:!0,className:a.content,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"span",children:[r.formatMessage({id:"label.allFiles"})," : \xa0",o?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):c]}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:a.add,children:o?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):"+"+l}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:a.delete,children:o?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):p}),Object(oe.jsxs)(Ha.a,{variant:"outlined",color:"primary",size:"small",children:[Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleDiffShow(t)},children:j?"inline":"side-by-side"}),Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleFileTree(t)},children:v?r.formatMessage({id:"label.closeFileTree"}):r.formatMessage({id:"label.openFileTree"})})]})]})]}),Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:v?O:12,className:v?a.fileTreeSticky:a.fileTreeHide,children:Object(oe.jsx)(Vr,{changeFiles:n,treeView:Boolean(!1),fileClick:function(t){return e.jumpToAnchor(t)}})}),Object(oe.jsx)(k.a,{item:!0,xs:v?12-O:12,children:Object(oe.jsx)(k.a,{container:!0,children:!o&&s?s.map((function(e,t){return Object(oe.jsx)(k.a,{item:!0,xs:12,id:e.modified.sha,className:a.fileDiffPanel,children:Object(oe.jsx)(qr,{modifiedRepositoryKey:g,fileDiffInfo:e,renderSideBySide:j,layoutUpdateTimeStamp:y,fileTreeIsOpen:v},t)},t)})):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:a.loading,children:Object(oe.jsx)(he.a,{})})})})]})]})}}]),a}(i.a.Component),li=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},copyHash:{minWidth:e.spacing(1),height:e.spacing(4),width:e.spacing(4),padding:e.spacing(0),marginBottom:e.spacing(.5)},commitLog:{paddingRight:0},changedFileList:{width:"100%",backgroundColor:e.palette.background.paper},commitAvatar:{marginLeft:e.spacing(1),marginTop:e.spacing(.5),marginRight:e.spacing(1)},commiterName:{paddingTop:e.spacing(.5)},add:{color:e.palette.success.main,marginLeft:e.spacing(3),marginRight:e.spacing(2)},delete:{color:e.palette.error.main,marginLeft:e.spacing(1),marginRight:e.spacing(1)},changedFile:{color:e.palette.primary.main,paddingBottom:e.spacing(1),backgroundColor:"transparent",fontSize:"1.25rem","&:hover":{backgroundColor:"transparent",boxShadow:"none"}},typography:{padding:e.spacing(2)},paper:{minWidth:e.spacing(38),width:"100%"},expansionMargin0:{margin:0},content:{zIndex:e.spacing(1),backgroundColor:e.palette.background.light},stickyPosition:{position:"sticky",top:e.spacing(8),zIndex:e.spacing(1),backgroundColor:e.palette.background.light},diffInfoSticky:{top:"105px",position:"sticky",marginTop:"-24px",paddingTop:e.spacing(3),paddingBottom:e.spacing(3),height:e.spacing(10)+1+"px",zIndex:e.spacing(1),backgroundColor:e.palette.background.light},and:{lineHeight:e.spacing(4)+"px"},fileTreeHide:{display:"none"},fileTreeSticky:{position:"sticky",top:"174px",maxHeight:window.innerHeight-174+"px"},fileDiffPanel:{marginBottom:e.spacing(3),"& > div > div:first-child":{top:"186px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ci)))),pi=Object(C.a)((function(e){return{root:{width:e.spacing(3),height:e.spacing(3)}}}))(Be.a),di=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),r=t.call(this,e);var i=e.match.params;return r.state={mid:i.mid?i.mid:"",mergeRequestInfo:{id:"",sourceRepository:i.sourceRepository?i.sourceRepository:"",sourceBranch:i.sourceBranch?decodeURIComponent(i.sourceBranch):"",targetRepository:i.targetRepository?i.targetRepository:"",targetBranch:i.targetBranch?decodeURIComponent(i.targetBranch):""},sourceRepositoryInfo:null,targetRepositoryInfo:null,requesterInfo:null,handlerInfo:null,title:i.sourceBranch?decodeURIComponent(i.sourceBranch):"",description:"",tabValue:0,pending:!0,changedFiles:[],fileDiff:[],effectFileCount:0,addLine:0,deleteLine:0,commits:[],activities:[],showCommitInput:!1,mergeMessage:"",usingSquash:!1,error:{},hasMergeConflict:!1,mergeStatus:"open",versionList:[],latestVersion:"",baseVersion:"",submitMergeRequest:!1,mergePending:!1,reviewers:[],reviewersMenu:null,updateReviewersPending:!1},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"message",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"message",passPattern:/^.{1,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})}]),r.getVersionDiff=r.getVersionDiff.bind(Object(N.a)(r)),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.props.closeDrawer(),this.state.mid?this.getDetailData(this.props,this.state):this.getChangeData(this.props,this.state),this.state.mid&&this.getVersionList(this.state)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.repositoryList.length!==e.repositoryList.length?(this.state.mid?this.getDetailData(e,t):this.getChangeData(e,t),this.getVersionList(t),!1):JSON.stringify(this.state.mergeRequestInfo)!==JSON.stringify(t.mergeRequestInfo)?this.state.updateReviewersPending?(this.getActivities(this.state.mergeRequestInfo.targetRepository,this.state.mergeRequestInfo.id),!1):(this.getChangeData(e,t),this.getVersionList(t),!1):this.props.match.params.mid!==e.match.params.mid?(this.setState({mid:e.match.params.mid}),!1):this.state.mid!==t.mid?(this.getDetailData(e,t),this.getVersionList(t),!1):this.state.mergeStatus!==t.mergeStatus?(this.getDetailData(e,t),!1):this.props.currentRepositoryKey===e.currentRepositoryKey||(this.getDetailData(e,t),!1)}},{key:"getVersionDiff",value:function(e,t,a,r,i){var n=this;Ht.fileChanges({versionCompare:!0,repository:e,original:a,targetRepository:t,modified:r}).then(ne.withEventdispatcher(i.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var t=e.data.detail.reduce((function(e,t){return e+t.diff.additions}),0),a=e.data.detail.reduce((function(e,t){return e+t.diff.deletions}),0);n.setState({pending:!1,changedFiles:n.getFileTreeInfo(e.data.detail),fileDiff:e.data.detail,effectFileCount:e.data.count,addLine:t,deleteLine:a})}}))}},{key:"getChangeData",value:function(e,t){var a=this,r=e.repositoryList,i=t.mergeRequestInfo,n=i.id,s=i.sourceRepository,o=i.sourceBranch,c=i.targetRepository,l=i.targetBranch;if(!s||!o||!c||!l||!r.length)return!1;n?this.getRepositories(e,t,!1):(this.setState({submitMergeRequest:!0}),this.getRepositories(e,t,!0)),Ht.fileChanges({mergeRequest:n,repository:s,original:o,targetRepository:c,modified:l}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var t=e.data.detail.reduce((function(e,t){return e+t.diff.additions}),0),r=e.data.detail.reduce((function(e,t){return e+t.diff.deletions}),0);a.setState({pending:!1,changedFiles:a.getFileTreeInfo(e.data.detail),fileDiff:e.data.detail,effectFileCount:e.data.count,addLine:t,deleteLine:r})}Ht.mergeRequestCommits({mergeRequest:n,sourceRepository:s,sourceBranch:o,targetRepository:c,targetBranch:l}).then(ne.withEventdispatcher(a.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({commits:e.data})})),a.state.mid&&a.getActivities(c,n)}))}},{key:"getActivities",value:function(e,t){var a=this;Ht.activities({repository:e,mergeRequest:t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({activities:e.data,updateReviewersPending:!1})}))}},{key:"getFileTreeInfo",value:function(e){for(var t=[],a=0;a2&&void 0!==arguments[2]&&arguments[2],r=e.repositoryList,i=t.mergeRequestInfo,n=r.filter(U.id(i.targetRepository))[0];this.setState({sourceRepositoryInfo:a?r.filter(U.id(i.sourceRepository))[0]:t.mergeRequestInfo.sourceRepoInfo,targetRepositoryInfo:n,requesterInfo:i.submitter,handlerInfo:i.handler?n.members.filter(U.id(i.handler))[0]:null})}},{key:"createMergeRequest",value:function(){var e=this,t=this.state,a=t.mergeRequestInfo,r=t.title,i=t.description,n=t.targetRepositoryInfo,s=t.reviewers,o=t.mergePending,c=this.props,l=c.history,p=c.intl;if(o)return!1;this.setState({mergePending:!0}),Ht.createMergeRequest({sourceRepository:a.sourceRepository,sourceBranch:a.sourceBranch,targetRepository:a.targetRepository,targetBranch:a.targetBranch,title:r,description:i,reviewers:s.join(",")}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({mergePending:!1}),t.code?1030===t.code?e.props.dispatchEvent(ae.NewNotification(p.formatMessage({id:"message.error.mergeRequestExists"}),2)):1039===t.code?e.props.dispatchEvent(ae.NewNotification(p.formatMessage({id:"message.error.branchProteced"}),2)):e.props.dispatchEvent(ae.NewNotification(p.formatMessage({id:"message.error.createMergeRequestFail"}),2)):(e.setState({mid:t.data.id}),l.push(W(n.group.name,n.name,"mergerequests",t.data.id)))}))}},{key:"getDetailData",value:function(e,t){var a=this,r=e.currentRepositoryKey,i=t.mid;if(!i||!r)return!1;Ht.mergeRequestDetail({repository:r,mid:i}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({mergeRequestInfo:e.data,reviewers:e.data.reviewers.map((function(e){return e.user}))})}))}},{key:"getVersionList",value:function(e){var t=this,a=e.mergeRequestInfo;if(!a.id)return!1;Ht.mergeRequestVersionList({mergeRequest:a.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.setState({versionList:e.data.mergeVersionList||[],latestVersion:e.data.mergeVersionList.length>0?e.data.mergeVersionList[0].sha:"",baseVersion:e.data.baseVersion,baseVersionList:e.data.baseVersionList})}))}},{key:"checkMergeType",value:function(){var e=this,t=this.state,a=t.mergeRequestInfo,r=t.mergeMessage,i=t.usingSquash,n=t.showCommitInput,s=this.props.intl;if(!a.id&&!this.checkInput()&&n)return!1;this.setState({mergePending:!0}),Ht.checkMergeType({mergeRequest:a.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code)e.setState({mergePending:!1});else if(t.data.canBeFastForward)e.mergeBranch(e.props,e.state,"",!1);else{if(e.setState({showCommitInput:!0}),!r)return e.setState({error:{mergeMessage:s.formatMessage({id:"message.error._S_empty"},{s:e.props.intl.formatMessage({id:"label.mergeMessage"})})},mergePending:!1}),!1;e.mergeBranch(e.props,e.state,r,i)}}))}},{key:"mergeBranch",value:function(e,t,a,r){var i=this,n=t.mergeRequestInfo,s=this.props.intl;if(!n.id)return!1;Ht.mergeBranch({message:a,mergeRequest:n.id,usingSquash:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){i.setState({mergePending:!1}),e.code?1029===e.code?i.props.dispatchEvent(ae.NewNotification(s.formatMessage({id:"message.error.userNotReview"}),2)):1039===e.code?i.props.dispatchEvent(ae.NewNotification(s.formatMessage({id:"message.error.branchProteced"}),2)):i.props.dispatchEvent(ae.NewNotification(s.formatMessage({id:"message.error.mergeFail"}),2)):e.data.conflict?i.setState({hasMergeConflict:!0,mergeStatus:"conflict",showCommitInput:!1}):i.setState({mergeStatus:"merged",showCommitInput:!1})}))}},{key:"closeMergeRequest",value:function(){var e=this,t=this.props.intl;if(!this.state.mergeRequestInfo)return!1;Ht.mergeRequestClose({mergeRequest:this.state.mergeRequestInfo.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||(e.setState({mergeStatus:"closed",showCommitInput:!1}),e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.closed"}),0)))}))}},{key:"assignReviewer",value:function(e,t){var a=this,r=this.state,i=r.updateReviewersPending,n=r.mergeRequestInfo,s=r.reviewers,o=this.props.intl;if(i||!t||!e&&!n.id)return!1;if(e)s.includes(t)?this.deleteReviewer(e,t):this.setState({reviewers:[t]});else{if(s.includes(t))return!1;if(s.length&&this.isReview(s[0]))return this.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.error.reviewedCanNotAssign"}),1)),!1;this.setState({updateReviewersPending:!0}),Ht.assignReviewer({id:n.id,reviewer:t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?(a.setState({updateReviewersPending:!1}),1029===e.code&&a.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.error.reviewedCanNotAssign"}),1))):(a.setState({reviewers:[t]}),a.getDetailData(a.props,a.state),a.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.updated"}),0)))}))}}},{key:"deleteReviewer",value:function(e,t){var a=this,r=this.state,i=r.updateReviewersPending,n=r.mergeRequestInfo,s=r.reviewers,o=this.props.intl;if(i||!t||!e&&!n.id)return!1;if(e)this.setState({reviewers:s.filter((function(e){return e!==t}))});else{if(this.isReview(t))return this.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.error.reviewedCanNotDelete"}),1)),!1;this.setState({updateReviewersPending:!0}),Ht.deleteReviewer({id:n.id,reviewer:t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?(a.setState({updateReviewersPending:!1}),1029===e.code&&a.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.error.reviewedCanNotDelete"}),1))):(a.setState({reviewers:s.filter((function(e){return e!==t}))}),a.getDetailData(a.props,a.state),a.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.deleted"}),0)))}))}}},{key:"mergeRequestReview",value:function(){var e=this,t=this.state,a=t.mergeRequestInfo,r=t.updateReviewersPending,i=this.props.intl;if(r||!a.id)return!1;this.setState({updateReviewersPending:!0}),Ht.mergeRequestReview({id:a.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.setState({updateReviewersPending:!1}),e.getDetailData(e.props,e.state),e.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.approved"}),0)))}))}},{key:"isReview",value:function(e){var t=this.state.mergeRequestInfo;return!!t.id&&(!!(e=t.reviewers.filter((function(t){return t.user===e}))).length&&e[0].isReview)}},{key:"getTabs",value:function(){var e=this.props.intl,t=this.state,a=t.changedFiles,r=t.commits,i=t.activities,n=[];return n.push(e.formatMessage({id:"label.codeDiff"})+"("+a.length+")"),n.push(e.formatMessage({id:"label.commitActivity"})+"("+r.length+")"),this.state.mid&&n.push(e.formatMessage({id:"label.mergeRequestActivity"})+"("+i.length+")"),n}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.history,n=t.classes,s=t.intl,o=this.state,c=o.mergeRequestInfo,l=o.sourceRepositoryInfo,p=o.targetRepositoryInfo,d=o.requesterInfo,u=o.handlerInfo,m=o.title,h=o.description,g=o.tabValue,b=o.pending,f=o.changedFiles,j=o.fileDiff,v=o.effectFileCount,O=o.addLine,y=o.deleteLine,x=o.commits,S=o.activities,C=o.showCommitInput,N=o.mergeMessage,R=o.usingSquash,M=o.hasMergeConflict,T=o.versionList,A=o.latestVersion,I=o.baseVersion,P=o.baseVersionList,F=o.submitMergeRequest,B=o.reviewers,G=o.reviewersMenu;return Object(oe.jsxs)(k.a,{container:!0,children:[!this.state.mid&&(l||F)&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:n.createMRTitle,children:s.formatMessage({id:"label.createMergeRequest"})})}),Object(oe.jsx)(k.a,{item:!0,xs:9,children:s.formatMessage({id:"message.from_S_Merge_S"},{s1:l.group.name+"/"+l.name+":"+c.sourceBranch,s2:p.group.name+"/"+p.name+":"+c.targetBranch})}),Object(oe.jsx)(k.a,{item:!0,xs:3,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(e){return r.push(W(l.group.name,l.name,"mergerequests","new"))},children:s.formatMessage({id:"label.modificationBranch"})})}),Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:s.formatMessage({id:"label.title"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:m,onChange:function(t){return e.setState({title:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:s.formatMessage({id:"label.description"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:h,onChange:function(t){return e.setState({description:t.target.value})}})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:s.formatMessage({id:"message.assignReviewerTitle"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{className:n.members,children:p.members.map((function(t,a){return!(t.deleteFlag||t.role0?B.map((function(t,a){var r=e.isReview(t);return Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",className:n.reviewersMember,children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(ua,{item:p.members.filter(U.id(t))[0]},a)}),Object(oe.jsx)(k.a,{children:Object(oe.jsx)($e,{color:r?"success":"error",text:s.formatMessage({id:r?"message.approved":"message.notApprove"})})})]},a)})):Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{className:n.noReviewers,variant:"caption",component:"div",children:s.formatMessage({id:"message.notSelectReviewers"})})})}),Object(oe.jsx)(k.a,{container:!0,alignItems:"center",className:[n.reviewersTitle,n.activityTitle].join(" "),children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:s.formatMessage({id:"label.activity"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:n.activityItem,children:[Object(oe.jsx)(fe.a,{icon:je.y}),s.formatMessage({id:"label.requestMerge"}),":\xa0\xa0",l.group.displayName,"/",l.displayName,"/",c.sourceBranch," -> ",p.group.displayName,"/",p.displayName,"/",c.targetBranch]}),Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:n.activityItem,children:[Object(oe.jsx)(pi,{src:D.HOSTS.PGYER_AVATAR_HOST+d.icon}),d.name,"\xa0\xa0",s.formatMessage({id:"label.requestCreated"}),":\xa0\xa0",Object(oe.jsx)(Nt,{timestamp:c.create}),Object(oe.jsx)("div",{className:n.activityItemLine})]}),c.status!==D.mergeRequestStatus.open&&Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:n.activityItem,children:[Object(oe.jsx)(pi,{src:D.HOSTS.PGYER_AVATAR_HOST+u.icon}),u.name,"\xa0\xa0",s.formatMessage({id:c.status===D.mergeRequestStatus.merged?"label.requestMerged":"label.requestClosed"}),":\xa0\xa0",Object(oe.jsx)(Nt,{timestamp:c.status===D.mergeRequestStatus.merged?c.merge:c.close}),Object(oe.jsx)("div",{className:n.activityItemLine})]})]})]})})]})]})}}]),a}(i.a.Component),ui=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},createMRTitle:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(2),borderBottom:"1px solid "+e.palette.border},activityItem:{display:"flex",position:"relative",alignItems:"center",height:e.spacing(8),padding:"0px "+e.spacing(2)+"px","& > svg:first-child":{padding:"12px",borderRadius:"50%",marginRight:e.spacing(2),color:e.palette.primary.main,border:"1px solid "+e.palette.border,width:e.spacing(5),height:e.spacing(5),boxSizing:"border-box"},"& > div:first-child":{width:e.spacing(5),height:e.spacing(5),marginRight:e.spacing(2)}},activityItemLine:{top:"-12px",position:"absolute",left:e.spacing(4.5),height:e.spacing(3),borderLeft:"1px solid "+e.palette.border},hideInput:{display:"none"},tab:{marginTop:e.spacing(3)},tabHeader:{position:"sticky",top:e.spacing(8),zIndex:9,borderBottom:"1px solid "+e.palette.border},mergeRequestInfo:{border:0},description:{padding:e.spacing(2)+"px"},button:{margin:e.spacing(2)+"px 0px"},icon:{color:e.palette.text.light},assigned:{color:e.palette.primary.main},members:{overflowY:"auto",borderRadius:"4px",boxSizing:"border-box",maxHeight:e.spacing(27.5),border:"1px solid "+e.palette.border},member:{cursor:"pointer",borderBottom:"1px solid "+e.palette.border,padding:e.spacing(1.5)+"px "+e.spacing(2)+"px","&:last-child":{border:"none"},"&:hover":{background:e.palette.background.main}},reviewersTitle:{height:e.spacing(5),boxSizing:"content-box",padding:"0px "+e.spacing(2)+"px",borderBottom:"1px solid "+e.palette.border},activityTitle:{marginBottom:e.spacing(2)},reviewersMenuItem:{justifyContent:"space-between",height:e.spacing(5)},divider:{margin:e.spacing(1)+"px 0px"},deleteReviewer:{color:e.palette.error.main},reviewersMember:{padding:e.spacing(3)+"px "+e.spacing(2)+"px",height:e.spacing(10)},noReviewers:{fontSize:"14px",textAlign:"center",lineHeight:e.spacing(10)+"px"},cancel:{marginRight:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,currentRepositoryKey:e.DataStore.currentRepositoryKey,repositoryList:e.DataStore.repositoryList}}),(function(e,t){return{dispatchEvent:function(t){e(t)},closeDrawer:function(){return e({type:"drawer.expandStatus.close"})}}}))(di))))),mi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){return Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{path:"/userInfo",component:me}),Object(oe.jsx)(h.a,{path:"/settings",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/settings/profile",component:Ve}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/sshkey",component:Ee}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/notification",component:Qe}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/email",component:Le}),Object(oe.jsx)(h.a,{path:"/settings",component:Ve})]})}),Object(oe.jsx)(h.a,{path:"/admin",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/admin/users",component:Ot}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/groups",component:Mt}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/repositories",component:kt}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/settings",component:Et}),Object(oe.jsx)(h.a,{path:"/admin",component:ot})]})}),Object(oe.jsx)(h.a,{path:"/mergerequests",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/mergerequests",component:ri}),Object(oe.jsx)(h.a,{exact:!0,path:"/mergerequests/new",component:ni})]})}),Object(oe.jsx)(h.a,{path:"/repositories",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/repositories/new",component:zt}),Object(oe.jsx)(h.a,{exact:!0,path:"/repositories/fork/:repositoryID([0-9a-f]+)",component:Vt}),Object(oe.jsx)(h.a,{exact:!0,path:"/repositories/forklist/:repositoryID([0-9a-f]+)",component:Ut}),Object(oe.jsx)(h.a,{path:"/repositories",component:Ut})]})}),Object(oe.jsx)(h.a,{path:"/groups",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{path:"/groups/new",component:wa}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})",component:Ut}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/repositories",component:Ut}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/members",component:Ta}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/activities",component:Ga}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/repositories/new",component:zt}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/mergerequests",component:ri}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/mergerequests/new",component:ni}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings",component:_a}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings/general",component:_a}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings/advanced",component:Ia}),Object(oe.jsx)(h.a,{path:"/groups",component:Ra})]})}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/files",component:gr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/files/:rev([\\w\\-\\.%]+)",component:gr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/:type(files|blame)/:rev([\\w\\-\\.%]+):path(/.*)",component:gr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commit/:hash([0-9a-f]{8})",component:Yr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits",component:fr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits/:rev([\\w\\-\\.%]+)",component:fr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits/:rev([\\w\\-\\.%]+):path(/.*)",component:fr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests",component:ri}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/new",component:ni}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/detail/:sourceRepository([0-9a-f]{32})/:sourceBranch([\\w\\-\\.%]+)/:targetRepository([0-9a-f]{32})/:targetBranch([\\w\\-\\.%]+)",component:ui}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/:mid(\\d+)",component:ui}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/branches",component:Sr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/branches/new",component:_r}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/tags",component:Nr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/tags/new",component:wr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/members",component:ja}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/activities",component:Ga}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings",component:Kt}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/general",component:Kt}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/branch",component:Zt}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/webhook",component:oa}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/advanced",component:xa}),Object(oe.jsx)(h.a,{component:gr})]})})]})}}]),a}(i.a.Component),hi=Object(h.f)(mi),gi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={groupListLoaded:!1,repositoryListLoaded:!1},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data})})),Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data}),e.setState({repositoryListLoaded:!0}))})),va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.props.dispatchEvent({type:"data.groupList.update",data:t.data}),e.setState({groupListLoaded:!0}))}))}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;if(t.groupListLoaded&&this.state.groupListLoaded!==t.groupListLoaded||this.props.match.params.groupName!==e.match.params.groupName||this.props.match.params.repositoryName!==e.match.params.repositoryName&&!e.match.params.repositoryName){var r=e.groupList.filter(U.name(e.match.params.groupName))[0];r&&r.id?(this.props.dispatchEvent({type:"data.currentGroupKey.update",data:r.id}),this.props.dispatchEvent({type:"data.currentGroupConfig.update",data:{}}),e.history.location.pathname.match(/^\/groups/i)&&va.config({gKey:r.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?a.props.dispatchEvent({type:"data.currentGroupConfig.update",data:{}}):a.props.dispatchEvent({type:"data.currentGroupConfig.update",data:e.data})}))):(this.props.dispatchEvent({type:"data.currentGroupKey.update",data:""}),this.props.dispatchEvent({type:"data.currentGroupConfig.update",data:{}}))}else e.match.params.groupName||(this.props.dispatchEvent({type:"data.currentGroupKey.update",data:""}),this.props.dispatchEvent({type:"data.currentGroupConfig.update",data:{}}));if(t.repositoryListLoaded&&this.state.repositoryListLoaded!==t.repositoryListLoaded||this.props.match.params.groupName!==e.match.params.groupName||this.props.match.params.repositoryName!==e.match.params.repositoryName){var i=e.repositoryList.filter((function(t){return t.group.name===e.match.params.groupName&&t.name===e.match.params.repositoryName}))[0];i&&i.id?(this.props.dispatchEvent({type:"data.currentRepositoryKey.update",data:i.id}),Ht.config({rKey:i.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?a.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:{}}):(a.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:e.data}),a.setState({repositoryListLoaded:!0}))})),this.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:{}}),this.props.dispatchEvent({type:"data.currentRepositoryError.update",data:!1})):(this.props.dispatchEvent({type:"data.currentRepositoryKey.update",data:""}),this.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:{}}),this.props.dispatchEvent({type:"data.currentRepositoryError.update",data:!0}))}return!0}},{key:"render",value:function(){var e=this.props.classes;return Object(oe.jsx)("div",{className:e.container,children:Object(oe.jsxs)("main",{className:e.content,children:[Object(oe.jsx)("div",{className:e.toolbar}),Object(oe.jsx)("div",{className:e.mainContainer,children:Object(oe.jsx)(hi,{})})]})})}}]),a}(i.a.Component),bi=Object(C.a)((function(e){return{container:{backgroundColor:e.palette.background.light},content:{padding:0},toolbar:e.mixins.toolbar,mainContainer:{padding:e.spacing(3)+"px "+e.spacing(6)+"px"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,groupList:e.DataStore.groupList}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(gi))),fi=a(443),ji=a(444),vi=a(442),Oi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={anchorEl:null},r.handleUserMenuClick=r.handleUserMenuClick.bind(Object(N.a)(r)),r.handleUserMenuClose=r.handleUserMenuClose.bind(Object(N.a)(r)),r.logout=r.logout.bind(Object(N.a)(r)),r}return Object(d.a)(a,[{key:"handleUserMenuClick",value:function(e){this.setState({anchorEl:e.currentTarget})}},{key:"handleUserMenuClose",value:function(){this.setState({anchorEl:null})}},{key:"logout",value:function(){this.setState({anchorEl:null}),window.location.href="/user/logout"}},{key:"goView",value:function(e){this.setState({anchorEl:null}),this.props.history.push(e)}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.classes,n=t.className,s=t.intl;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)("div",{className:[r.settings,n].join(" "),onClick:this.handleUserMenuClick,children:[Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+a.icon,className:r.icon}),Object(oe.jsx)(fe.a,{icon:je.L,className:r.down})]}),Object(oe.jsxs)(ct.a,{id:"user-menu",anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:this.handleUserMenuClose,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:r.menu},MenuListProps:{className:r.list},getContentAnchorEl:null,transitionDuration:0,children:[Object(oe.jsxs)(pt.a,{disabled:!0,className:r.name,children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:a.name}),Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:a.email})]}),Object(oe.jsx)(pa.a,{}),Object(oe.jsxs)(pt.a,{onClick:function(t){e.goView("/settings/profile")},children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.w})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.profile"})})]}),Object(oe.jsxs)(pt.a,{onClick:function(t){e.goView("/settings/email")},children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.l})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.mail"})})]}),Object(oe.jsxs)(pt.a,{onClick:function(t){e.goView("/settings/sshkey")},children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.t})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.SSHKey_pl"})})]}),Object(oe.jsx)(pa.a,{}),Object(oe.jsxs)(pt.a,{onClick:this.logout,children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.n})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.logout"})})]})]})]})}}]),a}(r.Component),yi=Object(R.b)(Object(C.a)((function(e){return{settings:{display:"flex",alignItems:"center",cursor:"pointer"},menu:{width:e.spacing(30),marginTop:e.spacing(1),padding:0},list:{"& > li":{height:e.spacing(5)},"& > hr":{marginTop:e.spacing(1),marginBottom:e.spacing(1)}},name:{opacity:"1 !important",display:"block",height:"auto !important"},icon:{width:e.spacing(4),height:e.spacing(4)},down:{marginLeft:e.spacing(2),fontSize:e.spacing(1)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Oi)))),xi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={anchorEl:null,userInfoLoadingStatus:!1},r.handleUserMenuClick=r.handleUserMenuClick.bind(Object(N.a)(r)),r.handleUserMenuClose=r.handleUserMenuClose.bind(Object(N.a)(r)),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.setState({userInfoLoadingStatus:!0})}},{key:"handleUserMenuClick",value:function(e){this.setState({anchorEl:e.currentTarget})}},{key:"handleUserMenuClose",value:function(){this.setState({anchorEl:null})}},{key:"changeLanguage",value:function(e){this.props.dispatchEvent({type:"data.currentLanguage.update",data:e}),this.setState({anchorEl:null})}},{key:"render",value:function(){var e=this,t=this.state.anchorEl,a=this.props,r=a.intl,n=a.classes,s=a.currentLanguage;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.language",onClick:this.handleUserMenuClick,icon:je.u,className:this.props.className}),Object(oe.jsxs)(ct.a,{id:"language-menu",anchorEl:t,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:n.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(t),onClose:this.handleUserMenuClose,children:[Object(oe.jsx)(pt.a,{selected:"zh-cn"===s,onClick:function(t){return e.changeLanguage("zh-cn")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"lang.chinese"})})}),Object(oe.jsx)(pt.a,{selected:"en-us"===s,onClick:function(t){return e.changeLanguage("en-us")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"lang.english"})})})]})]})}}]),a}(r.Component),Si=Object(R.b)(Object(C.a)((function(e){return{menu:{marginTop:e.spacing(1),padding:0}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(xi)))),Ci=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={anchorElement:null,repositoryList:r.props.repositoryList,groupList:r.props.groupList,enterMenu:!1,enterButton:!1},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.repositoryList===e.repositoryList&&this.props.groupList===e.groupList||this.setState({repositoryList:e.repositoryList,groupList:e.groupList}),!0}},{key:"getToRepository",value:function(e){this.initAnchor(),this.props.history.push("/"+e.group.name+"/"+e.name+"/")}},{key:"getToGroup",value:function(e){this.initAnchor(),this.props.history.push("/groups/"+e.name+"/")}},{key:"initAnchor",value:function(){this.setState({anchorElement:null,enterButton:!1,enterMenu:!1})}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=t.history,n=t.type,s=t.currentRepositoryKey,o=t.currentGroupKey,c=this.state,l=c.repositoryList,p=c.groupList,d=l.filter(U.withPermission(L.PermissionCode.REPO_READ)).map((function(t,r){return Object(oe.jsxs)(pt.a,{onClick:function(a){e.getToRepository(t)},children:[Object(oe.jsx)(vi.a,{children:t.icon?Object(oe.jsx)(Be.a,{variant:"square",className:a.listIcon,src:D.HOSTS.STATIC_AVATAR_PREFIX+t.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:a.listIcon,children:t.name.substr(0,1).toUpperCase()})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:t.group.displayName+"/"+t.displayName}),t.id===s&&Object(oe.jsx)(fe.a,{icon:je.e,className:a.checked})]},"r"+r)})),u=p.filter(U.withPermission(L.PermissionCode.REPO_READ)).map((function(t,r){return Object(oe.jsxs)(pt.a,{onClick:function(a){e.getToGroup(t)},children:[Object(oe.jsx)(vi.a,{children:t.icon?Object(oe.jsx)(Be.a,{variant:"square",className:a.listIcon,src:D.HOSTS.STATIC_AVATAR_PREFIX+t.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:a.listIcon,children:t.name.substr(0,1).toUpperCase()})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:t.displayName}),t.id===o&&!s&&Object(oe.jsx)(fe.a,{icon:je.e,className:a.checked})]},"g"+r)}));return Object(oe.jsxs)("span",{children:["repository"===n&&l.length+p.length||"group"===n&&p.length?Object(oe.jsxs)(_.a,{color:"inherit","aria-owns":"menu-"+n,"aria-haspopup":"true",className:a.button,onClick:function(){e.initAnchor(),i.push("repository"===n?"/repositories":"/groups")},onMouseEnter:function(t){e.setState({enterButton:!0,anchorElement:t.currentTarget})},onMouseLeave:function(){e.setState({enterButton:!1}),setTimeout((function(){return!e.state.enterMenu&&e.initAnchor()}),100)},children:["repository"===n&&r.formatMessage({id:"menu.repository_pl"}),"group"===n&&r.formatMessage({id:"menu.group_pl"}),Object(oe.jsx)(fe.a,{icon:He.a})]}):Object(oe.jsxs)(_.a,{color:"inherit","aria-owns":"menu-"+n,"aria-haspopup":"true",onClick:function(){i.push("repository"===n?"/repositories/new":"/groups/new")},children:["repository"===n&&r.formatMessage({id:"label.newRepository"}),"group"===n&&r.formatMessage({id:"label.newGroup"})]}),("repository"===n&&l.length+p.length>0||"group"===n&&p.length>0)&&Object(oe.jsxs)(ct.a,{id:"menu-"+n,anchorEl:this.state.anchorElement,anchorOrigin:{horizontal:"left",vertical:"bottom"},transformOrigin:{horizontal:"left",vertical:"top"},open:Boolean(this.state.anchorElement),onClose:function(t){e.setState({anchorElement:null})},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,onMouseEnter:function(){e.setState({enterMenu:!0})},onMouseLeave:function(){return e.initAnchor()},children:[Object(oe.jsx)(k.a,{className:a.title,children:Object(oe.jsxs)(w.a,{variant:"caption",component:"div",children:["repository"===n&&r.formatMessage({id:"label.repository"}),"group"===n&&r.formatMessage({id:"label.group"})]})}),"repository"===n&&d,"group"===n&&u]})]})}}]),a}(r.Component),Ni=Object(R.b)(Object(C.a)((function(e){return{menu:{top:e.spacing(8)+1+"px !important",width:e.spacing(34)+"px !important",height:e.spacing(40),boxShadow:"0px 20px 40px 0px rgba(66, 72, 86, 0.1)"},button:{position:"relative",maxWidth:"100%",paddingRight:e.spacing(3),"& > span":{display:"list-item",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},"& svg":{position:"absolute",right:e.spacing(1),top:"10px"}},listIcon:{width:e.spacing(3),height:e.spacing(3),fontSize:e.spacing(2)+"px"},title:{color:e.palette.text.lighter,fontSize:e.spacing(1.5)+"px",padding:e.spacing(1)+"px "+e.spacing(2)+"px"},checked:{color:e.palette.primary.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,groupList:e.DataStore.groupList,currentRepositoryKey:e.DataStore.currentRepositoryKey,currentGroupKey:e.DataStore.currentGroupKey}}),(function(e,t){return{}}))(Ci)))),Ri=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={newMenuAnchor:null,helpMenuAnchor:null},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.currentUserInfo,i=t.scrollTrigger,n=t.history,s=t.intl,o=t.notificationOpenStatusToggle,c=t.currentLanguage;return Object(oe.jsx)(fi.a,{position:"fixed",color:"default",className:a.appBar,elevation:i?2:0,children:Object(oe.jsx)(ji.a,{children:Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",alignItems:"center",children:[Object(oe.jsxs)(k.a,{item:!0,className:a.options,children:[Object(oe.jsx)("img",{className:a.img,src:"/static/00000000000000/images/logo-community.png",onClick:function(){return n.push("/repositories")}}),Object(oe.jsx)(k.a,{item:!0,className:a.optionItem,children:Object(oe.jsx)(Ni,{type:"repository"})}),Object(oe.jsx)(k.a,{item:!0,className:a.optionItem,children:Object(oe.jsx)(Ni,{type:"group"})}),Object(oe.jsx)(Pe,{label:"label.mergeRequest",onClick:function(){n.push("/mergerequests")},icon:je.y,className:a.optionItem})]}),Object(oe.jsxs)(k.a,{item:!0,className:a.options,children:[Object(oe.jsx)(Pe,{label:"label.create",color:"primary",onClick:function(t){return e.setState({newMenuAnchor:t.currentTarget})},icon:je.I,className:a.optionItem}),Object(oe.jsx)(pa.a,{orientation:"vertical",className:[a.split,a.optionItem].join(" ")}),Object(oe.jsxs)(ct.a,{id:"new-menu",anchorEl:this.state.newMenuAnchor,anchorOrigin:{horizontal:"left",vertical:"bottom"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(this.state.newMenuAnchor),onClose:function(t){return e.setState({newMenuAnchor:null})},children:[Object(oe.jsx)(pt.a,{onClick:function(t){n.push("/repositories/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.newRepository"})})}),Object(oe.jsx)(pt.a,{onClick:function(t){n.push("/groups/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.newGroup"})})}),Object(oe.jsx)(pt.a,{onClick:function(t){n.push("/mergerequests/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.createMergeRequest"})})})]}),Object(oe.jsx)(Pe,{label:"label.notification",icon:je.c,badge:r.unReadNotification,className:a.optionItem,onClick:function(e){return o()}}),Object(oe.jsx)(Si,{className:a.optionItem}),Object(oe.jsx)(Pe,{label:"label.help",onClick:function(t){return e.setState({helpMenuAnchor:t.currentTarget})},icon:je.s,className:a.optionItem}),Object(oe.jsxs)(ct.a,{id:"help-menu",anchorEl:this.state.helpMenuAnchor,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(this.state.helpMenuAnchor),onClose:function(t){return e.setState({helpMenuAnchor:null})},children:[Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("/doc/"+("en-us"===c?"en":"cn"),"_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.help"})})}),Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://codefever.pgyer.com/community","_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.support"})})}),Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://github.com/PGYER/codefever/blob/master/doc/zh-cn/contribute/bug_fix_issue.md","_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.feedback"})})}),Object(oe.jsx)(pa.a,{}),Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://github.com/PGYER/codefever","_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.contribute"})})}),Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://codefever.pgyer.com/","_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.about"})})})]}),r.admin&&Object(oe.jsx)(Pe,{label:"label.adminArea",onClick:function(){n.push("/admin")},icon:je.A,className:a.optionItem}),Object(oe.jsx)(yi,{className:a.optionItem})]})]})})})}}]),a}(i.a.Component),Mi=Object(R.b)(Object(h.f)(Object(C.a)((function(e){return{appBar:{width:"100%",zIndex:e.zIndex.drawer,borderBottom:"1px solid "+e.palette.border},img:{height:e.spacing(4),marginLeft:e.spacing(3),marginRight:e.spacing(6),cursor:"pointer"},placeholder:{display:"inline-block",verticalAlign:"middle",height:e.spacing(4),marginRight:e.spacing(2),transition:e.transitions.create("width")},placeholderExpanded:{width:e.spacing(37)},placeholderCollapsed:{width:e.spacing(8)},options:{display:"flex"},split:{marginTop:e.spacing(1),height:e.spacing(2)},optionItem:{marginRight:e.spacing(2)},menu:{marginTop:e.spacing(1),padding:0}}}))(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,currentLanguage:e.DataStore.currentLanguage}}),(function(e,t){return{notificationOpenStatusToggle:function(){return e({type:"notification.notificationOpenStatus.toggle"})}}}))((Pa={threshold:0,watching:".app-content"},function(e){return function(t){Object(u.a)(r,t);var a=Object(m.a)(r);function r(e){var t;return Object(p.a)(this,r),(t=a.call(this,e)).target=null,t.cancel=null,t.onScroll=t.onScroll.bind(Object(N.a)(t)),t.state={scrollTrigger:!1},t}return Object(d.a)(r,[{key:"componentDidMount",value:function(){Pa.watching&&(this.cancel&&this.cancel(),this.target=document.querySelector(Pa.watching),this.cancel=function(){this.target.removeEventListener("scroll",this.onScroll)},this.target.addEventListener("scroll",this.onScroll),this.onScroll({target:this.target}))}},{key:"componentWillUnmount",value:function(){this.cancel&&this.cancel(),this.cancel=null,this.target=null}},{key:"onScroll",value:function(e){var t=e.target.pageYOffset||e.target.scrollTop;t>Pa.threshold&&!this.state.scrollTrigger?this.setState({scrollTrigger:!0}):t<=Pa.threshold&&this.state.scrollTrigger&&this.setState({scrollTrigger:!1})}},{key:"render",value:function(){return Object(oe.jsx)(e,Object(y.a)({ref:this.mountContainer,scrollTrigger:this.state.scrollTrigger},this.props))}}]),r}(i.a.Component)})(Ri))))),wi=a(459),ki=a(417),_i=a(352),Ei=a(262),Ti=a.n(Ei),Ai=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={open:{},itemSwitch:!1,itemName:null,avatarHover:!1},r}return Object(d.a)(a,[{key:"openChildren",value:function(e){var t=Object(y.a)({},this.state.open);t[e]=!t[e],this.setState({open:t})}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.drawerExpandStatus,n=t.drawerConfig,s=t.location,o=t.intl,c=t.mode,l=t.repositoryList,p=t.currentRepositoryKey,d=t.groupList,u=t.currentGroupKey,m=n.map((function(t,i){var n=!1;t.activePattern.map((function(e){return s.pathname&&s.pathname.match(e)&&(n=!0),!0}));var c=Object(oe.jsxs)(tr.a,{className:[a.listItem,n?a.active:"",r?a.listItemExpand:a.listItemCollapsed].join(" "),onClick:function(){e.props.history.push(t.path),t.children&&e.openChildren(i)},children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:t.icon,className:[a.listIcon,n?a.iconActive:""].join(" ")})}),Object(oe.jsx)(mt.a,{className:[a.listItemText,r?a.listItemTextExpand:a.listItemTextCollapsed].join(" "),primary:o.formatMessage({id:t.name})}),Object(oe.jsx)(w.a,{variant:"caption",children:t.count}),t.children?e.state.open[i]?Object(oe.jsx)(Ti.a,{}):Object(oe.jsx)(Fr.a,{}):""]}),l=t.children?t.children.map((function(t,c){var l=!1;return t.activePattern.map((function(e){return s.pathname&&s.pathname.match(e)&&(l=!0),!0})),Object(oe.jsx)(_i.a,{in:e.state.open[i]&&r,timeout:"auto",unmountOnExit:!0,onClick:function(){return e.props.history.push(t.path)},className:n?a.secondCollapse:"",children:Object(oe.jsx)(ki.a,{component:"div",disablePadding:!0,children:Object(oe.jsx)(tr.a,{className:a.listItem,children:Object(oe.jsx)(mt.a,{className:[a.listItemText,l?a.secondActive:"",r?a.listItemTextExpand:a.listItemTextCollapsed].join(" "),inset:!0,primary:o.formatMessage({id:t.name})})})})},c)})):"";return Object(oe.jsxs)("div",{className:t.children&&n&&e.state.open[i]&&r?a.morePadding:"",children:[c,l]},i)})),h={},g=l.filter(U.id(p))[0],b=d.filter(U.id(u))[0];if(["repository","group"].includes(c)){var f=g&&g.icon||b&&b.icon,j=g&&g.name||b&&b.name;f?h.src=D.HOSTS.STATIC_AVATAR_PREFIX+f:j&&(h.children=j[0].toUpperCase()),"repository"===c?h.onClick=function(){e.props.history.push("/"+g.group.name+"/"+g.name+"/")}:"group"===c&&(h.onClick=function(){e.props.history.push("/groups/"+b.name)}),h.onMouseEnter=function(){e.setState({avatarHover:!0})},h.onMouseLeave=function(){e.setState({avatarHover:!1})},this.state.avatarHover&&(h.src="",h.children=Object(oe.jsx)(be.a,{title:o.formatMessage({id:"message.backHome"}),placement:"top",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:a.button,children:Object(oe.jsx)(fe.a,{icon:je.V,style:{width:16}})})}),h.onClick=function(){e.props.history.push("/repositories"),e.setState({avatarHover:!1})})}else h.src="/static/00000000000000/images/logo-ico.png",h.onClick=function(){e.props.history.push("/repositories"),e.setState({avatarHover:!1})};return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)("div",{className:[a.drawerHeader,r?a.drawerHeaderExpand:a.drawerHeaderCollapsed].join(" "),children:[Object(oe.jsx)(Be.a,Object(y.a)({variant:"square",className:[a.avatar,this.state.avatarHover&&a.home].join(" ")},h)),Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:[a.title,r?a.titleExpand:a.titleCollapsed].join(" "),children:["default"===c&&"CodeFever","admin"===c&&"CodeFever Admin"]})]}),Object(oe.jsx)(ki.a,{className:a.list,component:"nav",children:m})]})}}]),a}(i.a.Component),Di=Object(R.b)(Object(C.a)((function(e){return{list:{marginTop:e.spacing(3)},listItem:{overflow:"hidden",width:e.spacing(34),height:e.spacing(5),borderRadius:e.spacing(.5),transition:[e.transitions.create("width"),e.transitions.create("padding")].join(","),cursor:"pointer","& svg, & span":{color:e.palette.text.light},"&:hover":{"& > div > svg":{color:e.palette.primary.main},"& span":{color:e.palette.text.main}}},listItemExpand:{padding:"0px "+e.spacing(4)+"px"},listItemCollapsed:{width:e.spacing(5),minWidth:e.spacing(5),padding:"0px "+e.spacing(1.5)+"px"},listItemText:{margin:0,overflow:"hidden",transition:e.transitions.create("height"),"& > span":{lineHeight:e.spacing(5)+"px"}},listItemTextExpand:{height:e.spacing(5)+"px"},listItemTextCollapsed:{height:0},drawerHeader:{display:"flex",overflow:"hidden",alignItems:"center",height:e.spacing(4),width:e.spacing(28),background:e.palette.background.main,padding:e.spacing(1)+"px "+e.spacing(3)+"px",transition:[e.transitions.create("width"),e.transitions.create("padding")].join(",")},drawerHeaderExpand:{width:e.spacing(28),padding:e.spacing(1)+"px "+e.spacing(3)+"px"},drawerHeaderCollapsed:{width:e.spacing(4),padding:e.spacing(1)+"px "+e.spacing(.5)+"px"},active:{backgroundColor:e.palette.background.light,"& span":{color:e.palette.text.main}},secondCollapse:{backgroundColor:e.palette.background.light},morePadding:{width:e.spacing(34),borderRadius:e.spacing(.5),paddingBottom:e.spacing(2)+"px",backgroundColor:e.palette.background.light},secondActive:{borderRadius:e.spacing(.5),backgroundColor:e.palette.background.main,"& span":{color:e.palette.text.main}},home:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main},iconActive:{color:e.palette.primary.main+" !important"},avatar:{cursor:"pointer",width:e.spacing(4),height:e.spacing(4)},title:{fontSize:"18px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",height:e.spacing(4),paddingLeft:e.spacing(2),lineHeight:e.spacing(4)+"px",transition:e.transitions.create("height")},titleExpand:{height:e.spacing(4)},titleCollapsed:{height:0},button:{"&:hover":{background:e.palette.primary.main}}}}))(Object(l.b)((function(e,t){return{drawerExpandStatus:e.DrawerStates.expandStatus,repositoryList:e.DataStore.repositoryList,groupList:e.DataStore.groupList,currentRepositoryKey:e.DataStore.currentRepositoryKey,currentGroupKey:e.DataStore.currentGroupKey}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Object(h.f)(Ai))));var Ii={makeDrawerConfig:function(){return[{path:"/settings/profile",name:"menu.profile",icon:je.Y,activePattern:[/^\/settings$/i,/^\/settings\/profile/i]},{path:"/settings/email",name:"menu.mail",icon:je.Q,activePattern:[/^\/settings\/email/i]},{path:"/settings/sshkey",name:"menu.SSHKey_pl",icon:je.W,activePattern:[/^\/settings\/sshkey/i]},{path:"/settings/notification",name:"menu.notification",icon:je.J,activePattern:[/^\/settings\/notification/i]}]},makeAdminDrawerConfig:function(){return[{path:"/admin/dashboard",name:"menu.dashboard",icon:je.X,activePattern:[/^\/admin(\/)?$/i,/^\/admin\/dashboard\/?.*$/i]},{path:"/admin/users",name:"menu.user_pl",icon:je.Z,activePattern:[/^\/admin\/users\/?.*$/i]},{path:"/admin/groups",name:"menu.group_pl",icon:je.fb,activePattern:[/^\/admin\/groups\/?.*$/i]},{path:"/admin/repositories",name:"menu.repository_pl",icon:je.eb,activePattern:[/^\/admin\/repositories\/?.*$/i]},{path:"/admin/settings",name:"menu.setting_pl",icon:je.gb,activePattern:[/^\/admin\/settings\/?.*$/i]}]},makeGroupDrawerConfig:function(e){return e&&e.group?[{path:["/groups",e.group.name,"repositories"].join("/"),name:"menu.repository_pl",icon:je.eb,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})(\/)?$/i,/\/groups\/([A-Za-z0-9_]{5,})\/repositories/i]},{path:["/groups",e.group.name,"mergerequests"].join("/"),name:"menu.mergeRequest_pl",icon:je.ab,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/mergerequests\/?.*$/i]},{path:["/groups",e.group.name,"members"].join("/"),name:"menu.member_pl",icon:je.Z,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/members(\/)?$/i]},{path:["/groups",e.group.name,"activities"].join("/"),name:"menu.activity_pl",icon:je.X,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/activities(\/)?/i]},{path:["/groups",e.group.name,"settings"].join("/"),name:"menu.setting_pl",icon:je.gb,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/settings(\/)?$/i,/\/groups\/([A-Za-z0-9_]{5,})\/settings\/.*$/i],children:[{path:["/groups",e.group.name,"settings","general"].join("/"),name:"menu.general",icon:je.gb,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/settings(\/)?$/i,/\/groups\/([A-Za-z0-9_]{5,})\/settings\/general(\/)?$/i]},{path:["/groups",e.group.name,"settings","advanced"].join("/"),name:"menu.advanced",icon:je.gb,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/settings\/advanced(\/)?$/i]}]}]:[]},makeRepositoryDrawerConfig:function(e){return e&&e.repository?[{path:["",e.group.name,e.repository.name,"files"].join("/"),name:"menu.file_pl",icon:je.T,activePattern:[/^\/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/files(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/files\/.*$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/blame\/.*$/i]},{path:["",e.group.name,e.repository.name,"commits"].join("/"),name:"menu.commit_pl",count:e.count.commit,icon:je.O,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/commits(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/commits\/.*$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/commit\/.*$/i]},{path:["",e.group.name,e.repository.name,"mergerequests"].join("/"),name:"menu.mergeRequest_pl",count:e.count.mergeRequest.open,icon:je.ab,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/mergerequests(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/mergerequests\/.*$/i]},{path:["",e.group.name,e.repository.name,"branches"].join("/"),name:"menu.branch_pl",count:e.count.branch,icon:je.K,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/branches(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/branches\/.*$/i]},{path:["",e.group.name,e.repository.name,"tags"].join("/"),name:"menu.tag_pl",count:e.count.tag,icon:je.hb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/tags(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/tags\/.*$/i]},{path:["",e.group.name,e.repository.name,"members"].join("/"),name:"menu.member_pl",count:e.members&&e.members.filter(U.notDeleted()).length||0,icon:je.Z,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/members(\/)?$/i]},{path:["",e.group.name,e.repository.name,"activities"].join("/"),name:"menu.activity_pl",icon:je.X,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/activities(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings"].join("/"),name:"menu.setting_pl",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/.*$/i],children:[{path:["",e.group.name,e.repository.name,"settings","general"].join("/"),name:"menu.general",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/general(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings","branch"].join("/"),name:"menu.branch_pl",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/branch(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings","webhook"].join("/"),name:"menu.webhook_pl",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/webhook(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings","advanced"].join("/"),name:"menu.advanced",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/advanced(\/)?$/i]}]}]:[]}},Pi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"drawer",value:function(e,t){var a=this.props,r=a.classes,i=a.expandStatus,n=a.toggleDrawer;return Object(oe.jsxs)("div",{className:r.drawerContainer,children:[Object(oe.jsx)("div",{className:r.drawerExpandControl,onClick:n,children:Object(oe.jsx)(fe.a,{icon:je.x,className:i?"":r.transform})}),Object(oe.jsx)(wi.a,{open:!0,variant:"permanent",classes:{paper:r.drawerPaper},className:[r.container,i?r.containerExpanded:r.containerCollapsed].join(" "),children:Object(oe.jsx)(Di,{drawerConfig:e,mode:t})})]})}},{key:"render",value:function(){var e=this.props,t=e.currentGroupConfig,a=e.currentRepositoryConfig;return Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{path:"/settings",children:this.drawer(Ii.makeDrawerConfig(),"default")}),Object(oe.jsx)(h.a,{path:"/mergerequests"}),Object(oe.jsx)(h.a,{path:"/repositories"}),Object(oe.jsx)(h.a,{path:"/groups/new"}),Object(oe.jsx)(h.a,{path:"/admin",children:this.drawer(Ii.makeAdminDrawerConfig(),"admin")}),Object(oe.jsx)(h.a,{path:"/groups/:groupName([A-Za-z0-9_]{5,})",children:this.drawer(Ii.makeGroupDrawerConfig(t),"group")}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",children:this.drawer(Ii.makeRepositoryDrawerConfig(a),"repository")})]})}}]),a}(i.a.Component),Fi=Object(C.a)((function(e){return{drawerContainer:{position:"relative"},container:{height:"100vh",transition:e.transitions.create("width")},containerExpanded:{width:e.spacing(40)},containerCollapsed:{width:e.spacing(11)},drawerPaper:{position:"relative",boxSizing:"border-box",width:"100%",overflowX:"hidden"},drawerExpandControl:{position:"absolute",top:e.spacing(12),right:"-12px",fontSize:"14px",color:"#64728C",cursor:"pointer",textAlign:"center",borderRadius:"50%",width:e.spacing(3),height:e.spacing(3),zIndex:e.zIndex.drawer+1,lineHeight:e.spacing(3)+"px",background:e.palette.background.light,border:"1px solid "+e.palette.border},transform:{transform:"rotate(180deg)"},toolbar:e.mixins.toolbar}}))(Object(l.b)((function(e){return{expandStatus:e.DrawerStates.expandStatus,currentGroupConfig:e.DataStore.currentGroupConfig,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{toggleDrawer:function(){e({type:"drawer.expandStatus.toggle"})}}}))(Object(h.f)(Pi))),Li=a(446),Bi=a(445),Ui=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={loading:!1},r.observed={openStatus:!1},r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.observed.openStatus!==e.openStatus&&(this.observed.openStatus=e.openStatus,this.setState({loading:!1}),this.props.dispatchEvent(ae.consumeComformation())),this.observed.eventCount!==e.eventCount&&this.props.dispatchEvent(ae.consumeComformation()),!0}},{key:"onCancel",value:function(e){this.props.rejectFn&&this.props.rejectFn(),this.props.dispatchEvent(ae.cancelComformation())}},{key:"onAccept",value:function(e){this.setState({loading:!0}),this.props.acceptFn&&this.props.acceptFn()}},{key:"render",value:function(){var e=this,t=this.props,a=t.openStatus,r=t.title,i=t.description,n=t.intl;return Object(oe.jsxs)(lt.a,{open:a,onClose:function(t){return e.onCancel(t)},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[Object(oe.jsx)(ut.a,{id:"alert-dialog-title",children:r}),Object(oe.jsx)(ht.a,{children:Object(oe.jsx)(Bi.a,{id:"alert-dialog-description",children:i})}),Object(oe.jsxs)(Li.a,{children:[Object(oe.jsx)(_.a,{color:"default",onClick:function(t){return e.onCancel(t)},children:n.formatMessage({id:"label.cancel"})}),Object(oe.jsx)(_.a,{color:"primary",onClick:function(t){return e.onAccept(t)},children:this.state.loading?Object(oe.jsx)(he.a,{size:24}):n.formatMessage({id:"label.ok"})})]})]})}}]),a}(i.a.Component),Gi=Object(R.b)(Object(h.f)(Object(l.b)((function(e,t){return{openStatus:e.NotificationStates.confirmation.open,eventCount:e.NotificationStates.confirmation.eventCount,title:e.NotificationStates.confirmation.title,description:e.NotificationStates.confirmation.description,acceptFn:e.NotificationStates.confirmation.accept,rejectFn:e.NotificationStates.confirmation.reject}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Ui))),Hi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,menuAnchor:null,category:D.notificationCategory.unRead,list:[],pagesize:20,page:1,loadMore:!0},r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.props.notificationOpenStatus!==e.notificationOpenStatus&&!0===e.notificationOpenStatus||this.state.category!==t.category?(this.getData(t,!0),!1):this.state.page===t.page||(this.getData(t,!1),!1)}},{key:"getData",value:function(e,t){var a=this,r=e.pending,i=e.category,n=e.list,s=e.pagesize,o=e.page,c=e.loadMore;if(r)return!1;this.setState({pending:!0,list:t?[]:n,page:t?1:o,loadMore:!!t||c}),te.notifications({category:i,page:t?1:o}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||(e.data.map((function(e){return function(e,t){if(!e.type||!e.data)return!1;var a=e.data=JSON.parse(e.data);return e.text=t.formatMessage({id:"notification."+e.type},a),e.url="",["mergeRequest:create","mergeRequest:close","mergeRequest:merge","mergeRequestReviewer:create","mergeRequestReviewer:review"].includes(e.type)&&(e.url=[a.group,a.repository,"mergerequests",a.number].join("/")),!0}(e,a.props.intl)})),a.setState({pending:!1,list:[].concat(Object(T.a)(a.state.list),Object(T.a)(e.data)),loadMore:e.data.length===s}))}))}},{key:"reloadUserData",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data})}))}},{key:"setNotificationRead",value:function(e){var t=this,a=this.props,r=a.dispatchEvent,i=a.intl,n=this.state.list;if(this.state.pending)return!1;this.setState({menuAnchor:null,pending:!0}),te.setNotificationRead({id:e,all:e?"":"1"}).then(ne.withEventdispatcher(r)(ne.getJSONData)).then((function(a){n.map((function(t,a){return e?e&&t.id===e&&(t.isRead=!0):t.isRead=!0,!0})),t.setState({pending:!1,list:n}),t.reloadUserData(),a.code&&r(ae.NewNotification(i.formatMessage({id:"message.error.updateFail"}),2))}))}},{key:"deleteNotification",value:function(e){var t=this,a=this.props,r=a.dispatchEvent,i=a.intl,n=this.state.list;if(this.state.pending)return!1;this.setState({menuAnchor:null,pending:!0}),te.deleteNotification({id:e,all:e?"":"1"}).then(ne.withEventdispatcher(r)(ne.getJSONData)).then((function(a){n=n.filter((function(a,r){return e?(a.id===e&&!a.isRead&&t.reloadUserData(),a.id!==e):!a.isRead})),t.setState({pending:!1,list:n}),a.code&&r(ae.NewNotification(i.formatMessage({id:"message.error.deleteFail"}),2))}))}},{key:"aLink",value:function(e){var t=this.props.history;this.props.notificationOpenStatusClose(),!e.isRead&&this.setNotificationRead(e.id),t.push(W(e.url))}},{key:"notificationSetting",value:function(){this.props.notificationOpenStatusClose(),this.props.history.push(W("settings/notification"))}},{key:"render",value:function(){var e=this,t=this.props,a=t.notificationOpenStatus,r=t.notificationOpenStatusClose,i=t.classes,n=t.intl,s=this.state,o=s.pending,c=s.menuAnchor,l=s.category,p=s.list,d=s.page,u=s.loadMore,m=[];return m[D.notificationCategory.all]=n.formatMessage({id:"label.all"}),m[D.notificationCategory.unRead]=n.formatMessage({id:"label.unread"}),Object(oe.jsxs)(wi.a,{anchor:"right",open:a,onClose:function(e){return!o&&r()},className:i.notification,elevation:8,PaperProps:{className:i.paper,onScroll:function(t){return!o&&u&&t.target.offsetHeight-2+t.target.scrollTop===t.target.scrollHeight&&e.setState({page:d+1})}},children:[Object(oe.jsxs)(k.a,{container:!0,className:i.header,children:[Object(oe.jsxs)(k.a,{container:!0,className:i.headerTitle,children:[Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:n.formatMessage({id:"label.notificationCenter"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:4,align:"right",children:[Object(oe.jsx)(Pe,{label:"label.setting",icon:je.gb,className:i.icon,onClick:function(t){return e.notificationSetting()}}),Object(oe.jsx)(Pe,{label:"label.close",icon:je.g,className:[i.icon,i.close].join(" "),onClick:function(e){return!o&&r()}})]})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.menu,children:Object(oe.jsxs)(jt,{currentTab:l,onChange:function(t,a){return!o&&e.setState({category:a})},tabs:m,children:[Object(oe.jsx)(Pe,{label:"label.more",icon:je.cb,className:[i.icon,i.more].join(" "),onClick:function(t){return e.setState({menuAnchor:t.target})}}),Object(oe.jsxs)(ct.a,{anchorEl:c,open:!!c,onClose:function(t){return e.setState({menuAnchor:null})},transitionDuration:0,children:[Object(oe.jsx)(pt.a,{onClick:function(t){return e.setNotificationRead("")},children:n.formatMessage({id:"message.tagAllRead"})}),Object(oe.jsx)(pt.a,{onClick:function(t){return e.deleteNotification("")},children:n.formatMessage({id:"message.deleteAllReaded"})})]})]})})]}),Object(oe.jsxs)(k.a,{container:!0,children:[p.map((function(t,a){return Object(oe.jsxs)(k.a,{item:!0,xs:12,className:[i.notify,t.isRead?i.readed:""].join(" "),onClick:function(a){return!t.isRead&&e.setNotificationRead(t.id)},children:[Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:i.notifiTitle,children:["\xa0\xb7\xa0",t.data.group&&t.data.group+" / ",t.data.repository]})}),Object(oe.jsxs)(k.a,{item:!0,xs:4,className:i.notifySetting,align:"right",children:[!t.isRead&&Object(oe.jsx)(Pe,{label:"message.tagRead",icon:je.e,className:i.icon}),Object(oe.jsx)(Pe,{label:"label.delete",icon:je.ib,className:i.icon,onClick:function(a){e.deleteNotification(t.id),a.stopPropagation()}})]})]}),Object(oe.jsx)(w.a,{variant:t.isRead?"body2":"subtitle2",component:"div",className:i.notifiContent,onClick:function(a){e.aLink(t),a.stopPropagation()},children:t.text}),Object(oe.jsx)(w.a,{component:"div",className:i.notifiTitle,children:Object(oe.jsx)(Nt,{timestamp:1*t.created})})]},a)})),u?Object(oe.jsx)(k.a,{container:!0,className:i.loading,children:o&&Object(oe.jsx)(he.a,{size:30})}):Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",className:i.loading,children:Object(oe.jsx)(_.a,{size:"small",disabled:!0,children:n.formatMessage({id:"label.noMore"})})})]})]})}}]),a}(i.a.Component),qi=Object(R.b)(Object(C.a)((function(e){return{notification:{"& > div:first-child":{background:"transparent"}},paper:{padding:0,top:e.spacing(8),boxSizing:"border-box",width:e.spacing(50),height:"calc(100% - 64px)",background:e.palette.background.light,border:"1px solid "+e.palette.border},header:{top:0,zIndex:1,position:"sticky",background:e.palette.background.light},headerTitle:{display:"flex",alignItems:"center",height:e.spacing(6)+"px",padding:"0px "+e.spacing(3)+"px",borderBottom:"1px solid "+e.palette.border},close:{"& svg":{width:"14px !important",height:"14px !important",padding:"2px"}},icon:{color:e.palette.text.light},more:{marginTop:e.spacing(.5)},menu:{padding:"0px "+e.spacing(3)+"px",borderBottom:"1px solid "+e.palette.border},notifySetting:{display:"none"},notify:{"&:hover":{background:e.palette.background.main,"& > div:first-child > div:nth-of-type(2)":{display:"block"}},padding:e.spacing(2)+"px "+e.spacing(3)+"px",borderBottom:"1px solid "+e.palette.border},notifiTitle:{lineHeight:e.spacing(4)+"px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap","& > span":{fontSize:"12px"}},readed:{"& div, & span":{color:e.palette.text.lighter+"!important"}},notifiContent:{cursor:"pointer",lineHeight:e.spacing(2.5)+"px",maxHeight:e.spacing(5),overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box","-webkit-line-clamp":2,"-webkit-box-orient":"vertical"},loading:{justifyContent:"center",padding:e.spacing(4)+"px"}}}))(Object(l.b)((function(e){return{notificationOpenStatus:e.NotificationStates.notificationOpenStatus}}),(function(e,t){return{dispatchEvent:function(t){e(t)},notificationOpenStatusClose:function(){return e({type:"notification.notificationOpenStatus.close"})}}}))(Object(h.f)(Hi)))),zi=a(266),Wi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){var e;return Object(p.a)(this,a),(e=t.call(this)).messageLists=[],e}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.messageLists=[]}},{key:"addMessage",value:function(e){var t=this;if(e.message){var a=this.messageLists.length;this.messageLists.push(Object(y.a)(Object(y.a)({},e),{},{openStatus:!0})),setTimeout((function(){t.closeMessage(a)}),5e3)}}},{key:"closeMessage",value:function(e){var t=this;this.messageLists[e].openStatus=!1,this.props.dispatchEvent({type:"notification.message.change"}),setTimeout((function(){t.messageLists.reduce((function(e,t){return e||t.openStatus}),!1)||(t.messageLists=[])}),200)}},{key:"shouldComponentUpdate",value:function(e,t){return e.notificationBody!==this.props.notificationBody}},{key:"render",value:function(){var e=this,t=this.props.notificationBody;this.addMessage(t);var a=0;return this.messageLists.map((function(t,r){return a+=t.openStatus?1:0,Object(oe.jsx)(zi.a,{level:t.level,offset:a>0?a-1:0,open:t.openStatus,onClose:function(t,a){return"timeout"===a&&e.closeMessage(r)},action:t.action,message:t.message},r)}))}}]),a}(i.a.Component),Vi=Object(l.b)((function(e,t){return{notificationBody:e.NotificationStates.notificationBody}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Wi),Ji=Object(y.a)({__namespace__:"lang"},{chinese:"\u7b80\u4f53\u4e2d\u6587",english:"English"}),Ki=Object(y.a)(Object(y.a)({},{Added:"\u5df2\u6dfb\u52a0",created:"\u5df2\u521b\u5efa",updated:"\u5df2\u66f4\u65b0",removed:"\u5df2\u79fb\u9664",deleted:"\u5df2\u5220\u9664",copied:"\u5df2\u62f7\u8d1d",merged:"\u5df2\u5408\u5e76",opened:"\u5df2\u6253\u5f00",closed:"\u5df2\u5173\u95ed",binded:"\u5df2\u7ed1\u5b9a",unbinded:"\u5df2\u89e3\u7ed1",verified:"\u5df2\u9a8c\u8bc1",approved:"\u5df2\u8bc4\u5ba1",enabled:"\u5df2\u6062\u590d",disabled:"\u5df2\u7981\u7528",reseted:"\u5df2\u91cd\u7f6e",createPersonalGroupNotice:"\u81f3\u5c11\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u4ed3\u5e93\u7ec4\u4f5c\u4e3a\u4e2a\u4eba\u4ed3\u5e93\u7ec4",emailCodeHasSendNewEmail:"\u9a8c\u8bc1\u7801\u5df2\u7ecf\u53d1\u9001\u81f3\u65b0\u7684\u90ae\u7bb1",phoneCodeHasSendNewPhone:"\u9a8c\u8bc1\u7801\u5df2\u7ecf\u53d1\u9001\u81f3\u65b0\u7684\u624b\u673a",finishIdentityVerify:"\u524d\u8bf7\u8f93\u5165\u60a8\u7684\u8d26\u53f7\u5bc6\u7801\u4ee5\u5b8c\u6210\u8eab\u4efd\u9a8c\u8bc1",unbindEnterCodeFeverPassword:"\u82e5\u786e\u8ba4\uff0c\u8bf7\u8f93\u5165\u60a8\u7684CodeFever\u8d26\u53f7\u5bc6\u7801\u4ee5\u9a8c\u8bc1\u8eab\u4efd",scanQrcodeBind:"\u8bf7\u4f7f\u7528\u5fae\u4fe1\u626b\u63cf\u4e8c\u7ef4\u7801\u5b8c\u6210\u7ed1\u5b9a",theAccountUsedWechat_N:'\u8be5\u8d26\u53f7\u66fe\u4f7f\u7528\u5fae\u4fe1"{n}"\u4e0e\u84b2\u516c\u82f1\u65d7\u4e0b\u4ea7\u54c1\u5c0f\u7a0b\u5e8f\u7ed1\u5b9a\uff0c\u786e\u8ba4\u4f7f\u7528\u5f53\u524d\u5fae\u4fe1\u8d26\u53f7\u66ff\u6362"{n}"\u7684\u7ed1\u5b9a\u5417?',rebindWechat:"\u53d6\u6d88\uff0c\u66f4\u6362\u5fae\u4fe1\u540e\u91cd\u65b0\u7ed1\u5b9a",unbindAllProduct:"\u89e3\u9664\u7ed1\u5b9a\uff0c\u60a8\u5c06\u540c\u65f6\u89e3\u7ed1\u84b2\u516c\u82f1\u65d7\u4e0b\u6240\u6709\u4ea7\u54c1",mfaGuide:"\u6253\u5f00\u5177\u6709 MFA \u529f\u80fd\u7684 App \u5e76\u626b\u63cf\u4e0b\u65b9\u4e8c\u7ef4\u7801\uff0c\u8f93\u5165 App \u4e0a\u7684\u663e\u793a\u7684\u4e24\u7ec4\u4e0d\u540c\u7684 MFA \u5bc6\u7801\u5e76\u70b9\u51fb \u4fdd\u5b58 \u6309\u94ae\u5b8c\u6210 MFA \u8bbe\u5907\u8bbe\u7f6e\u3002\u4f60\u53ef\u4ee5\u5728\u4efb\u4f55\u624b\u673a\u5e94\u7528\u5e02\u573a\u641c\u7d22 MFA \u4e0b\u8f7d\u4f60\u4fe1\u4efb\u7684 App\u3002",inputEmailToAddMemeber:"\u8f93\u5165\u7528\u6237\u7684\u6ce8\u518c\u90ae\u7bb1\u4ee5\u6dfb\u52a0\u4e3a\u6210\u5458",groupMemberCanControlRepositoryNotice:"\u6b64\u4ed3\u5e93\u6240\u5728\u4ed3\u5e93\u7ec4\u7684\u6210\u5458\u5bf9\u4e8e\u6b64\u4ed3\u5e93\u7684\u63a7\u5236\u6743\u7531\u5176\u4ed3\u5e93\u7ec4\u89d2\u8272\u51b3\u5b9a",repositoryChangeCreatorNotice:"\u60a8\u786e\u5b9a\u9700\u8981\u66f4\u6362\u6b64\u4ed3\u5e93\u521b\u5efa\u8005\u5417 ? \u65b0\u7684\u521b\u5efa\u7740\u5c06\u62e5\u6709\u4ed3\u5e93\u6240\u6709\u7ba1\u7406\u6743\u9650, \u4e14\u66fe\u7ecf\u7684\u521b\u5efa\u8005\u5c06\u4f1a\u62e5\u6709 \u6240\u6709\u8005 \u89d2\u8272",repositoryChangeURLNotice:"\u60a8\u786e\u5b9a\u9700\u8981\u66f4\u6539\u6b64\u4ed3\u5e93 URL \u5417 ? URL \u66f4\u6539\u540e\uff0c\u4e0d\u80fd\u518d\u4f7f\u7528\u539f URL \u7ba1\u7406\u4ed3\u5e93, git \u5ba2\u6237\u7aef\u4f7f\u7528\u7684\u4ed3\u5e93\u5730\u5740\u4e5f\u4f1a\u540c\u6b65\u53d8\u66f4, \u60a8\u9700\u8981\u4f7f\u7528 git remote \u547d\u4ee4\u91cd\u65b0\u8bbe\u7f6e\u4ed3\u5e93\u5730\u5740",repositoryDeleteRepositoryNotice:"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6b64\u4ed3\u5e93\u5417 ? \u4ed3\u5e93\u5220\u9664\u540e\u6b64\u4ed3\u5e93\u4e0d\u518d\u53ef\u7528, \u4ed3\u5e93\u5185\u7684 \u6587\u4ef6 \u548c \u76f8\u5173\u8bb0\u5f55 \u90fd\u4f1a\u4e0d\u53ef\u9006\u7684\u88ab\u5220\u9664, \u8bf7\u786e\u8ba4\u9700\u8981\u4fdd\u7559\u7684\u6587\u4ef6\u5df2\u7ecf\u5907\u4efd\u5b8c\u6210, \u70b9\u51fb \u53d6\u6d88 \u6309\u94ae\u53ef\u4ee5\u53d6\u6d88\u64cd\u4f5c\u3002",repositoryDeleteRepositoryConfirmNotice:"\u9700\u8981\u60a8\u518d\u6b21\u786e\u8ba4\u5220\u9664\u6b64\u4ed3\u5e93 ? \u6b64\u4ed3\u5e93\u5220\u9664\u540e, \u6240\u6709\u4fe1\u606f\u548c\u6587\u4ef6\u90fd\u4f1a\u88ab\u4e0d\u53ef\u9006\u5220\u9664, \u6b64\u64cd\u4f5c\u9020\u6210\u7684\u540e\u679c\u4e0d\u53ef\u6062\u590d, \u8bf7\u786e\u8ba4\u9700\u8981\u4fdd\u7559\u7684\u6587\u4ef6\u5df2\u7ecf\u5907\u4efd\u5b8c\u6210, \u70b9\u51fb \u53d6\u6d88 \u6309\u94ae\u53ef\u4ee5\u53d6\u6d88\u6b64\u64cd\u4f5c\u3002",groupChangeCreatorNotice:"\u60a8\u786e\u5b9a\u9700\u8981\u66f4\u6362\u6b64\u4ed3\u5e93\u7ec4\u521b\u5efa\u8005\u5417 ? \u65b0\u7684\u521b\u5efa\u7740\u5c06\u62e5\u6709\u4ed3\u5e93\u7ec4\u6240\u6709\u7ba1\u7406\u6743\u9650, \u4e14\u66fe\u7ecf\u7684\u521b\u5efa\u8005\u5c06\u4f1a\u62e5\u6709 \u6240\u6709\u8005 \u89d2\u8272, \u6ce8\u610f\u4e2a\u4eba\u9ed8\u8ba4\u4ed3\u5e93\u7ec4\u4e0d\u80fd\u66f4\u6539\u521b\u5efa\u8005",groupChangeURLNotice:"\u60a8\u786e\u5b9a\u9700\u8981\u66f4\u6539\u6b64\u4ed3\u5e93\u7ec4 URL \u5417 ? URL \u66f4\u6539\u540e\uff0c\u4e0d\u80fd\u518d\u4f7f\u7528\u539f URL \u7ba1\u7406\u4ed3\u5e93\u7ec4, git \u5ba2\u6237\u7aef\u4f7f\u7528\u7684\u7ec4\u5185\u4ed3\u5e93\u5730\u5740\u4e5f\u4f1a\u540c\u6b65\u53d8\u66f4, \u60a8\u9700\u8981\u4f7f\u7528 git remote \u547d\u4ee4\u91cd\u65b0\u8bbe\u7f6e\u4ed3\u5e93\u5730\u5740",groupDeleteRepositoryNotice:"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6b64\u4ed3\u5e93\u7ec4\u5417 ? \u4ed3\u5e93\u7ec4\u5220\u9664\u540e\u4e0d\u518d\u53ef\u7528, \u4ed3\u5e93\u7ec4\u5185\u7684 \u76f8\u5173\u8bb0\u5f55 \u90fd\u4f1a\u4e0d\u53ef\u9006\u7684\u88ab\u5220\u9664, \u5728\u5220\u9664\u6b64\u4ed3\u5e93\u7ec4\u524d\u8bf7\u624b\u52a8\u5220\u9664\u7ec4\u5185\u6240\u6709\u4ed3\u5e93, \u70b9\u51fb \u53d6\u6d88 \u6309\u94ae\u53ef\u4ee5\u53d6\u6d88\u64cd\u4f5c\u3002",groupDeleteRepositoryConfirmNotice:"\u9700\u8981\u60a8\u518d\u6b21\u786e\u8ba4\u5220\u9664\u6b64\u4ed3\u5e93\u7ec4 ? \u6b64\u4ed3\u5e93\u7ec4\u5220\u9664\u540e, \u6240\u6709\u4fe1\u606f\u90fd\u4f1a\u88ab\u4e0d\u53ef\u9006\u5220\u9664, \u6b64\u64cd\u4f5c\u9020\u6210\u7684\u540e\u679c\u4e0d\u53ef\u6062\u590d, \u5728\u5220\u9664\u6b64\u4ed3\u5e93\u7ec4\u524d\u8bf7\u624b\u52a8\u5220\u9664\u7ec4\u5185\u6240\u6709\u4ed3\u5e93, \u70b9\u51fb \u53d6\u6d88 \u6309\u94ae\u53ef\u4ee5\u53d6\u6d88\u6b64\u64cd\u4f5c\u3002",inputCommitFilter:"\u8f93\u5165\u63d0\u4ea4\u4fe1\u606f\u8fc7\u6ee4",repositoryEmpty:"\u4ed3\u5e93\u4e3a\u7a7a",displaySource:"\u5c55\u793a\u6e90\u7801",displayRendereFile:"\u5c55\u793a\u6e32\u67d3\u5185\u5bb9",fileContentEmpty:"\u6587\u4ef6\u5185\u5bb9\u4e3a\u7a7a",fileContentOversize:"\u6587\u4ef6\u5927\u5c0f\u8d85\u8fc7\u5141\u8bb8\u5c55\u793a\u7684\u6700\u5927\u9650\u5ea6, \u8bf7\u5728\u672c\u5730\u67e5\u770b",fileTypeNotSupport:"\u6682\u4e0d\u652f\u6301\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u5c55\u793a",diffFileToMany:"\u8d85\u8fc7\u5141\u8bb8\u5c55\u793a\u7684\u6700\u5927\u6587\u4ef6\u6570\u91cf, \u8bf7\u5728\u672c\u5730\u67e5\u770b",createNewRepository:"\u5728\u547d\u4ee4\u884c\u521b\u5efa\u4e00\u4e2a\u65b0\u4ed3\u5e93",pushRepository:"\u5728\u547d\u4ee4\u884c push \u4e00\u4e2a\u5df2\u5b58\u5728\u7684\u4ed3\u5e93",_S_empty:"\u8bf7\u8f93\u5165{s}",repository_S_empty:"\u4ed3\u5e93\u5185\u8fd8\u6ca1\u6709{s}",repositoryBranchEmpty:"Git\u5206\u652f\uff0c\u672c\u8d28\u4e0a\u662f\u6307\u5411\u63d0\u4ea4\u5bf9\u8c61\u7684\u53ef\u53d8\u6307\u9488\u3002\u4f7f\u7528 git \u547d\u4ee4\u521b\u5efa\u5206\u652f\uff1a 'git branch \u65b0\u5206\u652f\u540d\u79f0 \u65e7\u5206\u652f\u540d\u79f0'",repositoryTagEmpty:"\u6807\u7b7e\u662f\u67d0\u4e00\u65f6\u95f4\u70b9\u4e0a\u7684\u7248\u672c\uff0c\u901a\u5e38\u4f7f\u7528\u6807\u7b7e\u6807\u8bc6\u4ee3\u7801\u5e93\u7684\u91cd\u8981\u7248\u672c\uff0c\u5982\u5728\u9879\u76ee\u7684\u91cc\u7a0b\u7891\u521b\u5efa\u6807\u7b7e\u3002\u4e5f\u53ef\u4ee5\u4f7f\u7528 git \u547d\u4ee4\u521b\u5efa\u6807\u7b7e\uff1agit tag -a v1.0 -m '\u7248\u672c 1.0'",mergeRequestEmpty:"\u672a\u627e\u5230\u76f8\u5173\u5408\u5e76\u8bf7\u6c42\u8bb0\u5f55",addNewCommit:"\u65b0\u589e\u4e00\u4e2a\u63d0\u4ea4",alreadyMergeRequest:"\u5df2\u7ecf\u5408\u5e76\u8bf7\u6c42",alreadyCloseRequest:"\u5df2\u7ecf\u5173\u95ed\u8bf7\u6c42",assignReviewerTitle:"\u6307\u5b9a\u8bc4\u5ba1\u5458\uff08\u53ea\u80fd\u6307\u5b9a1\u4eba\uff09",selectReviewer:"\u9009\u62e9\u8bc4\u5ba1\u5458",notSelectReviewers:"\u672a\u6307\u5b9a\u8bc4\u5ba1\u5458",deleteReviewer:"\u6e05\u9664\u8bc4\u5ba1\u5458",notApprove:"\u672a\u8bc4\u5ba1",assign_N_M_Reviewer:"\u6307\u5b9a {n} \u4e3a\u548c\u5e76\u8bf7\u6c42 {m} \u7684\u8bc4\u5ba1\u5458",delete_M_N_Reviewer:"\u5220\u9664\u4e86\u548c\u5e76\u8bf7\u6c42 {m} \u7684\u8bc4\u5ba1\u5458 {n}",review_M_Reviewer:"\u8bc4\u5ba1\u4e86\u548c\u5e76\u8bf7\u6c42 {m} \u7684\u4ee3\u7801",_S_listEmpty:"{s}\u5217\u8868\u4e3a\u7a7a",repositoryListEmptyNotice:"\u521b\u5efa\u4e00\u4e2a\u4ed3\u5e93, \u5f00\u59cb\u4f53\u9a8c\u5427",groupListEmptyNotice:"\u521b\u5efa\u4e00\u4e2a\u4ed3\u5e93\u7ec4, \u7ec4\u7ec7\u5e76\u7ba1\u7406\u7ec4\u5185\u4ed3\u5e93",input_S_name:"\u8f93\u5165{s}\u540d\u8fc7\u6ee4",confirmDelete:"\u786e\u8ba4\u5220\u9664{s}?",jumpWithLink:"\u8df3\u8f6c\u94fe\u63a5",noRepositoryFind:"\u6ca1\u6709\u67e5\u770b\u6743\u9650",noCommitRecord:"\u6682\u65e0\u63d0\u4ea4\u8bb0\u5f55",plsInputInvitedEmail:"\u8bf7\u8f93\u5165\u88ab\u9080\u8bf7\u4eba\u90ae\u7bb1",repositoryDeleteTipFirst:"\u5220\u9664\u9879\u76ee\u5c06\u5220\u9664\u5176\u5b58\u50a8\u5e93\u548c\u6240\u6709\u76f8\u5173\u8d44\u6e90\uff0c\u5305\u62ec\u95ee\u9898\u3001\u5408\u5e76\u8bf7\u6c42\u7b49",repositoryDeleteTipSecond:"\u65e0\u6cd5\u8fd8\u539f\u5df2\u5220\u9664\u7684\u9879\u76ee!",inputMergeCommit:"\u8bf7\u8f93\u5165\u5408\u5e76\u7684\u63d0\u4ea4\u4fe1\u606f, \u5e76\u6839\u636e\u60c5\u51b5\u52fe\u9009\u662f\u5426\u4f7f\u7528squash\u529f\u80fd",selectDifferentBranch:"\u5fc5\u987b\u9009\u62e9\u4e0d\u540c\u7684\u5206\u652f\u8fdb\u884c\u5408\u5e76",mergeConflictTitle:"\u4f60\u8981\u5408\u5e76\u7684\u4e24\u4e2a\u5206\u652f\u6709\u4ee3\u7801\u51b2\u7a81\uff0c\u8bf7\u6839\u636e\u4e0b\u9762\u7684\u547d\u4ee4\u5728\u672c\u5730\u8fdb\u884c\u5408\u5e76",mergeConflictTip1:"\u7b2c\u4e00\u6b65:\u62c9\u53d6\u4ee3\u7801\u5e76\u65b0\u5efa\u5408\u5e76\u8bf7\u6c42\u7684\u5206\u652f",mergeConflictTip2:"\u7b2c\u4e8c\u6b65:\u672c\u5730\u68c0\u67e5\u4ee3\u7801\u66f4\u6539",mergeConflictTip3:"\u7b2c\u4e09\u6b65:\u5408\u5e76\u5206\u652f\u5e76\u89e3\u51b3\u51b2\u7a81",mergeConflictTip4:"\u7b2c\u56db\u6b65:\u5c06\u4ee3\u7801\u63a8\u9001\u5230codeForge\u5e73\u53f0",from_S_Merge_S:"\u4ece {s1} \u8bf7\u6c42\u5408\u5e76\u5230 {s2}",defaultGroupReqiured:"\u9700\u8981\u9ed8\u8ba4\u4ed3\u5e93\u7ec4",defaultGroupReqiuredDescription:"\u60a8\u9700\u8981\u81f3\u5c11\u521b\u5efa\u4e00\u4e2a\u4ed3\u5e93\u7ec4\u7528\u4e8e\u5b58\u653e\u4ed3\u5e93",someVersion:"\u76f8\u5173\u7248\u672c",backHome:"\u56de\u5230\u9996\u9875",inputSSHKEYContent:"\u8bf7\u8f93\u5165 SSH Key \u5185\u5bb9",inputSSHKEYName:"\u8bf7\u8f93\u5165 SSH Key \u540d\u79f0",defaultBranchDescription:"\u9ed8\u8ba4\u5206\u652f\u88ab\u89c6\u4e3a\u4ee3\u7801\u5e93\u4e2d\u7684\u57fa\u672c\u5206\u652f, \u662f\u6240\u6709\u514b\u9686\u3001\u4ee3\u7801\u63d0\u4ea4\u548c\u5408\u5e76\u8bf7\u6c42\u7684\u76ee\u6807\u5206\u652f",settingToDefaultBranch:"\u8bbe\u7f6e\u4e3a\u9ed8\u8ba4\u5206\u652f",updateDefaultBranch:"\u4fee\u6539\u9ed8\u8ba4\u5206\u652f",settingDefaultBranch:"\u8bf7\u8bbe\u7f6e\u9ed8\u8ba4\u5206\u652f",protectedBranchDescription:"\u4fdd\u62a4\u5206\u652f\u4f1a\u4fdd\u969c\u5206\u652f\u5b89\u5168\u6027, \u4e0d\u5141\u8bb8\u9664\u6240\u6709\u8005\u4ee5\u5916\u89d2\u8272\u8fdb\u884c\u5f3a\u5236\u63a8\u9001\u53ca\u5220\u9664",protectedBranchRuleEmpty:"\u76ee\u524d\u65e0\u4fdd\u62a4\u5206\u652f\u89c4\u5219, \u8bf7\u65b0\u5efa\u4fdd\u62a4\u5206\u652f\u89c4\u5219, \u4fdd\u62a4\u5206\u652f\u5b89\u5168",inputBranchOrRegexp:"\u8bf7\u8f93\u5165\u5206\u652f\u540d\u79f0\u6216\u901a\u7528\u7b26\u89c4\u5219",createProtectedBranchRule:"\u65b0\u5efa\u4fdd\u62a4\u5206\u652f\u89c4\u5219",updateProtectedBranchRule:"\u4fee\u6539\u4fdd\u62a4\u5206\u652f\u89c4\u5219",deleteProtectedBranchRule:"\u5220\u9664\u4fdd\u62a4\u5206\u652f\u89c4\u5219",noBodyAllow:"\u4e0d\u5141\u8bb8\u4efb\u4f55\u4eba",primaryEmail:"\u4e3b\u90ae\u7bb1\u5730\u5740",primaryEmailDescription:"\u5f53\u524d CodeFever \u8d26\u53f7\u7684\u90ae\u7bb1\u5730\u5740, \u7528\u4e8e\u63a5\u6536\u76f8\u5173\u901a\u77e5, \u5bc6\u7801\u91cd\u7f6e, \u767b\u5f55\u7b49\u64cd\u4f5c",updatePrimaryEmail:"\u66f4\u6539\u4e3b\u90ae\u7bb1\u5730\u5740",myEmail:"\u6211\u7684\u90ae\u7bb1\u5730\u5740",myEmailDescription:"\u591a\u90ae\u7bb1\u529f\u80fd\u7528\u4e8e\u540c\u4e00\u7528\u6237\u6709\u591a\u4e2a\u4e0d\u540c\u90ae\u7bb1\u7528\u4e8e\u63d0\u4ea4\u4ee3\u7801, \u7cfb\u7edf\u53ef\u8bc6\u522b\u5e76\u521b\u5efa\u5173\u8054\u5173\u7cfb",addEmail:"\u65b0\u5efa\u90ae\u7bb1\u5730\u5740",contactedEmail:"\u5df2\u5173\u8054\u90ae\u7bb1",shouldValidation:"\u5f85\u9a8c\u8bc1",resendEmail:"\u91cd\u53d1\u90ae\u4ef6",differenceBetweenHTTPSAndSSH:"HTTPS \u4e0e SSH \u6709\u4ec0\u4e48\u533a\u522b ?",generateAndSetSSHKey:"\u8bf7\u786e\u8ba4\u5ba2\u6237\u7aef\u7684 SSH Key \u5df2\u7ecf\u751f\u6210\u5e76\u4e14\u5728 CodeFever \u4e0a\u6b63\u786e\u8bbe\u7f6e\u3002",itsMyEmail:"\u8fd9\u662f\u6211\u7684\u90ae\u7bb1",notificationSystem:"\u7cfb\u7edf\u6d88\u606f",notificationMention:"\u63d0\u5230\u6211\u7684",tagRead:"\u6807\u8bb0\u4e3a\u5df2\u8bfb",tagAllRead:"\u6807\u8bb0\u6240\u6709\u4e3a\u5df2\u8bfb",deleteAllReaded:"\u5220\u9664\u6240\u6709\u5df2\u8bfb\u7528\u6237\u6d88\u606f",mergeRequestNotification:"\u5408\u5e76\u8bf7\u6c42\u901a\u77e5",mergeRequestNotificationDesc:"\u53ef\u63a5\u6536\u4ed3\u5e93\u6210\u5458\u53d1\u5e03\u7684\u548c\u5e76\u8bf7\u6c42\u901a\u77e5, \u5f00\u53d1\u8005\u53ca\u4ee5\u4e0a\u6210\u5458\u53ef\u63a5\u6536",emailNotification:"\u90ae\u4ef6\u901a\u77e5",emailNotificationDesc:"\u901a\u77e5\u8bbe\u7f6e\u4e2d\u7684\u6d88\u606f\u5c06\u53d1\u9001\u5230\u60a8\u7684\u6ce8\u518c\u90ae\u7bb1\u4e2d\u3002",searchByName:"\u67e5\u627e\u59d3\u540d\u6216\u90ae\u7bb1",userStatusEnabled:"\u6062\u590d\u786e\u8ba4",userStatusDisabled:"\u7981\u7528\u786e\u8ba4",userStatusEnabled_N:'\u786e\u8ba4\u6062\u590d\u7528\u6237 "{n}" ?',userStatusDisabled_N:'\u786e\u8ba4\u7981\u7528\u7528\u6237 "{n}" ?',closeMFA:"\u5173\u95ed2FA\u8ba4\u8bc1",closeMFAConfirm:"\u5173\u95ed2FA\u8ba4\u8bc1\u786e\u8ba4",closeMFA_N:'\u786e\u8ba4\u5173\u95ed\u7528\u6237 "{n}" 2FA\u8ba4\u8bc1?',resetPassword:"\u91cd\u7f6e\u5bc6\u7801",reset_N_Password:'\u91cd\u7f6e\u7528\u6237 "{n}" \u5bc6\u7801',searchRepository:"\u67e5\u627e\u4ed3\u5e93",searchGroup:"\u67e5\u627e\u4ed3\u5e93\u7ec4",roleToOwner:"\u6307\u5b9a\u4e3a\u6240\u6709\u8005",setGroupOwner_S:"\u786e\u5b9a\u6307\u5b9a {s} \u4e3a\u4ed3\u5e93\u7ec4\u7684\u6240\u6709\u8005?",setAdministrator:"\u8bbe\u7f6e\u4e3a\u7ba1\u7406\u5458",cancelAdministrator:"\u53d6\u6d88\u7ba1\u7406\u5458",memberRemoveConfirm:"\u6210\u5458\u5220\u9664\u786e\u8ba4",successAddUser:"\u6dfb\u52a0\u7528\u6237\u6210\u529f",webhookEventsNeed:"\u8bf7\u9009\u62e9\u63a8\u9001\u4e8b\u4ef6",webhookListEmpty:"\u8fd8\u6ca1\u6709\u521b\u5efaWebhook",useTime_n:"\u7528\u65f6 {n} s",show_n_record:"\u663e\u793a\u6700\u65b0{n}\u6761\u8bb0\u5f55"}),{},{__namespace__:"message"}),$i=Object(y.a)(Object(y.a)({},{_S_empty:"\u8bf7\u8f93\u5165{s}",_S_retype:"\u8bf7\u518d\u6b21\u8f93\u5165{s}",_S_has_illegal_character:"{s}\u542b\u6709\u975e\u6cd5\u5b57\u7b26(\u53ea\u652f\u6301\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf(_)\u3001\u4e2d\u5212\u7ebf(-)\u548c\u70b9(.)\u7684\u7ec4\u5408)",_S_notChoose:"\u8bf7\u9009\u62e9{s}",_S_duplicate:"{s}\u91cd\u590d",_S_invalid:"{s}\u4e0d\u6b63\u786e",_S_notFound:"\u6ca1\u6709\u627e\u5230\u6b64{s}",noMoreThan_N_characters:"\u4e0d\u80fd\u8d85\u8fc7{n}\u4e2a\u5b57\u7b26",within_N1_to_N2_characters:"\u9700\u8981\u5728{n1}\u81f3{n2}\u4e2a\u5b57\u7b26\u4e4b\u95f4",only_N1_or_N2_characters:"\u53ea\u80fd\u5305\u542b{n1}\u6216{n2}\u4e2a\u5b57\u7b26",requireCombinationOfCharactersNumbersAndUnderscore:"\u53ea\u80fd\u662f\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf\u7684\u7ec4\u5408",input_S_placeholder:"\u8bf7\u8f93\u5165{s}\uff0c\u53ea\u652f\u6301\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf(_)\u3001\u4e2d\u5212\u7ebf(-)\u548c\u70b9(.)\u7684\u7ec4\u5408",inputNotSame:"\u4e24\u6b21\u8f93\u5165\u4e0d\u4e00\u81f4",inputSame:"\u4e24\u6b21\u8f93\u5165\u4e00\u81f4",canNotAddCreatorAsMember:"\u521b\u5efa\u8005\u4e0d\u80fd\u5f53\u4f5c\u6210\u5458\u6dfb\u52a0",createRepositoryFail:"\u521b\u5efa\u4ed3\u5e93\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createGroupFail:"\u521b\u5efa\u4ed3\u5e93\u7ec4\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createBranchFail:"\u521b\u5efa\u5206\u652f\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createTagFail:"\u521b\u5efa\u6807\u7b7e\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createMergeRequestFail:"\u521b\u5efa\u5408\u5e76\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createProtectedBrancheRuleFail:"\u521b\u5efa\u4fdd\u62a4\u5206\u652f\u89c4\u5219\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",AddFail:"\u6dfb\u52a0\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",updateFail:"\u66f4\u65b0\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",removeFail:"\u79fb\u9664\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",deleteFail:"\u5220\u9664\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",verifyFail:"\u9a8c\u8bc1\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",forkRepositoryFail:"Fork\u4ed3\u5e93\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",getFileFail:"\u83b7\u53d6\u5b8c\u6574\u6587\u4ef6\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",getEmailCodeFail:"\u83b7\u53d6\u90ae\u7bb1\u9a8c\u8bc1\u7801\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",getPhoneCodeFail:"\u83b7\u53d6\u624b\u673a\u9a8c\u8bc1\u7801\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",change_S_Fail:"\u4fee\u6539{s}\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",waitToRetry:"\u7f51\u7edc\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",canNotChangeOwnerOfUserGroup:"\u4e0d\u80fd\u66f4\u6539\u4e2a\u4eba\u9ed8\u8ba4\u4ed3\u5e93\u7ec4\u7684\u521b\u5efa\u8005",canNotDeleteUserGroup:"\u4e0d\u80fd\u5220\u9664\u4e2a\u4eba\u9ed8\u8ba4\u4ed3\u5e93\u7ec4",canNotDeleteNonEmptyGroup:"\u4ed3\u5e93\u7ec4\u5185\u542b\u6709\u672a\u5220\u9664\u7684\u4ed3\u5e93, \u8bf7\u624b\u52a8\u5220\u9664\u7ec4\u5185\u4ed3\u5e93\u540e\u518d\u8bd5",mergeRequestExists:"\u5b58\u5728\u5df2\u6253\u5f00\u7684\u5408\u5e76\u8bf7\u6c42",mergeFail:"\u5408\u5e76\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5",reviewedCanNotAssign:"\u4e0d\u80fd\u66ff\u6362\u8bc4\u5ba1\u8fc7\u7684\u8bc4\u5ba1\u5458",reviewedCanNotDelete:"\u4e0d\u80fd\u5220\u9664\u8bc4\u5ba1\u8fc7\u7684\u8bc4\u5ba1\u5458",branchProteced:"\u4e0d\u80fd\u5728\u4fdd\u62a4\u5206\u652f\u4e0a\u5408\u5e76",userNotReview:"\u4e0d\u80fd\u5408\u5e76\uff0c\u8fd8\u6709\u8bc4\u5ba1\u5458\u672a\u8bc4\u5ba1",inputNewEmail:"\u8bf7\u8f93\u5165\u65b0\u7684\u90ae\u7bb1",bindEmailFirst:"\u4f60\u9700\u8981\u7ed1\u5b9a\u90ae\u7bb1\u624d\u53ef\u4ee5\u7ed1\u5b9a\u7b2c\u4e09\u65b9\u5e73\u53f0",wechatHasbound:"\u8be5\u5fae\u4fe1\u53f7\u5df2\u7ecf\u88ab\u7ed1\u5b9a\uff0c\u8bf7\u626b\u7801\u767b\u5f55\u540e\u89e3\u7ed1\u91cd\u8bd5",sshKeyDuplicate:"\u6b64 SSH Key \u5df2\u7ecf\u6dfb\u52a0, \u6216\u5728\u5176\u4ed6\u7528\u6237\u4e2d"}),{},{__namespace__:"message.error"}),Zi=Object(y.a)(Object(y.a)({},{createdGroup:"\u521b\u5efa\u4ed3\u5e93\u7ec4",updateGroup_S_Avator:"\u66f4\u65b0\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u5934\u50cf",updateGroup_S_Name:"\u66f4\u65b0\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u540d\u79f0",updateGroup_S_Description:"\u66f4\u65b0\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u63cf\u8ff0",addGroup_S_Memeber:"\u5411\u4ed3\u5e93\u7ec4 {s} \u6dfb\u52a0\u4e86\u6210\u5458",changeGroup_S_MemebrRole:"\u8bbe\u7f6e\u4e86\u4ed3\u5e93\u7ec4 {s} \u5185\u6210\u5458\u89d2\u8272",removeGroup_S_Memebr:"\u79fb\u9664\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u6210\u5458",setGroup_S_Creator:"\u8bbe\u7f6e\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u521b\u5efa\u8005",setGroup_S_URL:"\u4fee\u6539\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u8bbf\u95ee\u5730\u5740",createdRepository:"\u521b\u5efa\u4ed3\u5e93",deleteRepository:"\u5220\u9664\u4ed3\u5e93",forkRepository:"fork \u5e76\u521b\u5efa\u4ed3\u5e93",updateRepository_S_Avator:"\u66f4\u65b0\u4e86\u4ed3\u5e93 {s} \u7684\u5934\u50cf",updateRepository_S_Name:"\u66f4\u65b0\u4e86\u4ed3\u5e93 {s} \u7684\u540d\u79f0",updateRepository_S_Description:"\u66f4\u65b0\u4e86\u4ed3\u5e93 {s} \u7684\u63cf\u8ff0",pushTo_S_Branch:"\u63a8\u9001\u63d0\u4ea4\u5230\u4ed3\u5e93 {s} \u7684\u5206\u652f",pushTo_S_NewBranch:"\u63a8\u9001\u5206\u652f\u5230\u4ed3\u5e93 {s}",created_S_NewBranch:"\u5728\u4ed3\u5e93 {s} \u521b\u5efa\u65b0\u5206\u652f",delete_S_Branch:"\u5728\u4ed3\u5e93 {s} \u5220\u9664\u4e86\u5206\u652f",update_S_DefaultBranch:"\u4fee\u6539\u4e86\u4ed3\u5e93 {s} \u7684\u9ed8\u8ba4\u5206\u652f",created_S_ProtectedBranchRule:"\u5728\u4ed3\u5e93 {s} \u521b\u5efa\u4fdd\u62a4\u5206\u652f\u89c4\u5219",update_S_ProtectedBranchRule:"\u4fee\u6539\u4e86\u4ed3\u5e93 {s} \u7684\u4fdd\u62a4\u5206\u652f\u89c4\u5219",delete_S_ProtectedBranchRule:"\u5220\u9664\u4e86\u4ed3\u5e93 {s} \u7684\u4fdd\u62a4\u5206\u652f\u89c4\u5219",pushTo_S_Tag:"\u63a8\u9001\u63d0\u4ea4\u5230\u4ed3\u5e93 {s} \u7684\u6807\u7b7e",pushTo_S_NewTag:"\u63a8\u9001\u6807\u7b7e\u5230\u4ed3\u5e93 {s}",created_S_NewTag:"\u5728\u4ed3\u5e93 {s} \u521b\u5efa\u65b0\u6807\u7b7e",delete_S_Tag:"\u5728\u4ed3\u5e93 {s} \u5220\u9664\u4e86\u6807\u7b7e",addRepository_S_Memeber:"\u5411\u4ed3\u5e93 {s} \u6dfb\u52a0\u4e86\u6210\u5458",changeRepository_S_MemebrRole:"\u8bbe\u7f6e\u4e86\u4ed3\u5e93 {s} \u5185\u6210\u5458\u89d2\u8272",removeRepository_S_Memebr:"\u79fb\u9664\u4e86\u4ed3\u5e93 {s} \u7684\u6210\u5458",setRepository_S_Creator:"\u8bbe\u7f6e\u4e86\u4ed3\u5e93 {s} \u7684\u521b\u5efa\u8005",setRepository_S_URL:"\u4fee\u6539\u4e86\u4ed3\u5e93 {s} \u7684\u8bbf\u95ee\u5730\u5740",open_S_MergeRquest:"\u5728\u4ed3\u5e93 {s} \u6253\u5f00\u5408\u5e76\u8bf7\u6c42",close_S_MergeRquest:"\u5728\u4ed3\u5e93 {s} \u5173\u95ed\u5408\u5e76\u8bf7\u6c42",merge_S_MergeRquest:"\u5728\u4ed3\u5e93 {s} \u5408\u5e76\u8bf7\u6c42",assign_S_Reviewer:"\u5728\u4ed3\u5e93 {s} \u6307\u5b9a\u8bc4\u5ba1\u5458",delete_S_Reviewer:"\u5728\u4ed3\u5e93 {s} \u5220\u9664\u8bc4\u5ba1\u5458",review_S_Reviewer:"\u5728\u4ed3\u5e93 {s} \u8bc4\u5ba1\u4e86\u4ee3\u7801",create_S_Webhook:"\u5728\u4ed3\u5e93 {s} \u521b\u5efa\u4e86webhook",update_S_Webhook:"\u5728\u4ed3\u5e93 {s} \u66f4\u65b0\u4e86webhook",delete_S_Webhook:"\u5728\u4ed3\u5e93 {s} \u5220\u9664\u4e86webhook"}),{},{__namespace__:"message.activity"}),Yi=Object(y.a)(Object(y.a)({},{repository:"\u4ed3\u5e93",repository_pl:"\u4ed3\u5e93",group:"\u4ed3\u5e93\u7ec4",group_pl:"\u4ed3\u5e93\u7ec4",file:"\u6587\u4ef6",file_pl:"\u6587\u4ef6",commit:"\u63d0\u4ea4",commit_pl:"\u63d0\u4ea4",mergeRequest:"\u5408\u5e76\u8bf7\u6c42",mergeRequest_pl:"\u5408\u5e76\u8bf7\u6c42",branch:"\u5206\u652f",branch_pl:"\u5206\u652f",webhook:"Webhook",webhook_pl:"Webhooks",tag:"\u6807\u7b7e",tag_pl:"\u6807\u7b7e",member:"\u6210\u5458",member_pl:"\u6210\u5458",activity:"\u52a8\u6001",activity_pl:"\u52a8\u6001",setting:"\u8bbe\u7f6e",setting_pl:"\u8bbe\u7f6e",SSHKey:"SSH Key",SSHKey_pl:"SSH Keys",user:"\u7528\u6237",user_pl:"\u7528\u6237",fileTree:"\u6587\u4ef6\u6811",merge:"\u5408\u5e76",data:"\u6570\u636e",clone:"\u514b\u9686",fork:"Fork",limitation:"\u9650\u5236",role:"\u89d2\u8272",team:"\u56e2\u961f",code:"\u6e90\u7801",hash:"\u54c8\u5e0c\u503c",time:"\u65f6\u95f4",number:"\u6570\u91cf",line:"\u884c",guest:"\u8bbf\u5ba2",reporter:"\u76d1\u7763\u8005",developer:"\u5f00\u53d1\u8005",maintianer:"\u7ef4\u62a4\u8005",owner:"\u6240\u6709\u8005",parentNode:"\u7236\u8282\u70b9"}),{},{__namespace__:"term"}),Xi=Object(y.a)(Object(y.a)({},Yi),{},{CodeFever:"CodeFever",ID:"ID",user:"\u7528\u6237",name:"\u540d\u79f0",creator:"\u521b\u5efa\u8005",reviewer:"\u8bc4\u5ba1\u5458",administrator:"\u7ba1\u7406\u5458",title:"\u6807\u9898",description:"\u63cf\u8ff0",origin:"\u6765\u6e90",source:"\u6e90",target:"\u76ee\u6807",url:"URL",ssh:"SSH",slug:"\u6807\u8bc6\u4e32",prefix:"\u524d\u7f00",avatar:"\u5934\u50cf",icon:"\u56fe\u6807",joinedAt:"\u52a0\u5165\u65f6\u95f4",unknown:"\u672a\u77e5",all:"\u6240\u6709",detail:"\u8be6\u60c5",language:"\u8bed\u8a00",webhook:"Webhook",log:"\u65e5\u5fd7",httpHeaders:"\u5934\u90e8",httpBody:"\u54cd\u5e94\u6570\u636e",httpPayload:"\u8bf7\u6c42\u6570\u636e",browser:"\u6d4f\u89c8",expand:"\u5c55\u5f00",times:"\u6b21",full:"\u5b8c\u6574",invite:"\u9080\u8bf7",before:"\u524d",new:"\u65b0\u5efa",add:"\u65b0\u589e",open:"\u6253\u5f00",close:"\u5173\u95ed",save:"\u4fdd\u5b58",create:"\u521b\u5efa",update:"\u66f4\u65b0",remove:"\u79fb\u9664",modification:"\u4fee\u6539",delete:"\u5220\u9664",and:"\u548c",ok:"\u786e\u5b9a",cancel:"\u53d6\u6d88",copy:"\u62f7\u8d1d",push:"\u63a8\u9001",merge:"\u5408\u5e76",chose:"\u9009\u62e9",show:"\u663e\u793a",list:"\u5217\u8868",copied:"\u5df2\u590d\u5236",contain:"\u5305\u542b",request:"\u8bf7\u6c42",response:"\u54cd\u5e94",bind:"\u7ed1\u5b9a",unbind:"\u89e3\u7ed1",replace:"\u66ff\u6362",sort:"\u6392\u5e8f",manage:"\u7ba1\u7406",protected:"\u4fdd\u62a4",operating:"\u64cd\u4f5c",approve:"\u8bc4\u5ba1",enable:"\u542f\u7528",disable:"\u7981\u7528",last:"\u6700\u8fd1",default:"\u9ed8\u8ba4",active:"\u6d3b\u8dc3",inactive:"\u975e\u6d3b\u8dc3",path:"\u8def\u5f84",email:"\u7535\u5b50\u90ae\u4ef6\u5730\u5740",password:"\u5bc6\u7801",oldPassword:"\u65e7\u5bc6\u7801",newPassword:"\u65b0\u5bc6\u7801",mfaCode:"MFA \u5bc6\u7801",twoFactorAuthentication:"\u4e8c\u56e0\u7d20\u8ba4\u8bc1",emailCode:"\u9a8c\u8bc1\u7801",phoneCode:"\u9a8c\u8bc1\u7801",phone:"\u624b\u673a",china:"\u4e2d\u56fd",company:"\u516c\u53f8",job:"\u804c\u4f4d",wechat:"\u5fae\u4fe1",credential:"\u51ed\u636e",login:"\u767b\u5f55",logout:"\u9000\u51fa\u767b\u5f55",next:"\u4e0b\u4e00\u9875",prev:"\u4e0a\u4e00\u9875",mergeMessage:"\u5408\u5e76\u4fe1\u606f",submit:"\u63d0\u4ea4",rule:"\u89c4\u5219",allow:"\u5141\u8bb8",status:"\u72b6\u6001",history:"\u5386\u53f2",notification:"\u901a\u77e5",learnMore:"\u4e86\u89e3\u66f4\u591a",myServiceTicket:"\u6211\u7684\u5de5\u5355",getHelp:"\u83b7\u53d6\u5e2e\u52a9",help:"\u5e2e\u52a9",result:"\u7ed3\u679c",success:"\u6210\u529f",failure:"\u5931\u8d25",doc:"\u6587\u6863",adminArea:"\u7ba1\u7406\u540e\u53f0",edit:"\u7f16\u8f91",confirm:"\u786e\u8ba4"}),Qi=Object(y.a)(Object(y.a)({},Xi),{},{__namespace__:"phrase"}),en=Object(y.a)(Object(y.a)(Object(y.a)({},Yi),Qi),{},{dashboard:"\u6982\u89c8",general:"\u5e38\u89c4",advanced:"\u9ad8\u7ea7",profile:"\u4e2a\u4eba\u4fe1\u606f",mail:"\u591a\u90ae\u7bb1"}),tn=Object(y.a)(Object(y.a)({},en),{},{__namespace__:"menu"}),an="",rn=Object(y.a)(Object(y.a)(Object(y.a)({},Qi),Yi),{},{update_S_:"\u4fee\u6539{s}",retryAfter_N_seconds:"{n} \u79d2\u540e\u91cd\u8bd5",userAvatar:[Qi.user,Qi.avatar].join(an),userName:[Qi.user,Qi.name].join(an),getEmailCode:["\u83b7\u53d6",Qi.emailCode].join(an),getPhoneCode:["\u83b7\u53d6",Qi.phoneCode].join(an),mostSeen:"\u5e38\u89c1",loginCredential:[Qi.login,Qi.credential].join(an),CodeFeverPassword:[Qi.CodeFever,Qi.password].join(an),wechatBind:[Qi.wechat,Qi.bind].join(an),unbind_P:"\u89e3\u9664{p}\u7ed1\u5b9a",repositoryID:[Yi.repository,Qi.ID].join(an),repositoryName:[Yi.repository,Qi.name].join(an),repositoryDescription:[Yi.repository,Qi.description].join(an),repositoryURL:[Yi.repository,Qi.url].join(an),repositorySlug:[Yi.repository,Qi.slug].join(an),repositoryMember:[Yi.repository,Yi.member].join(an),newRepository:[Qi.new,Yi.repository].join(an),forkRepository:[Yi.fork,Yi.repository].join(an),unknownRepository:[Qi.unknown,Yi.repository].join(an),allRepository:[Qi.all,Yi.repository].join(an),deleteRepository:[Qi.delete,Yi.repository].join(an),groupID:[Yi.group,Qi.ID].join(an),groupName:[Yi.group,Qi.name].join(an),groupDescription:[Yi.group,Qi.description].join(an),groupURL:[Yi.group,Qi.url].join(an),groupSlug:[Yi.repository,Qi.slug].join(an),groupMember:[Yi.group,Yi.member].join(an),newGroup:[Qi.new,Yi.group].join(an),unknownGroup:[Qi.unknown,Yi.group].join(an),deleteGroup:[Qi.delete,Yi.group].join(an),inviteMember:[Qi.invite,Yi.member].join(an),removeMember:[Qi.remove,Yi.member].join(an),forkFrom_S:[Yi.fork,"\u81ea: {s}"].join(an),updateFrom_S1_To_S2:["\u4ece {s1} \u66f4\u65b0\u4e3a {s2}"].join(an),repositoryAvatar:[Yi.repository,Qi.icon].join(an),groupAvatar:[Yi.group,Qi.icon].join(an),basicInfo:"\u57fa\u672c\u4fe1\u606f",newPasswordConfirm:[Qi.confirm,Qi.newPassword].join(an),security:"\u5b89\u5168\u6027",setupNewMFADevice:"\u8bbe\u7f6e MFA \u8bbe\u5907",changeMFADevice:"\u66f4\u6362 MFA \u8bbe\u5907",removeMFADevice:"\u79fb\u9664 MFA \u8bbe\u5907",mfaCode1:["\u7b2c\u4e00\u7ec4 ",Qi.mfaCode].join(an),mfaCode2:["\u7b2c\u4e8c\u7ec4 ",Qi.mfaCode].join(an),commitTime:[Qi.commit,Qi.time].join(an),copyPath:[Qi.copy,Qi.path].join(an),copyHash:[Qi.copy,Yi.hash].join(an),copyCode:[Qi.copy,Yi.code].join(an),lastCommit:[Qi.last,Yi.commit].join(an),lastUpdate:[Qi.last,Qi.update].join(an),updateCreator:[Qi.update,Qi.creator].join(an),updateRepositoryURL:[Qi.update,Yi.repository,Qi.url].join(an),updateGroupURL:[Qi.update,Yi.group,Qi.url].join(an),webhookSetting:[Yi.webhook,Yi.setting].join(an),createWebhook:[Qi.create,Yi.webhook].join(an),updateWebhook:[Qi.update,Yi.webhook].join(an),deleteWebhook:[Qi.delete,Yi.webhook].join(an),contentType:"\u6570\u636e\u683c\u5f0f",webhookSecret:"\u6821\u9a8c\u79d8\u94a5",webhookTrigger:"\u89e6\u53d1\u4e8b\u4ef6",pushTrigger:"\u4ec5\u63a8\u9001\u4e8b\u4ef6",customeTrigger:"\u81ea\u5b9a\u4e49",webhookList:"Webhook\u5217\u8868",webhookLog:[Qi.webhook,Qi.log].join(an),createOrigin:[Qi.create,Qi.origin].join(an),choseCreateOrigin:[Qi.chose,Qi.create,Qi.origin].join(an),tagDescription:[Yi.tag,Qi.description].join(an),tagName:[Yi.tag,Qi.name].join(an),branchName:[Yi.branch,Qi.name].join(an),defaultBranch:[Qi.default,Yi.branch].join(an),protectedBranch:[Qi.protected,Yi.branch].join(an),branchRule:[Qi.branch,Qi.rule].join(an),allowPush:[Qi.allow,Qi.push].join(an),allowMerge:[Qi.allow,Qi.merge].join(an),noData:["\u6ca1\u6709",Yi.data].join(an),newBranch:[Qi.new,Yi.branch].join(an),newTag:[Qi.new,Yi.tag].join(an),deleteBranch:[Qi.delete,Yi.branch].join(an),deleteTag:[Qi.delete,Yi.tag].join(an),updateTime:[Qi.update,Yi.time].join(an),updatedIn:"\u66f4\u65b0\u4e8e",editIn:"\u7f16\u8f91\u4e8e",expandFullFile:[Qi.expand,Qi.full,Qi.file].join(an),showDiffOnly:"\u4ec5\u5c55\u793a\u4fee\u6539\u884c",codeDiff:"\u4ee3\u7801\u5dee\u5f02",requestCreated:"\u521b\u5efa\u4e8e",requestClosed:"\u5173\u95ed\u4e8e",requestMerged:"\u5408\u5e76\u4e8e",createRepository:["\u8bf7",Qi.create,Yi.repository].join(an),commitActivity:[Yi.commit,Qi.activity].join(an),mergeRequestActivity:[Yi.mergeRequest,Qi.activity].join(an),memberActivity:[Yi.member,Qi.activity].join(an),addSSHKey:[Qi.add,Yi.SSHKey].join(an),emailManage:["\u90ae\u7bb1",Qi.manage].join(an),memberManage:[Yi.member,Qi.manage].join(an),primaryEmail:"\u4e3b\u90ae\u7bb1",contactEmail:"\u5173\u8054\u90ae\u7bb1\u5217\u8868",SSHKeyManage:[Yi.SSHKey_pl," ",Qi.manage].join(an),notificationCenter:"\u901a\u77e5\u4e2d\u5fc3",notificationReceiveStatus:"\u63a5\u6536\u901a\u77e5\u72b6\u6001",unread:"\u672a\u8bfb",fileModification:[Yi.file,Qi.modification].join(an),fileModificationList:[Qi.modification,Yi.file,Qi.list].join(an),lineAdd:[Yi.line,Qi.add].join(an),lineDelete:[Yi.line,Qi.delete].join(an),browserFile:[Qi.browser,Qi.file].join(an),browserUnchangedFIle:[Qi.browser,Qi.modification,Qi.before,Qi.file].join(an),commitHash:[Yi.commit,Yi.hash].join(an),allFiles:[Qi.all,Qi.file].join(an),openFileTree:[Qi.open,Yi.fileTree].join(an),closeFileTree:[Qi.close,Yi.fileTree].join(an),requestMerge:[Qi.request,Qi.merge].join(an),createMergeRequest:[Qi.create,Yi.mergeRequest].join(an),closeMergeRequest:[Qi.close,Yi.mergeRequest].join(an),more:"\u67e5\u770b\u66f4\u591a",noMore:"\u6ca1\u6709\u66f4\u591a",processing:"\u5904\u7406\u4e2d",IJoined:"\u6211\u53c2\u4e0e\u7684",ICreated:"\u6211\u521b\u5efa\u7684",dangerOperation:"\u5371\u9669\u64cd\u4f5c",dangerOperationConfirm:"\u6700\u540e\u786e\u8ba4\u5371\u9669\u64cd\u4f5c",compareBranch:"\u5bf9\u6bd4\u5206\u652f\u5e76\u7ee7\u7eed",lastModified:"\u6700\u8fd1\u4fee\u6539",lastModified_N:["\u7b2c","{n}","\u6b21\u4fee\u6539"].join(an),openMergeRequest:[Qi.open,Yi.mergeRequest].join(an),modificationBranch:[Qi.modification,Yi.branch].join(an),sourceBranch:[Qi.source,Yi.branch].join(an),targetBranch:[Qi.target,Yi.branch].join(an),repositoryAdvancedSetting:"\u4ed3\u5e93\u9ad8\u7ea7\u8bbe\u7f6e",branchSetting:"\u5206\u652f\u8bbe\u7f6e",groupAdvancedSetting:"\u4ed3\u5e93\u7ec4\u9ad8\u7ea7\u8bbe\u7f6e",memberLimitation:[Yi.member,Yi.limitation].join(an),modificationLimitation:[Qi.modification,Yi.limitation].join(an),roleID_1:Yi.guest,roleID_2:Yi.reporter,roleID_3:Yi.developer,roleID_4:Yi.maintianer,roleID_5:Yi.owner,yourself:"\u4f60\u81ea\u5df1",enabledMFA:"\u5f00\u542f\u4e862FA",disabledMFA:"\u672a\u5f00\u542f2FA",blocked:"\u7981\u7528",createTime:"\u521b\u5efa\u65f6\u95f4",addUser:"\u6dfb\u52a0\u7528\u6237",statistic:"\u7edf\u8ba1",systemResources:"\u7cfb\u7edf\u8d44\u6e90",diskUsgae:"\u78c1\u76d8\u4f7f\u7528\u91cf",serviceStatus:"\u670d\u52a1\u72b6\u6001",host:"\u4e3b\u673a",senderName:"\u53d1\u4ef6\u4eba\u540d\u79f0",senderAddress:"\u53d1\u4ef6\u4eba\u5730\u5740",register:"\u6ce8\u518c",allowRegister:"\u5f00\u653e\u6ce8\u518c",urlPrefix:[Qi.url," ",Qi.prefix].join(an),sshPrefix:[Qi.ssh," ",Qi.prefix].join(an),support:"\u6280\u672f\u652f\u6301",feedback:"\u63d0\u4ea4\u53cd\u9988",contribute:"\u4e3a CodeFever Community \u8d21\u732e\u4ee3\u7801",about:"\u5173\u4e8e CodeFever Community",pushEvent:"\u63a8\u9001\u4e8b\u4ef6",changeMemberRole:[Qi.modification,Yi.member,Yi.role].join(an),createProtectedBranchRule:"\u521b\u5efa\u53d7\u4fdd\u62a4\u5206\u652f\u89c4\u5219",changeProtectedBranchRule:"\u4fee\u6539\u53d7\u4fdd\u62a4\u5206\u652f\u89c4\u5219",removeProtectedBranchRule:"\u5220\u9664\u53d7\u4fdd\u62a4\u5206\u652f\u89c4\u5219",reviewReviewer:"\u8bc4\u5ba1\u4ee3\u7801",_N_repository:"{n} {n, plural, =0 {"+Yi.repository+"}\n=1 {"+Yi.repository+"}\nother {"+Yi.repository_pl+"}}",_N_commit:"{n} {n, plural, =0 {"+Yi.commit+"}\n=1 {"+Yi.commit+"}\nother {"+Yi.commit_pl+"}}",_N_branch:"{n} {n, plural, =0 {"+Yi.branch+"}\n=1 {"+Yi.branch+"}\nother {"+Yi.branch_pl+"}}",_N_tag:"{n} {n, plural, =0 {"+Yi.tag+"}\n=1 {"+Yi.tag+"}\nother {"+Yi.tag_pl+"}}",_N_byte:"{n} {n, plural, =0 {Byte}\n=1 {Byte}\nother {Bytes}}",_N_mergeRequest:"{n} {n, plural, =0 {"+Yi.mergeRequest+"}\n=1 {"+Yi.mergeRequest+"}\nother {"+Yi.mergeRequest_pl+"}}",_N_member:"{n} {n, plural, =0 {"+Yi.member+"}\n=1 {"+Yi.member+"}\nother {"+Yi.member_pl+"}}"}),nn=Object(y.a)(Object(y.a)({},rn),{},{__namespace__:"label"}),sn=Object(y.a)(Object(y.a)({},{"mergeRequest:create":"{user} \u6253\u5f00\u4e86\u548c\u5e76\u8bf7\u6c42: !{number} {title}","mergeRequest:close":"{user} \u5173\u95ed\u4e86\u548c\u5e76\u8bf7\u6c42: !{number} {title}","mergeRequest:merge":"{user} \u5408\u5e76\u4e86\u548c\u5e76\u8bf7\u6c42: !{number} {title}","mergeRequestReviewer:create":"{user} \u6307\u5b9a\u4f60\u4e3a\u5408\u5e76\u8bf7\u6c42 !{number} {title} \u7684\u8bc4\u5ba1\u5458","mergeRequestReviewer:review":"{user} \u901a\u8fc7\u4e86\u548c\u5e76\u8bf7\u6c42 !{number} {title} \u7684\u8bc4\u5ba1"}),{},{__namespace__:"notification"}),on=Object(y.a)(Object(y.a)({},{Added:"Added",created:"Created",updated:"Updated",removed:"Removed",deleted:"Deleted",copied:"Copied",merged:"Merged",opened:"Opened",closed:"Closed",binded:"Binded",unbinded:"Unbinded",verified:"Verified",approved:"Approved",enabled:"Enabled",disabled:"Disabled",reseted:"reseted",createPersonalGroupNotice:"At Least One Group is Required",emailCodeHasSendNewEmail:"A E-mail Contains Validation Code Has Sent To Your E-mail Box",phoneCodeHasSendNewPhone:"A Text Message Contains Validation Code Has Sent To Your Cellphone",finishIdentityVerify:"Input Password To Verify Your Identity",unbindEnterCodeFeverPassword:"Input Password To Confirm",scanQrcodeBind:"Scan QR Code To Bind Your Account By Using WeChat App",theAccountUsedWechat_N:'This Account Has Binded Account Named "{n}", Are Your Confirm To Substitute It?',rebindWechat:"Cancel",unbindAllProduct:"Unbind All Pgyer's Products",mfaGuide:"Use Apps with MFA Feature to Scan the Following QRCode, Input Two Different MFA Code And Press Save Button to Setup a New MFA Device. You Can Search MFA in Any App Merket to Download a MFA App You Trusted in.",inputEmailToAddMemeber:"Input Email To Add A Member",groupMemberCanControlRepositoryNotice:"Members In Group Can Also Access This Repositoy Using Same Role Privilige In Group",repositoryChangeCreatorNotice:"Sure To Change Creator ? Both New And Old Creator Will Be Owner Of This Repository",repositoryChangeURLNotice:"Sure To Change URL ? Both Git Client And Web Wiil Not Respond For Old URL, You May Wish To Reset Remote Via git remote Command",repositoryDeleteRepositoryNotice:"Sure To Delete This Repositoy ? Your Repository Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.",repositoryDeleteRepositoryConfirmNotice:"This Repository Will Be Deleted, Are You Sure About This ? Your Repository Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.",groupChangeCreatorNotice:"Sure To Change Creator ? Both New And Old Creator Will Be Owner Of This Repository, Notice That You Can Not Change Creator Of Default Group",groupChangeURLNotice:"Sure To Change URL ? Both Git Client And Web Wiil Not Respond For Old URL, You May Wish To Reset Remote Via git remote Command",groupDeleteRepositoryNotice:"Sure To Delete This Group ? Your Group And Related Repositoies Will NOT BE AVAILABLE Any More, All Record Related To This Group Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.",groupDeleteRepositoryConfirmNotice:"This Group Will Be Deleted, Are You Sure About This ? Your Group And Related Repositoies Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.",inputCommitFilter:"Input To Filter",repositoryEmpty:"Empty Repository",displaySource:"View Source",displayRendereFile:"View Rendered",fileContentEmpty:"Empty File",fileContentOversize:"File Size Exceed limitation, Check It Out Localy",fileTypeNotSupport:"Binary File Can Not Shown",diffFileToMany:" The maximum number of files allowed to be displayed is exceeded, please check locally",createNewRepository:"create a new repository on the command line",pushRepository:"push an existing repository from the command line",_S_empty:"Please Input {s}",repository_S_empty:"No {s} In Repository",repositoryBranchEmpty:"Branch List Empty",repositoryTagEmpty:"Tag List Empty",mergeRequestEmpty:"Empty Merge Request List",addNewCommit:"Add New Commit",alreadyMergeRequest:"Merged",alreadyCloseRequest:"Close",assignReviewerTitle:"Assigne Reviewer(Only One Person Can Be Assigned)",selectReviewer:"Select Reviewer",notSelectReviewers:"No Assign Reviewer",deleteReviewer:"Delete Reviewer",notApprove:"Not Approve",assign_N_M_Reviewer:"Assign {n} As A Reviewer For Merge Request {m}",delete_M_N_Reviewer:"Removed Reviewer {n} Of Merge Request {m}",review_M_Reviewer:"Approve Changes Of Merge Request {m}",_S_listEmpty:"Empty {s} List",repositoryListEmptyNotice:"Create A Repositoy To Explore",groupListEmptyNotice:"Create A Group To Manage Your Repositories",input_S_name:"Input {s} To Filter",confirmDelete:"Delteing {s}?",jumpWithLink:"Go To This Link",noRepositoryFind:"No view permission",noCommitRecord:"No Commit Record",plsInputInvitedEmail:"Input E-mail to Invite",repositoryDeleteTipFirst:"All Recored Related To This Repositoy Will Also Be DELTED, Include Source, Merge Request Record etc.",repositoryDeleteTipSecond:"A Delted Repository CAN NOT Recover!",inputMergeCommit:"Input Commit Message, Check Squash When Needed.",selectDifferentBranch:"Can Not Merge INTO Source Itself",mergeConflictTitle:"Conflict Found In Merge Progeress, Follows Instructions Below To Resolve Conflict Localy ",mergeConflictTip1:"1: Pull Target Branch To Local",mergeConflictTip2:"2: Check File Diff",mergeConflictTip3:"3: Resolve Conflicts And Merge",mergeConflictTip4:"4 : Push Changes To Remote",from_S_Merge_S:"Request Merge From {s1} To {s2}",defaultGroupReqiured:"A Group Is Required",defaultGroupReqiuredDescription:"At Least One Group Is Required To Create Repository",someVersion:"Related Version",backHome:"Homepage",inputSSHKEYContent:"Please Enter The SSH Key",inputSSHKEYName:"Please Enter SSH Key Name",defaultBranchDescription:"The Default Branch Is Regarded As The Basic Branch In The Code Base And Is The Target Branch For All Clones, Code Submissions, And Merge Requests",settingToDefaultBranch:"Set As Default Branch",updateDefaultBranch:"Modify The Default Branch",settingDefaultBranch:"Please Set The Default Branch",protectedBranchDescription:"Protecting Branches Will Ensure Branch Security, And Roles Other Than Owner Are Not Allowed To Be Pushed And Deleted Forcibly",protectedBranchRuleEmpty:"There Are No Protection Branch Rules At Present, Please Create A New Protection Branch Rule To Protect Branch Safety",inputBranchOrRegexp:"Please Enter The Branch Name or Universal Rules",createProtectedBranchRule:"New Protection Branch Rule",updateProtectedBranchRule:"Modify Protection Branch Rule",deleteProtectedBranchRule:"Delete Protection Branch Rule",noBodyAllow:"Nobody",primaryEmail:"Primary E-mail",primaryEmailDescription:"The Email Address Of The Current CodeFever Account, Used To Receive Relevant Notifications, Password Reset, Login And Other Operations",updatePrimaryEmail:"Change Primary E-mail",myEmail:"My E-mail",myEmailDescription:"Multi-mailbox Function Is Used For The Same User To Have Multiple Different Mailboxes For Code Submission, The System Can Identify And Create An Association Relationship",addEmail:"Add E-mail",contactedEmail:"Mailbox Linked",shouldValidation:"To Be Verified",resendEmail:"Resend Mail",differenceBetweenHTTPSAndSSH:"HTTPS or SSH, Which one should I choose ?",generateAndSetSSHKey:"Please Confirm The SSH Key Has Been Generated And Set Porperly On CodeFever.",itsMyEmail:"It's My Email",notificationSystem:"System Message",notificationMention:"Mentioned Me",tagRead:"Mark As Read",tagAllRead:"Mark All As Read",deleteAllReaded:"Delete All Read User Messages",mergeRequestNotification:"Notification Of Merge Request",mergeRequestNotificationDesc:"Can Receive And Request Notifications Issued By Warehouse Members, Developers And Above Members Can Receive",emailNotification:"E-mail notification",emailNotificationDesc:"The Message In The Notification Settings Will Be Sent To Your Registered Mailbox.",searchByName:"Search by name or email",userStatusEnabled:"Enable confirmation",userStatusDisabled:"Disable confirmation",userStatusEnabled_N:'Confirm to enable user "{n}"?',userStatusDisabled_N:'Confirm to disable user "{n}"?',closeMFA:"Turn off 2FA certification",closeMFAConfirm:"Close 2FA authentication confirmation",closeMFA_N:'Are you sure to turn off 2FA authentication for user "{n}"?',resetPassword:"Reset Password",reset_N_Password:'Reset user "{n}" password',searchRepository:"Search repository",searchGroup:"Sreach group",roleToOwner:"Designated as owner",setGroupOwner_S:"Are you sure to specify {s} as the owner of the group?",setAdministrator:"Set as administrator",cancelAdministrator:"Cancel an administrator",memberRemoveConfirm:"Member delete confirmation",successAddUser:"User added successfully",webhookEventsNeed:"Please select events",webhookListEmpty:"Webhook List Empty",useTime_n:"Completed in {n} seconds",show_n_record:"Show latest {n} records"}),{},{__namespace__:"message"}),cn=Object(y.a)(Object(y.a)({},{_S_empty:"Please Input {s}",_S_retype:"Please Retype {s}",_S_has_illegal_character:"Only Combination of Alphanumeric '_' '-' '.' Allowed in {s}",_S_notChoose:"Please Choose {s}",_S_duplicate:"{s} Duplicated",_S_invalid:"{s} Invalid",_S_notFound:"{s} Not Found",noMoreThan_N_characters:"No More{n} Characters",within_N1_to_N2_characters:"Between {n1} to {n2} Characters",only_N1_or_N2_characters:"Only {n1} Or {n2} Characters Allowed",requireCombinationOfCharactersNumbersAndUnderscore:"Only Combination Of Numberic, Underscore And Character Allowd",input_S_placeholder:"Please Input {s}, Only Numberic, Underscore, strike, dot And Character Allowed",inputNotSame:"Doesn't Match The Retype Field",inputSame:"Same Input",canNotAddCreatorAsMember:"Can Not Add Creator As Member",createRepositoryFail:"Create Repository Fail, Please Retry Later",createGroupFail:"Create Group Fail, Please Retry Later",createBranchFail:"Create Branch Fail, Please Retry Later",createTagFail:"Create Tags Fail, Please Retry Later",createMergeRequestFail:"Create Merge Request Fail, Please Retry Later",createProtectedBrancheRuleFail:"Failed To Create Protection Branch Rule, Please Retry Later",AddFail:"Fail To Add, Please Retry Later",updateFail:"Fail To Update, Please Retry Later",removeFail:"Fail To Remove, Please Retry Later",deleteFail:"Fail To Delete, Please Retry Later",verifyFail:"Fail To Verify, Please Retry Later",forkRepositoryFail:"Fail To Fork, Please Retry Later",getFileFail:"Fail To Get File Content, Please Retry Later",getEmailCodeFail:"Fail To Get Email Validation Code, Please Retry Later",getPhoneCodeFail:"Fail To Get Phone Number Validation Code, Please Retry Later",change_S_Fail:"Fail To Update {s}, Please Retry Later",waitToRetry:"Connection Down, Please Retry Later",canNotChangeOwnerOfUserGroup:"Creator Of Default Group CAN NOT Be Modified",canNotDeleteUserGroup:"Default Group CAN NOT Be Deleted",canNotDeleteNonEmptyGroup:"Group CAN NOT Be Deleted When Contains Repository",mergeRequestExists:"Same Merge Request Exsits",mergeFail:"Fail To Merge, Please Retry Later",reviewedCanNotAssign:"Can\u2019t Replace The Reviewer",reviewedCanNotDelete:"Cannot Delete Reviewers Who Have Reviewed The Code",branchProteced:"Can Not Perform Merge On Proteced Branch",userNotReview:"Cannot Be Merged, And The Reviewers Have Not Reviewed",inputNewEmail:"Input New Email",bindEmailFirst:"An Login Email Is Required When Bind Account Of Other Platform",wechatHasbound:"This Account Has Been Used, Please Select Another Account And Retry",sshKeyDuplicate:"This SSH Key has already been added, or in another user"}),{},{__namespace__:"message.error"}),ln=Object(y.a)(Object(y.a)({},{createdGroup:"Create A Group",updateGroup_S_Avator:"Update Avatar Of Group {s}",updateGroup_S_Name:"Update Name Of Group {s}",updateGroup_S_Description:"Update Description Of Group {s}",addGroup_S_Memeber:"Add New Member To Group {s}",changeGroup_S_MemebrRole:"Update Role Of A Member In Group {s}",removeGroup_S_Memebr:"Remove A Member In Group {s}",setGroup_S_Creator:"Set A Member As Creator Of Group {s}",setGroup_S_URL:"Change URL Of Group {s}",createdRepository:"Create A Repository",deleteRepository:"Delete A Repository",forkRepository:"Frok And Create A Repository",updateRepository_S_Avator:"Update Avatar Of Repository {s}",updateRepository_S_Name:"Update Name Of Repository {s}",updateRepository_S_Description:"Update Description Of Repository {s}",pushTo_S_Branch:"Push Commits To Repository {s}",pushTo_S_NewBranch:"Push Branches To Repository {s}",created_S_NewBranch:"Add Branch In Repository {s}",delete_S_Branch:"Delete Branche In Repository {s}",update_S_DefaultBranch:"Modified The Default Branch Of Repository {s}",created_S_ProtectedBranchRule:"Create Protection Branch Rule in Repository {s}",update_S_ProtectedBranchRule:"Modified The Protection Branch Rule Of Repository {s}",delete_S_ProtectedBranchRule:"Removed Protection Branch Rule For Repository {s}",pushTo_S_Tag:"Push Commits To A Tag Of Repository {s}",pushTo_S_NewTag:"Push Tags To Repository {s}",created_S_NewTag:"Create A Tag In Repository {s}",delete_S_Tag:"Delete A Tag In Repository {s}",addRepository_S_Memeber:"Add A Member To Repository {s}",changeRepository_S_MemebrRole:"Set Role To A Memebre In Repository {s}",removeRepository_S_Memebr:"Remove Members in Repository {s}",setRepository_S_Creator:"Set A Member As Creator Of Repository {s}",setRepository_S_URL:"Change URL Of Repository {s}",open_S_MergeRquest:"Open A Merge Request In Repository {s}",close_S_MergeRquest:"Close A Merge Request In Repository {s}",merge_S_MergeRquest:"Merged A Merge Request In Repository {s}",assign_S_Reviewer:"Assign Reviewer In Repository {s}",delete_S_Reviewer:"Delete Reviewer In Repository {s}",review_S_Reviewer:"Approve Changes In Repository {s}",create_S_Webhook:"Create Webhook In Repository {s}",update_S_Webhook:"Update Webhook In Repository {s}",delete_S_Webhook:"Delete Webhook In Repository {s}"}),{},{__namespace__:"message.activity"}),pn=Object(y.a)(Object(y.a)({},{repository:"Repository",repository_pl:"Repositories",group:"Group",group_pl:"Groups",file:"File",file_pl:"Files",commit:"Commit",commit_pl:"Commits",mergeRequest:"Merge Request",mergeRequest_pl:"Merge Requests",branch:"Branch",branch_pl:"Branches",webhook:"Webhook",webhook_pl:"Webhooks",tag:"Tag",tag_pl:"Tags",member:"Member",member_pl:"Members",activity:"Activity",activity_pl:"Activities",setting:"Setting",setting_pl:"Settings",SSHKey:"SSH Key",SSHKey_pl:"SSH Keys",user:"User",user_pl:"Users",fileTree:"File Tree",merge:"Merge",data:"Data",clone:"Clone",fork:"Fork",limitation:"Limitation",role:"Role",team:"Team",code:"Source",hash:"Hash",time:"Time",number:"Count",line:"Line",guest:"Guest",reporter:"Reporter",developer:"Developer",maintianer:"Maintainer",owner:"Owner",parentNode:"Parent Node"}),{},{__namespace__:"term"}),dn=Object(y.a)(Object(y.a)({},pn),{},{CodeFever:"CodeFever",ID:"ID",user:"User",name:"Name",creator:"Creator",reviewer:"Reviewer",administrator:"Administrator",title:"Title",description:"Description",origin:"Origin",source:"Source",target:"Target",url:"URL",ssh:"SSH",slug:"Slug",prefix:"Prefix",avatar:"Avatar",icon:"Icon",joinedAt:"Joined In",unknown:"Unknown",all:"All",detail:"Detail",language:"Language",webhook:"Webhook",log:"Log",httpHeaders:"Headers",httpBody:"Body",httpPayload:"Payload",browser:"View",expand:"Expand",full:"Full",invite:"Invite",times:"Times",before:"Before",new:"New",add:"Add",open:"Open",close:"Close",save:"Save",create:"Create",update:"Update",remove:"Remove",modification:"Modify",delete:"Delete",and:"And",ok:"OK",cancel:"Cancel",copy:"Copy",push:"Push",merge:"Merge",chose:"Choose",show:"Show",list:"List",copied:"Copied",contain:"Contain",request:"Request",response:"Response",bind:"Bind",unbind:"Unbind",replace:"Replace",sort:"Sort",manage:"Manage",protected:"Protected",operating:"Operating",approve:"Approve",enable:"Enable",disable:"Disable",last:"Latest",default:"Default",active:"Active",inactive:"Inactive",path:"Path",email:"E-mail",password:"Password",oldPassword:"Current Password",newPassword:"New Password",mfaCode:"MFA Code",twoFactorAuthentication:"Two-Factor Authentication",emailCode:"Validation Code",phoneCode:"Validation Code",phone:"Cellphone",china:"China",company:"Company",job:"Job",wechat:"Wechat",credential:"Credential",login:"Sign In",logout:"Sign Out",next:"Next",prev:"Previous",mergeMessage:"Merge Message",submit:"Submit",rule:"Rule",allow:"Allow",status:"Status",history:"History",notification:"Notification",learnMore:"Learn More",myServiceTicket:"My Service Tickets",getHelp:"Get Help",help:"Help",result:"Result",success:"Success",failure:"Failure",doc:"DOC",adminArea:"Admin Area",edit:"Edit",confirm:"Confirm"}),un=Object(y.a)(Object(y.a)({},dn),{},{__namespace__:"phrase"}),mn=Object(y.a)(Object(y.a)(Object(y.a)({},pn),un),{},{dashboard:"Dashboard",general:"General",advanced:"Advanced",profile:"Profile",mail:"E-mails"}),hn=Object(y.a)(Object(y.a)({},mn),{},{__namespace__:"menu"}),gn=" ",bn=Object(y.a)(Object(y.a)(Object(y.a)({},un),pn),{},{update_S_:"Modify {s}",retryAfter_N_seconds:"Retry After {n} Seconds",userAvatar:[un.user,un.avatar].join(gn),userName:[un.user,un.name].join(gn),getEmailCode:["Get",un.emailCode].join(gn),getPhoneCode:["Get",un.phoneCode].join(gn),mostSeen:"Most Seen",loginCredential:[un.login,un.credential].join(gn),CodeFeverPassword:[un.CodeFever,un.password].join(gn),wechatBind:[un.wechat,un.bind].join(gn),unbind_P:"Unbind {p}",repositoryID:[pn.repository,un.ID].join(gn),repositoryName:[pn.repository,un.name].join(gn),repositoryDescription:[pn.repository,un.description].join(gn),repositoryURL:[pn.repository,un.url].join(gn),repositorySlug:[pn.repository,un.slug].join(gn),repositoryMember:[pn.repository,pn.member].join(gn),newRepository:[un.new,pn.repository].join(gn),forkRepository:[pn.fork,pn.repository].join(gn),unknownRepository:[un.unknown,pn.repository].join(gn),allRepository:[un.all,pn.repository].join(gn),deleteRepository:[un.delete,pn.repository].join(gn),groupID:[pn.group,un.ID].join(gn),groupName:[pn.group,un.name].join(gn),groupDescription:[pn.group,un.description].join(gn),groupURL:[pn.group,un.url].join(gn),groupSlug:[pn.repository,un.slug].join(gn),groupMember:[pn.group,pn.member].join(gn),newGroup:[un.new,pn.group].join(gn),unknownGroup:[un.unknown,pn.group].join(gn),deleteGroup:[un.delete,pn.group].join(gn),inviteMember:[un.invite,pn.member].join(gn),removeMember:[un.remove,pn.member].join(gn),forkFrom_S:[pn.fork,"From: {s}"].join(gn),updateFrom_S1_To_S2:["Update From {s1} To {s2}"].join(gn),repositoryAvatar:[pn.repository,un.icon].join(gn),groupAvatar:[pn.group,un.icon].join(gn),basicInfo:"Basic Info",newPasswordConfirm:[un.confirm,un.newPassword].join(gn),security:"Security",setupNewMFADevice:"Setup New MFA Device",changeMFADevice:"Change MFA Device",removeMFADevice:"Remove MFA Device",mfaCode1:["First",un.mfaCode].join(gn),mfaCode2:["Second",un.mfaCode].join(gn),commitTime:[un.commit,un.time].join(gn),copyPath:[un.copy,un.path].join(gn),copyHash:[un.copy,pn.hash].join(gn),copyCode:[un.copy,pn.code].join(gn),lastCommit:[un.last,pn.commit].join(gn),lastUpdate:[un.last,un.update].join(gn),updateCreator:[un.update,un.creator].join(gn),updateRepositoryURL:[un.update,pn.repository,un.url].join(gn),updateGroupURL:[un.update,pn.group,un.url].join(gn),webhookSetting:[pn.webhook,pn.setting].join(gn),createWebhook:[un.create,pn.webhook].join(gn),updateWebhook:[un.update,pn.webhook].join(gn),deleteWebhook:[un.delete,pn.webhook].join(gn),contentType:"Content Type",webhookSecret:"Secret Key",webhookTrigger:"Trigger Event",pushTrigger:"Just the push event",customeTrigger:"Customized",webhookList:"Webhook List",webhookLog:[un.webhook,un.log].join(gn),createOrigin:[un.create,un.origin].join(gn),choseCreateOrigin:[un.chose,un.create,un.origin].join(gn),tagDescription:[pn.tag,un.description].join(gn),tagName:[pn.tag,un.name].join(gn),branchName:[pn.branch,un.name].join(gn),defaultBranch:[un.default,pn.branch].join(gn),protectedBranch:[un.protected,pn.branch].join(gn),branchRule:[un.branch,un.rule].join(gn),allowPush:[un.allow,un.push].join(gn),allowMerge:[un.allow,un.merge].join(gn),noData:["No",pn.data].join(gn),newBranch:[un.new,pn.branch].join(gn),newTag:[un.new,pn.tag].join(gn),deleteBranch:[un.delete,pn.branch].join(gn),deleteTag:[un.delete,pn.tag].join(gn),updateTime:[un.update,pn.time].join(gn),updatedIn:"Updated At",editIn:"Edited At",expandFullFile:[un.expand,un.full,un.file].join(gn),showDiffOnly:"Show Diff",codeDiff:"Diff",requestCreated:"Created At",requestClosed:"Closed At",requestMerged:"Merged At",createRepository:["Please",un.create,pn.repository].join(gn),commitActivity:[pn.commit,un.activity].join(gn),mergeRequestActivity:[pn.mergeRequest,un.activity].join(gn),memberActivity:[pn.member,un.activity].join(gn),addSSHKey:[un.add,pn.SSHKey].join(gn),emailManage:[un.email,un.manage].join(gn),memberManage:[pn.member,un.manage].join(gn),primaryEmail:"Primary E-mail",contactEmail:"List Of Associated Mailboxes",SSHKeyManage:[pn.SSHKey_pl,un.manage].join(gn),notificationCenter:"Notification Center",notificationReceiveStatus:"Receive Notification Status",unread:"Unread",fileModification:[pn.file,un.modification].join(gn),fileModificationList:[un.modification,pn.file,un.list].join(gn),lineAdd:[pn.line,un.add].join(gn),lineDelete:[pn.line,un.delete].join(gn),browserFile:[un.browser,un.file].join(gn),browserUnchangedFIle:[un.browser,un.modification,un.before,un.file].join(gn),commitHash:[pn.commit,pn.hash].join(gn),allFiles:[un.all,un.file].join(gn),openFileTree:[un.open,pn.fileTree].join(gn),closeFileTree:[un.close,pn.fileTree].join(gn),requestMerge:[un.request,un.merge].join(gn),createMergeRequest:[un.create,pn.mergeRequest].join(gn),closeMergeRequest:[un.close,pn.mergeRequest].join(gn),more:"More",noMore:"No More",processing:"Processing",IJoined:"Joined",ICreated:"Created By Me",dangerOperation:"Dangerous Action",dangerOperationConfirm:"Confirm Dangerous Action",compareBranch:"Compare and Continue",lastModified:"Last Modified",lastModified_N:"{n}{n, plural, =1 {st}\n=2 {nd}\n=3 {rd}\nother {th}} Revision",openMergeRequest:[un.open,pn.mergeRequest].join(gn),modificationBranch:[un.modification,pn.branch].join(gn),sourceBranch:[un.source,pn.branch].join(gn),targetBranch:[un.target,pn.branch].join(gn),repositoryAdvancedSetting:"Repository Advanced Settings",branchSetting:"Branch Settings",groupAdvancedSetting:"Group Advanced Settings",memberLimitation:[pn.member,pn.limitation].join(gn),modificationLimitation:[un.modification,pn.limitation].join(gn),roleID_1:pn.guest,roleID_2:pn.reporter,roleID_3:pn.developer,roleID_4:pn.maintianer,roleID_5:pn.owner,yourself:"It's you",enabledMFA:"2FA Enabled",disabledMFA:"2FA Disabled",blocked:"Blocked",createTime:"Created Time",addUser:"Add user",statistic:"Statistic",systemResources:"System Resources",diskUsgae:"Disk Usgae",serviceStatus:"Service Status",host:"Host",senderName:"Sender Name",senderAddress:"Sender Email Address",register:"Register",allowRegister:"Allow Register",urlPrefix:[un.url,un.prefix].join(gn),sshPrefix:[un.ssh,un.prefix].join(gn),support:"Technical Support",feedback:"Submit Feedback",contribute:"Contribute to CodeFever Community",about:"About CodeFever Community",pushEvent:"Push Event",changeMemberRole:[un.modification,pn.member,pn.role].join(gn),createProtectedBranchRule:"Create protected branch rule",changeProtectedBranchRule:"Update protected branch rule",removeProtectedBranchRule:"remove protected branch rule",reviewReviewer:"Review Code",_N_repository:"{n} {n, plural, =0 {"+pn.repository+"}\n=1 {"+pn.repository+"}\nother {"+pn.repository_pl+"}}",_N_commit:"{n} {n, plural, =0 {"+pn.commit+"}\n=1 {"+pn.commit+"}\nother {"+pn.commit_pl+"}}",_N_branch:"{n} {n, plural, =0 {"+pn.branch+"}\n=1 {"+pn.branch+"}\nother {"+pn.branch_pl+"}}",_N_tag:"{n} {n, plural, =0 {"+pn.tag+"}\n=1 {"+pn.tag+"}\nother {"+pn.tag_pl+"}}",_N_byte:"{n} {n, plural, =0 {Byte}\n=1 {Byte}\nother {Bytes}}",_N_mergeRequest:"{n} {n, plural, =0 {"+pn.mergeRequest+"}\n=1 {"+pn.mergeRequest+"}\nother {"+pn.mergeRequest_pl+"}}",_N_member:"{n} {n, plural, =0 {"+pn.member+"}\n=1 {"+pn.member+"}\nother {"+pn.member_pl+"}}"}),fn=Object(y.a)(Object(y.a)({},bn),{},{__namespace__:"label"}),jn=Object(y.a)(Object(y.a)({},{"mergeRequest:create":"{user} Open Merge Request: !{number} {title}","mergeRequest:close":"{user} Close Merge Request: !{number} {title}","mergeRequest:merge":"{user} Merge The Merge Request: !{number} {title}","mergeRequestReviewer:create":"{user} Assign You As The Reviewer For The Merge Request !{number} {title}","mergeRequestReviewer:review":"{user} Approve Changes Of Merge Request !{number} {title} "}),{},{__namespace__:"notification"});function vn(e){switch(e){case"zh-cn":return V(Ji,Ki,Zi,$i,Yi,Qi,tn,nn,sn);case"en-us":return V(Ji,on,ln,cn,pn,un,hn,fn,jn)}}var On=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props.currentLanguage,t=Object(b.a)({}),a=Object(b.a)(S(t));return Object(oe.jsx)(f.a,{theme:a,children:Object(oe.jsx)(v.a,{utils:j.a,locale:O.a,children:Object(oe.jsx)(g.a,{locale:e,messages:vn(e),children:Object(oe.jsxs)("div",{className:"app-root",children:[Object(oe.jsx)(Fi,{}),Object(oe.jsxs)("div",{className:"app-content",ref:this.appContent,children:[Object(oe.jsx)(Mi,{}),Object(oe.jsx)(bi,{}),Object(oe.jsx)(qi,{}),Object(oe.jsx)(Vi,{}),Object(oe.jsx)(Gi,{})]})]})})})})}}]),a}(i.a.Component),yn=Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}))(On),xn=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){return Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/",component:yn}),Object(oe.jsx)(h.a,{exact:!0,path:"/userInfo",component:yn}),Object(oe.jsx)(h.a,{exact:!0,path:"/createApp",component:yn}),Object(oe.jsx)(h.a,{path:"/groups/:groupName([A-Za-z0-9_]{5,})",component:yn}),Object(oe.jsx)(h.a,{path:"/groups",component:yn}),Object(oe.jsx)(h.a,{path:"/repositories",component:yn}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",component:yn}),Object(oe.jsx)(h.a,{path:"/mergerequests",component:yn}),Object(oe.jsx)(h.a,{path:"/settings",component:yn}),Object(oe.jsx)(h.a,{path:"/admin",component:yn})]})}}]),a}(i.a.Component),Sn=Object(h.f)(xn);var Cn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;e.repositoryList=G(e.repositoryList,[]),e.repositoryListPending=G(e.repositoryListPending,!0),e.groupList=G(e.groupList,[]),e.groupListPending=G(e.groupListPending,!0),e.currentRepositoryKey=G(e.currentRepositoryKey,""),e.currentRepositoryError=G(e.currentRepositoryError,!1),e.currentRepositoryConfig=G(e.currentRepositoryConfig,{}),e.currentGroupKey=G(e.currentGroupKey,""),e.currentGroupConfig=G(e.currentGroupConfig,{}),e.currentUserInfo=G(e.currentUserInfo,{});var a=window.localStorage.getItem("lang");return a||(a=navigator.language.toLowerCase()||navigator.userLanguage.toLowerCase(),["zh-cn","en-us"].indexOf(a)<0&&(a="zh-cn"),window.localStorage.setItem("lang",a),e.currentLanguage=a),e.currentLanguage=G(e.currentLanguage,a),t.type.match(/^data\./)?("data.repositoryList.update"===t.type?(e.repositoryList=t.data,e.repositoryListPending=!1):"data.groupList.update"===t.type?(e.groupList=t.data,e.groupListPending=!1):"data.currentRepositoryKey.update"===t.type?e.currentRepositoryKey=t.data:"data.currentRepositoryError.update"===t.type?e.currentRepositoryError=t.data:"data.currentRepositoryConfig.update"===t.type?e.currentRepositoryConfig=t.data:"data.currentGroupKey.update"===t.type?e.currentGroupKey=t.data:"data.currentGroupConfig.update"===t.type?e.currentGroupConfig=t.data:"data.currentUserInfo.update"===t.type?e.currentUserInfo=t.data:"data.currentLanguage.update"===t.type&&(e.currentLanguage=t.data,window.localStorage.setItem("lang",t.data)),Object(y.a)({},e)):Object(y.a)({},e)};var Nn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return e.expandStatus=G(e.expandStatus,!0),t.type.match(/^drawer\./)?("drawer.expandStatus.toggle"===t.type?e.expandStatus=!e.expandStatus:"drawer.expandStatus.close"===t.type?e.expandStatus=!1:"drawer.expandStatus.open"===t.type&&(e.expandStatus=!0),Object(y.a)({},e)):Object(y.a)({},e)};var Rn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(e.notificationCount=G(e.notificationCount,0),e.notificationBody=G(e.notificationBody,{}),e.askHandleStatus=G(e.askHandleStatus,!1),e.confirmation=G(e.confirmation,{open:!1,title:"",description:"",accept:function(){},reject:function(){},queueList:[],eventCount:0}),e.notificationOpenStatus=G(e.notificationOpenStatus,!1),!t.type.match(/^notification\./))return Object(y.a)({},e);if("notification.message.add"===t.type?(e.notificationCount++,e.notificationBody=t.data):"notification.message.change"===t.type?e.notificationBody=t.data={}:"notification.askhandle.status"===t.type&&(e.askHandleStatus=t.data),"notification.confirmation.popup"===t.type?(e.confirmation.open=!0,e.confirmation.title=t.data.title,e.confirmation.description=t.data.description,e.confirmation.accept=t.data.accept||function(){return!0},e.confirmation.reject=t.data.reject||function(){return!0}):"notification.confirmation.close"===t.type&&(e.confirmation.eventCount++,e.confirmation.open=!1,e.confirmation.accept=function(){return!0},e.confirmation.reject=function(){return!0}),"notification.confirmation.add"===t.type)e.confirmation.eventCount++,e.confirmation.queueList.push(t.data);else if("notification.confirmation.remove"===t.type){e.confirmation.eventCount++;var a=q(e.confirmation.queueList,"key",t.data.key);"number"===typeof a&&delete e.confirmation.queueList[a]}else if("notification.confirmation.consume"===t.type&&e.confirmation.queueList.length&&!e.confirmation.open){e.confirmation.eventCount++;var r=e.confirmation.queueList.shift();e.confirmation.open=!0,e.confirmation.title=r.data.title,e.confirmation.description=r.data.description,e.confirmation.accept=r.data.accept||function(){return!0},e.confirmation.reject=r.data.reject||function(){return!0}}return"notification.notificationOpenStatus.toggle"===t.type?e.notificationOpenStatus=!e.notificationOpenStatus:"notification.notificationOpenStatus.open"===t.type?e.notificationOpenStatus=!0:"notification.notificationOpenStatus.close"===t.type&&(e.notificationOpenStatus=!1),Object(y.a)(Object(y.a)({},e),{},{confirmation:Object(y.a)(Object(y.a)({},e.confirmation),{},{queueList:Object(T.a)(e.confirmation.queueList)})})},Mn=Object(c.a)({DataStore:Cn,DrawerStates:Nn,NotificationStates:Rn}),wn=Object(c.b)(Mn);s.a.render(Object(oe.jsx)(l.a,{store:wn,children:Object(oe.jsx)(o.a,{basename:"/",children:Object(oe.jsx)(Sn,{})})}),document.getElementById("root"))}})); -//# sourceMappingURL=main.04fdcbff.js.map \ No newline at end of file +!function(e,t){for(var a in t)e[a]=t[a]}(window,function(e){function t(t){for(var r,s,o=t[0],c=t[1],l=t[2],d=0,u=[];d-1}},name:function(e){return function(t){return e===t.name}},names:function(e){return function(t){return e.some((function(e){return e===t.name}))}},group:function(e){return function(t){return e===t.group.id}},groups:function(e){return function(t){return e.some((function(e){return e===t.group.id}))}},groupMember:function(){return function(e){return e.groupMember}},notGroupMember:function(){return function(e){return!e.groupMember}},deleted:function(){return function(e){return e.deleteFlag}},notDeleted:function(){return function(e){return!e.deleteFlag}},fork:function(e){return function(t){return e===t.forkFrom}},forks:function(e){return function(t){return e.some((function(e){return e===t.forkFrom}))}},nameLikes:function(e){return function(t){return t.name.indexOf(e)>-1}},search:function(e,t){return function(a){return t.reduce((function(t,r){return t||a[r].toLowerCase().indexOf(e.toLowerCase())>-1}),!1)}},creator:function(e){return function(t){return e===t.owner}},creators:function(e){return function(t){return e.some((function(e){return e===t.owner}))}},withPermission:function(e){return function(t){return K(t.role,e)}},withPermissions:function(e){return function(t){return e.some((function(e){return K(t.role,e)}))}},groupName:function(e){return function(t){return e===t.group.name}},target:function(e){return function(t){return e===t.target}}};function G(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return void 0===e?t:e}function H(e){var t=new window.FormData;for(var a in e)if("object"!==typeof e[a]||a.match(/_(SAFE|BINARY)$/))t.append(a.replace(/_(SAFE|BINARY)$/,""),e[a]);else for(var r in e[a])"number"===typeof e[a].length?t.append(a+"[]",e[a][r]):t.append(a+"["+r+"]",e[a][r]);return t}function q(e,t,a){for(var r=0;rNumber.MAX_VALUE)return NaN;if("%"===t)e*=100;else for(;e>=1e3;)e/=1e3,a++;return a?(Math.round(10*e)/10+" "+["","k","M","G","T","P"][a]).trim()+(t||""):(t=t?" "+t:"",Math.round(100*e)/100+(t||""))}function W(){return"/"+[].slice.call(arguments).join("/")}function V(){for(var e={},t=0;t-1}function $(e){var t=e&&e.split(".").pop().toLowerCase();return t&&D.codeFileExtentsions[t]||"markdown"}function Z(e,t){var a=e?e.filter(U.indexOfEmails(t)):[];return a.length?a[0]:{temporary:!0,name:t,email:t,icon:""}}function Y(e){if(e.branches&&e.branches.length){var t=e.branches.filter(U.id(e.repository.defaultBranch));return t[0]?t[0].id:e.branches[0].id}return""}function X(e,t,a){window.setTimeout((function(){var r=window.document.createElement("textarea");r.innerHTML=e,a?a.appendChild(r):window.document.body.appendChild(r),r.select(),document.execCommand("copy"),a?a.removeChild(r):window.document.body.removeChild(r),t&&t()}),0)}function Q(e,t,a,r){r&&(t+="?"+function(e){var t=[];for(var a in e)t.push(a+"="+window.encodeURIComponent(e[a]));return t.join("&")}(r));var i="codefever-app",n=window.localStorage.getItem("lang")||"zh-cn";return a?window.fetch(t,{body:H(a),cache:"no-cache",credentials:"same-origin",headers:{"codefever-end-env":i,"codefever-end-lang":n,Accept:"application/json"},method:e,mode:"same-origin",redirect:"follow",referrer:"client"}):window.fetch(t,{cache:"no-cache",credentials:"same-origin",headers:{"codefever-end-env":i,"codefever-end-lang":n,Accept:"application/json"},method:e,mode:"same-origin",redirect:"follow",referrer:"client"})}var ee={GET:function(e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.requestTime=(new Date).getTime(),Q("GET",e,null,t)},POST:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Q("POST",e,t,a)},PUT:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Q("PUT",e,t,a)},DELETE:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Q("DELETE",e,t,a)},OPTIONS:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Q("OPTIONS",e,t,a)}};var te={getUserInfo:function(){return ee.GET("/api/user/info")},getKeyList:function(){return ee.GET("/api/user/listKey")},addSSHKey:function(e){return ee.POST("/api/user/addSSHKey",e)},removeSSHKey:function(e){return ee.POST("/api/user/removeSSHKey",e)},setUserData:function(e){return ee.POST("/api/user/update",e)},updateBasicInfo:function(e){return ee.POST("/api/user/updateBasicInfo",e)},updatePassword:function(e){return ee.POST("/api/user/updatePassword",e)},changeEmail:function(e){return ee.POST("/api/user/changeEmail",e)},getMFAData:function(){return ee.GET("/api/user/getMFAData")},revokeMFAData:function(){return ee.POST("/api/user/revokeMFAData",{})},updateMFAData:function(e){return ee.POST("/api/user/updateMFAData",e)},getCountriesCode:function(e){return ee.POST("/api/user/getCountriesCode",e)},confirmTel:function(e){return ee.POST("/api/user/confirmTel",e)},uploadAvatar:function(e){return ee.POST("/api/user/uploadAvatar",e)},getCode:function(e){return ee.POST("/api/user/getCode",e)},getEmailCode:function(e){return ee.POST("/api/user/getEmailCode",e)},addCommitEmail:function(e){return ee.POST("/api/user/addCommitEmail",e)},resentCommitEmailCode:function(e){return ee.POST("/api/user/resentCommitEmailCode",e)},deleteCommitEmail:function(e){return ee.POST("/api/user/deleteCommitEmail",e)},validationCommitEmailCode:function(e){return ee.POST("/api/user/validationCommitEmailCode",e)},notifications:function(e){return ee.GET("/api/user/notifications",null,e)},setNotificationRead:function(e){return ee.POST("/api/user/setNotificationRead",e)},deleteNotification:function(e){return ee.POST("/api/user/deleteNotification",e)},userNotificationSetting:function(e){return ee.POST("/api/user/userNotificationSetting",e)},notificationRefused:function(e){return ee.GET("/api/user/notificationRefused",null,e)},setGroupOrRepoNotification:function(e){return ee.POST("/api/user/setGroupOrRepoNotification",e)}};var ae={Event:function(e,t){return{type:e,data:t}},NewNotification:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return{type:"notification.message.add",data:{message:e,level:t,action:a}}},Network:function(e,t){},NewComformation:function(e,t,a,r){return{type:"notification.confirmation.popup",data:{title:e,description:t,accept:a,reject:r}}},consumeComformation:function(){return{type:"notification.confirmation.consume",data:null}},cancelComformation:function(){return{type:"notification.confirmation.close",data:null}},addComformation:function(e,t){return{type:"notification.confirmation.add",data:{key:e,data:t}}},removeComformation:function(e){return{type:"notification.confirmation.remove",data:{key:e}}}};var re=function(e){if("zh-cn"===(window.localStorage.getItem("lang")?window.localStorage.getItem("lang"):navigator.language.toLowerCase()||navigator.userLanguage.toLowerCase())){return{0:"\u64cd\u4f5c\u6210\u529f",256:"\u8bf7\u6c42\u9519\u8bef",257:"\u767b\u5f55\u4fe1\u606f\u5931\u6548, \u9700\u8981\u91cd\u65b0\u767b\u9646",258:null,259:null,260:null,261:"\u8bf7\u6c42\u7684\u5730\u5740\u4e0d\u5b58\u5728",262:"\u6ca1\u6709\u64cd\u4f5c\u6743\u9650",512:"\u8bf7\u6c42\u8d44\u6e90\u4e3a\u7a7a",513:"\u8f93\u5165\u9519\u8bef",514:"\u8f93\u5165\u503c\u8d85\u8fc7\u5141\u8bb8\u8303\u56f4",769:"\u6ca1\u6709\u6b64\u4ed3\u5e93\u7ec4",770:"\u6ca1\u6709\u6b64\u4ed3\u5e93",65280:"\u4e0d\u80fd\u8bc6\u522b\u7684\u54cd\u5e94\u6570\u636e\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5",65281:"\u7f51\u7edc\u94fe\u63a5\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5",65282:"\u8bf7\u6c42\u8fc7\u4e8e\u9891\u7e41\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5"}[e]||null}return{0:"Done",256:"Request Error",257:"Invalid Login",258:null,259:null,260:null,261:"Resource Not Found",262:"Insufficient Permission",512:"Empty Resource",513:"Invalid Input",514:"Input Out of Range",769:"No Such Group",770:"No Such Repository",65280:"Response Data Can Not Be Parsed, Try Later",65281:"Network Error, Try Later",65282:"Too Many Request, Try Later"}[e]||null};function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t&&t({type:"network.connection.error"}),t&&t(ae.NewNotification(re(65281),2)),e}var ne={getJSONData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(t&&t({type:"network.connection.ok"}),!e.ok){if(429===parseInt(e.status))return t&&t(ae.NewNotification(re(65282),1)),{code:1};if(parseInt(e.status)>=500)return t&&t(ae.NewNotification(re(65283),1)),{code:1}}var a={};return(a=e.json().catch((function(e){return t&&t({type:"network.connection.error"}),t&&t(ae.NewNotification(re(65280),2)),{code:1}}))).then((function(e){e&&e.code&&e.code<1024&&(t&&t(ae.NewNotification(re(e.code)||e.message,2)),257===parseInt(e.code)&&window.setTimeout((function(){window.location.href="/user/login"}),3e3),parseInt(e.code))})).catch((function(e){ie(e,t)})),a},getTextData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!e.ok){switch(e.status){case 429:t&&t(ae.NewNotification(re(65282),1));break;case 500:t&&t(ae.NewNotification(re(65283),1));break;default:t&&t(ae.NewNotification("Oooops...",1))}return null}return e.text()},getFile:function(e){},catchError:ie,withEventdispatcher:function(e){return function(t){return function(a){return t(a,e)}}},getHost:function(e){return e&&e.host},getSSHHost:function(e){return e&&e.ssh?e.ssh:"git@"+e.host.replace("http://","").replace("https://","")},makeSlug:function(e){return e.replace(/[^\w]/g,"_")}};var se={stateValidator:function(e,t){return function(){for(var a={},r=!1,i=t.length-1;i>=0;i--){var n=t[i];"string"!==typeof e.state[n.name]||e.state[n.name].match(n.passPattern)||(r|=!0,a[n.name]=n.errorMessage)}return e.setState({error:a}),!r}},codeValidator:function(e,t){return function(a){for(var r={},i=0;i div":{paddingRight:"0px !important"},"& button":{minWidth:e.spacing(18)}}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ce))),pe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).oldData=e.currentUserInfo[e.comData.field],r.state={data:r.oldData,showBtn:!1,error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"data",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:e.comData.label})})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"data",exceptionCode:1029,errorMessage:r.props.intl.formatMessage({id:"message.error.change_S_Fail"},{s:r.props.intl.formatMessage({id:e.comData.label})})}]),r}return Object(d.a)(a,[{key:"saveData",value:function(){var e=this,t=this.props,a=t.intl,r=t.comData,i=this.state.data;if(this.oldData===i||!this.checkInput())return!1;te.setUserData({data:i,field:r.field}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code){if(!e.checkResponse(t.code))return!1}else e.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.updated"}),0)),e.oldData=i,e.props.update()}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.intl,r=t.comData;return Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:a.formatMessage({id:r.label})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.data,error:!!this.state.error.data,helperText:this.state.error.data,placeholder:a.formatMessage({id:"message.error._S_empty"},{s:a.formatMessage({id:r.label})}),onChange:function(t){return e.setState({data:t.target.value})},onFocus:function(){return e.setState({showBtn:!0})}})}),this.state.showBtn&&Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({showBtn:!1})},children:a.formatMessage({id:"label.cancel"})}),"\xa0\xa0",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.saveData()},children:a.formatMessage({id:"label.save"})})]})]})})}}]),a}(i.a.Component),de=Object(R.b)(Object(C.a)((function(e){return{}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(pe))),ue=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={},r.updateAllInfo=r.updateAllInfo.bind(Object(N.a)(r)),r}return Object(d.a)(a,[{key:"updateAllInfo",value:function(e){var t=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||(t.props.dispatchEvent({type:"data.currentUserInfo.update",data:a.data}),"function"===typeof e&&e())}))}},{key:"render",value:function(){var e=this.props,t=e.classes,a=e.currentUserInfo,r=e.intl;return Object(oe.jsxs)("div",{children:[Object(oe.jsx)(w.a,{variant:"subtitle1",gutterBottom:!0,children:r.formatMessage({id:"label.settings"})}),Object(oe.jsxs)(M.a,{className:t.infoWrap,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",gutterBottom:!0,children:r.formatMessage({id:"label.profile"})}),Object(oe.jsx)("div",{className:"mt30"}),"u_key"in a?Object(oe.jsx)(de,{comData:{field:"name",label:"label.userName"},currentUserInfo:a,update:this.updateAllInfo}):"",Object(oe.jsx)("div",{className:"mt30"}),"u_key"in a?Object(oe.jsx)(le,{currentUserInfo:a,update:this.updateAllInfo}):"",Object(oe.jsx)("div",{className:"mt30"}),Object(oe.jsx)(w.a,{variant:"subtitle2",gutterBottom:!0,children:r.formatMessage({id:"label.loginCredential"})}),Object(oe.jsx)("div",{className:"mt30"}),"u_key"in a?Object(oe.jsx)(de,{comData:{field:"company",label:"label.company"},currentUserInfo:a,update:this.updateAllInfo}):"",Object(oe.jsx)("div",{className:"mt30"}),"u_key"in a?Object(oe.jsx)(de,{comData:{field:"job",label:"label.job"},currentUserInfo:a,update:this.updateAllInfo}):""]})]})}}]),a}(i.a.Component),me=Object(R.b)(Object(C.a)((function(e){return{infoWrap:{padding:"20px 30px 60px 30px",marginTop:20}}}))(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ue))),he=a(423),ge=a(458),be=a(460),fe=a(16),je=a(4),ve=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"showDoc",value:function(){var e=this.props,t=e.doc,a="cn";"en-us"===e.currentLanguage&&(a="en"),window.open("/doc/"+a+t,"_blank")}},{key:"render",value:function(){var e=this,t=this.props,a=t.tooltip,r=t.title,i=t.type,n=t.intl;return"button"===i?Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",onClick:function(){return e.showDoc()},children:[Object(oe.jsx)(fe.a,{icon:je.s}),"\xa0\xa0",r||n.formatMessage({id:"label.learnMore"})]}):"icon"===i?Object(oe.jsx)(be.a,{title:a||n.formatMessage({id:"label.learnMore"}),placement:"top",children:Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:Object(oe.jsx)("a",{style:{cursor:"pointer","&:hover":{textDecoration:"underline"}},onClick:function(){return e.showDoc()},children:Object(oe.jsx)(fe.a,{icon:je.s})})})}):Object(oe.jsx)(be.a,{title:a||n.formatMessage({id:"label.learnMore"}),placement:"top",children:Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:Object(oe.jsxs)("a",{style:{cursor:"pointer","&:hover":{textDecoration:"underline"}},onClick:function(){return e.showDoc()},children:[r||n.formatMessage({id:"label.learnMore"}),"\xa0",Object(oe.jsx)(fe.a,{icon:je.s})]})})})}}]),a}(i.a.Component),Oe=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{progress:{color:e.palette.info.main}}}))(Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}),(function(e,t){return{}}))(ve)))),ye=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.item,a=e.onDelete,r=e.classes;return Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",children:[Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"body1",className:r.line,children:[t.name," \xa0"]}),Object(oe.jsx)(w.a,{variant:"body2",className:r.line2,children:t.hash.replace(/([a-f0-9]{2})/gi,"$1:").slice(0,-1)})]}),Object(oe.jsx)(k.a,{item:!0,className:r.center,children:Object(oe.jsx)(_.a,{onClick:function(e){a&&a(t.id)},children:Object(oe.jsx)(fe.a,{icon:je.H,className:r.icon})})})]})}}]),a}(i.a.Component),xe=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{line:{marginTop:e.spacing(1),marginBottom:e.spacing(.5)},line2:{marginBottom:e.spacing(1)},center:{display:"flex",alignItems:"center"},icon:{color:e.palette.text.light}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ye))))),Se=a(418),Ce=a(422),Ne=a(421),Re=a(419),Me=a(420),we=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.data,a=e.intl,r=t||[[],[]];return r=J(a.formatMessage,r),Object(oe.jsxs)(Se.a,{children:[Object(oe.jsx)(Re.a,{children:Object(oe.jsx)(Me.a,{children:r[1].map((function(e,t){return Object(oe.jsx)(Ne.a,{style:{width:r[0][t]},children:Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:e})},t)}))})}),Object(oe.jsx)(Ce.a,{children:r.map((function(e,t){return t>1?Object(oe.jsx)(Me.a,{children:e.map((function(e,t){return Object(oe.jsx)(Ne.a,{children:e},t)}))},t):null}))})]})}}]),a}(r.Component),ke=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(we))))),_e=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,keyList:[],name:"",key:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"key",passPattern:/^.+$/m,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.SSHKey"})})},{name:"key",passPattern:/^((?:ssh|ecdsa)-[\w\d]+)\s+(\S)+(?:\s+(\S+))?\s*$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.SSHKey"})})},{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.name"})})},{name:"name",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"key",exceptionCode:1037,errorMessage:r.props.intl.formatMessage({id:"message.error.sshKeyDuplicate"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData()}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"addKey",value:function(){var e=this;if(!this.checkInput())return!1;var t=this.props,a=t.intl,r=t.dispatchEvent,i=this.state,n=i.key,s=i.name,o=n.match(/^((?:ssh|ecdsa)-[\w\d]+)\s+(\S+)(?:\s+(\S+))?\s*$/);return this.setState({pending:!0}),te.addSSHKey({name:s,key:o[2]}).then(ne.withEventdispatcher(r)(ne.getJSONData)).then((function(t){if(e.setState({pending:!1}),t.code){if(!e.checkResponse(t.code))return!1;t.code>1024&&r(ae.NewNotification(a.formatMessage({id:"message.error.AddFail"}),2))}else r(ae.NewNotification(a.formatMessage({id:"message.Added"}),0)),e.setState({name:"",key:""}),e.getData()})),!0}},{key:"removeKey",value:function(e){var t=this,a=this.props,r=a.intl,i=a.dispatchEvent;te.removeSSHKey({id:e}).then(ne.withEventdispatcher(i)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&i(ae.NewNotification(r.formatMessage({id:"message.error.removeFail"}),2)):(i(ae.NewNotification(r.formatMessage({id:"message.removed"}),0)),t.getData())}))}},{key:"getData",value:function(){var e=this;te.getKeyList().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.setState({keyList:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.classes,i=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:r.header,children:i.formatMessage({id:"label.SSHKey_pl"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{children:a.id?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[i.formatMessage({id:"label.addSSHKey"})," \xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/common/ssh_key.md"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:7,value:this.state.key,error:!!this.state.error.key,helperText:this.state.error.key,placeholder:i.formatMessage({id:"message.inputSSHKEYContent"}),onChange:function(t){var a=t.target.value,r=a.match(/^((?:ssh|ecdsa)-[\w\d]+)\s+(\S)+(?:\s+(\S+))?\s*$/),i={key:a,name:""};r&&r[3]&&(i.name=r[3]),e.setState(i)}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:i.formatMessage({id:"label.name"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){return e.setState({name:t.target.value})},placeholder:i.formatMessage({id:"message.inputSSHKEYName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{color:"primary",variant:"contained",disableElevation:!0,onClick:function(t){return e.addKey()},disabled:this.state.pending,className:r.btn,children:i.formatMessage({id:"label.addSSHKey"})})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:3}),Object(oe.jsx)(k.a,{item:!0,xs:7,className:r.table,children:Object(oe.jsx)(ke,{data:[["100%"],["label.SSHKeyManage"]].concat(Object(T.a)(this.state.keyList.filter(U.notDeleted()).map((function(t,a){return[Object(oe.jsx)(xe,{item:t,onDelete:function(t){return e.removeKey(t)}},a)]}))))})}),Object(oe.jsx)(k.a,{item:!0,xs:3})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})})]})}}]),a}(i.a.Component),Ee=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},paper:{padding:e.spacing(2)},btn:{margin:e.spacing(2)+"px 0px"},table:{"& th, & td":{textAlign:"left !important"}}}}))(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(_e))),Te=a(17),Ae=a(7),De=["icon","className","label","badge","intl","classes"],Ie=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.icon,a=e.className,r=e.label,i=e.badge,n=e.intl,s=e.classes,o=Object(Ae.a)(e,De),c=Object(oe.jsxs)(_.a,Object(y.a)(Object(y.a)({},o),{},{className:[s.button,a].join(" "),children:[Object(oe.jsx)(fe.a,{icon:t,className:s.icon}),i>0&&Object(oe.jsx)("div",{align:"center",className:s.badge,children:i>99?"":i})]}));return r?Object(oe.jsx)(be.a,{title:n.formatMessage({id:r}),placement:"top",disableFocusListener:!0,children:c}):c}}]),a}(i.a.Component),Pe=Object(R.b)(Object(C.a)((function(e){return{button:{minWidth:e.spacing(3)+"px !important",padding:"7px 8px !important"},icon:{width:"18px !important",height:"18px !important"},badge:{right:0,top:"-5px",zIndex:"1",fontSize:"12px",position:"absolute",borderRadius:"10px",background:"#FF3F35",height:e.spacing(2),minWidth:e.spacing(2),lineHeight:e.spacing(2)+"px",color:e.palette.primary.contrastText,border:"2px solid "+e.palette.background.light}}}))(Ie)),Fe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,primaryEmail:e.currentUserInfo.id?e.currentUserInfo.email:"",emails:e.currentUserInfo.id?e.currentUserInfo.emails:null,email:"",error:{},validationEmail:null,code:"",codeDisabled:[],count:{}};var i=e.intl;return r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"email",passPattern:/^.+$/,errorMessage:i.formatMessage({id:"message.error._S_empty"},{s:i.formatMessage({id:"label.email"})})},{name:"email",passPattern:/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,errorMessage:i.formatMessage({id:"message.error._S_invalid"},{s:i.formatMessage({id:"label.email"})})}]),r.codeCheckInput=se.stateValidator(Object(N.a)(r),[{name:"code",passPattern:/^\d+$/,errorMessage:i.formatMessage({id:"message.error._S_empty"},{s:i.formatMessage({id:"label.emailCode"})})},{name:"code",passPattern:/^\d{6}$/,errorMessage:i.formatMessage({id:"message.error._S_invalid"},{s:i.formatMessage({id:"label.emailCode"})})}]),r.codeCheckResponse=se.codeValidator(Object(N.a)(r),[{name:"code",exceptionCode:1036,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:i.formatMessage({id:"label.emailCode"})})}]),r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(e.currentUserInfo)===JSON.stringify(this.props.currentUserInfo)||(this.setState({primaryEmail:e.currentUserInfo.email,emails:e.currentUserInfo.emails}),!1)}},{key:"reloadUserData",value:function(e){var t=this;e&&this.cancelForm(),te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.props.dispatchEvent({type:"data.currentUserInfo.update",data:e.data})}))}},{key:"addCommitEmail",value:function(){var e=this,t=this.state,a=t.emails,r=t.email,i=this.props.intl;return!(!a||!this.checkInput())&&(a.filter(U.email(r)).length>0?(this.setState({error:{email:i.formatMessage({id:"message.error._S_duplicate"},{s:i.formatMessage({id:"label.email"})})}}),!1):(this.setState({pending:!0}),void te.addCommitEmail({email:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({pending:!1}),t.code?e.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.error.AddFail"}),2)):(e.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.emailCodeHasSendNewEmail"}),0)),e.createValidationForm(r),e.reloadUserData(!1))}))))}},{key:"resentCommitEmailCode",value:function(e){var t=this,a=this.props.intl,r=this.state.codeDisabled;if("undefined"===typeof r[e]&&(r[e]=!1),r[e])return!1;this.cancelForm(),te.resentCommitEmailCode({email:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(r){r.code?t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.error.getEmailCodeFail"}),2)):(t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.emailCodeHasSendNewEmail"}),0)),t.countDown(e))}))}},{key:"countDown",value:function(e){var t=this,a=this.state,r=a.count,i=a.codeDisabled;"undefined"===typeof r[e]&&(r[e]=120),r[e]?(this.setState({codeDisabled:Object(y.a)(Object(y.a)({},i),{},Object(Te.a)({},e,!0)),count:Object(y.a)(Object(y.a)({},r),{},Object(Te.a)({},e,--r[e]))}),window.setTimeout((function(){return t.countDown(e)}),1e3)):this.setState({codeDisabled:Object(y.a)(Object(y.a)({},i),{},Object(Te.a)({},e,!1)),count:Object(y.a)(Object(y.a)({},r),{},Object(Te.a)({},e,120))})}},{key:"validationCommitEmailCode",value:function(e){var t=this,a=this.props.intl,r=this.state.code;if(!e||!this.codeCheckInput())return!1;this.setState({pending:!0}),te.validationCommitEmailCode({id:e.id,email:e.email,code:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(t.setState({pending:!1}),e.code){if(!t.codeCheckResponse(e.code))return!1;t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.error.verifyFail"}),2))}else t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.verified"}),0)),t.reloadUserData(!0)}))}},{key:"deleteConfirm",value:function(e,t){var a=this,r=this.props.intl;this.cancelForm(),this.props.dispatchEvent(ae.addComformation("delete_my_email",{title:r.formatMessage({id:"message.confirmDelete"},{s:r.formatMessage({id:"label.email"})+" '"+t+"' "}),description:"",reject:function(){return!0},accept:function(){return a.deleteCommitEmail(e)}}))}},{key:"deleteCommitEmail",value:function(e){var t=this,a=this.props.intl;if(!e)return!1;this.setState({pending:!0}),te.deleteCommitEmail({id:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),t.props.dispatchEvent(ae.cancelComformation()),e.code?t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.error.deleteFail"}),2)):(t.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.deleted"}),0)),t.reloadUserData(!0))}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,n=this.state,s=n.primaryEmail,o=n.emails,c=n.validationEmail,l=n.codeDisabled,p=n.count,d=[];return!!o&&(o.map((function(t,n){return"create"===t?d.push(e.createForm()):c===t.email?d.push(e.validationForm(t)):d.push([Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.email}),t.email===s?Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:r.formatMessage({id:"label.primaryEmail"})}):t.isCheck?Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:r.formatMessage({id:"message.contactedEmail"})}):Object(oe.jsxs)(w.a,{variant:"body2",component:"div",children:[r.formatMessage({id:"message.shouldValidation"}),Object(oe.jsxs)("a",{href:"#",disabled:l[t.email],className:[a.btn,l[t.email]?a.disabled:""].join(" "),onClick:function(a){return e.resentCommitEmailCode(t.email)},children:[r.formatMessage({id:"message.resendEmail"}),"?",l[t.email]&&"("+p[t.email]+")"]})]}),t.email!==s&&Object(oe.jsxs)(i.a.Fragment,{children:[!t.isCheck&&Object(oe.jsx)(Pe,{label:"message.shouldValidation",className:a.icon,onClick:function(a){return e.createValidationForm(t.email)},icon:je.m}),Object(oe.jsx)(Pe,{label:"label.delete",className:[a.icon,a.btn].join(" "),onClick:function(a){return e.deleteConfirm(t.id,t.email)},icon:je.H})]})]),!0})),[["30%","auto","auto"],["label.contactEmail","label.status",""]].concat(d))}},{key:"createForm",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl;return[Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.email,placeholder:r.formatMessage({id:"message._S_empty"},{s:r.formatMessage({id:"label.email"})}),error:!!this.state.error.email,helperText:this.state.error.email,onChange:function(t){return e.setState({email:t.target.value})}}),"",Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.ok",icon:je.e,onClick:function(t){return e.addCommitEmail()},className:a.ok}),Object(oe.jsx)(Pe,{label:"label.cancel",icon:je.g,onClick:function(t){return e.cancelForm()},className:a.cancel})]})]}},{key:"validationForm",value:function(e){var t=this,a=this.props,r=a.classes,n=a.intl;return[Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.email}),Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.code,placeholder:n.formatMessage({id:"message._S_empty"},{s:n.formatMessage({id:"label.emailCode"})}),error:!!this.state.error.code,helperText:this.state.error.code,onChange:function(e){return t.setState({code:e.target.value})}}),Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.ok",icon:je.e,onClick:function(a){return t.validationCommitEmailCode(e)},className:r.ok}),Object(oe.jsx)(Pe,{label:"label.cancel",icon:je.g,onClick:function(e){return t.cancelForm()},className:r.cancel})]})]}},{key:"cancelForm",value:function(){var e=this.state.emails;"create"===e[e.length-1]&&(e=e.slice(0,e.length-1)),this.setState({emails:e,email:"",error:{},validationEmail:null,code:""})}},{key:"createCommitEmailForm",value:function(){var e=this.state.emails;"create"!==e[e.length-1]&&(this.cancelForm(),this.setState({emails:[].concat(Object(T.a)(e),["create"])}))}},{key:"createValidationForm",value:function(e){this.cancelForm(),this.setState({validationEmail:e})}},{key:"render",value:function(){var e=this,t=this.props,a=t.history,r=t.classes,i=t.intl,n=this.state,s=n.pending,o=n.primaryEmail,c=n.emails;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:r.header,children:i.formatMessage({id:"label.emailManage"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.title,children:i.formatMessage({id:"message.primaryEmail"})}),Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:i.formatMessage({id:"message.primaryEmailDescription"})}),Object(oe.jsxs)(k.a,{container:!0,className:r.content,children:[Object(oe.jsx)(k.a,{item:!0,xs:3,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:o})}),Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(e){return a.push(W("settings","profile"))},children:i.formatMessage({id:"message.updatePrimaryEmail"})})})]})]}),Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:6,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.title,children:i.formatMessage({id:"message.myEmail"})}),Object(oe.jsxs)(w.a,{variant:"body2",component:"div",children:[i.formatMessage({id:"message.myEmailDescription"})," \xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/common/multiple_email.md"})]})]}),Object(oe.jsx)(k.a,{item:!0,xs:2,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:r.create,disabled:s,onClick:function(t){return e.createCommitEmailForm()},children:i.formatMessage({id:"message.addEmail"})})}),Object(oe.jsx)(k.a,{item:!0,xs:8,className:r.table,children:null!==c?Object(oe.jsx)(ke,{data:this.getTableData()}):Object(oe.jsx)(k.a,{container:!0,className:r.loading,children:Object(oe.jsx)(he.a,{})})})]})]})}}]),a}(i.a.Component),Le=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},title:{lineHeight:e.spacing(3)+"px",paddingBottom:e.spacing(2)},content:{paddingTop:e.spacing(3),paddingBottom:e.spacing(5),borderBottom:"1px solid "+e.palette.border,marginBottom:e.spacing(3)},create:{marginTop:e.spacing(1)},size:{fontSize:"12px"},btn:{textDecoration:"none !important",marginLeft:e.spacing(3)},icon:{color:e.palette.text.light},disabled:{opacity:.5,cursor:"not-allowed"},ok:{"& svg":{color:e.palette.success.main+" !important"}},cancel:{marginLeft:e.spacing(3),"& svg":{width:"14px !important",height:"14px !important",padding:"2px",color:e.palette.error.main+" !important"}},table:{marginTop:e.spacing(3),"& tbody tr":{"&:hover":{background:e.palette.background.light+" !important"}},"& td":{height:e.spacing(6)+"px","& > div":{verticalAlign:"middle"}}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Fe)))),Be=a(461),Ue=a(173),Ge=a.n(Ue),He=a(36),qe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={showImgIcon:!1},r.uploadFile=r.uploadFile.bind(Object(N.a)(r)),r.instanceID="",r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.instanceID=Math.floor(1e6*Math.random())}},{key:"uploadFile",value:function(e){var t=this.props,a=t.appendData,r=t.name,i=t.dataProvider,n=e.target.files[0],s=Object(y.a)({},a);if(s[r+"_BINARY"]=n,!n)return!1;i(s).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then(this.props.onUpdate)}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.src,n=t.type;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)("label",{htmlFor:"avater-uploader-"+this.instanceID,className:a.avatarLabel,onMouseEnter:function(){e.setState({showImgIcon:!0})},onMouseLeave:function(){e.setState({showImgIcon:!1})},children:["avatar"===n?Object(oe.jsx)(Be.a,{variant:"circular",src:r,className:Ge()(a.circleUserInfoAvatar)}):Object(oe.jsx)(Be.a,{variant:"rounded",src:r.length>1?r:"",className:Ge()(a.userInfoAvatar),children:1===r.length?r:""}),this.state.showImgIcon&&Object(oe.jsx)(k.a,{className:[a.iconBox,"avatar"===n?a.iconBoxCircle:a.iconBoxRounded].join(" "),children:Object(oe.jsx)(fe.a,{icon:He.h,className:a.editIcon})})]}),Object(oe.jsx)("input",{accept:"image/*",className:a.uploadInput,id:"avater-uploader-"+this.instanceID,type:"file",onChange:this.uploadFile})]})}}]),a}(i.a.Component),ze=Object(R.b)(Object(C.a)((function(e){return{avatarLabel:{cursor:"pointer",position:"relative",display:"inline-block",borderRadius:e.spacing(1)+"px"},iconBox:{width:"100%",position:"absolute",left:"0",bottom:"0",background:"#2F354D",opacity:.3},iconBoxRounded:{height:"40%",borderBottomLeftRadius:e.spacing(1)+"px",borderBottomRightRadius:e.spacing(1)+"px"},iconBoxCircle:{height:"100%",borderRadius:"50%"},editIcon:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontSize:e.spacing(2)+"px",color:"#fff"},uploadInput:{display:"none !important"},userInfoAvatar:{width:e.spacing(7),height:e.spacing(7)},circleUserInfoAvatar:{width:e.spacing(10),height:e.spacing(10)}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(qe))),We=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),(r=t.call(this,e)).updateUserInfo=r.updateUserInfo.bind(Object(N.a)(r)),r.mountedFlag=!1;var i=r.props.currentUserInfo;return r.state={name:i.name||"",email:i.email||"",team:i.team||"",role:i.role||"",oldPassword:"",newPassword:"",againPassword:"",mfaMode:0,mfaQRCodeData:"",mfaSecret:"",mfaCode1:"",mfaCode2:"",error:{}},r.checkBaseInfo=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^\S+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.userName"})})},{name:"name",passPattern:/^.{2,50}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:2,n2:50})},{name:"email",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",passPattern:/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"team",passPattern:/^.{0,50}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:50})},{name:"role",passPattern:/^.{0,50}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:50})}]),r.checkBaseResponse=se.codeValidator(Object(N.a)(r),[{name:"data",exceptionCode:1029,errorMessage:r.props.intl.formatMessage({id:"message.error.updateFail"})}]),r.checkPWDResponse=se.codeValidator(Object(N.a)(r),[{name:"oldPassword",exceptionCode:1040,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.password"})})}]),r.checkMFAInput=se.stateValidator(Object(N.a)(r),[{name:"mfaCode1",passPattern:/^\d{6}$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.mfaCode"})})},{name:"mfaCode2",passPattern:/^\d{6}$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.mfaCode"})})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"mfaCode1",exceptionCode:1041,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.mfaCode"})})},{name:"mfaCode2",exceptionCode:1042,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.mfaCode"})})}]),r}return Object(d.a)(a,[{key:"checkPWDInput",value:function(){var e=[{name:"oldPassword",passPattern:/^.{6,}$/,errorMessage:this.props.intl.formatMessage({id:"message.error._S_empty"},{s:this.props.intl.formatMessage({id:"label.oldPassword"})})},{name:"newPassword",passPattern:/^.{6,50}$/,errorMessage:this.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:6,n2:50})},{name:"againPassword",passPattern:new RegExp("^"+this.state.newPassword+"$"),errorMessage:this.props.intl.formatMessage({id:"message.error.inputNotSame"})}];return se.stateValidator(this,e)()}},{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.updateUserInfo()}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentUserInfo.name===e.currentUserInfo.name&&this.props.currentUserInfo.email===e.currentUserInfo.email&&this.props.currentUserInfo.team===e.currentUserInfo.team&&this.props.currentUserInfo.role===e.currentUserInfo.role||this.setState({name:e.currentUserInfo.name||"",email:e.currentUserInfo.email||"",team:e.currentUserInfo.team||"",role:e.currentUserInfo.role||""}),!0}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"avatarUploaded",value:function(e){e.code||(this.props.dispatchEvent(ae.NewNotification(this.props.intl.formatMessage({id:"message.updated"}),0)),this.updateUserInfo())}},{key:"updateUserInfo",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data}),t.data.mfaEnabled||e.prepareMFADeviceSetup())}))}},{key:"updateBasicInfo",value:function(){var e=this;if(!this.checkBaseInfo())return!1;te.updateBasicInfo({name:this.state.name,email:this.state.email,team:this.state.team,role:this.state.role}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code){if(!e.checkBaseResponse(t.code))return!1}else e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.updateUserInfo()}))}},{key:"updatePassword",value:function(){var e=this,t=this.state,a=t.oldPassword,r=t.newPassword;if(!this.checkPWDInput())return!1;te.updatePassword({current:a,new:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code){if(!e.checkPWDResponse(t.code))return!1;t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2))}else e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.updateUserInfo(),e.clearPWD()}))}},{key:"clearPWD",value:function(){this.setState({oldPassword:"",newPassword:"",againPassword:""})}},{key:"prepareMFADeviceSetup",value:function(){var e=this;this.setState({MFAPending:!0}),te.getMFAData().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({MFAPending:!1}),t&&!t.code&&t.data&&e.setState({mfaMode:1,mfaQRCodeData:t.data.image,mfaSecret:t.data.secret,mfaCode1:"",mfaCode2:""})}))}},{key:"revokeMFADevice",value:function(){var e=this;this.setState({MFAPending:!0}),te.revokeMFAData().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({MFAPending:!1}),t&&!t.code&&t.data&&(e.updateUserInfo(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.removed"}),0)))}))}},{key:"updateMFADevice",value:function(){var e=this;return!!this.checkMFAInput()&&(this.state.mfaCode1===this.state.mfaCode2?(this.setState({error:Object(y.a)(Object(y.a)({},this.state.error),{},{mfaCode2:this.props.intl.formatMessage({id:"message.error.inputSame"})})}),!1):(this.setState({MFAPending:!0}),void te.updateMFAData({secret:this.state.mfaSecret,code1:this.state.mfaCode1,code2:this.state.mfaCode2}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(e.setState({MFAPending:!1}),t.code){if(!e.checkResponse(t.code))return!1;t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2))}else e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.setState({mfaMode:0,mfaSecret:"",mfaCode1:"",mfaCode2:""}),e.updateUserInfo()}))))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:r.paper,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:[r.header,r.noMarginTop].join(" "),children:n.formatMessage({id:"menu.profile"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,sm:5,children:[Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginBottom,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.userName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.userName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value;e.setState({name:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.email"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.email"})}),value:this.state.email,error:!!this.state.error.email,helperText:this.state.error.email,onChange:function(t){var a=t.target.value;e.setState({email:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.team"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.team"})}),value:this.state.team,error:!!this.state.error.team,helperText:this.state.error.team,onChange:function(t){var a=t.target.value;e.setState({team:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.role"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.role"})}),value:this.state.role,error:!!this.state.error.role,helperText:this.state.error.role,onChange:function(t){var a=t.target.value;e.setState({role:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginTop,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.updateBasicInfo()},children:n.formatMessage({id:"label.save"})})})]}),Object(oe.jsxs)(k.a,{item:!0,xs:12,sm:7,children:[Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginBottom,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.userAvatar"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(ze,{name:"avatar",type:"avatar",appendData:{},src:D.HOSTS.PGYER_AVATAR_HOST+a.icon,onUpdate:function(t){return e.avatarUploaded(t)},dataProvider:te.uploadAvatar})})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:r.header,children:n.formatMessage({id:"label.security"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,children:Object(oe.jsxs)(k.a,{item:!0,xs:12,sm:5,children:[Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginBottom,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.oldPassword"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.oldPassword"})}),value:this.state.oldPassword,error:!!this.state.error.oldPassword,helperText:this.state.error.oldPassword,onChange:function(t){var a=t.target.value;e.setState({oldPassword:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.newPassword"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_empty"},{s:n.formatMessage({id:"label.newPassword"})}),value:this.state.newPassword,error:!!this.state.error.newPassword,helperText:this.state.error.newPassword,onChange:function(t){var a=t.target.value;e.setState({newPassword:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:r.fold,children:n.formatMessage({id:"label.newPasswordConfirm"})})}),Object(oe.jsx)(k.a,{item:!0,xs:10,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:n.formatMessage({id:"message.error._S_retype"},{s:n.formatMessage({id:"label.newPassword"})}),value:this.state.againPassword,error:!!this.state.error.againPassword,helperText:this.state.error.againPassword,onChange:function(t){var a=t.target.value;e.setState({againPassword:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:10,className:r.mainMarginTop,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.updatePassword()},children:n.formatMessage({id:"label.save"})})})]})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:r.header,children:n.formatMessage({id:"label.twoFactorAuthentication"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,sm:8}),0===this.state.mfaMode&&a.mfaEnabled&&Object(oe.jsxs)(k.a,{item:!0,xs:5,children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",className:r.btn,disabled:this.state.MFAPending,onClick:function(){return e.prepareMFADeviceSetup()},children:n.formatMessage({id:"label.changeMFADevice"})}),"\xa0\xa0",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.MFAPending,onClick:function(){return e.revokeMFADevice()},children:n.formatMessage({id:"label.removeMFADevice"})})]}),(1===this.state.mfaMode||!a.mfaEnabled)&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(w.a,{variant:"body2",component:"div",gutterBottom:!0,children:n.formatMessage({id:"message.mfaGuide"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:this.state.MFAPending?Object(oe.jsx)(he.a,{}):Object(oe.jsx)("img",{width:150,height:150,src:this.state.mfaQRCodeData})}),Object(oe.jsx)(k.a,{item:!0,xs:12,sm:7,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.mfaCode1,error:!!this.state.error.mfaCode1,helperText:this.state.error.mfaCode1,placeholder:n.formatMessage({id:"label.mfaCode1"}),onChange:function(t){return e.setState({mfaCode1:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,sm:7,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.mfaCode2,error:!!this.state.error.mfaCode2,helperText:this.state.error.mfaCode2,placeholder:n.formatMessage({id:"label.mfaCode2"}),onChange:function(t){return e.setState({mfaCode2:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.MFAPending,onClick:function(){return e.updateMFADevice()},children:n.formatMessage({id:"label.save"})})})]})]})}}]),a}(i.a.Component),Ve=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",borderBottom:"1px solid "+e.palette.border,fontSize:"18px",marginTop:e.spacing(4)},mainMarginTop:{marginTop:e.spacing(3)},mainMarginBottom:{marginBottom:e.spacing(1)},noMarginTop:{marginTop:"unset"},title:{marginTop:e.spacing(3),marginBottom:e.spacing(1)},pl:{paddingLeft:e.spacing(4)+"px !important"},btn:{color:e.palette.primary.main,cursor:"pointer"},paper:{paddingBottom:e.spacing(10)},fold:{fontWeight:500},flexRow:{display:"flex",flexFlow:"row nowrap",justifyContent:"flex-start",alignItems:"center"},flexRowCenter:{display:"flex",flexFlow:"row nowrap",alignItems:"center",padding:e.spacing(1.5)+"px "+e.spacing(1)+"px",marginLeft:e.spacing(4)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(We)))),Je=a(424),Ke=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.theme,r=e.icon,i=e.text,n=e.color,s=e.background,o={containedInfo:{main:a.palette.primary.contrastText,lighter:a.palette.secondary.main}},c=void 0===s||s,l=n?(a.palette[n]?a.palette:o)[n]:a.palette.primary;return r?Object(oe.jsxs)("span",{className:[t.root,t.iconPadding].join(" "),style:{backgroundColor:c?l.lighter:"",color:l.main},children:[Object(oe.jsx)("div",{className:t.icon,children:Object(oe.jsx)(fe.a,{icon:r})}),i]}):Object(oe.jsx)("span",{className:t.root,style:{backgroundColor:c?l.lighter:"",color:l.main},children:i})}}]),a}(i.a.Component),$e=Object(ge.a)(Object(C.a)((function(e){return{root:{padding:e.spacing(.5)+"px",lineHeight:1.5,fontSize:e.spacing(1.5)+"px",fontWeight:"normal",display:"inline",borderRadius:e.spacing(.5)},iconPadding:{paddingLeft:e.spacing(1)+"px"},icon:{width:0,left:"-14px",position:"relative",display:"inline-block",verticalAlign:"middle"}}}))(Ke)),Ze=["classes"],Ye=Object(C.a)((function(e){return{root:{padding:0,width:e.spacing(6),height:e.spacing(3),margin:e.spacing(1),marginRight:e.spacing(4.5)},disabled:{"& + $track":{cursor:"not-allowed !important"}},switchBase:{padding:1,"&$checked":{transform:"translateX(24px)",color:e.palette.primary.contrastText,"& + $track":{opacity:1,border:"none"}},"&$focusVisible $thumb":{color:e.palette.primary.light,border:"6px solid "+e.palette.border}},thumb:{width:"22px",height:"22px"},track:{opacity:1,borderRadius:"12px",boxSizing:"border-box",backgroundColor:e.palette.text.lighter,transition:e.transitions.create(["background-color","border"])},checked:{},focusVisible:{}}}))((function(e){var t=e.classes,a=Object(Ae.a)(e,Ze);return Object(oe.jsx)(Je.a,Object(y.a)({color:"primary",focusVisibleClassName:t.focusVisible,disableRipple:!0,classes:{root:t.root,disabled:t.disabled,switchBase:t.switchBase,thumb:t.thumb,track:t.track,checked:t.checked}},a))})),Xe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,refusedList:null,openSet:{},groupFold:{},otherRepository:!1},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData()}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.props.currentUserInfo)===JSON.stringify(e.currentUserInfo)&&JSON.stringify(this.props.groupList)===JSON.stringify(e.groupList)&&JSON.stringify(this.props.repositoryList)===JSON.stringify(e.repositoryList)&&JSON.stringify(this.state.refusedList)===JSON.stringify(t.refusedList)||(this.changeOpenSet(e,t),!1)}},{key:"changeOpenSet",value:function(e,t){var a=this,r=e.currentUserInfo,i=e.groupList,n=e.repositoryList,s=t.refusedList,o=t.openSet,c=!1;r.id&&(o[D.notificationStatus.mr]=this.isUserNotificationOpen(D.notificationStatus.mr,r.notification),o[D.notificationStatus.email]=this.isUserNotificationOpen(D.notificationStatus.email,r.notification)),s&&(n.length&&n.map((function(e,r){return o[e.id]=a.isTargetOpen(t,e.id),i.length&&0===i.filter(U.id(e.group.id)).length&&(c=!0),!0})),i.length&&i.map((function(e,r){if(o[e.id]=a.isTargetOpen(t,e.id),o[e.id]&&n.length){var i=n.filter(U.group(e.id));if(i.length){var s=i.filter((function(e,t){return!o[e.id]||e.role>e-1&1)}},{key:"isTargetOpen",value:function(e,t){return!e.refusedList.filter(U.target(t)).length}},{key:"getData",value:function(){var e=this;this.setState({pending:!0}),te.notificationRefused({}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({pending:!1,refusedList:t.code?[]:t.data})}))}},{key:"reloadUserInfo",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data})}))}},{key:"updated",value:function(e,t,a){var r=this.props,i=r.dispatchEvent,n=r.intl;this.setState({pending:!1}),t.code?i(ae.NewNotification(n.formatMessage({id:"message.error.updateFail"}),2)):a?this.reloadUserInfo():this.getData()}},{key:"userNotificationSetting",value:function(e){var t=this,a=this.state,r=a.pending,i=a.openSet;if(r||!e)return!1;var n=i[e]=!i[e];this.setState({pending:!0,openSet:i}),te.userNotificationSetting({offset:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.updated(n,e,!0)}))}},{key:"setGroupOrRepoNotification",value:function(e,t){var a=this,r=this.state,i=r.pending,n=r.openSet;if(i||!t||!e)return!1;var s=n[e]=!n[e];this.setState({pending:!0,openSet:n}),te.setGroupOrRepoNotification({type:t,target:e,open:s?1:0}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){a.updated(s,e,!1)}))}},{key:"tableFold",value:function(e){var t=this.state.groupFold;t[e]=!t[e],this.setState({groupFold:t})}},{key:"getTableRow",value:function(e,t){var a=this,r=this.props,i=r.classes,n=r.intl,s=this.state,o=s.openSet,c=s.groupFold,l=!!e.group,p=e.role0&&n.length>0&&r.map((function(t,a){var r=[["auto","auto","50px"],e.getTableRow(t,"")];return n.filter(U.group(t.id)).map((function(t,a){return r.push(e.getTableRow(t,s.span)),!0})),Object(oe.jsx)(k.a,{item:!0,xs:7,className:[s.title,d[t.id]||2===r.length?s.tableFold:""].join(" "),children:Object(oe.jsx)(ke,{data:r})},a)})),u&&Object(oe.jsx)(k.a,{item:!0,xs:7,className:[s.title,s.otherRepository].join(" "),children:Object(oe.jsx)(ke,{data:this.getRepositoryTable()})})]}):Object(oe.jsx)(k.a,{container:!0,className:s.loading,children:Object(oe.jsx)(he.a,{})})]})}}]),a}(i.a.Component),Qe=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},content:{paddingBottom:e.spacing(4),marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border},subtitle:{marginBottom:"14px"},desc:{fontSize:"14px"},title:{marginBottom:e.spacing(3),"&:last-child":{marginBottom:0},"& table tr th:nth-of-type(2), & table tr td:nth-of-type(2)":{textAlign:"right"}},tableFold:{"& table th":{border:"0px"},"& table tbody":{display:"none"}},switch:{display:"flex",justifyContent:"flex-end",alignItems:"center",paddingRight:e.spacing(12.5)},icon:{"& svg":{height:"12px !important",color:e.palette.text.light,transform:"rotate(180deg)",transition:"transform .3s"}},span:{marginLeft:e.spacing(2)},fold:{"& svg":{transform:"rotate(0deg)"}},otherRepository:{"& table thead":{display:"none"},"& table tr td:last-child":{width:"50px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,repositoryList:e.DataStore.repositoryList,groupList:e.DataStore.groupList}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Xe))));var et={userList:function(e){return ee.POST("/api/admin/userList",e)},updateUserStatus:function(e){return ee.POST("/api/admin/updateUserStatus",e)},closeUserMFA:function(e){return ee.POST("/api/admin/closeUserMFA",e)},resetPassword:function(e){return ee.POST("/api/admin/resetPassword",e)},checkPassword:function(e){return ee.POST("/api/admin/checkPassword",e)},setAdministrator:function(e){return ee.POST("/api/admin/setAdministrator",e)},addUser:function(e){return ee.POST("/api/admin/addUser",e)},groupList:function(e){return ee.POST("/api/admin/groupList",e)},groupMembers:function(e){return ee.POST("/api/admin/groupMembers",e)},groupAddMember:function(e){return ee.POST("/api/admin/groupAddMember",e)},groupRemoveMember:function(e){return ee.POST("/api/admin/groupRemoveMember",e)},setGroupOwner:function(e){return ee.POST("/api/admin/setGroupOwner",e)},repositoryList:function(e){return ee.POST("/api/admin/repositoryList",e)},repositoryMembers:function(e){return ee.POST("/api/admin/repositoryMembers",e)},repositoryAddMember:function(e){return ee.POST("/api/admin/repositoryAddMember",e)},repositoryRemoveMember:function(e){return ee.POST("/api/admin/repositoryRemoveMember",e)},systemStatus:function(){return ee.GET("/api/admin/systemStatus")},getConfig:function(){return ee.GET("/api/admin/config")},setConfig:function(e){return ee.POST("/api/admin/config",e)}},tt=a(43),at=a(425),rt=a(426),it=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.paletteName,r=e.theme,n=e.title,s=e.icon,o=e.label,c=e.unit,l=e.numbericValue,p=e.to,d=e.intl,u=e.history,m=a&&r.palette[a]?r.palette[a]:{},h=l,g=c;if("fromValue"===a&&(m="number"===typeof l?l>=85?r.palette.error:l>=70?r.palette.warning:r.palette.success:"Running"===l?r.palette.success:r.palette.error),h&&(h=(l===parseFloat(l)?z(l):l)||"NaN"),g){var b=function(e,t){var a,r,i,n,s,o,c=["p","u","m","","k","M","G","T","P"];return t&&e?(e=e.toString().trim(),a=(t=t.toString().trim()).slice(0,1),r=t,(i=c.indexOf(a))>-1?r=t.slice(1):(i=3,a=""),n=e.slice(-1),s=e,(o=c.indexOf(n))>-1?s=e.slice(0,-1):(o=3,n=""),[s,c[o+i-3]+r]):[e,t]}(h,g),f=Object(tt.a)(b,2);h=f[0],g=f[1]}return Object(oe.jsx)(at.a,{className:[t.card,p&&t.clickable].join(" "),style:{backgroundColor:m&&m.main},onClick:function(){p&&u.push(p)},children:Object(oe.jsx)(rt.a,{className:t.content,style:{paddingBottom:r.spacing(2)},component:"div",children:Object(oe.jsxs)(k.a,{container:!0,spacing:0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:8,children:[Object(oe.jsx)(w.a,{className:t.title,variant:"subtitle1",component:"h1",style:{color:m&&m.contrastText,fontSize:16},children:n||(o?d.formatMessage({id:o}):"-")}),Object(oe.jsx)(w.a,{variant:"h5",component:"h1",style:{color:m&&m.contrastText,fontSize:24},children:l||0===l?Object(oe.jsxs)(i.a.Fragment,{children:[h," ",g||""]}):Object(oe.jsx)(he.a,{size:24,style:{color:m&&m.light}})})]}),Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsx)(w.a,{className:t.icon,variant:"h4",component:"div",children:Object(oe.jsx)(fe.a,{icon:s,style:{color:m&&m.dark,fontSize:32}})})})]})})})}}]),a}(r.Component),nt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{card:{minWidth:e.spacing(22),height:e.spacing(14)},content:{paddingTop:e.spacing(2),paddingBottom:e.spacing(2)},title:{marginBottom:e.spacing(2)},icon:{textAlign:"right",marginTop:e.spacing(1)},clickable:{cursor:"pointer"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(it))))),st=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).mountedFlag=!1,r.state={pending:!0,data:null},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData()}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.state)!==JSON.stringify(this.nextState)}},{key:"getData",value:function(){var e=this;this.setState({pending:!0}),et.systemStatus().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t&&!t.code&&t.data&&e.setState({pending:!1,data:t.data})}))}},{key:"render",value:function(){var e=this.props.intl,t=this.state.pending;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",e.formatMessage({id:"label.statistic"})," "]})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{label:"label.user_pl",paletteName:"info",icon:je.Z,numbericValue:t?null:this.state.data.usage.user,to:"/admin/users"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{label:"label.group_pl",paletteName:"info",icon:je.fb,numbericValue:t?null:this.state.data.usage.group,to:"/admin/groups"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{label:"label.repository_pl",paletteName:"info",icon:je.eb,numbericValue:t?null:this.state.data.usage.repository,to:"/admin/repositories"})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",e.formatMessage({id:"label.systemResources"})," "]})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"CPU",paletteName:"fromValue",icon:je.bb,numbericValue:t?null:this.state.data.vm.cpu,unit:"%"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"RAM",paletteName:"fromValue",icon:je.bb,numbericValue:t?null:this.state.data.vm.memory,unit:"%"})}),!t&&this.state.data.vm.disk.length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",e.formatMessage({id:"label.diskUsgae"})," "]})}),!t&&this.state.data.vm.disk.map((function(e,t){return Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:e.name,paletteName:"fromValue",icon:je.U,numbericValue:e.usage,unit:"%"})},t)})),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",e.formatMessage({id:"label.serviceStatus"})," "]})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"CodeFever",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.codefever?"Running":"Stopped"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"Nginx",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.nginx?"Running":"Stopped"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"PHP-FPM",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.php?"Running":"Stopped"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"Crond",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.crond?"Running":"Stopped"})}),Object(oe.jsx)(k.a,{item:!0,sm:6,md:3,children:Object(oe.jsx)(nt,{title:"SendMail",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.sendmail?"Running":"Stopped"})})]})}}]),a}(i.a.Component),ot=Object(R.b)(Object(C.a)((function(e){return{}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(st)))),ct=a(267),lt=a(430),pt=a(428),dt=a(452),ut=a(431),mt=a(429),ht=a(432),gt=a(451),bt=a(427),ft=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.tabs,a=e.onChange,r=e.currentTab,i=e.children,n=e.classes;return Object(oe.jsxs)(k.a,{container:!0,className:n.background,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(gt.a,{value:r||0,indicatorColor:"primary",textColor:"primary",onChange:a,children:t.map((function(e,t){return Object(oe.jsx)(bt.a,{value:t,label:e},t)}))})}),Object(oe.jsx)(k.a,{item:!0,children:i})]})}}]),a}(i.a.Component),jt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{background:{backgroundColor:e.palette.background.light}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ft))))),vt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,count:0,list:[],category:0,keyword:"",sort:"name",page:1,pagesize:20,settingAnchor:null,settingUser:null,password1:"",password2:"",resetPassword:!1,error:{},settingAdmin:!1,password:"",addUser:!1,name:"",email:"",newPassword:""},r.mountedFlag=!1,r.timeout=null,r.checkPasswordInput=se.stateValidator(Object(N.a)(r),[{name:"password1",passPattern:/^.{6,50}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:6,n2:50})}]),r.checkEmailInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.{1,15}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:1,n2:15})},{name:"email",passPattern:/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.email"})})}]),r.checkEmailResponse=se.codeValidator(Object(N.a)(r),[{name:"email",exceptionCode:1030,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",exceptionCode:1029,errorMessage:r.props.intl.formatMessage({id:"message.error.AddFail"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData(this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;return this.state.category===t.category&&this.state.keyword===t.keyword&&this.state.sort===t.sort&&this.state.page===t.page||(this.state.page===t.page&&this.setState({page:1}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((function(){return a.getData(t)}),200)),!0}},{key:"getData",value:function(e){var t=this,a=e.category,r=e.keyword,i=e.sort,n=e.page,s=e.pagesize;this.setState({pending:!0}),et.userList({category:a,keyword:r,sort:i,page:n,pagesize:s}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),!e.code&&t.setState({count:e.data.count,list:e.data.list})}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state.list,n=[];return i.map((function(t){return n.push([Object(oe.jsxs)(k.a,{className:a.name,children:[Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.avatar,className:a.icon}),Object(oe.jsxs)(k.a,{children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:t.name}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.email})]})]}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.projects}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.created}),Object(oe.jsxs)(k.a,{className:a.tag,children:[t.mfaEnabled&&Object(oe.jsx)($e,{color:"success",text:"2FA"}),t.admin&&Object(oe.jsx)($e,{color:"info",text:r.formatMessage({id:"label.administrator"})}),!t.status&&Object(oe.jsx)($e,{color:"error",text:r.formatMessage({id:"message.disabled"})})]}),Object(oe.jsx)(Pe,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingUser:t})},icon:je.gb})]),!0})),[["auto","auto","auto","auto","auto"],["label.name","label.repository","label.requestCreated","",""]].concat(n)}},{key:"updateUserStatusConfirm",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;if(this.setState({settingAnchor:null}),!a)return!1;this.props.dispatchEvent(ae.addComformation("setting_user_status",{title:t.formatMessage({id:a.status?"message.userStatusDisabled":"message.userStatusEnabled"}),description:t.formatMessage({id:a.status?"message.userStatusDisabled_N":"message.userStatusEnabled_N"},{n:a.name}),reject:function(){return!0},accept:function(){return e.updateUserStatus()}}))}},{key:"updateUserStatus",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;et.updateUserStatus({user:a.id,status:a.status?D.commonStatus.delete:D.commonStatus.normal}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(r){e.props.dispatchEvent(ae.cancelComformation()),r.code||(e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:a.status?"message.disabled":"message.enabled"}),0)),e.getData(e.state))}))}},{key:"closeUserMFAConfirm",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;if(this.setState({settingAnchor:null}),!a)return!1;this.props.dispatchEvent(ae.addComformation("disable_user_mfa",{title:t.formatMessage({id:"message.closeMFA"}),description:t.formatMessage({id:"message.closeMFA_N"},{n:a.name}),reject:function(){return!0},accept:function(){return e.closeUserMFA()}}))}},{key:"closeUserMFA",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;et.closeUserMFA({user:a.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){e.props.dispatchEvent(ae.cancelComformation()),a.code||(e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.closed"}),0)),e.getData(e.state))}))}},{key:"resetPassword",value:function(){var e=this,t=this.props.intl,a=this.state,r=a.settingUser,i=a.password1,n=a.password2;return!!this.checkPasswordInput()&&(n!==i?(this.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.error.inputNotSame"}),2)),!1):void et.resetPassword({user:r.id,password:i}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){e.setState({resetPassword:!1}),e.props.dispatchEvent(ae.cancelComformation()),a.code||e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.reseted"}),0))})))}},{key:"checkPassword",value:function(){var e=this,t=this.props.intl,a=this.state.password;et.checkPassword({password:a}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code?e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.error._S_invalid"},{s:t.formatMessage({id:"label.password"})}),2)):e.setAdministrator()}))}},{key:"setAdministrator",value:function(){var e=this,t=this.props.intl,a=this.state.settingUser;this.setState({settingAdmin:!1}),et.setAdministrator({user:a.id,admin:a.admin?0:1}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||(e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.updated"}),0)),e.getData(e.state))}))}},{key:"addUser",value:function(){var e=this,t=this.state,a=t.name,r=t.email;if(!this.checkEmailInput())return!1;et.addUser({name:a,email:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code){if(!e.checkEmailResponse(t.code))return!1}else e.setState({addUser:!1,newPassword:t.data.password}),e.getData(e.state)}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state,n=i.pending,s=i.count,o=i.category,c=i.keyword,l=i.sort,p=i.page,d=i.pagesize,u=i.settingAnchor,m=i.settingUser,h=i.resetPassword,g=i.password1,b=i.password2,f=i.error,j=i.settingAdmin,v=i.password,O=i.addUser,y=i.name,x=i.email,S=i.newPassword;return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(jt,{currentTab:o,onChange:function(t,a){return!n&&e.setState({category:a})},tabs:[r.formatMessage({id:"label.all"}),r.formatMessage({id:"label.enabledMFA"}),r.formatMessage({id:"label.disabledMFA"}),r.formatMessage({id:"label.blocked"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:4,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.setState({addUser:!0,name:"",email:"",error:{}})},children:r.formatMessage({id:"label.addUser"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.searchByName"}),value:c,onChange:function(t){return e.setState({keyword:t.target.value})}}),Object(oe.jsx)(w.a,{variant:"h6",component:"span",className:a.sortLabel,children:r.formatMessage({id:"label.sort"})}),Object(oe.jsxs)(E.a,{select:!0,variant:"outlined",value:l,onChange:function(t){return e.setState({sort:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(pt.a,{value:"email",children:r.formatMessage({id:"label.email"})}),Object(oe.jsx)(pt.a,{value:"created",children:r.formatMessage({id:"label.createTime"})})]})]})}),n?Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(he.a,{})}):s?Object(oe.jsxs)(oe.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getTableData()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:a.page,children:Object(oe.jsx)(dt.a,{count:Math.ceil(s/d),page:p,onChange:function(t,a){return e.setState({page:a})},shape:"rounded",color:"primary"})})]}):Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(w.a,{variant:"caption",component:"span",children:r.formatMessage({id:"label.noMore"})})}),m&&Object(oe.jsxs)(oe.Fragment,{children:[Object(oe.jsxs)(ct.a,{anchorEl:u,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(u),onClose:function(t){return e.setState({settingAnchor:null})},children:[Object(oe.jsx)(pt.a,{onClick:function(t){return e.updateUserStatusConfirm()},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:m.status?"label.disable":"label.enable"})})}),m.status&&Object(oe.jsx)(pt.a,{onClick:function(t){return e.setState({resetPassword:!0,settingAnchor:null})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"message.resetPassword"})})}),m.status&&m.mfaEnabled&&Object(oe.jsx)(pt.a,{onClick:function(t){return e.closeUserMFAConfirm()},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"message.closeMFA"})})}),m.status&&Object(oe.jsx)(pt.a,{onClick:function(t){return e.setState({settingAdmin:!0,settingAnchor:null,password:""})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:m.admin?"message.cancelAdministrator":"message.setAdministrator"})})})]}),Object(oe.jsxs)(lt.a,{maxWidth:"sm",open:h,fullWidth:Boolean(!0),onClose:function(t){return e.setState({resetPassword:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"message.reset_N_Password"},{n:m.name})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.newPassword"})}),value:g,error:!!f.password1,helperText:f.password1,onChange:function(t){return e.setState({password1:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_retype"},{s:r.formatMessage({id:"label.newPassword"})}),value:b,onChange:function(t){return e.setState({password2:t.target.value})}})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({resetPassword:!1})},children:r.formatMessage({id:"label.cancel"})}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.resetPassword()},children:r.formatMessage({id:"label.ok"})})]})]})})]}),Object(oe.jsxs)(lt.a,{maxWidth:"sm",open:j,fullWidth:Boolean(!0),onClose:function(t){return e.setState({settingAdmin:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:m.admin?"message.cancelAdministrator":"message.setAdministrator"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,type:"password",variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.password"})}),value:v,onChange:function(t){return e.setState({password:t.target.value})}})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({settingAdmin:!1})},children:r.formatMessage({id:"label.cancel"})}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.checkPassword()},children:r.formatMessage({id:"label.ok"})})]})]})})]})]}),Object(oe.jsxs)(lt.a,{maxWidth:"sm",open:O,fullWidth:Boolean(!0),onClose:function(t){return e.setState({addUser:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.addUser"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.name"})}),value:y,error:!!f.name,helperText:f.name,onChange:function(t){return e.setState({name:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.email"})}),value:x,error:!!f.email,helperText:f.email,onChange:function(t){return e.setState({email:t.target.value})}})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({addUser:!1})},children:r.formatMessage({id:"label.cancel"})}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.addUser()},children:r.formatMessage({id:"label.ok"})})]})]})})]}),Object(oe.jsxs)(lt.a,{maxWidth:"sm",open:!!S,fullWidth:Boolean(!0),onClose:function(t){return e.setState({newPassword:""})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"message.successAddUser"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",children:[r.formatMessage({id:"label.name"}),":\u2003",y,"\u2003"]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",children:[r.formatMessage({id:"label.email"}),":\u2003",x,"\u2003"]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",children:[r.formatMessage({id:"label.newPassword"}),":\u2003",S,"\u2003",Object(oe.jsx)(Pe,{label:"label.copy",onClick:function(t){return X(S,(function(){return e.props.dispatchEvent(ae.NewNotification(r.formatMessage({id:"message.copied"}),0))}),t.target.parentElement)},icon:je.k})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.setState({newPassword:""})},children:r.formatMessage({id:"label.ok"})})})]})})]})]})}}]),a}(i.a.Component),Ot=Object(R.b)(Object(C.a)((function(e){return{search:{display:"flex"},keyword:{flexGrow:1},sortLabel:{lineHeight:e.spacing(4)+"px",padding:"0px "+e.spacing(2)+"px"},name:{display:"flex",textAlign:"left",alignItems:"center",margin:e.spacing(1)+"px 0px"},icon:{margin:e.spacing(1)},tag:{"& > *":{marginRight:e.spacing(1)}},page:{display:"flex",justifyContent:"flex-end"}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(vt))),yt=a(159),xt=a(462),St=a(95),Ct=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.currentLanguage,a=e.timestamp,r=e.absolute,i=e.relative,n="zh-cn"===t?O.a:St.a;a*=a<31536e6?1e3:1;var s=(new Date).getTime();return r||i||(Math.abs(a-s)<6048e5?i=!0:r=!0),Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[r&&a>0&&Object(yt.a)(a,"yyyy-MM-dd HH:mm:ss",{locale:n}),i&&!r&&a>0&&Object(xt.a)(a,s,{locale:n})]})}}]),a}(r.Component),Nt=Object(R.b)(Object(h.f)(Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}),(function(e,t){return{}}))(Ct))),Rt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,count:0,list:[],keyword:"",sort:"name",page:1,pagesize:20,settingAnchor:null,settingGroup:null,members:[],memberManage:!1,email:"",error:{}},r.mountedFlag=!1,r.timeout=null,r.checkAddResponse=se.codeValidator(Object(N.a)(r),[{name:"email",exceptionCode:1031,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",exceptionCode:1032,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotAddCreatorAsMember"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData(this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;return this.state.keyword===t.keyword&&this.state.sort===t.sort&&this.state.page===t.page||(this.state.page===t.page&&this.setState({page:1}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((function(){return a.getData(t)}),200)),!0}},{key:"getData",value:function(e){var t=this,a=e.keyword,r=e.sort,i=e.page,n=e.pagesize;this.setState({pending:!0}),et.groupList({keyword:a,sort:r,page:i,pagesize:n}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),!e.code&&t.setState({count:e.data.count,list:e.data.list})}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state.list,n=[];return i.map((function(t){return n.push([Object(oe.jsxs)(k.a,{className:a.name,children:[t.icon?Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.icon,className:a.icon}):Object(oe.jsx)(Be.a,{className:a.icon,children:t.name[0].substr(0,1).toUpperCase()}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.displayName})]}),Object(oe.jsx)(Nt,{timestamp:t.created}),t.status===D.commonStatus.normal?Object(oe.jsx)(Pe,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingGroup:t})},icon:je.gb}):Object(oe.jsx)($e,{color:"error",text:r.formatMessage({id:"message.deleted"})})]),!0})),[["auto","auto","auto"],["label.group","label.requestCreated",""]].concat(n)}},{key:"openMemberManage",value:function(){var e=this,t=this.state.settingGroup;if(this.setState({memberManage:!0,settingAnchor:null}),!t)return!1;et.groupMembers({group:t.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){return e.setState({members:t.data})}))}},{key:"getMembersTable",value:function(){var e,t=this,a=this.props,r=a.classes,i=a.intl,n=this.state.members,s=[],o=(e={},Object(Te.a)(e,L.Role.GUEST,"label.guest"),Object(Te.a)(e,L.Role.REPORTER,"label.reporter"),Object(Te.a)(e,L.Role.DEVELOPER,"label.developer"),Object(Te.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(Te.a)(e,L.Role.OWNER,"label.owner"),e);return n.map((function(e){return s.push([Object(oe.jsxs)(k.a,{className:r.name,children:[Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+e.icon,className:r.icon}),Object(oe.jsxs)(k.a,{children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:e.name}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.email})]})]}),Object(oe.jsx)($e,{color:"info",text:i.formatMessage({id:o[e.role]})}),e.creatorFlag&&Object(oe.jsx)($e,{color:"success",text:i.formatMessage({id:"label.creator"})}),Object(oe.jsx)(Nt,{timestamp:e.joined}),Object(oe.jsx)(k.a,{className:r.tag,children:e.deleteFlag||e.status===D.commonStatus.delete?Object(oe.jsx)($e,{color:"error",text:i.formatMessage({id:"message.deleted"})}):!e.creatorFlag&&e.role1024&&i(ae.NewNotification(r.formatMessage({id:"message.error.removeFail"}),2)):(i(ae.NewNotification(r.formatMessage({id:"message.removed"}),0)),t.openMemberManage())}))}},{key:"setRoleConfirm",value:function(e){var t=this,a=this.props.intl;if(!e)return!1;this.props.dispatchEvent(ae.addComformation("set_group_member_role",{title:a.formatMessage({id:"message.setGroupOwner_S"},{s:" '"+e.name+"'"}),description:"",reject:function(){return!0},accept:function(){return t.setGroupOwner(e)}}))}},{key:"setGroupOwner",value:function(e){var t=this,a=this.props,r=a.intl,i=a.dispatchEvent,n=this.state.settingGroup;et.setGroupOwner({group:n.id,user:e.id}).then(ne.withEventdispatcher(i)(ne.getJSONData)).then((function(e){i(ae.cancelComformation()),e.code?e.code>1024&&i(ae.NewNotification(r.formatMessage({id:"message.error.updateFail"}),2)):(i(ae.NewNotification(r.formatMessage({id:"message.updated"}),0)),t.openMemberManage())}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state,n=i.pending,s=i.count,o=i.keyword,c=i.sort,l=i.page,p=i.pagesize,d=i.settingAnchor,u=i.memberManage,m=i.email,h=i.error;return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.searchGroup"}),value:o,onChange:function(t){return e.setState({keyword:t.target.value})}}),Object(oe.jsx)(w.a,{variant:"h6",component:"span",className:a.sortLabel,children:r.formatMessage({id:"label.sort"})}),Object(oe.jsxs)(E.a,{select:!0,variant:"outlined",value:c,onChange:function(t){return e.setState({sort:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(pt.a,{value:"created",children:r.formatMessage({id:"label.createTime"})})]})]})}),n?Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(he.a,{})}):s?Object(oe.jsxs)(oe.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getTableData()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:a.page,children:Object(oe.jsx)(dt.a,{count:Math.ceil(s/p),page:l,onChange:function(t,a){return e.setState({page:a})},shape:"rounded",color:"primary"})})]}):Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(w.a,{variant:"caption",component:"span",children:r.formatMessage({id:"label.noMore"})})}),Object(oe.jsx)(ct.a,{anchorEl:d,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(d),onClose:function(t){return e.setState({settingAnchor:null})},children:Object(oe.jsx)(pt.a,{onClick:function(t){return e.openMemberManage()},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"label.memberManage"})})})}),Object(oe.jsxs)(lt.a,{maxWidth:"md",open:u,fullWidth:Boolean(!0),onClose:function(t){return e.setState({memberManage:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.memberManage"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.plsInputInvitedEmail"}),value:m,error:!!h.email,helperText:h.email,onChange:function(t){return e.setState({email:t.target.value})}}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.addMember()},children:r.formatMessage({id:"label.invite"})})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getMembersTable()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({memberManage:!1})},children:r.formatMessage({id:"label.cancel"})})})]})})]})]})}}]),a}(i.a.Component),Mt=Object(R.b)(Object(C.a)((function(e){return{search:{display:"flex"},keyword:{flexGrow:1},sortLabel:{lineHeight:e.spacing(4)+"px",padding:"0px "+e.spacing(2)+"px"},name:{display:"flex",textAlign:"left",alignItems:"center",margin:e.spacing(1)+"px 0px"},icon:{margin:e.spacing(1)},page:{display:"flex",justifyContent:"flex-end"},tag:{"& > *":{marginLeft:e.spacing(1)}}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Rt))),wt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,count:0,list:[],keyword:"",sort:"name",page:1,pagesize:20,settingAnchor:null,settingRepository:null,members:[],memberManage:!1,email:"",error:{}},r.mountedFlag=!1,r.timeout=null,r.checkAddResponse=se.codeValidator(Object(N.a)(r),[{name:"email",exceptionCode:1031,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",exceptionCode:1032,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotAddCreatorAsMember"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData(this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;return this.state.keyword===t.keyword&&this.state.sort===t.sort&&this.state.page===t.page||(this.state.page===t.page&&this.setState({page:1}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((function(){return a.getData(t)}),200)),!0}},{key:"getData",value:function(e){var t=this,a=e.keyword,r=e.sort,i=e.page,n=e.pagesize;this.setState({pending:!0}),et.repositoryList({keyword:a,sort:r,page:i,pagesize:n}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),!e.code&&t.setState({count:e.data.count,list:e.data.list})}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state.list,n=[];return i.map((function(t){return n.push([Object(oe.jsxs)(k.a,{className:a.name,children:[t.icon?Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.icon,className:a.icon}):Object(oe.jsx)(Be.a,{className:a.icon,children:t.name[0].substr(0,1).toUpperCase()}),Object(oe.jsxs)(w.a,{variant:"body1",component:"div",children:[t.group.displayName," / ",t.displayName]})]}),Object(oe.jsx)(Nt,{timestamp:t.created}),t.status===D.commonStatus.normal?Object(oe.jsx)(Pe,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingRepository:t})},icon:je.gb}):Object(oe.jsx)($e,{color:"error",text:r.formatMessage({id:"message.deleted"})})]),!0})),[["auto","auto","auto"],["label.repository","label.requestCreated",""]].concat(n)}},{key:"openMemberManage",value:function(){var e=this,t=this.state.settingRepository;if(this.setState({memberManage:!0,settingAnchor:null}),!t)return!1;et.repositoryMembers({repository:t.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){return e.setState({members:t.data})}))}},{key:"getMembersTable",value:function(){var e,t=this,a=this.props,r=a.classes,i=a.intl,n=this.state.members,s=[],o=(e={},Object(Te.a)(e,L.Role.GUEST,"label.guest"),Object(Te.a)(e,L.Role.REPORTER,"label.reporter"),Object(Te.a)(e,L.Role.DEVELOPER,"label.developer"),Object(Te.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(Te.a)(e,L.Role.OWNER,"label.owner"),e);return n.map((function(e){return s.push([Object(oe.jsxs)(k.a,{className:r.name,children:[Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+e.icon,className:r.icon}),Object(oe.jsxs)(k.a,{children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:e.name}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.email})]})]}),Object(oe.jsx)($e,{color:"info",text:i.formatMessage({id:o[e.role]})}),Object(oe.jsxs)(k.a,{children:[e.creatorFlag&&Object(oe.jsx)($e,{color:"success",text:i.formatMessage({id:"label.creator"})}),e.groupMember&&Object(oe.jsx)($e,{color:"success",text:i.formatMessage({id:"label.group"})+i.formatMessage({id:"label.member"})})]}),Object(oe.jsx)(Nt,{timestamp:e.joined}),Object(oe.jsxs)(k.a,{className:r.tag,children:[(e.deleteFlag||e.status===D.commonStatus.delete)&&Object(oe.jsx)($e,{color:"error",text:i.formatMessage({id:"message.deleted"})}),!e.creatorFlag&&!e.groupMember&&e.role1024&&i(ae.NewNotification(r.formatMessage({id:"message.error.removeFail"}),2)):(i(ae.NewNotification(r.formatMessage({id:"message.removed"}),0)),t.openMemberManage())}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state,n=i.pending,s=i.count,o=i.keyword,c=i.sort,l=i.page,p=i.pagesize,d=i.settingAnchor,u=i.memberManage,m=i.email,h=i.error;return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.searchRepository"}),value:o,onChange:function(t){return e.setState({keyword:t.target.value})}}),Object(oe.jsx)(w.a,{variant:"h6",component:"span",className:a.sortLabel,children:r.formatMessage({id:"label.sort"})}),Object(oe.jsxs)(E.a,{select:!0,variant:"outlined",value:c,onChange:function(t){return e.setState({sort:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(pt.a,{value:"created",children:r.formatMessage({id:"label.createTime"})})]})]})}),n?Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(he.a,{})}):s?Object(oe.jsxs)(oe.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getTableData()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:a.page,children:Object(oe.jsx)(dt.a,{count:Math.ceil(s/p),page:l,onChange:function(t,a){return e.setState({page:a})},shape:"rounded",color:"primary"})})]}):Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",children:Object(oe.jsx)(w.a,{variant:"caption",component:"span",children:r.formatMessage({id:"label.noMore"})})}),Object(oe.jsx)(ct.a,{anchorEl:d,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(d),onClose:function(t){return e.setState({settingAnchor:null})},children:Object(oe.jsx)(pt.a,{onClick:function(t){return e.openMemberManage()},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"label.memberManage"})})})}),Object(oe.jsxs)(lt.a,{maxWidth:"md",open:u,fullWidth:Boolean(!0),onClose:function(t){return e.setState({memberManage:!1})},children:[Object(oe.jsx)(ut.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.memberManage"})})}),Object(oe.jsx)(ht.a,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,className:a.search,children:[Object(oe.jsx)(E.a,{className:a.keyword,variant:"outlined",placeholder:r.formatMessage({id:"message.plsInputInvitedEmail"}),value:m,error:!!h.email,helperText:h.email,onChange:function(t){return e.setState({email:t.target.value})}}),"\u2003",Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.addMember()},children:r.formatMessage({id:"label.invite"})})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getMembersTable()})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({memberManage:!1})},children:r.formatMessage({id:"label.cancel"})})})]})})]})]})}}]),a}(i.a.Component),kt=Object(R.b)(Object(C.a)((function(e){return{search:{display:"flex"},keyword:{flexGrow:1},sortLabel:{lineHeight:e.spacing(4)+"px",padding:"0px "+e.spacing(2)+"px"},name:{display:"flex",textAlign:"left",alignItems:"center",margin:e.spacing(1)+"px 0px"},icon:{margin:e.spacing(1)},page:{display:"flex",justifyContent:"flex-end"},tag:{"& > *":{marginLeft:e.spacing(1)}}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(wt))),_t=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).mountedFlag=!1,r.state={allowRegister:!1,host:"",ssh:"",email_from:"",email_name:"",pending:!0,error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"host",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.url"})})},{name:"host",passPattern:/^http(s)?:\/\/[^/]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.urlPrefix"})})},{name:"ssh",passPattern:/^[^@]+@.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.sshPrefix"})})},{name:"email_name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.name"})})},{name:"email_from",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email_from",passPattern:/^[^@]+@[^@]+\.[^@]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.email"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData()}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"getData",value:function(){var e=this;this.setState({pending:!0}),et.getConfig().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.setState({pending:!1,host:t.data.host,ssh:t.data.ssh,allowRegister:t.data.allowRegister,email_from:t.data.email.from,email_name:t.data.email.name})}))}},{key:"updateConfig",value:function(){var e=this;if(!this.checkInput())return!1;var t={host:this.state.host,ssh:this.state.ssh,allowRegister:this.state.allowRegister,email:{name:this.state.email_name,from:this.state.email_from}},a={data:JSON.stringify(t)};this.setState({pending:!0}),et.setConfig(a).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({pending:!1}),t.code||(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.getData(),e.reloadUserData())}))}},{key:"reloadUserData",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.setting"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{className:a.paper,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.host"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,mg:9,lg:8,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.urlPrefix"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.host,error:!!this.state.error.host,helperText:this.state.error.host,placeholder:r.formatMessage({id:"label.urlPrefix"}),onChange:function(t){return e.setState({host:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.sshPrefix"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.ssh,error:!!this.state.error.ssh,helperText:this.state.error.ssh,placeholder:r.formatMessage({id:"label.sshPrefix"}),onChange:function(t){return e.setState({ssh:t.target.value})}})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:"\xa0"}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:" SMTP "})}),Object(oe.jsx)(k.a,{item:!0,xs:12,mg:9,lg:8,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.senderName"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.email_name,error:!!this.state.error.email_name,helperText:this.state.error.email_name,placeholder:r.formatMessage({id:"label.name"}),onChange:function(t){return e.setState({email_name:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.senderAddress"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.email_from,error:!!this.state.error.email_from,helperText:this.state.error.email_from,placeholder:r.formatMessage({id:"label.email"}),onChange:function(t){return e.setState({email_from:t.target.value})}})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:"\xa0"}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.register"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,mg:9,lg:8,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:[" ",r.formatMessage({id:"label.allowRegister"})," "]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Je.a,{checked:this.state.allowRegister,onChange:function(){e.setState({allowRegister:!e.state.allowRegister})},inputProps:{"aria-label":"secondary checkbox"}})})]})})]})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.updateConfig()},children:r.formatMessage({id:"label.save"})})})]})}}]),a}(i.a.Component),Et=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(_t)))),Tt=a(454),At=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.history,r=e.repositoryInfo,i=e.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:0,alignContent:"center",className:t.container,onClick:function(e){a.push(W(r.group.name,r.name))},children:[Object(oe.jsx)(k.a,{item:!0,xs:6,md:5,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,children:r.icon?Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+r.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,children:r.name.substr(0,1).toUpperCase()})}),Object(oe.jsxs)(k.a,{item:!0,xs:8,className:t.baseInfo,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"div",style:{lineHeight:"22px",height:"22px"},children:[r.group.displayName+"/",Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"span",children:[r.displayName,"\xa0\xa0\xa0\xa0",Object(oe.jsx)($e,{color:r.role===L.Role.OWNER?"containedInfo":"info",text:i.formatMessage({id:"label.roleID_"+r.role})})]})]}),r.description&&Object(oe.jsx)(w.a,{variant:"caption",component:"div",className:"text-overflow",style:{lineHeight:"20px",height:"18px"},children:r.description})]})]})}),Object(oe.jsxs)(k.a,{item:!0,xs:5,md:3,container:!0,alignItems:"center",className:t.counts,children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",style:{lineHeight:1},children:[Object(oe.jsx)(fe.a,{icon:je.r}),"\xa0\xa0",r.forkCount]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",style:{lineHeight:1},children:[Object(oe.jsx)(fe.a,{icon:je.y}),"\xa0\xa0",r.mergeRequestCount.open]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",style:{lineHeight:1},children:[Object(oe.jsx)(fe.a,{icon:je.v}),"\xa0\xa0",r.members.length]})})]}),Object(oe.jsx)(Tt.a,{mdDown:!0,children:Object(oe.jsx)(k.a,{item:!0,md:3,container:!0,alignItems:"center",children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[i.formatMessage({id:"label.updatedIn"}),": ",Object(oe.jsx)(Nt,{timestamp:r.updated})]})})}),Object(oe.jsx)(k.a,{item:!0,xs:1,style:{alignSelf:"center"},children:Object(oe.jsx)(Pe,{label:"label.setting",icon:je.E,onClick:function(e){e.stopPropagation(),a.push(W(r.group.name,r.name,"settings"))}})})]})}}]),a}(r.Component),Dt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{container:{height:e.spacing(9),padding:e.spacing(2)+"px "+e.spacing(3)+"px",border:"1px solid "+e.palette.border,marginBottom:"-1px",borderLeft:"none",borderRight:"none",cursor:"pointer","&:hover":{backgroundColor:e.palette.background.dark}},item:{height:e.spacing(5)},icon:{width:e.spacing(5),height:e.spacing(5)},baseInfo:{display:"flex",flexFlow:"column wrap",justifyContent:"center"},avatar:{width:e.spacing(4),height:e.spacing(4),marginRight:"-"+e.spacing(1)+"px",border:"1px solid "+e.palette.border},counts:{"& > div":{width:e.spacing(6)}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentGroupConfig:e.DataStore.currentGroupConfig}}),(function(e,t){return{}}))(At))))),It=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.imageName,r=e.title,n=e.notice,s=e.children,o=e.pending;return Object(oe.jsxs)(k.a,{container:!0,spacing:4,className:t.container,children:[o&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,className:t.loading,children:Object(oe.jsx)(he.a,{})})}),!o&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)("img",{className:[t.img,t.alignBlock].join(" "),src:D.HOSTS.STATIC_HOST+"static/"+D.STATIC_VERSION+"/images/"+a})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsx)(w.a,{className:[t.text,t.alignBlock].join(" "),variant:"body2",children:r}),Object(oe.jsx)("br",{}),Object(oe.jsx)(w.a,{className:[t.text,t.alignBlock,t.lighter].join(" "),variant:"body2",children:n})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)("div",{className:t.alignBlock,children:s})})]})]})}}]),a}(r.Component),Pt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{container:{marginTop:"10vh"},alignBlock:{textAlign:"center",margin:"0 auto",display:"block"},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},img:{width:e.spacing(20)},text:{maxWidth:e.spacing(60)},lighter:{color:e.palette.text.lighter}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(It))))),Ft=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={popoverAnchor:null,popoverTab:0},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.groupConfig,r=e.repositoryList,i=e.intl,n=e.history;return Object(oe.jsx)(M.a,{elevation:1,className:t.content,children:a&&a.group&&a.group.id?Object(oe.jsxs)(k.a,{container:!0,spacing:3,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:3,className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:a.group.icon?Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+a.group.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,children:a.group.name.substr(0,1).toUpperCase()})}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"h6",className:t.text,children:[a.group.displayName," \xa0\xa0"]}),Object(oe.jsx)(w.a,{variant:"caption",component:"div",className:t.subtext,children:a.group.description})]})]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(e){return n.push(W("groups",a.group.name,"repositories","new"))},children:i.formatMessage({id:"label.newRepository"})})})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body2",className:t.iconBar,children:[Object(oe.jsx)(fe.a,{icon:je.B}),"\xa0 ",i.formatMessage({id:"label._N_repository"},{n:r.filter(U.group(a.group.id)).length})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.y}),"\xa0",i.formatMessage({id:"label._N_mergeRequest"},{n:r.filter(U.group(a.group.id)).reduce((function(e,t){return e+t.mergeRequestCount.open}),0)})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.v}),"\xa0 ",i.formatMessage({id:"label._N_member"},{n:a.count.member})]})})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"space-between",children:Object(oe.jsx)(he.a,{})})})}}]),a}(r.Component),Lt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{content:{height:e.spacing(15.5),boxSizing:"border-box",borderBottom:"1px solid "+e.palette.border,borderRadius:0},icon:{height:e.spacing(5),width:e.spacing(5)},text:{height:e.spacing(3),lineHeight:e.spacing(3)+"px",overflow:"hidden"},subtext:{paddingTop:e.spacing(.5),height:e.spacing(1.5),lineHeight:e.spacing(1.5)+"px"},iconBar:{height:e.spacing(3),lineHeight:e.spacing(3)+"px"},clonePopvoer:{width:e.spacing(50)+"px"},cloneContent:{padding:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList}}),(function(e,t){return{}}))(Ft))))),Bt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={currentTab:0},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.currentGroupKey,i=t.currentGroupConfig,n=t.repositoryList,s=t.repositoryListPending,o=t.match,c=t.intl;n.sort((function(e,t){return t.updated-e.updated}));var l=n.filter(U.withPermission(L.PermissionCode.REPO_READ)),p=[c.formatMessage({id:"label.all"}),c.formatMessage({id:"label.IJoined"}),c.formatMessage({id:"label.ICreated"})],d=[function(){return!0},U.not(U.creator(a.id)),U.creator(a.id)];if(r)p[0]=c.formatMessage({id:"label.repository"}),l=l.filter(U.group(r));else if(o.params.repositoryID){var u=n.filter(U.id(o.params.repositoryID))[0];l=l.filter(U.fork(o.params.repositoryID)),p[0]=u?c.formatMessage({id:"label.forkFrom_S"},{s:[u.group.displayName,u.displayName].join("/")}):c.formatMessage({id:"label.forkFrom_S"},{s:c.formatMessage({id:"label.unknownRepository"})})}return l=l.filter(d[this.state.currentTab]),Object(oe.jsxs)(k.a,{container:!0,spacing:i.group?0:3,children:[i.group&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Lt,{groupConfig:i})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(jt,{tabs:p,currentTab:this.state.currentTab,onChange:function(t,a){e.setState({currentTab:a})},children:!i.group&&!o.params.repositoryID&&Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(){e.props.history.push(i.group?W("groups",i.group.name,"repositories","new"):W("repositories","new"))},children:c.formatMessage({id:"label.newRepository"})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[l.map((function(e,t){return Object(oe.jsx)(Dt,{repositoryInfo:e},t)})),0===l.length&&Object(oe.jsx)(Pt,{imageName:"repositories-empty.png",title:c.formatMessage({id:"message._S_listEmpty"},{s:c.formatMessage({id:"label.repository"})}),pending:s,notice:c.formatMessage({id:"message.repositoryListEmptyNotice"}),children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(){e.props.history.push(i.group?W("groups",i.group.name,"repositories","new"):W("repositories","new"))},children:c.formatMessage({id:"label.newRepository"})})})]})]})}}]),a}(i.a.Component),Ut=Object(R.b)(Object(C.a)((function(e){return{}}))(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,currentGroupKey:e.DataStore.currentGroupKey,currentGroupConfig:e.DataStore.currentGroupConfig,repositoryList:e.DataStore.repositoryList,repositoryListPending:e.DataStore.repositoryListPending}}),(function(e,t){return{}}))(Bt))),Gt=a(433);var Ht={list:function(){return ee.GET("/api/repository/list")},create:function(e){return ee.POST("/api/repository/create",e)},fork:function(e){return ee.POST("/api/repository/fork",e)},config:function(e){return ee.GET("/api/repository/config",null,e)},uploadAvatar:function(e){return ee.POST("/api/repository/uploadAvatar",e)},update:function(e){return ee.POST("/api/repository/update",e)},updateName:function(e){return ee.POST("/api/repository/updateName",e)},defaultBranch:function(e){return ee.POST("/api/repository/defaultBranch",e)},protectedBranchRules:function(e){return ee.GET("/api/repository/protectedBranchRules",null,e)},createProtectedBranchRule:function(e){return ee.POST("/api/repository/createProtectedBranchRule",e)},updateProtectedBranchRule:function(e){return ee.POST("/api/repository/updateProtectedBranchRule",e)},deleteProtectedBranchRule:function(e){return ee.POST("/api/repository/deleteProtectedBranchRule",e)},addMember:function(e){return ee.POST("/api/repository/addMember",e)},changeMemberRole:function(e){return ee.POST("/api/repository/changeMemberRole",e)},removeMember:function(e){return ee.POST("/api/repository/removeMember",e)},changeOwner:function(e){return ee.POST("/api/repository/changeOwner",e)},deleteRepository:function(e){return ee.POST("/api/repository/deleteRepository",e)},activities:function(e){return ee.GET("/api/repository/activities",null,e)},mergeRequests:function(e){return ee.GET("/api/repository/mergeRequests",null,e)},mergeRequestClose:function(e){return ee.POST("/api/repository/mergeRequestClose",e)},mergeRequestCommits:function(e){return ee.GET("/api/repository/mergeRequestCommits",null,e)},mergeRequestReview:function(e){return ee.POST("/api/repository/mergeRequestReview",e)},assignReviewer:function(e){return ee.POST("/api/repository/assignReviewer",e)},deleteReviewer:function(e){return ee.POST("/api/repository/deleteReviewer",e)},object:function(e){return ee.GET("/api/repository/object",null,e)},pathStack:function(e){return ee.GET("/api/repository/pathStack",null,e)},fileContent:function(e){return ee.GET("/api/repository/fileContent",null,e)},commitList:function(e){return ee.GET("/api/repository/commitList",null,e)},commitDetail:function(e){return ee.GET("/api/repository/commitDetail",null,e)},fileChanges:function(e){return ee.GET("/api/repository/fileChanges",null,e)},refListContainSHA:function(e){return ee.GET("/api/repository/refListContainSHA",null,e)},branchList:function(e){return ee.GET("/api/repository/branchList",null,e)},createBranch:function(e){return ee.POST("/api/repository/createBranch",e)},deleteBranch:function(e){return ee.POST("/api/repository/deleteBranch",e)},tagList:function(e){return ee.GET("/api/repository/tagList",null,e)},createTag:function(e){return ee.POST("/api/repository/createTag",e)},deleteTag:function(e){return ee.POST("/api/repository/deleteTag",e)},targetRepository:function(e){return ee.GET("/api/repository/targetRepository",null,e)},lastCommitLog:function(e){return ee.GET("/api/repository/lastCommitLog",null,e)},getBlameInfo:function(e){return ee.GET("/api/repository/blameInfo",null,e)},createMergeRequest:function(e){return ee.POST("/api/repository/createMergeRequest",e)},mergeRequestDetail:function(e){return ee.GET("/api/repository/mergeRequestDetail",null,e)},checkMergeType:function(e){return ee.POST("/api/repository/checkMergeType",e)},mergeBranch:function(e){return ee.POST("/api/repository/mergeBranch",e)},mergeRequestVersionList:function(e){return ee.GET("/api/repository/mergeRequestVersionList",null,e)},relatedMergeRequests:function(e){return ee.GET("/api/repository/relatedMergeRequests",null,e)},getWebhook:function(e){return ee.POST("/api/repository/getWebhook",e)},webhooks:function(e){return ee.POST("/api/repository/webhooks",e)},editWebhook:function(e){return ee.POST("/api/repository/editWebhook",e)},deleteWebhook:function(e){return ee.POST("/api/repository/deleteWebhook",e)},getRepositoryWebhookLogs:function(e){return ee.POST("/api/repository/getRepositoryWebhookLogs",e)},getRepositoryWebhookLogData:function(e){return ee.POST("/api/repository/getRepositoryWebhookLogData",e)}},qt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,name:"",group:"",slug:"",description:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"group",passPattern:/^[0-9a-f]{32}$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notChoose"},{s:r.props.intl.formatMessage({id:"label.group"})})},{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})},{name:"name",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"name",passPattern:/^[0-9a-zA-Z\\._-]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_has_illegal_character"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})},{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"slug",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"description",passPattern:/^.{0,200}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:200})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1025,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"name",exceptionCode:1026,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;if(!e.groupListPending&&e.currentUserInfo.id&&(!e.groupList.filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup()).length&&!e.history.location.pathname.match(/^\/groups\/new/i)))return e.dispatchEvent(ae.cancelComformation()),e.dispatchEvent(ae.addComformation("default_group_create_confirm",{title:this.props.intl.formatMessage({id:"message.defaultGroupReqiured"}),description:this.props.intl.formatMessage({id:"message.defaultGroupReqiuredDescription"}),reject:function(){e.history.push("/repositories")},accept:function(){e.history.push("/groups/new"),a.props.dispatchEvent(ae.cancelComformation())}})),!0;if(!t.group&&e.currentGroupKey)this.setState({group:e.currentGroupKey,pending:!1});else if(!t.group){var r=e.groupList.filter(U.withPermission(L.PermissionCode.GROUP_CREATE_REPO)).filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup());r[0]&&this.setState({group:r[0].id,pending:!1})}return!(this.state.description!==t.description&&t.description.length<201)||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"createRepository",value:function(){var e=this;if(!this.checkInput())return!0;var t={group:this.state.group,name:this.state.slug,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),Ht.create(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code)e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createRepositoryFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1});else{var a=t.data;Ht.list().then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.setState({pending:!1}),e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data}),e.props.history.push(W(a.group.name,a.name)))}))}})),!0}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=t.groupList,n=t.currentGroupKey,s=t.currentUserInfo,o=i.filter(U.withPermission(L.PermissionCode.GROUP_CREATE_REPO));return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.newRepository"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{className:a.paper,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error.input_S_placeholder"},{s:r.formatMessage({id:"label.repositoryName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.group,error:!!this.state.error.group,helperText:this.state.error.group,onChange:function(t){return e.setState({group:t.target.value})},disabled:!!n.length,InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(s),"/"]}),endAdornment:Object(oe.jsx)(Gt.a,{position:"end",children:"/"})},className:a.svg,children:o.map((function(e){return Object(oe.jsx)(pt.a,{value:e.id,children:e.name},e.id)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"label.repositorySlug"}),value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,error:!!this.state.error.description,helperText:this.state.error.description,value:this.state.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:a.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>200?a.outRange:"",children:[this.state.description.length,"/200"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/repositories")},children:r.formatMessage({id:"label.cancel"})}),Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.createRepository()},children:r.formatMessage({id:"label.ok"})})]})]})})})})})]})}}]),a}(i.a.Component),zt=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)},btn:{marginLeft:e.spacing(2)},svg:{"& svg":{right:e.spacing(3)}},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,currentGroupKey:e.DataStore.currentGroupKey,groupListPending:e.DataStore.groupListPending,groupList:e.DataStore.groupList}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(qt)))),Wt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,forkID:"",name:"",group:"",slug:"",description:"",error:{}},r.observed={forkRepositoryInfo:""},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"group",passPattern:/^[0-9a-f]{32}$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notChoose"},{s:r.props.intl.formatMessage({id:"label.group"})})},{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})},{name:"name",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"slug",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1025,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"name",exceptionCode:1026,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){if(!e.groupListPending&&e.currentUserInfo.id&&(!e.groupList.filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup()).length&&!e.history.location.pathname.match(/^\/groups\/new/i)))return e.dispatchEvent(ae.cancelComformation()),e.dispatchEvent(ae.addComformation("default_group_create_confirm",{title:this.props.intl.formatMessage({id:"message.defaultGroupReqiured"}),description:this.props.intl.formatMessage({id:"message.defaultGroupReqiuredDescription"}),reject:function(){e.history.push("/repositories")},accept:function(){e.history.push("/groups/new")}})),!0;var a=e.match.params.repositoryID,r=(e.repositoryList||[]).filter(U.id(a))[0];this.observed.forkRepositoryInfo!==JSON.stringify(r)&&(this.observed.forkRepositoryInfo=JSON.stringify(r),r&&this.setState({forkID:a,name:r.displayName,slug:r.name,description:r.description}));var i=e.groupList.filter(U.withPermission(L.PermissionCode.GROUP_CREATE_REPO));if(!t.group){var n=i.filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup());n&&n[0]&&n[0].id&&this.setState({group:n[0].id,pending:!1})}return!0}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"forkRepository",value:function(){var e=this;if(!this.checkInput())return!0;var t={forkID:this.state.forkID,group:this.state.group,name:this.state.slug,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),Ht.fork(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code)e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.forkRepositoryFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1});else{var a=t.data;Ht.list().then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.setState({pending:!1}),e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data}),e.props.history.push(W(a.group.name,a.name)))}))}})),!0}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=t.match,n=t.repositoryList,s=t.groupList,o=t.currentUserInfo,c=s.filter(U.withPermission(L.PermissionCode.GROUP_CREATE_REPO)),l=i.params.repositoryID,p=n.filter(U.id(l))[0];return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.forkRepository"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{className:a.paper,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:7,children:p?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.forkFrom_S"},{s:ne.getHost(o)+W(p.group.name,p.name)+" ("+p.group.displayName+"/"+p.displayName+")"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:this.state.group,error:!!this.state.error.group,helperText:this.state.error.group,onChange:function(t){return e.setState({group:t.target.value})},InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(o),"/"]}),endAdornment:Object(oe.jsx)(Gt.a,{position:"end",children:"/"})},className:a.svg,children:c.map((function(e){return Object(oe.jsx)(pt.a,{value:e.id,children:e.name},e.id)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.repositoryDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:this.state.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/repositories")},children:[Object(oe.jsx)(fe.a,{icon:He.k}),"\xa0 ",r.formatMessage({id:"label.cancel"})," \xa0"]}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.forkRepository()},children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.h}),"\xa0 ",r.formatMessage({id:"label.fork"})," \xa0"]})]})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})})})})]})}}]),a}(i.a.Component),Vt=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)},btn:{marginRight:e.spacing(2)},svg:{"& svg":{right:e.spacing(3)}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,repositoryList:e.DataStore.repositoryList,groupListPending:e.DataStore.groupListPending,groupList:e.DataStore.groupList}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Wt)))),Jt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,name:"",description:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})},{name:"name",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"name",passPattern:/^[0-9a-zA-Z\\._-]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_has_illegal_character"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"description",passPattern:/^.{0,200}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:200})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"name",exceptionCode:1026,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositoryName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.props.currentRepositoryConfig.repository&&this.setState({name:this.props.currentRepositoryConfig.repository.displayName,description:this.props.currentRepositoryConfig.repository.description})}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(e.currentRepositoryConfig)!==JSON.stringify(this.props.currentRepositoryConfig)&&e.currentRepositoryConfig.repository?(this.setState({name:e.currentRepositoryConfig.repository.displayName,description:e.currentRepositoryConfig.repository.description}),!1):!(this.state.description!==t.description&&t.description.length<201)||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"updateRepository",value:function(){var e=this;if(!this.checkInput())return!0;var t={repository:this.props.currentRepositoryConfig.repository.id,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),Ht.update(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(e.setState({pending:!1}),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.reloadRepositoryData())})),!0}},{key:"avatarUploaded",value:function(e){e.code||(this.props.dispatchEvent(ae.NewNotification(this.props.intl.formatMessage({id:"message.updated"}),0)),this.reloadRepositoryData())}},{key:"reloadRepositoryData",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),Ht.config({rKey:this.props.currentRepositoryConfig.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:r.header,children:n.formatMessage({id:"menu.general"})})}),a.repository?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.repositoryAvatar"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(ze,{name:"avatar",appendData:{repository:a.repository.id},src:a.repository.icon?D.HOSTS.STATIC_AVATAR_PREFIX+a.repository.icon:a.repository.name.substr(0,1).toUpperCase(),onUpdate:function(t){return e.avatarUploaded(t)},dataProvider:Ht.uploadAvatar})}),Object(oe.jsx)(k.a,{item:!0,xs:3}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.repositoryName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error.input_S_placeholder"},{s:n.formatMessage({id:"label.repositoryName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.repositoryDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:this.state.description,error:!!this.state.error.description,helperText:this.state.error.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:r.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>200?r.outRange:"",children:[this.state.description.length,"/200"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,style:{textAlign:"right"},children:[Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/"+a.group.name+"/"+a.repository.name+"/files")},children:["\xa0 ",n.formatMessage({id:"label.cancel"})," \xa0"]}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:r.btn,disabled:this.state.pending,onClick:function(t){return e.updateRepository()},children:[this.state.pending&&Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}),"\xa0 ",n.formatMessage({id:"label.update"})," \xa0"]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:4})]}):Object(oe.jsx)(i.a.Fragment,{children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})]})}}]),a}(i.a.Component),Kt=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},paper:{padding:e.spacing(2)},btn:{marginLeft:e.spacing(2)},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Jt)))),$t=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,branch:e.currentRepositoryConfig.repository?e.currentRepositoryConfig.repository.defaultBranch:"",rules:null,updateRuleId:null,rule:"",rolePush:L.Role.OWNER,roleMerge:L.Role.OWNER,error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"rule",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.rule"})})},{name:"rule",passPattern:/^([0-9a-zA-Z/]{1,30}|\/\^?.{1,30}\$?\/[igm]*)$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.rule"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props)}},{key:"shouldComponentUpdate",value:function(e,t){return!(JSON.stringify(e.currentRepositoryConfig)!==JSON.stringify(this.props.currentRepositoryConfig)&&!this.props.currentRepositoryConfig.repository)||(this.setState({branch:e.currentRepositoryConfig.repository.defaultBranch}),this.getData(e),!1)}},{key:"getData",value:function(e){var t=this,a=e.currentRepositoryConfig;if(!a.repository)return!1;this.setState({pending:!0}),Ht.protectedBranchRules({repository:a.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.cancelForm(),e.code||t.setState({pending:!1,rules:e.data})}))}},{key:"getTableData",value:function(){var e=this,t=this.props.classes,a=this.state,r=a.rules,n=a.updateRuleId,s=[];return!!r&&(r.map((function(a,r){return"create"===a||a.id===n?s.push(e.createForm()):s.push([Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:a.rule}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.getAllowRoler(a.rolePush)}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:e.getAllowRoler(a.roleMerge)}),Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.modification",icon:je.m,className:t.icon,onClick:function(t){return e.editRule(a)}}),Object(oe.jsx)(Pe,{label:"label.delete",className:[t.btn,t.icon].join(" "),onClick:function(t){return e.deleteConfirm(a.id,a.rule)},icon:je.H})]})]),!0})),[["150px","200px","200px","150px"],["label.branchRule","label.allowPush","label.allowMerge","label.operating"]].concat(s))}},{key:"getAllowRoler",value:function(e){var t=this.props.intl;return[t.formatMessage({id:"message.noBodyAllow"}),t.formatMessage({id:"label.owner"}),t.formatMessage({id:"label.maintianer"}),t.formatMessage({id:"label.developer"})].slice(e===L.Role.NOBODY?0:1,L.Role.NOBODY-e+1).join(" + ")}},{key:"createForm",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl;return[Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.rule,placeholder:r.formatMessage({id:"message.inputBranchOrRegexp"}),error:!!this.state.error.rule,helperText:this.state.error.rule,onChange:function(t){return e.setState({rule:t.target.value})}}),Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.rolePush,error:!!this.state.error.rolePush,helperText:this.state.error.rolePush,onChange:function(t){return e.setState({rolePush:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:L.Role.OWNER,children:this.getAllowRoler(L.Role.OWNER)}),Object(oe.jsx)(pt.a,{value:L.Role.MAINTAINER,children:this.getAllowRoler(L.Role.MAINTAINER)}),Object(oe.jsx)(pt.a,{value:L.Role.DEVELOPER,children:this.getAllowRoler(L.Role.DEVELOPER)}),Object(oe.jsx)(pt.a,{value:L.Role.NOBODY,children:this.getAllowRoler(L.Role.NOBODY)})]}),Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.roleMerge,error:!!this.state.error.roleMerge,helperText:this.state.error.roleMerge,onChange:function(t){return e.setState({roleMerge:t.target.value})},children:[Object(oe.jsx)(pt.a,{value:L.Role.OWNER,children:this.getAllowRoler(L.Role.OWNER)}),Object(oe.jsx)(pt.a,{value:L.Role.MAINTAINER,children:this.getAllowRoler(L.Role.MAINTAINER)}),Object(oe.jsx)(pt.a,{value:L.Role.NOBODY,children:this.getAllowRoler(L.Role.NOBODY)})]}),Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.ok",icon:je.e,onClick:function(t){return e.createProtectedBranchRule()},className:a.ok}),Object(oe.jsx)(Pe,{label:"label.cancel",icon:je.g,onClick:function(t){return e.cancelForm()},className:a.cancel})]})]}},{key:"settingDefaultBranch",value:function(){var e=this,t=this.props.currentRepositoryConfig,a=this.state.branch;if(!t.repository||a===t.repository.defaultBranch)return!1;this.setState({pending:!0}),Ht.defaultBranch({repository:t.repository.id,old:t.repository.defaultBranch,branch:a}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.reloadRepositoryData()),e.setState({pending:!1})}))}},{key:"reloadRepositoryData",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),Ht.config({rKey:this.props.currentRepositoryConfig.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:t.data})}))}},{key:"cancelForm",value:function(){var e=this.state.rules;e&&e.length&&"create"===e[e.length-1]&&(e=e.slice(0,e.length-1)),this.setState({rules:e,updateRuleId:null,rule:"",rolePush:L.Role.OWNER,roleMerge:L.Role.OWNER,error:{}})}},{key:"createRule",value:function(){var e=this.state.rules;e.length&&"create"===e[e.length-1]||(this.cancelForm(),this.setState({rules:[].concat(Object(T.a)(e),["create"])}))}},{key:"editRule",value:function(e){this.cancelForm(),this.setState({updateRuleId:e.id,rule:e.rule,rolePush:e.rolePush,roleMerge:e.roleMerge})}},{key:"deleteConfirm",value:function(e,t){var a=this,r=this.props.intl;this.cancelForm(),this.props.dispatchEvent(ae.addComformation("delete_protected_branch_rule",{title:r.formatMessage({id:"message.confirmDelete"},{s:r.formatMessage({id:"label.rule"})+" '"+t+"' "}),description:"",reject:function(){return!0},accept:function(){a.deleteRule(e,t)}}))}},{key:"createProtectedBranchRule",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.intl,i=this.state,n=i.rules,s=i.rule,o=i.rolePush,c=i.roleMerge,l=i.updateRuleId;if(!a.repository||!this.checkInput())return!1;var p=n.filter(U.rule(s));if(p.length>0&&(!l||l&&l!==p[0].id))return this.setState({error:{rule:r.formatMessage({id:"message.error._S_duplicate"},{s:r.formatMessage({id:"label.rule"})})}}),!1;var d={repository:a.repository.id,rule:s,rolePush:o,roleMerge:c};this.setState({pending:!0}),l?Ht.updateProtectedBranchRule(Object(y.a)(Object(y.a)({},d),{},{id:l})).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.getData(e.props)),e.setState({pending:!1})})):Ht.createProtectedBranchRule(Object(y.a)({},d)).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createProtectedBrancheRuleFail"}),2)):(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.created"}),0)),e.getData(e.props)),e.setState({pending:!1})}))}},{key:"deleteRule",value:function(e,t){var a=this,r=this.props.currentRepositoryConfig;if(!r.repository||!e||!t)return!1;this.setState({pending:!0}),Ht.deleteProtectedBranchRule({repository:r.repository.id,id:e,rule:t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.error.deleteFail"}),2)):(a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.deleted"}),0)),a.getData(a.props)),a.props.dispatchEvent(ae.cancelComformation()),a.setState({pending:!1})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.classes,i=t.intl,n=this.state,s=n.pending,o=n.branch,c=n.rules;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:r.header,children:i.formatMessage({id:"label.branchSetting"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,className:r.border,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.title,children:i.formatMessage({id:"label.defaultBranch"})}),Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:i.formatMessage({id:"message.defaultBranchDescription"})}),Object(oe.jsx)(k.a,{className:r.content,children:a.repository&&Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:3,children:Object(oe.jsxs)(E.a,{select:!0,fullWidth:!0,variant:"outlined",value:null!==o?o:"0",onChange:function(t){return e.setState({branch:t.target.value})},children:[!a.repository.defaultBranch&&null===o&&Object(oe.jsx)(pt.a,{value:0,children:i.formatMessage({id:"message.settingDefaultBranch"})}),a.branches.map((function(e,t){return Object(oe.jsx)(pt.a,{value:e.name,children:e.name},t)}))]})}),Object(oe.jsx)(k.a,{item:!0,xs:9,children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.settingDefaultBranch()},className:r.btn,disabled:s,children:i.formatMessage({id:"message.settingToDefaultBranch"})})})]})})]}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:8,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.title,children:i.formatMessage({id:"label.protectedBranch"})}),Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:i.formatMessage({id:"message.protectedBranchDescription"})})]}),Object(oe.jsx)(k.a,{item:!0,xs:4,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.createRule()},disabled:s,className:r.create,children:i.formatMessage({id:"message.createProtectedBranchRule"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.table,children:null!==c?0!==c.length?Object(oe.jsx)(ke,{data:this.getTableData()}):Object(oe.jsx)(Pt,{imageName:"branch-rules-empty.png",title:i.formatMessage({id:"message.protectedBranchRuleEmpty"}),notice:""}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:r.loading,children:Object(oe.jsx)(he.a,{})})})]})})]})}}]),a}(i.a.Component),Zt=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},title:{lineHeight:e.spacing(3)+"px",paddingBottom:e.spacing(2)},content:{paddingTop:e.spacing(3),paddingBottom:e.spacing(5)},create:{marginTop:e.spacing(1)},size:{fontSize:"12px"},btn:{marginLeft:e.spacing(1)},border:{borderBottom:"1px solid "+e.palette.border,marginBottom:e.spacing(3)},icon:{color:e.palette.text.light,"& svg":{width:"16px !important",height:"16px !important"}},ok:{"& svg":{color:e.palette.success.main+" !important"}},cancel:{marginLeft:e.spacing(1),"& svg":{width:"14px !important",height:"14px !important",padding:"2px",color:e.palette.error.main+" !important"}},table:{marginTop:e.spacing(3),"& tbody tr":{"&:hover":{background:e.palette.background.light+" !important"}},"& td":{lineHeight:e.spacing(6)+"px","& > div":{verticalAlign:"middle"}}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))($t)))),Yt=a(455),Xt=a(464),Qt=a(434),ea=a(457),ta=[{event:null,title:"menu.file_pl",checked:!1,divider:!0},{event:"hook:postReceive",title:"label.pushEvent",checked:!0,divider:!1},{event:"repo:fork",title:"label.forkRepository",checked:!1,divider:!1},{event:"branch:create",title:"label.newBranch",checked:!1,divider:!1},{event:"branch:remove",title:"label.deleteBranch",checked:!1,divider:!1},{event:"branch:changeDefaultBranch",title:["label.update_S_","label.defaultBranch"],checked:!1,divider:!1},{event:"tag:create",title:"label.newTag",checked:!1,divider:!1},{event:"tag:remove",title:"label.deleteTag",checked:!1,divider:!1},{event:"mergeRequest:create",title:"label.createMergeRequest",checked:!1,divider:!1},{event:"mergeRequest:close",title:"label.closeMergeRequest",checked:!1,divider:!1},{event:"mergeRequest:merge",title:"label.mergeRequest",checked:!1,divider:!1},{event:"mergeRequestReviewer:create",title:"message.selectReviewer",checked:!1,divider:!1},{event:"mergeRequestReviewer:delete",title:"message.deleteReviewer",checked:!1,divider:!1},{event:"mergeRequestReviewer:review",title:"label.reviewReviewer",checked:!1,divider:!1},{event:null,title:"label.member_pl",checked:!1,divider:!0},{event:"repo:addMember",title:"label.inviteMember",checked:!1,divider:!1},{event:"repo:changeMemberRole",title:"label.changeMemberRole",checked:!1,divider:!1},{event:"repo:removeMember",title:"label.removeMember",checked:!1,divider:!1},{event:null,title:"menu.setting_pl",checked:!1,divider:!0},{event:"repo:updateAvator",title:["label.update_S_","label.repositoryAvatar"],checked:!1,divider:!1},{event:"repo:updateName",title:["label.update_S_","label.repositoryName"],checked:!1,divider:!1},{event:"repo:updateDescription",title:["label.update_S_","label.repositoryDescription"],checked:!1,divider:!1},{event:"repo:changeOwner",title:["label.update_S_","label.owner"],checked:!1,divider:!1},{event:"repo:changeURL",title:["label.update_S_","label.repositoryURL"],checked:!1,divider:!1},{event:"repo:remove",title:"label.deleteRepository",checked:!1,divider:!1},{event:"branch:createProtectedBranchRule",title:"label.createProtectedBranchRule",checked:!1,divider:!1},{event:"branch:changeProtectedBranchRule",title:"label.changeProtectedBranchRule",checked:!1,divider:!1},{event:"branch:removeProtectedBranchRule",title:"label.removeProtectedBranchRule",checked:!1,divider:!1}],aa=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.title,a=e.children,r=e.classes;return Object(oe.jsxs)(k.a,{container:!0,className:r.list,children:[t&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.title,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:t?"":r.list2,children:a})]})}}]),a}(i.a.Component),ra=Object(C.a)((function(e){return{list:{border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px "},title:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3),background:e.palette.background.main,borderRadius:e.spacing(.5)+"px "+e.spacing(.5)+"px 0px 0px","& > div":{lineHeight:e.spacing(5)+"px"}},list2:{"& div:nth-child(1), & li:nth-child(1)":{border:"0px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(aa))),ia=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={webhookTab:0,webhookId:"",logData:null},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){}},{key:"getData",value:function(e){var t=this;if(!e)return!1;this.setState({webhookTab:0,webhookId:e,logData:null}),Ht.getRepositoryWebhookLogData({id:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.setState({logData:e.data})}))}},{key:"getTime",value:function(e,t){return Math.floor(100*(t-e))/100}},{key:"render",value:function(){var e=this,t=this.props,a=t.list,r=t.classes,i=t.intl,n=this.state,s=n.webhookTab,o=n.webhookId,c=n.logData;return Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ra,{title:"",children:a.map((function(t){return Object(oe.jsxs)(k.a,{container:!0,className:r.webhook,children:[Object(oe.jsxs)(k.a,{item:!0,xs:8,className:r.subline,children:[Object(oe.jsx)(fe.a,{icon:t.success?je.P:je.R,className:t.success?r.success:r.error}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:r.webhookid,children:t.id}),Object(oe.jsx)(Pe,{label:"label.copy",onClick:function(e){return X(t.id)},icon:je.k})]}),Object(oe.jsxs)(k.a,{item:!0,xs:4,className:[r.subline,r.date].join(" "),children:[Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:t.created}),o===t.id?Object(oe.jsx)(Pe,{label:"label.close",onClick:function(t){return e.setState({webhookId:""})},icon:je.g,className:r.more}):Object(oe.jsx)(Pe,{label:"label.detail",onClick:function(a){return e.getData(t.id)},icon:je.cb,className:r.more})]}),o&&o===t.id&&c&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.detail,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(jt,{tabs:[i.formatMessage({id:"label.request"}),Object(oe.jsxs)(k.a,{children:[i.formatMessage({id:"label.response"}),"\u2003",Object(oe.jsx)($e,{color:t.success?"success":"error",text:t.status+""})]})],currentTab:s,onChange:function(t,a){return e.setState({webhookTab:a})},children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:r.time,children:[Object(oe.jsx)(fe.a,{icon:je.f}),"\xa0",i.formatMessage({id:"message.useTime_n"},{n:e.getTime(t.start,t.end)})]})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h5",component:"div",children:i.formatMessage({id:"label.httpHeaders"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{className:r.code,children:0===s?Object.keys(c.request.headers).map((function(e){return Object(oe.jsxs)(k.a,{children:[Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"span",children:[e,":"]}),"\u2003",Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:c.request.headers[e]})]},e)})):Object.keys(c.response.headers).map((function(e){return Object(oe.jsxs)(k.a,{children:[Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"span",children:[e,":"]}),"\u2003",Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:c.response.headers[e]})]},e)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h5",component:"div",children:[0===s?i.formatMessage({id:"label.httpPayload"}):i.formatMessage({id:"label.httpBody"}),"\xa0",0===s&&Object(oe.jsx)(Oe,{type:"icon",doc:"/repo/webhooks.md"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{className:r.code,children:Object(oe.jsx)("pre",{children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:0===s?JSON.stringify(JSON.parse(c.request.body),null,4):c.response.body})})})})]})})]},t.id)}))})})}}]),a}(i.a.Component),na=Object(R.b)(Object(C.a)((function(e){return{webhook:{borderTop:"1px solid "+e.palette.border},subline:{display:"flex",alignItems:"center",height:e.spacing(6),padding:"0px "+e.spacing(3)+"px"},date:{justifyContent:"flex-end"},success:{color:e.palette.success.main},error:{color:e.palette.error.main},webhookid:{marginLeft:e.spacing(2),marginRight:e.spacing(1),borderRadius:e.spacing(.5),background:e.palette.background.dark,padding:e.spacing(.5)+"px "+e.spacing(1)+"px"},more:{marginLeft:e.spacing(2)},detail:{padding:e.spacing(3),paddingTop:0},time:{lineHeight:e.spacing(5)+"px"},code:{overflowX:"auto",padding:e.spacing(1),borderRadius:e.spacing(.5),background:e.palette.background.main,border:"1px solid "+e.palette.border}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ia))),sa=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,webhooks:null,webhook:null,pushEvent:"hook:postReceive",edit:!1,webhookLogs:null,isShowWebhookForm:!!window.location.search,url:"",secret:"",trigger:"1",active:"1",error:{},events:JSON.parse(JSON.stringify(ta))},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"url",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.url"})})},{name:"url",passPattern:/^http(s)?:\/\/.+/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.url"})})},{name:"url",passPattern:/^\S{0,255}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:255})},{name:"secret",passPattern:/^\S{0,255}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:255})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props)}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(e.currentRepositoryKey)===JSON.stringify(this.props.currentRepositoryKey)||(this.getData(e),!1)}},{key:"getData",value:function(e){var t=this,a=e.currentRepositoryKey;if(!a)return!1;this.setState({pending:!0}),Ht.webhooks({repository:a}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var a=e.data;a.map((function(e,a){return e.events=t.getEvents(e.events),!0})),t.setState({pending:!1,webhooks:a})}}))}},{key:"getWebhookLogs",value:function(e){var t=this;if(!e)return!1;Ht.getRepositoryWebhookLogs({webhook:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.setState({webhookLogs:e.data})}))}},{key:"editWebhook",value:function(){var e=this,t=this.props,a=t.intl,r=t.currentRepositoryKey,i=this.state,n=i.pending,s=i.isShowWebhookForm,o=i.trigger,c=i.url,l=i.secret,p=i.webhook,d=i.edit,u=i.active;if(n||!s||!this.checkInput())return!1;var m="1"===o?this.state.pushEvent:this.getCheckedEvents();m||this.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:"message.webhookEventsNeed"}),1)),this.setState({pending:!0}),Ht.editWebhook({repository:r,rwKey:p?p.id:"",url:c,secret:l,events:m,active:u}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({pending:!1}),t.code||(e.props.dispatchEvent(ae.NewNotification(a.formatMessage({id:d?"message.updated":"message.created"}),0)),e.initData(),e.setState({isShowWebhookForm:!1}),e.getData(e.props))}))}},{key:"updateWebhook",value:function(e){var t=this,a=this.props.currentRepositoryKey;if(!a)return!1;this.setState({pending:!0}),Ht.getWebhook({repository:a,rwKey:e.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var a=e.data;t.setState({pending:!1,edit:!0,webhook:a,isShowWebhookForm:!0,url:a.url,secret:a.secret,trigger:a.events===t.state.pushEvent?"1":"2",events:t.getEvents(a.events),active:a.active})}}))}},{key:"deleteWebhook",value:function(e){var t=this,a=this.props,r=a.currentRepositoryKey,i=a.intl;this.props.dispatchEvent(ae.addComformation("delete_webhook",{title:i.formatMessage({id:"message.confirmDelete"},{s:i.formatMessage({id:"label.webhook"})}),description:"",reject:function(){return!0},accept:function(){Ht.deleteWebhook({repository:r,rwKey:e.id}).then(ne.withEventdispatcher(t.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.props.dispatchEvent(ae.cancelComformation()),e.code||(t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.deleted"}),0)),t.getData(t.props))}))}}))}},{key:"getTableData",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=this.state.webhooks,n=[];return i.map((function(t){var i=0;return n.push([Object(oe.jsx)(be.a,{title:r.formatMessage({id:"1"===t.active?"label.enable":"label.disable"}),placement:"top",children:Object(oe.jsx)("div",{className:[a.dot,a.cursorPointer,"1"===t.active?"":a.close].join(" ")})}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.user}),Object(oe.jsx)(be.a,{title:t.url,placement:"top",children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:a.cursorPointer,onClick:function(a){return X(t.url,(function(){return e.props.dispatchEvent(ae.NewNotification(r.formatMessage({id:"label.copied"}),0))}))},children:t.url.substr(0,40)})}),Object(oe.jsx)(be.a,{title:t.secret,placement:"top",children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:a.cursorPointer,onClick:function(a){return X(t.secret,(function(){return e.props.dispatchEvent(ae.NewNotification(r.formatMessage({id:"label.copied"}),0))}))},children:t.secret.substr(0,20)})}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:t.events.map((function(e,t){return e.checked?4===++i?"...":i>4?"":("string"===typeof e.title?r.formatMessage({id:e.title}):r.formatMessage({id:e.title[0]},{s:r.formatMessage({id:e.title[1]})}))+"; ":""}))}),Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:Object(oe.jsx)(Nt,{timestamp:1*t.updated})}),Object(oe.jsxs)(w.a,{children:[Object(oe.jsx)(Pe,{label:"label.update",icon:je.m,className:a.icon,onClick:function(a){return e.updateWebhook(t)}}),Object(oe.jsx)(Pe,{label:"label.delete",icon:je.H,className:a.icon,onClick:function(a){return e.deleteWebhook(t)}}),Object(oe.jsx)(Pe,{label:"label.log",icon:je.X,className:a.icon,onClick:function(a){return e.getWebhookLogs(t.id)}})]})]),!0})),[["10px","auto","auto","auto","auto","auto","auto"],["","label.creator","label.url","label.webhookSecret","label.webhookTrigger","label.updateTime",""]].concat(n)}},{key:"initData",value:function(){this.setState({edit:!1,webhook:null,url:"",secret:"",trigger:"1",events:JSON.parse(JSON.stringify(ta)),active:"1"})}},{key:"getEvents",value:function(e){var t=JSON.parse(JSON.stringify(ta));return e=e.split(","),t.map((function(t){return e.indexOf(t.event)>-1?t.checked=!0:t.checked=!1,!0})),t}},{key:"changeEvent",value:function(e){var t=this.state.events,a=!1;e.target.checked&&(a=!0),t.map((function(t){return t.event===e.target.value&&(t.checked=a),!0})),this.setState({events:t})}},{key:"getCheckedEvents",value:function(){var e=this.state.events,t=[];return e.map((function(e){return e.checked&&t.push(e.event),!0})),t.join(",")}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,n=this.state,s=n.pending,o=n.webhooks,c=n.webhookLogs,l=n.isShowWebhookForm,p=n.url,d=n.secret,u=n.trigger,m=n.events,h=n.edit,g=n.active,b=n.error;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h6",component:"div",className:a.header,children:[r.formatMessage({id:"label.webhookSetting"}),!l&&Object(oe.jsx)(_.a,{color:"primary",disableElevation:!0,variant:"contained",disabled:s,onClick:function(t){return e.setState({isShowWebhookForm:!0})},children:r.formatMessage({id:"label.createWebhook"})})]})}),l&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:h?"label.updateWebhook":"label.createWebhook"})})}),Object(oe.jsxs)(k.a,{container:!0,className:a.webhookForm,children:[Object(oe.jsx)(k.a,{item:!0,xs:3}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",children:[r.formatMessage({id:"label.url"})," ",Object(oe.jsx)("span",{className:a.need,children:"*"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.url"})}),value:p,error:!!b.url,helperText:b.url,onChange:function(t){return e.setState({url:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.contentType"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:"application/json"})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",children:[r.formatMessage({id:"label.webhookSecret"}),"\xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/repo/webhooks.md"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error._S_empty"},{s:r.formatMessage({id:"label.webhookSecret"})}),value:d,error:!!b.secret,helperText:b.secret,onChange:function(t){return e.setState({secret:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.webhookTrigger"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(Xt.a,{value:u,onChange:function(t){return e.setState({trigger:t.target.value})},children:[Object(oe.jsx)(Qt.a,{value:"1",control:Object(oe.jsx)(Yt.a,{}),label:r.formatMessage({id:"label.pushTrigger"})}),Object(oe.jsx)(Qt.a,{value:"2",control:Object(oe.jsx)(Yt.a,{}),label:Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:r.formatMessage({id:"label.customeTrigger"})}),"\xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/repo/webhooks.md"})]})})]})}),"2"===u&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:1}),Object(oe.jsx)(k.a,{item:!0,xs:11,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,children:m.map((function(t,a){return t.divider?Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:t.title})})}):Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsx)(Qt.a,{control:Object(oe.jsx)(ea.a,{checked:t.checked,onChange:function(t){return e.changeEvent(t)},value:t.event}),label:"string"===typeof t.title?r.formatMessage({id:t.title}):r.formatMessage({id:t.title[0]},{s:r.formatMessage({id:t.title[1]})})})})}))})})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.status"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(Xt.a,{value:g,onChange:function(t){e.setState({active:t.target.value})},row:!0,children:[Object(oe.jsx)(Qt.a,{value:"1",control:Object(oe.jsx)(Yt.a,{}),label:r.formatMessage({id:"label.enable"})}),Object(oe.jsx)(Qt.a,{value:"2",control:Object(oe.jsx)(Yt.a,{}),label:r.formatMessage({id:"label.disable"})})]})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{color:"primary",variant:"outlined",disableElevation:!0,disabled:s,onClick:function(t){h&&e.initData(),e.setState({isShowWebhookForm:!1})},children:r.formatMessage({id:"label.cancel"})}),Object(oe.jsxs)(_.a,{color:"primary",variant:"contained",disableElevation:!0,className:a.btn,disabled:s,onClick:function(t){return e.editWebhook()},children:[s&&Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}),r.formatMessage({id:h?"label.update":"label.create"})]})]})]})})]})]}),!l&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.webhookList"})})}),o?o.length>0?Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ke,{data:this.getTableData()})}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:a.loading,children:Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:r.formatMessage({id:"message.webhookListEmpty"})})}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:a.loading,children:Object(oe.jsx)(he.a,{})})]}),c&&Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:a.logs,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"h5",component:"div",children:[r.formatMessage({id:"label.webhookLog"}),"\xa0\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:["(",r.formatMessage({id:"message.show_n_record"},{n:30}),")"]})]})}),Object(oe.jsx)(na,{list:c})]})]})]})}}]),a}(i.a.Component),oa=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{display:"flex",marginBottom:e.spacing(4),justifyContent:"space-between",lineHeight:e.spacing(5)+"px",borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},webhookForm:{paddingTop:e.spacing(6),marginBottom:e.spacing(2),paddingBottom:e.spacing(6)},btn:{verticalAlign:"bottom",marginTop:e.spacing(2),marginLeft:e.spacing(3)},icon:{color:e.palette.text.light},need:{color:"red"},logs:{marginTop:e.spacing(3)},dot:{width:e.spacing(1),height:e.spacing(1),borderRadius:"50%",backgroundColor:e.palette.primary.main},close:{backgroundColor:e.palette.error.main},cursorPointer:{cursor:"pointer"}}}))(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(sa))),ca=a(437),la=a(435),pa=a(436),da=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.currentUserInfo,a=e.item,r=e.classes,i=e.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+a.icon,className:r.avatar})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:r.userName,children:[a.name," \xa0",t.id===a.id&&Object(oe.jsx)($e,{text:i.formatMessage({id:"label.yourself"})})]})})]})}}]),a}(i.a.Component),ua=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{avatar:{width:e.spacing(4),height:e.spacing(4)},userName:{lineHeight:e.spacing(4)+"px"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{}}))(da))))),ma=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"update",value:function(e){"number"===typeof e?this.props.onUpdate(e):this.props.onRemove(e)}},{key:"render",value:function(){var e=this,t=this.props,a=t.item,r=t.intl,n=t.disabled,s=t.classes,o=t.removeable;return n=n||a.creatorFlag||a.deleteFlag,Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Ne.a,{children:Object(oe.jsx)(ua,{item:a})}),Object(oe.jsx)(Ne.a,{children:a.email}),Object(oe.jsx)(Ne.a,{className:s.padding,align:"right",children:Object(oe.jsxs)(E.a,{select:!0,disabled:n,className:n?s.disabled:"",value:a.role,onChange:function(t){return t.target.value&&e.update(t.target.value)},align:"right",InputProps:{classes:{underline:s.underline}},children:[Object(oe.jsx)(la.a,{disableSticky:!0,children:r.formatMessage({id:"label.role"})}),Object(oe.jsx)(pt.a,{value:L.Role.GUEST,children:r.formatMessage({id:"label.guest"})},L.Role.GUEST),Object(oe.jsx)(pt.a,{value:L.Role.REPORTER,children:r.formatMessage({id:"label.reporter"})},L.Role.REPORTER),Object(oe.jsx)(pt.a,{value:L.Role.DEVELOPER,children:r.formatMessage({id:"label.developer"})},L.Role.DEVELOPER),Object(oe.jsx)(pt.a,{value:L.Role.MAINTAINER,children:r.formatMessage({id:"label.maintianer"})},L.Role.MAINTAINER),Object(oe.jsx)(pt.a,{value:L.Role.OWNER,children:r.formatMessage({id:"label.owner"})},L.Role.OWNER),o&&Object(oe.jsx)(pa.a,{className:s.split}),o&&Object(oe.jsxs)(pt.a,{value:a.id,className:s.deleteMember,children:[Object(oe.jsx)(fe.a,{icon:je.H}),"\xa0\xa0",r.formatMessage({id:"label.removeMember"})]},a.id)]})})]})}}]),a}(i.a.Component),ha=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{padding:{paddingRight:e.spacing(1)},underline:{"&&&:before":{borderBottom:"none"},"&&:after":{borderBottom:"none"}},backgroundColor:{"&&&:focus":{backgroundColor:"none"}},deleteMember:{color:e.palette.error.main},split:{margin:e.spacing(1)+"px 0px"},disabled:{"& svg":{opacity:0}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ma))))),ga=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"deleteConfirm",value:function(e,t){var a=this,r=this.props,i=r.intl,n=r.removeMember,s=r.isRepository,o=r.currentConfig;this.props.dispatchEvent(ae.addComformation("branch_remove",{title:i.formatMessage({id:"message.confirmDelete"},{s:i.formatMessage({id:"label.member"})+" '"+t+"' "}),description:"",reject:function(){return!0},accept:function(){n(s?o.repository.id:o.group.id,e),a.props.dispatchEvent(ae.cancelComformation())}}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.intl,r=t.classes,n=t.currentConfig,s=t.changeMemberRole,o=t.isRepository,c=t.groupMember,l=t.currentUserInfo,p=c?n.members.filter(U.notDeleted()).filter(U.groupMember()):n.members.filter(U.notDeleted()).filter(U.notGroupMember()),d=n.members.filter(U.id(l.id))[0];return Object(oe.jsx)(i.a.Fragment,{children:n?Object(oe.jsx)(ca.a,{component:M.a,children:Object(oe.jsxs)(Se.a,{children:[Object(oe.jsx)(Re.a,{children:Object(oe.jsxs)(Me.a,{className:r.textMain,children:[Object(oe.jsx)(Ne.a,{width:"40%",children:c?a.formatMessage({id:"label.groupMember"}):a.formatMessage({id:"label.repositoryMember"})}),Object(oe.jsx)(Ne.a,{width:"40%",children:a.formatMessage({id:"label.email"})}),Object(oe.jsxs)(Ne.a,{width:"20%",align:"right",children:[a.formatMessage({id:"label.role"})," ",Object(oe.jsx)(Oe,{doc:"/common/role.md",type:"icon"})]})]})}),Object(oe.jsx)(Ce.a,{children:p.map((function(t,a){return Object(oe.jsx)(Me.a,{className:r.tableRow,children:Object(oe.jsx)(ha,{item:t,disabled:d.role1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.AddFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(e.setState({pending:!1,email:""}),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.Added"}),0)),e.reloadRepositoryData())})),!0}},{key:"changeMemberRole",value:function(e,t,a){var r=this,i={repository:e,userID:t,roleID:a};Ht.changeMemberRole(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&r.props.dispatchEvent(ae.NewNotification(r.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(r.props.dispatchEvent(ae.NewNotification(r.props.intl.formatMessage({id:"message.updated"}),0)),r.reloadRepositoryData())}))}},{key:"removeMember",value:function(e,t){var a=this,r={repository:e,userID:t};Ht.removeMember(r).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.error.removeFail"}),2)):(a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.removed"}),0)),a.reloadRepositoryData())}))}},{key:"reloadRepositoryData",value:function(){var e=this;Ht.config({rKey:this.props.currentRepositoryConfig.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.classes,i=t.intl;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:"flex-end",className:r.marginBottom,children:[Object(oe.jsx)(k.a,{item:!0,xs:3,children:Object(oe.jsx)(E.a,{fullWidth:!0,value:this.state.email,error:!!this.state.error.email,helperText:this.state.error.email,onChange:function(t){return e.setState({email:t.target.value})},onKeyDown:function(t){13===t.keyCode&&e.addMembers()},variant:"outlined",placeholder:i.formatMessage({id:"message.plsInputInvitedEmail"})})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,onClick:function(t){return e.addMembers()},disabled:this.state.pending,children:[this.state.pending?[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," "]:"",i.formatMessage({id:"label.inviteMember"})]})})]}),Object(oe.jsx)(k.a,{container:!0,spacing:2,className:r.marginBottom,children:a.repository?Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ba,{currentConfig:a,changeMemberRole:function(t,a,r){return e.changeMemberRole(t,a,r)},removeMember:function(t,a){return e.removeMember(t,a)},isRepository:Boolean(!0),groupMember:Boolean(!1)})}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:r.loading,children:Object(oe.jsx)(he.a,{})})}),Object(oe.jsx)(k.a,{container:!0,spacing:2,children:a.members?a.members.filter(U.notDeleted()).filter(U.groupMember()).length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ba,{currentConfig:a,changeMemberRole:function(t,a,r){return e.changeMemberRole(t,a,r)},removeMember:function(t,a){return e.removeMember(t,a)},isRepository:Boolean(!0),groupMember:Boolean(!0)})}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:r.loading,children:Object(oe.jsx)(he.a,{})})})]})}}]),a}(i.a.Component),ja=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)},btn:{marginRight:e.spacing(2)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},marginBottom:{marginBottom:e.spacing(4)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(fa))));var va={list:function(){return ee.GET("/api/group/list")},create:function(e){return ee.POST("/api/group/create",e)},config:function(e){return ee.GET("/api/group/config",null,e)},mergeRequests:function(e){return ee.GET("/api/group/mergeRequests",null,e)},activities:function(e){return ee.GET("/api/group/activities",null,e)},uploadAvatar:function(e){return ee.POST("/api/group/uploadAvatar",e)},update:function(e){return ee.POST("/api/group/update",e)},addMember:function(e){return ee.POST("/api/group/addMember",e)},changeMemberRole:function(e){return ee.POST("/api/group/changeMemberRole",e)},removeMember:function(e){return ee.POST("/api/group/removeMember",e)},changeOwner:function(e){return ee.POST("/api/group/changeOwner",e)},updateName:function(e){return ee.POST("/api/group/updateName",e)},deleteGroup:function(e){return ee.POST("/api/group/deleteGroup",e)}},Oa=Object(C.a)((function(e){return{root:{minHeight:e.spacing(6)}}}))(pt.a),ya=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,groupConfig:{},slug:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"slug",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1025,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.repositorySlug"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){return""!==t.slug||!e.currentRepositoryConfig.repository||(this.setState({slug:e.currentRepositoryConfig.repository.name}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1,this.setState({slug:""})}},{key:"deleteRepository",value:function(){var e=this;this.props.dispatchEvent(ae.addComformation("repository_delete_repository",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.repositoryDeleteRepositoryNotice"}),reject:function(){return!0},accept:function(){e.deleteRepositoryConfirmed(),e.props.dispatchEvent(ae.cancelComformation())}}))}},{key:"deleteRepositoryConfirmed",value:function(){var e=this;this.props.dispatchEvent(ae.addComformation("repository_delete_repository_confirm",{title:this.props.intl.formatMessage({id:"label.dangerOperationConfirm"}),description:this.props.intl.formatMessage({id:"message.repositoryDeleteRepositoryConfirmNotice"}),reject:function(){return!0},accept:function(){var t={repository:e.props.currentRepositoryConfig.repository.id};e.setState({pending:!0}),Ht.deleteRepository(t).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.deleteFail"}),0)):(e.reloadRepositoryGroupList(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.deleted"}),0)),e.props.history.push(W("repositories"))),e.props.dispatchEvent(ae.cancelComformation()),e.setState({pending:!1})}))}}))}},{key:"changeSlug",value:function(){var e=this;if(!this.checkInput())return!1;this.props.dispatchEvent(ae.addComformation("repository_change_slug",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.repositoryChangeURLNotice"}),reject:function(){return!0},accept:function(){var t={repository:e.props.currentRepositoryConfig.repository.id,name:e.state.slug};e.setState({pending:!0}),Ht.updateName(t).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)&&t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(e.reloadRepositoryData(),e.reloadRepositoryGroupList(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.props.history.push(W("repositories"))),e.setState({pending:!1}),e.props.dispatchEvent(ae.cancelComformation())}))}}))}},{key:"changeOwner",value:function(e){var t=this;this.props.dispatchEvent(ae.addComformation("repository_change_creator",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.repositoryChangeCreatorNotice"}),reject:function(){return!0},accept:function(){var a={repository:t.props.currentRepositoryConfig.repository.id,userID:e};t.setState({pending:!0}),Ht.changeOwner(a).then(ne.withEventdispatcher(t.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.updateFail"}),2)):(t.reloadRepositoryData(),t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.updated"}),0))),t.props.dispatchEvent(ae.cancelComformation()),t.setState({pending:!1})}))}}))}},{key:"reloadRepositoryData",value:function(){var e=this;Ht.config({rKey:this.props.currentRepositoryConfig.repository.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:t.data})}))}},{key:"reloadRepositoryGroupList",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.groupList.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.currentUserInfo,i=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:i.header,children:n.formatMessage({id:"label.repositoryAdvancedSetting"})})}),a.repository?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.updateCreator"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:a.repository.owner,onChange:function(t){return e.changeOwner(t.target.value)},children:a.members.map((function(e,t){return Object(oe.jsx)(Oa,{value:e.id,children:Object(oe.jsx)(ua,{item:e})},t)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.section,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.updateRepositoryURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(r),"/",a.group.name,"/"]})},onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(_.a,{color:"primary",variant:"contained",disableElevation:!0,onClick:function(t){return e.changeSlug()},disabled:this.state.pending,children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.d}),"\xa0 ",n.formatMessage({id:"label.save"})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.section,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.deleteRepository"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsx)(w.a,{variant:"body2",children:n.formatMessage({id:"message.repositoryDeleteTipFirst"})}),Object(oe.jsx)(w.a,{variant:"body2",children:n.formatMessage({id:"message.repositoryDeleteTipSecond"})})]}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(_.a,{variant:"contained",disableElevation:!0,onClick:function(t){return e.deleteRepository()},className:i.warning,disabled:this.state.pending,children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:je.H}),"\xa0 ",n.formatMessage({id:"label.deleteRepository"})]})})]})})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:i.loading,children:Object(oe.jsx)(he.a,{})})]})}}]),a}(i.a.Component),xa=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},section:{marginTop:e.spacing(3)},paper:{padding:e.spacing(2)},btn:{marginRight:e.spacing(2)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},warning:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ya)))),Sa=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.theme,r=e.history,i=e.groupInfo,n=e.repositoryList,s=e.intl;return Object(oe.jsx)(at.a,{className:t.card,onClick:function(){r.push(W("groups",i.name))},children:Object(oe.jsx)(rt.a,{className:t.content,style:{paddingBottom:a.spacing(2)},component:"div",children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:3,className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:i.icon?Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+i.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:t.icon,children:i.name.substr(0,1).toUpperCase()})}),Object(oe.jsxs)(k.a,{item:!0,className:t.title,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:"text-overflow",children:i.displayName}),Object(oe.jsx)(w.a,{variant:"body1",className:t.ownerMarker,children:Object(oe.jsx)($e,{color:i.role===L.Role.OWNER?"containedInfo":"info",text:s.formatMessage({id:"label.roleID_"+i.role})})})]})]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(Pe,{label:"label.setting",icon:je.E,onClick:function(e){e.stopPropagation(),r.push(W("groups",i.name,"settings"))}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"caption",component:"div",className:[t.description,"text-overflow"].join(" "),children:i.description||"..."})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[Object(oe.jsx)(fe.a,{icon:je.B,className:t.listIcon})," \xa0",n.filter(U.group(i.id)).length," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.v,className:t.listIcon})," \xa0",i.members.length]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(pa.a,{})}),Object(oe.jsx)(k.a,{container:!0,item:!0,xs:12,children:i.members.map((function(e,a){return e.icon?Object(oe.jsx)(Be.a,{className:t.avatar,src:D.HOSTS.PGYER_AVATAR_HOST+e.icon},a):Object(oe.jsx)(Be.a,{className:t.avatar,children:e.name.substr(0,1).toUpperCase()},a)}))})]})})})}}]),a}(r.Component),Ca=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{card:{cursor:"pointer",transition:e.transitions.create("box-shadow"),boxShadow:e.boxShadow.card,"&:hover":{boxShadow:e.boxShadow.cardHover}},content:{padding:e.spacing(3),paddingBottom:e.spacing(2)},icon:{width:e.spacing(6),height:e.spacing(6)},title:{maxWidth:e.spacing(16),overflow:"hidden"},ownerMarker:{lineHeight:e.spacing(3)+"px"},description:{height:e.spacing(1.5),lineHeight:e.spacing(1.5)+"px"},avatar:{marginRight:e.spacing(1),width:e.spacing(3),height:e.spacing(3)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList}}),(function(e,t){return{}}))(Sa))))),Na=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={currentTab:0},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this,t=this.props,a=t.groupList,r=t.currentUserInfo,i=t.classes,n=t.intl,s=[n.formatMessage({id:"label.all"}),n.formatMessage({id:"label.IJoined"}),n.formatMessage({id:"label.ICreated"})],o=[function(){return!0},U.not(U.creator(r.id)),U.creator(r.id)],c=a.filter(U.withPermission(L.PermissionCode.REPO_READ)).filter(o[this.state.currentTab]);return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(jt,{tabs:s,currentTab:this.state.currentTab,onChange:function(t,a){e.setState({currentTab:a})},children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(){e.props.history.push(W("groups","new"))},children:n.formatMessage({id:"label.newGroup"})})})}),c.map((function(e,t){return Object(oe.jsx)(k.a,{item:!0,xs:12,sm:6,md:4,lg:3,className:i.container,children:Object(oe.jsx)(Ca,{groupInfo:e},t)},t)})),0===c.length&&Object(oe.jsx)(Pt,{imageName:"repositories-empty.png",title:n.formatMessage({id:"message._S_listEmpty"},{s:n.formatMessage({id:"label.group"})}),notice:n.formatMessage({id:"message.groupListEmptyNotice"}),children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(){e.props.history.push(W("groups","new"))},children:n.formatMessage({id:"label.newGroup"})})})]})}}]),a}(i.a.Component),Ra=Object(R.b)(Object(C.a)((function(e){return{container:{minWidth:e.spacing(40)}}}))(Object(l.b)((function(e,t){return{groupList:e.DataStore.groupList,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{}}))(Na))),Ma=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,personalGroupCreateFlag:!1,groupList:null,groupListChecked:!1,name:"",slug:"",description:"",error:{}},r.observed={forkRepositoryInfo:""},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"name",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})},{name:"name",passPattern:/^[0-9a-zA-Z\\._-]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_has_illegal_character"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupURL"})})},{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupSlug"})})},{name:"slug",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"description",passPattern:/^.{0,200}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:200})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1027,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.groupURL"})})},{name:"name",exceptionCode:1028,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.groupName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){var e=this;this.mountedFlag=!0,va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.props.dispatchEvent({type:"data.groupList.update",data:t.data}),e.setState({groupList:t.data}))}))}},{key:"shouldComponentUpdate",value:function(e,t){if(e.currentUserInfo&&e.currentUserInfo.id&&null!==t.groupList&&!t.groupListChecked)if(t.groupList.filter(U.creator(e.currentUserInfo.id)).filter(U.userGroup()).length)this.setState({groupListChecked:!0,personalGroupCreateFlag:!1,pending:!1});else{var a=e.currentUserInfo.email.split("@");this.setState({groupListChecked:!0,personalGroupCreateFlag:!0,pending:!1,name:a[0],slug:ne.makeSlug(a[0])})}return!(this.state.description!==t.description&&t.description.length<201)||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"createGroup",value:function(){var e=this;if(!this.checkInput())return!0;var t={name:this.state.slug,type:this.state.personalGroupCreateFlag?B.USER:B.NORMAL,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),va.create(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code)e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createGroupFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1});else{var a=t.data;va.list().then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.setState({pending:!1}),e.props.dispatchEvent({type:"data.groupList.update",data:t.data}),e.props.history.push(W("groups",a.name)))}))}})),!0}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=t.currentUserInfo;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:r.formatMessage({id:"label.newGroup"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(M.a,{className:a.paper,children:null!==this.state.groupList?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[this.state.personalGroupCreateFlag&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"body1",component:"div",gutterBottom:!0,children:r.formatMessage({id:"message.createPersonalGroupNotice"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.groupName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message.error.input_S_placeholder"},{s:r.formatMessage({id:"label.groupName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.groupURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:r.formatMessage({id:"message._S_empty"},{s:r.formatMessage({id:"label.path"})}),value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(i),"/"]})},onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:r.formatMessage({id:"label.groupDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:this.state.description,error:!!this.state.error.description,helperText:this.state.error.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:a.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>200?a.outRange:"",children:[this.state.description.length,"/200"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/groups")},children:[Object(oe.jsx)(fe.a,{icon:He.k}),"\xa0 ",r.formatMessage({id:"label.cancel"})," \xa0"]}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:a.btn,disabled:this.state.pending,onClick:function(t){return e.createGroup()},children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.h}),"\xa0 ",r.formatMessage({id:"label.ok"})," \xa0"]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:3})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})})]})}}]),a}(i.a.Component),wa=Object(R.b)(Object(C.a)((function(e){return{paper:{padding:e.spacing(2)},btn:{marginLeft:e.spacing(2)},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Ma)))),ka=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,name:"",description:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"name",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})},{name:"name",passPattern:/^[0-9a-zA-Z\\._-]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_has_illegal_character"},{s:r.props.intl.formatMessage({id:"label.groupName"})})},{name:"description",passPattern:/^.{0,200}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:200})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"name",exceptionCode:1028,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.groupName"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.props.currentGroupConfig.group&&this.setState({name:this.props.currentGroupConfig.group.displayName,description:this.props.currentGroupConfig.group.description})}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(e.currentGroupConfig)!==JSON.stringify(this.props.currentGroupConfig)&&e.currentGroupConfig.group?(this.setState({name:e.currentGroupConfig.group.displayName,description:e.currentGroupConfig.group.description}),!1):!(this.state.description!==t.description&&t.description.length<201)||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"updateGroup",value:function(){var e=this;if(!this.checkInput())return!0;var t={group:this.props.currentGroupConfig.group.id,displayName:this.state.name,description:this.state.description};return this.setState({pending:!0}),va.update(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(e.setState({pending:!1}),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.reloadGroupData())})),!0}},{key:"avatarUploaded",value:function(e){e.code||(this.props.dispatchEvent(ae.NewNotification(this.props.intl.formatMessage({id:"message.updated"}),0)),this.reloadGroupData())}},{key:"reloadGroupData",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.groupList.update",data:t.data})})),va.config({gKey:this.props.currentGroupConfig.group.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentGroupConfig.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentGroupConfig,r=t.classes,i=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:r.header,children:i.formatMessage({id:"menu.general"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:a.group?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:i.formatMessage({id:"label.groupAvatar"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(ze,{name:"avatar",appendData:{group:a.group.id},src:a.group.icon?D.HOSTS.STATIC_AVATAR_PREFIX+a.group.icon:a.group.name.substr(0,1).toUpperCase(),onUpdate:function(t){return e.avatarUploaded(t)},dataProvider:va.uploadAvatar})}),Object(oe.jsx)(k.a,{item:!0,xs:3}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:i.formatMessage({id:"label.groupName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:i.formatMessage({id:"message.error._S_empty"},{s:i.formatMessage({id:"label.groupName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){var a=t.target.value,r=ne.makeSlug(a);e.setState({name:a,slug:r,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:i.formatMessage({id:"label.groupDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,error:!!this.state.error.description,helperText:this.state.error.description,value:this.state.description,onChange:function(t){return e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:r.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>200?r.outRange:"",children:[this.state.description.length,"/200"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,style:{textAlign:"right"},children:[Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,className:r.btn,disabled:this.state.pending,onClick:function(t){return e.updateGroup()},children:[this.state.pending&&Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}),"\xa0 ",i.formatMessage({id:"label.update"})," \xa0"]}),Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",disableElevation:!0,className:r.btn,disabled:this.state.pending,onClick:function(t){return e.props.history.push("/groups")},children:["\xa0 ",i.formatMessage({id:"label.cancel"})," \xa0"]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:3})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})]})}}]),a}(i.a.Component),_a=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(1),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},paper:{padding:e.spacing(2)},btn:{marginLeft:e.spacing(2)},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentGroupConfig:e.DataStore.currentGroupConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ka)))),Ea=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,groupConfig:{},email:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"email",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",passPattern:/^.+@[^.]+\..+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.email"})})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"email",exceptionCode:1031,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.email"})})},{name:"email",exceptionCode:1032,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotAddCreatorAsMember"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){return this.state.email===t.email||0!==t.email.length||(this.setState({error:{}}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"addMembers",value:function(){var e=this;if(!this.checkInput())return!0;var t={group:this.props.currentGroupConfig.group.id,email:this.state.email};return this.setState({pending:!0}),va.addMember(t).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?t.code>1024&&(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.AddFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(e.setState({pending:!1,email:""}),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.Added"}),0)),e.reloadGroupData())})),!0}},{key:"changeMemberRole",value:function(e,t,a){var r=this,i={group:e,userID:t,roleID:a};va.changeMemberRole(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&r.props.dispatchEvent(ae.NewNotification(r.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(r.props.dispatchEvent(ae.NewNotification(r.props.intl.formatMessage({id:"message.updated"}),0)),r.reloadGroupData())}))}},{key:"removeMember",value:function(e,t){var a=this,r={group:e,userID:t};va.removeMember(r).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?e.code>1024&&a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.error.removeFail"}),2)):(a.props.dispatchEvent(ae.NewNotification(a.props.intl.formatMessage({id:"message.removed"}),0)),a.reloadGroupData())}))}},{key:"reloadGroupData",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),va.config({gKey:this.props.currentGroupConfig.group.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentGroupConfig.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentGroupConfig,r=t.classes,i=t.intl;return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:"flex-end",className:r.marginBottom,children:[Object(oe.jsx)(k.a,{item:!0,xs:3,children:Object(oe.jsx)(E.a,{fullWidth:!0,value:this.state.email,error:!!this.state.error.email,helperText:this.state.error.email,onChange:function(t){return e.setState({email:t.target.value})},onKeyDown:function(t){13===t.keyCode&&e.addMembers()},variant:"outlined",placeholder:i.formatMessage({id:"message.plsInputInvitedEmail"})})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disableElevation:!0,onClick:function(t){return e.addMembers()},disabled:this.state.pending,children:[this.state.pending?[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," "]:"",i.formatMessage({id:"label.inviteMember"})]})})]}),Object(oe.jsx)(k.a,{container:!0,spacing:2,children:a.group?Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ba,{currentConfig:a,changeMemberRole:function(t,a,r){return e.changeMemberRole(t,a,r)},removeMember:function(t,a){return e.removeMember(t,a)},isRepository:Boolean(!1),groupMember:Boolean(!0)})}):Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})]})}}]),a}(i.a.Component),Ta=Object(R.b)(Object(C.a)((function(e){return{btn:{marginRight:e.spacing(2)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},marginBottom:{marginBottom:e.spacing(4)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentGroupConfig:e.DataStore.currentGroupConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Ea)))),Aa=Object(C.a)((function(e){return{root:{minHeight:e.spacing(6)}}}))(pt.a),Da=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,slug:"",error:{}},r.mountedFlag=!1,r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"slug",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.groupSlug"})})},{name:"slug",passPattern:/^[0-9a-zA-z_]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error.requireCombinationOfCharactersNumbersAndUnderscore"})},{name:"slug",passPattern:/^.{5,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.within_N1_to_N2_characters"},{n1:5,n2:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"slug",exceptionCode:1027,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.groupURL"})})},{exceptionCode:1033,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotDeleteUserGroup"})},{exceptionCode:1034,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotDeleteNonEmptyGroup"})},{exceptionCode:1035,errorMessage:r.props.intl.formatMessage({id:"message.error.canNotChangeOwnerOfUserGroup"})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0}},{key:"shouldComponentUpdate",value:function(e,t){return""!==t.slug||!e.currentGroupConfig.group||(this.setState({slug:e.currentGroupConfig.group.name}),!1)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1,this.setState({slug:""})}},{key:"deleteGroup",value:function(){var e=this;this.props.dispatchEvent(ae.addComformation("group_delete_group",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.groupDeleteRepositoryNotice"}),reject:function(){return!0},accept:function(){e.deleteGroupConfirmed(),e.props.dispatchEvent(ae.cancelComformation())}}))}},{key:"deleteGroupConfirmed",value:function(){var e=this;this.props.dispatchEvent(ae.addComformation("group_delete_group_confirm",{title:this.props.intl.formatMessage({id:"label.dangerOperationConfirm"}),description:this.props.intl.formatMessage({id:"message.groupDeleteRepositoryConfirmNotice"}),reject:function(){return!0},accept:function(){var t={group:e.props.currentGroupConfig.group.id};e.setState({pending:!0}),va.deleteGroup(t).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)&&t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.deleteFail"}),2)):(e.reloadRepositoryGroupList(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.deleted"}),0)),e.props.history.push(W("groups"))),e.setState({pending:!1}),e.props.dispatchEvent(ae.cancelComformation())}))}}))}},{key:"changeSlug",value:function(){var e=this;if(!this.checkInput())return!1;this.props.dispatchEvent(ae.addComformation("group_change_slug",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.groupChangeURLNotice"}),reject:function(){return!0},accept:function(){var t={group:e.props.currentGroupConfig.group.id,name:e.state.slug};e.setState({pending:!0}),va.updateName(t).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)&&t.code>1024&&e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(e.reloadGroupData(),e.reloadRepositoryGroupList(),e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.updated"}),0)),e.props.history.push(W("groups"))),e.setState({pending:!1}),e.props.dispatchEvent(ae.cancelComformation())}))}}))}},{key:"changeOwner",value:function(e){var t=this;this.props.dispatchEvent(ae.addComformation("group_change_creator",{title:this.props.intl.formatMessage({id:"label.dangerOperation"}),description:this.props.intl.formatMessage({id:"message.groupChangeCreatorNotice"}),reject:function(){return!0},accept:function(){var a={group:t.props.currentGroupConfig.group.id,userID:e};t.setState({pending:!0}),va.changeOwner(a).then(ne.withEventdispatcher(t.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?t.checkResponse(e.code)&&e.code>1024&&t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.error.updateFail"}),2)):(t.reloadGroupData(),t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.updated"}),0))),t.props.dispatchEvent(ae.cancelComformation()),t.setState({pending:!1})}))}}))}},{key:"reloadGroupData",value:function(){var e=this;va.config({gKey:this.props.currentGroupConfig.group.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentGroupConfig.update",data:t.data})}))}},{key:"reloadRepositoryGroupList",value:function(){var e=this;Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data})})),va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.groupList.update",data:t.data})}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentGroupConfig,r=t.currentUserInfo,i=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,className:i.header,children:n.formatMessage({id:"label.groupAdvancedSetting"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:a.group?Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.updateCreator"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:a.group.owner,onChange:function(t){return e.changeOwner(t.target.value)},children:a.members.map((function(e,t){return Object(oe.jsx)(Aa,{value:e.id,children:Object(oe.jsx)(ua,{item:e})},t)}))})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.section,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.updateGroupURL"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.slug,error:!!this.state.error.slug,helperText:this.state.error.slug,InputProps:{startAdornment:Object(oe.jsxs)(Gt.a,{position:"start",children:[ne.getHost(r),"/"]})},onChange:function(t){var a=ne.makeSlug(t.target.value);e.setState({slug:a,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(_.a,{color:"primary",variant:"contained",disableElevation:!0,onClick:function(t){return e.changeSlug()},disabled:this.state.pending,children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.d}),"\xa0 ",n.formatMessage({id:"label.save"})]})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.section,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:n.formatMessage({id:"label.deleteGroup"})})}),Object(oe.jsx)(k.a,{item:!0,xs:7,children:Object(oe.jsxs)(_.a,{color:"secondary",variant:"contained",disableElevation:!0,onClick:function(t){return e.deleteGroup()},className:i.warning,disabled:this.state.pending,children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"}):Object(oe.jsx)(fe.a,{icon:He.j}),"\xa0 ",n.formatMessage({id:"label.deleteGroup"})]})})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(he.a,{})})})})]})}}]),a}(i.a.Component),Ia=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(1),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},section:{marginTop:e.spacing(3)},paper:{padding:e.spacing(2)},btn:{marginRight:e.spacing(2)},warning:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentGroupConfig:e.DataStore.currentGroupConfig,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Da))));var Pa,Fa={parser:function(e){var t=e.item.type,a=[],r={};if(e.currentGroupConfig.group?a=e.currentGroupConfig.members:e.currentRepositoryConfig.repository&&(a=e.currentRepositoryConfig.members),r=a.filter(U.id(e.item.creator))[0],e.relatedGroup=e.groupList.filter(U.id(e.item.group))[0],e.relatedRepository=e.repositoryList.filter(U.id(e.item.repository))[0],r||(r={icon:null,id:e.item.creator,name:"userID_"+e.item.creator.slice(0,8)}),e.relatedGroup||(e.relatedGroup={id:e.item.group,displayName:"groupID_"+e.item.group.slice(0,8),name:null}),e.relatedRepository||(e.relatedRepository={id:e.item.repository,displayName:"repositoryID_"+e.item.repository.slice(0,8),name:null,group:e.relatedGroup}),513===t){var n=e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W("groups",e.relatedGroup.name),children:e.relatedGroup.displayName}):e.item.content.name;return{user:r,action:e.formatter({id:"message.activity.createdGroup"}),detail:n}}if(514===t)return{user:r,action:e.formatter({id:"message.activity.updateGroup_S_Avator"},{s:e.relatedGroup.displayName}),detail:""};if(515===t){var s=Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateFrom_S1_To_S2"},{s1:e.item.content.from,s2:e.item.content.to})});return{user:r,action:e.formatter({id:"message.activity.updateGroup_S_Name"},{s:e.relatedGroup.displayName}),detail:s}}if(516===t)return{user:r,action:e.formatter({id:"message.activity.updateGroup_S_Description"},{s:e.relatedGroup.displayName}),detail:""};if(517===t){var c=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.addGroup_S_Memeber"},{s:e.relatedGroup.displayName}),detail:c?c.name+" <"+c.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(518===t){var l=a.filter(U.id(e.item.content.uid))[0],p=e.formatter({id:"label.roleID_"+e.item.content.to});return{user:r,action:e.formatter({id:"message.activity.changeGroup_S_MemebrRole"},{s:e.relatedGroup.displayName}),detail:(l?l.name+" <"+l.email+">":e.item.content.name+" <"+e.item.content.email+">")+": "+p}}if(519===t){var d=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.removeGroup_S_Memebr"},{s:e.relatedGroup.displayName}),detail:d?d.name+" <"+d.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(520===t){var u=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.setGroup_S_Creator"},{s:e.relatedGroup.displayName}),detail:u?u.name+" <"+u.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(521===t){var m=Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateFrom_S1_To_S2"},{s1:W("groups",e.item.content.from),s2:W("groups",e.item.content.to)})});return{user:r,action:e.formatter({id:"message.activity.setGroup_S_URL"},{s:e.relatedGroup.displayName}),detail:m}}if(769===t){var h=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name),children:[e.relatedGroup.displayName,"/",e.relatedRepository.displayName]}):e.item.content.name;return{user:r,action:e.formatter({id:"message.activity.createdRepository"}),detail:h}}if(770===t){var g=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name),children:[e.relatedGroup.displayName,"/",e.relatedRepository.displayName]}):e.item.content.name,b=Object(oe.jsxs)(i.a.Fragment,{children:[g," ",e.formatter({id:"label.forkFrom_S"},{s:e.item.content.sourceName})]});return{user:r,action:e.formatter({id:"message.activity.forkRepository"}),detail:b}}if(771===t)return{user:r,action:e.formatter({id:"message.activity.updateRepository_S_Avator"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:""};if(772===t){var f=Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateFrom_S1_To_S2"},{s1:e.item.content.from,s2:e.item.content.to})});return{user:r,action:e.formatter({id:"message.activity.updateRepository_S_Name"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:f}}if(773===t)return{user:r,action:e.formatter({id:"message.activity.updateRepository_S_Description"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:""};if(774===t){var j=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.addRepository_S_Memeber"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:j?j.name+" <"+j.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(775===t){var v=a.filter(U.id(e.item.content.uid))[0],O=e.formatter({id:"label.roleID_"+e.item.content.to});return{user:r,action:e.formatter({id:"message.activity.changeRepository_S_MemebrRole"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:(v?v.name+" <"+v.email+">":e.item.content.name+" <"+e.item.content.email+">")+": "+O}}if(776===t){var y=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.removeRepository_S_Memebr"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:y?y.name+" <"+y.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(777===t){var x=a.filter(U.id(e.item.content.uid))[0];return{user:r,action:e.formatter({id:"message.activity.setRepository_S_Creator"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:x?x.name+" <"+x.email+">":e.item.content.name+" <"+e.item.content.email+">"}}if(778===t){var S=Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateFrom_S1_To_S2"},{s1:W(e.relatedGroup.name,e.item.content.from),s2:W(e.relatedGroup.name,e.item.content.to)})});return{user:r,action:e.formatter({id:"message.activity.setRepository_S_URL"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:S}}if(779===t)return{user:r,action:e.formatter({id:"message.activity.deleteRepository"}),detail:e.item.content.name};if(1025===t){var C=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name),children:e.item.content.name}):e.item.content.name,N=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.from.slice(0,8)),children:e.item.content.from.slice(0,8)}):e.item.content.from.slice(0,8),R=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.to.slice(0,8)),children:e.item.content.to.slice(0,8)}):e.item.content.to.slice(0,8),M=Object(oe.jsxs)(i.a.Fragment,{children:[N," .. ",R," -> ",C]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_Branch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:M}}if(1026===t){var w=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name),children:e.item.content.name}):e.item.content.name,k=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.to.slice(0,8)),children:e.item.content.to.slice(0,8)}):e.item.content.to.slice(0,8),_=Object(oe.jsxs)(i.a.Fragment,{children:[k," -> ",w]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_NewBranch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:_}}if(1027===t){var E=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.name),""),children:e.item.content.name}):e.item.content.name,T=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.newBranch"})," ",E]});return{user:r,action:e.formatter({id:"message.activity.created_S_NewBranch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:T}}if(1028===t)return{user:r,action:e.formatter({id:"message.activity.delete_S_Branch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"label.deleteBranch"})+" "+e.item.content.name};if(1029===t)return{user:r,action:e.formatter({id:"message.activity.update_S_DefaultBranch"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"message.updateDefaultBranch"}),"\xa0",e.item.content.from&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.from)),children:e.item.content.from})," ->\xa0"]}),Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.to)),children:e.item.content.to})]})};if(1030===t)return{user:r,action:e.formatter({id:"message.activity.created_S_ProtectedBranchRule"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"message.createProtectedBranchRule"}),"\xa0",Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"settings/branch"),children:e.item.content.name})]})};if(1031===t)return{user:r,action:e.formatter({id:"message.activity.update_S_ProtectedBranchRule"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"message.updateProtectedBranchRule"}),"\xa0",Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"settings/branch"),children:e.item.content.name})]})};if(1032===t)return{user:r,action:e.formatter({id:"message.activity.delete_S_ProtectedBranchRule"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"message.deleteProtectedBranchRule"}),"\xa0",e.item.content.name]})};if(1281===t){var A=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name),children:e.item.content.name}):e.item.content.name,D=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.from.slice(0,8)),children:e.item.content.from.slice(0,8)}):e.item.content.from.slice(0,8),I=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.to.slice(0,8)),children:e.item.content.to.slice(0,8)}):e.item.content.to.slice(0,8),P=Object(oe.jsxs)(i.a.Fragment,{children:[D," .. ",I," -> ",A]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_Tag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:P}}if(1282===t){var F=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name),children:e.item.content.name}):e.item.content.name,L=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"commit",e.item.content.to.slice(0,8)),children:e.item.content.to.slice(0,8)}):e.item.content.to.slice(0,8),B=Object(oe.jsxs)(i.a.Fragment,{children:[L," -> ",F]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_NewTag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:B}}if(1283===t){var G=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"files",e.item.content.name,""),children:e.item.content.name}):e.item.content.name,H=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.newTag"})," ",G]});return{user:r,action:e.formatter({id:"message.activity.created_S_NewTag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:H}}if(1284===t)return{user:r,action:e.formatter({id:"message.activity.delete_S_Tag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"label.deleteTag"})+" "+e.item.content.name};if(1793===t){var q=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id,z=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.openMergeRequest"})," ",q]});return{user:r,action:e.formatter({id:"message.activity.open_S_MergeRquest"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:z}}if(1794===t){var V=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id,J=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.closeMergeRequest"})," ",V]});return{user:r,action:e.formatter({id:"message.activity.close_S_MergeRquest"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:J}}if(1795===t){var K=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id,$=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.mergeRequest"})," ",K]});return{user:r,action:e.formatter({id:"message.activity.merge_S_MergeRquest"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:$}}if(1796===t){var Z=a.filter(U.id(e.item.content.reviewer))[0],Y=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id;return{user:r,action:e.formatter({id:"message.activity.assign_S_Reviewer"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"message.assign_N_M_Reviewer"},{n:Z.name,m:Y})}}if(1797===t){var X=a.filter(U.id(e.item.content.reviewer))[0],Q=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id;return{user:r,action:e.formatter({id:"message.activity.delete_S_Reviewer"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"message.delete_M_N_Reviewer"},{n:X.name,m:Q})}}if(1798===t){var ee=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:W(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id;return{user:r,action:e.formatter({id:"message.activity.review_S_Reviewer"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:e.formatter({id:"message.review_M_Reviewer"},{m:ee})}}return 2305===t?{user:r,action:e.formatter({id:"message.activity.create_S_Webhook"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.createWebhook"})})}:2306===t?{user:r,action:e.formatter({id:"message.activity.update_S_Webhook"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.updateWebhook"})})}:2307===t?{user:r,action:e.formatter({id:"message.activity.delete_S_Webhook"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:Object(oe.jsx)(i.a.Fragment,{children:e.formatter({id:"label.deleteWebhook"})})}:{user:r,action:"",detail:""}}},La=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.item,a=e.groupList,r=e.currentGroupConfig,i=e.repositoryList,n=e.currentRepositoryConfig,s=e.intl,o=e.classes,c={item:t,groupList:a,repositoryList:i,currentGroupConfig:r,currentRepositoryConfig:n,formatter:s.formatMessage},l=Fa.parser(c);return Object(oe.jsx)(k.a,{item:!0,xs:12,className:o.item,children:Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",alignItems:"center",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+l.user.icon,className:o.avatar})}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"body1",className:o.action,children:[" ",l.user.name," ",l.action]}),Object(oe.jsxs)(w.a,{variant:"body2",className:o.paddingRight2,children:[" ",l.detail," "]})]})]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(w.a,{variant:"body2",children:[s.formatMessage({id:"label.editIn"}),":\xa0",Object(oe.jsx)(Nt,{timestamp:t.time})]})})]})})}}]),a}(i.a.Component),Ba=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{avatar:{width:e.spacing(3),height:e.spacing(3)},item:{border:"1px solid "+e.palette.border,marginBottom:"-1px",padding:e.spacing(2)+"px "+e.spacing(3)+"px","&:first-child":{borderRadius:"4px 4px 0px 0px"},"&:last-child":{borderRadius:"0px 0px 4px 4px"}},action:{lineHeight:e.spacing(3)+"px"},paddingRight2:{paddingRight:e.spacing(2),lineHeight:e.spacing(3)+"px"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,currentRepositoryConfig:e.DataStore.currentRepositoryConfig,groupList:e.DataStore.groupList,currentGroupConfig:e.DataStore.currentGroupConfig}}),(function(e,t){return{}}))(La))))),Ua=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={activityList:[],page:1,listFinshed:!1,pending:!0,category:0,keyword:""},r.observed={keyword:""},r.mountedFlag=!1,r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.setState({page:1,listFinshed:!1,pending:!0,activityList:[]}),this.getData(this.props,this.state),this.mountedFlag=!0}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.props.currentGroupConfig)!==JSON.stringify(e.currentGroupConfig)||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.setState({page:1,listFinshed:!1,pending:!0,activityList:[]}),this.getData(e,t),!1):this.state.page===t.page||t.pending?this.state.category===t.category||(this.setState({pending:!0,page:1,activityList:[]}),this.getData(e,t),!1):(this.setState({pending:!0}),this.getData(e,t),!1)}},{key:"getData",value:function(e,t){var a=this;this.observed.keyword=t.keyword,e.currentRepositoryConfig.repository?Ht.activities({repository:e.currentRepositoryKey,category:t.category,keyword:t.keyword,page:t.page,pagesize:20}).then(ne.withEventdispatcher(e.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var t=e.data.length<20;a.setState({pending:!1,activityList:[].concat(Object(T.a)(a.state.activityList),Object(T.a)(e.data)),listFinshed:t})}})):e.currentGroupConfig.group&&va.activities({group:e.currentGroupKey,category:t.category,keyword:t.keyword,page:t.page,pagesize:20}).then(ne.withEventdispatcher(e.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var t=e.data.length<20;a.setState({pending:!1,activityList:[].concat(Object(T.a)(a.state.activityList),Object(T.a)(e.data)),listFinshed:t})}}))}},{key:"searchActivity",value:function(){this.observed.keyword!==this.state.keyword&&(this.setState({activityList:[]}),this.getData(this.props,this.state))}},{key:"render",value:function(){var e=this,t=this.props,a=t.intl,r=t.classes,i=D.activityCategory,n=[];return n[i.all]=a.formatMessage({id:"label.all"}),n[i.commit]=a.formatMessage({id:"label.commitActivity"}),n[i.mergeRequest]=a.formatMessage({id:"label.mergeRequestActivity"}),n[i.member]=a.formatMessage({id:"label.memberActivity"}),Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(jt,{tabs:n,currentTab:this.state.category,onChange:function(t,a){return e.setState({category:a})},children:Object(oe.jsx)(E.a,{variant:"outlined",className:r.input,placeholder:"",defaultValue:this.state.keyword,onChange:function(t){return e.setState({keyword:t.target.value})},onKeyDown:function(t){13===t.keyCode&&e.searchActivity()},InputProps:{startAdornment:Object(oe.jsx)(Gt.a,{position:"start",children:Object(oe.jsx)(fe.a,{icon:je.D})})}})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsx)(k.a,{container:!0,children:this.state.activityList.length>0&&this.state.activityList.map((function(e,t){return Object(oe.jsx)(Ba,{item:e},t)}))}),Object(oe.jsx)(k.a,{container:!0,justifyContent:"center",className:r.marginTop3,children:Object(oe.jsx)(k.a,{item:!0,children:this.state.pending?Object(oe.jsx)(he.a,{}):this.state.listFinshed?Object(oe.jsx)(_.a,{size:"small",disabled:!0,children:a.formatMessage({id:"label.noMore"})}):Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",size:"small",disableElevation:!0,onClick:function(t){return e.setState({page:e.state.page+1})},children:[a.formatMessage({id:"label.more"})," \xa0\xa0",Object(oe.jsx)(fe.a,{icon:He.a})]})})})]})]})}}]),a}(i.a.Component),Ga=Object(R.b)(Object(C.a)((function(e){return{input:{width:e.spacing(30),maxWidth:"100%"},icon:{color:e.palette.text.light},marginTop3:{marginTop:e.spacing(3)}}}))(Object(l.b)((function(e,t){return{currentGroupKey:e.DataStore.currentGroupKey,currentGroupConfig:e.DataStore.currentGroupConfig,currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Ua))),Ha=a(438),qa=a(415),za=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={popoverAnchor:null,popoverTab:0},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.repositoryConfig,i=t.intl,n=t.history,s=t.repositoryList,c=t.currentUserInfo,l=s.filter(U.id(r&&r.repository&&r.repository.forkFrom||""))[0];return Object(oe.jsx)(M.a,{elevation:1,className:a.content,children:r&&r.repository&&r.repository.id?Object(oe.jsxs)(k.a,{container:!0,spacing:3,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:3,className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:r.repository.icon?Object(oe.jsx)(Be.a,{variant:"square",className:a.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+r.repository.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:a.icon,children:r.repository.name.substr(0,1).toUpperCase()})}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"h6",className:a.text,children:[r.group.displayName,"/",r.repository.displayName," \xa0\xa0",l?Object(oe.jsx)(w.a,{variant:"body2",component:"span",className:a.text,children:Object(oe.jsx)(o.b,{to:W(l.group.name,l.name),children:i.formatMessage({id:"label.forkFrom_S"},{s:l.group.displayName+"/"+l.displayName})})}):""]}),Object(oe.jsx)(w.a,{variant:"caption",component:"div",className:a.subtext,children:r.repository.description})]})]})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,justifyContent:"flex-end",className:"width-auto",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(Ha.a,{variant:"outlined",className:a.border,children:[Object(oe.jsxs)(_.a,{onClick:function(e){return n.push(W("repositories/fork",r.repository.id))},children:[Object(oe.jsx)(fe.a,{icon:je.r}),"\xa0 ",i.formatMessage({id:"label.fork"})]}),Object(oe.jsx)(_.a,{disabled:!r.repository.forkCount,onClick:function(e){return n.push(W("repositories/forklist",r.repository.id))},children:r.repository.forkCount})]})}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){e.state.popoverAnchor?e.setState({popoverAnchor:null}):e.setState({popoverAnchor:t.currentTarget})},children:i.formatMessage({id:"label.clone"})}),Object(oe.jsx)(qa.a,{elevation:2,open:!!this.state.popoverAnchor,anchorEl:this.state.popoverAnchor,TransitionProps:{timeout:0},onClose:function(t){e.state.popoverAnchor?e.setState({popoverAnchor:null}):e.setState({popoverAnchor:t.currentTarget})},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:Object(oe.jsxs)(M.a,{className:a.clonePopvoer,children:[Object(oe.jsx)(M.a,{className:a.cloneHeader,children:Object(oe.jsx)(jt,{tabs:["HTTPS","SSH"],currentTab:this.state.popoverTab,onChange:function(t,a){e.setState({popoverTab:a})}})}),0===this.state.popoverTab&&Object(oe.jsxs)(M.a,{className:a.cloneContent,children:[Object(oe.jsxs)(w.a,{variant:"body2",gutterBottom:!0,children:[i.formatMessage({id:"message.differenceBetweenHTTPSAndSSH"})," \xa0",Object(oe.jsx)(Oe,{doc:"/common/clone_method.md"})]}),Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:ne.getHost(c)+W(r.group.name,r.repository.name)+".git",InputProps:{id:"repsoditory-http-url-text",readOnly:!0,endAdornment:Object(oe.jsx)(Gt.a,{position:"end",className:a.copy,children:Object(oe.jsx)(Pe,{label:"label.copy",icon:je.k,onClick:function(e){var t=document.getElementById("repsoditory-http-url-text");t.select(),document.execCommand("Copy"),t.blur()}})})}})]}),1===this.state.popoverTab&&Object(oe.jsxs)(M.a,{className:a.cloneContent,children:[Object(oe.jsxs)(w.a,{variant:"body2",gutterBottom:!0,children:[i.formatMessage({id:"message.generateAndSetSSHKey"})," \xa0",Object(oe.jsx)(Oe,{doc:"/common/ssh_key.md"})]}),Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:ne.getSSHHost(c)+[r.group.name,r.repository.name].join("/")+".git",InputProps:{id:"repsoditory-ssh-url-text",readOnly:!0,endAdornment:Object(oe.jsx)(Gt.a,{position:"end",className:a.copy,children:Object(oe.jsx)(Pe,{label:"label.copy",icon:je.k,onClick:function(e){var t=document.getElementById("repsoditory-ssh-url-text");t.select(),document.execCommand("Copy"),t.blur()}})})}})]})]})})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(w.a,{variant:"body2",className:a.iconBar,children:[Object(oe.jsx)(fe.a,{icon:je.i}),"\xa0 ",i.formatMessage({id:"label._N_commit"},{n:r.count.commit})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.d}),"\xa0 ",i.formatMessage({id:"label._N_branch"},{n:r.count.branch})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.G}),"\xa0 ",i.formatMessage({id:"label._N_tag"},{n:r.count.tag})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.p}),"\xa0 ",i.formatMessage({id:"label._N_byte"},{n:z(r.count.file)})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.y}),"\xa0 ",i.formatMessage({id:"label._N_mergeRequest"},{n:r.repository.mergeRequestCount.open})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(fe.a,{icon:je.v}),"\xa0 ",i.formatMessage({id:"label._N_member"},{n:r.members.length})]})})]}):Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"space-between",children:Object(oe.jsx)(he.a,{})})})}}]),a}(r.Component),Wa=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{content:{height:e.spacing(15.5),boxSizing:"border-box",borderBottom:"1px solid "+e.palette.border,borderRadius:0},icon:{height:e.spacing(5),width:e.spacing(5)},text:{height:e.spacing(3),lineHeight:e.spacing(3)+"px",overflow:"hidden"},subtext:{paddingTop:e.spacing(.5),height:e.spacing(1.5),lineHeight:e.spacing(1.5)+"px"},iconBar:{height:e.spacing(3),lineHeight:e.spacing(3)+"px"},clonePopvoer:{width:e.spacing(50)+"px"},cloneContent:{padding:e.spacing(2)},cloneHeader:{padding:"0px "+e.spacing(2)+"px"},border:{"& button":{borderColor:e.palette.border,padding:"2px "+e.spacing(2)+"px"}},copy:{marginLeft:"2px","& button":{position:"relative",right:"-14px",borderLeft:"1px solid "+e.palette.border,borderRadius:"0px 4px 4px 0px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{}}))(za))))),Va=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"composeOptions",value:function(e,t){var a=this,r=[];return e&&(e.branches||e.tags)&&(e.branches&&e.branches.length&&(r.push(Object(oe.jsx)(la.a,{disableSticky:!0,children:this.props.intl.formatMessage({id:"label.branch"})},"b")),r=r.concat(e.branches.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.id,children:[Object(oe.jsx)(fe.a,{icon:je.d,className:a.props.classes.icon}),"\xa0\xa0",e.name]},"b"+t)})))),e.tags&&e.tags.length&&(r.push(Object(oe.jsx)(la.a,{disableSticky:!0,disabled:!0,children:this.props.intl.formatMessage({id:"label.tag"})},"t")),r=r.concat(e.tags.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.id,children:[Object(oe.jsx)(fe.a,{icon:je.G,className:a.props.classes.icon}),"\xa0\xa0",e.name]},"t"+t)})))),e.branches.filter(U.id(t)).length||e.tags.filter(U.id(t)).length||(r.push(Object(oe.jsx)(la.a,{disableSticky:!0,disabled:!0,children:this.props.intl.formatMessage({id:"label.commit"})},"c")),r.push(Object(oe.jsxs)(pt.a,{value:t,children:[Object(oe.jsx)(fe.a,{icon:je.i,className:this.props.classes.icon}),"\xa0\xa0",t]},"c0")))),r}},{key:"render",value:function(){var e=this.props,t=e.currentRevision,a=e.revisionList,r=e.onChange,i=e.classes;return Object(oe.jsx)(E.a,{select:!0,value:t,variant:"outlined",onChange:function(e){return e.target.value&&r(e.target.value)},className:i.select,children:this.composeOptions(a,t)})}}]),a}(i.a.Component),Ja=Object(R.b)(Object(C.a)((function(e){return{select:{"& > div > svg":{width:e.spacing(3),height:e.spacing(3)}},icon:{color:e.palette.text.light}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{}}))(Va)))),Ka=a(449),$a=a(264),Za=a(98),Ya=a.n(Za),Xa=(a(189),a(190),a(191),a(192),a(193),a(194),a(195),a(196),a(197),a(198),a(199),a(200),a(201),a(202),a(203),a(204),a(205),a(206),a(207),a(208),a(209),a(210),a(211),a(212),a(213),a(214),a(215),a(216),a(217),a(218),a(219),a(220),a(221),a(222),a(223),a(224),a(225),a(226),a(227),a(228),a(229),a(230),a(231),a(232),a(233),a(234),a(235),a(236),a(237),a(238),a(239),a(240),a(241),a(242),a(243),a(244),a(245),a(246),a(247),a(248),a(249),a(250),a(174)),Qa=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).code=i.a.createRef(),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.refreshCodeLine()}},{key:"componentDidUpdate",value:function(){this.refreshCodeLine()}},{key:"refreshCodeLine",value:function(){if("string"===typeof this.props.htmlCode){var e=document.createElement("span");if(e.innerHTML=this.props.htmlCode,"string"===typeof this.props.original){for(var t=Object(Xa.a)(this.props.original,this.props.code),a=0,r=[],i=0;i=n){a+=n;continue}return[i,t-a]}var s=i.innerText.length;if(!(t-a>=s))return this.findOffset(i,t-a);a+=s}}},{key:"render",value:function(){return Object(oe.jsx)("pre",{children:Object(oe.jsx)("code",{ref:this.code,children:this.props.code})})}}]),a}(i.a.Component),er=Object(R.b)(Object(C.a)((function(e){return{addition:{backgroundColor:e.palette.background.additionDarker},deletion:{backgroundColor:e.palette.background.deletionDarker}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Qa)))),tr=a(350),ar=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.to,a=e.children;return Object(r.createElement)(o.b,Object(y.a)(Object(y.a)({},this.props),{},{key:"origin_child",to:t}),a)}}]),a}(i.a.Component),rr=ar,ir=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={copyHash:"label.copyHash"},r}return Object(d.a)(a,[{key:"copyHash",value:function(){var e=window.document.createElement("input");e.setAttribute("value",this.props.hash),e.setAttribute("type","text"),window.document.body.appendChild(e),e.select(),document.execCommand("Copy"),window.document.body.removeChild(e),this.setState({copyHash:"label.copied"})}},{key:"render",value:function(){var e=this,t=this.props,a=t.hash,r=t.classes,i=this.state.copyHash;return Object(oe.jsxs)(Ha.a,{"aria-label":"outlined button group",children:[Object(oe.jsx)(_.a,{disabled:!0,id:"hashValue",className:r.disabledBtn,children:a}),Object(oe.jsx)(Pe,{label:i,icon:je.k,className:r.icon,onClick:function(t){return e.copyHash(t)},onMouseLeave:function(){window.setTimeout((function(){return e.setState({copyHash:"label.copyHash"})}),150)}})]})}}]),a}(r.Component),nr=Object(R.b)(Object(C.a)((function(e){return{disabledBtn:{"&:disabled":{color:e.palette.text.main,border:"1px solid "+e.palette.border}},icon:{color:e.palette.primary.main,border:"1px solid "+e.palette.border,borderLeft:"0px",borderRadius:"0px 4px 4px 0px"}}}))(ir)),sr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.intl,a=e.classes,r=e.data,n=e.linkPathBase,s=e.currentRepositoryConfig,o=e.showBorder,c=e.blameMode,l=e.path,p=r||{},d={};if(s){var u=Z(s.members,p.email);u&&((d=u).hash=p.sha,d.commitContent=p.commit,d.commitTime=p.time)}return Object(oe.jsxs)(tr.a,{className:o?a.listItem:"",children:[Object(oe.jsx)(mt.a,{primary:Object(oe.jsx)(i.a.Fragment,{children:Object(oe.jsxs)(w.a,{component:"span",variant:"body2",color:"textPrimary",children:[Object(oe.jsx)(rr,{to:n+"/"+d.hash.substr(0,8)+(l||""),children:d.commitContent?d.commitContent:""}),c&&Object(oe.jsx)(rr,{style:{display:"inline-block",float:"right"},to:n+"/"+d.hash.substr(0,8),children:d.hash.substr(0,8)})]})}),secondary:Object(oe.jsx)(i.a.Fragment,{children:Object(oe.jsxs)(k.a,{container:!0,spacing:1,className:a.secondaryWrap,component:"span",children:[Object(oe.jsx)(k.a,{item:!0,component:"span",children:Object(oe.jsx)(Be.a,{src:d.icon?D.HOSTS.PGYER_AVATAR_HOST+d.icon:"/static/images/default_avatar.png",className:a.avatar,component:"span"})}),Object(oe.jsx)(k.a,{item:!0,component:"span",children:Object(oe.jsxs)(w.a,{component:"span",variant:"body2",children:[d.name?d.name:"",d.temporary&&Object(oe.jsxs)(i.a.Fragment,{children:["\xa0",Object(oe.jsx)(Oe,{type:"icon",doc:"/common/multiple_email.md",tooltip:t.formatMessage({id:"message.itsMyEmail"})})]})]})}),Object(oe.jsx)(k.a,{item:!0,component:"span",children:Object(oe.jsxs)(w.a,{component:"span",variant:"body2",children:[t.formatMessage({id:"label.editIn"}),":",Object(oe.jsx)(Nt,{timestamp:Number(d.commitTime)})]})})]})})}),!c&&Object(oe.jsx)(nr,{hash:d.hash.substr(0,8)})]},d.hash)}}]),a}(r.Component),or=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{listItem:{borderTop:"1px solid "+e.palette.border,paddingLeft:e.spacing(3),paddingRight:e.spacing(3)},avatar:{width:e.spacing(3),height:e.spacing(3)},secondaryWrap:{padding:e.spacing(1),paddingLeft:0,paddingBottom:0}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(sr))))),cr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),r=t.call(this,e);var n=window.location.href.match(/^.*#(\d+)$/);return r.state={lineNumber:n?parseInt(n[1]):-1},r.ref=i.a.createRef(),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){if(this.ref.current){for(var e=this.ref.current,t=0;e;)t+=e.offsetTop,e=e.offsetParent;document.querySelector(".app-content").scrollTop=t-64-105}return!0}},{key:"shouldComponentUpdate",value:function(e,t){return!0}},{key:"componentDidUpdate",value:function(e,t){return!0}},{key:"render",value:function(){var e=this,t=this.props,a=t.object,r=t.blame,i=t.currentRepositoryConfig,n=t.match,s=t.classes,o=t.fragment,c=this.state.lineNumber,l=$(a.path),p=o?a.object:a.object.raw.split("\n"),d=Ya.a.highlight(p.join("\n"),Ya.a.languages[l]||Ya.a.languages.markdown,l).split("\n"),u=[];if(r&&r.length){var m=0;u=p.map((function(e,t){var a=null,o=r.filter((function(e){return e.start===t+1}));return o&&o[0]&&(m=o[0].length,a=Object(oe.jsx)("td",{className:s.blame,rowSpan:o[0].length,children:Object(oe.jsx)(or,{data:o[0].commit,linkPathBase:W(n.params.groupName,n.params.repositoryName,"commit"),currentRepositoryConfig:i,blameMode:!0},t)})),Object(oe.jsxs)("tr",{className:a&&s.topBorder,children:[t===p.length-1&&0===p[t].length||m--<1?Object(oe.jsx)("td",{className:s.blame}):a,Object(oe.jsx)("td",{className:s.lineNumber,children:Object(oe.jsx)("code",{children:t+1})}),Object(oe.jsx)("td",{className:s.code,children:Object(oe.jsx)(er,{code:e,htmlCode:d[t]})})]},t)}))}else u="blame"===n.params.type?p.map((function(e,t){return Object(oe.jsxs)("tr",{children:[0===t&&Object(oe.jsx)("td",{className:s.blameLoading,rowSpan:p.length,children:Object(oe.jsx)(he.a,{size:24})}),Object(oe.jsx)("td",{className:s.lineNumber,children:Object(oe.jsx)("code",{children:t+1})}),Object(oe.jsx)("td",{className:s.code,children:Object(oe.jsx)(er,{code:e,htmlCode:d[t]})})]},t)})):p.map((function(t,a){var r={};return o&&o[a]&&(r={color:"#fff",background:o[a]}),Object(oe.jsxs)("tr",{ref:a+1===c?e.ref:null,children:[Object(oe.jsx)("td",{className:s.lineNumber,style:r,children:Object(oe.jsx)("code",{children:a+1})}),Object(oe.jsx)("td",{className:s.code,children:Object(oe.jsx)(er,{code:t,htmlCode:d[a]})})]},a)}));return Object(oe.jsx)("table",{className:s.table,children:Object(oe.jsx)("tbody",{children:u})})}}]),a}(i.a.Component),lr=Object(R.b)(Object(C.a)((function(e){return{table:{width:"100%",tableLayout:"fixed",borderCollapse:"collapse","& tr:first-child":{border:"none"}},topBorder:{borderTop:"1px solid "+e.palette.border},blame:{width:e.spacing(40),verticalAlign:"middle"},blameLoading:{width:e.spacing(40),verticalAlign:"top",textAlign:"center",paddingTop:e.spacing(10)},lineNumber:{lineHeight:e.spacing(2)+"px",width:e.spacing(4),padding:"0 "+e.spacing(1)+"px",textAlign:"right",verticalAlign:"middle",userSelect:"none",color:e.palette.text.lighter,backgroundColor:e.palette.background.main},code:{verticalAlign:"middle",overflowWrap:"break-word"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(cr)))),pr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={mdSourceShow:!1,copyAnchor:null},r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return!0}},{key:"copySomething",value:function(e){this.setState({copyAnchor:null}),window.setTimeout((function(){var t=window.document.createElement("textarea");t.innerHTML=e,window.document.body.appendChild(t),t.select(),document.execCommand("copy"),window.document.body.removeChild(t)}),0)}},{key:"getDisplayMode",value:function(e){return e.object.oversize?D.obejctDisplayType.oversize:e.object.size<=0?D.obejctDisplayType.empty:e.object.mime&&(e.object.mime.match(/^text/)||"application/xml"===e.object.mime)?e.path&&e.path.match(/.*\.md$/i)?D.obejctDisplayType.markdown:D.obejctDisplayType.text:e.object.mime&&e.object.mime.match(/^image/)?D.obejctDisplayType.image:"video/mp4"===e.object.mime?D.obejctDisplayType.video:D.obejctDisplayType.unknown}},{key:"getObjectIcon",value:function(e){return je.p}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.object,n=t.blame,s=t.classes,o=t.match,c=t.history,l=t.intl,p=this.state.mdSourceShow,d=this.getDisplayMode(r);return Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,container:!0,className:s.fileInfo,children:[Object(oe.jsxs)(k.a,{item:!0,xs:8,children:[Object(oe.jsx)(fe.a,{icon:this.getObjectIcon(r.object.mime),className:s.icon}),"\xa0\xa0",Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:r.path}),"\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"div",children:[" \xa0|\xa0 ",z(r.object.size,"Bytes")]}),"\xa0\xa0",Object(oe.jsx)(Pe,{label:"label.copy",icon:je.k,onClick:function(t){return e.setState({copyAnchor:t.target})},className:s.icon2}),Object(oe.jsxs)(ct.a,{anchorEl:this.state.copyAnchor,transitionDuration:0,open:!!this.state.copyAnchor,onClose:function(t){return e.setState({copyAnchor:null})},children:[Object(oe.jsx)(pt.a,{value:"0",onClick:function(t){return e.copySomething(r.path)},children:l.formatMessage({id:"label.copyPath"})}),(d===D.obejctDisplayType.text||d===D.obejctDisplayType.markdown)&&Object(oe.jsx)(pt.a,{value:"1",onClick:function(t){return e.copySomething(r.object.raw)},children:l.formatMessage({id:"label.copyCode"})})]}),d===D.obejctDisplayType.markdown&&Object(oe.jsx)(i.a.Fragment,{children:p?Object(oe.jsx)(Pe,{label:"message.displayRendereFile",icon:je.p,onClick:function(){return e.setState({mdSourceShow:!1})}}):Object(oe.jsx)(Pe,{label:"message.displaySource",icon:je.h,onClick:function(){return e.setState({mdSourceShow:!0})}})})]}),o.params.path&&Object(oe.jsx)(k.a,{item:!0,xs:4,className:s.blame,children:Object(oe.jsxs)(Ha.a,{size:"small","aria-label":"small outlined button group",children:[Object(oe.jsx)(_.a,{onClick:function(e){return c.push(W(a.group.name,a.repository.name,"commits",encodeURIComponent(o.params.rev)+o.params.path))},children:l.formatMessage({id:"label.history"})}),(d===D.obejctDisplayType.text||d===D.obejctDisplayType.markdown)&&Object(oe.jsx)(_.a,{onClick:function(e){return c.push(W(a.group.name,a.repository.name,"blame"===o.params.type?"files":"blame",encodeURIComponent(o.params.rev)+o.params.path))},children:"blame"===o.params.type?"Normal":"Blame"})]})})]}),Object(oe.jsxs)(k.a,{item:!0,xs:12,className:[s.detail,d===D.obejctDisplayType.text||p?s.editorBg:""].join(" "),children:[d===D.obejctDisplayType.text&&Object(oe.jsx)(lr,{object:r,blame:n}),d===D.obejctDisplayType.markdown&&Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,className:p?"":s.height0,children:Object(oe.jsx)(lr,{object:r,blame:n})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,className:[p?s.height0:s.markdown,"markdown-body"].join(" "),children:[Object(oe.jsx)("link",{rel:"stylesheet",href:"https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/4.0.0/github-markdown.min.css"}),Object(oe.jsx)(Ka.a,{children:r.object.raw,remarkPlugins:[$a.a]})]})]}),d===D.obejctDisplayType.image&&Object(oe.jsx)("img",{src:"data:"+r.object.mime+";base64,"+r.object.base64Encoded,className:s.mediaFile}),d===D.obejctDisplayType.video&&Object(oe.jsx)("div",{className:s.mediaFile,children:Object(oe.jsx)("video",{width:"100%",controls:!0,children:Object(oe.jsx)("source",{src:"data:"+r.object.mime+";base64,"+r.object.base64Encoded,type:r.object.mime})})}),d===D.obejctDisplayType.unknown&&Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:s.unknown,children:l.formatMessage({id:"message.fileTypeNotSupport"})}),d===D.obejctDisplayType.empty&&Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:s.unknown,children:l.formatMessage({id:"message.fileContentEmpty"})}),d===D.obejctDisplayType.oversize&&Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:s.unknown,children:l.formatMessage({id:"message.fileContentOversize"})})]})]})}}]),a}(i.a.Component),dr=Object(R.b)(Object(C.a)((function(e){return{icon:{color:e.palette.text.lighter},icon2:{color:e.palette.primary.main},fileInfo:{lineHeight:e.spacing(5)+"px",paddingLeft:e.spacing(3),paddingRight:e.spacing(3),background:e.palette.background.main,border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px "+e.spacing(.5)+"px 0 0","& > div":{display:"flex",alignItems:"center"}},blame:{justifyContent:"flex-end","& button":{background:e.palette.background.light,borderColor:e.palette.border}},editorBg:{background:e.palette.background.light},detail:{overflowX:"hidden",border:"1px solid "+e.palette.border,borderRadius:"0 0 "+e.spacing(.5)+"px "+e.spacing(.5)+"px",borderTop:"0px"},mediaFile:{display:"block",margin:"auto",marginTop:e.spacing(5),marginBottom:e.spacing(5),maxWidth:"80%"},oldImage:{display:"block",marginTop:e.spacing(5),marginBottom:e.spacing(3),border:"1px solid "+e.palette.error.main,padding:e.spacing(2),marginLeft:"auto",marginRight:"auto",maxWidth:"80%"},newImage:{display:"block",marginTop:e.spacing(5),marginBottom:e.spacing(3),border:"1px solid "+e.palette.success.dark,marginLeft:"auto",padding:e.spacing(2),marginRight:"auto",maxWidth:"80%"},height0:{height:"0px",paddingTop:"0px !important",paddingBottom:"0px !important",overflow:"hidden"},unknown:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:e.spacing(32)},markdown:{boxSizing:"border-box",minWidth:"200px",maxWidth:"980px",margin:"0 auto",padding:"45px"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{}}))(pr)))),ur=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.currentRepositoryConfig,a=e.currentUserInfo,r=e.classes,i=e.intl;if(!t.repository)return null;var n="git remote add origin "+a.host+"/"+t.group.name+"/"+t.repository.name+".git",s=['echo "# '+t.repository.name+'" >> README.md',"git init","git add README.md",'git commit -m "first commit"',"git branch -M main",n,"git push -u origin main"],o=[n,"git branch -M main","git push -u origin main"];return Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsxs)(k.a,{className:r.setup,children:[Object(oe.jsx)(w.a,{variant:"h1",component:"div",children:i.formatMessage({id:"message.createNewRepository"})}),Object(oe.jsxs)(k.a,{className:r.code,children:[Object(oe.jsx)(Pe,{className:r.icon,label:"label.copy",onClick:function(e){return X(s.join("\n"))},icon:je.k}),s.map((function(e,t){return Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:Object(oe.jsx)("code",{children:e})},t)}))]})]}),Object(oe.jsxs)(k.a,{className:[r.setup,r.noBorder].join(" "),children:[Object(oe.jsx)(w.a,{variant:"h1",component:"div",children:i.formatMessage({id:"message.pushRepository"})}),Object(oe.jsxs)(k.a,{className:r.code,children:[Object(oe.jsx)(Pe,{className:r.icon,label:"label.copy",onClick:function(e){return X(o.join("\n"))},icon:je.k}),o.map((function(e,t){return Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:Object(oe.jsx)("code",{children:e})},t)}))]})]})]})}}]),a}(i.a.Component),mr=Object(R.b)(Object(C.a)((function(e){return{setup:{padding:e.spacing(3)+"px",borderRadius:"4px 4px 0px 0px",border:"1px solid "+e.palette.border},noBorder:{borderTop:0,borderRadius:"0px 0px 4px 4px"},code:{position:"relative",marginTop:e.spacing(1),padding:e.spacing(1.5)+"px",borderRadius:e.spacing(.5)+"px",background:e.palette.background.main},icon:{top:e.spacing(1.5)+"px",right:e.spacing(1.5)+"px",position:"absolute"}}}))(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig,currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{}}))(ur))),hr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,pathStack:[],search:"",objectData:{},blameData:null,readmeFile:{}},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getPathStack(this.props,this.state)}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.props.match.params)!==JSON.stringify(e.match.params)?this.props.match.params.type!==e.match.params.type&&this.props.match.params.rev===e.match.params.rev&&this.props.match.params.path===e.match.params.path?(this.getObject(e,t),!1):(this.getPathStack(e,t),!1):JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.getPathStack(e,t),!1):JSON.stringify(this.state.pathStack)===JSON.stringify(t.pathStack)||(this.getObject(e,t),!1)}},{key:"getPathStack",value:function(e,t){var a=this;return!e.currentRepositoryKey||!e.currentRepositoryConfig.repository||(e.match.params.path&&"/"!==e.match.params.path||0!==t.pathStack.length?(this.setState({objectData:{},pending:!0}),Ht.pathStack({repository:e.currentRepositoryKey,revision:e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),path:e.match.params.path||"/"}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({pending:!1,pathStack:e.data})})),!0):(this.getObject(e,t),!0))}},{key:"getObject",value:function(e,t){var a=this;if(!e.currentRepositoryConfig.branches||!e.currentRepositoryConfig.branches.length)return this.setState({blameData:null,objectData:{},pending:!1}),!0;t.pathStack.length>0&&"blob"===t.pathStack[t.pathStack.length-1].type&&"blame"===e.match.params.type&&this.getBlame(e,t);var r=t.pathStack.reduce((function(e,t){return(e?e+"/":"")+t.name}),"");this.setState({blameData:null,objectData:{},pending:!0}),Ht.object({repository:e.currentRepositoryKey,parent:t.pathStack.length&&t.pathStack[t.pathStack.length-1].object||e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),revision:e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),path:r||"/"}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?a.setState({pending:!1}):(a.setState({pending:!1,search:"",objectData:e.data}),a.getReadmeFile(e.data))}))}},{key:"getBlame",value:function(e,t){var a=this;this.setState({blameData:null});var r=t.pathStack.reduce((function(e,t){return(e?e+"/":"")+t.name}),"");Ht.getBlameInfo({repository:e.currentRepositoryKey,revision:e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),path:r||"/"}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({search:"",blameData:e.data.blame})}))}},{key:"getReadmeFile",value:function(e){var t=this;if("blob"!==e.type){var a=e.object.filter((function(e){return"readme.md"===e.name.toLowerCase()}));a[0]&&Ht.object({repository:this.props.currentRepositoryKey,parent:a[0].object,revision:this.props.match.params.rev&&decodeURIComponent(this.props.match.params.rev)||Y(this.props.currentRepositoryConfig),path:e.path+"/"+a[0].name}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.setState({readmeFile:e.data})}))}this.setState({readmeFile:{}})}},{key:"makeFileListData",value:function(e){var t=this,a=this.state.pathStack.reduce((function(e,t){return(e?e+"/":"")+t.name}),""),r=e.sort((function(e,t){return e.type===t.type?0:"blob"===e.type?1:-1})).map((function(e){return[Object(oe.jsxs)(w.a,{variant:"body1",children:["blob"===e.type&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(fe.a,{icon:je.p})," \xa0\xa0",Object(oe.jsx)(o.b,{className:t.props.classes.linkObjectName,to:W(t.props.currentRepositoryConfig.group.name,t.props.currentRepositoryConfig.repository.name,"files",encodeURIComponent(t.props.match.params.rev||Y(t.props.currentRepositoryConfig)),a?a+"/"+e.name:e.name),children:e.name})]}),"tree"===e.type&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(fe.a,{icon:je.U})," \xa0\xa0",Object(oe.jsx)(o.b,{className:t.props.classes.linkObjectName,to:W(t.props.currentRepositoryConfig.group.name,t.props.currentRepositoryConfig.repository.name,"files",encodeURIComponent(t.props.match.params.rev||Y(t.props.currentRepositoryConfig)),a?a+"/"+e.name:e.name),children:e.name})]}),"commit"===e.type&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(fe.a,{icon:je.eb})," \xa0\xa0",e.name,"\xa0",Object(oe.jsx)(be.a,{title:e.url,placement:"top",disableFocusListener:!0,children:Object(oe.jsxs)(w.a,{component:"span",variant:"body2",children:["@",e.object.slice(0,8)]})})]})]}),e.commit&&e.commit.sha&&Object(oe.jsx)(o.b,{className:t.props.classes.linkCommitMessage,to:W(t.props.currentRepositoryConfig.group.name,t.props.currentRepositoryConfig.repository.name,"commit",e.commit.sha.slice(0,8)),children:e.commit.commit}),Object(oe.jsx)(Nt,{timestamp:e.commit.time})]}));return[["30%","auto","auto"],["label.name","label.lastCommit","label.lastUpdate"]].concat(Object(T.a)(r))}},{key:"composePathBreadCrumb",value:function(){for(var e=[this.props.currentRepositoryConfig.group.name,this.props.currentRepositoryConfig.repository.name,"files",encodeURIComponent(this.props.match.params.rev||Y(this.props.currentRepositoryConfig))],t=[Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:Object(oe.jsx)(o.b,{to:W.apply(void 0,e),className:this.props.classes.linkCommitMessage,children:this.props.currentRepositoryConfig.repository.name})},"p")],a=0;a li":{border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryError:e.DataStore.currentRepositoryError,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(hr)))),br=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={commitList:[],page:1,pending:!1,listFinshed:!1,searchInput:"",search:""},r.pageSize=20,r.mountedFlag=!1,r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.setState({page:1,listFinshed:!1,commitList:[],searchInput:"",search:""}),this.getData(this.props,this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey||this.props.match.params.rev!==e.match.params.rev||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.setState({page:1,listFinshed:!1,commitList:[],searchInput:"",search:""}),1===t.page&&""===t.search&&this.getData(e,t),!1):this.state.search!==t.search?(this.setState({page:1,listFinshed:!1,commitList:[]}),1===t.page&&this.getData(e,t),!1):this.state.page===t.page||(this.getData(e,t),!1)}},{key:"getData",value:function(e,t){var a=this;if(!e.currentRepositoryConfig.repository||t.pending||!this.mountedFlag)return!1;if(!e.currentRepositoryConfig.branches||!e.currentRepositoryConfig.branches.length)return!1;var r=e.intl;this.setState({pending:!0}),Ht.commitList({repository:e.currentRepositoryKey,revision:e.match.params.rev&&decodeURIComponent(e.match.params.rev)||Y(e.currentRepositoryConfig),path:e.match.params.path?decodeURIComponent(e.match.params.path):"",page:t.page,pagesize:this.pageSize,keyword:t.search}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(i){if(i.code)e.dispatchEvent(ae.NewNotification(r.formatMessage({id:"message.error.showCommitListFailed"}),2));else{var n=i.data,s=[],o=0,c="";if(s[o]={date:"",list:[]},n.length){n.map((function(e,t){return c?(new j.a).format(1e3*Number(e.time),"yyyy-MM-dd")===c?(s[o].date=c,s[o].list.push(e)):(s[o+=1]={date:"",list:[]},c=(new j.a).format(1e3*Number(e.time),"yyyy-MM-dd"),s[o].date=c,s[o].list.push(e)):(c=(new j.a).format(1e3*Number(e.time),"yyyy-MM-dd"),s[o].date=c,s[o].list.push(e)),!0}));var l=n.length0){var r=!1;t.commitList.map((function(a,i){return a.date===e.date?(r=!0,a.list=[].concat(Object(T.a)(a.list),Object(T.a)(e.list)),a):(r||i!==t.commitList.length-1||t.commitList.push(e),!0)}))}return!0})),t.commitList.length&&1!==t.page?a.setState({pending:!1,commitList:Object(T.a)(a.state.commitList),listFinshed:l}):a.setState({pending:!1,commitList:[].concat(s),listFinshed:l})}else a.setState({pending:!1,listFinshed:!0,commitList:[]})}}))}},{key:"pageReload",value:function(e,t,a){t&&a||(t=this.state.refType,a=this.state.ref);var r=this.props,i=r.currentRepositoryConfig,n=r.history,s=W(i.repository.group.name,i.repository.name,"commits",t,encodeURIComponent(a));return e?n.push(s):s}},{key:"filterCommits",value:function(e){e?(this.observed.keyword=e,this.setState({page:1}),this.getData(this.props,this.state)):(this.observed.keyword="",this.setState({page:1}))}},{key:"render",value:function(){var e=this,t=this.state.commitList,a=this.props,r=a.currentRepositoryConfig,i=a.match,n=a.history,s=a.classes,o=a.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[r.branches&&0!==r.branches.length&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",children:[Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(Ja,{currentRevision:i.params.rev&&decodeURIComponent(i.params.rev)||Y(r),revisionList:{branches:r.branches,tags:r.tags},onChange:function(e){return n.push(W(r.group.name,r.repository.name,"commits",encodeURIComponent(e)))}}),"\xa0\xa0",Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:s.path,children:i.params.path?i.params.path.substr(1):""})]}),Object(oe.jsx)(k.a,{item:!0,xs:2,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",disabled:this.state.pending,value:this.state.searchInput,onChange:function(t){return e.setState({searchInput:t.target.value})},onKeyDown:function(t){13===t.keyCode&&e.setState({search:t.target.value})},InputProps:{startAdornment:Object(oe.jsx)(Gt.a,{position:"start",children:Object(oe.jsx)(fe.a,{icon:je.D})})}})})]})}),this.state.commitList.length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,spacing:3,children:t.map((function(e,t){var a=e.date+" ["+o.formatMessage({id:"label._N_commit"},{n:e.list.length})+"]";return Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ra,{title:a,children:e.list.map((function(e,t){return Object(oe.jsx)(or,{showBorder:!0,path:i.params.path,data:e,linkPathBase:W(i.params.groupName,i.params.repositoryName,i.params.path?"files":"commit"),currentRepositoryConfig:r},t)}))})},t)}))})}),!this.state.pending&&this.state.commitList.length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"center",children:this.state.pending?Object(oe.jsxs)(_.a,{color:"primary",size:"small",disabled:!0,disableElevation:!0,children:[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," \xa0\xa0",o.formatMessage({id:"label.processing"})]}):this.state.listFinshed?t.length>0?Object(oe.jsx)(_.a,{size:"small",disabled:!0,children:o.formatMessage({id:"label.noMore"})}):"":Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",size:"small",disableElevation:!0,onClick:function(t){return e.setState({page:e.state.page+1})},children:[o.formatMessage({id:"label.more"})," \xa0\xa0",Object(oe.jsx)(fe.a,{icon:He.a})]})})}),0===this.state.commitList.length&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Pt,{imageName:"commits-empty.png",notice:o.formatMessage({id:"message.noCommitRecord"}),pending:this.state.pending})})]})}}]),a}(i.a.Component),fr=Object(R.b)(Object(h.f)(Object(ge.a)(Object(C.a)((function(e){return{path:{lineHeight:e.spacing(4)+"px"}}}))(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(br))))),jr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={keyword:e.match.params.tag?e.match.params.tag:e.match.params.branch?e.match.params.branch:""},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.refType,a=e.pending,r=e.searchRef,i=e.sortDesc,n=e.sortSwitch,s=e.children,o=e.tabValue,c=e.tabChange,l=e.currentRepositoryConfig,p=e.history,d=e.classes,u=e.intl;return Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsxs)(jt,{currentTab:o,onChange:function(e,t){return c(t)},tabs:"branch"===t?[u.formatMessage({id:"label.all"}),u.formatMessage({id:"label.active"}),u.formatMessage({id:"label.inactive"})]:[],children:[Object(oe.jsx)(E.a,{variant:"outlined",className:d.input,placeholder:u.formatMessage({id:"message.input_S_name"},{s:u.formatMessage({id:"label."+t})}),defaultValue:this.state.keyword,onChange:function(e){return r(e.target.value)},InputProps:{startAdornment:Object(oe.jsx)(Gt.a,{position:"start",children:Object(oe.jsx)(fe.a,{icon:je.D})})}}),"\xa0",Object(oe.jsx)(Pe,{label:"label.sort",onClick:n,className:[d.icon,i?"":d.transform].join(" "),icon:je.F}),l.branches&&l.branches.length>0&&Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:d.button,disabled:a,onClick:function(){return p.push(W(l.repository.group.name,l.repository.name,"tag"===t?"tags":"branches","new"))},children:u.formatMessage({id:"tag"===t?"label.newTag":"label.newBranch"})})]}),Object(oe.jsx)(k.a,{container:!0,spacing:2,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:s})})]})}}]),a}(i.a.Component),vr=Object(R.b)(Object(C.a)((function(e){return{input:{width:e.spacing(30),maxWidth:"100%"},button:{marginLeft:e.spacing(4)},icon:{color:e.palette.text.light},transform:{transform:"rotateX(180deg)"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{}}))(jr)))),Or=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={page:1,perpage:10,anchor:[]},r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.props.repage!==e.repage&&this.setState({page:1}),!0}},{key:"refListsDeal",value:function(e){var t=this.props,a=t.currentRepositoryConfig,r=t.history;e.map((function(e){return e.map((function(e,t){var i=W(a.repository.group.name,a.repository.name,"files",encodeURIComponent(e.name),"");if(e.nameA=Object(oe.jsx)(rr,{to:i,onClick:function(){return r.push(i)},children:e.name}),e.commit.sha){var n=W(a.repository.group.name,a.repository.name,"commit",e.commit.sha.substring(0,8));e.shaA=Object(oe.jsx)(rr,{to:n,onClick:function(){return r.push(n)},children:e.commit.sha.substring(0,8)}),e.logA=Object(oe.jsx)(rr,{to:n,onClick:function(){return r.push(n)},children:e.commit.commit})}return e.commit.email&&(e.updater=Z(a.members,e.commit.email)),!0})),!0}))}},{key:"openRefItemMenu",value:function(e,t){var a=this.state.anchor;a[e]=t.target,this.setState({anchor:a})}},{key:"closeRefItemMenu",value:function(e){var t=this.state.anchor;t[e]=null,this.setState({anchor:t})}},{key:"refListItem",value:function(e,t,a){var r=this,n=this.props,s=n.currentRepositoryConfig,o=n.refType,c=n.deleteRef,l=n.tabValue,p=n.classes,d=n.intl,u=this.state,m=u.page,h=u.perpage,g=Y(s);return!(0===l&&!t.length)&&Object(oe.jsxs)(k.a,{container:!0,className:p.refListItem,children:[t.length>0&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(ra,{title:e?d.formatMessage({id:"label."+e}):"",children:t.slice(0,m*h).map((function(t,a){return Object(oe.jsxs)(k.a,{container:!0,className:p.refItem,children:[Object(oe.jsxs)(k.a,{item:!0,xs:11,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:p.oneline,children:[Object(oe.jsx)(fe.a,{className:p.icon,icon:"tag"===o?je.G:je.d}),"\xa0\xa0\xa0",Object(oe.jsx)(w.a,{component:"span",className:p.refName,children:t.nameA}),"\xa0\xa0",Object(oe.jsx)(w.a,{component:"span",className:p.refLog,children:t.detail}),"\xa0\xa0","branch"===o&&t.protected&&Object(oe.jsx)(fe.a,{className:p.icon2,icon:je.C}),"branch"===o&&t.name===g&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)($e,{color:"secondary",text:d.formatMessage({id:"label.default"})})," \xa0\xa0\xa0"]}),"branch"===o&&t.name!==g&&!!t.isMerge&&Object(oe.jsx)($e,{color:"success",icon:je.P,text:d.formatMessage({id:"message.merged"})})]}),Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:p.oneline,children:[Object(oe.jsx)(fe.a,{className:p.icon,icon:je.i}),"\xa0\xb7\xa0",Object(oe.jsx)(w.a,{component:"span",className:p.refSha,children:t.shaA}),"\xa0\xb7\xa0",Object(oe.jsx)(w.a,{component:"span",className:p.refLog,children:t.logA}),"\xa0\xb7\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"span",className:p.refUpdate,children:[t.updater.name,"\xa0",d.formatMessage({id:"label.updatedIn"}),"\xa0"]}),Object(oe.jsx)(Nt,{timestamp:1*t.commit.time})]})]}),Object(oe.jsxs)(k.a,{item:!0,xs:1,className:p.delete,children:["branch"===o&&t.name!==g&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.more",onClick:function(t){return r.openRefItemMenu(e+a,t)},icon:je.cb}),Object(oe.jsx)(ct.a,{anchorEl:r.state.anchor[e+a],transitionDuration:0,open:!!r.state.anchor[e+a],onClose:function(t){return r.closeRefItemMenu(e+a)},children:Object(oe.jsxs)(pt.a,{onClick:function(){r.closeRefItemMenu(e+a),c(t.name)},children:[Object(oe.jsx)(fe.a,{className:p.icon,icon:je.H}),"\xa0\xa0",d.formatMessage({id:"label.delete"})]})})]}),"tag"===o&&Object(oe.jsx)(Pe,{label:"label.delete",className:p.icon,onClick:function(){return c(t.name)},icon:je.H})]})]},a)}))})}),0!==l&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,className:p.more,justifyContent:"center",children:Object(oe.jsx)(k.a,{item:!0,children:m*h>=t.length?Object(oe.jsx)(_.a,{size:"small",disabled:!0,children:d.formatMessage({id:"label.noMore"})}):Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",size:"small",disableElevation:!0,onClick:function(e){return r.setState({page:r.state.page+1})},children:[d.formatMessage({id:"label.more"})," \xa0\xa0",Object(oe.jsx)(fe.a,{icon:He.a})]})})})})]},a)}},{key:"render",value:function(){var e=this,t=this.props,a=t.refType,r=t.count,n=t.refTitles,s=t.refLists,o=t.pending,c=t.currentRepositoryConfig,l=t.classes,p=t.history,d=t.intl;this.refListsDeal(s);var u=0;return s&&s.map((function(e,t){return u+=e.length,!0})),Object(oe.jsx)(i.a.Fragment,{children:r?u?s.map((function(t,a){return e.refListItem(n[a],t,a)})):Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,className:l.more,justifyContent:"center",children:Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(_.a,{disabled:!0,children:d.formatMessage({id:"label.noMore"})})})})}):Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(Pt,{imageName:"tag"===a?"branches-empty.png":"tags-empty.png",title:d.formatMessage({id:"message.repository_S_empty"},{s:d.formatMessage({id:"label."+a})}),notice:d.formatMessage({id:"tag"===a?"message.repositoryTagEmpty":"message.repositoryBranchEmpty"}),children:"tag"===a?c.branches&&c.branches.length>0&&Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:o,onClick:function(){return p.push(W(c.repository.group.name,c.repository.name,"tags","new"))},children:d.formatMessage({id:"label.newTag"})}):Object(oe.jsx)(Oe,{type:"button",doc:"/git/create_branch.md",title:d.formatMessage({id:"label.newBranch"})})})})})}}]),a}(i.a.Component),yr=Object(R.b)(Object(C.a)((function(e){return{refListItem:{marginTop:e.spacing(3)},oneline:{display:"flex",height:e.spacing(3),alignItems:"center"},refItem:{padding:e.spacing(1.5)+"px "+e.spacing(3)+"px",borderTop:"1px solid "+e.palette.border},refName:{"& a":{color:e.palette.text.main+" !important",fontWeight:600}},refLog:{display:"flex",alignItems:"center",maxWidth:"35%","& a":{display:"inline-block",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:e.palette.text.main+" !important"}},refUpdate:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},refSha:{"& a":{color:e.palette.secondary.main+" !important"}},delete:{display:"flex",justifyContent:"flex-end",alignItems:"center"},more:{paddingTop:e.spacing(2)},icon:{color:e.palette.text.light},icon2:{color:e.palette.success.main,marginRight:e.spacing(2.5)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{}}))(Or)))),xr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).observed={keyword:r.props.match.params.branch?r.props.match.params.branch:"",tabValue:0,data:null},r.state={refTitles:[],branchLists:null,pending:!0,repage:0,sortDesc:!0},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.getData(e),!1):this.state.sortDesc===t.sortDesc||(this.dataSort(t.sortDesc),!1)}},{key:"getData",value:function(e){var t=this;if(!e.currentRepositoryKey||!e.currentRepositoryConfig.repository)return!1;Ht.branchList({repository:e.currentRepositoryKey}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),e.code||(t.observed.data=e.data,t.dataSort(t.state.sortDesc))}))}},{key:"dataSort",value:function(e){this.observed.data&&(this.observed.data.sort((function(t,a){return e?a.commit.time-t.commit.time:t.commit.time-a.commit.time})),this.dataFilter(this.observed.tabValue))}},{key:"dataFilter",value:function(e){var t=this.observed,a=t.data,r=t.keyword;this.observed.tabValue=e;var i=null;i=null!==a&&a.length?r?a.filter(U.nameLikes(r)):a:[];var n=[],s=[],o=Math.floor((new Date).getTime()/1e3),c=7776e3;i.map((function(t,a){return o-t.commit.time<=c&&(0===e||1===e)?n.push(t):o-t.commit.time>c&&(0===e||2===e)&&s.push(t),!0}));var l=[],p=[];0===e?(l.push("active","inactive"),p.push(n,s)):1===e?(l.push("active"),p.push(n)):2===e&&(l.push("inactive"),p.push(s)),this.setState({refTitles:l,branchLists:p,repage:this.state.repage+1})}},{key:"filterBranch",value:function(e){this.observed.keyword=e,this.dataFilter(this.observed.tabValue)}},{key:"deleteBranch",value:function(e){var t=this,a=this.props,r=a.currentRepositoryKey,i=a.intl;if(!r||!e)return!1;Ht.deleteBranch({repository:r,branch:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code?t.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.error.deleteFail"}),2)):(t.observed.data=t.observed.data.filter((function(t,a){return t.name!==e})),t.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.deleted"}),0)),t.dataFilter(t.observed.tabValue)),t.props.dispatchEvent(ae.cancelComformation())}))}},{key:"deleteConfirm",value:function(e){var t=this,a=this.props.intl;this.props.dispatchEvent(ae.addComformation("branch_remove",{title:a.formatMessage({id:"message.confirmDelete"},{s:a.formatMessage({id:"label.branch"})+" '"+e+"' "}),description:"",reject:function(){return!0},accept:function(){t.deleteBranch(e)}}))}},{key:"render",value:function(){var e=this,t=this.state,a=t.refTitles,r=t.branchLists,i=t.pending,n=t.repage,s=t.sortDesc;return Object(oe.jsx)(k.a,{container:!0,spacing:3,children:Object(oe.jsx)(vr,{refType:"branch",pending:i,tabValue:this.observed.tabValue,tabChange:function(t){return e.dataFilter(t)},searchRef:function(t){return e.filterBranch(t)},sortDesc:s,sortSwitch:function(){return e.setState({sortDesc:!s})},children:r?Object(oe.jsx)(yr,{refType:"branch",count:this.observed.data?this.observed.data.length:0,refTitles:a,refLists:r,deleteRef:function(t){return e.deleteConfirm(t)},repage:n,pending:i,tabValue:this.observed.tabValue}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:this.props.classes.loading,children:Object(oe.jsx)(he.a,{})})})})}}]),a}(r.Component),Sr=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(xr)))),Cr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).observed={keyword:r.props.match.params.tag?r.props.match.params.tag:"",data:null},r.state={tagList:null,pending:!0,repage:0,sortDesc:!0},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props)}},{key:"getData",value:function(e){var t=this;if(!e.currentRepositoryKey||!e.currentRepositoryConfig.repository)return!1;Ht.tagList({repository:e.currentRepositoryKey}).then(ne.withEventdispatcher(e.dispatchEvent)(ne.getJSONData)).then((function(e){t.setState({pending:!1}),e.code||(t.observed.data=e.data,t.dataSort(t.state.sortDesc))}))}},{key:"dataSort",value:function(e){this.observed.data&&(this.observed.data.sort((function(t,a){return e?a.commit.time-t.commit.time:t.commit.time-a.commit.time})),this.dataFilter())}},{key:"dataFilter",value:function(){var e=this.observed,t=e.data,a=e.keyword,r=null;r=null!==t&&t.length?a?t.filter(U.nameLikes(a)):t:[],this.setState({tagList:[r],repage:this.state.repage+1})}},{key:"filterTag",value:function(e){this.observed.keyword=e,this.dataFilter()}},{key:"deleteTag",value:function(e){var t=this,a=this.props,r=a.currentRepositoryKey,i=a.intl;if(!r||!e)return!1;Ht.deleteTag({repository:r,tag:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code?t.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.error.deleteFail"}),2)):(t.observed.data=t.observed.data.filter((function(t,a){return t.name!==e})),t.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.deleted"}),0)),t.dataFilter()),t.props.dispatchEvent(ae.cancelComformation())}))}},{key:"deleteConfirm",value:function(e){var t=this,a=this.props.intl;this.props.dispatchEvent(ae.addComformation("tag_remove",{title:a.formatMessage({id:"message.confirmDelete"},{s:a.formatMessage({id:"label.tag"})+" '"+e+"' "}),description:"",reject:function(){return!0},accept:function(){t.deleteTag(e)}}))}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.getData(e),!1):this.state.sortDesc===t.sortDesc||(this.dataSort(t.sortDesc),!1)}},{key:"render",value:function(){var e=this,t=this.state,a=t.tagList,r=t.pending,i=t.repage,n=t.sortDesc;return Object(oe.jsx)(k.a,{container:!0,spacing:3,children:Object(oe.jsx)(vr,{refType:"tag",pending:r,searchRef:function(t){return e.filterTag(t)},sortDesc:n,sortSwitch:function(){return e.setState({sortDesc:!n})},children:null!==a?Object(oe.jsx)(yr,{refType:"tag",count:this.observed.data?this.observed.data.length:0,refTitles:[""],refLists:a,deleteRef:function(t){return e.deleteConfirm(t)},repage:i,pending:r}):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:this.props.classes.loading,children:Object(oe.jsx)(he.a,{})})})})}}]),a}(i.a.Component),Nr=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Cr)))),Rr=a(125),Mr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,name:"",origin:"",description:"",error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.tagName"})})},{name:"name",passPattern:/^.{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"name",passPattern:/^\w+(\.\w+)*$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.tagName"})})},{name:"origin",passPattern:/^.{0,40}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:40})},{name:"description",passPattern:/^[\S\n]{0,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"name",exceptionCode:1027,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.tagName"})})},{name:"name",exceptionCode:1030,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.tagName"})})},{name:"origin",exceptionCode:1036,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.createOrigin"})})}]),r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.state.pending&&this.props.currentRepositoryKey&&void 0!==this.props.currentRepositoryConfig.repository&&this.setState({pending:!1}),this.state.pending&&void 0!==this.props.currentRepositoryConfig.repository&&this.props.currentRepositoryKey!==e.currentRepositoryKey&&this.setState({pending:!1}),this.state.pending&&this.props.currentRepositoryKey&&JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)&&this.setState({pending:!1}),!0}},{key:"createTag",value:function(){var e=this,t=this.props,a=t.currentRepositoryKey,r=t.currentRepositoryConfig,i=t.history,n=t.intl,s=this.state,o=s.name,c=s.origin,l=s.description;if(!a||!r.repository||!this.checkInput())return!1;if("new"===o||".git"===o.slice(o.length-4))return this.setState({error:{name:n.formatMessage({id:"message.error._S_invalid"},{s:this.props.intl.formatMessage({id:"label.tagName"})})}}),!1;var p,d=Object(Rr.a)(r.branches);try{for(d.s();!(p=d.n()).done;){var u=p.value;if(o===u.name)return this.setState({error:{name:n.formatMessage({id:"message.error._S_duplicate"},{s:this.props.intl.formatMessage({id:"label.tagName"})})}}),!1}}catch(b){d.e(b)}finally{d.f()}var m,h=Object(Rr.a)(r.tags);try{for(h.s();!(m=h.n()).done;){var g=m.value;if(o===g.name)return this.setState({error:{name:n.formatMessage({id:"message.error._S_duplicate"},{s:this.props.intl.formatMessage({id:"label.tagName"})})}}),!1}}catch(b){h.e(b)}finally{h.f()}this.setState({pending:!0}),Ht.createTag({repository:a,name:o,origin:c,description:l}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createTagFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(r.tags.push({id:o,name:o}),++r.count.tag,i.push(W(r.repository.group.name,r.repository.name,"tags")))}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.history,i=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:i.title,children:n.formatMessage({id:"label.newTag"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.tagName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",placeholder:n.formatMessage({id:"message.error.input_S_placeholder"},{s:n.formatMessage({id:"label.tagName"})}),value:this.state.name,error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){e.setState({name:t.target.value,error:{}})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.choseCreateOrigin"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.origin,error:!!this.state.error.origin,helperText:this.state.error.origin,onChange:function(t){return e.setState({origin:t.target.value})},children:[Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.tag"})}),a.tags&&a.tags.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.G}),"\xa0\xa0",e.name]},t)}))]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.tagDescription"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:this.state.description,error:!!this.state.error.description,helperText:this.state.error.description,onChange:function(t){e.setState({description:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:Object(oe.jsx)(k.a,{item:!0,xs:3,className:i.textRight,children:Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:this.state.description.length>30?i.outRange:"",children:[this.state.description.length,"/30"]})})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",className:i.mr16,disabled:this.state.pending,onClick:function(){return r.push(W(a.repository.group.name,a.repository.name,"tags"))},children:n.formatMessage({id:"label.cancel"})}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.createTag()},children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit",className:i.mr16}):"",n.formatMessage({id:"label.ok"})]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:"\xa0"})]})})]})}}]),a}(i.a.Component),wr=Object(R.b)(Object(C.a)((function(e){return{title:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(3),borderBottom:"1px solid "+e.palette.border},icon:{color:e.palette.text.light},textRight:{textAlign:"right"},outRange:{color:e.palette.error.main},mr16:{marginRight:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Mr)))),kr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,name:"",origin:"",error:{}},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"name",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"name",passPattern:/^.{1,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})},{name:"name",passPattern:/^\w[\w/-\\.]+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"origin",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notChoose"},{s:r.props.intl.formatMessage({id:"label.createOrigin"})})},{name:"origin",passPattern:/^.{1,40}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:40})}]),r.checkResponse=se.codeValidator(Object(N.a)(r),[{name:"name",exceptionCode:1027,errorMessage:r.props.intl.formatMessage({id:"message.error._S_invalid"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"name",exceptionCode:1030,errorMessage:r.props.intl.formatMessage({id:"message.error._S_duplicate"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"origin",exceptionCode:1036,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"label.createOrigin"})})}]),r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.state.pending&&this.props.currentRepositoryKey&&void 0!==this.props.currentRepositoryConfig.repository&&this.setState({pending:!1}),this.state.pending&&void 0!==this.props.currentRepositoryConfig.repository&&this.props.currentRepositoryKey!==e.currentRepositoryKey&&this.setState({pending:!1}),this.state.pending&&this.props.currentRepositoryKey&&JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)&&this.setState({pending:!1}),!0}},{key:"createBranch",value:function(){var e=this,t=this.props,a=t.currentRepositoryKey,r=t.currentRepositoryConfig,i=t.history,n=t.intl,s=this.state,o=s.name,c=s.origin;if(!a||!r.repository||!this.checkInput())return!1;if("new"===o||".git"===o.slice(o.length-4))return this.setState({error:{name:n.formatMessage({id:"message.error._S_invalid"},{s:this.props.intl.formatMessage({id:"label.branchName"})})}}),!1;var l,p=Object(Rr.a)(r.branches);try{for(p.s();!(l=p.n()).done;){var d=l.value;if(o===d.name)return this.setState({error:{name:n.formatMessage({id:"message.error._S_duplicate"},{s:this.props.intl.formatMessage({id:"label.branchName"})})}}),!1}}catch(g){p.e(g)}finally{p.f()}var u,m=Object(Rr.a)(r.tags);try{for(m.s();!(u=m.n()).done;){var h=u.value;if(o===h.name)return this.setState({error:{name:n.formatMessage({id:"message.error._S_duplicate"},{s:this.props.intl.formatMessage({id:"label.branchName"})})}}),!1}}catch(g){m.e(g)}finally{m.f()}this.setState({pending:!0}),Ht.createBranch({repository:a,name:o,origin:c}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code?e.checkResponse(t.code)?(e.props.dispatchEvent(ae.NewNotification(e.props.intl.formatMessage({id:"message.error.createBranchFail"}),2)),e.setState({pending:!1})):e.setState({pending:!1}):(r.branches.push({id:o,name:o}),++r.count.branch,i.push(W(r.repository.group.name,r.repository.name,"branches")))}))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.history,i=t.classes,n=t.intl;return Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:i.title,children:n.formatMessage({id:"label.newBranch"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.branchName"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:this.state.name,placeholder:n.formatMessage({id:"message.error.input_S_placeholder"},{s:n.formatMessage({id:"label.branchName"})}),error:!!this.state.error.name,helperText:this.state.error.name,onChange:function(t){return e.setState({name:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",gutterBottom:!0,children:n.formatMessage({id:"label.choseCreateOrigin"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:this.state.origin,error:!!this.state.error.origin,helperText:this.state.error.origin,onChange:function(t){return e.setState({origin:t.target.value})},children:[Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.tag"})}),a.tags&&a.tags.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.G}),"\xa0\xa0",e.name]},t)}))]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:"\xa0"}),Object(oe.jsxs)(k.a,{item:!0,xs:12,align:"right",children:[Object(oe.jsx)(_.a,{variant:"outlined",color:"primary",className:i.mr16,disabled:this.state.pending,onClick:function(){return r.push(W(a.repository.group.name,a.repository.name,"branches"))},children:n.formatMessage({id:"label.cancel"})}),Object(oe.jsxs)(_.a,{variant:"contained",color:"primary",disabled:this.state.pending,onClick:function(){return e.createBranch()},children:[this.state.pending?Object(oe.jsx)(he.a,{size:"1rem",color:"inherit",className:i.mr16}):"",n.formatMessage({id:"label.ok"})]})]})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:"\xa0"})]})})]})}}]),a}(i.a.Component),_r=Object(R.b)(Object(C.a)((function(e){return{title:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(3),borderBottom:"1px solid "+e.palette.border},icon:{color:e.palette.text.light},mr16:{marginRight:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(kr)))),Er=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,refList:[],refTotal:0},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.getData(this.props)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey?(this.getData(e),!1):this.props.currentHash===e.currentHash||(this.getData(e),!1)}},{key:"getData",value:function(e){var t=this;if(!e.currentHash||!e.currentRepositoryKey)return!1;Ht.refListContainSHA({repository:e.currentRepositoryKey,hash:e.currentHash}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var a=[];a.branch=e.data.branch,a.tag=e.data.tag,t.setState({pending:!1,refList:a,refTotal:e.data.branch.length+e.data.tag.length})}}))}},{key:"render",value:function(){var e=this.props,t=e.show,a=e.classes,r=e.parentHash,i=e.currentGroup,n=e.currentRepository,s=e.history,c=e.intl,l=this.state,p=l.refList,d=l.refTotal;return Object(oe.jsxs)(k.a,{container:!0,className:[a.content,t?a.contentShow:""].join(" "),children:[Object(oe.jsxs)(k.a,{item:!0,xs:12,className:a.parent,children:[Object(oe.jsx)(w.a,{variant:"body1",component:"div",children:c.formatMessage({id:"label.parentNode"})}),Object(oe.jsx)(k.a,{children:r.length>0?r.map((function(e,t){return Object(oe.jsx)(o.b,{className:a.parentA,to:W(i,n,"commit",e?e.substr(0,8):""),children:e?e.substr(0,8):""},t)})):""})]}),Object(oe.jsxs)(k.a,{item:!0,xs:12,className:[a.parent,a.borderNone].join(" "),children:[Object(oe.jsx)(w.a,{variant:"body1",component:"div",className:a.versions,children:c.formatMessage({id:"message.someVersion"})}),d>0?p.branch.map((function(e,t){var r=W(i,n,"files",encodeURIComponent(e));return Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",className:a.button,onClick:function(){return s.push(r)},children:[Object(oe.jsx)(fe.a,{icon:je.d}),"\xa0",e]},t)})):Object(oe.jsxs)(_.a,{color:"primary",size:"small",disabled:!0,disableElevation:!0,children:[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," \xa0\xa0"]}),d>0?p.tag.map((function(e,t){var r=W(i,n,"files",encodeURIComponent(e));return Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",className:a.button,onClick:function(){return s.push(r)},children:[Object(oe.jsx)(fe.a,{icon:je.G}),"\xa0",e]},t)})):Object(oe.jsxs)(_.a,{color:"primary",size:"small",disabled:!0,disableElevation:!0,children:[Object(oe.jsx)(he.a,{size:"1rem",color:"inherit"})," \xa0\xa0"]})]})]})}}]),a}(r.Component),Tr=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{content:{maxHeight:"0px",marginTop:e.spacing(3)+"px",overflow:"hidden",transition:"max-height .3s",border:"1px solid "+e.palette.border,borderBottom:"0px"},contentShow:{maxHeight:"1000px",border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px"},parent:{padding:e.spacing(2)+"px 0px",margin:"0px "+e.spacing(2)+"px",borderBottom:"1px solid "+e.palette.border},parentA:{display:"inline-block",marginTop:e.spacing(2),marginRight:e.spacing(2)},borderNone:{border:"0px"},versions:{marginBottom:e.spacing(1)},button:{marginRight:e.spacing(1),marginTop:e.spacing(1)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Er))))),Ar=a(439),Dr=a(440),Ir=a(441),Pr=a(156),Fr=a.n(Pr),Lr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={originalHTML:[],modifiedHTML:[],original:[],modified:[],fullfileContent:[],diffContent:[]},r.checkResponse=se.codeValidator(Object(N.a)(r),[{exceptionCode:1038,errorMessage:r.props.intl.formatMessage({id:"message.error._S_notFound"},{s:r.props.intl.formatMessage({id:"phrase.file"})})}]),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.props.showFullFile?this.makeFullDiffContent():(this.makeDiffContent(),this.state.fullfileContent.length>0&&this.buildFullFileContent())}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.showFullFile===e.showFullFile||(e.showFullFile?this.makeFullDiffContent():(this.makeDiffContent(),this.state.fullfileContent.length>0&&this.buildFullFileContent()),!1)}},{key:"getFileContent",value:function(e){var t=this;Ht.object({repository:this.props.repository,parent:this.props.fileDiffInfo.original.sha}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code?t.checkResponse(a.code)&&t.props.dispatchEvent(ae.NewNotification(t.props.intl.formatMessage({id:"message.error.getFileFail"}),2)):(t.state.fullfileContent=a.data.object&&a.data.object.raw?a.data.object.raw.split("\n"):[],t.setState({fullfileContent:t.state.fullfileContent}),e(a))}))}},{key:"highlight",value:function(e){for(var t=$(this.props.fileDiffInfo.original.name||this.props.fileDiffInfo.modified.name||""),a=Ya.a.highlight(e.join("\n"),Ya.a.languages[t]||Ya.a.languages.markdown,t).split("\n"),r=[],i=0;i0){if(this.props.fileDiffInfo&&this.props.fileDiffInfo.diff&&this.props.fileDiffInfo.diff.line.length){for(var t=this.state.fullfileContent.length,a=this.props.fileDiffInfo.diff.line,r=[],i=[],n=[],s=[null,null],o=0;o0){var r=this.state.diffContent,i=r[t];if("head"===e){var n=this.state.diffContent[t-1],s=this.state.diffContent[t+1];if(!n&&s[1]<=20){for(var o=[],c=s[0]-1,l=s[1]-1;l>0;l--)o.unshift([c,l,""]),c--;return r.splice.apply(r,[t,1].concat(o)),this.setState({diffContent:r}),!0}if(n&&n[1]&&n[1]+21>=s[1]){for(var p=[],d=n[0]+1,u=n[1]+1;u=s[1]-20;b--)h.unshift([g,b,""]),g--;return r.splice.apply(r,[t+1,0].concat(h)),this.setState({diffContent:r}),!0}if("tail"===e){var f=this.state.diffContent[t-1],j=this.state.diffContent[t+1];if(!i&&f[0]+21>this.state.fullfileContent.length){for(var v=[],O=f[1]+1,y=f[0]+1;y<=this.state.fullfileContent.length;y++)v.push([y,O,""]),O++;return r.splice.apply(r,[t,1].concat(v)),this.setState({diffContent:r}),!0}if(i&&j&&j[1]&&f[1]+21>=j[1]){for(var x=[],S=f[0]+1,C=f[1]+1;C0&&(!this.state.fullfileContent.length||this.state.diffContent[this.state.diffContent.length-1][0] "+a.modified.name," \xa0\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[a.original.mode===a.modified.mode?"":a.original.mode+" -> "+a.modified.mode," \xa0"]})]}),Object(oe.jsx)(Pe,{label:v,icon:je.k,className:s.icon,onClick:function(t){e.copyPath(t,a.modified.name),t.stopPropagation()},onMouseLeave:function(){window.setTimeout((function(){return e.setState({copyPath:"label.copyPath"})}),100)}})]}),N===g&&Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"span",className:s.add,children:["+",a.diff.additions]}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:s.delete,children:a.diff.deletions}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:s.separator,children:"|"}),Object(oe.jsx)(be.a,{title:x,disableFocusListener:!0,placement:"top",children:Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleFullFile(t)},children:Object(oe.jsx)(fe.a,{icon:y?He.c:je.o})})}),i===n&&m&&Object(oe.jsx)(be.a,{title:O+"@"+m,disableFocusListener:!0,placement:"top",children:Object(oe.jsx)(_.a,{onClick:function(t){return e.viewFileDetail(C)},children:Object(oe.jsx)(fe.a,{icon:je.p})})})]}),N===b&&i===n&&u&&m&&Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(be.a,{title:O+"@"+u,disableFocusListener:!0,placement:"top",children:Object(oe.jsxs)(_.a,{className:s.viewOldFileBtn,onClick:function(t){return e.viewFileDetail(S)},children:[Object(oe.jsx)(fe.a,{icon:je.p}),"\xa0\xa0",o.formatMessage({id:"label.browserUnchangedFIle"})," \xa0","@"+u]})}),Object(oe.jsx)(be.a,{title:O+"@"+m,disableFocusListener:!0,placement:"top",children:Object(oe.jsxs)(_.a,{className:s.viewFileBtn,onClick:function(t){return e.viewFileDetail(C)},children:[Object(oe.jsx)(fe.a,{icon:je.p}),"\xa0\xa0",o.formatMessage({id:"label.browserFile"}),"\xa0","@"+m]})})]})]})}),Object(oe.jsx)(Ir.a,{className:s.panelDetail,children:Object(oe.jsx)(Gr,{fileDiffInfo:a,repository:i,renderSideBySide:r,layoutUpdateTimeStamp:l,showFullFile:y})})]})}}]),a}(r.Component),qr=Object(R.b)(Object(C.a)((function(e){return{add:{color:e.palette.success.main,cursor:"default",marginLeft:e.spacing(3),marginRight:e.spacing(2)},delete:{color:e.palette.error.main,cursor:"default",marginLeft:e.spacing(1),marginRight:e.spacing(1)},viewFileBtn:{minWidth:e.spacing(24)},viewOldFileBtn:{minWidth:e.spacing(27)},fileName:{cursor:"default",marginTop:e.spacing(.5)},viewFile:{marginLeft:e.spacing(2)},panelSummary:{border:"1px solid "+e.palette.border,position:"sticky",top:e.spacing(16),zIndex:7},panelDetail:{zIndex:e.spacing(1),overflow:"hidden"},separator:{color:e.palette.border},icon:{color:e.palette.primary.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Hr)))),zr=0,Wr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).fileBrowser={changeFilesTmp:null,treeFiles:null,listFiles:null},r.state={count:0},r.initChangeFiles(),r.listFilesRef=i.a.createRef(),r}return Object(d.a)(a,[{key:"initChangeFiles",value:function(){var e=this.props.changeFiles;if(!e||!e.length)return!1;e.map((function(e,t){var a=e.name.lastIndexOf("/");return e.used=!1,e.dirname=-1!==a?e.name.slice(0,a):"",e.filename=-1!==a?e.name.slice(a+1):e.name,!0})),this.initTreeFiles(),this.initListFiles()}},{key:"initTreeFiles",value:function(){var e=this,t=this.props.changeFiles;return!(!t||!t.length)&&(this.fileBrowser.treeFiles={"/":!0,"/open":!0},this.fileBrowser.changeFilesTmp=Object(T.a)(t),this.fileBrowser.changeFilesTmp.sort((function(e,t){return e.dirname!==t.dirname&&e.dirname.indexOf(t.dirname)>-1?-1:0})),this.fileBrowser.changeFilesTmp.map((function(t,a){var r=e.fileBrowser.treeFiles;t.dirname&&t.dirname.split("/").map((function(e,t){return!!e&&(void 0===r[e]&&(r[e]={"/":!0,"/open":!0}),r=r[e],!0)}));return r[t.filename]=Object(y.a)({"/":!1},t),!0})),!0)}},{key:"initListFiles",value:function(){var e=this,t=this.props.changeFiles;return!(!t||!t.length)&&(this.fileBrowser.listFiles=[],t.map((function(a,r){if(a.used)return a;a.used=!0;var i={name:a.dirname,files:[a]};return t.map((function(e,t){return e.used?e:(e.dirname===i.name&&(e.used=!0,i.files.push(e)),!0)})),e.fileBrowser.listFiles.push(i),!0})),!0)}},{key:"treeFiles",value:function(e,t,a){var r=this,n=this.props,s=n.fileClick,o=n.classes,c=Object.keys(t),l=0;return!(c.length<3)&&(c.map((function(e,a){return l+="/"===e||"/open"===e||t[e]["/"]?0:1,!0})),Object(oe.jsx)(i.a.Fragment,{children:l>0||c.length>3?Object(oe.jsxs)(w.a,{component:"div",children:[Object(oe.jsxs)(w.a,{component:"div",className:o.tree,style:this.calcPadding(a,!0),onClick:function(e){t["/open"]=!t["/open"],r.setState({count:r.state.count+1})},children:[Object(oe.jsx)(fe.a,{icon:t["/open"]?He.f:He.e}),"\xa0\xa0",e]}),t["/open"]&&c.map((function(e,n){return"/"!==e&&"/open"!==e&&Object(oe.jsx)(i.a.Fragment,{children:t[e]["/"]?r.treeFiles(e,t[e],a+1):Object(oe.jsxs)(w.a,{component:"div",className:o.tree,onClick:function(a){return s(t[e].hash)},style:r.calcPadding(a,!1),children:[Object(oe.jsx)(fe.a,{icon:He.d}),"\xa0\xa0",t[e].filename,Object(oe.jsxs)(w.a,{component:"span",className:o.delete,children:["-",t[e].delete]}),Object(oe.jsxs)(w.a,{component:"span",className:o.add,children:["+",t[e].add,"\xa0"]})]})},n)}))]}):c.map((function(n,s){return"/"!==n&&"/open"!==n&&Object(oe.jsx)(i.a.Fragment,{children:r.treeFiles(("/"!==e?e+"/":"")+n,t[n],a)},s)}))}))}},{key:"calcPadding",value:function(e,t){return{paddingLeft:(2*e+(t?1:3))*zr+"px"}}},{key:"listFiles",value:function(){var e=this,t=this.props,a=t.fileClick,r=t.classes,i=this.fileBrowser.listFiles;return!(!i||!i.length)&&Object(oe.jsx)(w.a,{component:"div",ref:this.listFilesRef,children:i.map((function(t,i){return Object(oe.jsxs)(w.a,{component:"div",className:r.listSub,children:[Object(oe.jsxs)(w.a,{component:"div",className:r.listDir2,children:[e.calcDir(t.name),"/"]}),Object(oe.jsxs)(w.a,{component:"div",className:r.listDir,children:[t.name,"/"]}),t.files&&t.files.map((function(e,t){return Object(oe.jsxs)(w.a,{component:"div",className:r.listFile,onClick:function(t){return a(e.hash)},children:[Object(oe.jsx)(fe.a,{icon:He.i}),"\xa0\xa0",e.filename,Object(oe.jsxs)(w.a,{component:"span",className:r.delete,children:["-",e.delete]}),Object(oe.jsxs)(w.a,{component:"span",className:r.add,children:["+",e.add,"\xa0"]})]},t)}))]},i)}))})}},{key:"calcDir",value:function(e){if(!e)return"";for(var t=e.split("/"),a=t.length-2;t.join("/").length>32&&a>0;)t[a--]="..";return t.join("/")}},{key:"listFilesScroll",value:function(e){if(this.props.treeView)return!1;for(var t=e.target.scrollTop,a=0,r=0,i=5*zr,n=this.listFilesRef.current.children,s=0;s=a&&tr-i?(n[s].style="position: relative",n[s].children[0].style="top: "+(n[s].clientHeight-i)+"px"):(n[s].style="position: static",n[s].children[0].style="top: 0; width: "+n[s].clientWidth+"px"):(n[s].style="position: relative",n[s].children[0].style="top: 0"),a+=n[s].clientHeight}},{key:"render",value:function(){var e=this,t=this.props,a=t.treeView,r=t.classes;return this.initChangeFiles(),Object(oe.jsx)(k.a,{container:!0,className:r.fileBrowserTop,children:Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.fileBrowser,onScroll:function(t){return e.listFilesScroll(t)},children:a?this.treeFiles("/",this.fileBrowser.treeFiles,0):this.listFiles()})})}}]),a}(i.a.Component),Vr=Object(R.b)(Object(C.a)((function(e){return zr=parseInt(e.spacing(1)),{fileBrowserTop:{position:"relative",height:"100%"},fileBrowser:{maxHeight:"100%",overflow:"auto",overflowX:"hidden",background:e.palette.background.light},tree:{paddingRight:e.spacing(1),lineHeight:e.spacing(4.5)+"px",cursor:"pointer","& > *":{lineHeight:e.spacing(4.5)+"px"},"&:hover":{background:e.palette.background.dark}},listSub:{position:"relative"},listDir:{lineHeight:e.spacing(5)+"px",paddingLeft:e.spacing(1),background:e.palette.background.light},listDir2:{position:"absolute",width:"100%",left:"0",top:"0",paddingLeft:e.spacing(1),lineHeight:e.spacing(5)+"px",boxSizing:"border-box",background:e.palette.background.light,overflowX:"hidden"},listFile:{lineHeight:e.spacing(5)+"px",paddingLeft:e.spacing(3),paddingRight:e.spacing(1),cursor:"pointer","& > *":{lineHeight:e.spacing(5)+"px"},"&:hover":{background:e.palette.background.dark}},add:{float:"right",color:e.palette.success.main},delete:{float:"right",color:e.palette.error.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(Wr)))),Jr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).mountedFlag=!1,r.observed={currentRepositoryKey:null},r.state={changedFilesInfo:[],diffViwerLayoutUpdateTimestamp:0,fileTreeIsOpen:!1,fileTreeGridNumber:3,effectFileCount:0,fileDiff:[],renderSideBySide:!0,addLine:0,deleteLine:0,pending:!0,large:!1},r}return Object(d.a)(a,[{key:"toggleDiffShow",value:function(){this.setState({renderSideBySide:!this.state.renderSideBySide,diffViwerLayoutUpdateTimestamp:(new Date).getTime()})}},{key:"toggleFileTree",value:function(){this.setState({fileTreeIsOpen:!this.state.fileTreeIsOpen,renderSideBySide:this.state.fileTreeIsOpen,diffViwerLayoutUpdateTimestamp:(new Date).getTime()})}},{key:"jumpToAnchor",value:function(e){window.location.href=window.location.href.split("#")[0]+"#"+e}},{key:"componentDidMount",value:function(){this.mountedFlag=!0,this.observed.currentRepositoryKey=this.props.currentRepositoryKey,this.setState({pending:!0}),this.getData(this.props)}},{key:"getFileTreeInfo",value:function(e){for(var t=[],a=0;a1?e.parentHash[1]:e.childHash}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(e.data.large)return t.setState({effectFileCount:e.data.count,large:!0,pending:!1}),!1;var a=e.data.detail.reduce((function(e,t){return e+t.diff.additions}),0),r=e.data.detail.reduce((function(e,t){return e+t.diff.deletions}),0),i=t.getFileTreeInfo(e.data.detail);t.setState({changedFilesInfo:i,effectFileCount:e.data.count,fileDiff:e.data.detail,addLine:a,deleteLine:r,pending:!1})}))}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.currentRepositoryKey!==e.currentRepositoryKey||this.props.childHash!==e.childHash?(this.setState({pending:!0}),this.getData(e),!1):this.props.parentHash[0]===e.parentHash[0]||(this.setState({pending:!0}),this.getData(e),!1)}},{key:"render",value:function(){var e=this,t=this.state,a=t.effectFileCount,r=t.addLine,n=t.deleteLine,s=t.fileDiff,o=t.renderSideBySide,c=t.pending,l=t.fileTreeIsOpen,p=t.fileTreeGridNumber,d=t.changedFilesInfo,u=t.diffViwerLayoutUpdateTimestamp,m=t.large,h=this.props,g=h.classes,b=h.intl,f=h.childHash,j=h.parentHash,v=h.currentRepositoryKey;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",className:g.stickyPosition,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(w.a,{variant:"body1",className:g.diffTitle,children:[b.formatMessage({id:"label.fileModification"})," \xa0",c?"":"("+a+")"]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,container:!0,justifyContent:"flex-end",alignItems:"center",children:Object(oe.jsxs)(k.a,{item:!0,className:g.content,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"span",children:[b.formatMessage({id:"label.allFiles"})," : \xa0",c?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):a]}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:g.add,children:c?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):"+"+r}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:g.delete,children:c?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):n}),Object(oe.jsxs)(Ha.a,{variant:"outlined",color:"primary",size:"small",children:[Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleDiffShow(t)},children:o?"inline":"side-by-side"}),Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleFileTree(t)},children:l?b.formatMessage({id:"label.closeFileTree"}):b.formatMessage({id:"label.openFileTree"})})]})]})})]}),Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:l?p:12,className:l?g.fileTreeSticky:g.fileTreeHide,children:Object(oe.jsx)(Vr,{changeFiles:d,treeView:Boolean(!1),fileClick:function(t){return e.jumpToAnchor(t)}})}),Object(oe.jsxs)(k.a,{item:!0,xs:l?12-p:12,children:[!c&&s&&s.length>0&&Object(oe.jsx)(k.a,{container:!0,children:s.map((function(e,t){return Object(oe.jsx)(k.a,{item:!0,xs:12,id:e.modified.sha,className:g.fileDiffPanel,children:Object(oe.jsx)(qr,{modifiedRepositoryKey:v,fileDiffInfo:e,renderSideBySide:o,hash:f,parentHash:j,layoutUpdateTimeStamp:u,fileTreeIsOpen:l},t)},t)}))}),!m&&(c||!s||!s.length)&&Object(oe.jsx)(k.a,{container:!0,children:Object(oe.jsx)(Pt,{imageName:"branches-empty.png",title:b.formatMessage({id:"message._S_listEmpty"},{s:b.formatMessage({id:"label.file"})}),pending:c})}),m&&Object(oe.jsx)(k.a,{container:!0,className:g.loading,children:Object(oe.jsx)(w.a,{variant:"body1",component:"span",children:b.formatMessage({id:"message.diffFileToMany"})})})]})]})]})}}]),a}(r.Component),Kr=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{add:{color:e.palette.success.main,marginLeft:e.spacing(3),marginRight:e.spacing(2)},delete:{color:e.palette.error.main,marginLeft:e.spacing(1),marginRight:e.spacing(1)},changedFile:{color:e.palette.primary.main,paddingBottom:e.spacing(1),backgroundColor:"transparent",fontSize:"1.25rem","&:hover":{backgroundColor:"transparent",boxShadow:"none"}},typography:{padding:e.spacing(2)},changedFileList:{width:"100%",maxWidth:e.spacing(113),backgroundColor:e.palette.background.paper},paper:{minWidth:e.spacing(38),width:"100%"},expansionMargin0:{margin:0},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},content:{zIndex:e.spacing(1),backgroundColor:e.palette.background.light},stickyPosition:{position:"sticky",top:e.spacing(8),zIndex:e.spacing(1),padding:e.spacing(2)+"px 0px",backgroundColor:e.palette.background.light},fileTreeHide:{display:"none"},fileTreeSticky:{position:"sticky",top:e.spacing(14.5),maxHeight:window.innerHeight-116+"px"},diffTitle:{lineHeight:e.spacing(4)+"px"},fileDiffPanel:{marginBottom:e.spacing(3)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Jr))))),$r=Object(C.a)((function(e){return{root:{width:e.spacing(3),height:e.spacing(3)}}}))(Be.a),Zr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).mountedFlag=!1,r.state={currentGroup:e.match.params.groupName?e.match.params.groupName:"",currentRepository:e.match.params.repositoryName?e.match.params.repositoryName:"",commitDetail:{},commiterInfo:{name:""},optionAnchorEl:null,parentHash:[],parentHashShow:!1},r.mountedFlag=!1,r}return Object(d.a)(a,[{key:"openOptionPopover",value:function(e){this.setState({optionAnchorEl:e.currentTarget})}},{key:"closeOptionPopover",value:function(){this.setState({optionAnchorEl:null})}},{key:"componentDidMount",value:function(){this.mountedFlag=!0,(0,this.props.closeDrawer)(),this.getData(this.props,this.state)}},{key:"componentWillUnmount",value:function(){this.mountedFlag=!1}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.match.params.hash!==e.match.params.hash||this.props.currentRepositoryKey!==e.currentRepositoryKey?(this.getData(e,t),!1):JSON.stringify(this.props.currentRepositoryConfig)===JSON.stringify(e.currentRepositoryConfig)||(this.getData(e,t),!1)}},{key:"copyHash",value:function(e){var t=this.props.intl;this.copySomething(e),this.setState({copyHash:t.formatMessage({id:"label.copied"})})}},{key:"copySomething",value:function(e){var t=window.document.createElement("input");t.setAttribute("value",e),t.setAttribute("type","text"),window.document.body.appendChild(t),t.select(),document.execCommand("copy"),window.document.body.removeChild(t)}},{key:"getData",value:function(e,t){var a=this;if(!e.match.params.hash||!e.currentRepositoryKey||!e.currentRepositoryConfig.repository)return!1;Ht.commitDetail({repository:e.currentRepositoryKey,commitSHA:e.match.params.hash}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){var r=t.data;if(!r)return!1;if(e.currentRepositoryConfig){var i=Z(e.currentRepositoryConfig.members,r.email),n=r.parent.split(" ");a.setState({commitDetail:r,commiterInfo:i,parentHash:n})}}))}},{key:"render",value:function(){var e=this,t=this.state,a=t.commitDetail,r=t.commiterInfo,n=t.currentRepository,s=t.currentGroup,o=t.parentHash,c=t.parentHashShow,l=this.props,p=l.classes,d=l.currentRepositoryKey,u=l.history,m=l.intl,h=l.match;return Object(oe.jsx)(i.a.Fragment,{children:Object(oe.jsx)(k.a,{container:!0,spacing:3,children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(M.a,{elevation:1,children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",children:[Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",gutterBottom:!0,children:a.commit}),Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:p.oneline,children:[Object(oe.jsx)($r,{src:r.icon?D.HOSTS.PGYER_AVATAR_HOST+r.icon:"/static/images/default_avatar.png"}),"\xa0\xa0",Object(oe.jsxs)(w.a,{component:"span",variant:"body2",children:[r.name,"\xa0\xa0",m.formatMessage({id:"label.editIn"}),"\xa0"]}),a.time&&Object(oe.jsx)(w.a,{component:"span",variant:"body2",children:Object(oe.jsx)(Nt,{timestamp:a.time})})]})]}),Object(oe.jsxs)(k.a,{item:!0,className:p.oneline,children:[Object(oe.jsxs)(_.a,{variant:"outlined",color:"primary",onClick:function(t){return e.setState({parentHashShow:!c})},children:[m.formatMessage({id:"label.detail"}),Object(oe.jsx)(fe.a,{icon:je.L,className:[p.icon,c?p.transform:""].join(" ")})]}),a.sha&&Object(oe.jsx)(k.a,{className:p.ml16,children:Object(oe.jsx)(nr,{hash:a.sha.substr(0,8)})}),Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:p.ml16,onClick:function(){return u.push(W(s,n,"files",h.params.hash,""))},children:m.formatMessage({id:"label.browserFile"})})]})]}),Object(oe.jsx)(Tr,{show:c,parentHash:o,currentHash:h.params.hash,currentGroup:s,currentRepository:n,currentRepositoryKey:d}),Object(oe.jsx)(k.a,{container:!0,spacing:2,justifyContent:"space-between",children:Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Kr,{id:"FileDiffDetail",parentHash:o,childHash:h.params.hash,rKey:d})})})]})})})})}}]),a}(i.a.Component),Yr=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{oneline:{display:"flex",alignItems:"center"},ml16:{marginLeft:e.spacing(2)},icon:{marginLeft:e.spacing(1),fontSize:e.spacing(1),color:e.palette.text.main},transform:{transform:"rotate(180deg)"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{closeDrawer:function(){e({type:"drawer.expandStatus.close"})},dispatchEvent:function(t){e(t)}}}))(Zr))))),Xr=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.repositoryInfo,a=e.reviewers,r=e.classes;return Object(oe.jsx)(k.a,{container:!0,justifyContent:"flex-end",children:a.length>0&&a.map((function(e,a){var i=t.members.filter(U.id(e.user))[0];return Object(oe.jsxs)(k.a,{item:!0,className:r.reviewer,children:[Object(oe.jsx)(Be.a,{className:r.reviewerIcon,src:D.HOSTS.PGYER_AVATAR_HOST+i.icon}),Object(oe.jsx)(fe.a,{icon:e.isReview?je.P:je.M,className:[r.isReview,e.isReview?r.reviewed:""].join(" ")})]},a)}))})}}]),a}(i.a.Component),Qr=Object(C.a)((function(e){return{reviewer:{position:"relative"},reviewerIcon:{marginLeft:"-8px",borderRadius:"50%",boxSizing:"border-box",width:e.spacing(4),height:e.spacing(4),border:"2px solid "+e.palette.background.light+" !important"},isReview:{right:0,bottom:0,zIndex:"1",fontSize:"12px",borderRadius:"50%",position:"absolute",color:e.palette.text.light,background:e.palette.background.light,border:"2px solid "+e.palette.background.light},reviewed:{color:e.palette.success.main}}}))(Object(h.f)(Xr)),ei=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).dataDeal(),r}return Object(d.a)(a,[{key:"dataDeal",value:function(){var e=this.props,t=e.data,a=e.repositoryList,r=e.history;if(!t&&!a.length)return!1;var i=a.filter(U.id(t.targetRepository));if(i.length){var n=i[0];t.targetRepository=n;var s=W(n.group.name,n.name,"commits",encodeURIComponent(t.targetBranch));t.targetLink=Object(oe.jsx)(rr,{to:s,onClick:function(e){return r.push(s)},children:t.targetBranch});var o=W(n.group.name,n.name,"mergerequests",t.number);t.titleLink=Object(oe.jsx)(rr,{to:o,onClick:function(e){return r.push(o)},children:t.title})}else t.targetLink=t.targetBranch,t.titleLink=t.targetBranch;var c=a.filter(U.id(t.sourceRepository));if(c.length){var l=c[0];t.sourceRepository=l;var p=W(l.group.name,l.name,"commits",encodeURIComponent(t.sourceBranch));t.sourceLink=Object(oe.jsx)(rr,{to:p,onClick:function(e){return r.push(p)},children:t.sourceBranch}),t.updater=Z(l.members,t.commit.email).name}else if(t.sourceLink=t.sourceBranch,i.length){var d=i[0];t.updater=Z(d.members,t.commit.email).name}else t.updater=t.commit.email}},{key:"render",value:function(){var e=this.props,t=e.isRepository,a=e.data,r=e.classes,i=e.intl,n=D.mergeRequestStatus;return Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",alignItems:"center",className:r.item,children:[Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:[r.oneline,r.title].join(" "),children:[a.titleLink,"\xa0\xa0\xa0\xa0",a.status===n.open&&Object(oe.jsx)($e,{color:"success",background:!1,icon:je.j,text:i.formatMessage({id:"message.opened"})}),a.status===n.merged&&Object(oe.jsx)($e,{color:"info",background:!1,icon:je.z,text:i.formatMessage({id:"message.merged"})}),a.status===n.closed&&Object(oe.jsx)($e,{color:"warning",background:!1,icon:je.q,text:i.formatMessage({id:"message.closed"})})]}),Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:r.oneline,children:[Object(oe.jsx)(w.a,{component:"span",children:!t&&a.targetRepository.name}),Object(oe.jsxs)(w.a,{component:"span",children:["!",a.number]}),"\xa0\xb7\xa0",Object(oe.jsxs)(w.a,{component:"span",className:r.textMain,children:[Object(oe.jsx)(fe.a,{icon:je.y}),"\xa0",a.sourceLink,"\xa0",Object(oe.jsx)(fe.a,{icon:He.b}),"\xa0",a.targetLink]}),"\xa0\xb7\xa0",Object(oe.jsxs)(w.a,{variant:"body2",component:"span",children:[a.updater,"\xa0\xa0",i.formatMessage({id:"label.editIn"}),":\xa0\xa0",Object(oe.jsx)(Nt,{timestamp:1*a.commit.time})]})]})]}),Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(k.a,{item:!0,className:r.reviewers,children:a.reviewers.length>0?Object(oe.jsx)(Qr,{reviewers:a.reviewers,repositoryInfo:a.targetRepository}):Object(oe.jsx)(k.a,{item:!0,children:"\xa0"})}),Object(oe.jsxs)(w.a,{variant:"body2",component:"div",children:[i.formatMessage({id:"label.updateTime"}),":\xa0\xa0",Object(oe.jsx)(Nt,{timestamp:1*a.update})]})]})]})}}]),a}(i.a.Component),ti=Object(R.b)(Object(C.a)((function(e){return{item:{padding:e.spacing(1.5)+"px "+e.spacing(3)+"px",borderTop:"1px solid "+e.palette.border},oneline:{lineHeight:e.spacing(3.5)+"px"},title:{"& a":{color:e.palette.text.main+" !important",fontWeight:600}},textMain:{"& a":{color:e.palette.text.main+" !important"}},reviewers:{marginBottom:e.spacing(.5)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ei)))),ai=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,isGlobal:!e.match.params.groupName,isRepository:null,tabValue:0,keyword:"",sortDesc:!0,page:1,pagesize:10,noMore:!1,mrList:null,relatedRepository:[]},r.observed={keyword:""},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.getData(this.props,this.state,!1)}},{key:"shouldComponentUpdate",value:function(e,t){return JSON.stringify(this.props.currentGroupConfig)!==JSON.stringify(e.currentGroupConfig)||JSON.stringify(this.props.currentRepositoryConfig)!==JSON.stringify(e.currentRepositoryConfig)?(this.getData(e,t,!1),!1):this.state.page===t.page||t.pending?this.state.sortDesc!==t.sortDesc?(this.getData(e,t,!0),!1):this.state.tabValue===t.tabValue||(this.getData(e,t,!0),!1):(this.setState({pending:!0}),this.getData(e,t,!1),!1)}},{key:"getData",value:function(e,t,a){var r=this;a&&(this.observed.keyword=t.keyword,this.setState({pending:!0,page:1,mrList:null}));var i={status:t.tabValue,keyword:t.keyword,sort:t.sortDesc?"desc":"asc",page:a?1:t.page,pagesize:t.pagesize};e.currentRepositoryConfig.repository?(i.repository=e.currentRepositoryConfig.repository.id,Ht.mergeRequests(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){r.getDataDeal(e,!0)}))):e.currentGroupConfig.group?(i.group=e.currentGroupConfig.group.id,va.mergeRequests(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){r.getDataDeal(e,!1)}))):t.isGlobal&&Ht.relatedMergeRequests(i).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){r.getDataDeal(e,!1)}))}},{key:"getDataDeal",value:function(e,t){e.code?this.setState({mrList:[]}):this.setState({pending:!1,isRepository:t,mrList:[].concat(Object(T.a)(this.state.mrList?this.state.mrList:[]),Object(T.a)(this.state.isGlobal?e.data.mergeRequests:e.data)),noMore:(this.state.isGlobal?e.data.mergeRequests.length:e.data.length)0&&this.getTargetRepository(r[0].id)}return this.state.groupName||this.state.repositoryName||e.repositoryList.length>0&&(this.getInitRepositoryBranches(e.repositoryList[0].id),this.getTargetRepository(e.repositoryList[0].id)),!1}if(this.props.history.listen((function(e){if("/mergerequests/new"===e.pathname)return a.setState({groupName:"",repositoryName:""}),!1})),this.state.originRepository!==t.originRepository&&e.repositoryList.length>0){if(this.state.groupName&&!this.state.repositoryName){var i=e.repositoryList.filter(U.groupName(t.groupName));this.getInitRepositoryBranches(t.originRepository),i.length>0&&this.getTargetRepository(t.originRepository)}else this.state.repositoryName||this.state.groupName||this.state.originRepository?(this.getInitRepositoryBranches(t.originRepository),this.getTargetRepository(t.originRepository)):(this.getInitRepositoryBranches(e.repositoryList[0].id),this.getTargetRepository(t.originRepository));return!1}if(!this.state.originRepository&&!this.state.repositoryName&&!this.state.groupName&&e.repositoryList.length>0)return this.setState({originRepository:e.repositoryList[0].id}),!0;if(!this.state.originRepository&&!this.state.repositoryName&&this.state.groupName&&e.repositoryList.length>0){var n=e.repositoryList.filter(U.groupName(t.groupName));return n.length&&this.getInitRepositoryBranches(n[0].id),!1}return!0}},{key:"componentDidMount",value:function(){this.getTargetRepository()}},{key:"getTargetRepository",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",a=this.props.currentRepositoryKey;if(!a&&!t)return!1;Ht.targetRepository({repository:a||t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(r){if(!r.code){var i="",n=r.data;n.map((function(e){return e.forkFlag&&(i=e.rKey),!0})),i||(i=a||t),Ht.branchList({repository:i}).then(ne.withEventdispatcher(e.props.dispatchEvent)(ne.getJSONData)).then((function(r){r.code||e.setState({originRepository:a||t,targetRepository:i,targetRepositoryList:n,targetRepositoryBranches:r.data})}))}}))}},{key:"getInitRepositoryBranches",value:function(e){var t=this;Ht.branchList({repository:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||t.setState({originRepository:e,originRepositoryBranches:a.data,error:!1})}))}},{key:"getOriginRepositoryBranches",value:function(e){var t=this;Ht.branchList({repository:e.target.value}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||t.setState({originRepository:e.target.value,originRepositoryBranches:a.data,error:!1,originLastCommit:!1,targetLastCommit:!1})}))}},{key:"getTargetRepositoryBranches",value:function(e){var t=this;Ht.branchList({repository:e.target.value}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||t.setState({targetRepository:e.target.value,targetRepositoryBranches:a.data,error:!1,targetLastCommit:!1})}))}},{key:"selectOriginBranch",value:function(e){var t=this,a=this.props,r=a.currentRepositoryKey,i=a.repositoryList,n=this.state.originRepository;Ht.lastCommitLog({ref:e.target.value,repository:r||n}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){if(!a.code){var r=n?i.filter(U.id(n)):null;t.setState({originLastCommit:a.data,originBranch:e.target.value,originRepositoryInfo:r[0],error:!1})}}))}},{key:"selectTargetBranch",value:function(e){var t=this,a=this.props.repositoryList,r=this.state.targetRepository;Ht.lastCommitLog({ref:e.target.value,repository:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(i){if(!i.code){var n=r?a.filter(U.id(r)):null;t.setState({targetLastCommit:i.data,targetBranch:e.target.value,targetRepositoryInfo:n[0],error:!1})}}))}},{key:"GoMergeRequestDetail",value:function(){var e=this.props.history,t=this.state,a=t.originRepository,r=t.targetRepository,i=t.originBranch,n=t.targetBranch,s=t.targetRepositoryInfo;a===r&&i===n?this.setState({error:!0}):e.push(W(s.group.name,s.name,"mergerequests","detail",a,encodeURIComponent(i),r,encodeURIComponent(n)))}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentRepositoryConfig,r=t.classes,n=t.intl,s=t.repositoryList,o=this.state,c=o.targetRepositoryList,l=o.targetRepositoryBranches,p=o.originLastCommit,d=o.targetLastCommit,u=o.originBranch,m=o.targetBranch,h=o.originRepository,g=o.targetRepository,b=o.error,f=o.repositoryName,j=o.groupName,v=o.originRepositoryBranches,O=o.originRepositoryInfo,y=o.targetRepositoryInfo,x=[];return!f&&j&&(x=s.filter(U.groupName(j))),Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:r.title,children:n.formatMessage({id:"label.createMergeRequest"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{className:r.repositorySelect,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.branchTitle,children:n.formatMessage({id:"label.sourceBranch"})}),Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:r.branchSelect,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:h.length?h:"empty",onChange:function(t){return e.getOriginRepositoryBranches(t)},onClick:function(t){return!h&&e.props.history.push(W("repositories/new"))},children:[f&&a.repository&&Object(oe.jsxs)(pt.a,{value:a.repository.id,children:[a.repository.group.name,"/",a.repository.name]},a.repository.id),!!x.length&&j&&x.map((function(e,t){return e.group.name!==j?null:Object(oe.jsx)(pt.a,{value:e.id,children:e.group.displayName+"/"+e.displayName},e.id)})),0===x.length&&0===h.length&&j&&Object(oe.jsx)(pt.a,{value:"empty",children:n.formatMessage({id:"label.createRepository"})}),!j&&!f&&!!h.length&&!!s.length&&s.map((function(e,t){return Object(oe.jsx)(pt.a,{value:e.id,children:e.group.displayName+"/"+e.displayName},e.id)})),(!h.length||!s.length)&&Object(oe.jsx)(pt.a,{value:"empty",children:n.formatMessage({id:"label.createRepository"})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:u,onChange:function(t){return e.selectOriginBranch(t)},children:[Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),!a.branches&&v&&v.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)}))]})})]}),(O||a.repository)&&p&&u&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.commit,children:Object(oe.jsx)(or,{showBorder:Boolean(!1),data:p,current:u,currentRefType:"branch",currentGroup:O.group.name||a.repository.group.name,currentRepositoryConfig:a.repository?a:O,currentRepository:a.repository?a.repository.name:O.name,linkPathBase:W(O.group.name||a.repository.group.name,a.repository?a.repository.name:O.name,"commit")})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(k.a,{className:r.repositorySelect,children:[Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",className:r.branchTitle,children:n.formatMessage({id:"label.targetBranch"})}),Object(oe.jsxs)(k.a,{container:!0,spacing:2,className:r.branchSelect,children:[Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(E.a,{fullWidth:!0,variant:"outlined",select:!0,value:g.length?g:"empty",onChange:function(t){return e.getTargetRepositoryBranches(t)},children:[c&&c.map((function(e,t){return Object(oe.jsx)(pt.a,{value:e.rKey,children:e.name},e.rKey)})),0===c.length&&Object(oe.jsx)(pt.a,{value:"empty",children:n.formatMessage({id:"label.createRepository"})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsxs)(E.a,{fullWidth:!0,select:!0,variant:"outlined",value:m,onChange:function(t){return e.selectTargetBranch(t)},children:[Object(oe.jsx)(pt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),l&&l.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)}))]})})]}),(y||a.repository)&&d&&m&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.commit,children:Object(oe.jsx)(or,{showBorder:Boolean(!1),data:d,current:m,currentRefType:"branch",currentGroup:y.group.name||a.repository.group.name,currentRepositoryConfig:a.repository?a:y,currentRepository:a.repository?a.repository.name:y.name,linkPathBase:W(y.group.name||a.repository.group.name,a.repository?a.repository.name:y.name,"commit")})})]})}),b&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(k.a,{item:!0,xs:6}),Object(oe.jsx)(k.a,{item:!0,xs:6,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",align:"center",className:b?r.errorInfo:r.hideError,children:n.formatMessage({id:"message.selectDifferentBranch"})})})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",disabled:!h||!g||!u||!m||b,onClick:function(){return e.GoMergeRequestDetail()},children:n.formatMessage({id:"label.compareBranch"})})})]})})]})}}]),a}(i.a.Component),ni=Object(R.b)(Object(C.a)((function(e){return{title:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(3),borderBottom:"1px solid "+e.palette.border},repositorySelect:{border:"1px solid "+e.palette.border,borderRadius:e.spacing(.5)+"px",overflow:"hidden"},branchTitle:{lineHeight:e.spacing(5)+"px",background:e.palette.background.main,padding:"0px "+e.spacing(2)+"px",borderBottom:"1px solid "+e.palette.border},branchSelect:{padding:e.spacing(2)},commit:{borderTop:"1px solid "+e.palette.border},icon:{color:e.palette.text.light},errorInfo:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText},hideError:{display:"none"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,currentRepositoryKey:e.DataStore.currentRepositoryKey,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ii)))),si=a(414),oi=a(453),ci=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a);var i=(r=t.call(this,e)).props,n=i.latestVersion,s=i.baseVersion;return r.state={diffViwerLayoutUpdateTimestamp:0,renderSideBySide:!0,fileTreeIsOpen:!1,fileTreeGridNumber:3,startHash:n,endHash:s},r}return Object(d.a)(a,[{key:"toggleDiffShow",value:function(){this.setState({renderSideBySide:!this.state.renderSideBySide,diffViwerLayoutUpdateTimestamp:(new Date).getTime()})}},{key:"componentDidMount",value:function(){var e=this.props,t=e.latestVersion,a=e.baseVersion;this.setState({startHash:t,endHash:a})}},{key:"toggleFileTree",value:function(){this.setState({fileTreeIsOpen:!this.state.fileTreeIsOpen,renderSideBySide:this.state.fileTreeIsOpen,diffViwerLayoutUpdateTimestamp:(new Date).getTime()})}},{key:"jumpToAnchor",value:function(e){window.location.href=window.location.href.split("#")[0]+"#"+e}},{key:"shouldComponentUpdate",value:function(e,t){return this.state.startHash!==t.startHash?(this.props.getVersionDiff(e.sourceRepository,e.targetRepository,t.startHash,this.state.endHash,e),!1):this.state.endHash===t.endHash||(this.props.getVersionDiff(e.sourceRepository,e.targetRepository,this.state.startHash,t.endHash,e),!1)}},{key:"changeHash",value:function(e,t){var a=e.target.value;"start"===t?this.setState({startHash:a}):this.setState({endHash:a})}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,n=t.changedFilesInfo,s=t.fileDiff,o=t.pending,c=t.effectFileCount,l=t.addLine,p=t.deleteLine,d=t.showVersionCompare,u=t.versionList,m=t.baseVersionList,h=t.baseVersion,g=t.sourceRepository,b=t.latestVersion,f=this.state,j=f.renderSideBySide,v=f.fileTreeIsOpen,O=f.fileTreeGridNumber,y=f.diffViwerLayoutUpdateTimestamp,x=f.startHash,S=f.endHash;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)(k.a,{container:!0,justifyContent:d?"space-between":"flex-end",alignItems:"center",className:a.diffInfoSticky,children:[d&&Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(si.a,{className:a.margin,children:Object(oe.jsx)(oi.a,{variant:"outlined",value:x||b,onChange:function(t){return e.changeHash(t,"start")},children:u&&u.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.sha,children:[Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:0===t?r.formatMessage({id:"label.lastModified"}):r.formatMessage({id:"label.lastModified_N"},{n:u.length-t})}),Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:"-"+e.sha.substr(0,8)})]},t)}))})})}),Object(oe.jsx)(k.a,{item:!0,className:a.and,children:r.formatMessage({id:"label.and"})}),Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(si.a,{className:a.margin,children:Object(oe.jsx)(oi.a,{variant:"outlined",value:S||h,onChange:function(t){return e.changeHash(t,"end")},children:m&&m.map((function(e,t){return Object(oe.jsxs)(pt.a,{value:e.sha,children:[Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:0===t?"Base Line":r.formatMessage({id:"label.lastModified_N"},{n:m.length-t})}),Object(oe.jsx)(w.a,{variant:"body2",component:"span",children:"-"+e.sha.substr(0,8)})]},t)}))})})})]})}),Object(oe.jsxs)(k.a,{item:!0,className:a.content,children:[Object(oe.jsxs)(w.a,{variant:"body1",component:"span",children:[r.formatMessage({id:"label.allFiles"})," : \xa0",o?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):c]}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:a.add,children:o?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):"+"+l}),Object(oe.jsx)(w.a,{variant:"body1",component:"span",className:a.delete,children:o?Object(oe.jsx)(he.a,{size:"12px",color:"inherit"}):p}),Object(oe.jsxs)(Ha.a,{variant:"outlined",color:"primary",size:"small",children:[Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleDiffShow(t)},children:j?"inline":"side-by-side"}),Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleFileTree(t)},children:v?r.formatMessage({id:"label.closeFileTree"}):r.formatMessage({id:"label.openFileTree"})})]})]})]}),Object(oe.jsxs)(k.a,{container:!0,spacing:3,children:[Object(oe.jsx)(k.a,{item:!0,xs:v?O:12,className:v?a.fileTreeSticky:a.fileTreeHide,children:Object(oe.jsx)(Vr,{changeFiles:n,treeView:Boolean(!1),fileClick:function(t){return e.jumpToAnchor(t)}})}),Object(oe.jsx)(k.a,{item:!0,xs:v?12-O:12,children:Object(oe.jsx)(k.a,{container:!0,children:!o&&s?s.map((function(e,t){return Object(oe.jsx)(k.a,{item:!0,xs:12,id:e.modified.sha,className:a.fileDiffPanel,children:Object(oe.jsx)(qr,{modifiedRepositoryKey:g,fileDiffInfo:e,renderSideBySide:j,layoutUpdateTimeStamp:y,fileTreeIsOpen:v},t)},t)})):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:a.loading,children:Object(oe.jsx)(he.a,{})})})})]})]})}}]),a}(i.a.Component),li=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},copyHash:{minWidth:e.spacing(1),height:e.spacing(4),width:e.spacing(4),padding:e.spacing(0),marginBottom:e.spacing(.5)},commitLog:{paddingRight:0},changedFileList:{width:"100%",backgroundColor:e.palette.background.paper},commitAvatar:{marginLeft:e.spacing(1),marginTop:e.spacing(.5),marginRight:e.spacing(1)},commiterName:{paddingTop:e.spacing(.5)},add:{color:e.palette.success.main,marginLeft:e.spacing(3),marginRight:e.spacing(2)},delete:{color:e.palette.error.main,marginLeft:e.spacing(1),marginRight:e.spacing(1)},changedFile:{color:e.palette.primary.main,paddingBottom:e.spacing(1),backgroundColor:"transparent",fontSize:"1.25rem","&:hover":{backgroundColor:"transparent",boxShadow:"none"}},typography:{padding:e.spacing(2)},paper:{minWidth:e.spacing(38),width:"100%"},expansionMargin0:{margin:0},content:{zIndex:e.spacing(1),backgroundColor:e.palette.background.light},stickyPosition:{position:"sticky",top:e.spacing(8),zIndex:e.spacing(1),backgroundColor:e.palette.background.light},diffInfoSticky:{top:"105px",position:"sticky",marginTop:"-24px",paddingTop:e.spacing(3),paddingBottom:e.spacing(3),height:e.spacing(10)+1+"px",zIndex:e.spacing(1),backgroundColor:e.palette.background.light},and:{lineHeight:e.spacing(4)+"px"},fileTreeHide:{display:"none"},fileTreeSticky:{position:"sticky",top:"174px",maxHeight:window.innerHeight-174+"px"},fileDiffPanel:{marginBottom:e.spacing(3),"& > div > div:first-child":{top:"186px"}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ci)))),pi=Object(C.a)((function(e){return{root:{width:e.spacing(3),height:e.spacing(3)}}}))(Be.a),di=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),r=t.call(this,e);var i=e.match.params;return r.state={mid:i.mid?i.mid:"",mergeRequestInfo:{id:"",sourceRepository:i.sourceRepository?i.sourceRepository:"",sourceBranch:i.sourceBranch?decodeURIComponent(i.sourceBranch):"",targetRepository:i.targetRepository?i.targetRepository:"",targetBranch:i.targetBranch?decodeURIComponent(i.targetBranch):""},sourceRepositoryInfo:null,targetRepositoryInfo:null,requesterInfo:null,handlerInfo:null,title:i.sourceBranch?decodeURIComponent(i.sourceBranch):"",description:"",tabValue:0,pending:!0,changedFiles:[],fileDiff:[],effectFileCount:0,addLine:0,deleteLine:0,commits:[],activities:[],showCommitInput:!1,mergeMessage:"",usingSquash:!1,error:{},hasMergeConflict:!1,mergeStatus:"open",versionList:[],latestVersion:"",baseVersion:"",submitMergeRequest:!1,mergePending:!1,reviewers:[],reviewersMenu:null,updateReviewersPending:!1},r.checkInput=se.stateValidator(Object(N.a)(r),[{name:"message",passPattern:/^.+$/,errorMessage:r.props.intl.formatMessage({id:"message.error._S_empty"},{s:r.props.intl.formatMessage({id:"label.branchName"})})},{name:"message",passPattern:/^.{1,30}$/,errorMessage:r.props.intl.formatMessage({id:"message.error.noMoreThan_N_characters"},{n:30})}]),r.getVersionDiff=r.getVersionDiff.bind(Object(N.a)(r)),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.props.closeDrawer(),this.state.mid?this.getDetailData(this.props,this.state):this.getChangeData(this.props,this.state),this.state.mid&&this.getVersionList(this.state)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.repositoryList.length!==e.repositoryList.length?(this.state.mid?this.getDetailData(e,t):this.getChangeData(e,t),this.getVersionList(t),!1):JSON.stringify(this.state.mergeRequestInfo)!==JSON.stringify(t.mergeRequestInfo)?this.state.updateReviewersPending?(this.getActivities(this.state.mergeRequestInfo.targetRepository,this.state.mergeRequestInfo.id),!1):(this.getChangeData(e,t),this.getVersionList(t),!1):this.props.match.params.mid!==e.match.params.mid?(this.setState({mid:e.match.params.mid}),!1):this.state.mid!==t.mid?(this.getDetailData(e,t),this.getVersionList(t),!1):this.state.mergeStatus!==t.mergeStatus?(this.getDetailData(e,t),!1):this.props.currentRepositoryKey===e.currentRepositoryKey||(this.getDetailData(e,t),!1)}},{key:"getVersionDiff",value:function(e,t,a,r,i){var n=this;Ht.fileChanges({versionCompare:!0,repository:e,original:a,targetRepository:t,modified:r}).then(ne.withEventdispatcher(i.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var t=e.data.detail.reduce((function(e,t){return e+t.diff.additions}),0),a=e.data.detail.reduce((function(e,t){return e+t.diff.deletions}),0);n.setState({pending:!1,changedFiles:n.getFileTreeInfo(e.data.detail),fileDiff:e.data.detail,effectFileCount:e.data.count,addLine:t,deleteLine:a})}}))}},{key:"getChangeData",value:function(e,t){var a=this,r=e.repositoryList,i=t.mergeRequestInfo,n=i.id,s=i.sourceRepository,o=i.sourceBranch,c=i.targetRepository,l=i.targetBranch;if(!s||!o||!c||!l||!r.length)return!1;n?this.getRepositories(e,t,!1):(this.setState({submitMergeRequest:!0}),this.getRepositories(e,t,!0)),Ht.fileChanges({mergeRequest:n,repository:s,original:o,targetRepository:c,modified:l}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){if(!e.code){var t=e.data.detail.reduce((function(e,t){return e+t.diff.additions}),0),r=e.data.detail.reduce((function(e,t){return e+t.diff.deletions}),0);a.setState({pending:!1,changedFiles:a.getFileTreeInfo(e.data.detail),fileDiff:e.data.detail,effectFileCount:e.data.count,addLine:t,deleteLine:r})}Ht.mergeRequestCommits({mergeRequest:n,sourceRepository:s,sourceBranch:o,targetRepository:c,targetBranch:l}).then(ne.withEventdispatcher(a.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({commits:e.data})})),a.state.mid&&a.getActivities(c,n)}))}},{key:"getActivities",value:function(e,t){var a=this;Ht.activities({repository:e,mergeRequest:t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({activities:e.data,updateReviewersPending:!1})}))}},{key:"getFileTreeInfo",value:function(e){for(var t=[],a=0;a2&&void 0!==arguments[2]&&arguments[2],r=e.repositoryList,i=t.mergeRequestInfo,n=r.filter(U.id(i.targetRepository))[0];this.setState({sourceRepositoryInfo:a?r.filter(U.id(i.sourceRepository))[0]:t.mergeRequestInfo.sourceRepoInfo,targetRepositoryInfo:n,requesterInfo:i.submitter,handlerInfo:i.handler?n.members.filter(U.id(i.handler))[0]:null})}},{key:"createMergeRequest",value:function(){var e=this,t=this.state,a=t.mergeRequestInfo,r=t.title,i=t.description,n=t.targetRepositoryInfo,s=t.reviewers,o=t.mergePending,c=this.props,l=c.history,p=c.intl;if(o)return!1;this.setState({mergePending:!0}),Ht.createMergeRequest({sourceRepository:a.sourceRepository,sourceBranch:a.sourceBranch,targetRepository:a.targetRepository,targetBranch:a.targetBranch,title:r,description:i,reviewers:s.join(",")}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){e.setState({mergePending:!1}),t.code?1030===t.code?e.props.dispatchEvent(ae.NewNotification(p.formatMessage({id:"message.error.mergeRequestExists"}),2)):1039===t.code?e.props.dispatchEvent(ae.NewNotification(p.formatMessage({id:"message.error.branchProteced"}),2)):e.props.dispatchEvent(ae.NewNotification(p.formatMessage({id:"message.error.createMergeRequestFail"}),2)):(e.setState({mid:t.data.id}),l.push(W(n.group.name,n.name,"mergerequests",t.data.id)))}))}},{key:"getDetailData",value:function(e,t){var a=this,r=e.currentRepositoryKey,i=t.mid;if(!i||!r)return!1;Ht.mergeRequestDetail({repository:r,mid:i}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||a.setState({mergeRequestInfo:e.data,reviewers:e.data.reviewers.map((function(e){return e.user}))})}))}},{key:"getVersionList",value:function(e){var t=this,a=e.mergeRequestInfo;if(!a.id)return!1;Ht.mergeRequestVersionList({mergeRequest:a.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||t.setState({versionList:e.data.mergeVersionList||[],latestVersion:e.data.mergeVersionList.length>0?e.data.mergeVersionList[0].sha:"",baseVersion:e.data.baseVersion,baseVersionList:e.data.baseVersionList})}))}},{key:"checkMergeType",value:function(){var e=this,t=this.state,a=t.mergeRequestInfo,r=t.mergeMessage,i=t.usingSquash,n=t.showCommitInput,s=this.props.intl;if(!a.id&&!this.checkInput()&&n)return!1;this.setState({mergePending:!0}),Ht.checkMergeType({mergeRequest:a.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){if(t.code)e.setState({mergePending:!1});else if(t.data.canBeFastForward)e.mergeBranch(e.props,e.state,"",!1);else{if(e.setState({showCommitInput:!0}),!r)return e.setState({error:{mergeMessage:s.formatMessage({id:"message.error._S_empty"},{s:e.props.intl.formatMessage({id:"label.mergeMessage"})})},mergePending:!1}),!1;e.mergeBranch(e.props,e.state,r,i)}}))}},{key:"mergeBranch",value:function(e,t,a,r){var i=this,n=t.mergeRequestInfo,s=this.props.intl;if(!n.id)return!1;Ht.mergeBranch({message:a,mergeRequest:n.id,usingSquash:r}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){i.setState({mergePending:!1}),e.code?1029===e.code?i.props.dispatchEvent(ae.NewNotification(s.formatMessage({id:"message.error.userNotReview"}),2)):1039===e.code?i.props.dispatchEvent(ae.NewNotification(s.formatMessage({id:"message.error.branchProteced"}),2)):i.props.dispatchEvent(ae.NewNotification(s.formatMessage({id:"message.error.mergeFail"}),2)):e.data.conflict?i.setState({hasMergeConflict:!0,mergeStatus:"conflict",showCommitInput:!1}):i.setState({mergeStatus:"merged",showCommitInput:!1})}))}},{key:"closeMergeRequest",value:function(){var e=this,t=this.props.intl;if(!this.state.mergeRequestInfo)return!1;Ht.mergeRequestClose({mergeRequest:this.state.mergeRequestInfo.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(a){a.code||(e.setState({mergeStatus:"closed",showCommitInput:!1}),e.props.dispatchEvent(ae.NewNotification(t.formatMessage({id:"message.closed"}),0)))}))}},{key:"assignReviewer",value:function(e,t){var a=this,r=this.state,i=r.updateReviewersPending,n=r.mergeRequestInfo,s=r.reviewers,o=this.props.intl;if(i||!t||!e&&!n.id)return!1;if(e)s.includes(t)?this.deleteReviewer(e,t):this.setState({reviewers:[t]});else{if(s.includes(t))return!1;if(s.length&&this.isReview(s[0]))return this.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.error.reviewedCanNotAssign"}),1)),!1;this.setState({updateReviewersPending:!0}),Ht.assignReviewer({id:n.id,reviewer:t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?(a.setState({updateReviewersPending:!1}),1029===e.code&&a.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.error.reviewedCanNotAssign"}),1))):(a.setState({reviewers:[t]}),a.getDetailData(a.props,a.state),a.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.updated"}),0)))}))}}},{key:"deleteReviewer",value:function(e,t){var a=this,r=this.state,i=r.updateReviewersPending,n=r.mergeRequestInfo,s=r.reviewers,o=this.props.intl;if(i||!t||!e&&!n.id)return!1;if(e)this.setState({reviewers:s.filter((function(e){return e!==t}))});else{if(this.isReview(t))return this.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.error.reviewedCanNotDelete"}),1)),!1;this.setState({updateReviewersPending:!0}),Ht.deleteReviewer({id:n.id,reviewer:t}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?(a.setState({updateReviewersPending:!1}),1029===e.code&&a.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.error.reviewedCanNotDelete"}),1))):(a.setState({reviewers:s.filter((function(e){return e!==t}))}),a.getDetailData(a.props,a.state),a.props.dispatchEvent(ae.NewNotification(o.formatMessage({id:"message.deleted"}),0)))}))}}},{key:"mergeRequestReview",value:function(){var e=this,t=this.state,a=t.mergeRequestInfo,r=t.updateReviewersPending,i=this.props.intl;if(r||!a.id)return!1;this.setState({updateReviewersPending:!0}),Ht.mergeRequestReview({id:a.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.setState({updateReviewersPending:!1}),e.getDetailData(e.props,e.state),e.props.dispatchEvent(ae.NewNotification(i.formatMessage({id:"message.approved"}),0)))}))}},{key:"isReview",value:function(e){var t=this.state.mergeRequestInfo;return!!t.id&&(!!(e=t.reviewers.filter((function(t){return t.user===e}))).length&&e[0].isReview)}},{key:"getTabs",value:function(){var e=this.props.intl,t=this.state,a=t.changedFiles,r=t.commits,i=t.activities,n=[];return n.push(e.formatMessage({id:"label.codeDiff"})+"("+a.length+")"),n.push(e.formatMessage({id:"label.commitActivity"})+"("+r.length+")"),this.state.mid&&n.push(e.formatMessage({id:"label.mergeRequestActivity"})+"("+i.length+")"),n}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.history,n=t.classes,s=t.intl,o=this.state,c=o.mergeRequestInfo,l=o.sourceRepositoryInfo,p=o.targetRepositoryInfo,d=o.requesterInfo,u=o.handlerInfo,m=o.title,h=o.description,g=o.tabValue,b=o.pending,f=o.changedFiles,j=o.fileDiff,v=o.effectFileCount,O=o.addLine,y=o.deleteLine,x=o.commits,S=o.activities,C=o.showCommitInput,N=o.mergeMessage,R=o.usingSquash,M=o.hasMergeConflict,T=o.versionList,A=o.latestVersion,I=o.baseVersion,P=o.baseVersionList,F=o.submitMergeRequest,B=o.reviewers,G=o.reviewersMenu;return Object(oe.jsxs)(k.a,{container:!0,children:[!this.state.mid&&(l||F)&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",className:n.createMRTitle,children:s.formatMessage({id:"label.createMergeRequest"})})}),Object(oe.jsx)(k.a,{item:!0,xs:9,children:s.formatMessage({id:"message.from_S_Merge_S"},{s1:l.group.name+"/"+l.name+":"+c.sourceBranch,s2:p.group.name+"/"+p.name+":"+c.targetBranch})}),Object(oe.jsx)(k.a,{item:!0,xs:3,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(e){return r.push(W(l.group.name,l.name,"mergerequests","new"))},children:s.formatMessage({id:"label.modificationBranch"})})}),Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:s.formatMessage({id:"label.title"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:m,onChange:function(t){return e.setState({title:t.target.value})}})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:s.formatMessage({id:"label.description"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",multiline:!0,rows:5,value:h,onChange:function(t){return e.setState({description:t.target.value})}})})]})}),Object(oe.jsx)(k.a,{item:!0,xs:4,children:Object(oe.jsxs)(k.a,{container:!0,spacing:2,children:[Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:s.formatMessage({id:"message.assignReviewerTitle"})})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(k.a,{className:n.members,children:p.members.map((function(t,a){return!(t.deleteFlag||t.role0?B.map((function(t,a){var r=e.isReview(t);return Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",className:n.reviewersMember,children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(ua,{item:p.members.filter(U.id(t))[0]},a)}),Object(oe.jsx)(k.a,{children:Object(oe.jsx)($e,{color:r?"success":"error",text:s.formatMessage({id:r?"message.approved":"message.notApprove"})})})]},a)})):Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(w.a,{className:n.noReviewers,variant:"caption",component:"div",children:s.formatMessage({id:"message.notSelectReviewers"})})})}),Object(oe.jsx)(k.a,{container:!0,alignItems:"center",className:[n.reviewersTitle,n.activityTitle].join(" "),children:Object(oe.jsx)(w.a,{variant:"subtitle1",component:"div",children:s.formatMessage({id:"label.activity"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:12,children:[Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:n.activityItem,children:[Object(oe.jsx)(fe.a,{icon:je.y}),s.formatMessage({id:"label.requestMerge"}),":\xa0\xa0",l.group.displayName,"/",l.displayName,"/",c.sourceBranch," -> ",p.group.displayName,"/",p.displayName,"/",c.targetBranch]}),Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:n.activityItem,children:[Object(oe.jsx)(pi,{src:D.HOSTS.PGYER_AVATAR_HOST+d.icon}),d.name,"\xa0\xa0",s.formatMessage({id:"label.requestCreated"}),":\xa0\xa0",Object(oe.jsx)(Nt,{timestamp:c.create}),Object(oe.jsx)("div",{className:n.activityItemLine})]}),c.status!==D.mergeRequestStatus.open&&Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:n.activityItem,children:[Object(oe.jsx)(pi,{src:D.HOSTS.PGYER_AVATAR_HOST+u.icon}),u.name,"\xa0\xa0",s.formatMessage({id:c.status===D.mergeRequestStatus.merged?"label.requestMerged":"label.requestClosed"}),":\xa0\xa0",Object(oe.jsx)(Nt,{timestamp:c.status===D.mergeRequestStatus.merged?c.merge:c.close}),Object(oe.jsx)("div",{className:n.activityItemLine})]})]})]})})]})]})}}]),a}(i.a.Component),ui=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},createMRTitle:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(2),borderBottom:"1px solid "+e.palette.border},activityItem:{display:"flex",position:"relative",alignItems:"center",height:e.spacing(8),padding:"0px "+e.spacing(2)+"px","& > svg:first-child":{padding:"12px",borderRadius:"50%",marginRight:e.spacing(2),color:e.palette.primary.main,border:"1px solid "+e.palette.border,width:e.spacing(5),height:e.spacing(5),boxSizing:"border-box"},"& > div:first-child":{width:e.spacing(5),height:e.spacing(5),marginRight:e.spacing(2)}},activityItemLine:{top:"-12px",position:"absolute",left:e.spacing(4.5),height:e.spacing(3),borderLeft:"1px solid "+e.palette.border},hideInput:{display:"none"},tab:{marginTop:e.spacing(3)},tabHeader:{position:"sticky",top:e.spacing(8),zIndex:9,borderBottom:"1px solid "+e.palette.border},mergeRequestInfo:{border:0},description:{padding:e.spacing(2)+"px"},button:{margin:e.spacing(2)+"px 0px"},icon:{color:e.palette.text.light},assigned:{color:e.palette.primary.main},members:{overflowY:"auto",borderRadius:"4px",boxSizing:"border-box",maxHeight:e.spacing(27.5),border:"1px solid "+e.palette.border},member:{cursor:"pointer",borderBottom:"1px solid "+e.palette.border,padding:e.spacing(1.5)+"px "+e.spacing(2)+"px","&:last-child":{border:"none"},"&:hover":{background:e.palette.background.main}},reviewersTitle:{height:e.spacing(5),boxSizing:"content-box",padding:"0px "+e.spacing(2)+"px",borderBottom:"1px solid "+e.palette.border},activityTitle:{marginBottom:e.spacing(2)},reviewersMenuItem:{justifyContent:"space-between",height:e.spacing(5)},divider:{margin:e.spacing(1)+"px 0px"},deleteReviewer:{color:e.palette.error.main},reviewersMember:{padding:e.spacing(3)+"px "+e.spacing(2)+"px",height:e.spacing(10)},noReviewers:{fontSize:"14px",textAlign:"center",lineHeight:e.spacing(10)+"px"},cancel:{marginRight:e.spacing(2)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,currentRepositoryKey:e.DataStore.currentRepositoryKey,repositoryList:e.DataStore.repositoryList}}),(function(e,t){return{dispatchEvent:function(t){e(t)},closeDrawer:function(){return e({type:"drawer.expandStatus.close"})}}}))(di))))),mi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){return Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{path:"/userInfo",component:me}),Object(oe.jsx)(h.a,{path:"/settings",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/settings/profile",component:Ve}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/sshkey",component:Ee}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/notification",component:Qe}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/email",component:Le}),Object(oe.jsx)(h.a,{path:"/settings",component:Ve})]})}),Object(oe.jsx)(h.a,{path:"/admin",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/admin/users",component:Ot}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/groups",component:Mt}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/repositories",component:kt}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/settings",component:Et}),Object(oe.jsx)(h.a,{path:"/admin",component:ot})]})}),Object(oe.jsx)(h.a,{path:"/mergerequests",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/mergerequests",component:ri}),Object(oe.jsx)(h.a,{exact:!0,path:"/mergerequests/new",component:ni})]})}),Object(oe.jsx)(h.a,{path:"/repositories",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/repositories/new",component:zt}),Object(oe.jsx)(h.a,{exact:!0,path:"/repositories/fork/:repositoryID([0-9a-f]+)",component:Vt}),Object(oe.jsx)(h.a,{exact:!0,path:"/repositories/forklist/:repositoryID([0-9a-f]+)",component:Ut}),Object(oe.jsx)(h.a,{path:"/repositories",component:Ut})]})}),Object(oe.jsx)(h.a,{path:"/groups",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{path:"/groups/new",component:wa}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})",component:Ut}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/repositories",component:Ut}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/members",component:Ta}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/activities",component:Ga}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/repositories/new",component:zt}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/mergerequests",component:ri}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/mergerequests/new",component:ni}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings",component:_a}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings/general",component:_a}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings/advanced",component:Ia}),Object(oe.jsx)(h.a,{path:"/groups",component:Ra})]})}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/files",component:gr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/files/:rev([\\w\\-\\.%|]+)",component:gr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/:type(files|blame)/:rev([\\w\\-\\.%|]+):path(/.*)",component:gr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commit/:hash([0-9a-f]{8})",component:Yr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits",component:fr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits/:rev([\\w\\-\\.%|]+)",component:fr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits/:rev([\\w\\-\\.%|]+):path(/.*)",component:fr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests",component:ri}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/new",component:ni}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/detail/:sourceRepository([0-9a-f]{32})/:sourceBranch([\\w\\-\\.%|]+)/:targetRepository([0-9a-f]{32})/:targetBranch([\\w\\-\\.%|]+)",component:ui}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/:mid(\\d+)",component:ui}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/branches",component:Sr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/branches/new",component:_r}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/tags",component:Nr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/tags/new",component:wr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/members",component:ja}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/activities",component:Ga}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings",component:Kt}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/general",component:Kt}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/branch",component:Zt}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/webhook",component:oa}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/advanced",component:xa}),Object(oe.jsx)(h.a,{component:gr})]})})]})}}]),a}(i.a.Component),hi=Object(h.f)(mi),gi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={groupListLoaded:!1,repositoryListLoaded:!1},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data})})),Ht.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.props.dispatchEvent({type:"data.repositoryList.update",data:t.data}),e.setState({repositoryListLoaded:!0}))})),va.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||(e.props.dispatchEvent({type:"data.groupList.update",data:t.data}),e.setState({groupListLoaded:!0}))}))}},{key:"shouldComponentUpdate",value:function(e,t){var a=this;if(t.groupListLoaded&&this.state.groupListLoaded!==t.groupListLoaded||this.props.match.params.groupName!==e.match.params.groupName||this.props.match.params.repositoryName!==e.match.params.repositoryName&&!e.match.params.repositoryName){var r=e.groupList.filter(U.name(e.match.params.groupName))[0];r&&r.id?(this.props.dispatchEvent({type:"data.currentGroupKey.update",data:r.id}),this.props.dispatchEvent({type:"data.currentGroupConfig.update",data:{}}),e.history.location.pathname.match(/^\/groups/i)&&va.config({gKey:r.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?a.props.dispatchEvent({type:"data.currentGroupConfig.update",data:{}}):a.props.dispatchEvent({type:"data.currentGroupConfig.update",data:e.data})}))):(this.props.dispatchEvent({type:"data.currentGroupKey.update",data:""}),this.props.dispatchEvent({type:"data.currentGroupConfig.update",data:{}}))}else e.match.params.groupName||(this.props.dispatchEvent({type:"data.currentGroupKey.update",data:""}),this.props.dispatchEvent({type:"data.currentGroupConfig.update",data:{}}));if(t.repositoryListLoaded&&this.state.repositoryListLoaded!==t.repositoryListLoaded||this.props.match.params.groupName!==e.match.params.groupName||this.props.match.params.repositoryName!==e.match.params.repositoryName){var i=e.repositoryList.filter((function(t){return t.group.name===e.match.params.groupName&&t.name===e.match.params.repositoryName}))[0];i&&i.id?(this.props.dispatchEvent({type:"data.currentRepositoryKey.update",data:i.id}),Ht.config({rKey:i.id}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code?a.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:{}}):(a.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:e.data}),a.setState({repositoryListLoaded:!0}))})),this.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:{}}),this.props.dispatchEvent({type:"data.currentRepositoryError.update",data:!1})):(this.props.dispatchEvent({type:"data.currentRepositoryKey.update",data:""}),this.props.dispatchEvent({type:"data.currentRepositoryConfig.update",data:{}}),this.props.dispatchEvent({type:"data.currentRepositoryError.update",data:!0}))}return!0}},{key:"render",value:function(){var e=this.props.classes;return Object(oe.jsx)("div",{className:e.container,children:Object(oe.jsxs)("main",{className:e.content,children:[Object(oe.jsx)("div",{className:e.toolbar}),Object(oe.jsx)("div",{className:e.mainContainer,children:Object(oe.jsx)(hi,{})})]})})}}]),a}(i.a.Component),bi=Object(C.a)((function(e){return{container:{backgroundColor:e.palette.background.light},content:{padding:0},toolbar:e.mixins.toolbar,mainContainer:{padding:e.spacing(3)+"px "+e.spacing(6)+"px"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,groupList:e.DataStore.groupList}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(gi))),fi=a(443),ji=a(444),vi=a(442),Oi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={anchorEl:null},r.handleUserMenuClick=r.handleUserMenuClick.bind(Object(N.a)(r)),r.handleUserMenuClose=r.handleUserMenuClose.bind(Object(N.a)(r)),r.logout=r.logout.bind(Object(N.a)(r)),r}return Object(d.a)(a,[{key:"handleUserMenuClick",value:function(e){this.setState({anchorEl:e.currentTarget})}},{key:"handleUserMenuClose",value:function(){this.setState({anchorEl:null})}},{key:"logout",value:function(){this.setState({anchorEl:null}),window.location.href="/user/logout"}},{key:"goView",value:function(e){this.setState({anchorEl:null}),this.props.history.push(e)}},{key:"render",value:function(){var e=this,t=this.props,a=t.currentUserInfo,r=t.classes,n=t.className,s=t.intl;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)("div",{className:[r.settings,n].join(" "),onClick:this.handleUserMenuClick,children:[Object(oe.jsx)(Be.a,{src:D.HOSTS.PGYER_AVATAR_HOST+a.icon,className:r.icon}),Object(oe.jsx)(fe.a,{icon:je.L,className:r.down})]}),Object(oe.jsxs)(ct.a,{id:"user-menu",anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:this.handleUserMenuClose,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:r.menu},MenuListProps:{className:r.list},getContentAnchorEl:null,transitionDuration:0,children:[Object(oe.jsxs)(pt.a,{disabled:!0,className:r.name,children:[Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:a.name}),Object(oe.jsx)(w.a,{variant:"body2",component:"div",children:a.email})]}),Object(oe.jsx)(pa.a,{}),Object(oe.jsxs)(pt.a,{onClick:function(t){e.goView("/settings/profile")},children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.w})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.profile"})})]}),Object(oe.jsxs)(pt.a,{onClick:function(t){e.goView("/settings/email")},children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.l})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.mail"})})]}),Object(oe.jsxs)(pt.a,{onClick:function(t){e.goView("/settings/sshkey")},children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.t})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.SSHKey_pl"})})]}),Object(oe.jsx)(pa.a,{}),Object(oe.jsxs)(pt.a,{onClick:this.logout,children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.n})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.logout"})})]})]})]})}}]),a}(r.Component),yi=Object(R.b)(Object(C.a)((function(e){return{settings:{display:"flex",alignItems:"center",cursor:"pointer"},menu:{width:e.spacing(30),marginTop:e.spacing(1),padding:0},list:{"& > li":{height:e.spacing(5)},"& > hr":{marginTop:e.spacing(1),marginBottom:e.spacing(1)}},name:{opacity:"1 !important",display:"block",height:"auto !important"},icon:{width:e.spacing(4),height:e.spacing(4)},down:{marginLeft:e.spacing(2),fontSize:e.spacing(1)}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Oi)))),xi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={anchorEl:null,userInfoLoadingStatus:!1},r.handleUserMenuClick=r.handleUserMenuClick.bind(Object(N.a)(r)),r.handleUserMenuClose=r.handleUserMenuClose.bind(Object(N.a)(r)),r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.setState({userInfoLoadingStatus:!0})}},{key:"handleUserMenuClick",value:function(e){this.setState({anchorEl:e.currentTarget})}},{key:"handleUserMenuClose",value:function(){this.setState({anchorEl:null})}},{key:"changeLanguage",value:function(e){this.props.dispatchEvent({type:"data.currentLanguage.update",data:e}),this.setState({anchorEl:null})}},{key:"render",value:function(){var e=this,t=this.state.anchorEl,a=this.props,r=a.intl,n=a.classes,s=a.currentLanguage;return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Pe,{label:"label.language",onClick:this.handleUserMenuClick,icon:je.u,className:this.props.className}),Object(oe.jsxs)(ct.a,{id:"language-menu",anchorEl:t,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:n.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(t),onClose:this.handleUserMenuClose,children:[Object(oe.jsx)(pt.a,{selected:"zh-cn"===s,onClick:function(t){return e.changeLanguage("zh-cn")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"lang.chinese"})})}),Object(oe.jsx)(pt.a,{selected:"en-us"===s,onClick:function(t){return e.changeLanguage("en-us")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:r.formatMessage({id:"lang.english"})})})]})]})}}]),a}(r.Component),Si=Object(R.b)(Object(C.a)((function(e){return{menu:{marginTop:e.spacing(1),padding:0}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(xi)))),Ci=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={anchorElement:null,repositoryList:r.props.repositoryList,groupList:r.props.groupList,enterMenu:!1,enterButton:!1},r}return Object(d.a)(a,[{key:"componentDidMount",value:function(){}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.repositoryList===e.repositoryList&&this.props.groupList===e.groupList||this.setState({repositoryList:e.repositoryList,groupList:e.groupList}),!0}},{key:"getToRepository",value:function(e){this.initAnchor(),this.props.history.push("/"+e.group.name+"/"+e.name+"/")}},{key:"getToGroup",value:function(e){this.initAnchor(),this.props.history.push("/groups/"+e.name+"/")}},{key:"initAnchor",value:function(){this.setState({anchorElement:null,enterButton:!1,enterMenu:!1})}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.intl,i=t.history,n=t.type,s=t.currentRepositoryKey,o=t.currentGroupKey,c=this.state,l=c.repositoryList,p=c.groupList,d=l.filter(U.withPermission(L.PermissionCode.REPO_READ)).map((function(t,r){return Object(oe.jsxs)(pt.a,{onClick:function(a){e.getToRepository(t)},children:[Object(oe.jsx)(vi.a,{children:t.icon?Object(oe.jsx)(Be.a,{variant:"square",className:a.listIcon,src:D.HOSTS.STATIC_AVATAR_PREFIX+t.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:a.listIcon,children:t.name.substr(0,1).toUpperCase()})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:t.group.displayName+"/"+t.displayName}),t.id===s&&Object(oe.jsx)(fe.a,{icon:je.e,className:a.checked})]},"r"+r)})),u=p.filter(U.withPermission(L.PermissionCode.REPO_READ)).map((function(t,r){return Object(oe.jsxs)(pt.a,{onClick:function(a){e.getToGroup(t)},children:[Object(oe.jsx)(vi.a,{children:t.icon?Object(oe.jsx)(Be.a,{variant:"square",className:a.listIcon,src:D.HOSTS.STATIC_AVATAR_PREFIX+t.icon}):Object(oe.jsx)(Be.a,{variant:"square",className:a.listIcon,children:t.name.substr(0,1).toUpperCase()})}),Object(oe.jsx)(mt.a,{disableTypography:!0,primary:t.displayName}),t.id===o&&!s&&Object(oe.jsx)(fe.a,{icon:je.e,className:a.checked})]},"g"+r)}));return Object(oe.jsxs)("span",{children:["repository"===n&&l.length+p.length||"group"===n&&p.length?Object(oe.jsxs)(_.a,{color:"inherit","aria-owns":"menu-"+n,"aria-haspopup":"true",className:a.button,onClick:function(){e.initAnchor(),i.push("repository"===n?"/repositories":"/groups")},onMouseEnter:function(t){e.setState({enterButton:!0,anchorElement:t.currentTarget})},onMouseLeave:function(){e.setState({enterButton:!1}),setTimeout((function(){return!e.state.enterMenu&&e.initAnchor()}),100)},children:["repository"===n&&r.formatMessage({id:"menu.repository_pl"}),"group"===n&&r.formatMessage({id:"menu.group_pl"}),Object(oe.jsx)(fe.a,{icon:He.a})]}):Object(oe.jsxs)(_.a,{color:"inherit","aria-owns":"menu-"+n,"aria-haspopup":"true",onClick:function(){i.push("repository"===n?"/repositories/new":"/groups/new")},children:["repository"===n&&r.formatMessage({id:"label.newRepository"}),"group"===n&&r.formatMessage({id:"label.newGroup"})]}),("repository"===n&&l.length+p.length>0||"group"===n&&p.length>0)&&Object(oe.jsxs)(ct.a,{id:"menu-"+n,anchorEl:this.state.anchorElement,anchorOrigin:{horizontal:"left",vertical:"bottom"},transformOrigin:{horizontal:"left",vertical:"top"},open:Boolean(this.state.anchorElement),onClose:function(t){e.setState({anchorElement:null})},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,onMouseEnter:function(){e.setState({enterMenu:!0})},onMouseLeave:function(){return e.initAnchor()},children:[Object(oe.jsx)(k.a,{className:a.title,children:Object(oe.jsxs)(w.a,{variant:"caption",component:"div",children:["repository"===n&&r.formatMessage({id:"label.repository"}),"group"===n&&r.formatMessage({id:"label.group"})]})}),"repository"===n&&d,"group"===n&&u]})]})}}]),a}(r.Component),Ni=Object(R.b)(Object(C.a)((function(e){return{menu:{top:e.spacing(8)+1+"px !important",width:e.spacing(34)+"px !important",height:e.spacing(40),boxShadow:"0px 20px 40px 0px rgba(66, 72, 86, 0.1)"},button:{position:"relative",maxWidth:"100%",paddingRight:e.spacing(3),"& > span":{display:"list-item",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},"& svg":{position:"absolute",right:e.spacing(1),top:"10px"}},listIcon:{width:e.spacing(3),height:e.spacing(3),fontSize:e.spacing(2)+"px"},title:{color:e.palette.text.lighter,fontSize:e.spacing(1.5)+"px",padding:e.spacing(1)+"px "+e.spacing(2)+"px"},checked:{color:e.palette.primary.main}}}))(Object(h.f)(Object(l.b)((function(e,t){return{repositoryList:e.DataStore.repositoryList,groupList:e.DataStore.groupList,currentRepositoryKey:e.DataStore.currentRepositoryKey,currentGroupKey:e.DataStore.currentGroupKey}}),(function(e,t){return{}}))(Ci)))),Ri=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={newMenuAnchor:null,helpMenuAnchor:null},r}return Object(d.a)(a,[{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.currentUserInfo,i=t.scrollTrigger,n=t.history,s=t.intl,o=t.notificationOpenStatusToggle,c=t.currentLanguage;return Object(oe.jsx)(fi.a,{position:"fixed",color:"default",className:a.appBar,elevation:i?2:0,children:Object(oe.jsx)(ji.a,{children:Object(oe.jsxs)(k.a,{container:!0,justifyContent:"space-between",alignItems:"center",children:[Object(oe.jsxs)(k.a,{item:!0,className:a.options,children:[Object(oe.jsx)("img",{className:a.img,src:"/static/00000000000000/images/logo-community.png",onClick:function(){return n.push("/repositories")}}),Object(oe.jsx)(k.a,{item:!0,className:a.optionItem,children:Object(oe.jsx)(Ni,{type:"repository"})}),Object(oe.jsx)(k.a,{item:!0,className:a.optionItem,children:Object(oe.jsx)(Ni,{type:"group"})}),Object(oe.jsx)(Pe,{label:"label.mergeRequest",onClick:function(){n.push("/mergerequests")},icon:je.y,className:a.optionItem})]}),Object(oe.jsxs)(k.a,{item:!0,className:a.options,children:[Object(oe.jsx)(Pe,{label:"label.create",color:"primary",onClick:function(t){return e.setState({newMenuAnchor:t.currentTarget})},icon:je.I,className:a.optionItem}),Object(oe.jsx)(pa.a,{orientation:"vertical",className:[a.split,a.optionItem].join(" ")}),Object(oe.jsxs)(ct.a,{id:"new-menu",anchorEl:this.state.newMenuAnchor,anchorOrigin:{horizontal:"left",vertical:"bottom"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(this.state.newMenuAnchor),onClose:function(t){return e.setState({newMenuAnchor:null})},children:[Object(oe.jsx)(pt.a,{onClick:function(t){n.push("/repositories/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.newRepository"})})}),Object(oe.jsx)(pt.a,{onClick:function(t){n.push("/groups/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.newGroup"})})}),Object(oe.jsx)(pt.a,{onClick:function(t){n.push("/mergerequests/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.createMergeRequest"})})})]}),Object(oe.jsx)(Pe,{label:"label.notification",icon:je.c,badge:r.unReadNotification,className:a.optionItem,onClick:function(e){return o()}}),Object(oe.jsx)(Si,{className:a.optionItem}),Object(oe.jsx)(Pe,{label:"label.help",onClick:function(t){return e.setState({helpMenuAnchor:t.currentTarget})},icon:je.s,className:a.optionItem}),Object(oe.jsxs)(ct.a,{id:"help-menu",anchorEl:this.state.helpMenuAnchor,anchorOrigin:{horizontal:"right",vertical:"bottom"},transformOrigin:{horizontal:"right",vertical:"top"},PaperProps:{className:a.menu},getContentAnchorEl:null,transitionDuration:0,open:Boolean(this.state.helpMenuAnchor),onClose:function(t){return e.setState({helpMenuAnchor:null})},children:[Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("/doc/"+("en-us"===c?"en":"cn"),"_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.help"})})}),Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://codefever.pgyer.com/community","_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.support"})})}),Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://github.com/PGYER/codefever/blob/master/doc/zh-cn/contribute/bug_fix_issue.md","_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.feedback"})})}),Object(oe.jsx)(pa.a,{}),Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://github.com/PGYER/codefever","_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.contribute"})})}),Object(oe.jsx)(pt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://codefever.pgyer.com/","_blank")},children:Object(oe.jsx)(mt.a,{disableTypography:!0,primary:s.formatMessage({id:"label.about"})})})]}),r.admin&&Object(oe.jsx)(Pe,{label:"label.adminArea",onClick:function(){n.push("/admin")},icon:je.A,className:a.optionItem}),Object(oe.jsx)(yi,{className:a.optionItem})]})]})})})}}]),a}(i.a.Component),Mi=Object(R.b)(Object(h.f)(Object(C.a)((function(e){return{appBar:{width:"100%",zIndex:e.zIndex.drawer,borderBottom:"1px solid "+e.palette.border},img:{height:e.spacing(4),marginLeft:e.spacing(3),marginRight:e.spacing(6),cursor:"pointer"},placeholder:{display:"inline-block",verticalAlign:"middle",height:e.spacing(4),marginRight:e.spacing(2),transition:e.transitions.create("width")},placeholderExpanded:{width:e.spacing(37)},placeholderCollapsed:{width:e.spacing(8)},options:{display:"flex"},split:{marginTop:e.spacing(1),height:e.spacing(2)},optionItem:{marginRight:e.spacing(2)},menu:{marginTop:e.spacing(1),padding:0}}}))(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo,currentLanguage:e.DataStore.currentLanguage}}),(function(e,t){return{notificationOpenStatusToggle:function(){return e({type:"notification.notificationOpenStatus.toggle"})}}}))((Pa={threshold:0,watching:".app-content"},function(e){return function(t){Object(u.a)(r,t);var a=Object(m.a)(r);function r(e){var t;return Object(p.a)(this,r),(t=a.call(this,e)).target=null,t.cancel=null,t.onScroll=t.onScroll.bind(Object(N.a)(t)),t.state={scrollTrigger:!1},t}return Object(d.a)(r,[{key:"componentDidMount",value:function(){Pa.watching&&(this.cancel&&this.cancel(),this.target=document.querySelector(Pa.watching),this.cancel=function(){this.target.removeEventListener("scroll",this.onScroll)},this.target.addEventListener("scroll",this.onScroll),this.onScroll({target:this.target}))}},{key:"componentWillUnmount",value:function(){this.cancel&&this.cancel(),this.cancel=null,this.target=null}},{key:"onScroll",value:function(e){var t=e.target.pageYOffset||e.target.scrollTop;t>Pa.threshold&&!this.state.scrollTrigger?this.setState({scrollTrigger:!0}):t<=Pa.threshold&&this.state.scrollTrigger&&this.setState({scrollTrigger:!1})}},{key:"render",value:function(){return Object(oe.jsx)(e,Object(y.a)({ref:this.mountContainer,scrollTrigger:this.state.scrollTrigger},this.props))}}]),r}(i.a.Component)})(Ri))))),wi=a(459),ki=a(417),_i=a(352),Ei=a(262),Ti=a.n(Ei),Ai=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={open:{},itemSwitch:!1,itemName:null,avatarHover:!1},r}return Object(d.a)(a,[{key:"openChildren",value:function(e){var t=Object(y.a)({},this.state.open);t[e]=!t[e],this.setState({open:t})}},{key:"render",value:function(){var e=this,t=this.props,a=t.classes,r=t.drawerExpandStatus,n=t.drawerConfig,s=t.location,o=t.intl,c=t.mode,l=t.repositoryList,p=t.currentRepositoryKey,d=t.groupList,u=t.currentGroupKey,m=n.map((function(t,i){var n=!1;t.activePattern.map((function(e){return s.pathname&&s.pathname.match(e)&&(n=!0),!0}));var c=Object(oe.jsxs)(tr.a,{className:[a.listItem,n?a.active:"",r?a.listItemExpand:a.listItemCollapsed].join(" "),onClick:function(){e.props.history.push(t.path),t.children&&e.openChildren(i)},children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:t.icon,className:[a.listIcon,n?a.iconActive:""].join(" ")})}),Object(oe.jsx)(mt.a,{className:[a.listItemText,r?a.listItemTextExpand:a.listItemTextCollapsed].join(" "),primary:o.formatMessage({id:t.name})}),Object(oe.jsx)(w.a,{variant:"caption",children:t.count}),t.children?e.state.open[i]?Object(oe.jsx)(Ti.a,{}):Object(oe.jsx)(Fr.a,{}):""]}),l=t.children?t.children.map((function(t,c){var l=!1;return t.activePattern.map((function(e){return s.pathname&&s.pathname.match(e)&&(l=!0),!0})),Object(oe.jsx)(_i.a,{in:e.state.open[i]&&r,timeout:"auto",unmountOnExit:!0,onClick:function(){return e.props.history.push(t.path)},className:n?a.secondCollapse:"",children:Object(oe.jsx)(ki.a,{component:"div",disablePadding:!0,children:Object(oe.jsx)(tr.a,{className:a.listItem,children:Object(oe.jsx)(mt.a,{className:[a.listItemText,l?a.secondActive:"",r?a.listItemTextExpand:a.listItemTextCollapsed].join(" "),inset:!0,primary:o.formatMessage({id:t.name})})})})},c)})):"";return Object(oe.jsxs)("div",{className:t.children&&n&&e.state.open[i]&&r?a.morePadding:"",children:[c,l]},i)})),h={},g=l.filter(U.id(p))[0],b=d.filter(U.id(u))[0];if(["repository","group"].includes(c)){var f=g&&g.icon||b&&b.icon,j=g&&g.name||b&&b.name;f?h.src=D.HOSTS.STATIC_AVATAR_PREFIX+f:j&&(h.children=j[0].toUpperCase()),"repository"===c?h.onClick=function(){e.props.history.push("/"+g.group.name+"/"+g.name+"/")}:"group"===c&&(h.onClick=function(){e.props.history.push("/groups/"+b.name)}),h.onMouseEnter=function(){e.setState({avatarHover:!0})},h.onMouseLeave=function(){e.setState({avatarHover:!1})},this.state.avatarHover&&(h.src="",h.children=Object(oe.jsx)(be.a,{title:o.formatMessage({id:"message.backHome"}),placement:"top",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:a.button,children:Object(oe.jsx)(fe.a,{icon:je.V,style:{width:16}})})}),h.onClick=function(){e.props.history.push("/repositories"),e.setState({avatarHover:!1})})}else h.src="/static/00000000000000/images/logo-ico.png",h.onClick=function(){e.props.history.push("/repositories"),e.setState({avatarHover:!1})};return Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsxs)("div",{className:[a.drawerHeader,r?a.drawerHeaderExpand:a.drawerHeaderCollapsed].join(" "),children:[Object(oe.jsx)(Be.a,Object(y.a)({variant:"square",className:[a.avatar,this.state.avatarHover&&a.home].join(" ")},h)),Object(oe.jsxs)(w.a,{variant:"subtitle1",component:"div",className:[a.title,r?a.titleExpand:a.titleCollapsed].join(" "),children:["default"===c&&"CodeFever","admin"===c&&"CodeFever Admin"]})]}),Object(oe.jsx)(ki.a,{className:a.list,component:"nav",children:m})]})}}]),a}(i.a.Component),Di=Object(R.b)(Object(C.a)((function(e){return{list:{marginTop:e.spacing(3)},listItem:{overflow:"hidden",width:e.spacing(34),height:e.spacing(5),borderRadius:e.spacing(.5),transition:[e.transitions.create("width"),e.transitions.create("padding")].join(","),cursor:"pointer","& svg, & span":{color:e.palette.text.light},"&:hover":{"& > div > svg":{color:e.palette.primary.main},"& span":{color:e.palette.text.main}}},listItemExpand:{padding:"0px "+e.spacing(4)+"px"},listItemCollapsed:{width:e.spacing(5),minWidth:e.spacing(5),padding:"0px "+e.spacing(1.5)+"px"},listItemText:{margin:0,overflow:"hidden",transition:e.transitions.create("height"),"& > span":{lineHeight:e.spacing(5)+"px"}},listItemTextExpand:{height:e.spacing(5)+"px"},listItemTextCollapsed:{height:0},drawerHeader:{display:"flex",overflow:"hidden",alignItems:"center",height:e.spacing(4),width:e.spacing(28),background:e.palette.background.main,padding:e.spacing(1)+"px "+e.spacing(3)+"px",transition:[e.transitions.create("width"),e.transitions.create("padding")].join(",")},drawerHeaderExpand:{width:e.spacing(28),padding:e.spacing(1)+"px "+e.spacing(3)+"px"},drawerHeaderCollapsed:{width:e.spacing(4),padding:e.spacing(1)+"px "+e.spacing(.5)+"px"},active:{backgroundColor:e.palette.background.light,"& span":{color:e.palette.text.main}},secondCollapse:{backgroundColor:e.palette.background.light},morePadding:{width:e.spacing(34),borderRadius:e.spacing(.5),paddingBottom:e.spacing(2)+"px",backgroundColor:e.palette.background.light},secondActive:{borderRadius:e.spacing(.5),backgroundColor:e.palette.background.main,"& span":{color:e.palette.text.main}},home:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main},iconActive:{color:e.palette.primary.main+" !important"},avatar:{cursor:"pointer",width:e.spacing(4),height:e.spacing(4)},title:{fontSize:"18px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",height:e.spacing(4),paddingLeft:e.spacing(2),lineHeight:e.spacing(4)+"px",transition:e.transitions.create("height")},titleExpand:{height:e.spacing(4)},titleCollapsed:{height:0},button:{"&:hover":{background:e.palette.primary.main}}}}))(Object(l.b)((function(e,t){return{drawerExpandStatus:e.DrawerStates.expandStatus,repositoryList:e.DataStore.repositoryList,groupList:e.DataStore.groupList,currentRepositoryKey:e.DataStore.currentRepositoryKey,currentGroupKey:e.DataStore.currentGroupKey}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Object(h.f)(Ai))));var Ii={makeDrawerConfig:function(){return[{path:"/settings/profile",name:"menu.profile",icon:je.Y,activePattern:[/^\/settings$/i,/^\/settings\/profile/i]},{path:"/settings/email",name:"menu.mail",icon:je.Q,activePattern:[/^\/settings\/email/i]},{path:"/settings/sshkey",name:"menu.SSHKey_pl",icon:je.W,activePattern:[/^\/settings\/sshkey/i]},{path:"/settings/notification",name:"menu.notification",icon:je.J,activePattern:[/^\/settings\/notification/i]}]},makeAdminDrawerConfig:function(){return[{path:"/admin/dashboard",name:"menu.dashboard",icon:je.X,activePattern:[/^\/admin(\/)?$/i,/^\/admin\/dashboard\/?.*$/i]},{path:"/admin/users",name:"menu.user_pl",icon:je.Z,activePattern:[/^\/admin\/users\/?.*$/i]},{path:"/admin/groups",name:"menu.group_pl",icon:je.fb,activePattern:[/^\/admin\/groups\/?.*$/i]},{path:"/admin/repositories",name:"menu.repository_pl",icon:je.eb,activePattern:[/^\/admin\/repositories\/?.*$/i]},{path:"/admin/settings",name:"menu.setting_pl",icon:je.gb,activePattern:[/^\/admin\/settings\/?.*$/i]}]},makeGroupDrawerConfig:function(e){return e&&e.group?[{path:["/groups",e.group.name,"repositories"].join("/"),name:"menu.repository_pl",icon:je.eb,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})(\/)?$/i,/\/groups\/([A-Za-z0-9_]{5,})\/repositories/i]},{path:["/groups",e.group.name,"mergerequests"].join("/"),name:"menu.mergeRequest_pl",icon:je.ab,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/mergerequests\/?.*$/i]},{path:["/groups",e.group.name,"members"].join("/"),name:"menu.member_pl",icon:je.Z,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/members(\/)?$/i]},{path:["/groups",e.group.name,"activities"].join("/"),name:"menu.activity_pl",icon:je.X,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/activities(\/)?/i]},{path:["/groups",e.group.name,"settings"].join("/"),name:"menu.setting_pl",icon:je.gb,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/settings(\/)?$/i,/\/groups\/([A-Za-z0-9_]{5,})\/settings\/.*$/i],children:[{path:["/groups",e.group.name,"settings","general"].join("/"),name:"menu.general",icon:je.gb,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/settings(\/)?$/i,/\/groups\/([A-Za-z0-9_]{5,})\/settings\/general(\/)?$/i]},{path:["/groups",e.group.name,"settings","advanced"].join("/"),name:"menu.advanced",icon:je.gb,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/settings\/advanced(\/)?$/i]}]}]:[]},makeRepositoryDrawerConfig:function(e){return e&&e.repository?[{path:["",e.group.name,e.repository.name,"files"].join("/"),name:"menu.file_pl",icon:je.T,activePattern:[/^\/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/files(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/files\/.*$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/blame\/.*$/i]},{path:["",e.group.name,e.repository.name,"commits"].join("/"),name:"menu.commit_pl",count:e.count.commit,icon:je.O,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/commits(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/commits\/.*$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/commit\/.*$/i]},{path:["",e.group.name,e.repository.name,"mergerequests"].join("/"),name:"menu.mergeRequest_pl",count:e.count.mergeRequest.open,icon:je.ab,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/mergerequests(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/mergerequests\/.*$/i]},{path:["",e.group.name,e.repository.name,"branches"].join("/"),name:"menu.branch_pl",count:e.count.branch,icon:je.K,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/branches(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/branches\/.*$/i]},{path:["",e.group.name,e.repository.name,"tags"].join("/"),name:"menu.tag_pl",count:e.count.tag,icon:je.hb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/tags(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/tags\/.*$/i]},{path:["",e.group.name,e.repository.name,"members"].join("/"),name:"menu.member_pl",count:e.members&&e.members.filter(U.notDeleted()).length||0,icon:je.Z,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/members(\/)?$/i]},{path:["",e.group.name,e.repository.name,"activities"].join("/"),name:"menu.activity_pl",icon:je.X,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/activities(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings"].join("/"),name:"menu.setting_pl",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/.*$/i],children:[{path:["",e.group.name,e.repository.name,"settings","general"].join("/"),name:"menu.general",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings(\/)?$/i,/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/general(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings","branch"].join("/"),name:"menu.branch_pl",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/branch(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings","webhook"].join("/"),name:"menu.webhook_pl",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/webhook(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings","advanced"].join("/"),name:"menu.advanced",icon:je.gb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/advanced(\/)?$/i]}]}]:[]}},Pi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"drawer",value:function(e,t){var a=this.props,r=a.classes,i=a.expandStatus,n=a.toggleDrawer;return Object(oe.jsxs)("div",{className:r.drawerContainer,children:[Object(oe.jsx)("div",{className:r.drawerExpandControl,onClick:n,children:Object(oe.jsx)(fe.a,{icon:je.x,className:i?"":r.transform})}),Object(oe.jsx)(wi.a,{open:!0,variant:"permanent",classes:{paper:r.drawerPaper},className:[r.container,i?r.containerExpanded:r.containerCollapsed].join(" "),children:Object(oe.jsx)(Di,{drawerConfig:e,mode:t})})]})}},{key:"render",value:function(){var e=this.props,t=e.currentGroupConfig,a=e.currentRepositoryConfig;return Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{path:"/settings",children:this.drawer(Ii.makeDrawerConfig(),"default")}),Object(oe.jsx)(h.a,{path:"/mergerequests"}),Object(oe.jsx)(h.a,{path:"/repositories"}),Object(oe.jsx)(h.a,{path:"/groups/new"}),Object(oe.jsx)(h.a,{path:"/admin",children:this.drawer(Ii.makeAdminDrawerConfig(),"admin")}),Object(oe.jsx)(h.a,{path:"/groups/:groupName([A-Za-z0-9_]{5,})",children:this.drawer(Ii.makeGroupDrawerConfig(t),"group")}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",children:this.drawer(Ii.makeRepositoryDrawerConfig(a),"repository")})]})}}]),a}(i.a.Component),Fi=Object(C.a)((function(e){return{drawerContainer:{position:"relative"},container:{height:"100vh",transition:e.transitions.create("width")},containerExpanded:{width:e.spacing(40)},containerCollapsed:{width:e.spacing(11)},drawerPaper:{position:"relative",boxSizing:"border-box",width:"100%",overflowX:"hidden"},drawerExpandControl:{position:"absolute",top:e.spacing(12),right:"-12px",fontSize:"14px",color:"#64728C",cursor:"pointer",textAlign:"center",borderRadius:"50%",width:e.spacing(3),height:e.spacing(3),zIndex:e.zIndex.drawer+1,lineHeight:e.spacing(3)+"px",background:e.palette.background.light,border:"1px solid "+e.palette.border},transform:{transform:"rotate(180deg)"},toolbar:e.mixins.toolbar}}))(Object(l.b)((function(e){return{expandStatus:e.DrawerStates.expandStatus,currentGroupConfig:e.DataStore.currentGroupConfig,currentRepositoryConfig:e.DataStore.currentRepositoryConfig}}),(function(e,t){return{toggleDrawer:function(){e({type:"drawer.expandStatus.toggle"})}}}))(Object(h.f)(Pi))),Li=a(446),Bi=a(445),Ui=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={loading:!1},r.observed={openStatus:!1},r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.observed.openStatus!==e.openStatus&&(this.observed.openStatus=e.openStatus,this.setState({loading:!1}),this.props.dispatchEvent(ae.consumeComformation())),this.observed.eventCount!==e.eventCount&&this.props.dispatchEvent(ae.consumeComformation()),!0}},{key:"onCancel",value:function(e){this.props.rejectFn&&this.props.rejectFn(),this.props.dispatchEvent(ae.cancelComformation())}},{key:"onAccept",value:function(e){this.setState({loading:!0}),this.props.acceptFn&&this.props.acceptFn()}},{key:"render",value:function(){var e=this,t=this.props,a=t.openStatus,r=t.title,i=t.description,n=t.intl;return Object(oe.jsxs)(lt.a,{open:a,onClose:function(t){return e.onCancel(t)},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[Object(oe.jsx)(ut.a,{id:"alert-dialog-title",children:r}),Object(oe.jsx)(ht.a,{children:Object(oe.jsx)(Bi.a,{id:"alert-dialog-description",children:i})}),Object(oe.jsxs)(Li.a,{children:[Object(oe.jsx)(_.a,{color:"default",onClick:function(t){return e.onCancel(t)},children:n.formatMessage({id:"label.cancel"})}),Object(oe.jsx)(_.a,{color:"primary",onClick:function(t){return e.onAccept(t)},children:this.state.loading?Object(oe.jsx)(he.a,{size:24}):n.formatMessage({id:"label.ok"})})]})]})}}]),a}(i.a.Component),Gi=Object(R.b)(Object(h.f)(Object(l.b)((function(e,t){return{openStatus:e.NotificationStates.confirmation.open,eventCount:e.NotificationStates.confirmation.eventCount,title:e.NotificationStates.confirmation.title,description:e.NotificationStates.confirmation.description,acceptFn:e.NotificationStates.confirmation.accept,rejectFn:e.NotificationStates.confirmation.reject}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Ui))),Hi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,menuAnchor:null,category:D.notificationCategory.unRead,list:[],pagesize:20,page:1,loadMore:!0},r}return Object(d.a)(a,[{key:"shouldComponentUpdate",value:function(e,t){return this.props.notificationOpenStatus!==e.notificationOpenStatus&&!0===e.notificationOpenStatus||this.state.category!==t.category?(this.getData(t,!0),!1):this.state.page===t.page||(this.getData(t,!1),!1)}},{key:"getData",value:function(e,t){var a=this,r=e.pending,i=e.category,n=e.list,s=e.pagesize,o=e.page,c=e.loadMore;if(r)return!1;this.setState({pending:!0,list:t?[]:n,page:t?1:o,loadMore:!!t||c}),te.notifications({category:i,page:t?1:o}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.code||(e.data.map((function(e){return function(e,t){if(!e.type||!e.data)return!1;var a=e.data=JSON.parse(e.data);return e.text=t.formatMessage({id:"notification."+e.type},a),e.url="",["mergeRequest:create","mergeRequest:close","mergeRequest:merge","mergeRequestReviewer:create","mergeRequestReviewer:review"].includes(e.type)&&(e.url=[a.group,a.repository,"mergerequests",a.number].join("/")),!0}(e,a.props.intl)})),a.setState({pending:!1,list:[].concat(Object(T.a)(a.state.list),Object(T.a)(e.data)),loadMore:e.data.length===s}))}))}},{key:"reloadUserData",value:function(){var e=this;te.getUserInfo().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.currentUserInfo.update",data:t.data})}))}},{key:"setNotificationRead",value:function(e){var t=this,a=this.props,r=a.dispatchEvent,i=a.intl,n=this.state.list;if(this.state.pending)return!1;this.setState({menuAnchor:null,pending:!0}),te.setNotificationRead({id:e,all:e?"":"1"}).then(ne.withEventdispatcher(r)(ne.getJSONData)).then((function(a){n.map((function(t,a){return e?e&&t.id===e&&(t.isRead=!0):t.isRead=!0,!0})),t.setState({pending:!1,list:n}),t.reloadUserData(),a.code&&r(ae.NewNotification(i.formatMessage({id:"message.error.updateFail"}),2))}))}},{key:"deleteNotification",value:function(e){var t=this,a=this.props,r=a.dispatchEvent,i=a.intl,n=this.state.list;if(this.state.pending)return!1;this.setState({menuAnchor:null,pending:!0}),te.deleteNotification({id:e,all:e?"":"1"}).then(ne.withEventdispatcher(r)(ne.getJSONData)).then((function(a){n=n.filter((function(a,r){return e?(a.id===e&&!a.isRead&&t.reloadUserData(),a.id!==e):!a.isRead})),t.setState({pending:!1,list:n}),a.code&&r(ae.NewNotification(i.formatMessage({id:"message.error.deleteFail"}),2))}))}},{key:"aLink",value:function(e){var t=this.props.history;this.props.notificationOpenStatusClose(),!e.isRead&&this.setNotificationRead(e.id),t.push(W(e.url))}},{key:"notificationSetting",value:function(){this.props.notificationOpenStatusClose(),this.props.history.push(W("settings/notification"))}},{key:"render",value:function(){var e=this,t=this.props,a=t.notificationOpenStatus,r=t.notificationOpenStatusClose,i=t.classes,n=t.intl,s=this.state,o=s.pending,c=s.menuAnchor,l=s.category,p=s.list,d=s.page,u=s.loadMore,m=[];return m[D.notificationCategory.all]=n.formatMessage({id:"label.all"}),m[D.notificationCategory.unRead]=n.formatMessage({id:"label.unread"}),Object(oe.jsxs)(wi.a,{anchor:"right",open:a,onClose:function(e){return!o&&r()},className:i.notification,elevation:8,PaperProps:{className:i.paper,onScroll:function(t){return!o&&u&&t.target.offsetHeight-2+t.target.scrollTop===t.target.scrollHeight&&e.setState({page:d+1})}},children:[Object(oe.jsxs)(k.a,{container:!0,className:i.header,children:[Object(oe.jsxs)(k.a,{container:!0,className:i.headerTitle,children:[Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:n.formatMessage({id:"label.notificationCenter"})})}),Object(oe.jsxs)(k.a,{item:!0,xs:4,align:"right",children:[Object(oe.jsx)(Pe,{label:"label.setting",icon:je.gb,className:i.icon,onClick:function(t){return e.notificationSetting()}}),Object(oe.jsx)(Pe,{label:"label.close",icon:je.g,className:[i.icon,i.close].join(" "),onClick:function(e){return!o&&r()}})]})]}),Object(oe.jsx)(k.a,{item:!0,xs:12,className:i.menu,children:Object(oe.jsxs)(jt,{currentTab:l,onChange:function(t,a){return!o&&e.setState({category:a})},tabs:m,children:[Object(oe.jsx)(Pe,{label:"label.more",icon:je.cb,className:[i.icon,i.more].join(" "),onClick:function(t){return e.setState({menuAnchor:t.target})}}),Object(oe.jsxs)(ct.a,{anchorEl:c,open:!!c,onClose:function(t){return e.setState({menuAnchor:null})},transitionDuration:0,children:[Object(oe.jsx)(pt.a,{onClick:function(t){return e.setNotificationRead("")},children:n.formatMessage({id:"message.tagAllRead"})}),Object(oe.jsx)(pt.a,{onClick:function(t){return e.deleteNotification("")},children:n.formatMessage({id:"message.deleteAllReaded"})})]})]})})]}),Object(oe.jsxs)(k.a,{container:!0,children:[p.map((function(t,a){return Object(oe.jsxs)(k.a,{item:!0,xs:12,className:[i.notify,t.isRead?i.readed:""].join(" "),onClick:function(a){return!t.isRead&&e.setNotificationRead(t.id)},children:[Object(oe.jsxs)(k.a,{container:!0,children:[Object(oe.jsx)(k.a,{item:!0,xs:8,children:Object(oe.jsxs)(w.a,{variant:"body2",component:"div",className:i.notifiTitle,children:["\xa0\xb7\xa0",t.data.group&&t.data.group+" / ",t.data.repository]})}),Object(oe.jsxs)(k.a,{item:!0,xs:4,className:i.notifySetting,align:"right",children:[!t.isRead&&Object(oe.jsx)(Pe,{label:"message.tagRead",icon:je.e,className:i.icon}),Object(oe.jsx)(Pe,{label:"label.delete",icon:je.ib,className:i.icon,onClick:function(a){e.deleteNotification(t.id),a.stopPropagation()}})]})]}),Object(oe.jsx)(w.a,{variant:t.isRead?"body2":"subtitle2",component:"div",className:i.notifiContent,onClick:function(a){e.aLink(t),a.stopPropagation()},children:t.text}),Object(oe.jsx)(w.a,{component:"div",className:i.notifiTitle,children:Object(oe.jsx)(Nt,{timestamp:1*t.created})})]},a)})),u?Object(oe.jsx)(k.a,{container:!0,className:i.loading,children:o&&Object(oe.jsx)(he.a,{size:30})}):Object(oe.jsx)(k.a,{item:!0,xs:12,align:"center",className:i.loading,children:Object(oe.jsx)(_.a,{size:"small",disabled:!0,children:n.formatMessage({id:"label.noMore"})})})]})]})}}]),a}(i.a.Component),qi=Object(R.b)(Object(C.a)((function(e){return{notification:{"& > div:first-child":{background:"transparent"}},paper:{padding:0,top:e.spacing(8),boxSizing:"border-box",width:e.spacing(50),height:"calc(100% - 64px)",background:e.palette.background.light,border:"1px solid "+e.palette.border},header:{top:0,zIndex:1,position:"sticky",background:e.palette.background.light},headerTitle:{display:"flex",alignItems:"center",height:e.spacing(6)+"px",padding:"0px "+e.spacing(3)+"px",borderBottom:"1px solid "+e.palette.border},close:{"& svg":{width:"14px !important",height:"14px !important",padding:"2px"}},icon:{color:e.palette.text.light},more:{marginTop:e.spacing(.5)},menu:{padding:"0px "+e.spacing(3)+"px",borderBottom:"1px solid "+e.palette.border},notifySetting:{display:"none"},notify:{"&:hover":{background:e.palette.background.main,"& > div:first-child > div:nth-of-type(2)":{display:"block"}},padding:e.spacing(2)+"px "+e.spacing(3)+"px",borderBottom:"1px solid "+e.palette.border},notifiTitle:{lineHeight:e.spacing(4)+"px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap","& > span":{fontSize:"12px"}},readed:{"& div, & span":{color:e.palette.text.lighter+"!important"}},notifiContent:{cursor:"pointer",lineHeight:e.spacing(2.5)+"px",maxHeight:e.spacing(5),overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box","-webkit-line-clamp":2,"-webkit-box-orient":"vertical"},loading:{justifyContent:"center",padding:e.spacing(4)+"px"}}}))(Object(l.b)((function(e){return{notificationOpenStatus:e.NotificationStates.notificationOpenStatus}}),(function(e,t){return{dispatchEvent:function(t){e(t)},notificationOpenStatusClose:function(){return e({type:"notification.notificationOpenStatus.close"})}}}))(Object(h.f)(Hi)))),zi=a(266),Wi=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){var e;return Object(p.a)(this,a),(e=t.call(this)).messageLists=[],e}return Object(d.a)(a,[{key:"componentDidMount",value:function(){this.messageLists=[]}},{key:"addMessage",value:function(e){var t=this;if(e.message){var a=this.messageLists.length;this.messageLists.push(Object(y.a)(Object(y.a)({},e),{},{openStatus:!0})),setTimeout((function(){t.closeMessage(a)}),5e3)}}},{key:"closeMessage",value:function(e){var t=this;this.messageLists[e].openStatus=!1,this.props.dispatchEvent({type:"notification.message.change"}),setTimeout((function(){t.messageLists.reduce((function(e,t){return e||t.openStatus}),!1)||(t.messageLists=[])}),200)}},{key:"shouldComponentUpdate",value:function(e,t){return e.notificationBody!==this.props.notificationBody}},{key:"render",value:function(){var e=this,t=this.props.notificationBody;this.addMessage(t);var a=0;return this.messageLists.map((function(t,r){return a+=t.openStatus?1:0,Object(oe.jsx)(zi.a,{level:t.level,offset:a>0?a-1:0,open:t.openStatus,onClose:function(t,a){return"timeout"===a&&e.closeMessage(r)},action:t.action,message:t.message},r)}))}}]),a}(i.a.Component),Vi=Object(l.b)((function(e,t){return{notificationBody:e.NotificationStates.notificationBody}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Wi),Ji=Object(y.a)({__namespace__:"lang"},{chinese:"\u7b80\u4f53\u4e2d\u6587",english:"English"}),Ki=Object(y.a)(Object(y.a)({},{Added:"\u5df2\u6dfb\u52a0",created:"\u5df2\u521b\u5efa",updated:"\u5df2\u66f4\u65b0",removed:"\u5df2\u79fb\u9664",deleted:"\u5df2\u5220\u9664",copied:"\u5df2\u62f7\u8d1d",merged:"\u5df2\u5408\u5e76",opened:"\u5df2\u6253\u5f00",closed:"\u5df2\u5173\u95ed",binded:"\u5df2\u7ed1\u5b9a",unbinded:"\u5df2\u89e3\u7ed1",verified:"\u5df2\u9a8c\u8bc1",approved:"\u5df2\u8bc4\u5ba1",enabled:"\u5df2\u6062\u590d",disabled:"\u5df2\u7981\u7528",reseted:"\u5df2\u91cd\u7f6e",createPersonalGroupNotice:"\u81f3\u5c11\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u4ed3\u5e93\u7ec4\u4f5c\u4e3a\u4e2a\u4eba\u4ed3\u5e93\u7ec4",emailCodeHasSendNewEmail:"\u9a8c\u8bc1\u7801\u5df2\u7ecf\u53d1\u9001\u81f3\u65b0\u7684\u90ae\u7bb1",phoneCodeHasSendNewPhone:"\u9a8c\u8bc1\u7801\u5df2\u7ecf\u53d1\u9001\u81f3\u65b0\u7684\u624b\u673a",finishIdentityVerify:"\u524d\u8bf7\u8f93\u5165\u60a8\u7684\u8d26\u53f7\u5bc6\u7801\u4ee5\u5b8c\u6210\u8eab\u4efd\u9a8c\u8bc1",unbindEnterCodeFeverPassword:"\u82e5\u786e\u8ba4\uff0c\u8bf7\u8f93\u5165\u60a8\u7684CodeFever\u8d26\u53f7\u5bc6\u7801\u4ee5\u9a8c\u8bc1\u8eab\u4efd",scanQrcodeBind:"\u8bf7\u4f7f\u7528\u5fae\u4fe1\u626b\u63cf\u4e8c\u7ef4\u7801\u5b8c\u6210\u7ed1\u5b9a",theAccountUsedWechat_N:'\u8be5\u8d26\u53f7\u66fe\u4f7f\u7528\u5fae\u4fe1"{n}"\u4e0e\u84b2\u516c\u82f1\u65d7\u4e0b\u4ea7\u54c1\u5c0f\u7a0b\u5e8f\u7ed1\u5b9a\uff0c\u786e\u8ba4\u4f7f\u7528\u5f53\u524d\u5fae\u4fe1\u8d26\u53f7\u66ff\u6362"{n}"\u7684\u7ed1\u5b9a\u5417?',rebindWechat:"\u53d6\u6d88\uff0c\u66f4\u6362\u5fae\u4fe1\u540e\u91cd\u65b0\u7ed1\u5b9a",unbindAllProduct:"\u89e3\u9664\u7ed1\u5b9a\uff0c\u60a8\u5c06\u540c\u65f6\u89e3\u7ed1\u84b2\u516c\u82f1\u65d7\u4e0b\u6240\u6709\u4ea7\u54c1",mfaGuide:"\u6253\u5f00\u5177\u6709 MFA \u529f\u80fd\u7684 App \u5e76\u626b\u63cf\u4e0b\u65b9\u4e8c\u7ef4\u7801\uff0c\u8f93\u5165 App \u4e0a\u7684\u663e\u793a\u7684\u4e24\u7ec4\u4e0d\u540c\u7684 MFA \u5bc6\u7801\u5e76\u70b9\u51fb \u4fdd\u5b58 \u6309\u94ae\u5b8c\u6210 MFA \u8bbe\u5907\u8bbe\u7f6e\u3002\u4f60\u53ef\u4ee5\u5728\u4efb\u4f55\u624b\u673a\u5e94\u7528\u5e02\u573a\u641c\u7d22 MFA \u4e0b\u8f7d\u4f60\u4fe1\u4efb\u7684 App\u3002",inputEmailToAddMemeber:"\u8f93\u5165\u7528\u6237\u7684\u6ce8\u518c\u90ae\u7bb1\u4ee5\u6dfb\u52a0\u4e3a\u6210\u5458",groupMemberCanControlRepositoryNotice:"\u6b64\u4ed3\u5e93\u6240\u5728\u4ed3\u5e93\u7ec4\u7684\u6210\u5458\u5bf9\u4e8e\u6b64\u4ed3\u5e93\u7684\u63a7\u5236\u6743\u7531\u5176\u4ed3\u5e93\u7ec4\u89d2\u8272\u51b3\u5b9a",repositoryChangeCreatorNotice:"\u60a8\u786e\u5b9a\u9700\u8981\u66f4\u6362\u6b64\u4ed3\u5e93\u521b\u5efa\u8005\u5417 ? \u65b0\u7684\u521b\u5efa\u7740\u5c06\u62e5\u6709\u4ed3\u5e93\u6240\u6709\u7ba1\u7406\u6743\u9650, \u4e14\u66fe\u7ecf\u7684\u521b\u5efa\u8005\u5c06\u4f1a\u62e5\u6709 \u6240\u6709\u8005 \u89d2\u8272",repositoryChangeURLNotice:"\u60a8\u786e\u5b9a\u9700\u8981\u66f4\u6539\u6b64\u4ed3\u5e93 URL \u5417 ? URL \u66f4\u6539\u540e\uff0c\u4e0d\u80fd\u518d\u4f7f\u7528\u539f URL \u7ba1\u7406\u4ed3\u5e93, git \u5ba2\u6237\u7aef\u4f7f\u7528\u7684\u4ed3\u5e93\u5730\u5740\u4e5f\u4f1a\u540c\u6b65\u53d8\u66f4, \u60a8\u9700\u8981\u4f7f\u7528 git remote \u547d\u4ee4\u91cd\u65b0\u8bbe\u7f6e\u4ed3\u5e93\u5730\u5740",repositoryDeleteRepositoryNotice:"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6b64\u4ed3\u5e93\u5417 ? \u4ed3\u5e93\u5220\u9664\u540e\u6b64\u4ed3\u5e93\u4e0d\u518d\u53ef\u7528, \u4ed3\u5e93\u5185\u7684 \u6587\u4ef6 \u548c \u76f8\u5173\u8bb0\u5f55 \u90fd\u4f1a\u4e0d\u53ef\u9006\u7684\u88ab\u5220\u9664, \u8bf7\u786e\u8ba4\u9700\u8981\u4fdd\u7559\u7684\u6587\u4ef6\u5df2\u7ecf\u5907\u4efd\u5b8c\u6210, \u70b9\u51fb \u53d6\u6d88 \u6309\u94ae\u53ef\u4ee5\u53d6\u6d88\u64cd\u4f5c\u3002",repositoryDeleteRepositoryConfirmNotice:"\u9700\u8981\u60a8\u518d\u6b21\u786e\u8ba4\u5220\u9664\u6b64\u4ed3\u5e93 ? \u6b64\u4ed3\u5e93\u5220\u9664\u540e, \u6240\u6709\u4fe1\u606f\u548c\u6587\u4ef6\u90fd\u4f1a\u88ab\u4e0d\u53ef\u9006\u5220\u9664, \u6b64\u64cd\u4f5c\u9020\u6210\u7684\u540e\u679c\u4e0d\u53ef\u6062\u590d, \u8bf7\u786e\u8ba4\u9700\u8981\u4fdd\u7559\u7684\u6587\u4ef6\u5df2\u7ecf\u5907\u4efd\u5b8c\u6210, \u70b9\u51fb \u53d6\u6d88 \u6309\u94ae\u53ef\u4ee5\u53d6\u6d88\u6b64\u64cd\u4f5c\u3002",groupChangeCreatorNotice:"\u60a8\u786e\u5b9a\u9700\u8981\u66f4\u6362\u6b64\u4ed3\u5e93\u7ec4\u521b\u5efa\u8005\u5417 ? \u65b0\u7684\u521b\u5efa\u7740\u5c06\u62e5\u6709\u4ed3\u5e93\u7ec4\u6240\u6709\u7ba1\u7406\u6743\u9650, \u4e14\u66fe\u7ecf\u7684\u521b\u5efa\u8005\u5c06\u4f1a\u62e5\u6709 \u6240\u6709\u8005 \u89d2\u8272, \u6ce8\u610f\u4e2a\u4eba\u9ed8\u8ba4\u4ed3\u5e93\u7ec4\u4e0d\u80fd\u66f4\u6539\u521b\u5efa\u8005",groupChangeURLNotice:"\u60a8\u786e\u5b9a\u9700\u8981\u66f4\u6539\u6b64\u4ed3\u5e93\u7ec4 URL \u5417 ? URL \u66f4\u6539\u540e\uff0c\u4e0d\u80fd\u518d\u4f7f\u7528\u539f URL \u7ba1\u7406\u4ed3\u5e93\u7ec4, git \u5ba2\u6237\u7aef\u4f7f\u7528\u7684\u7ec4\u5185\u4ed3\u5e93\u5730\u5740\u4e5f\u4f1a\u540c\u6b65\u53d8\u66f4, \u60a8\u9700\u8981\u4f7f\u7528 git remote \u547d\u4ee4\u91cd\u65b0\u8bbe\u7f6e\u4ed3\u5e93\u5730\u5740",groupDeleteRepositoryNotice:"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6b64\u4ed3\u5e93\u7ec4\u5417 ? \u4ed3\u5e93\u7ec4\u5220\u9664\u540e\u4e0d\u518d\u53ef\u7528, \u4ed3\u5e93\u7ec4\u5185\u7684 \u76f8\u5173\u8bb0\u5f55 \u90fd\u4f1a\u4e0d\u53ef\u9006\u7684\u88ab\u5220\u9664, \u5728\u5220\u9664\u6b64\u4ed3\u5e93\u7ec4\u524d\u8bf7\u624b\u52a8\u5220\u9664\u7ec4\u5185\u6240\u6709\u4ed3\u5e93, \u70b9\u51fb \u53d6\u6d88 \u6309\u94ae\u53ef\u4ee5\u53d6\u6d88\u64cd\u4f5c\u3002",groupDeleteRepositoryConfirmNotice:"\u9700\u8981\u60a8\u518d\u6b21\u786e\u8ba4\u5220\u9664\u6b64\u4ed3\u5e93\u7ec4 ? \u6b64\u4ed3\u5e93\u7ec4\u5220\u9664\u540e, \u6240\u6709\u4fe1\u606f\u90fd\u4f1a\u88ab\u4e0d\u53ef\u9006\u5220\u9664, \u6b64\u64cd\u4f5c\u9020\u6210\u7684\u540e\u679c\u4e0d\u53ef\u6062\u590d, \u5728\u5220\u9664\u6b64\u4ed3\u5e93\u7ec4\u524d\u8bf7\u624b\u52a8\u5220\u9664\u7ec4\u5185\u6240\u6709\u4ed3\u5e93, \u70b9\u51fb \u53d6\u6d88 \u6309\u94ae\u53ef\u4ee5\u53d6\u6d88\u6b64\u64cd\u4f5c\u3002",inputCommitFilter:"\u8f93\u5165\u63d0\u4ea4\u4fe1\u606f\u8fc7\u6ee4",repositoryEmpty:"\u4ed3\u5e93\u4e3a\u7a7a",displaySource:"\u5c55\u793a\u6e90\u7801",displayRendereFile:"\u5c55\u793a\u6e32\u67d3\u5185\u5bb9",fileContentEmpty:"\u6587\u4ef6\u5185\u5bb9\u4e3a\u7a7a",fileContentOversize:"\u6587\u4ef6\u5927\u5c0f\u8d85\u8fc7\u5141\u8bb8\u5c55\u793a\u7684\u6700\u5927\u9650\u5ea6, \u8bf7\u5728\u672c\u5730\u67e5\u770b",fileTypeNotSupport:"\u6682\u4e0d\u652f\u6301\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u5c55\u793a",diffFileToMany:"\u8d85\u8fc7\u5141\u8bb8\u5c55\u793a\u7684\u6700\u5927\u6587\u4ef6\u6570\u91cf, \u8bf7\u5728\u672c\u5730\u67e5\u770b",createNewRepository:"\u5728\u547d\u4ee4\u884c\u521b\u5efa\u4e00\u4e2a\u65b0\u4ed3\u5e93",pushRepository:"\u5728\u547d\u4ee4\u884c push \u4e00\u4e2a\u5df2\u5b58\u5728\u7684\u4ed3\u5e93",_S_empty:"\u8bf7\u8f93\u5165{s}",repository_S_empty:"\u4ed3\u5e93\u5185\u8fd8\u6ca1\u6709{s}",repositoryBranchEmpty:"Git\u5206\u652f\uff0c\u672c\u8d28\u4e0a\u662f\u6307\u5411\u63d0\u4ea4\u5bf9\u8c61\u7684\u53ef\u53d8\u6307\u9488\u3002\u4f7f\u7528 git \u547d\u4ee4\u521b\u5efa\u5206\u652f\uff1a 'git branch \u65b0\u5206\u652f\u540d\u79f0 \u65e7\u5206\u652f\u540d\u79f0'",repositoryTagEmpty:"\u6807\u7b7e\u662f\u67d0\u4e00\u65f6\u95f4\u70b9\u4e0a\u7684\u7248\u672c\uff0c\u901a\u5e38\u4f7f\u7528\u6807\u7b7e\u6807\u8bc6\u4ee3\u7801\u5e93\u7684\u91cd\u8981\u7248\u672c\uff0c\u5982\u5728\u9879\u76ee\u7684\u91cc\u7a0b\u7891\u521b\u5efa\u6807\u7b7e\u3002\u4e5f\u53ef\u4ee5\u4f7f\u7528 git \u547d\u4ee4\u521b\u5efa\u6807\u7b7e\uff1agit tag -a v1.0 -m '\u7248\u672c 1.0'",mergeRequestEmpty:"\u672a\u627e\u5230\u76f8\u5173\u5408\u5e76\u8bf7\u6c42\u8bb0\u5f55",addNewCommit:"\u65b0\u589e\u4e00\u4e2a\u63d0\u4ea4",alreadyMergeRequest:"\u5df2\u7ecf\u5408\u5e76\u8bf7\u6c42",alreadyCloseRequest:"\u5df2\u7ecf\u5173\u95ed\u8bf7\u6c42",assignReviewerTitle:"\u6307\u5b9a\u8bc4\u5ba1\u5458\uff08\u53ea\u80fd\u6307\u5b9a1\u4eba\uff09",selectReviewer:"\u9009\u62e9\u8bc4\u5ba1\u5458",notSelectReviewers:"\u672a\u6307\u5b9a\u8bc4\u5ba1\u5458",deleteReviewer:"\u6e05\u9664\u8bc4\u5ba1\u5458",notApprove:"\u672a\u8bc4\u5ba1",assign_N_M_Reviewer:"\u6307\u5b9a {n} \u4e3a\u548c\u5e76\u8bf7\u6c42 {m} \u7684\u8bc4\u5ba1\u5458",delete_M_N_Reviewer:"\u5220\u9664\u4e86\u548c\u5e76\u8bf7\u6c42 {m} \u7684\u8bc4\u5ba1\u5458 {n}",review_M_Reviewer:"\u8bc4\u5ba1\u4e86\u548c\u5e76\u8bf7\u6c42 {m} \u7684\u4ee3\u7801",_S_listEmpty:"{s}\u5217\u8868\u4e3a\u7a7a",repositoryListEmptyNotice:"\u521b\u5efa\u4e00\u4e2a\u4ed3\u5e93, \u5f00\u59cb\u4f53\u9a8c\u5427",groupListEmptyNotice:"\u521b\u5efa\u4e00\u4e2a\u4ed3\u5e93\u7ec4, \u7ec4\u7ec7\u5e76\u7ba1\u7406\u7ec4\u5185\u4ed3\u5e93",input_S_name:"\u8f93\u5165{s}\u540d\u8fc7\u6ee4",confirmDelete:"\u786e\u8ba4\u5220\u9664{s}?",jumpWithLink:"\u8df3\u8f6c\u94fe\u63a5",noRepositoryFind:"\u6ca1\u6709\u67e5\u770b\u6743\u9650",noCommitRecord:"\u6682\u65e0\u63d0\u4ea4\u8bb0\u5f55",plsInputInvitedEmail:"\u8bf7\u8f93\u5165\u88ab\u9080\u8bf7\u4eba\u90ae\u7bb1",repositoryDeleteTipFirst:"\u5220\u9664\u9879\u76ee\u5c06\u5220\u9664\u5176\u5b58\u50a8\u5e93\u548c\u6240\u6709\u76f8\u5173\u8d44\u6e90\uff0c\u5305\u62ec\u95ee\u9898\u3001\u5408\u5e76\u8bf7\u6c42\u7b49",repositoryDeleteTipSecond:"\u65e0\u6cd5\u8fd8\u539f\u5df2\u5220\u9664\u7684\u9879\u76ee!",inputMergeCommit:"\u8bf7\u8f93\u5165\u5408\u5e76\u7684\u63d0\u4ea4\u4fe1\u606f, \u5e76\u6839\u636e\u60c5\u51b5\u52fe\u9009\u662f\u5426\u4f7f\u7528squash\u529f\u80fd",selectDifferentBranch:"\u5fc5\u987b\u9009\u62e9\u4e0d\u540c\u7684\u5206\u652f\u8fdb\u884c\u5408\u5e76",mergeConflictTitle:"\u4f60\u8981\u5408\u5e76\u7684\u4e24\u4e2a\u5206\u652f\u6709\u4ee3\u7801\u51b2\u7a81\uff0c\u8bf7\u6839\u636e\u4e0b\u9762\u7684\u547d\u4ee4\u5728\u672c\u5730\u8fdb\u884c\u5408\u5e76",mergeConflictTip1:"\u7b2c\u4e00\u6b65:\u62c9\u53d6\u4ee3\u7801\u5e76\u65b0\u5efa\u5408\u5e76\u8bf7\u6c42\u7684\u5206\u652f",mergeConflictTip2:"\u7b2c\u4e8c\u6b65:\u672c\u5730\u68c0\u67e5\u4ee3\u7801\u66f4\u6539",mergeConflictTip3:"\u7b2c\u4e09\u6b65:\u5408\u5e76\u5206\u652f\u5e76\u89e3\u51b3\u51b2\u7a81",mergeConflictTip4:"\u7b2c\u56db\u6b65:\u5c06\u4ee3\u7801\u63a8\u9001\u5230codeForge\u5e73\u53f0",from_S_Merge_S:"\u4ece {s1} \u8bf7\u6c42\u5408\u5e76\u5230 {s2}",defaultGroupReqiured:"\u9700\u8981\u9ed8\u8ba4\u4ed3\u5e93\u7ec4",defaultGroupReqiuredDescription:"\u60a8\u9700\u8981\u81f3\u5c11\u521b\u5efa\u4e00\u4e2a\u4ed3\u5e93\u7ec4\u7528\u4e8e\u5b58\u653e\u4ed3\u5e93",someVersion:"\u76f8\u5173\u7248\u672c",backHome:"\u56de\u5230\u9996\u9875",inputSSHKEYContent:"\u8bf7\u8f93\u5165 SSH Key \u5185\u5bb9",inputSSHKEYName:"\u8bf7\u8f93\u5165 SSH Key \u540d\u79f0",defaultBranchDescription:"\u9ed8\u8ba4\u5206\u652f\u88ab\u89c6\u4e3a\u4ee3\u7801\u5e93\u4e2d\u7684\u57fa\u672c\u5206\u652f, \u662f\u6240\u6709\u514b\u9686\u3001\u4ee3\u7801\u63d0\u4ea4\u548c\u5408\u5e76\u8bf7\u6c42\u7684\u76ee\u6807\u5206\u652f",settingToDefaultBranch:"\u8bbe\u7f6e\u4e3a\u9ed8\u8ba4\u5206\u652f",updateDefaultBranch:"\u4fee\u6539\u9ed8\u8ba4\u5206\u652f",settingDefaultBranch:"\u8bf7\u8bbe\u7f6e\u9ed8\u8ba4\u5206\u652f",protectedBranchDescription:"\u4fdd\u62a4\u5206\u652f\u4f1a\u4fdd\u969c\u5206\u652f\u5b89\u5168\u6027, \u4e0d\u5141\u8bb8\u9664\u6240\u6709\u8005\u4ee5\u5916\u89d2\u8272\u8fdb\u884c\u5f3a\u5236\u63a8\u9001\u53ca\u5220\u9664",protectedBranchRuleEmpty:"\u76ee\u524d\u65e0\u4fdd\u62a4\u5206\u652f\u89c4\u5219, \u8bf7\u65b0\u5efa\u4fdd\u62a4\u5206\u652f\u89c4\u5219, \u4fdd\u62a4\u5206\u652f\u5b89\u5168",inputBranchOrRegexp:"\u8bf7\u8f93\u5165\u5206\u652f\u540d\u79f0\u6216\u901a\u7528\u7b26\u89c4\u5219",createProtectedBranchRule:"\u65b0\u5efa\u4fdd\u62a4\u5206\u652f\u89c4\u5219",updateProtectedBranchRule:"\u4fee\u6539\u4fdd\u62a4\u5206\u652f\u89c4\u5219",deleteProtectedBranchRule:"\u5220\u9664\u4fdd\u62a4\u5206\u652f\u89c4\u5219",noBodyAllow:"\u4e0d\u5141\u8bb8\u4efb\u4f55\u4eba",primaryEmail:"\u4e3b\u90ae\u7bb1\u5730\u5740",primaryEmailDescription:"\u5f53\u524d CodeFever \u8d26\u53f7\u7684\u90ae\u7bb1\u5730\u5740, \u7528\u4e8e\u63a5\u6536\u76f8\u5173\u901a\u77e5, \u5bc6\u7801\u91cd\u7f6e, \u767b\u5f55\u7b49\u64cd\u4f5c",updatePrimaryEmail:"\u66f4\u6539\u4e3b\u90ae\u7bb1\u5730\u5740",myEmail:"\u6211\u7684\u90ae\u7bb1\u5730\u5740",myEmailDescription:"\u591a\u90ae\u7bb1\u529f\u80fd\u7528\u4e8e\u540c\u4e00\u7528\u6237\u6709\u591a\u4e2a\u4e0d\u540c\u90ae\u7bb1\u7528\u4e8e\u63d0\u4ea4\u4ee3\u7801, \u7cfb\u7edf\u53ef\u8bc6\u522b\u5e76\u521b\u5efa\u5173\u8054\u5173\u7cfb",addEmail:"\u65b0\u5efa\u90ae\u7bb1\u5730\u5740",contactedEmail:"\u5df2\u5173\u8054\u90ae\u7bb1",shouldValidation:"\u5f85\u9a8c\u8bc1",resendEmail:"\u91cd\u53d1\u90ae\u4ef6",differenceBetweenHTTPSAndSSH:"HTTPS \u4e0e SSH \u6709\u4ec0\u4e48\u533a\u522b ?",generateAndSetSSHKey:"\u8bf7\u786e\u8ba4\u5ba2\u6237\u7aef\u7684 SSH Key \u5df2\u7ecf\u751f\u6210\u5e76\u4e14\u5728 CodeFever \u4e0a\u6b63\u786e\u8bbe\u7f6e\u3002",itsMyEmail:"\u8fd9\u662f\u6211\u7684\u90ae\u7bb1",notificationSystem:"\u7cfb\u7edf\u6d88\u606f",notificationMention:"\u63d0\u5230\u6211\u7684",tagRead:"\u6807\u8bb0\u4e3a\u5df2\u8bfb",tagAllRead:"\u6807\u8bb0\u6240\u6709\u4e3a\u5df2\u8bfb",deleteAllReaded:"\u5220\u9664\u6240\u6709\u5df2\u8bfb\u7528\u6237\u6d88\u606f",mergeRequestNotification:"\u5408\u5e76\u8bf7\u6c42\u901a\u77e5",mergeRequestNotificationDesc:"\u53ef\u63a5\u6536\u4ed3\u5e93\u6210\u5458\u53d1\u5e03\u7684\u548c\u5e76\u8bf7\u6c42\u901a\u77e5, \u5f00\u53d1\u8005\u53ca\u4ee5\u4e0a\u6210\u5458\u53ef\u63a5\u6536",emailNotification:"\u90ae\u4ef6\u901a\u77e5",emailNotificationDesc:"\u901a\u77e5\u8bbe\u7f6e\u4e2d\u7684\u6d88\u606f\u5c06\u53d1\u9001\u5230\u60a8\u7684\u6ce8\u518c\u90ae\u7bb1\u4e2d\u3002",searchByName:"\u67e5\u627e\u59d3\u540d\u6216\u90ae\u7bb1",userStatusEnabled:"\u6062\u590d\u786e\u8ba4",userStatusDisabled:"\u7981\u7528\u786e\u8ba4",userStatusEnabled_N:'\u786e\u8ba4\u6062\u590d\u7528\u6237 "{n}" ?',userStatusDisabled_N:'\u786e\u8ba4\u7981\u7528\u7528\u6237 "{n}" ?',closeMFA:"\u5173\u95ed2FA\u8ba4\u8bc1",closeMFAConfirm:"\u5173\u95ed2FA\u8ba4\u8bc1\u786e\u8ba4",closeMFA_N:'\u786e\u8ba4\u5173\u95ed\u7528\u6237 "{n}" 2FA\u8ba4\u8bc1?',resetPassword:"\u91cd\u7f6e\u5bc6\u7801",reset_N_Password:'\u91cd\u7f6e\u7528\u6237 "{n}" \u5bc6\u7801',searchRepository:"\u67e5\u627e\u4ed3\u5e93",searchGroup:"\u67e5\u627e\u4ed3\u5e93\u7ec4",roleToOwner:"\u6307\u5b9a\u4e3a\u6240\u6709\u8005",setGroupOwner_S:"\u786e\u5b9a\u6307\u5b9a {s} \u4e3a\u4ed3\u5e93\u7ec4\u7684\u6240\u6709\u8005?",setAdministrator:"\u8bbe\u7f6e\u4e3a\u7ba1\u7406\u5458",cancelAdministrator:"\u53d6\u6d88\u7ba1\u7406\u5458",memberRemoveConfirm:"\u6210\u5458\u5220\u9664\u786e\u8ba4",successAddUser:"\u6dfb\u52a0\u7528\u6237\u6210\u529f",webhookEventsNeed:"\u8bf7\u9009\u62e9\u63a8\u9001\u4e8b\u4ef6",webhookListEmpty:"\u8fd8\u6ca1\u6709\u521b\u5efaWebhook",useTime_n:"\u7528\u65f6 {n} s",show_n_record:"\u663e\u793a\u6700\u65b0{n}\u6761\u8bb0\u5f55"}),{},{__namespace__:"message"}),$i=Object(y.a)(Object(y.a)({},{_S_empty:"\u8bf7\u8f93\u5165{s}",_S_retype:"\u8bf7\u518d\u6b21\u8f93\u5165{s}",_S_has_illegal_character:"{s}\u542b\u6709\u975e\u6cd5\u5b57\u7b26(\u53ea\u652f\u6301\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf(_)\u3001\u4e2d\u5212\u7ebf(-)\u548c\u70b9(.)\u7684\u7ec4\u5408)",_S_notChoose:"\u8bf7\u9009\u62e9{s}",_S_duplicate:"{s}\u91cd\u590d",_S_invalid:"{s}\u4e0d\u6b63\u786e",_S_notFound:"\u6ca1\u6709\u627e\u5230\u6b64{s}",noMoreThan_N_characters:"\u4e0d\u80fd\u8d85\u8fc7{n}\u4e2a\u5b57\u7b26",within_N1_to_N2_characters:"\u9700\u8981\u5728{n1}\u81f3{n2}\u4e2a\u5b57\u7b26\u4e4b\u95f4",only_N1_or_N2_characters:"\u53ea\u80fd\u5305\u542b{n1}\u6216{n2}\u4e2a\u5b57\u7b26",requireCombinationOfCharactersNumbersAndUnderscore:"\u53ea\u80fd\u662f\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf\u7684\u7ec4\u5408",input_S_placeholder:"\u8bf7\u8f93\u5165{s}\uff0c\u53ea\u652f\u6301\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf(_)\u3001\u4e2d\u5212\u7ebf(-)\u548c\u70b9(.)\u7684\u7ec4\u5408",inputNotSame:"\u4e24\u6b21\u8f93\u5165\u4e0d\u4e00\u81f4",inputSame:"\u4e24\u6b21\u8f93\u5165\u4e00\u81f4",canNotAddCreatorAsMember:"\u521b\u5efa\u8005\u4e0d\u80fd\u5f53\u4f5c\u6210\u5458\u6dfb\u52a0",createRepositoryFail:"\u521b\u5efa\u4ed3\u5e93\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createGroupFail:"\u521b\u5efa\u4ed3\u5e93\u7ec4\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createBranchFail:"\u521b\u5efa\u5206\u652f\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createTagFail:"\u521b\u5efa\u6807\u7b7e\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createMergeRequestFail:"\u521b\u5efa\u5408\u5e76\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",createProtectedBrancheRuleFail:"\u521b\u5efa\u4fdd\u62a4\u5206\u652f\u89c4\u5219\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",AddFail:"\u6dfb\u52a0\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",updateFail:"\u66f4\u65b0\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",removeFail:"\u79fb\u9664\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",deleteFail:"\u5220\u9664\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",verifyFail:"\u9a8c\u8bc1\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",forkRepositoryFail:"Fork\u4ed3\u5e93\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",getFileFail:"\u83b7\u53d6\u5b8c\u6574\u6587\u4ef6\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",getEmailCodeFail:"\u83b7\u53d6\u90ae\u7bb1\u9a8c\u8bc1\u7801\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",getPhoneCodeFail:"\u83b7\u53d6\u624b\u673a\u9a8c\u8bc1\u7801\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",change_S_Fail:"\u4fee\u6539{s}\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",waitToRetry:"\u7f51\u7edc\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5",canNotChangeOwnerOfUserGroup:"\u4e0d\u80fd\u66f4\u6539\u4e2a\u4eba\u9ed8\u8ba4\u4ed3\u5e93\u7ec4\u7684\u521b\u5efa\u8005",canNotDeleteUserGroup:"\u4e0d\u80fd\u5220\u9664\u4e2a\u4eba\u9ed8\u8ba4\u4ed3\u5e93\u7ec4",canNotDeleteNonEmptyGroup:"\u4ed3\u5e93\u7ec4\u5185\u542b\u6709\u672a\u5220\u9664\u7684\u4ed3\u5e93, \u8bf7\u624b\u52a8\u5220\u9664\u7ec4\u5185\u4ed3\u5e93\u540e\u518d\u8bd5",mergeRequestExists:"\u5b58\u5728\u5df2\u6253\u5f00\u7684\u5408\u5e76\u8bf7\u6c42",mergeFail:"\u5408\u5e76\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5",reviewedCanNotAssign:"\u4e0d\u80fd\u66ff\u6362\u8bc4\u5ba1\u8fc7\u7684\u8bc4\u5ba1\u5458",reviewedCanNotDelete:"\u4e0d\u80fd\u5220\u9664\u8bc4\u5ba1\u8fc7\u7684\u8bc4\u5ba1\u5458",branchProteced:"\u4e0d\u80fd\u5728\u4fdd\u62a4\u5206\u652f\u4e0a\u5408\u5e76",userNotReview:"\u4e0d\u80fd\u5408\u5e76\uff0c\u8fd8\u6709\u8bc4\u5ba1\u5458\u672a\u8bc4\u5ba1",inputNewEmail:"\u8bf7\u8f93\u5165\u65b0\u7684\u90ae\u7bb1",bindEmailFirst:"\u4f60\u9700\u8981\u7ed1\u5b9a\u90ae\u7bb1\u624d\u53ef\u4ee5\u7ed1\u5b9a\u7b2c\u4e09\u65b9\u5e73\u53f0",wechatHasbound:"\u8be5\u5fae\u4fe1\u53f7\u5df2\u7ecf\u88ab\u7ed1\u5b9a\uff0c\u8bf7\u626b\u7801\u767b\u5f55\u540e\u89e3\u7ed1\u91cd\u8bd5",sshKeyDuplicate:"\u6b64 SSH Key \u5df2\u7ecf\u6dfb\u52a0, \u6216\u5728\u5176\u4ed6\u7528\u6237\u4e2d"}),{},{__namespace__:"message.error"}),Zi=Object(y.a)(Object(y.a)({},{createdGroup:"\u521b\u5efa\u4ed3\u5e93\u7ec4",updateGroup_S_Avator:"\u66f4\u65b0\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u5934\u50cf",updateGroup_S_Name:"\u66f4\u65b0\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u540d\u79f0",updateGroup_S_Description:"\u66f4\u65b0\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u63cf\u8ff0",addGroup_S_Memeber:"\u5411\u4ed3\u5e93\u7ec4 {s} \u6dfb\u52a0\u4e86\u6210\u5458",changeGroup_S_MemebrRole:"\u8bbe\u7f6e\u4e86\u4ed3\u5e93\u7ec4 {s} \u5185\u6210\u5458\u89d2\u8272",removeGroup_S_Memebr:"\u79fb\u9664\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u6210\u5458",setGroup_S_Creator:"\u8bbe\u7f6e\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u521b\u5efa\u8005",setGroup_S_URL:"\u4fee\u6539\u4e86\u4ed3\u5e93\u7ec4 {s} \u7684\u8bbf\u95ee\u5730\u5740",createdRepository:"\u521b\u5efa\u4ed3\u5e93",deleteRepository:"\u5220\u9664\u4ed3\u5e93",forkRepository:"fork \u5e76\u521b\u5efa\u4ed3\u5e93",updateRepository_S_Avator:"\u66f4\u65b0\u4e86\u4ed3\u5e93 {s} \u7684\u5934\u50cf",updateRepository_S_Name:"\u66f4\u65b0\u4e86\u4ed3\u5e93 {s} \u7684\u540d\u79f0",updateRepository_S_Description:"\u66f4\u65b0\u4e86\u4ed3\u5e93 {s} \u7684\u63cf\u8ff0",pushTo_S_Branch:"\u63a8\u9001\u63d0\u4ea4\u5230\u4ed3\u5e93 {s} \u7684\u5206\u652f",pushTo_S_NewBranch:"\u63a8\u9001\u5206\u652f\u5230\u4ed3\u5e93 {s}",created_S_NewBranch:"\u5728\u4ed3\u5e93 {s} \u521b\u5efa\u65b0\u5206\u652f",delete_S_Branch:"\u5728\u4ed3\u5e93 {s} \u5220\u9664\u4e86\u5206\u652f",update_S_DefaultBranch:"\u4fee\u6539\u4e86\u4ed3\u5e93 {s} \u7684\u9ed8\u8ba4\u5206\u652f",created_S_ProtectedBranchRule:"\u5728\u4ed3\u5e93 {s} \u521b\u5efa\u4fdd\u62a4\u5206\u652f\u89c4\u5219",update_S_ProtectedBranchRule:"\u4fee\u6539\u4e86\u4ed3\u5e93 {s} \u7684\u4fdd\u62a4\u5206\u652f\u89c4\u5219",delete_S_ProtectedBranchRule:"\u5220\u9664\u4e86\u4ed3\u5e93 {s} \u7684\u4fdd\u62a4\u5206\u652f\u89c4\u5219",pushTo_S_Tag:"\u63a8\u9001\u63d0\u4ea4\u5230\u4ed3\u5e93 {s} \u7684\u6807\u7b7e",pushTo_S_NewTag:"\u63a8\u9001\u6807\u7b7e\u5230\u4ed3\u5e93 {s}",created_S_NewTag:"\u5728\u4ed3\u5e93 {s} \u521b\u5efa\u65b0\u6807\u7b7e",delete_S_Tag:"\u5728\u4ed3\u5e93 {s} \u5220\u9664\u4e86\u6807\u7b7e",addRepository_S_Memeber:"\u5411\u4ed3\u5e93 {s} \u6dfb\u52a0\u4e86\u6210\u5458",changeRepository_S_MemebrRole:"\u8bbe\u7f6e\u4e86\u4ed3\u5e93 {s} \u5185\u6210\u5458\u89d2\u8272",removeRepository_S_Memebr:"\u79fb\u9664\u4e86\u4ed3\u5e93 {s} \u7684\u6210\u5458",setRepository_S_Creator:"\u8bbe\u7f6e\u4e86\u4ed3\u5e93 {s} \u7684\u521b\u5efa\u8005",setRepository_S_URL:"\u4fee\u6539\u4e86\u4ed3\u5e93 {s} \u7684\u8bbf\u95ee\u5730\u5740",open_S_MergeRquest:"\u5728\u4ed3\u5e93 {s} \u6253\u5f00\u5408\u5e76\u8bf7\u6c42",close_S_MergeRquest:"\u5728\u4ed3\u5e93 {s} \u5173\u95ed\u5408\u5e76\u8bf7\u6c42",merge_S_MergeRquest:"\u5728\u4ed3\u5e93 {s} \u5408\u5e76\u8bf7\u6c42",assign_S_Reviewer:"\u5728\u4ed3\u5e93 {s} \u6307\u5b9a\u8bc4\u5ba1\u5458",delete_S_Reviewer:"\u5728\u4ed3\u5e93 {s} \u5220\u9664\u8bc4\u5ba1\u5458",review_S_Reviewer:"\u5728\u4ed3\u5e93 {s} \u8bc4\u5ba1\u4e86\u4ee3\u7801",create_S_Webhook:"\u5728\u4ed3\u5e93 {s} \u521b\u5efa\u4e86webhook",update_S_Webhook:"\u5728\u4ed3\u5e93 {s} \u66f4\u65b0\u4e86webhook",delete_S_Webhook:"\u5728\u4ed3\u5e93 {s} \u5220\u9664\u4e86webhook"}),{},{__namespace__:"message.activity"}),Yi=Object(y.a)(Object(y.a)({},{repository:"\u4ed3\u5e93",repository_pl:"\u4ed3\u5e93",group:"\u4ed3\u5e93\u7ec4",group_pl:"\u4ed3\u5e93\u7ec4",file:"\u6587\u4ef6",file_pl:"\u6587\u4ef6",commit:"\u63d0\u4ea4",commit_pl:"\u63d0\u4ea4",mergeRequest:"\u5408\u5e76\u8bf7\u6c42",mergeRequest_pl:"\u5408\u5e76\u8bf7\u6c42",branch:"\u5206\u652f",branch_pl:"\u5206\u652f",webhook:"Webhook",webhook_pl:"Webhooks",tag:"\u6807\u7b7e",tag_pl:"\u6807\u7b7e",member:"\u6210\u5458",member_pl:"\u6210\u5458",activity:"\u52a8\u6001",activity_pl:"\u52a8\u6001",setting:"\u8bbe\u7f6e",setting_pl:"\u8bbe\u7f6e",SSHKey:"SSH Key",SSHKey_pl:"SSH Keys",user:"\u7528\u6237",user_pl:"\u7528\u6237",fileTree:"\u6587\u4ef6\u6811",merge:"\u5408\u5e76",data:"\u6570\u636e",clone:"\u514b\u9686",fork:"Fork",limitation:"\u9650\u5236",role:"\u89d2\u8272",team:"\u56e2\u961f",code:"\u6e90\u7801",hash:"\u54c8\u5e0c\u503c",time:"\u65f6\u95f4",number:"\u6570\u91cf",line:"\u884c",guest:"\u8bbf\u5ba2",reporter:"\u76d1\u7763\u8005",developer:"\u5f00\u53d1\u8005",maintianer:"\u7ef4\u62a4\u8005",owner:"\u6240\u6709\u8005",parentNode:"\u7236\u8282\u70b9"}),{},{__namespace__:"term"}),Xi=Object(y.a)(Object(y.a)({},Yi),{},{CodeFever:"CodeFever",ID:"ID",user:"\u7528\u6237",name:"\u540d\u79f0",creator:"\u521b\u5efa\u8005",reviewer:"\u8bc4\u5ba1\u5458",administrator:"\u7ba1\u7406\u5458",title:"\u6807\u9898",description:"\u63cf\u8ff0",origin:"\u6765\u6e90",source:"\u6e90",target:"\u76ee\u6807",url:"URL",ssh:"SSH",slug:"\u6807\u8bc6\u4e32",prefix:"\u524d\u7f00",avatar:"\u5934\u50cf",icon:"\u56fe\u6807",joinedAt:"\u52a0\u5165\u65f6\u95f4",unknown:"\u672a\u77e5",all:"\u6240\u6709",detail:"\u8be6\u60c5",language:"\u8bed\u8a00",webhook:"Webhook",log:"\u65e5\u5fd7",httpHeaders:"\u5934\u90e8",httpBody:"\u54cd\u5e94\u6570\u636e",httpPayload:"\u8bf7\u6c42\u6570\u636e",browser:"\u6d4f\u89c8",expand:"\u5c55\u5f00",times:"\u6b21",full:"\u5b8c\u6574",invite:"\u9080\u8bf7",before:"\u524d",new:"\u65b0\u5efa",add:"\u65b0\u589e",open:"\u6253\u5f00",close:"\u5173\u95ed",save:"\u4fdd\u5b58",create:"\u521b\u5efa",update:"\u66f4\u65b0",remove:"\u79fb\u9664",modification:"\u4fee\u6539",delete:"\u5220\u9664",and:"\u548c",ok:"\u786e\u5b9a",cancel:"\u53d6\u6d88",copy:"\u62f7\u8d1d",push:"\u63a8\u9001",merge:"\u5408\u5e76",chose:"\u9009\u62e9",show:"\u663e\u793a",list:"\u5217\u8868",copied:"\u5df2\u590d\u5236",contain:"\u5305\u542b",request:"\u8bf7\u6c42",response:"\u54cd\u5e94",bind:"\u7ed1\u5b9a",unbind:"\u89e3\u7ed1",replace:"\u66ff\u6362",sort:"\u6392\u5e8f",manage:"\u7ba1\u7406",protected:"\u4fdd\u62a4",operating:"\u64cd\u4f5c",approve:"\u8bc4\u5ba1",enable:"\u542f\u7528",disable:"\u7981\u7528",last:"\u6700\u8fd1",default:"\u9ed8\u8ba4",active:"\u6d3b\u8dc3",inactive:"\u975e\u6d3b\u8dc3",path:"\u8def\u5f84",email:"\u7535\u5b50\u90ae\u4ef6\u5730\u5740",password:"\u5bc6\u7801",oldPassword:"\u65e7\u5bc6\u7801",newPassword:"\u65b0\u5bc6\u7801",mfaCode:"MFA \u5bc6\u7801",twoFactorAuthentication:"\u4e8c\u56e0\u7d20\u8ba4\u8bc1",emailCode:"\u9a8c\u8bc1\u7801",phoneCode:"\u9a8c\u8bc1\u7801",phone:"\u624b\u673a",china:"\u4e2d\u56fd",company:"\u516c\u53f8",job:"\u804c\u4f4d",wechat:"\u5fae\u4fe1",credential:"\u51ed\u636e",login:"\u767b\u5f55",logout:"\u9000\u51fa\u767b\u5f55",next:"\u4e0b\u4e00\u9875",prev:"\u4e0a\u4e00\u9875",mergeMessage:"\u5408\u5e76\u4fe1\u606f",submit:"\u63d0\u4ea4",rule:"\u89c4\u5219",allow:"\u5141\u8bb8",status:"\u72b6\u6001",history:"\u5386\u53f2",notification:"\u901a\u77e5",learnMore:"\u4e86\u89e3\u66f4\u591a",myServiceTicket:"\u6211\u7684\u5de5\u5355",getHelp:"\u83b7\u53d6\u5e2e\u52a9",help:"\u5e2e\u52a9",result:"\u7ed3\u679c",success:"\u6210\u529f",failure:"\u5931\u8d25",doc:"\u6587\u6863",adminArea:"\u7ba1\u7406\u540e\u53f0",edit:"\u7f16\u8f91",confirm:"\u786e\u8ba4"}),Qi=Object(y.a)(Object(y.a)({},Xi),{},{__namespace__:"phrase"}),en=Object(y.a)(Object(y.a)(Object(y.a)({},Yi),Qi),{},{dashboard:"\u6982\u89c8",general:"\u5e38\u89c4",advanced:"\u9ad8\u7ea7",profile:"\u4e2a\u4eba\u4fe1\u606f",mail:"\u591a\u90ae\u7bb1"}),tn=Object(y.a)(Object(y.a)({},en),{},{__namespace__:"menu"}),an="",rn=Object(y.a)(Object(y.a)(Object(y.a)({},Qi),Yi),{},{update_S_:"\u4fee\u6539{s}",retryAfter_N_seconds:"{n} \u79d2\u540e\u91cd\u8bd5",userAvatar:[Qi.user,Qi.avatar].join(an),userName:[Qi.user,Qi.name].join(an),getEmailCode:["\u83b7\u53d6",Qi.emailCode].join(an),getPhoneCode:["\u83b7\u53d6",Qi.phoneCode].join(an),mostSeen:"\u5e38\u89c1",loginCredential:[Qi.login,Qi.credential].join(an),CodeFeverPassword:[Qi.CodeFever,Qi.password].join(an),wechatBind:[Qi.wechat,Qi.bind].join(an),unbind_P:"\u89e3\u9664{p}\u7ed1\u5b9a",repositoryID:[Yi.repository,Qi.ID].join(an),repositoryName:[Yi.repository,Qi.name].join(an),repositoryDescription:[Yi.repository,Qi.description].join(an),repositoryURL:[Yi.repository,Qi.url].join(an),repositorySlug:[Yi.repository,Qi.slug].join(an),repositoryMember:[Yi.repository,Yi.member].join(an),newRepository:[Qi.new,Yi.repository].join(an),forkRepository:[Yi.fork,Yi.repository].join(an),unknownRepository:[Qi.unknown,Yi.repository].join(an),allRepository:[Qi.all,Yi.repository].join(an),deleteRepository:[Qi.delete,Yi.repository].join(an),groupID:[Yi.group,Qi.ID].join(an),groupName:[Yi.group,Qi.name].join(an),groupDescription:[Yi.group,Qi.description].join(an),groupURL:[Yi.group,Qi.url].join(an),groupSlug:[Yi.repository,Qi.slug].join(an),groupMember:[Yi.group,Yi.member].join(an),newGroup:[Qi.new,Yi.group].join(an),unknownGroup:[Qi.unknown,Yi.group].join(an),deleteGroup:[Qi.delete,Yi.group].join(an),inviteMember:[Qi.invite,Yi.member].join(an),removeMember:[Qi.remove,Yi.member].join(an),forkFrom_S:[Yi.fork,"\u81ea: {s}"].join(an),updateFrom_S1_To_S2:["\u4ece {s1} \u66f4\u65b0\u4e3a {s2}"].join(an),repositoryAvatar:[Yi.repository,Qi.icon].join(an),groupAvatar:[Yi.group,Qi.icon].join(an),basicInfo:"\u57fa\u672c\u4fe1\u606f",newPasswordConfirm:[Qi.confirm,Qi.newPassword].join(an),security:"\u5b89\u5168\u6027",setupNewMFADevice:"\u8bbe\u7f6e MFA \u8bbe\u5907",changeMFADevice:"\u66f4\u6362 MFA \u8bbe\u5907",removeMFADevice:"\u79fb\u9664 MFA \u8bbe\u5907",mfaCode1:["\u7b2c\u4e00\u7ec4 ",Qi.mfaCode].join(an),mfaCode2:["\u7b2c\u4e8c\u7ec4 ",Qi.mfaCode].join(an),commitTime:[Qi.commit,Qi.time].join(an),copyPath:[Qi.copy,Qi.path].join(an),copyHash:[Qi.copy,Yi.hash].join(an),copyCode:[Qi.copy,Yi.code].join(an),lastCommit:[Qi.last,Yi.commit].join(an),lastUpdate:[Qi.last,Qi.update].join(an),updateCreator:[Qi.update,Qi.creator].join(an),updateRepositoryURL:[Qi.update,Yi.repository,Qi.url].join(an),updateGroupURL:[Qi.update,Yi.group,Qi.url].join(an),webhookSetting:[Yi.webhook,Yi.setting].join(an),createWebhook:[Qi.create,Yi.webhook].join(an),updateWebhook:[Qi.update,Yi.webhook].join(an),deleteWebhook:[Qi.delete,Yi.webhook].join(an),contentType:"\u6570\u636e\u683c\u5f0f",webhookSecret:"\u6821\u9a8c\u79d8\u94a5",webhookTrigger:"\u89e6\u53d1\u4e8b\u4ef6",pushTrigger:"\u4ec5\u63a8\u9001\u4e8b\u4ef6",customeTrigger:"\u81ea\u5b9a\u4e49",webhookList:"Webhook\u5217\u8868",webhookLog:[Qi.webhook,Qi.log].join(an),createOrigin:[Qi.create,Qi.origin].join(an),choseCreateOrigin:[Qi.chose,Qi.create,Qi.origin].join(an),tagDescription:[Yi.tag,Qi.description].join(an),tagName:[Yi.tag,Qi.name].join(an),branchName:[Yi.branch,Qi.name].join(an),defaultBranch:[Qi.default,Yi.branch].join(an),protectedBranch:[Qi.protected,Yi.branch].join(an),branchRule:[Qi.branch,Qi.rule].join(an),allowPush:[Qi.allow,Qi.push].join(an),allowMerge:[Qi.allow,Qi.merge].join(an),noData:["\u6ca1\u6709",Yi.data].join(an),newBranch:[Qi.new,Yi.branch].join(an),newTag:[Qi.new,Yi.tag].join(an),deleteBranch:[Qi.delete,Yi.branch].join(an),deleteTag:[Qi.delete,Yi.tag].join(an),updateTime:[Qi.update,Yi.time].join(an),updatedIn:"\u66f4\u65b0\u4e8e",editIn:"\u7f16\u8f91\u4e8e",expandFullFile:[Qi.expand,Qi.full,Qi.file].join(an),showDiffOnly:"\u4ec5\u5c55\u793a\u4fee\u6539\u884c",codeDiff:"\u4ee3\u7801\u5dee\u5f02",requestCreated:"\u521b\u5efa\u4e8e",requestClosed:"\u5173\u95ed\u4e8e",requestMerged:"\u5408\u5e76\u4e8e",createRepository:["\u8bf7",Qi.create,Yi.repository].join(an),commitActivity:[Yi.commit,Qi.activity].join(an),mergeRequestActivity:[Yi.mergeRequest,Qi.activity].join(an),memberActivity:[Yi.member,Qi.activity].join(an),addSSHKey:[Qi.add,Yi.SSHKey].join(an),emailManage:["\u90ae\u7bb1",Qi.manage].join(an),memberManage:[Yi.member,Qi.manage].join(an),primaryEmail:"\u4e3b\u90ae\u7bb1",contactEmail:"\u5173\u8054\u90ae\u7bb1\u5217\u8868",SSHKeyManage:[Yi.SSHKey_pl," ",Qi.manage].join(an),notificationCenter:"\u901a\u77e5\u4e2d\u5fc3",notificationReceiveStatus:"\u63a5\u6536\u901a\u77e5\u72b6\u6001",unread:"\u672a\u8bfb",fileModification:[Yi.file,Qi.modification].join(an),fileModificationList:[Qi.modification,Yi.file,Qi.list].join(an),lineAdd:[Yi.line,Qi.add].join(an),lineDelete:[Yi.line,Qi.delete].join(an),browserFile:[Qi.browser,Qi.file].join(an),browserUnchangedFIle:[Qi.browser,Qi.modification,Qi.before,Qi.file].join(an),commitHash:[Yi.commit,Yi.hash].join(an),allFiles:[Qi.all,Qi.file].join(an),openFileTree:[Qi.open,Yi.fileTree].join(an),closeFileTree:[Qi.close,Yi.fileTree].join(an),requestMerge:[Qi.request,Qi.merge].join(an),createMergeRequest:[Qi.create,Yi.mergeRequest].join(an),closeMergeRequest:[Qi.close,Yi.mergeRequest].join(an),more:"\u67e5\u770b\u66f4\u591a",noMore:"\u6ca1\u6709\u66f4\u591a",processing:"\u5904\u7406\u4e2d",IJoined:"\u6211\u53c2\u4e0e\u7684",ICreated:"\u6211\u521b\u5efa\u7684",dangerOperation:"\u5371\u9669\u64cd\u4f5c",dangerOperationConfirm:"\u6700\u540e\u786e\u8ba4\u5371\u9669\u64cd\u4f5c",compareBranch:"\u5bf9\u6bd4\u5206\u652f\u5e76\u7ee7\u7eed",lastModified:"\u6700\u8fd1\u4fee\u6539",lastModified_N:["\u7b2c","{n}","\u6b21\u4fee\u6539"].join(an),openMergeRequest:[Qi.open,Yi.mergeRequest].join(an),modificationBranch:[Qi.modification,Yi.branch].join(an),sourceBranch:[Qi.source,Yi.branch].join(an),targetBranch:[Qi.target,Yi.branch].join(an),repositoryAdvancedSetting:"\u4ed3\u5e93\u9ad8\u7ea7\u8bbe\u7f6e",branchSetting:"\u5206\u652f\u8bbe\u7f6e",groupAdvancedSetting:"\u4ed3\u5e93\u7ec4\u9ad8\u7ea7\u8bbe\u7f6e",memberLimitation:[Yi.member,Yi.limitation].join(an),modificationLimitation:[Qi.modification,Yi.limitation].join(an),roleID_1:Yi.guest,roleID_2:Yi.reporter,roleID_3:Yi.developer,roleID_4:Yi.maintianer,roleID_5:Yi.owner,yourself:"\u4f60\u81ea\u5df1",enabledMFA:"\u5f00\u542f\u4e862FA",disabledMFA:"\u672a\u5f00\u542f2FA",blocked:"\u7981\u7528",createTime:"\u521b\u5efa\u65f6\u95f4",addUser:"\u6dfb\u52a0\u7528\u6237",statistic:"\u7edf\u8ba1",systemResources:"\u7cfb\u7edf\u8d44\u6e90",diskUsgae:"\u78c1\u76d8\u4f7f\u7528\u91cf",serviceStatus:"\u670d\u52a1\u72b6\u6001",host:"\u4e3b\u673a",senderName:"\u53d1\u4ef6\u4eba\u540d\u79f0",senderAddress:"\u53d1\u4ef6\u4eba\u5730\u5740",register:"\u6ce8\u518c",allowRegister:"\u5f00\u653e\u6ce8\u518c",urlPrefix:[Qi.url," ",Qi.prefix].join(an),sshPrefix:[Qi.ssh," ",Qi.prefix].join(an),support:"\u6280\u672f\u652f\u6301",feedback:"\u63d0\u4ea4\u53cd\u9988",contribute:"\u4e3a CodeFever Community \u8d21\u732e\u4ee3\u7801",about:"\u5173\u4e8e CodeFever Community",pushEvent:"\u63a8\u9001\u4e8b\u4ef6",changeMemberRole:[Qi.modification,Yi.member,Yi.role].join(an),createProtectedBranchRule:"\u521b\u5efa\u53d7\u4fdd\u62a4\u5206\u652f\u89c4\u5219",changeProtectedBranchRule:"\u4fee\u6539\u53d7\u4fdd\u62a4\u5206\u652f\u89c4\u5219",removeProtectedBranchRule:"\u5220\u9664\u53d7\u4fdd\u62a4\u5206\u652f\u89c4\u5219",reviewReviewer:"\u8bc4\u5ba1\u4ee3\u7801",_N_repository:"{n} {n, plural, =0 {"+Yi.repository+"}\n=1 {"+Yi.repository+"}\nother {"+Yi.repository_pl+"}}",_N_commit:"{n} {n, plural, =0 {"+Yi.commit+"}\n=1 {"+Yi.commit+"}\nother {"+Yi.commit_pl+"}}",_N_branch:"{n} {n, plural, =0 {"+Yi.branch+"}\n=1 {"+Yi.branch+"}\nother {"+Yi.branch_pl+"}}",_N_tag:"{n} {n, plural, =0 {"+Yi.tag+"}\n=1 {"+Yi.tag+"}\nother {"+Yi.tag_pl+"}}",_N_byte:"{n} {n, plural, =0 {Byte}\n=1 {Byte}\nother {Bytes}}",_N_mergeRequest:"{n} {n, plural, =0 {"+Yi.mergeRequest+"}\n=1 {"+Yi.mergeRequest+"}\nother {"+Yi.mergeRequest_pl+"}}",_N_member:"{n} {n, plural, =0 {"+Yi.member+"}\n=1 {"+Yi.member+"}\nother {"+Yi.member_pl+"}}"}),nn=Object(y.a)(Object(y.a)({},rn),{},{__namespace__:"label"}),sn=Object(y.a)(Object(y.a)({},{"mergeRequest:create":"{user} \u6253\u5f00\u4e86\u548c\u5e76\u8bf7\u6c42: !{number} {title}","mergeRequest:close":"{user} \u5173\u95ed\u4e86\u548c\u5e76\u8bf7\u6c42: !{number} {title}","mergeRequest:merge":"{user} \u5408\u5e76\u4e86\u548c\u5e76\u8bf7\u6c42: !{number} {title}","mergeRequestReviewer:create":"{user} \u6307\u5b9a\u4f60\u4e3a\u5408\u5e76\u8bf7\u6c42 !{number} {title} \u7684\u8bc4\u5ba1\u5458","mergeRequestReviewer:review":"{user} \u901a\u8fc7\u4e86\u548c\u5e76\u8bf7\u6c42 !{number} {title} \u7684\u8bc4\u5ba1"}),{},{__namespace__:"notification"}),on=Object(y.a)(Object(y.a)({},{Added:"Added",created:"Created",updated:"Updated",removed:"Removed",deleted:"Deleted",copied:"Copied",merged:"Merged",opened:"Opened",closed:"Closed",binded:"Binded",unbinded:"Unbinded",verified:"Verified",approved:"Approved",enabled:"Enabled",disabled:"Disabled",reseted:"reseted",createPersonalGroupNotice:"At Least One Group is Required",emailCodeHasSendNewEmail:"A E-mail Contains Validation Code Has Sent To Your E-mail Box",phoneCodeHasSendNewPhone:"A Text Message Contains Validation Code Has Sent To Your Cellphone",finishIdentityVerify:"Input Password To Verify Your Identity",unbindEnterCodeFeverPassword:"Input Password To Confirm",scanQrcodeBind:"Scan QR Code To Bind Your Account By Using WeChat App",theAccountUsedWechat_N:'This Account Has Binded Account Named "{n}", Are Your Confirm To Substitute It?',rebindWechat:"Cancel",unbindAllProduct:"Unbind All Pgyer's Products",mfaGuide:"Use Apps with MFA Feature to Scan the Following QRCode, Input Two Different MFA Code And Press Save Button to Setup a New MFA Device. You Can Search MFA in Any App Merket to Download a MFA App You Trusted in.",inputEmailToAddMemeber:"Input Email To Add A Member",groupMemberCanControlRepositoryNotice:"Members In Group Can Also Access This Repositoy Using Same Role Privilige In Group",repositoryChangeCreatorNotice:"Sure To Change Creator ? Both New And Old Creator Will Be Owner Of This Repository",repositoryChangeURLNotice:"Sure To Change URL ? Both Git Client And Web Wiil Not Respond For Old URL, You May Wish To Reset Remote Via git remote Command",repositoryDeleteRepositoryNotice:"Sure To Delete This Repositoy ? Your Repository Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.",repositoryDeleteRepositoryConfirmNotice:"This Repository Will Be Deleted, Are You Sure About This ? Your Repository Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.",groupChangeCreatorNotice:"Sure To Change Creator ? Both New And Old Creator Will Be Owner Of This Repository, Notice That You Can Not Change Creator Of Default Group",groupChangeURLNotice:"Sure To Change URL ? Both Git Client And Web Wiil Not Respond For Old URL, You May Wish To Reset Remote Via git remote Command",groupDeleteRepositoryNotice:"Sure To Delete This Group ? Your Group And Related Repositoies Will NOT BE AVAILABLE Any More, All Record Related To This Group Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.",groupDeleteRepositoryConfirmNotice:"This Group Will Be Deleted, Are You Sure About This ? Your Group And Related Repositoies Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.",inputCommitFilter:"Input To Filter",repositoryEmpty:"Empty Repository",displaySource:"View Source",displayRendereFile:"View Rendered",fileContentEmpty:"Empty File",fileContentOversize:"File Size Exceed limitation, Check It Out Localy",fileTypeNotSupport:"Binary File Can Not Shown",diffFileToMany:" The maximum number of files allowed to be displayed is exceeded, please check locally",createNewRepository:"create a new repository on the command line",pushRepository:"push an existing repository from the command line",_S_empty:"Please Input {s}",repository_S_empty:"No {s} In Repository",repositoryBranchEmpty:"Branch List Empty",repositoryTagEmpty:"Tag List Empty",mergeRequestEmpty:"Empty Merge Request List",addNewCommit:"Add New Commit",alreadyMergeRequest:"Merged",alreadyCloseRequest:"Close",assignReviewerTitle:"Assigne Reviewer(Only One Person Can Be Assigned)",selectReviewer:"Select Reviewer",notSelectReviewers:"No Assign Reviewer",deleteReviewer:"Delete Reviewer",notApprove:"Not Approve",assign_N_M_Reviewer:"Assign {n} As A Reviewer For Merge Request {m}",delete_M_N_Reviewer:"Removed Reviewer {n} Of Merge Request {m}",review_M_Reviewer:"Approve Changes Of Merge Request {m}",_S_listEmpty:"Empty {s} List",repositoryListEmptyNotice:"Create A Repositoy To Explore",groupListEmptyNotice:"Create A Group To Manage Your Repositories",input_S_name:"Input {s} To Filter",confirmDelete:"Delteing {s}?",jumpWithLink:"Go To This Link",noRepositoryFind:"No view permission",noCommitRecord:"No Commit Record",plsInputInvitedEmail:"Input E-mail to Invite",repositoryDeleteTipFirst:"All Recored Related To This Repositoy Will Also Be DELTED, Include Source, Merge Request Record etc.",repositoryDeleteTipSecond:"A Delted Repository CAN NOT Recover!",inputMergeCommit:"Input Commit Message, Check Squash When Needed.",selectDifferentBranch:"Can Not Merge INTO Source Itself",mergeConflictTitle:"Conflict Found In Merge Progeress, Follows Instructions Below To Resolve Conflict Localy ",mergeConflictTip1:"1: Pull Target Branch To Local",mergeConflictTip2:"2: Check File Diff",mergeConflictTip3:"3: Resolve Conflicts And Merge",mergeConflictTip4:"4 : Push Changes To Remote",from_S_Merge_S:"Request Merge From {s1} To {s2}",defaultGroupReqiured:"A Group Is Required",defaultGroupReqiuredDescription:"At Least One Group Is Required To Create Repository",someVersion:"Related Version",backHome:"Homepage",inputSSHKEYContent:"Please Enter The SSH Key",inputSSHKEYName:"Please Enter SSH Key Name",defaultBranchDescription:"The Default Branch Is Regarded As The Basic Branch In The Code Base And Is The Target Branch For All Clones, Code Submissions, And Merge Requests",settingToDefaultBranch:"Set As Default Branch",updateDefaultBranch:"Modify The Default Branch",settingDefaultBranch:"Please Set The Default Branch",protectedBranchDescription:"Protecting Branches Will Ensure Branch Security, And Roles Other Than Owner Are Not Allowed To Be Pushed And Deleted Forcibly",protectedBranchRuleEmpty:"There Are No Protection Branch Rules At Present, Please Create A New Protection Branch Rule To Protect Branch Safety",inputBranchOrRegexp:"Please Enter The Branch Name or Universal Rules",createProtectedBranchRule:"New Protection Branch Rule",updateProtectedBranchRule:"Modify Protection Branch Rule",deleteProtectedBranchRule:"Delete Protection Branch Rule",noBodyAllow:"Nobody",primaryEmail:"Primary E-mail",primaryEmailDescription:"The Email Address Of The Current CodeFever Account, Used To Receive Relevant Notifications, Password Reset, Login And Other Operations",updatePrimaryEmail:"Change Primary E-mail",myEmail:"My E-mail",myEmailDescription:"Multi-mailbox Function Is Used For The Same User To Have Multiple Different Mailboxes For Code Submission, The System Can Identify And Create An Association Relationship",addEmail:"Add E-mail",contactedEmail:"Mailbox Linked",shouldValidation:"To Be Verified",resendEmail:"Resend Mail",differenceBetweenHTTPSAndSSH:"HTTPS or SSH, Which one should I choose ?",generateAndSetSSHKey:"Please Confirm The SSH Key Has Been Generated And Set Porperly On CodeFever.",itsMyEmail:"It's My Email",notificationSystem:"System Message",notificationMention:"Mentioned Me",tagRead:"Mark As Read",tagAllRead:"Mark All As Read",deleteAllReaded:"Delete All Read User Messages",mergeRequestNotification:"Notification Of Merge Request",mergeRequestNotificationDesc:"Can Receive And Request Notifications Issued By Warehouse Members, Developers And Above Members Can Receive",emailNotification:"E-mail notification",emailNotificationDesc:"The Message In The Notification Settings Will Be Sent To Your Registered Mailbox.",searchByName:"Search by name or email",userStatusEnabled:"Enable confirmation",userStatusDisabled:"Disable confirmation",userStatusEnabled_N:'Confirm to enable user "{n}"?',userStatusDisabled_N:'Confirm to disable user "{n}"?',closeMFA:"Turn off 2FA certification",closeMFAConfirm:"Close 2FA authentication confirmation",closeMFA_N:'Are you sure to turn off 2FA authentication for user "{n}"?',resetPassword:"Reset Password",reset_N_Password:'Reset user "{n}" password',searchRepository:"Search repository",searchGroup:"Sreach group",roleToOwner:"Designated as owner",setGroupOwner_S:"Are you sure to specify {s} as the owner of the group?",setAdministrator:"Set as administrator",cancelAdministrator:"Cancel an administrator",memberRemoveConfirm:"Member delete confirmation",successAddUser:"User added successfully",webhookEventsNeed:"Please select events",webhookListEmpty:"Webhook List Empty",useTime_n:"Completed in {n} seconds",show_n_record:"Show latest {n} records"}),{},{__namespace__:"message"}),cn=Object(y.a)(Object(y.a)({},{_S_empty:"Please Input {s}",_S_retype:"Please Retype {s}",_S_has_illegal_character:"Only Combination of Alphanumeric '_' '-' '.' Allowed in {s}",_S_notChoose:"Please Choose {s}",_S_duplicate:"{s} Duplicated",_S_invalid:"{s} Invalid",_S_notFound:"{s} Not Found",noMoreThan_N_characters:"No More{n} Characters",within_N1_to_N2_characters:"Between {n1} to {n2} Characters",only_N1_or_N2_characters:"Only {n1} Or {n2} Characters Allowed",requireCombinationOfCharactersNumbersAndUnderscore:"Only Combination Of Numberic, Underscore And Character Allowd",input_S_placeholder:"Please Input {s}, Only Numberic, Underscore, strike, dot And Character Allowed",inputNotSame:"Doesn't Match The Retype Field",inputSame:"Same Input",canNotAddCreatorAsMember:"Can Not Add Creator As Member",createRepositoryFail:"Create Repository Fail, Please Retry Later",createGroupFail:"Create Group Fail, Please Retry Later",createBranchFail:"Create Branch Fail, Please Retry Later",createTagFail:"Create Tags Fail, Please Retry Later",createMergeRequestFail:"Create Merge Request Fail, Please Retry Later",createProtectedBrancheRuleFail:"Failed To Create Protection Branch Rule, Please Retry Later",AddFail:"Fail To Add, Please Retry Later",updateFail:"Fail To Update, Please Retry Later",removeFail:"Fail To Remove, Please Retry Later",deleteFail:"Fail To Delete, Please Retry Later",verifyFail:"Fail To Verify, Please Retry Later",forkRepositoryFail:"Fail To Fork, Please Retry Later",getFileFail:"Fail To Get File Content, Please Retry Later",getEmailCodeFail:"Fail To Get Email Validation Code, Please Retry Later",getPhoneCodeFail:"Fail To Get Phone Number Validation Code, Please Retry Later",change_S_Fail:"Fail To Update {s}, Please Retry Later",waitToRetry:"Connection Down, Please Retry Later",canNotChangeOwnerOfUserGroup:"Creator Of Default Group CAN NOT Be Modified",canNotDeleteUserGroup:"Default Group CAN NOT Be Deleted",canNotDeleteNonEmptyGroup:"Group CAN NOT Be Deleted When Contains Repository",mergeRequestExists:"Same Merge Request Exsits",mergeFail:"Fail To Merge, Please Retry Later",reviewedCanNotAssign:"Can\u2019t Replace The Reviewer",reviewedCanNotDelete:"Cannot Delete Reviewers Who Have Reviewed The Code",branchProteced:"Can Not Perform Merge On Proteced Branch",userNotReview:"Cannot Be Merged, And The Reviewers Have Not Reviewed",inputNewEmail:"Input New Email",bindEmailFirst:"An Login Email Is Required When Bind Account Of Other Platform",wechatHasbound:"This Account Has Been Used, Please Select Another Account And Retry",sshKeyDuplicate:"This SSH Key has already been added, or in another user"}),{},{__namespace__:"message.error"}),ln=Object(y.a)(Object(y.a)({},{createdGroup:"Create A Group",updateGroup_S_Avator:"Update Avatar Of Group {s}",updateGroup_S_Name:"Update Name Of Group {s}",updateGroup_S_Description:"Update Description Of Group {s}",addGroup_S_Memeber:"Add New Member To Group {s}",changeGroup_S_MemebrRole:"Update Role Of A Member In Group {s}",removeGroup_S_Memebr:"Remove A Member In Group {s}",setGroup_S_Creator:"Set A Member As Creator Of Group {s}",setGroup_S_URL:"Change URL Of Group {s}",createdRepository:"Create A Repository",deleteRepository:"Delete A Repository",forkRepository:"Frok And Create A Repository",updateRepository_S_Avator:"Update Avatar Of Repository {s}",updateRepository_S_Name:"Update Name Of Repository {s}",updateRepository_S_Description:"Update Description Of Repository {s}",pushTo_S_Branch:"Push Commits To Repository {s}",pushTo_S_NewBranch:"Push Branches To Repository {s}",created_S_NewBranch:"Add Branch In Repository {s}",delete_S_Branch:"Delete Branche In Repository {s}",update_S_DefaultBranch:"Modified The Default Branch Of Repository {s}",created_S_ProtectedBranchRule:"Create Protection Branch Rule in Repository {s}",update_S_ProtectedBranchRule:"Modified The Protection Branch Rule Of Repository {s}",delete_S_ProtectedBranchRule:"Removed Protection Branch Rule For Repository {s}",pushTo_S_Tag:"Push Commits To A Tag Of Repository {s}",pushTo_S_NewTag:"Push Tags To Repository {s}",created_S_NewTag:"Create A Tag In Repository {s}",delete_S_Tag:"Delete A Tag In Repository {s}",addRepository_S_Memeber:"Add A Member To Repository {s}",changeRepository_S_MemebrRole:"Set Role To A Memebre In Repository {s}",removeRepository_S_Memebr:"Remove Members in Repository {s}",setRepository_S_Creator:"Set A Member As Creator Of Repository {s}",setRepository_S_URL:"Change URL Of Repository {s}",open_S_MergeRquest:"Open A Merge Request In Repository {s}",close_S_MergeRquest:"Close A Merge Request In Repository {s}",merge_S_MergeRquest:"Merged A Merge Request In Repository {s}",assign_S_Reviewer:"Assign Reviewer In Repository {s}",delete_S_Reviewer:"Delete Reviewer In Repository {s}",review_S_Reviewer:"Approve Changes In Repository {s}",create_S_Webhook:"Create Webhook In Repository {s}",update_S_Webhook:"Update Webhook In Repository {s}",delete_S_Webhook:"Delete Webhook In Repository {s}"}),{},{__namespace__:"message.activity"}),pn=Object(y.a)(Object(y.a)({},{repository:"Repository",repository_pl:"Repositories",group:"Group",group_pl:"Groups",file:"File",file_pl:"Files",commit:"Commit",commit_pl:"Commits",mergeRequest:"Merge Request",mergeRequest_pl:"Merge Requests",branch:"Branch",branch_pl:"Branches",webhook:"Webhook",webhook_pl:"Webhooks",tag:"Tag",tag_pl:"Tags",member:"Member",member_pl:"Members",activity:"Activity",activity_pl:"Activities",setting:"Setting",setting_pl:"Settings",SSHKey:"SSH Key",SSHKey_pl:"SSH Keys",user:"User",user_pl:"Users",fileTree:"File Tree",merge:"Merge",data:"Data",clone:"Clone",fork:"Fork",limitation:"Limitation",role:"Role",team:"Team",code:"Source",hash:"Hash",time:"Time",number:"Count",line:"Line",guest:"Guest",reporter:"Reporter",developer:"Developer",maintianer:"Maintainer",owner:"Owner",parentNode:"Parent Node"}),{},{__namespace__:"term"}),dn=Object(y.a)(Object(y.a)({},pn),{},{CodeFever:"CodeFever",ID:"ID",user:"User",name:"Name",creator:"Creator",reviewer:"Reviewer",administrator:"Administrator",title:"Title",description:"Description",origin:"Origin",source:"Source",target:"Target",url:"URL",ssh:"SSH",slug:"Slug",prefix:"Prefix",avatar:"Avatar",icon:"Icon",joinedAt:"Joined In",unknown:"Unknown",all:"All",detail:"Detail",language:"Language",webhook:"Webhook",log:"Log",httpHeaders:"Headers",httpBody:"Body",httpPayload:"Payload",browser:"View",expand:"Expand",full:"Full",invite:"Invite",times:"Times",before:"Before",new:"New",add:"Add",open:"Open",close:"Close",save:"Save",create:"Create",update:"Update",remove:"Remove",modification:"Modify",delete:"Delete",and:"And",ok:"OK",cancel:"Cancel",copy:"Copy",push:"Push",merge:"Merge",chose:"Choose",show:"Show",list:"List",copied:"Copied",contain:"Contain",request:"Request",response:"Response",bind:"Bind",unbind:"Unbind",replace:"Replace",sort:"Sort",manage:"Manage",protected:"Protected",operating:"Operating",approve:"Approve",enable:"Enable",disable:"Disable",last:"Latest",default:"Default",active:"Active",inactive:"Inactive",path:"Path",email:"E-mail",password:"Password",oldPassword:"Current Password",newPassword:"New Password",mfaCode:"MFA Code",twoFactorAuthentication:"Two-Factor Authentication",emailCode:"Validation Code",phoneCode:"Validation Code",phone:"Cellphone",china:"China",company:"Company",job:"Job",wechat:"Wechat",credential:"Credential",login:"Sign In",logout:"Sign Out",next:"Next",prev:"Previous",mergeMessage:"Merge Message",submit:"Submit",rule:"Rule",allow:"Allow",status:"Status",history:"History",notification:"Notification",learnMore:"Learn More",myServiceTicket:"My Service Tickets",getHelp:"Get Help",help:"Help",result:"Result",success:"Success",failure:"Failure",doc:"DOC",adminArea:"Admin Area",edit:"Edit",confirm:"Confirm"}),un=Object(y.a)(Object(y.a)({},dn),{},{__namespace__:"phrase"}),mn=Object(y.a)(Object(y.a)(Object(y.a)({},pn),un),{},{dashboard:"Dashboard",general:"General",advanced:"Advanced",profile:"Profile",mail:"E-mails"}),hn=Object(y.a)(Object(y.a)({},mn),{},{__namespace__:"menu"}),gn=" ",bn=Object(y.a)(Object(y.a)(Object(y.a)({},un),pn),{},{update_S_:"Modify {s}",retryAfter_N_seconds:"Retry After {n} Seconds",userAvatar:[un.user,un.avatar].join(gn),userName:[un.user,un.name].join(gn),getEmailCode:["Get",un.emailCode].join(gn),getPhoneCode:["Get",un.phoneCode].join(gn),mostSeen:"Most Seen",loginCredential:[un.login,un.credential].join(gn),CodeFeverPassword:[un.CodeFever,un.password].join(gn),wechatBind:[un.wechat,un.bind].join(gn),unbind_P:"Unbind {p}",repositoryID:[pn.repository,un.ID].join(gn),repositoryName:[pn.repository,un.name].join(gn),repositoryDescription:[pn.repository,un.description].join(gn),repositoryURL:[pn.repository,un.url].join(gn),repositorySlug:[pn.repository,un.slug].join(gn),repositoryMember:[pn.repository,pn.member].join(gn),newRepository:[un.new,pn.repository].join(gn),forkRepository:[pn.fork,pn.repository].join(gn),unknownRepository:[un.unknown,pn.repository].join(gn),allRepository:[un.all,pn.repository].join(gn),deleteRepository:[un.delete,pn.repository].join(gn),groupID:[pn.group,un.ID].join(gn),groupName:[pn.group,un.name].join(gn),groupDescription:[pn.group,un.description].join(gn),groupURL:[pn.group,un.url].join(gn),groupSlug:[pn.repository,un.slug].join(gn),groupMember:[pn.group,pn.member].join(gn),newGroup:[un.new,pn.group].join(gn),unknownGroup:[un.unknown,pn.group].join(gn),deleteGroup:[un.delete,pn.group].join(gn),inviteMember:[un.invite,pn.member].join(gn),removeMember:[un.remove,pn.member].join(gn),forkFrom_S:[pn.fork,"From: {s}"].join(gn),updateFrom_S1_To_S2:["Update From {s1} To {s2}"].join(gn),repositoryAvatar:[pn.repository,un.icon].join(gn),groupAvatar:[pn.group,un.icon].join(gn),basicInfo:"Basic Info",newPasswordConfirm:[un.confirm,un.newPassword].join(gn),security:"Security",setupNewMFADevice:"Setup New MFA Device",changeMFADevice:"Change MFA Device",removeMFADevice:"Remove MFA Device",mfaCode1:["First",un.mfaCode].join(gn),mfaCode2:["Second",un.mfaCode].join(gn),commitTime:[un.commit,un.time].join(gn),copyPath:[un.copy,un.path].join(gn),copyHash:[un.copy,pn.hash].join(gn),copyCode:[un.copy,pn.code].join(gn),lastCommit:[un.last,pn.commit].join(gn),lastUpdate:[un.last,un.update].join(gn),updateCreator:[un.update,un.creator].join(gn),updateRepositoryURL:[un.update,pn.repository,un.url].join(gn),updateGroupURL:[un.update,pn.group,un.url].join(gn),webhookSetting:[pn.webhook,pn.setting].join(gn),createWebhook:[un.create,pn.webhook].join(gn),updateWebhook:[un.update,pn.webhook].join(gn),deleteWebhook:[un.delete,pn.webhook].join(gn),contentType:"Content Type",webhookSecret:"Secret Key",webhookTrigger:"Trigger Event",pushTrigger:"Just the push event",customeTrigger:"Customized",webhookList:"Webhook List",webhookLog:[un.webhook,un.log].join(gn),createOrigin:[un.create,un.origin].join(gn),choseCreateOrigin:[un.chose,un.create,un.origin].join(gn),tagDescription:[pn.tag,un.description].join(gn),tagName:[pn.tag,un.name].join(gn),branchName:[pn.branch,un.name].join(gn),defaultBranch:[un.default,pn.branch].join(gn),protectedBranch:[un.protected,pn.branch].join(gn),branchRule:[un.branch,un.rule].join(gn),allowPush:[un.allow,un.push].join(gn),allowMerge:[un.allow,un.merge].join(gn),noData:["No",pn.data].join(gn),newBranch:[un.new,pn.branch].join(gn),newTag:[un.new,pn.tag].join(gn),deleteBranch:[un.delete,pn.branch].join(gn),deleteTag:[un.delete,pn.tag].join(gn),updateTime:[un.update,pn.time].join(gn),updatedIn:"Updated At",editIn:"Edited At",expandFullFile:[un.expand,un.full,un.file].join(gn),showDiffOnly:"Show Diff",codeDiff:"Diff",requestCreated:"Created At",requestClosed:"Closed At",requestMerged:"Merged At",createRepository:["Please",un.create,pn.repository].join(gn),commitActivity:[pn.commit,un.activity].join(gn),mergeRequestActivity:[pn.mergeRequest,un.activity].join(gn),memberActivity:[pn.member,un.activity].join(gn),addSSHKey:[un.add,pn.SSHKey].join(gn),emailManage:[un.email,un.manage].join(gn),memberManage:[pn.member,un.manage].join(gn),primaryEmail:"Primary E-mail",contactEmail:"List Of Associated Mailboxes",SSHKeyManage:[pn.SSHKey_pl,un.manage].join(gn),notificationCenter:"Notification Center",notificationReceiveStatus:"Receive Notification Status",unread:"Unread",fileModification:[pn.file,un.modification].join(gn),fileModificationList:[un.modification,pn.file,un.list].join(gn),lineAdd:[pn.line,un.add].join(gn),lineDelete:[pn.line,un.delete].join(gn),browserFile:[un.browser,un.file].join(gn),browserUnchangedFIle:[un.browser,un.modification,un.before,un.file].join(gn),commitHash:[pn.commit,pn.hash].join(gn),allFiles:[un.all,un.file].join(gn),openFileTree:[un.open,pn.fileTree].join(gn),closeFileTree:[un.close,pn.fileTree].join(gn),requestMerge:[un.request,un.merge].join(gn),createMergeRequest:[un.create,pn.mergeRequest].join(gn),closeMergeRequest:[un.close,pn.mergeRequest].join(gn),more:"More",noMore:"No More",processing:"Processing",IJoined:"Joined",ICreated:"Created By Me",dangerOperation:"Dangerous Action",dangerOperationConfirm:"Confirm Dangerous Action",compareBranch:"Compare and Continue",lastModified:"Last Modified",lastModified_N:"{n}{n, plural, =1 {st}\n=2 {nd}\n=3 {rd}\nother {th}} Revision",openMergeRequest:[un.open,pn.mergeRequest].join(gn),modificationBranch:[un.modification,pn.branch].join(gn),sourceBranch:[un.source,pn.branch].join(gn),targetBranch:[un.target,pn.branch].join(gn),repositoryAdvancedSetting:"Repository Advanced Settings",branchSetting:"Branch Settings",groupAdvancedSetting:"Group Advanced Settings",memberLimitation:[pn.member,pn.limitation].join(gn),modificationLimitation:[un.modification,pn.limitation].join(gn),roleID_1:pn.guest,roleID_2:pn.reporter,roleID_3:pn.developer,roleID_4:pn.maintianer,roleID_5:pn.owner,yourself:"It's you",enabledMFA:"2FA Enabled",disabledMFA:"2FA Disabled",blocked:"Blocked",createTime:"Created Time",addUser:"Add user",statistic:"Statistic",systemResources:"System Resources",diskUsgae:"Disk Usgae",serviceStatus:"Service Status",host:"Host",senderName:"Sender Name",senderAddress:"Sender Email Address",register:"Register",allowRegister:"Allow Register",urlPrefix:[un.url,un.prefix].join(gn),sshPrefix:[un.ssh,un.prefix].join(gn),support:"Technical Support",feedback:"Submit Feedback",contribute:"Contribute to CodeFever Community",about:"About CodeFever Community",pushEvent:"Push Event",changeMemberRole:[un.modification,pn.member,pn.role].join(gn),createProtectedBranchRule:"Create protected branch rule",changeProtectedBranchRule:"Update protected branch rule",removeProtectedBranchRule:"remove protected branch rule",reviewReviewer:"Review Code",_N_repository:"{n} {n, plural, =0 {"+pn.repository+"}\n=1 {"+pn.repository+"}\nother {"+pn.repository_pl+"}}",_N_commit:"{n} {n, plural, =0 {"+pn.commit+"}\n=1 {"+pn.commit+"}\nother {"+pn.commit_pl+"}}",_N_branch:"{n} {n, plural, =0 {"+pn.branch+"}\n=1 {"+pn.branch+"}\nother {"+pn.branch_pl+"}}",_N_tag:"{n} {n, plural, =0 {"+pn.tag+"}\n=1 {"+pn.tag+"}\nother {"+pn.tag_pl+"}}",_N_byte:"{n} {n, plural, =0 {Byte}\n=1 {Byte}\nother {Bytes}}",_N_mergeRequest:"{n} {n, plural, =0 {"+pn.mergeRequest+"}\n=1 {"+pn.mergeRequest+"}\nother {"+pn.mergeRequest_pl+"}}",_N_member:"{n} {n, plural, =0 {"+pn.member+"}\n=1 {"+pn.member+"}\nother {"+pn.member_pl+"}}"}),fn=Object(y.a)(Object(y.a)({},bn),{},{__namespace__:"label"}),jn=Object(y.a)(Object(y.a)({},{"mergeRequest:create":"{user} Open Merge Request: !{number} {title}","mergeRequest:close":"{user} Close Merge Request: !{number} {title}","mergeRequest:merge":"{user} Merge The Merge Request: !{number} {title}","mergeRequestReviewer:create":"{user} Assign You As The Reviewer For The Merge Request !{number} {title}","mergeRequestReviewer:review":"{user} Approve Changes Of Merge Request !{number} {title} "}),{},{__namespace__:"notification"});function vn(e){switch(e){case"zh-cn":return V(Ji,Ki,Zi,$i,Yi,Qi,tn,nn,sn);case"en-us":return V(Ji,on,ln,cn,pn,un,hn,fn,jn)}}var On=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props.currentLanguage,t=Object(b.a)({}),a=Object(b.a)(S(t));return Object(oe.jsx)(f.a,{theme:a,children:Object(oe.jsx)(v.a,{utils:j.a,locale:O.a,children:Object(oe.jsx)(g.a,{locale:e,messages:vn(e),children:Object(oe.jsxs)("div",{className:"app-root",children:[Object(oe.jsx)(Fi,{}),Object(oe.jsxs)("div",{className:"app-content",ref:this.appContent,children:[Object(oe.jsx)(Mi,{}),Object(oe.jsx)(bi,{}),Object(oe.jsx)(qi,{}),Object(oe.jsx)(Vi,{}),Object(oe.jsx)(Gi,{})]})]})})})})}}]),a}(i.a.Component),yn=Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}))(On),xn=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){return Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/",component:yn}),Object(oe.jsx)(h.a,{exact:!0,path:"/userInfo",component:yn}),Object(oe.jsx)(h.a,{exact:!0,path:"/createApp",component:yn}),Object(oe.jsx)(h.a,{path:"/groups/:groupName([A-Za-z0-9_]{5,})",component:yn}),Object(oe.jsx)(h.a,{path:"/groups",component:yn}),Object(oe.jsx)(h.a,{path:"/repositories",component:yn}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",component:yn}),Object(oe.jsx)(h.a,{path:"/mergerequests",component:yn}),Object(oe.jsx)(h.a,{path:"/settings",component:yn}),Object(oe.jsx)(h.a,{path:"/admin",component:yn})]})}}]),a}(i.a.Component),Sn=Object(h.f)(xn);var Cn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;e.repositoryList=G(e.repositoryList,[]),e.repositoryListPending=G(e.repositoryListPending,!0),e.groupList=G(e.groupList,[]),e.groupListPending=G(e.groupListPending,!0),e.currentRepositoryKey=G(e.currentRepositoryKey,""),e.currentRepositoryError=G(e.currentRepositoryError,!1),e.currentRepositoryConfig=G(e.currentRepositoryConfig,{}),e.currentGroupKey=G(e.currentGroupKey,""),e.currentGroupConfig=G(e.currentGroupConfig,{}),e.currentUserInfo=G(e.currentUserInfo,{});var a=window.localStorage.getItem("lang");return a||(a=navigator.language.toLowerCase()||navigator.userLanguage.toLowerCase(),["zh-cn","en-us"].indexOf(a)<0&&(a="zh-cn"),window.localStorage.setItem("lang",a),e.currentLanguage=a),e.currentLanguage=G(e.currentLanguage,a),t.type.match(/^data\./)?("data.repositoryList.update"===t.type?(e.repositoryList=t.data,e.repositoryListPending=!1):"data.groupList.update"===t.type?(e.groupList=t.data,e.groupListPending=!1):"data.currentRepositoryKey.update"===t.type?e.currentRepositoryKey=t.data:"data.currentRepositoryError.update"===t.type?e.currentRepositoryError=t.data:"data.currentRepositoryConfig.update"===t.type?e.currentRepositoryConfig=t.data:"data.currentGroupKey.update"===t.type?e.currentGroupKey=t.data:"data.currentGroupConfig.update"===t.type?e.currentGroupConfig=t.data:"data.currentUserInfo.update"===t.type?e.currentUserInfo=t.data:"data.currentLanguage.update"===t.type&&(e.currentLanguage=t.data,window.localStorage.setItem("lang",t.data)),Object(y.a)({},e)):Object(y.a)({},e)};var Nn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return e.expandStatus=G(e.expandStatus,!0),t.type.match(/^drawer\./)?("drawer.expandStatus.toggle"===t.type?e.expandStatus=!e.expandStatus:"drawer.expandStatus.close"===t.type?e.expandStatus=!1:"drawer.expandStatus.open"===t.type&&(e.expandStatus=!0),Object(y.a)({},e)):Object(y.a)({},e)};var Rn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(e.notificationCount=G(e.notificationCount,0),e.notificationBody=G(e.notificationBody,{}),e.askHandleStatus=G(e.askHandleStatus,!1),e.confirmation=G(e.confirmation,{open:!1,title:"",description:"",accept:function(){},reject:function(){},queueList:[],eventCount:0}),e.notificationOpenStatus=G(e.notificationOpenStatus,!1),!t.type.match(/^notification\./))return Object(y.a)({},e);if("notification.message.add"===t.type?(e.notificationCount++,e.notificationBody=t.data):"notification.message.change"===t.type?e.notificationBody=t.data={}:"notification.askhandle.status"===t.type&&(e.askHandleStatus=t.data),"notification.confirmation.popup"===t.type?(e.confirmation.open=!0,e.confirmation.title=t.data.title,e.confirmation.description=t.data.description,e.confirmation.accept=t.data.accept||function(){return!0},e.confirmation.reject=t.data.reject||function(){return!0}):"notification.confirmation.close"===t.type&&(e.confirmation.eventCount++,e.confirmation.open=!1,e.confirmation.accept=function(){return!0},e.confirmation.reject=function(){return!0}),"notification.confirmation.add"===t.type)e.confirmation.eventCount++,e.confirmation.queueList.push(t.data);else if("notification.confirmation.remove"===t.type){e.confirmation.eventCount++;var a=q(e.confirmation.queueList,"key",t.data.key);"number"===typeof a&&delete e.confirmation.queueList[a]}else if("notification.confirmation.consume"===t.type&&e.confirmation.queueList.length&&!e.confirmation.open){e.confirmation.eventCount++;var r=e.confirmation.queueList.shift();e.confirmation.open=!0,e.confirmation.title=r.data.title,e.confirmation.description=r.data.description,e.confirmation.accept=r.data.accept||function(){return!0},e.confirmation.reject=r.data.reject||function(){return!0}}return"notification.notificationOpenStatus.toggle"===t.type?e.notificationOpenStatus=!e.notificationOpenStatus:"notification.notificationOpenStatus.open"===t.type?e.notificationOpenStatus=!0:"notification.notificationOpenStatus.close"===t.type&&(e.notificationOpenStatus=!1),Object(y.a)(Object(y.a)({},e),{},{confirmation:Object(y.a)(Object(y.a)({},e.confirmation),{},{queueList:Object(T.a)(e.confirmation.queueList)})})},Mn=Object(c.a)({DataStore:Cn,DrawerStates:Nn,NotificationStates:Rn}),wn=Object(c.b)(Mn);s.a.render(Object(oe.jsx)(l.a,{store:wn,children:Object(oe.jsx)(o.a,{basename:"/",children:Object(oe.jsx)(Sn,{})})}),document.getElementById("root"))}})); +//# sourceMappingURL=main.fe6c2de7.js.map \ No newline at end of file diff --git a/www/view/build/static/js/main.04fdcbff.js.map b/www/view/build/static/js/main.fe6c2de7.js.map similarity index 89% rename from www/view/build/static/js/main.04fdcbff.js.map rename to www/view/build/static/js/main.fe6c2de7.js.map index c5da11b..e581410 100644 --- a/www/view/build/static/js/main.04fdcbff.js.map +++ b/www/view/build/static/js/main.fe6c2de7.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/bootstrap","env.js","webpack:///./src/assets/styles/App.styl?eef1","assets/styles/App.styl","config/colors/theme1.js","config/Constants.js","config/UAC.js","config/Group.js","helpers/FilterGenerator.js","helpers/VaribleHelper.js","data_providers/main.js","data_providers/UserData.js","helpers/EventGenerator.js","helpers/ErrorCodeParser.js","helpers/NetworkHelper.js","helpers/ValidatorGenerator.js","components/view/unit/SetEmail.js","components/view/unit/SetUserInfo.js","components/view/UserInfo.js","components/unit/ShowHelper.js","components/unit/SSHKeyItem.js","components/unit/TableList.js","components/view/UserSettingSSHKey.js","components/unit/SquareIconButton.js","components/view/UserSettingEmail.js","components/unit/AvatarUploader.js","components/view/UserSettingGeneral.js","components/unit/InlineMarker.js","components/view/UserSettingNotification.js","data_providers/AdminData.js","components/unit/NumbericDashboard.js","components/view/admin/Dashboard.js","components/unit/TabHeader.js","components/view/admin/Users.js","components/unit/FormattedTime.js","components/view/admin/Groups.js","components/view/admin/Repositories.js","components/view/admin/Settings.js","components/unit/RepositoryListItem.js","components/unit/EmptyListNotice.js","components/unit/GroupDashboard.js","components/view/RepositoryList.js","data_providers/RepositoryData.js","components/view/NewRepository.js","components/view/NewRepositoryFork.js","components/view/RepositorySettingGeneral.js","components/view/RepositorySettingBranch.js","config/WebhookEventConfig.js","components/unit/TitleList.js","components/view/unit/WebhookLog.js","components/view/RepositorySettingWebhook.js","components/unit/Member.js","components/unit/MemberItem.js","components/unit/MemberList.js","components/view/RepositorySettingMembers.js","data_providers/GroupData.js","components/view/RepositorySettingAdvanced.js","components/unit/GroupCard.js","components/view/GroupList.js","components/view/NewGroup.js","components/view/GroupSettingGeneral.js","components/view/GroupSettingMembers.js","components/view/GroupSettingAdvanced.js","config/Activity.js","helpers/withScrollTrigger.js","components/unit/ActivityItem.js","components/view/ActivityList.js","components/unit/RepositoryDashboard.js","components/unit/RevisionSelector.js","components/unit/CodeLine.js","components/unit/SmartLink.js","components/unit/CommitHashChip.js","components/unit/CommitItem.js","components/unit/CodeViewer.js","components/unit/ObjectViewer.js","components/unit/RepositoryEmpty.js","components/view/FileTree.js","components/view/CommitList.js","components/unit/RefFilter.js","components/unit/RefList.js","components/view/BranchList.js","components/view/TagList.js","components/view/CreateTag.js","components/view/CreateBranch.js","components/view/unit/CommitContainRef.js","components/unit/CodeDiffViewer.js","components/unit/ObjectDiffViewer.js","components/unit/FileDiffExpansionPanel.js","components/unit/FileBrowser.js","components/view/FileDiffDetail.js","components/view/CommitDetail.js","components/unit/MergeRequestReviewers.js","components/unit/MergeRequestItem.js","components/view/MergeRequest.js","components/view/CreateMergeRequest.js","components/unit/MergeRequestDiff.js","components/view/MergeRequestDetail.js","routes/MainRoutes.js","components/Main.js","components/unit/UserOption.js","components/unit/LanguageSelect.js","components/unit/GroupRepositoryMenu.js","components/Header.js","components/DrawerList.js","config/DrawerConfig.js","components/Drawer.js","components/Comformation.js","components/Notification.js","components/NotificationBars.js","lang/Lang.js","lang/zh-cn/Message.js","lang/zh-cn/ErrorMessage.js","lang/zh-cn/ActivityMessage.js","lang/zh-cn/Term.js","lang/zh-cn/Phrase.js","lang/zh-cn/Menu.js","lang/zh-cn/Label.js","lang/zh-cn/Notification.js","lang/en-us/Message.js","lang/en-us/ErrorMessage.js","lang/en-us/ActivityMessage.js","lang/en-us/Term.js","lang/en-us/Phrase.js","lang/en-us/Menu.js","lang/en-us/Label.js","lang/en-us/Notification.js","helpers/LocaleSelector.js","components/App.js","routes/BaseRoutes.js","reducers/DataStore.js","reducers/DrawerStates.js","reducers/NotificationStates.js","reducers/main.js","index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice","w","__webpack_public_path__","window","location","protocol","host","api","content","default","options","locals","___CSS_LOADER_EXPORT___","makeTheme","originTheme","baseTheme","makePreset","typography","fontFamily","palette","primary","main","caption","fontSize","overrides","MuiInputBase","input","backgroundColor","MuiMenuItem","root","height","spacing","MuiTableCell","borderBottom","border","paddingTop","paddingBottom","textAlign","flexDirection","MuiPaper","pointerEvents","elevation1","boxShadow","elevation2","elevation8","MuiTab","fontWeight","getStaticHost","origin","Constants","commonStatus","normal","delete","obejctDisplayType","unknown","empty","oversize","text","markdown","image","video","obejctDiffDisplayType","infoChange","textChange","imageChange","activityCategory","all","commit","mergeRequest","member","mergeRequestStatus","open","merged","closed","notificationCategory","unRead","system","mention","notificationRefuseType","group","repository","notificationStatus","mr","email","STATIC_VERSION","HOSTS","STATIC_HOST","PGYER_AVATAR_HOST","STATIC_AVATAR_PREFIX","codeFileExtentsions","bat","clj","cljs","cljn","cljc","cljx","coffee","litcoffee","h","cpp","cs","css","go","graphql","htm","xhtm","html","xhtml","ini","java","js","jsx","es","jsm","esm","json","kt","less","lua","md","mysql","pas","perl","pgsql","php","xhp","php3","php4","ps","py","rb","rust","scss","sh","sql","swift","ts","tsx","tsm","vb","xml","yml","Role","NO_PERMISSION","GUEST","REPORTER","DEVELOPER","MAINTAINER","OWNER","NOBODY","PermissionCode","REPO_READ","REPO_PUSH","REPO_REMOVE","REPO_CHANGE_MEMBER","REPO_CHANGE_INFO","MR_READ","MR_PUSH","MR_MERGE","GROUP_CHANGE_MEMBER","GROUP_CREATE_REPO","PermissionConfig","NORMAL","USER","not","filter","and","arguments","reduce","final","or","userGroup","item","type","GroupConfig","normalGroup","id","ID","rule","ids","IDS","some","indexOfEmails","emails","indexOf","names","groupID","groups","groupIDs","groupMember","notGroupMember","deleted","deleteFlag","notDeleted","fork","forkID","forkFrom","forks","forkIDs","nameLikes","keyword","search","fields","field","toLowerCase","creator","userID","owner","creators","userIDs","withPermission","permissionCode","checkPermission","role","withPermissions","permissionCodes","groupName","target","initailizer","varible","defaultValue","undefined","makeFormData","formData","FormData","match","append","replace","keyName","getObjectByProperty","array","porpertyName","index","formatNumber","inputUnit","unitOffset","Math","abs","Number","MAX_VALUE","NaN","round","trim","makeLink","join","composeNamespacedData","__namespace__","tableDataLabelParser","parser","headerRowIndex","map","finalData","p1","countentIndex","UAC","getCodeLanguageType","filename","ext","split","pop","getUserInfo","members","commitEmail","userInfo","FilterGenerator","temporary","icon","getDefaultBranch","currentRepositoryConfig","branches","master","defaultBranch","copyToClipboard","success","el","setTimeout","dom","document","createElement","innerHTML","appendChild","body","select","execCommand","removeChild","DataProvider","method","endpoint","query","queryArray","encodeURIComponent","makeQueryString","appendHeader","localLanguage","localStorage","getItem","fetch","cache","credentials","headers","Accept","redirect","referrer","GET","requestTime","Date","getTime","POST","PUT","DELETE","OPTIONS","APIRequest","getKeyList","addSSHKey","removeSSHKey","setUserData","updateBasicInfo","updatePassword","changeEmail","getMFAData","revokeMFAData","updateMFAData","getCountriesCode","confirmTel","uploadAvatar","getCode","getEmailCode","addCommitEmail","resentCommitEmailCode","deleteCommitEmail","validationCommitEmailCode","notifications","setNotificationRead","deleteNotification","userNotificationSetting","notificationRefused","setGroupOrRepoNotification","Event","NewNotification","message","level","action","Network","statusCode","NewComformation","title","description","accept","reject","consumeComformation","cancelComformation","addComformation","removeComformation","fetchMessage","code","navigator","language","userLanguage","catchError","error","dispatcher","EventGenerator","ErrorCodeParser","getJSONData","response","ok","parseInt","status","responseJson","catch","e","then","href","getTextData","getFile","withEventdispatcher","handler","promise","getHost","userinfo","getSSHHost","ssh","makeSlug","stateValidator","instance","rules","errorFlag","state","passPattern","errorMessage","setState","codeValidator","exceptionCode","props","dispatchEvent","SetEmail","intl","password","showPassword","showCodeInput","emailFocus","passwordFocus","codeBtnDisabled","codeText","formatMessage","getEmailCodeCheckInput","ValidatorGenerator","getEmailCodeCheckResponse","saveEmailCheckInput","saveEmailCheckResponse","currentUserInfo","UserData","NetworkHelper","countDown","time","int","setInterval","clearInterval","update","classes","Grid","xs","container","Typography","variant","component","gutterBottom","TextField","fullWidth","helperText","placeholder","onChange","onFocus","onBlur","Fragment","lg","align","Button","color","onClick","className","pr0","InputProps","endAdornment","disabled","saveData","React","Component","injectIntl","withStyles","theme","paddingRight","minWidth","connect","ownProps","dispatch","event","SetUserInfo","oldData","comData","showBtn","checkInput","label","checkResponse","UserInfo","updateAllInfo","cb","Paper","infoWrap","padding","marginTop","DataStore","ShowHelper","doc","currentLanguage","tooltip","showDoc","plHelp","Tooltip","placement","style","cursor","textDecoration","withTheme","progress","info","SSHKeyItem","onDelete","justifyContent","line","line2","hash","center","plTrash","marginBottom","display","alignItems","light","withRouter","TableList","inputData","Table","TableHead","TableRow","TableCell","width","TableBody","row","rowid","UserSettingSSHKey","pending","keyList","mountedFlag","n1","n2","getData","parsedKey","header","multiline","rows","inputValue","matches","setObject","disableElevation","addKey","btn","table","removeKey","CircularProgress","lineHeight","paper","margin","SquareIconButton","badge","copyProps","button","disableFocusListener","right","top","zIndex","position","borderRadius","background","contrastText","UserSettingEmail","primaryEmail","validationEmail","codeDisabled","count","codeCheckInput","codeCheckResponse","nextProps","nextState","JSON","stringify","cancel","cancelForm","createValidationForm","reloadUserData","createForm","validationForm","isCheck","plEdit","deleteConfirm","plCheck","plClose","history","createCommitEmailForm","getTableData","loading","size","marginLeft","opacity","verticalAlign","AvatarUploader","showImgIcon","uploadFile","instanceID","floor","random","appendData","dataProvider","file","files","onUpdate","src","htmlFor","avatarLabel","onMouseEnter","onMouseLeave","Avatar","classNames","circleUserInfoAvatar","userInfoAvatar","iconBox","iconBoxCircle","iconBoxRounded","faPlus","editIcon","uploadInput","left","bottom","borderBottomLeftRadius","borderBottomRightRadius","transform","UserSettingGeneral","updateUserInfo","team","oldPassword","newPassword","againPassword","mfaMode","mfaQRCodeData","mfaSecret","mfaCode1","mfaCode2","checkBaseInfo","checkBaseResponse","checkPWDResponse","checkMFAInput","validateArr","RegExp","mfaEnabled","prepareMFADeviceSetup","checkPWDInput","current","new","clearPWD","MFAPending","secret","code1","code2","noMarginTop","sm","mainMarginBottom","fold","mainMarginTop","avatarUploaded","revokeMFADevice","updateMFADevice","pl","paddingLeft","flexRow","flexFlow","flexRowCenter","InlineMarker","extraColor","containedInfo","lighter","secondary","bg","iconPadding","IOSSwitch","marginRight","switchBase","thumb","track","boxSizing","transition","transitions","checked","focusVisible","Switch","focusVisibleClassName","disableRipple","UserSettingNotification","refusedList","openSet","groupFold","otherRepository","groupList","repositoryList","changeOpenSet","isUserNotificationOpen","notification","isTargetOpen","repo","refusedRepo","repoItem","offset","isUser","reloadUserInfo","updated","isRepository","displayName","plAngleDown","tableFold","repositoryTableData","getTableRow","subtitle","desc","switch","repoIndex","span","getRepositoryTable","userList","updateUserStatus","closeUserMFA","resetPassword","checkPassword","setAdministrator","addUser","groupMembers","groupAddMember","groupRemoveMember","setGroupOwner","repositoryMembers","repositoryAddMember","repositoryRemoveMember","systemStatus","getConfig","setConfig","NumbericDashboard","paletteName","unit","numbericValue","to","displayValue","displayUnit","warning","parseFloat","unitPrefix","standardUnit","unitScaleIndex","inputSuffix","baseValue","valueScaleIndex","toString","formatUnit","Card","card","clickable","CardContent","dark","Dashboard","AdminData","psMembers","usage","user","psRepositoryGroup","psRepository","psMeter","vm","cpu","memory","disk","psFolder","psNewFeature","service","codefever","nginx","crond","sendmail","TabHeader","tabs","currentTab","children","Tabs","indicatorColor","textColor","Tab","Users","list","category","sort","page","pagesize","settingAnchor","settingUser","password1","password2","settingAdmin","timeout","checkPasswordInput","checkEmailInput","checkEmailResponse","clearTimeout","avatar","projects","created","tag","admin","psSetting","sortLabel","MenuItem","Pagination","ceil","shape","Menu","anchorEl","anchorOrigin","horizontal","vertical","transformOrigin","PaperProps","menu","getContentAnchorEl","transitionDuration","Boolean","onClose","updateUserStatusConfirm","ListItemText","disableTypography","closeUserMFAConfirm","Dialog","maxWidth","DialogTitle","DialogContent","parentElement","plCopy","flexGrow","FormattedTime","timestamp","absolute","relative","localObject","localeCN","localeEN","format","locale","formatRelative","Groups","settingGroup","memberManage","checkAddResponse","substr","toUpperCase","roles","creatorFlag","joined","setRoleConfirm","psMemberAlt","removeMemberConfirm","openMemberManage","removeMember","addMember","getMembersTable","settingRepository","Settings","allowRegister","email_from","email_name","from","payload","mg","inputProps","updateConfig","RepositoryCard","repositoryInfo","alignContent","ev","baseInfo","counts","plFork","forkCount","plMerge","mergeRequestCount","plMember","Hidden","mdDown","alignSelf","plSetting","stopPropagation","borderLeft","borderRight","currentGroupConfig","EmptyListNotice","imageName","notice","img","alignBlock","GroupDashboard","popoverAnchor","popoverTab","groupConfig","elevation","subtext","iconBar","plRepository","accmulator","overflow","clonePopvoer","cloneContent","RepositoryList","currentGroupKey","repositoryListPending","item1","item2","finalList","tabsFilter","params","repositoryID","forkedRepository","tab","RepositoryListItem","config","updateName","protectedBranchRules","createProtectedBranchRule","updateProtectedBranchRule","deleteProtectedBranchRule","changeMemberRole","changeOwner","deleteRepository","activities","mergeRequests","mergeRequestClose","mergeRequestCommits","mergeRequestReview","assignReviewer","deleteReviewer","pathStack","fileContent","commitList","commitDetail","fileChanges","refListContainSHA","branchList","createBranch","deleteBranch","tagList","createTag","deleteTag","targetRepository","lastCommitLog","getBlameInfo","createMergeRequest","mergeRequestDetail","checkMergeType","mergeBranch","mergeRequestVersionList","relatedMergeRequests","getWebhook","webhooks","editWebhook","deleteWebhook","getRepositoryWebhookLogs","getRepositoryWebhookLogData","newRepository","slug","groupListPending","pathname","personalGroups","RepositoryData","repositoryData","permittedGroups","startAdornment","InputAdornment","svg","option","textRight","outRange","createRepository","newRepositoryFork","observed","forkRepositoryInfo","forkRepositoryID","matchedRepository","faUndo","forkRepository","RepositorySettingGeneral","reloadRepositoryData","rKey","updateRepository","RepositorySettingBranch","branch","updateRuleId","rolePush","roleMerge","getAllowRoler","editRule","roleId","old","deleteRule","sameRule","requestData","settingDefaultBranch","createRule","Events","divider","TitleList","list2","BranchList","webhookTab","webhookId","logData","start","end","webhook","subline","psConfirm","psError","webhookid","date","more","psMore","detail","newValue","plClock","keys","request","parse","borderTop","overflowX","RepositorySettingWebhook","pushEvent","edit","webhookLogs","isShowWebhookForm","url","trigger","active","events","currentRepositoryKey","getEvents","rwKey","getCheckedEvents","initData","eventCount","dot","cursorPointer","close","updateWebhook","psLog","getWebhookLogs","tmpEvents","checkedEvents","webhookForm","need","RadioGroup","FormControlLabel","control","Radio","Checkbox","changeEvent","logs","WebhookLog","Member","userName","MemberItem","onRemove","removeable","underline","ListSubheader","disableSticky","Divider","deleteMember","MemberList","currentConfig","yourself","TableContainer","textMain","tableRow","textLight","RepositorySettingMembers","uKey","roleID","onKeyDown","keyCode","addMembers","e1","e2","deleteGroup","StyledMenuItem","minHeight","RepositorySettingAdvanced","deleteRepositoryConfirmed","reloadRepositoryGroupList","GroupData","section","changeSlug","faFile","GroupCard","groupInfo","ownerMarker","listIcon","cardHover","GroupList","personalGroupCreateFlag","groupListChecked","userData","groupData","createGroup","GroupSettingGeneral","reloadGroupData","gKey","updateGroup","GroupSettingMembers","GroupSettingAdvanced","deleteGroupConfirmed","faTrash","relatedGroup","relatedRepository","formatter","s1","s2","memberInfo","uid","roleName","repositoryLink","sourceName","branchLink","startHash","endHash","tagLink","mergeRequestLink","reviewer","ActivityItem","parsedData","Activity","paddingRight2","ActivityList","activityList","listFinshed","searchActivity","plSearch","marginTop3","faAngleDown","RepositoryDashboard","repositoryConfig","ButtonGroup","currentTarget","Popover","TransitionProps","cloneHeader","readOnly","copy","getElementById","blur","plCommit","plBranch","plTag","plFile","borderColor","RefSelector","revisionList","currentRevision","tags","concat","composeOptions","CodeLine","createRef","refreshCodeLine","htmlCode","fragment","original","diff","diffChars","currentPosition","offsets","added","removed","highlightWord","addition","modified","deletion","rangeDom","rangeStart","rangeEnd","findRangeOffset","findOffset","highlight","targetDom","range","createRange","mark","setStart","setEnd","surroundContents","parentNode","relativeOffset","currentOffset","childNodes","node","nodeName","contentLength","innerText","ref","additionDarker","deletionDarker","SmartLink","CommitHashChip","copyHash","setAttribute","disabledBtn","CommitItem","linkPathBase","showBorder","blameMode","path","commitInfo","commitFullInfo","commiterInfo","sha","commitContent","commitTime","ListItem","listItem","float","secondaryWrap","CodeViewer","lineNumber","parent","scroll","offsetTop","offsetParent","querySelector","scrollTop","prevProps","prevState","blame","lang","codes","raw","parsedHtml","Prism","languages","codeLines","blameCell","blameData","blameItem","rowSpan","repositoryName","topBorder","blameLoading","tableLayout","borderCollapse","userSelect","overflowWrap","ObjectViewer","mdSourceShow","copyAnchor","mime","displayMode","getDisplayMode","fileInfo","getObjectIcon","icon2","copySomething","plCodeFile","rev","editorBg","height0","rel","remarkPlugins","remarkGfm","base64Encoded","mediaFile","controls","oldImage","newImage","RepositoryEmpty","remoteCode","createCode","pushCode","setup","noBorder","FileTree","objectData","readmeFile","getPathStack","getObject","revision","decodeURIComponent","getBlame","calculatedPath","getReadmeFile","readmeObject","currentPath","item0","linkObjectName","linkCommitMessage","basePathStack","components","currentRepositoryError","RevisionSelector","composePathBreadCrumb","makeFileListData","CommitList","searchInput","pageSize","currentDate","DateFnsUtils","tempItem","dateExist","originItem","reload","refType","link","RefFilter","searchRef","sortDesc","sortSwitch","tabValue","tabChange","plSortDesc","RefList","perpage","anchor","repage","refLists","refList","filesLink","nameA","commitsLink","substring","shaA","logA","updater","refTitle","deleteRef","refListItem","refItem","oneline","refName","refLog","protected","plSafe","isMerge","refSha","refUpdate","openRefItemMenu","closeRefItemMenu","refTitles","refListsDeal","listCount","whiteSpace","textOverflow","branchLists","dataSort","dataFilter","activeData","inactiveData","nowTimestamp","threeMonth","filterBranch","TagList","filterTag","CreateTag","mr16","CreateBranch","CommitContainRef","refTotal","currentHash","show","parentHash","currentGroup","currentRepository","contentShow","parentA","borderNone","versions","branchFilesLink","tagFilesLink","maxHeight","CodeDiffViewer","originalHTML","modifiedHTML","fullfileContent","diffContent","showFullFile","makeFullDiffContent","makeDiffContent","buildFullFileContent","callback","fileDiffInfo","lineData","modifiedLines","lastLineNumber","min","getFileContent","direction","markerPosition","marker","previous","next","insertData","originLine","unshift","markerData","modifiedLine","expandCode","modifiedIndex","renderSideBySide","lastDeletionIndex","lastDeletionDiffIndex","lineNumberDeletion","diffMarker","lineNumberAddition","lineLabel","diffLabelTop","lineNumberMarker","lineLabelButton","colSpan","diffLabel","appendClassName","appendClassNameDark","prevLineData","nextLineData","nextTwoLineData","prevTwoLineData","makeLines","additionDark","deletionDark","diffLabelDark","expandStatus","DrawerStates","ObjectDiffViewer","fileDiff","layoutUpdateTimeStamp","imagelegend","opacity1","FileDiffExpansionPanel","panelIsOpen","copyPath","viewFile","showFullFileTitle","fileType","unknow","faImage","faVideo","modifiedRepositoryKey","fileTreeIsOpen","parentHashFileLink","currentHashFileLink","fileTypeDeal","Accordion","expanded","togglePanel","square","AccordionSummary","expandIcon","panelSummary","fileName","fileIconDeal","add","additions","deletions","separator","toggleFullFile","faCompress","plExpand","viewFileDetail","viewOldFileBtn","viewFileBtn","AccordionDetails","panelDetail","themeSpacing","FileBrowser","fileBrowser","changeFilesTmp","treeFiles","listFiles","initChangeFiles","listFilesRef","changeFiles","lastIndex","lastIndexOf","used","dirname","initTreeFiles","initListFiles","tmpDir","dirTmp","deep","fileClick","filesCount","tree","calcPadding","faFolderOpen","faFolder","isDir","listSub","listDir2","calcDir","listDir","listFile","faSquare","dir","dirs","treeView","offsetBottom","clientHeight","clientWidth","fileBrowserTop","onScroll","listFilesScroll","FileDiffDetail","changedFilesInfo","diffViwerLayoutUpdateTimestamp","fileTreeGridNumber","effectFileCount","addLine","deleteLine","large","fileChangedInfo","childHash","addtions","accumulator","getFileTreeInfo","stickyPosition","diffTitle","toggleDiffShow","toggleFileTree","fileTreeSticky","fileTreeHide","jumpToAnchor","fileDiffPanel","changedFile","changedFileList","expansionMargin0","innerHeight","CommiterAvatar","CommitDetail","optionAnchorEl","parentHashShow","closeDrawer","commitSHA","psCaretDown","ml16","MergeRequestReviewers","reviewers","reviewerIcon","isReview","psClock","reviewed","MergeRequestItem","dataDeal","repoData","targetLink","targetBranch","titleLink","number","sourceRepository","sourceLink","sourceBranch","plConfirm","plMerged","plForbid","faArrowRight","MergeRequest","isGlobal","noMore","mrList","reset","getDataDeal","repositoryId","getTabs","searchMergeRequests","CreateMergeRequest","originRepository","originBranch","originLastCommit","targetLastCommit","targetRepositoryList","targetRepositoryBranches","originRepositoryBranches","originRepositoryInfo","targetRepositoryInfo","getTargetRepository","groupRepository","getInitRepositoryBranches","listen","repositoryKey","targetRepositoryKey","forkFlag","repositorySelect","branchTitle","branchSelect","getOriginRepositoryBranches","selectOriginBranch","currentRefType","getTargetRepositoryBranches","selectTargetBranch","errorInfo","hideError","GoMergeRequestDetail","MergeRequestDiff","latestVersion","baseVersion","getVersionDiff","val","showVersionCompare","versionList","baseVersionList","diffInfoSticky","FormControl","Select","changeHash","commitLog","commitAvatar","commiterName","MergeRequestDetail","mid","mergeRequestInfo","sourceRepositoryInfo","requesterInfo","handlerInfo","changedFiles","commits","showCommitInput","mergeMessage","usingSquash","hasMergeConflict","mergeStatus","submitMergeRequest","mergePending","reviewersMenu","updateReviewersPending","getDetailData","getChangeData","getVersionList","getActivities","versionCompare","getRepositories","sourceRepoInfo","submitter","mergeVersionList","canBeFastForward","conflict","isCreateMR","includes","createMRTitle","assigned","closeMergeRequest","hideInput","tabHeader","reviewersTitle","plAddAlt","reviewersMenuItem","reviewersMember","noReviewers","activityTitle","activityItem","activityItemLine","merge","overflowY","MainRoutes","exact","AdminUsers","AdminGroups","AdminRepositories","AdminSettings","AdminDashboard","NewRepository","NewRepositoryFork","NewGroup","Main","groupListLoaded","repositoryListLoaded","toolbar","mainContainer","mixins","UserOption","handleUserMenuClick","handleUserMenuClose","logout","settings","down","MenuListProps","goView","ListItemIcon","plMemberAlt","plDraft","plKey","plExit","LanguageSelect","userInfoLoadingStatus","plLocalization","selected","changeLanguage","GroupRepositoryMenu","anchorElement","enterMenu","enterButton","initAnchor","repositoryItems","getToRepository","GroupItems","getToGroup","Header","newMenuAnchor","helpMenuAnchor","scrollTrigger","notificationOpenStatusToggle","AppBar","appBar","Toolbar","optionItem","psAddAlt","orientation","plBell","unReadNotification","plRepair","drawer","placeholderExpanded","placeholderCollapsed","threshold","watching","WrappedComponent","removeEventListener","addEventListener","scrollAmount","pageYOffset","mountContainer","DrawerList","itemSwitch","itemName","avatarHover","newOpen","drawerExpandStatus","drawerConfig","listItems","activeFlag","activePattern","pattern","firstLevel","listItemExpand","listItemCollapsed","openChildren","iconActive","listItemText","listItemTextExpand","listItemTextCollapsed","secondLevel","sitem","skey","secondActiveFlag","Collapse","in","unmountOnExit","secondCollapse","List","disablePadding","secondActive","inset","morePadding","avatarProps","currentProject","psHome","drawerHeader","drawerHeaderExpand","drawerHeaderCollapsed","home","titleExpand","titleCollapsed","makeDrawerConfig","psEmail","psKey","psBell","makeAdminDrawerConfig","makeGroupDrawerConfig","psMerge","makeRepositoryDrawerConfig","psFile","psCommit","psBranch","psTag","Side","toggleDrawer","drawerContainer","drawerExpandControl","plMenuCollapse","Drawer","drawerPaper","containerExpanded","containerCollapsed","DrawerConfig","Comformation","openStatus","rejectFn","acceptFn","onCancel","DialogContentText","DialogActions","onAccept","NotificationStates","confirmation","Notification","menuAnchor","loadMore","notificationOpenStatus","notificationParser","isRead","notificationOpenStatusClose","offsetHeight","scrollHeight","headerTitle","notificationSetting","notify","readed","notifiTitle","notifySetting","psTrash","notifiContent","aLink","NotificationBars","messageLists","currentIndex","closeMessage","notificationBody","addMessage","NotificationBar","reason","chinese","english","Added","copied","opened","binded","unbinded","verified","approved","enabled","reseted","createPersonalGroupNotice","emailCodeHasSendNewEmail","phoneCodeHasSendNewPhone","finishIdentityVerify","unbindEnterCodeFeverPassword","scanQrcodeBind","theAccountUsedWechat_N","rebindWechat","unbindAllProduct","mfaGuide","inputEmailToAddMemeber","groupMemberCanControlRepositoryNotice","repositoryChangeCreatorNotice","repositoryChangeURLNotice","repositoryDeleteRepositoryNotice","repositoryDeleteRepositoryConfirmNotice","groupChangeCreatorNotice","groupChangeURLNotice","groupDeleteRepositoryNotice","groupDeleteRepositoryConfirmNotice","inputCommitFilter","repositoryEmpty","displaySource","displayRendereFile","fileContentEmpty","fileContentOversize","fileTypeNotSupport","diffFileToMany","createNewRepository","pushRepository","_S_empty","repository_S_empty","repositoryBranchEmpty","repositoryTagEmpty","mergeRequestEmpty","addNewCommit","alreadyMergeRequest","alreadyCloseRequest","assignReviewerTitle","selectReviewer","notSelectReviewers","notApprove","assign_N_M_Reviewer","delete_M_N_Reviewer","review_M_Reviewer","_S_listEmpty","repositoryListEmptyNotice","groupListEmptyNotice","input_S_name","confirmDelete","jumpWithLink","noRepositoryFind","noCommitRecord","plsInputInvitedEmail","repositoryDeleteTipFirst","repositoryDeleteTipSecond","inputMergeCommit","selectDifferentBranch","mergeConflictTitle","mergeConflictTip1","mergeConflictTip2","mergeConflictTip3","mergeConflictTip4","from_S_Merge_S","defaultGroupReqiured","defaultGroupReqiuredDescription","someVersion","backHome","inputSSHKEYContent","inputSSHKEYName","defaultBranchDescription","settingToDefaultBranch","updateDefaultBranch","protectedBranchDescription","protectedBranchRuleEmpty","inputBranchOrRegexp","noBodyAllow","primaryEmailDescription","updatePrimaryEmail","myEmail","myEmailDescription","addEmail","contactedEmail","shouldValidation","resendEmail","differenceBetweenHTTPSAndSSH","generateAndSetSSHKey","itsMyEmail","notificationSystem","notificationMention","tagRead","tagAllRead","deleteAllReaded","mergeRequestNotification","mergeRequestNotificationDesc","emailNotification","emailNotificationDesc","searchByName","userStatusEnabled","userStatusDisabled","userStatusEnabled_N","userStatusDisabled_N","closeMFA","closeMFAConfirm","closeMFA_N","reset_N_Password","searchRepository","searchGroup","roleToOwner","setGroupOwner_S","cancelAdministrator","memberRemoveConfirm","successAddUser","webhookEventsNeed","webhookListEmpty","useTime_n","show_n_record","_S_retype","_S_has_illegal_character","_S_notChoose","_S_duplicate","_S_invalid","_S_notFound","noMoreThan_N_characters","within_N1_to_N2_characters","only_N1_or_N2_characters","requireCombinationOfCharactersNumbersAndUnderscore","input_S_placeholder","inputNotSame","inputSame","canNotAddCreatorAsMember","createRepositoryFail","createGroupFail","createBranchFail","createTagFail","createMergeRequestFail","createProtectedBrancheRuleFail","AddFail","updateFail","removeFail","deleteFail","verifyFail","forkRepositoryFail","getFileFail","getEmailCodeFail","getPhoneCodeFail","change_S_Fail","waitToRetry","canNotChangeOwnerOfUserGroup","canNotDeleteUserGroup","canNotDeleteNonEmptyGroup","mergeRequestExists","mergeFail","reviewedCanNotAssign","reviewedCanNotDelete","branchProteced","userNotReview","inputNewEmail","bindEmailFirst","wechatHasbound","sshKeyDuplicate","createdGroup","updateGroup_S_Avator","updateGroup_S_Name","updateGroup_S_Description","addGroup_S_Memeber","changeGroup_S_MemebrRole","removeGroup_S_Memebr","setGroup_S_Creator","setGroup_S_URL","createdRepository","updateRepository_S_Avator","updateRepository_S_Name","updateRepository_S_Description","pushTo_S_Branch","pushTo_S_NewBranch","created_S_NewBranch","delete_S_Branch","update_S_DefaultBranch","created_S_ProtectedBranchRule","update_S_ProtectedBranchRule","delete_S_ProtectedBranchRule","pushTo_S_Tag","pushTo_S_NewTag","created_S_NewTag","delete_S_Tag","addRepository_S_Memeber","changeRepository_S_MemebrRole","removeRepository_S_Memebr","setRepository_S_Creator","setRepository_S_URL","open_S_MergeRquest","close_S_MergeRquest","merge_S_MergeRquest","assign_S_Reviewer","delete_S_Reviewer","review_S_Reviewer","create_S_Webhook","update_S_Webhook","delete_S_Webhook","repository_pl","group_pl","file_pl","commit_pl","mergeRequest_pl","branch_pl","webhook_pl","tag_pl","member_pl","activity","activity_pl","setting","setting_pl","SSHKey","SSHKey_pl","user_pl","fileTree","clone","limitation","guest","reporter","developer","maintianer","Term","CodeFever","administrator","source","prefix","joinedAt","log","httpHeaders","httpBody","httpPayload","browser","expand","times","full","invite","before","save","remove","modification","chose","contain","unbind","manage","operating","approve","enable","disable","last","inactive","mfaCode","twoFactorAuthentication","emailCode","phoneCode","phone","china","company","job","wechat","credential","login","prev","submit","allow","learnMore","myServiceTicket","getHelp","help","failure","adminArea","confirm","Phrase","dashboard","general","advanced","profile","mail","phraseSeperator","update_S_","retryAfter_N_seconds","userAvatar","getPhoneCode","mostSeen","loginCredential","CodeFeverPassword","wechatBind","unbind_P","repositoryDescription","repositoryURL","repositorySlug","repositoryMember","unknownRepository","allRepository","groupDescription","groupURL","groupSlug","newGroup","unknownGroup","inviteMember","forkFrom_S","updateFrom_S1_To_S2","repositoryAvatar","groupAvatar","basicInfo","newPasswordConfirm","security","setupNewMFADevice","changeMFADevice","removeMFADevice","copyCode","lastCommit","lastUpdate","updateCreator","updateRepositoryURL","updateGroupURL","webhookSetting","createWebhook","contentType","webhookSecret","webhookTrigger","pushTrigger","customeTrigger","webhookList","webhookLog","createOrigin","choseCreateOrigin","tagDescription","tagName","branchName","protectedBranch","branchRule","allowPush","allowMerge","noData","newBranch","newTag","updateTime","updatedIn","editIn","expandFullFile","showDiffOnly","codeDiff","requestCreated","requestClosed","requestMerged","commitActivity","mergeRequestActivity","memberActivity","emailManage","contactEmail","SSHKeyManage","notificationCenter","notificationReceiveStatus","unread","fileModification","fileModificationList","lineAdd","lineDelete","browserFile","browserUnchangedFIle","commitHash","allFiles","openFileTree","closeFileTree","requestMerge","processing","IJoined","ICreated","dangerOperation","dangerOperationConfirm","compareBranch","lastModified","lastModified_N","openMergeRequest","modificationBranch","repositoryAdvancedSetting","branchSetting","groupAdvancedSetting","memberLimitation","modificationLimitation","roleID_1","roleID_2","roleID_3","roleID_4","roleID_5","enabledMFA","disabledMFA","blocked","createTime","statistic","systemResources","diskUsgae","serviceStatus","senderName","senderAddress","register","urlPrefix","sshPrefix","support","feedback","contribute","about","changeProtectedBranchRule","removeProtectedBranchRule","reviewReviewer","_N_repository","_N_commit","_N_branch","_N_tag","_N_byte","_N_mergeRequest","_N_member","localeSelector","Lang","CNMessage","CNActivityMessage","CNErrorMessage","CNTerm","CNPhrase","CNMenu","CNLabel","CNNotification","USMessage","USActivityMessage","USErrorMessage","USTerm","USPhrase","USMenu","USLabel","USNotification","App","createTheme","localTheme","utils","messages","appContent","BaseRoutes","setItem","DrawerReducer","NotificationReducer","notificationCount","askHandleStatus","queueList","newItem","combineReducers","Store","createStore","Reducer","ReactDOM","render","store","basename"],"mappings":"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","file":"static/js/main.04fdcbff.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = this[\"webpackJsonpundefined\"] = this[\"webpackJsonpundefined\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([346,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/* eslint-disable */\n__webpack_public_path__ = function (w) {\n return w.location.protocol + '//' + w.location.host + '/'\n} (window)\n/* eslint-enable */\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/stylus-loader/index.js!./App.styl\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* global style override */\\nbody {\\n margin: 0;\\n padding: 0;\\n}\\npre {\\n margin: 0;\\n}\\ncode {\\n font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;\\n font-size: 12px;\\n white-space: break-spaces;\\n}\\n/* global style for app */\\n#root a,\\n.root a {\\n color: #3455db;\\n text-decoration: none;\\n}\\n#root a:hover,\\n.root a:hover {\\n text-decoration: underline;\\n}\\n#root .width-auto,\\n.root .width-auto {\\n width: auto !important;\\n}\\n#root .app-root,\\n.root .app-root {\\n height: 100%;\\n overflow: hidden;\\n position: relative;\\n display: flex;\\n width: 100%;\\n}\\n#root .app-content,\\n.root .app-content {\\n width: 100%;\\n height: 100vh;\\n overflow: auto;\\n position: relative;\\n}\\n#root .text-overflow,\\n.root .text-overflow {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n#root .marker-dark,\\n.root .marker-dark {\\n color: #fff !important;\\n}\\n#root .marker-dark-clickable,\\n.root .marker-dark-clickable {\\n color: #fff !important;\\n cursor: pointer;\\n}\\n#menu-repository,\\n#menu-group {\\n pointer-events: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/assets/styles/App.styl\"],\"names\":[],\"mappings\":\"AAAA,0BAAA;AACA;EACE,SAAQ;EACR,UAAS;AACX;AACA;EACE,SAAQ;AACV;AACA;EACE,wEAA2B;EAC3B,eAAW;EACX,yBAAa;AACf;AACA,yBAAA;AAEE;;EACE,cAAO;EACP,qBAAiB;AACrB;AAAI;;EACE,0BAAiB;AAGvB;AADE;;EACE,sBAAO;AAIX;AADE;;EACE,YAAQ;EACR,gBAAU;EACV,kBAAU;EACV,aAAS;EACT,WAAO;AAIX;AAFE;;EACE,WAAO;EACP,aAAQ;EACR,cAAU;EACV,kBAAU;AAKd;AAFE;;EACE,gBAAU;EACV,uBAAe;EACf,mBAAa;AAKjB;AAFE;;EACE,sBAAO;AAKX;AAJE;;EACE,sBAAO;EACP,eAAQ;AAOZ;AANA;;EACE,oBAAgB;AASlB\",\"sourcesContent\":[\"/* global style override */\\nbody\\n margin: 0\\n padding: 0\\n\\npre\\n margin: 0;\\n\\ncode\\n font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\\n font-size: 12px;\\n white-space: break-spaces;\\n\\n/* global style for app */\\n#root, .root\\n a\\n color: #3455db;\\n text-decoration: none;\\n &:hover\\n text-decoration: underline;\\n\\n .width-auto\\n width: auto !important;\\n\\n /* style sheet for container */\\n .app-root\\n height: 100%;\\n overflow: hidden;\\n position: relative;\\n display: flex;\\n width: 100%;\\n\\n .app-content\\n width: 100%;\\n height: 100vh;\\n overflow: auto;\\n position: relative;\\n\\n /* css helpers */\\n .text-overflow\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n\\n /* Code Diff Viewer (Diff Maker Style) */\\n .marker-dark\\n color: #FFF !important;\\n .marker-dark-clickable\\n color: #FFF !important;\\n cursor: pointer;\\n#menu-repository, #menu-group\\n pointer-events: none;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import makePreset from '@pgyer/mui-theme-preset'\n\nfunction makeTheme (originTheme) {\n const baseTheme = makePreset(originTheme, 'CodeFever')\n\n // export overwrite properties\n baseTheme.typography.fontFamily = 'system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"'\n baseTheme.palette.primary.main = '#3455db'\n baseTheme.typography.caption.fontSize = 14\n return {\n ...baseTheme,\n overrides: {\n ...baseTheme.overrides,\n MuiInputBase: {\n input: {\n ...baseTheme.overrides.MuiInputBase.input,\n backgroundColor: 'none'\n }\n },\n MuiMenuItem: {\n root: {\n ...baseTheme.overrides.MuiMenuItem.root,\n height: originTheme.spacing(4)\n }\n },\n MuiTableCell: {\n root: {\n borderBottom: '1px solid ' + baseTheme.palette.border,\n height: originTheme.spacing(5),\n paddingTop: 0,\n paddingBottom: 0,\n textAlign: 'left',\n flexDirection: 'row',\n '&:last-child': {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n }\n }\n },\n MuiPaper: {\n root: {\n pointerEvents: 'auto'\n },\n elevation1: {\n boxShadow: 'none'\n },\n elevation2: {\n boxShadow: '0px 8px 16px 0px rgb(63 70 62 / 20%)'\n },\n elevation8: {\n boxShadow: '0 10px 40px rgb(14 32 66 / 15%), 0 1px 2px rgb(14 32 66 / 5%)'\n }\n },\n MuiTab: {\n ...baseTheme.overrides.MuiTab,\n root: {\n ...baseTheme.overrides.MuiTab.root,\n '&$selected': {\n fontWeight: 600\n }\n }\n }\n }\n }\n}\n\nexport default makeTheme\n","const commonStatus = {\n normal: 1,\n delete: 4\n}\n\n// Object Viewer 显示模式\nconst obejctDisplayType = {\n unknown: 0,\n empty: 1,\n oversize: 2,\n text: 3,\n markdown: 4,\n image: 5,\n video: 6\n}\n\n// Object Diff Viewer 显示模式\nconst obejctDiffDisplayType = {\n unknown: 0,\n empty: 1,\n oversize: 2,\n infoChange: 3,\n textChange: 4,\n imageChange: 5\n}\n\n// activity category\nconst activityCategory = {\n all: 0,\n commit: 1,\n mergeRequest: 2,\n member: 3\n}\n\n// merge request status\nconst mergeRequestStatus = {\n open: 1,\n merged: 2,\n closed: 3\n}\n\nconst notificationCategory = {\n all: 0,\n unRead: 1,\n system: 2,\n mention: 3\n}\n\nconst notificationRefuseType = {\n group: 1,\n repository: 2\n}\n\nconst notificationStatus = {\n mr: 1,\n email: 2\n}\n\nfunction getStaticHost () {\n return window.location.origin + '/'\n}\n\nconst STATIC_VERSION = '00000000000000'\n\nconst HOSTS = {\n STATIC_HOST: getStaticHost(),\n PGYER_AVATAR_HOST: getStaticHost() + 'file/fetch/avatar/',\n STATIC_AVATAR_PREFIX: getStaticHost() + 'file/fetch/avatar/'\n}\n\nconst codeFileExtentsions = {\n bat: 'bat',\n clj: 'clojure',\n cljs: 'clojure',\n cljn: 'clojure',\n cljc: 'clojure',\n cljx: 'clojure',\n coffee: 'coffee',\n litcoffee: 'coffee',\n c: 'cpp',\n h: 'cpp',\n cpp: 'cpp',\n cs: 'csharp',\n css: 'css',\n go: 'go',\n graphql: 'graphql',\n htm: 'html',\n xhtm: 'html',\n html: 'html',\n xhtml: 'html',\n ini: 'ini',\n java: 'java',\n js: 'javascript',\n jsx: 'javascript',\n es: 'javascript',\n jsm: 'javascript',\n esm: 'javascript',\n json: 'json',\n kt: 'kotlin',\n less: 'less',\n lua: 'lua',\n md: 'markdown',\n mysql: 'mysql',\n m: 'objective-c',\n pas: 'pascal',\n perl: 'perl',\n pgsql: 'pgsql',\n php: 'php',\n xhp: 'php',\n php3: 'php',\n php4: 'php',\n ps: 'powershell',\n py: 'python',\n r: 'r',\n rb: 'ruby',\n rust: 'rust',\n scss: 'scss',\n sh: 'bash',\n sql: 'sql',\n swift: 'swift',\n ts: 'typescript',\n tsx: 'typescript',\n tsm: 'typescript',\n vb: 'vb',\n xml: 'xml',\n yml: 'yaml'\n}\n\nconst Constants = {\n commonStatus,\n obejctDisplayType,\n obejctDiffDisplayType,\n activityCategory,\n mergeRequestStatus,\n notificationCategory,\n notificationRefuseType,\n notificationStatus,\n STATIC_VERSION,\n HOSTS,\n codeFileExtentsions\n}\n\nexport default Constants\n","const Role = {\n NO_PERMISSION: 0,\n GUEST: 1,\n REPORTER: 2,\n DEVELOPER: 3,\n MAINTAINER: 4,\n OWNER: 5,\n NOBODY: 6\n}\n\nconst PermissionCode = {\n NO_PERMISSION: 0x00,\n\n REPO_READ: 0x01,\n REPO_PUSH: 0x02,\n REPO_REMOVE: 0x03,\n REPO_CHANGE_MEMBER: 0x04,\n REPO_CHANGE_INFO: 0x05,\n\n MR_READ: 0x08,\n MR_PUSH: 0x09,\n MR_MERGE: 0x0A,\n\n GROUP_CHANGE_MEMBER: 0x10,\n GROUP_CREATE_REPO: 0x11\n}\n\nconst PermissionConfig = {}\nPermissionConfig[Role.NO_PERMISSION] = []\nPermissionConfig[Role.GUEST] = [\n PermissionCode.REPO_READ\n]\nPermissionConfig[Role.REPORTER] = [\n PermissionCode.REPO_READ,\n PermissionCode.MR_READ\n]\nPermissionConfig[Role.DEVELOPER] = [\n PermissionCode.REPO_READ,\n PermissionCode.MR_READ, PermissionCode.MR_PUSH\n]\nPermissionConfig[Role.MAINTAINER] = [\n PermissionCode.REPO_READ, PermissionCode.REPO_PUSH, PermissionCode.REPO_CHANGE_MEMBER, PermissionCode.REPO_CHANGE_INFO,\n PermissionCode.MR_READ, PermissionCode.MR_PUSH, PermissionCode.MR_MERGE,\n PermissionCode.GROUP_CHANGE_MEMBER, PermissionCode.GROUP_CREATE_REPO\n]\nPermissionConfig[Role.OWNER] = [\n PermissionCode.REPO_READ, PermissionCode.REPO_PUSH, PermissionCode.REPO_REMOVE, PermissionCode.REPO_CHANGE_MEMBER, PermissionCode.REPO_CHANGE_INFO,\n PermissionCode.MR_READ, PermissionCode.MR_PUSH, PermissionCode.MR_MERGE,\n PermissionCode.GROUP_CHANGE_MEMBER, PermissionCode.GROUP_CREATE_REPO\n]\n\nexport default { Role, PermissionCode, PermissionConfig }\n","const Type = {\n NORMAL: 1,\n USER: 2\n}\n\nexport default { Type }\n","import GroupConfig from 'APPSRC/config/Group'\nimport { checkPermission } from 'APPSRC/helpers/VaribleHelper'\n\nfunction not (filter) {\n return input => !filter(input)\n}\n\nfunction and () {\n return input => [].slice.call(arguments).reduce((final, filter) => {\n return final && filter(input)\n }, false)\n}\n\nfunction or () {\n return input => [].slice.call(arguments).reduce((final, filter) => {\n return final || filter(input)\n }, false)\n}\n\nfunction userGroup () {\n return item => item.type === GroupConfig.Type.USER\n}\n\nfunction normalGroup () {\n return item => item.type === GroupConfig.Type.NORMAL\n}\n\nfunction id (ID) {\n return item => ID === item.id\n}\n\nfunction rule (rule) {\n return item => rule === item.rule\n}\n\nfunction ids (IDS) {\n return item => IDS.some(\n ID => ID === item.id\n )\n}\n\nfunction groupName (groupName) {\n return item => groupName === item.group.name\n}\n\nfunction email (email) {\n return item => email === item.email\n}\n\nfunction indexOfEmails (email) {\n return item => item.emails.indexOf(email) > -1\n}\n\nfunction name (name) {\n return item => name === item.name\n}\n\nfunction names (names) {\n return item => names.some(\n name => name === item.name\n )\n}\n\nfunction groupMember () {\n return item => item.groupMember\n}\n\nfunction notGroupMember () {\n return item => !item.groupMember\n}\n\nfunction deleted () {\n return item => item.deleteFlag\n}\n\nfunction notDeleted () {\n return item => !item.deleteFlag\n}\n\nfunction creator (userID) {\n return item => userID === item.owner\n}\n\nfunction creators (userIDs) {\n return item => userIDs.some(\n userID => userID === item.owner\n )\n}\n\nfunction group (groupID) {\n return item => groupID === item.group.id\n}\n\nfunction groups (groupIDs) {\n return item => groupIDs.some(\n groupID => groupID === item.group.id\n )\n}\n\nfunction fork (forkID) {\n return item => forkID === item.forkFrom\n}\n\nfunction forks (forkIDs) {\n return item => forkIDs.some(\n forkID => forkID === item.forkFrom\n )\n}\n\nfunction nameLikes (keyword) {\n return item => item.name.indexOf(keyword) > -1\n}\n\nfunction search (keyword, fields) {\n return item => fields.reduce(\n (result, field) => result || (item[field].toLowerCase().indexOf(keyword.toLowerCase()) > -1)\n , false)\n}\n\nfunction withPermission (permissionCode) {\n return item => checkPermission(item.role, permissionCode)\n}\n\nfunction withPermissions (permissionCodes) {\n return item => permissionCodes.some(\n permissionCode => checkPermission(item.role, permissionCode)\n )\n}\n\nfunction target (target) {\n return item => target === item.target\n}\n\nexport default {\n not,\n and,\n or,\n userGroup,\n normalGroup,\n id,\n rule,\n ids,\n email,\n indexOfEmails,\n name,\n names,\n group,\n groups,\n groupMember,\n notGroupMember,\n deleted,\n notDeleted,\n fork,\n forks,\n nameLikes,\n search,\n creator,\n creators,\n withPermission,\n withPermissions,\n groupName,\n target\n}\n","import Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nfunction initailizer (varible, defaultValue = null) {\n return varible === undefined ? defaultValue : varible\n}\n\nfunction makeFormData (data) {\n const formData = new window.FormData()\n for (const key in data) {\n if (typeof data[key] === 'object' && !key.match(/_(SAFE|BINARY)$/)) {\n for (const keyName in data[key]) {\n if (typeof data[key].length === 'number') {\n formData.append(key + '[]', data[key][keyName])\n } else {\n formData.append(key + '[' + keyName + ']', data[key][keyName])\n }\n }\n } else {\n formData.append(key.replace(/_(SAFE|BINARY)$/, ''), data[key])\n }\n }\n return formData\n}\n\nfunction makeQueryString (query) {\n const queryArray = []\n for (const key in query) {\n queryArray.push(key + '=' + window.encodeURIComponent(query[key]))\n }\n return queryArray.join('&')\n}\n\nfunction getObjectByProperty (array, porpertyName, value) {\n for (let index = 0; index < array.length; index++) {\n if (array[index][porpertyName] === value) {\n return array[index]\n }\n }\n return {}\n}\n\nfunction formatNumber (input, inputUnit) {\n const unit = ['', 'k', 'M', 'G', 'T', 'P']\n let unitOffset = 0\n\n if (Math.abs(input) > Number.MAX_VALUE) {\n return NaN\n }\n\n if (inputUnit === '%') {\n input = 100 * input\n } else {\n while (input >= 1000) {\n input = input / 1000\n unitOffset++\n }\n }\n\n if (unitOffset) {\n return ((Math.round(input * 10) / 10) + ' ' + unit[unitOffset]).trim() + (inputUnit || '')\n } else {\n inputUnit = inputUnit ? ' ' + inputUnit : ''\n return Math.round(input * 100) / 100 + (inputUnit || '')\n }\n}\n\nfunction formatUnit (input, inputUnit) {\n const unit = ['p', 'u', 'm', '', 'k', 'M', 'G', 'T', 'P']\n const originPoint = 3\n\n let unitPrefix, standardUnit, unitScaleIndex, inputSuffix, baseValue, valueScaleIndex\n\n if (!inputUnit || !input) {\n return [input, inputUnit]\n }\n\n input = input.toString().trim()\n inputUnit = inputUnit.toString().trim()\n\n unitPrefix = inputUnit.slice(0, 1)\n standardUnit = inputUnit\n unitScaleIndex = unit.indexOf(unitPrefix)\n if (unitScaleIndex > -1) {\n standardUnit = inputUnit.slice(1)\n } else {\n unitScaleIndex = originPoint\n unitPrefix = ''\n }\n\n inputSuffix = input.slice(-1)\n baseValue = input\n valueScaleIndex = unit.indexOf(inputSuffix)\n\n if (valueScaleIndex > -1) {\n baseValue = input.slice(0, -1)\n } else {\n valueScaleIndex = originPoint\n inputSuffix = ''\n }\n\n return [baseValue, unit[valueScaleIndex + unitScaleIndex - originPoint] + standardUnit]\n}\n\nfunction roundNumber (input, base = 1) {\n let number = Math.round(input * 10 / base) / 10\n number = number.toString().replace(/^(\\d+\\.\\d)\\d*$/, (match, p1) => p1)\n number = parseFloat(number)\n if (number.toString() === 'NaN') {\n return input\n }\n return number\n}\n\nfunction percentColor (percent, theme, reverse) {\n const colorLevels = [theme.palette.info, theme.palette.success, theme.palette.warning, theme.palette.error]\n const breakPoints = [0.94, 0.85, 0.70, 0.50]\n let level = 0\n\n if (reverse) {\n percent = 1 - percent\n }\n\n for (level = 0; level < breakPoints.length; level++) {\n if (percent >= breakPoints[level] || level === breakPoints.length - 1) {\n break\n }\n }\n return colorLevels[level]\n}\n\nfunction prependZero (number, targetLegnth) {\n let returnString = number.toString()\n while (returnString.length < targetLegnth) {\n returnString = '0' + returnString\n }\n return returnString\n}\n\nfunction makeLink () {\n return '/' + [].slice.call(arguments).join('/')\n}\n\nfunction composeNamespacedData () {\n let data = {}\n for (let i = 0; i < arguments.length; i++) {\n if (arguments[i] && arguments[i].__namespace__) {\n for (const key in arguments[i]) {\n data[arguments[i].__namespace__ + '.' + key] = arguments[i][key]\n }\n } else if (arguments[i]) {\n data = { ...data, ...arguments[i] }\n }\n }\n return data\n}\n\nfunction dataLabelParser (headerRowIndex) {\n return (parser, data) => {\n if (data && data.map && data[headerRowIndex] && data[headerRowIndex].map) {\n let finalData = [...data]\n finalData = finalData.map((item, index) => {\n if (index === headerRowIndex) {\n return item.map((content) => {\n if (typeof content === 'string') {\n return content.replace(/((legend|label|map)\\.\\w+)/g, (match, p1) => {\n return parser({ id: p1 })\n })\n }\n return content\n })\n } else {\n return item.map((content, countentIndex) => {\n if (typeof content === 'string' && countentIndex === 0) {\n return content.replace(/((legend|label|map)\\.\\w+)/g, (match, p1) => {\n return parser({ id: p1 })\n })\n }\n return content\n })\n }\n })\n\n return finalData\n }\n return data\n }\n}\n\nfunction tableDataLabelParser (parser, data) {\n return dataLabelParser(1)(parser, data)\n}\n\nfunction checkPermission (role, permissionCode) {\n if (role && UAC.PermissionConfig[role] && UAC.PermissionConfig[role].length) {\n return UAC.PermissionConfig[role].indexOf(permissionCode) > -1\n }\n return false\n}\n\nfunction getLang () {\n let lang = ''\n\n if (window.localStorage.getItem('lang')) {\n lang = window.localStorage.getItem('lang')\n } else {\n lang = navigator.language.toLowerCase() || navigator.userLanguage.toLowerCase()\n }\n\n return lang\n}\n\nfunction getCodeLanguageType (filename) {\n const ext = filename && filename.split('.').pop().toLowerCase()\n return (ext && Constants.codeFileExtentsions[ext]) || 'markdown'\n}\n\nfunction getUserInfo (members, commitEmail) {\n const userInfo = members ? members.filter(FilterGenerator.indexOfEmails(commitEmail)) : []\n return userInfo.length\n ? userInfo[0]\n : {\n temporary: true,\n name: commitEmail,\n email: commitEmail,\n icon: ''\n }\n}\n\nfunction getDefaultBranch (currentRepositoryConfig) {\n if (currentRepositoryConfig.branches && currentRepositoryConfig.branches.length) {\n const master = currentRepositoryConfig.branches.filter(FilterGenerator.id(currentRepositoryConfig.repository.defaultBranch))\n if (master[0]) {\n return master[0].id\n } else {\n return currentRepositoryConfig.branches[0].id\n }\n }\n return ''\n}\n\nfunction notificationParser (notification, intl) {\n if (!notification.type || !notification.data) {\n return false\n }\n\n const data = notification.data = JSON.parse(notification.data)\n notification.text = intl.formatMessage({ id: 'notification.' + notification.type }, data)\n notification.url = ''\n\n if (['mergeRequest:create', 'mergeRequest:close', 'mergeRequest:merge', 'mergeRequestReviewer:create', 'mergeRequestReviewer:review'].includes(notification.type)) {\n notification.url = [data.group, data.repository, 'mergerequests', data.number].join('/')\n }\n\n return true\n}\n\nfunction copyToClipboard (data, success, el) {\n window.setTimeout(() => {\n const dom = window.document.createElement('textarea')\n dom.innerHTML = data\n el ? el.appendChild(dom) : window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('copy')\n el ? el.removeChild(dom) : window.document.body.removeChild(dom)\n success && success()\n }, 0)\n}\n\nexport {\n initailizer, makeFormData, makeQueryString, getObjectByProperty, formatNumber,\n formatUnit, roundNumber, percentColor, prependZero,\n makeLink, composeNamespacedData, tableDataLabelParser,\n checkPermission, getLang, getCodeLanguageType, getUserInfo, getDefaultBranch,\n notificationParser, copyToClipboard\n}\n","import { makeFormData, makeQueryString } from 'APPSRC/helpers/VaribleHelper'\n\nfunction DataProvider (method, endpoint, data, query) {\n let returnPromise\n\n if (query) {\n endpoint += '?' + makeQueryString(query)\n }\n\n // for demo path hwader\n const appendHeader = 'codefever-app'\n const localLanguage = window.localStorage.getItem('lang') || 'zh-cn'\n\n if (data) {\n returnPromise = window.fetch(\n endpoint,\n {\n body: makeFormData(data),\n cache: 'no-cache',\n credentials: 'same-origin',\n headers: {\n 'codefever-end-env': appendHeader,\n 'codefever-end-lang': localLanguage,\n Accept: 'application/json'\n },\n method: method,\n mode: 'same-origin',\n redirect: 'follow',\n referrer: 'client'\n })\n } else {\n returnPromise = window.fetch(\n endpoint,\n {\n cache: 'no-cache',\n credentials: 'same-origin',\n headers: {\n 'codefever-end-env': appendHeader,\n 'codefever-end-lang': localLanguage,\n Accept: 'application/json'\n },\n method: method,\n mode: 'same-origin',\n redirect: 'follow',\n referrer: 'client'\n })\n }\n\n return returnPromise\n}\n\nfunction GET (endpoint, data = {}, query = {}) {\n query.requestTime = new Date().getTime()\n return DataProvider('GET', endpoint, null, query)\n}\n\nfunction POST (endpoint, data, query = {}) {\n return DataProvider('POST', endpoint, data, query)\n}\n\nfunction PUT (endpoint, data, query = {}) {\n return DataProvider('PUT', endpoint, data, query)\n}\n\nfunction DELETE (endpoint, data, query = {}) {\n return DataProvider('DELETE', endpoint, data, query)\n}\n\nfunction OPTIONS (endpoint, data, query = {}) {\n return DataProvider('OPTIONS', endpoint, data, query)\n}\n\nexport default { GET, POST, PUT, DELETE, OPTIONS }\n","import APIRequest from 'APPSRC/data_providers/main'\n\nfunction getUserInfo () {\n return APIRequest.GET('/api/user/info')\n}\n\nfunction getKeyList () {\n return APIRequest.GET('/api/user/listKey')\n}\n\nfunction addSSHKey (data) {\n return APIRequest.POST('/api/user/addSSHKey', data)\n}\n\nfunction removeSSHKey (data) {\n return APIRequest.POST('/api/user/removeSSHKey', data)\n}\n\nfunction setUserData (data) {\n return APIRequest.POST('/api/user/update', data)\n}\n\nfunction updateBasicInfo (data) {\n return APIRequest.POST('/api/user/updateBasicInfo', data)\n}\n\nfunction updatePassword (data) {\n return APIRequest.POST('/api/user/updatePassword', data)\n}\n\nfunction changeEmail (data) {\n return APIRequest.POST('/api/user/changeEmail', data)\n}\n\nfunction getMFAData () {\n return APIRequest.GET('/api/user/getMFAData')\n}\n\nfunction updateMFAData (data) {\n return APIRequest.POST('/api/user/updateMFAData', data)\n}\n\nfunction revokeMFAData () {\n return APIRequest.POST('/api/user/revokeMFAData', {})\n}\n\nfunction getCountriesCode (data) {\n return APIRequest.POST('/api/user/getCountriesCode', data)\n}\n\nfunction getCode (data) {\n return APIRequest.POST('/api/user/getCode', data)\n}\n\nfunction confirmTel (data) {\n return APIRequest.POST('/api/user/confirmTel', data)\n}\n\nfunction uploadAvatar (data) {\n return APIRequest.POST('/api/user/uploadAvatar', data)\n}\n\nfunction getEmailCode (data) {\n return APIRequest.POST('/api/user/getEmailCode', data)\n}\n\nfunction addCommitEmail (data) {\n return APIRequest.POST('/api/user/addCommitEmail', data)\n}\n\nfunction resentCommitEmailCode (data) {\n return APIRequest.POST('/api/user/resentCommitEmailCode', data)\n}\n\nfunction deleteCommitEmail (data) {\n return APIRequest.POST('/api/user/deleteCommitEmail', data)\n}\n\nfunction validationCommitEmailCode (data) {\n return APIRequest.POST('/api/user/validationCommitEmailCode', data)\n}\n\nfunction notifications (data) {\n return APIRequest.GET('/api/user/notifications', null, data)\n}\n\nfunction setNotificationRead (data) {\n return APIRequest.POST('/api/user/setNotificationRead', data)\n}\n\nfunction deleteNotification (data) {\n return APIRequest.POST('/api/user/deleteNotification', data)\n}\n\nfunction userNotificationSetting (data) {\n return APIRequest.POST('/api/user/userNotificationSetting', data)\n}\n\nfunction notificationRefused (data) {\n return APIRequest.GET('/api/user/notificationRefused', null, data)\n}\n\nfunction setGroupOrRepoNotification (data) {\n return APIRequest.POST('/api/user/setGroupOrRepoNotification', data)\n}\n\nexport default {\n getUserInfo,\n getKeyList,\n addSSHKey,\n removeSSHKey,\n setUserData,\n updateBasicInfo,\n updatePassword,\n changeEmail,\n getMFAData,\n revokeMFAData,\n updateMFAData,\n getCountriesCode,\n confirmTel,\n uploadAvatar,\n getCode,\n getEmailCode,\n addCommitEmail,\n resentCommitEmailCode,\n deleteCommitEmail,\n validationCommitEmailCode,\n notifications,\n setNotificationRead,\n deleteNotification,\n userNotificationSetting,\n notificationRefused,\n setGroupOrRepoNotification\n}\n","function Event (type, data) {\n return { type, data }\n}\n\nfunction Network (type, statusCode) {\n}\n\nfunction NewNotification (message, level = 0, action = null) {\n return { type: 'notification.message.add', data: { message, level, action } }\n}\n\nfunction NewComformation (title, description, accept, reject) {\n return { type: 'notification.confirmation.popup', data: { title, description, accept, reject } }\n}\n\nfunction consumeComformation () {\n return { type: 'notification.confirmation.consume', data: null }\n}\n\nfunction cancelComformation () {\n return { type: 'notification.confirmation.close', data: null }\n}\n\nfunction addComformation (key, item) {\n return { type: 'notification.confirmation.add', data: { key: key, data: item } }\n}\n\nfunction removeComformation (key) {\n return { type: 'notification.confirmation.remove', data: { key } }\n}\n\nexport default { Event, NewNotification, Network, NewComformation, consumeComformation, cancelComformation, addComformation, removeComformation }\n","import { getLang } from 'APPSRC/helpers/VaribleHelper'\n\nfunction fetchMessage (code) {\n const lang = getLang()\n if (lang === 'zh-cn') {\n const ErrorCode = {\n 0x0000: '操作成功',\n\n 0x0100: '请求错误',\n 0x0101: '登录信息失效, 需要重新登陆',\n 0x0102: null,\n 0x0103: null,\n 0x0104: null,\n 0x0105: '请求的地址不存在',\n 0x0106: '没有操作权限',\n\n 0x0200: '请求资源为空',\n 0x0201: '输入错误',\n 0x0202: '输入值超过允许范围',\n\n 0x0301: '没有此仓库组',\n 0x0302: '没有此仓库',\n\n // internal net work error\n 0xFF00: '不能识别的响应数据,请稍后再试',\n 0xFF01: '网络链接错误,请稍后再试',\n 0xFF02: '请求过于频繁,请稍后再试'\n }\n return ErrorCode[code] || null\n } else {\n const ErrorCode = {\n 0x0000: 'Done',\n\n 0x0100: 'Request Error',\n 0x0101: 'Invalid Login',\n 0x0102: null,\n 0x0103: null,\n 0x0104: null,\n 0x0105: 'Resource Not Found',\n 0x0106: 'Insufficient Permission',\n\n 0x0200: 'Empty Resource',\n 0x0201: 'Invalid Input',\n 0x0202: 'Input Out of Range',\n\n 0x0301: 'No Such Group',\n 0x0302: 'No Such Repository',\n\n // internal net work error\n 0xFF00: 'Response Data Can Not Be Parsed, Try Later',\n 0xFF01: 'Network Error, Try Later',\n 0xFF02: 'Too Many Request, Try Later'\n }\n return ErrorCode[code] || null\n }\n}\n\nexport default fetchMessage\n","import EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ErrorCodeParser from 'APPSRC/helpers/ErrorCodeParser'\n\nfunction getJSONData (response, dispatcher = null) {\n dispatcher && dispatcher({ type: 'network.connection.ok' })\n\n // check response valid\n if (!response.ok) {\n if (parseInt(response.status) === 429) {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF02), 1))\n return { code: 1 }\n }\n\n if (parseInt(response.status) >= 500) {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF03), 1))\n return { code: 1 }\n }\n }\n\n let responseJson = {}\n\n responseJson = response.json().catch((e) => {\n dispatcher && dispatcher({ type: 'network.connection.error' })\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF00), 2))\n return { code: 1 }\n })\n\n responseJson\n .then((data) => {\n if (data && data.code && data.code < 0x0400) {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(data.code) || data.message, 2))\n if (parseInt(data.code) === 0x0101) {\n // login status not valid, redirect to login page\n window.setTimeout(() => {\n window.location.href = '/user/login'\n }, 3000)\n }\n if (parseInt(data.code) === 0x0106) {\n // access denied\n }\n }\n })\n .catch((error) => {\n catchError(error, dispatcher)\n })\n return responseJson\n}\n\nfunction getTextData (response, dispatcher = null) {\n // check response valid\n if (!response.ok) {\n switch (response.status) {\n case 429: {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF02), 1))\n break\n }\n case 500: {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF03), 1))\n break\n }\n default: {\n dispatcher && dispatcher(EventGenerator.NewNotification('Oooops...', 1))\n }\n }\n return null\n }\n\n return response.text()\n}\n\nfunction getFile (response, dispatcher = null) {\n\n}\n\nfunction catchError (error, dispatcher = null) {\n dispatcher && dispatcher({ type: 'network.connection.error' })\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF01), 2))\n return error\n}\n\nfunction withEventdispatcher (dispatcher) {\n return (handler) => (promise) => handler(promise, dispatcher)\n}\n\nfunction getHost (userinfo) {\n return userinfo && userinfo.host\n}\n\nfunction getSSHHost (userinfo) {\n return userinfo && userinfo.ssh\n ? userinfo.ssh\n : 'git@' + userinfo.host.replace('http://', '').replace('https://', '')\n}\n\nfunction makeSlug (input) {\n return input.replace(/[^\\w]/g, '_')\n}\n\nexport default { getJSONData, getTextData, getFile, catchError, withEventdispatcher, getHost, getSSHHost, makeSlug }\n","import EventGenerator from 'APPSRC/helpers/EventGenerator'\n\nfunction stateValidator (instance, rules) {\n // rules [{name, passPattern, errorMessage}, ...]\n return () => {\n const error = {}\n let errorFlag = false\n for (let index = rules.length - 1; index >= 0; index--) {\n const rule = rules[index]\n if (typeof instance.state[rule.name] === 'string' && !instance.state[rule.name].match(rule.passPattern)) {\n errorFlag |= true\n error[rule.name] = rule.errorMessage\n }\n }\n instance.setState({ error })\n return !errorFlag\n }\n}\n\nfunction codeValidator (instance, rules) {\n // rules [{name, exceptionCode, errorMessage}, ...]\n return (input) => {\n const error = {}\n for (let index = 0; index < rules.length; index++) {\n const rule = rules[index]\n if (rule.exceptionCode && rule.exceptionCode === input && rule.name) {\n error[rule.name] = rule.errorMessage\n instance.setState({ error })\n return false\n } else if (rule.exceptionCode && rule.exceptionCode === input && !rule.name) {\n instance.props.dispatchEvent(EventGenerator.NewNotification(rule.errorMessage, parseInt(rule.level) || 2))\n return false\n }\n }\n return true\n }\n}\n\nexport default {\n stateValidator,\n codeValidator\n}\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport UserData from 'APPSRC/data_providers/UserData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n pr0: {\n '& > div': {\n paddingRight: '0px !important'\n },\n '& button': {\n minWidth: theme.spacing(18)\n }\n }\n})\n\nclass SetEmail extends React.Component {\n constructor (props) {\n super(props)\n const { intl } = this.props\n this.state = {\n email: '',\n password: '',\n code: '',\n error: {},\n showPassword: false,\n showCodeInput: false,\n emailFocus: false,\n passwordFocus: false,\n codeBtnDisabled: false,\n codeText: intl.formatMessage({ id: 'label.getEmailCode' })\n }\n\n this.getEmailCodeCheckInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.getEmailCodeCheckResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x040D,\n errorMessage: intl.formatMessage({ id: 'message.error.inputNewEmail' })\n },\n {\n name: 'email',\n exceptionCode: 0x0406,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'password',\n exceptionCode: 0x040C,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.password' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0405,\n errorMessage: intl.formatMessage({ id: 'message.error.getEmailCodeFail' })\n }\n ])\n\n this.saveEmailCheckInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'password',\n passPattern: /^.+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: intl.formatMessage({ id: 'label.password' }) }\n )\n },\n {\n name: 'code',\n passPattern: /^[0-9]{6}$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.emailCode' }) }\n )\n }\n ])\n\n this.saveEmailCheckResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0405,\n errorMessage: intl.formatMessage(\n { id: 'message.error.change_S_Fail' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'code',\n exceptionCode: 0x040C,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.setState({ email: this.props.currentUserInfo.email })\n }\n\n getEmailCode () {\n const { intl } = this.props\n const { email, password, codeBtnDisabled } = this.state\n if (codeBtnDisabled || !password || !this.getEmailCodeCheckInput()) {\n return false\n }\n\n UserData.getEmailCode({\n email: email,\n password: password\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.emailCodeHasSendNewEmail' }), 0))\n this.setState({ showCodeInput: true })\n this.countDown()\n } else if (!this.getEmailCodeCheckResponse(data.code)) {\n return false\n }\n })\n }\n\n countDown () {\n const { intl } = this.props\n this.setState({ codeBtnDisabled: true })\n\n let time = 60\n this.int = setInterval(() => {\n this.setState({ codeText: intl.formatMessage({ id: 'label.retryAfter_N_seconds' }, { n: time }) })\n if (--time <= 0) {\n clearInterval(this.int)\n this.setState({\n codeText: intl.formatMessage({ id: 'label.getEmailCode' }),\n codeBtnDisabled: false\n })\n }\n }, 1000)\n }\n\n saveData () {\n const { intl } = this.props\n const { email, password, code } = this.state\n if (!this.saveEmailCheckInput()) {\n return false\n }\n\n UserData.changeEmail({\n password: password,\n email: email,\n code: code\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.update(() => {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n setTimeout(() => (window.location.href = '/user/logout'), 3000)\n })\n } else if (this.saveEmailCheckResponse(data.code)) {\n return false\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n const { email, password, code, error, showPassword, showCodeInput } = this.state\n return (\n \n \n { intl.formatMessage({ id: 'label.email' }) }\n \n \n this.setState({ email: e.target.value })}\n onFocus={() => this.setState({ emailFocus: true, showPassword: true })}\n onBlur={() => setTimeout(() => {\n this.setState({ emailFocus: false })\n !this.state.passwordFocus && this.setState({ showPassword: false })\n }, 150)}\n />\n \n { showPassword && !showCodeInput && \n \n this.setState({ password: e.target.value })}\n onFocus={() => this.setState({ passwordFocus: true })}\n onBlur={() => setTimeout(() => {\n this.setState({ passwordFocus: false })\n !this.state.emailFocus && this.setState({ showPassword: false })\n }, 150)}\n />\n \n \n \n \n \n }\n { showCodeInput && \n \n this.setState({ code: e.target.value })}\n InputProps={{\n endAdornment: \n }}\n />\n \n \n \n \n \n }\n \n \n )\n }\n}\n\nSetEmail.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n update: PropTypes.func.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(SetEmail)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport UserData from 'APPSRC/data_providers/UserData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n})\n\nclass SetUserInfo extends React.Component {\n constructor (props) {\n super(props)\n this.oldData = props.currentUserInfo[props.comData.field]\n this.state = {\n data: this.oldData,\n showBtn: false,\n error: {}\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'data',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: props.comData.label }) }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'data',\n exceptionCode: 0x0405,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.change_S_Fail' },\n { s: this.props.intl.formatMessage({ id: props.comData.label }) }\n )\n }\n ])\n }\n\n saveData () {\n const { intl, comData } = this.props\n const { data } = this.state\n if (this.oldData === data || !this.checkInput()) {\n return false\n }\n\n UserData.setUserData({\n data: data,\n field: comData.field\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((result) => {\n if (!result.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n this.oldData = data\n this.props.update()\n } else if (!this.checkResponse(result.code)) {\n return false\n }\n })\n }\n\n render () {\n const { intl, comData } = this.props\n return (\n \n \n { intl.formatMessage({ id: comData.label }) }\n \n \n this.setState({ data: e.target.value })}\n onFocus={() => this.setState({ showBtn: true })}\n />\n \n { this.state.showBtn && \n   \n \n \n }\n \n \n )\n }\n}\n\nSetUserInfo.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n comData: PropTypes.object.isRequired,\n update: PropTypes.func.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(SetUserInfo)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport SetEmail from 'APPSRC/components/view/unit/SetEmail'\nimport SetUserInfo from 'APPSRC/components/view/unit/SetUserInfo'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\nconst styles = (theme) => ({\n infoWrap: {\n padding: '20px 30px 60px 30px',\n marginTop: 20\n }\n})\n\nclass UserInfo extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n }\n this.updateAllInfo = this.updateAllInfo.bind(this)\n }\n\n updateAllInfo (cb) {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n typeof cb === 'function' && cb()\n }\n })\n }\n\n render () {\n const { classes, currentUserInfo, intl } = this.props\n return (\n
\n {intl.formatMessage({ id: 'label.settings' })}\n\n \n {intl.formatMessage({ id: 'label.profile' })}\n
\n {'u_key' in currentUserInfo ? : ''}\n
\n {'u_key' in currentUserInfo ? : ''}\n
\n {intl.formatMessage({ id: 'label.loginCredential' })}\n
\n {'u_key' in currentUserInfo ? : ''}\n
\n {'u_key' in currentUserInfo ? : ''}\n \n
\n )\n }\n}\n\nUserInfo.propTypes = {\n classes: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(UserInfo)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\n\n// components\nimport Tooltip from '@material-ui/core/Tooltip'\nimport Button from '@material-ui/core/Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plHelp } from '@pgyer/icons'\nimport { Typography } from '@material-ui/core'\n\nconst styles = (theme) => ({\n progress: {\n color: theme.palette.info.main\n }\n})\n\nclass ShowHelper extends React.Component {\n showDoc () {\n const { doc, currentLanguage } = this.props\n\n let language = 'cn'\n if (currentLanguage === 'en-us') {\n language = 'en'\n }\n\n window.open('/doc/' + language + doc, '_blank')\n }\n\n render () {\n const { tooltip, title, type, intl } = this.props\n if (type === 'button') {\n return \n } else if (type === 'icon') {\n return \n \n this.showDoc() }>\n \n \n \n \n } else {\n return \n \n this.showDoc() }>\n {title || intl.formatMessage({ id: 'label.learnMore' })} \n \n \n \n \n }\n }\n}\n\nShowHelper.propTypes = {\n doc: PropTypes.string.isRequired,\n title: PropTypes.string,\n tooltip: PropTypes.string,\n type: PropTypes.string,\n intl: PropTypes.object.isRequired,\n currentLanguage: PropTypes.string.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n ShowHelper\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport { injectIntl } from 'react-intl'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plTrash } from '@pgyer/icons'\n\nimport Button from '@material-ui/core/Button'\n\n// style\nconst styles = theme => ({\n line: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(0.5)\n },\n line2: {\n marginBottom: theme.spacing(1)\n },\n center: {\n display: 'flex',\n alignItems: 'center'\n },\n icon: {\n color: theme.palette.text.light\n }\n})\n\nclass SSHKeyItem extends React.Component {\n render () {\n const { item, onDelete, classes } = this.props\n\n return (\n \n \n {item.name}  \n \n \n { item.hash.replace(/([a-f0-9]{2})/ig, '$1:').slice(0, -1) }\n \n \n \n \n \n )\n }\n}\n\nSSHKeyItem.propTypes = {\n item: PropTypes.object,\n onDelete: PropTypes.func,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(SSHKeyItem)\n )\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\n\n// components\nimport { tableDataLabelParser } from 'APPSRC/helpers/VaribleHelper'\nimport Typography from '@material-ui/core/Typography'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\n\n// style\nconst styles = theme => ({})\n\nclass TableList extends Component {\n render () {\n const { data, intl } = this.props\n\n let inputData = data || [[], []]\n inputData = tableDataLabelParser(intl.formatMessage, inputData)\n\n return \n \n \n { inputData[1].map((name, index) => (\n {name}\n )) }\n \n \n \n {inputData.map((item, index) => {\n if (index > 1) {\n return (\n { item.map((row, rowid) => ({row})) }\n )\n }\n return null\n })}\n \n
\n }\n}\n\nTableList.propTypes = {\n // classes: PropTypes.object.isRequired,\n // theme: PropTypes.object.isRequired,\n data: PropTypes.array,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TableList)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Paper from '@material-ui/core/Paper'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport SSHKeyItem from 'APPSRC/components/unit/SSHKeyItem'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport UserData from 'APPSRC/data_providers/UserData'\n\n// helpers\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n margin: theme.spacing(2) + 'px 0px'\n },\n table: {\n '& th, & td': {\n textAlign: 'left !important'\n }\n }\n})\n\nclass UserSettingSSHKey extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n keyList: [],\n name: '',\n key: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'key',\n passPattern: /^.+$/m,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.SSHKey' }) }\n )\n },\n {\n name: 'key',\n passPattern: /^((?:ssh|ecdsa)-[\\w\\d]+)\\s+(\\S)+(?:\\s+(\\S+))?\\s*$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.SSHKey' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.name' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'key',\n exceptionCode: 0x040D,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.sshKeyDuplicate' })\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData()\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n addKey () {\n if (!this.checkInput()) {\n return false\n }\n\n const { intl, dispatchEvent } = this.props\n const { key, name } = this.state\n const parsedKey = key.match(/^((?:ssh|ecdsa)-[\\w\\d]+)\\s+(\\S+)(?:\\s+(\\S+))?\\s*$/)\n\n this.setState({ pending: true })\n UserData.addSSHKey({\n name: name,\n key: parsedKey[2]\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.Added' }), 0))\n this.setState({ name: '', key: '' })\n this.getData()\n } else if (!this.checkResponse(data.code)) {\n return false\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.AddFail' }), 2))\n }\n })\n\n return true\n }\n\n removeKey (id) {\n const { intl, dispatchEvent } = this.props\n UserData.removeSSHKey({ id: id })\n .then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.removed' }), 0))\n this.getData()\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.removeFail' }), 2))\n }\n })\n }\n\n getData () {\n UserData.getKeyList()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ keyList: data.data })\n }\n })\n }\n\n render () {\n const { currentUserInfo, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'label.SSHKey_pl' }) }\n \n \n \n \n { currentUserInfo.id\n ? \n \n \n \n \n { intl.formatMessage({ id: 'label.addSSHKey' }) }  \n \n \n \n \n {\n const inputValue = e.target.value\n const matches = inputValue.match(/^((?:ssh|ecdsa)-[\\w\\d]+)\\s+(\\S)+(?:\\s+(\\S+))?\\s*$/)\n const setObject = { key: inputValue, name: '' }\n if (matches && matches[3]) {\n setObject.name = matches[3]\n }\n this.setState(setObject)\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.name' }) }\n \n \n this.setState({ name: e.target.value })}\n placeholder={intl.formatMessage({ id: 'message.inputSSHKEYName' })}\n />\n \n \n this.addKey()}\n disabled={this.state.pending}\n className={classes.btn}\n >\n {intl.formatMessage({ id: 'label.addSSHKey' })}\n \n \n \n \n \n \n {\n return [ this.removeKey(id)} />]\n })\n ]} />\n \n \n \n : \n \n \n \n }\n \n \n )\n }\n}\n\nUserSettingSSHKey.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(UserSettingSSHKey)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// components\nimport { withStyles } from '@material-ui/core/styles'\nimport Button from '@material-ui/core/Button'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n button: {\n minWidth: theme.spacing(3) + 'px !important',\n padding: '7px 8px !important'\n },\n icon: {\n width: '18px !important',\n height: '18px !important'\n },\n badge: {\n right: 0,\n top: '-5px',\n zIndex: '1',\n fontSize: '12px',\n position: 'absolute',\n borderRadius: '10px',\n background: '#FF3F35',\n height: theme.spacing(2),\n minWidth: theme.spacing(2),\n lineHeight: theme.spacing(2) + 'px',\n color: theme.palette.primary.contrastText,\n border: '2px solid ' + theme.palette.background.light\n }\n})\n\nclass SquareIconButton extends React.Component {\n render () {\n const { icon, className, label, badge, intl, classes, ...copyProps } = this.props\n const button = ()\n return (label\n ? \n {button}\n \n : button\n )\n }\n}\n\nSquareIconButton.propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n badge: PropTypes.number,\n icon: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n label: PropTypes.string\n}\n\nexport default injectIntl(\n withStyles(styles)(\n SquareIconButton\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { plTrash, plCheck, plEdit, plClose } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport UserData from 'APPSRC/data_providers/UserData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = (theme) => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n title: {\n lineHeight: theme.spacing(3) + 'px',\n paddingBottom: theme.spacing(2)\n },\n content: {\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(5),\n borderBottom: '1px solid ' + theme.palette.border,\n marginBottom: theme.spacing(3)\n },\n create: {\n marginTop: theme.spacing(1)\n },\n size: {\n fontSize: '12px'\n },\n btn: {\n textDecoration: 'none !important',\n marginLeft: theme.spacing(3)\n },\n icon: {\n color: theme.palette.text.light\n },\n disabled: {\n opacity: 0.5,\n cursor: 'not-allowed'\n },\n ok: {\n '& svg': {\n color: theme.palette.success.main + ' !important'\n }\n },\n cancel: {\n marginLeft: theme.spacing(3),\n '& svg': {\n width: '14px !important',\n height: '14px !important',\n padding: '2px',\n color: theme.palette.error.main + ' !important'\n }\n },\n table: {\n marginTop: theme.spacing(3),\n '& tbody tr': {\n '&:hover': {\n background: theme.palette.background.light + ' !important'\n }\n },\n '& td': {\n height: theme.spacing(6) + 'px',\n '& > div': {\n verticalAlign: 'middle'\n }\n }\n }\n})\n\nclass UserSettingEmail extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n primaryEmail: props.currentUserInfo.id ? props.currentUserInfo.email : '',\n emails: props.currentUserInfo.id ? props.currentUserInfo.emails : null,\n email: '',\n error: {},\n validationEmail: null,\n code: '',\n codeDisabled: [],\n count: {}\n }\n\n const { intl } = props\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^.+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n passPattern: /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.codeCheckInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'code',\n passPattern: /^\\d+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: intl.formatMessage({ id: 'label.emailCode' }) }\n )\n },\n {\n name: 'code',\n passPattern: /^\\d{6}$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.emailCode' }) }\n )\n }\n ])\n\n this.codeCheckResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'code',\n exceptionCode: 0x040C,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.emailCode' }) }\n )\n }\n ])\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentUserInfo) !== JSON.stringify(this.props.currentUserInfo)) {\n this.setState({\n primaryEmail: nextProps.currentUserInfo.email,\n emails: nextProps.currentUserInfo.emails\n })\n return false\n }\n return true\n }\n\n reloadUserData (cancel) {\n cancel && this.cancelForm()\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n }\n\n addCommitEmail () {\n const { emails, email } = this.state\n const { intl } = this.props\n if (!emails || !this.checkInput()) {\n return false\n }\n\n if (emails.filter(FilterGenerator.email(email)).length > 0) {\n this.setState({\n error: {\n email: intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n }\n })\n return false\n }\n\n this.setState({ pending: true })\n UserData.addCommitEmail({\n email: email\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.emailCodeHasSendNewEmail' }), 0))\n this.createValidationForm(email)\n this.reloadUserData(false)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.AddFail' }), 2))\n }\n })\n }\n\n resentCommitEmailCode (email) {\n const { intl } = this.props\n const { codeDisabled } = this.state\n\n if (typeof codeDisabled[email] === 'undefined') {\n codeDisabled[email] = false\n }\n\n if (codeDisabled[email]) {\n return false\n }\n\n this.cancelForm()\n UserData.resentCommitEmailCode({\n email: email\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.emailCodeHasSendNewEmail' }), 0))\n this.countDown(email)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.getEmailCodeFail' }), 2))\n }\n })\n }\n\n countDown (email) {\n const { count, codeDisabled } = this.state\n\n if (typeof count[email] === 'undefined') {\n count[email] = 120\n }\n\n if (count[email]) {\n this.setState({\n codeDisabled: { ...codeDisabled, [email]: true },\n count: { ...count, [email]: --count[email] }\n })\n window.setTimeout(() => this.countDown(email), 1000)\n } else {\n this.setState({\n codeDisabled: { ...codeDisabled, [email]: false },\n count: { ...count, [email]: 120 }\n })\n }\n }\n\n validationCommitEmailCode (item) {\n const { intl } = this.props\n const { code } = this.state\n if (!item || !this.codeCheckInput()) {\n return false\n }\n\n this.setState({ pending: true })\n UserData.validationCommitEmailCode({\n id: item.id,\n email: item.email,\n code: code\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.verified' }), 0))\n this.reloadUserData(true)\n } else if (!this.codeCheckResponse(data.code)) {\n return false\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.verifyFail' }), 2))\n }\n })\n }\n\n deleteConfirm (id, email) {\n const { intl } = this.props\n this.cancelForm()\n this.props.dispatchEvent(EventGenerator.addComformation('delete_my_email', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.email' }) + ' \\'' + email + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => this.deleteCommitEmail(id)\n }))\n }\n\n deleteCommitEmail (id) {\n const { intl } = this.props\n if (!id) {\n return false\n }\n\n this.setState({ pending: true })\n UserData.deleteCommitEmail({\n id: id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.deleted' }), 0))\n this.reloadUserData(true)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.deleteFail' }), 2))\n }\n })\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { primaryEmail, emails, validationEmail, codeDisabled, count } = this.state\n const final = []\n if (!emails) {\n return false\n }\n\n emails.map((item, index) => {\n if (item === 'create') {\n final.push(this.createForm())\n } else if (validationEmail === item.email) {\n final.push(this.validationForm(item))\n } else {\n final.push([\n {item.email},\n item.email === primaryEmail\n ? {intl.formatMessage({ id: 'label.primaryEmail' })}\n : item.isCheck\n ? {intl.formatMessage({ id: 'message.contactedEmail' })}\n : \n {intl.formatMessage({ id: 'message.shouldValidation' })}\n this.resentCommitEmailCode(item.email)}\n >\n {intl.formatMessage({ id: 'message.resendEmail' })}?\n {codeDisabled[item.email] && '(' + count[item.email] + ')'}\n \n ,\n item.email !== primaryEmail && \n {!item.isCheck && this.createValidationForm(item.email)} icon={plEdit} />}\n this.deleteConfirm(item.id, item.email)} icon={plTrash} />\n \n ])\n }\n return true\n })\n\n return [\n ['30%', 'auto', 'auto'],\n ['label.contactEmail', 'label.status', ''],\n ...final\n ]\n }\n\n createForm () {\n const { classes, intl } = this.props\n return [\n this.setState({ email: e.target.value })}\n />,\n '',\n \n this.addCommitEmail()} className={classes.ok} />\n this.cancelForm()} className={classes.cancel} />\n \n ]\n }\n\n validationForm (item) {\n const { classes, intl } = this.props\n return [\n {item.email},\n this.setState({ code: e.target.value })}\n />,\n \n this.validationCommitEmailCode(item)} className={classes.ok} />\n this.cancelForm()} className={classes.cancel} />\n \n ]\n }\n\n cancelForm () {\n let { emails } = this.state\n if (emails[emails.length - 1] === 'create') {\n emails = emails.slice(0, emails.length - 1)\n }\n\n this.setState({\n emails: emails,\n email: '',\n error: {},\n validationEmail: null,\n code: ''\n })\n }\n\n createCommitEmailForm () {\n const { emails } = this.state\n if (emails[emails.length - 1] !== 'create') {\n this.cancelForm()\n this.setState({ emails: [...emails, 'create'] })\n }\n }\n\n createValidationForm (email) {\n this.cancelForm()\n this.setState({ validationEmail: email })\n }\n\n render () {\n const { history, classes, intl } = this.props\n const { pending, primaryEmail, emails } = this.state\n\n return (\n \n { intl.formatMessage({ id: 'label.emailManage' }) }\n \n \n {intl.formatMessage({ id: 'message.primaryEmail' })}\n {intl.formatMessage({ id: 'message.primaryEmailDescription' })}\n \n \n {primaryEmail}\n \n \n \n \n \n \n \n \n {intl.formatMessage({ id: 'message.myEmail' })}\n \n {intl.formatMessage({ id: 'message.myEmailDescription' })}  \n \n \n \n \n \n \n \n { emails !== null\n ? \n : \n \n \n }\n \n \n )\n }\n}\n\nUserSettingEmail.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UserSettingEmail)\n )\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\n\n// components\nimport PropTypes from 'prop-types'\nimport { withStyles } from '@material-ui/core/styles'\nimport Avatar from '@material-ui/core/Avatar'\nimport classNames from 'classnames'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlus } from '@fortawesome/free-solid-svg-icons'\nimport { injectIntl } from 'react-intl'\nimport { Grid } from '@material-ui/core'\n\nconst styles = (theme) => ({\n avatarLabel: {\n cursor: 'pointer',\n position: 'relative',\n display: 'inline-block',\n borderRadius: theme.spacing(1) + 'px'\n },\n iconBox: {\n width: '100%',\n position: 'absolute',\n left: '0',\n bottom: '0',\n background: '#2F354D',\n opacity: 0.3\n },\n iconBoxRounded: {\n height: '40%',\n borderBottomLeftRadius: theme.spacing(1) + 'px',\n borderBottomRightRadius: theme.spacing(1) + 'px'\n },\n iconBoxCircle: {\n height: '100%',\n borderRadius: '50%'\n },\n editIcon: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n fontSize: theme.spacing(2) + 'px',\n color: '#fff'\n },\n uploadInput: {\n display: 'none !important'\n },\n userInfoAvatar: {\n width: theme.spacing(7),\n height: theme.spacing(7)\n },\n circleUserInfoAvatar: {\n width: theme.spacing(10),\n height: theme.spacing(10)\n }\n})\n\nclass AvatarUploader extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n showImgIcon: false\n }\n this.uploadFile = this.uploadFile.bind(this)\n this.instanceID = ''\n }\n\n componentDidMount () {\n this.instanceID = Math.floor(Math.random() * 1E6)\n }\n\n uploadFile (e) {\n const { appendData, name, dataProvider } = this.props\n const file = e.target.files[0]\n const data = { ...appendData }\n data[name + '_BINARY'] = file\n\n if (!file) {\n return false\n }\n\n dataProvider(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(this.props.onUpdate)\n }\n\n render () {\n const { classes, src, type } = this.props\n return (\n \n {\n this.setState({\n showImgIcon: true\n })\n }}\n onMouseLeave={() => {\n this.setState({\n showImgIcon: false\n })\n }}\n >\n {type === 'avatar'\n ? \n : 1 ? src : ''}\n className={classNames(classes.userInfoAvatar)}\n >\n {src.length === 1 ? src : ''}\n }\n {this.state.showImgIcon &&\n \n \n \n }\n \n \n \n )\n }\n}\n\nAvatarUploader.propTypes = {\n classes: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n src: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onUpdate: PropTypes.func.isRequired,\n dataProvider: PropTypes.func.isRequired,\n appendData: PropTypes.object.isRequired,\n type: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(AvatarUploader)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport TextField from '@material-ui/core/TextField'\nimport Button from '@material-ui/core/Button'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport AvatarUploader from 'APPSRC/components/unit/AvatarUploader'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px',\n marginTop: theme.spacing(4)\n },\n mainMarginTop: {\n marginTop: theme.spacing(3)\n },\n mainMarginBottom: {\n marginBottom: theme.spacing(1)\n },\n noMarginTop: {\n marginTop: 'unset'\n },\n title: {\n marginTop: theme.spacing(3),\n marginBottom: theme.spacing(1)\n },\n pl: {\n paddingLeft: theme.spacing(4) + 'px !important'\n },\n btn: {\n color: theme.palette.primary.main,\n cursor: 'pointer'\n },\n paper: {\n paddingBottom: theme.spacing(10)\n },\n fold: {\n fontWeight: 500\n },\n flexRow: {\n display: 'flex',\n flexFlow: 'row nowrap',\n justifyContent: 'flex-start',\n alignItems: 'center'\n },\n flexRowCenter: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n padding: theme.spacing(1.5) + 'px ' + theme.spacing(1) + 'px',\n marginLeft: theme.spacing(4)\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n }\n})\n\nclass UserSettingGeneral extends React.Component {\n constructor (props) {\n super(props)\n this.updateUserInfo = this.updateUserInfo.bind(this)\n this.mountedFlag = false\n const { currentUserInfo } = this.props\n this.state = {\n name: currentUserInfo.name || '',\n email: currentUserInfo.email || '',\n team: currentUserInfo.team || '',\n role: currentUserInfo.role || '',\n oldPassword: '',\n newPassword: '',\n againPassword: '',\n mfaMode: 0, // 0 = options, 1 = settings\n mfaQRCodeData: '',\n mfaSecret: '',\n mfaCode1: '',\n mfaCode2: '',\n error: {}\n }\n\n this.checkBaseInfo = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^\\S+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.userName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{2,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 2, n2: 50 }\n )\n },\n {\n name: 'email',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n passPattern: /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'team',\n passPattern: /^.{0,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 50 }\n )\n },\n {\n name: 'role',\n passPattern: /^.{0,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 50 }\n )\n }\n ])\n\n this.checkBaseResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'data',\n exceptionCode: 0x0405,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.updateFail' }\n )\n }\n ])\n\n this.checkPWDResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'oldPassword',\n exceptionCode: 0x0410,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.password' }) }\n )\n }\n ])\n\n this.checkMFAInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'mfaCode1',\n passPattern: /^\\d{6}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.mfaCode' }) }\n )\n },\n {\n name: 'mfaCode2',\n passPattern: /^\\d{6}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.mfaCode' }) }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'mfaCode1',\n exceptionCode: 0x0411,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.mfaCode' }) }\n )\n },\n {\n name: 'mfaCode2',\n exceptionCode: 0x0412,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.mfaCode' }) }\n )\n }\n ])\n }\n\n checkPWDInput () {\n const validateArr = [\n {\n name: 'oldPassword',\n passPattern: /^.{6,}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.oldPassword' }) }\n )\n },\n {\n name: 'newPassword',\n passPattern: /^.{6,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 6, n2: 50 }\n )\n },\n {\n name: 'againPassword',\n passPattern: new RegExp('^' + this.state.newPassword + '$'),\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.inputNotSame' }\n )\n }\n ]\n return ValidatorGenerator.stateValidator(this, validateArr)()\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.updateUserInfo()\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentUserInfo.name !== nextProps.currentUserInfo.name ||\n this.props.currentUserInfo.email !== nextProps.currentUserInfo.email ||\n this.props.currentUserInfo.team !== nextProps.currentUserInfo.team ||\n this.props.currentUserInfo.role !== nextProps.currentUserInfo.role\n ) {\n this.setState({\n name: nextProps.currentUserInfo.name || '',\n email: nextProps.currentUserInfo.email || '',\n team: nextProps.currentUserInfo.team || '',\n role: nextProps.currentUserInfo.role || ''\n })\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n avatarUploaded (data) {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.updateUserInfo()\n }\n }\n\n updateUserInfo () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n if (!data.data.mfaEnabled) {\n this.prepareMFADeviceSetup()\n }\n }\n })\n }\n\n updateBasicInfo () {\n if (!this.checkBaseInfo()) {\n return false\n }\n\n UserData.updateBasicInfo({\n name: this.state.name,\n email: this.state.email,\n team: this.state.team,\n role: this.state.role\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((result) => {\n if (!result.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.updated' }), 0))\n this.updateUserInfo()\n } else if (!this.checkBaseResponse(result.code)) {\n return false\n }\n })\n }\n\n updatePassword () {\n const { oldPassword, newPassword } = this.state\n if (!this.checkPWDInput()) {\n return false\n }\n\n UserData.updatePassword({\n current: oldPassword,\n new: newPassword\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.updated' }), 0))\n this.updateUserInfo()\n this.clearPWD()\n } else if (!this.checkPWDResponse(data.code)) {\n return false\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n }\n })\n }\n\n clearPWD () {\n this.setState({\n oldPassword: '',\n newPassword: '',\n againPassword: ''\n })\n }\n\n prepareMFADeviceSetup () {\n this.setState({ MFAPending: true })\n UserData.getMFAData()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ MFAPending: false })\n if (data && !data.code && data.data) {\n this.setState({\n mfaMode: 1,\n mfaQRCodeData: data.data.image,\n mfaSecret: data.data.secret,\n mfaCode1: '',\n mfaCode2: ''\n })\n }\n })\n }\n\n revokeMFADevice () {\n this.setState({ MFAPending: true })\n UserData.revokeMFAData()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ MFAPending: false })\n if (data && !data.code && data.data) {\n this.updateUserInfo()\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.removed' }), 0))\n }\n })\n }\n\n updateMFADevice () {\n if (!this.checkMFAInput()) {\n return false\n }\n\n if (this.state.mfaCode1 === this.state.mfaCode2) {\n this.setState({\n error: {\n ...this.state.error,\n mfaCode2: this.props.intl.formatMessage({ id: 'message.error.inputSame' })\n }\n })\n return false\n }\n\n this.setState({ MFAPending: true })\n UserData.updateMFAData({\n secret: this.state.mfaSecret,\n code1: this.state.mfaCode1,\n code2: this.state.mfaCode2\n })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ MFAPending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.updated' }), 0))\n this.setState({\n mfaMode: 0,\n mfaSecret: '',\n mfaCode1: '',\n mfaCode2: ''\n })\n this.updateUserInfo()\n } else if (!this.checkResponse(data.code)) {\n return false\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n }\n })\n }\n\n render () {\n const { currentUserInfo, classes, intl } = this.props\n\n return (\n \n { intl.formatMessage({ id: 'menu.profile' }) }\n \n \n \n \n \n { intl.formatMessage({ id: 'label.userName' }) }\n \n \n {\n const name = e.target.value\n const error = {}\n this.setState({ name, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.email' }) }\n \n \n {\n const email = e.target.value\n const error = {}\n this.setState({ email, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.team' }) }\n \n \n {\n const team = e.target.value\n const error = {}\n this.setState({ team, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.role' }) }\n \n \n {\n const role = e.target.value\n const error = {}\n this.setState({ role, error })\n }}\n />\n \n\n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.userAvatar' }) }\n \n \n this.avatarUploaded(data)}\n dataProvider={UserData.uploadAvatar}\n />\n \n \n \n \n\n \n { intl.formatMessage({ id: 'label.security' }) }\n \n \n \n \n \n { intl.formatMessage({ id: 'label.oldPassword' }) }\n \n \n {\n const oldPassword = e.target.value\n const error = {}\n this.setState({ oldPassword, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.newPassword' }) }\n \n \n {\n const newPassword = e.target.value\n const error = {}\n this.setState({ newPassword, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.newPasswordConfirm' }) }\n \n \n {\n const againPassword = e.target.value\n const error = {}\n this.setState({ againPassword, error })\n }}\n />\n \n \n \n \n \n \n \n\n \n { intl.formatMessage({ id: 'label.twoFactorAuthentication' }) }\n \n \n { (this.state.mfaMode === 0 && currentUserInfo.mfaEnabled) && \n \n   \n \n }\n { (this.state.mfaMode === 1 || !currentUserInfo.mfaEnabled) && \n \n {intl.formatMessage({ id: 'message.mfaGuide' })}\n \n \n {this.state.MFAPending\n ? \n : }\n \n \n this.setState({ mfaCode1: e.target.value })}\n />\n \n \n this.setState({ mfaCode2: e.target.value })}\n />\n \n \n \n \n }\n )\n }\n}\n\nUserSettingGeneral.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UserSettingGeneral)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nconst styles = (theme) => ({\n root: {\n padding: theme.spacing(0.5) + 'px',\n lineHeight: 1.5,\n fontSize: theme.spacing(1.5) + 'px',\n fontWeight: 'normal',\n display: 'inline',\n borderRadius: theme.spacing(0.5)\n },\n iconPadding: {\n paddingLeft: theme.spacing(1) + 'px'\n },\n icon: {\n width: 0,\n left: '-14px',\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'middle'\n }\n})\n\nclass InlineMarker extends React.Component {\n render () {\n const { classes, theme, icon, text, color, background } = this.props\n const extraColor = {\n containedInfo: {\n main: theme.palette.primary.contrastText,\n lighter: theme.palette.secondary.main\n }\n }\n\n const bg = background === undefined ? true : background\n const palette = color\n ? (theme.palette[color] ? theme.palette : extraColor)[color]\n : theme.palette.primary\n return icon\n ? \n
\n {text}\n
\n : \n {text}\n \n }\n}\n\nInlineMarker.propTypes = {\n classes: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n icon: PropTypes.object,\n text: PropTypes.string.isRequired,\n color: PropTypes.string,\n background: PropTypes.bool\n}\n\nexport default withTheme(\n withStyles(styles)(InlineMarker)\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Switch from '@material-ui/core/Switch'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { plAngleDown } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nconst IOSSwitch = withStyles((theme) => ({\n root: {\n padding: 0,\n width: theme.spacing(6),\n height: theme.spacing(3),\n margin: theme.spacing(1),\n marginRight: theme.spacing(4.5)\n },\n disabled: {\n '& + $track': {\n cursor: 'not-allowed !important'\n }\n },\n switchBase: {\n padding: 1,\n '&$checked': {\n transform: 'translateX(24px)',\n color: theme.palette.primary.contrastText,\n '& + $track': {\n opacity: 1,\n border: 'none'\n }\n },\n '&$focusVisible $thumb': {\n color: theme.palette.primary.light,\n border: '6px solid ' + theme.palette.border\n }\n },\n thumb: {\n width: '22px',\n height: '22px'\n },\n track: {\n opacity: 1,\n borderRadius: '12px',\n boxSizing: 'border-box',\n backgroundColor: theme.palette.text.lighter,\n transition: theme.transitions.create(['background-color', 'border'])\n },\n checked: {},\n focusVisible: {}\n}))(({ classes, ...props }) => {\n return (\n \n )\n})\n\nconst styles = (theme) => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n content: {\n paddingBottom: theme.spacing(4),\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border\n },\n subtitle: {\n marginBottom: '14px'\n },\n desc: {\n fontSize: '14px'\n },\n title: {\n marginBottom: theme.spacing(3),\n '&:last-child': {\n marginBottom: 0\n },\n '& table tr th:nth-of-type(2), & table tr td:nth-of-type(2)': {\n textAlign: 'right'\n }\n },\n tableFold: {\n '& table th': {\n border: '0px'\n },\n '& table tbody': {\n display: 'none'\n }\n },\n switch: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n paddingRight: theme.spacing(12.5)\n },\n icon: {\n '& svg': {\n height: '12px !important',\n color: theme.palette.text.light,\n transform: 'rotate(180deg)',\n transition: 'transform .3s'\n }\n },\n span: {\n marginLeft: theme.spacing(2)\n },\n fold: {\n '& svg': {\n transform: 'rotate(0deg)'\n }\n },\n otherRepository: {\n '& table thead': {\n display: 'none'\n },\n '& table tr td:last-child': {\n width: '50px'\n }\n }\n})\n\nclass UserSettingNotification extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n refusedList: null,\n openSet: {},\n groupFold: {},\n otherRepository: false\n }\n }\n\n componentDidMount () {\n this.getData()\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(this.props.currentUserInfo) !== JSON.stringify(nextProps.currentUserInfo) ||\n JSON.stringify(this.props.groupList) !== JSON.stringify(nextProps.groupList) ||\n JSON.stringify(this.props.repositoryList) !== JSON.stringify(nextProps.repositoryList) ||\n JSON.stringify(this.state.refusedList) !== JSON.stringify(nextState.refusedList)) {\n this.changeOpenSet(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n changeOpenSet (props, state) {\n const { currentUserInfo, groupList, repositoryList } = props\n const { refusedList, openSet } = state\n let otherRepository = false\n if (currentUserInfo.id) {\n openSet[Constants.notificationStatus.mr] = this.isUserNotificationOpen(Constants.notificationStatus.mr, currentUserInfo.notification)\n openSet[Constants.notificationStatus.email] = this.isUserNotificationOpen(Constants.notificationStatus.email, currentUserInfo.notification)\n }\n\n if (refusedList) {\n repositoryList.length && repositoryList.map((item, index) => {\n openSet[item.id] = this.isTargetOpen(state, item.id)\n\n // not in group, just in repository\n if (groupList.length && groupList.filter(FilterGenerator.id(item.group.id)).length === 0) {\n otherRepository = true\n }\n return true\n })\n groupList.length && groupList.map((item, index) => {\n openSet[item.id] = this.isTargetOpen(state, item.id)\n\n // if all repo refuse, group display refuse\n if (openSet[item.id] && repositoryList.length) {\n const repo = repositoryList.filter(FilterGenerator.group(item.id))\n if (repo.length) {\n const refusedRepo = repo.filter((repoItem, index) => {\n return !openSet[repoItem.id] || repoItem.role < UAC.Role.DEVELOPER\n })\n openSet[item.id] = !(repo.length === refusedRepo.length)\n }\n }\n return true\n })\n }\n\n this.setState({\n openSet: openSet,\n otherRepository: otherRepository\n })\n }\n\n isUserNotificationOpen (offset, status) {\n return !(status >> (offset - 1) & 1)\n }\n\n isTargetOpen (state, target) {\n return !(state.refusedList.filter(FilterGenerator.target(target)).length)\n }\n\n getData () {\n this.setState({ pending: true })\n UserData.notificationRefused({})\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({\n pending: false,\n refusedList: data.code ? [] : data.data\n })\n })\n }\n\n reloadUserInfo () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n }\n\n updated (open, data, isUser) {\n const { dispatchEvent, intl } = this.props\n this.setState({ pending: false })\n if (!data.code) {\n isUser ? this.reloadUserInfo() : this.getData()\n } else {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n }\n }\n\n userNotificationSetting (offset) {\n const { pending, openSet } = this.state\n if (pending || !offset) {\n return false\n }\n\n const open = openSet[offset] = !openSet[offset]\n this.setState({\n pending: true,\n openSet: openSet\n })\n UserData.userNotificationSetting({\n offset: offset\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.updated(open, data, true)\n })\n }\n\n setGroupOrRepoNotification (target, type) {\n const { pending, openSet } = this.state\n if (pending || !type || !target) {\n return false\n }\n\n const open = openSet[target] = !openSet[target]\n this.setState({\n pending: true,\n openSet: openSet\n })\n UserData.setGroupOrRepoNotification({\n type: type,\n target: target,\n open: open ? 1 : 0\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.updated(open, data, false)\n })\n }\n\n tableFold (group) {\n const { groupFold } = this.state\n groupFold[group] = !groupFold[group]\n this.setState({ groupFold: groupFold })\n }\n\n getTableRow (item, className) {\n const { classes, intl } = this.props\n const { openSet, groupFold } = this.state\n const isRepository = !!item.group\n const disabled = item.role < UAC.Role.DEVELOPER\n return [\n \n {isRepository && {item.group.displayName + '/'}}{item.displayName}   \n \n ,\n this.setGroupOrRepoNotification(\n item.id,\n isRepository ? Constants.notificationRefuseType.repository : Constants.notificationRefuseType.group\n )\n }\n />,\n !isRepository\n ? this.tableFold(item.id)}\n className={[classes.icon, groupFold[item.id] ? classes.fold : ''].join(' ')} />\n : ''\n ]\n }\n\n getRepositoryTable () {\n const { repositoryList, groupList } = this.props\n const repositoryTableData = [\n ['auto', 'auto', '50px'],\n ['label.repository', 'label.notificationReceiveStatus', '']\n ]\n\n repositoryList.map((item, index) => {\n groupList.filter(FilterGenerator.id(item.group.id)).length === 0 && repositoryTableData.push(this.getTableRow(item, ''))\n return true\n })\n\n return repositoryTableData\n }\n\n render () {\n const { currentUserInfo, groupList, repositoryList, classes, intl } = this.props\n const { refusedList, openSet, groupFold, otherRepository } = this.state\n\n return (\n \n {intl.formatMessage({ id: 'label.notification' })}\n \n {refusedList\n ? \n {currentUserInfo.id && \n \n \n {intl.formatMessage({ id: 'message.mergeRequestNotification' })}\n {intl.formatMessage({ id: 'message.mergeRequestNotificationDesc' })}\n \n \n this.userNotificationSetting(Constants.notificationStatus.mr)}\n />\n \n \n \n \n {intl.formatMessage({ id: 'message.emailNotification' })}\n {intl.formatMessage({ id: 'message.emailNotificationDesc' })}\n \n \n this.userNotificationSetting(Constants.notificationStatus.email)}\n />\n \n \n \n }\n \n {intl.formatMessage({ id: 'label.repository' })}\n \n {groupList.length > 0 && repositoryList.length > 0 && groupList.map((item, index) => {\n const final = [\n ['auto', 'auto', '50px'],\n this.getTableRow(item, '')\n ]\n repositoryList.filter(FilterGenerator.group(item.id)).map((repo, repoIndex) => {\n final.push(this.getTableRow(repo, classes.span))\n return true\n })\n return \n })\n }\n {otherRepository && }\n \n : \n \n \n }\n )\n }\n}\n\nUserSettingNotification.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n repositoryList: state.DataStore.repositoryList,\n groupList: state.DataStore.groupList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UserSettingNotification)\n )\n )\n)\n","import APIRequest from 'APPSRC/data_providers/main'\n\nfunction userList (data) {\n return APIRequest.POST('/api/admin/userList', data)\n}\n\nfunction updateUserStatus (data) {\n return APIRequest.POST('/api/admin/updateUserStatus', data)\n}\n\nfunction closeUserMFA (data) {\n return APIRequest.POST('/api/admin/closeUserMFA', data)\n}\n\nfunction resetPassword (data) {\n return APIRequest.POST('/api/admin/resetPassword', data)\n}\n\nfunction checkPassword (data) {\n return APIRequest.POST('/api/admin/checkPassword', data)\n}\n\nfunction setAdministrator (data) {\n return APIRequest.POST('/api/admin/setAdministrator', data)\n}\n\nfunction addUser (data) {\n return APIRequest.POST('/api/admin/addUser', data)\n}\n\nfunction groupList (data) {\n return APIRequest.POST('/api/admin/groupList', data)\n}\n\nfunction groupMembers (data) {\n return APIRequest.POST('/api/admin/groupMembers', data)\n}\n\nfunction groupAddMember (data) {\n return APIRequest.POST('/api/admin/groupAddMember', data)\n}\n\nfunction groupRemoveMember (data) {\n return APIRequest.POST('/api/admin/groupRemoveMember', data)\n}\n\nfunction setGroupOwner (data) {\n return APIRequest.POST('/api/admin/setGroupOwner', data)\n}\n\nfunction repositoryList (data) {\n return APIRequest.POST('/api/admin/repositoryList', data)\n}\n\nfunction repositoryMembers (data) {\n return APIRequest.POST('/api/admin/repositoryMembers', data)\n}\n\nfunction repositoryAddMember (data) {\n return APIRequest.POST('/api/admin/repositoryAddMember', data)\n}\n\nfunction repositoryRemoveMember (data) {\n return APIRequest.POST('/api/admin/repositoryRemoveMember', data)\n}\n\nfunction systemStatus () {\n return APIRequest.GET('/api/admin/systemStatus')\n}\n\nfunction getConfig () {\n return APIRequest.GET('/api/admin/config')\n}\n\nfunction setConfig (data) {\n return APIRequest.POST('/api/admin/config', data)\n}\n\nexport default {\n userList,\n updateUserStatus,\n closeUserMFA,\n resetPassword,\n checkPassword,\n setAdministrator,\n addUser,\n groupList,\n groupMembers,\n groupAddMember,\n groupRemoveMember,\n setGroupOwner,\n repositoryList,\n repositoryMembers,\n repositoryAddMember,\n repositoryRemoveMember,\n systemStatus,\n getConfig,\n setConfig\n}\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport { formatNumber, formatUnit } from 'APPSRC/helpers/VaribleHelper'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\n\n// style\nconst styles = theme => ({\n card: {\n minWidth: theme.spacing(22),\n height: theme.spacing(14)\n },\n content: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2)\n },\n title: {\n marginBottom: theme.spacing(2)\n },\n icon: {\n textAlign: 'right',\n marginTop: theme.spacing(1)\n },\n clickable: {\n cursor: 'pointer'\n }\n})\n\nclass NumbericDashboard extends Component {\n render () {\n const { classes, paletteName, theme, title, icon, label, unit, numbericValue, to, intl, history } = this.props\n let palette = (paletteName && theme.palette[paletteName]) ? theme.palette[paletteName] : {}\n let displayValue = numbericValue\n let displayUnit = unit\n\n if (paletteName === 'fromValue') {\n if (typeof numbericValue === 'number') {\n if (numbericValue >= 85) {\n // Excellent\n palette = theme.palette.error\n } else if (numbericValue >= 70) {\n // Good\n palette = theme.palette.warning\n } else {\n // Fair\n palette = theme.palette.success\n }\n } else {\n if (numbericValue === 'Running') {\n palette = theme.palette.success\n } else {\n palette = theme.palette.error\n }\n }\n }\n\n if (displayValue) {\n displayValue = ((numbericValue === parseFloat(numbericValue)) ? formatNumber(numbericValue) : numbericValue) || 'NaN'\n }\n\n if (displayUnit) {\n [displayValue, displayUnit] = formatUnit(displayValue, displayUnit)\n }\n\n return (\n { to && history.push(to) }}\n >\n \n \n \n \n { title || (label ? intl.formatMessage({ id: label }) : '-') }\n \n \n {(numbericValue || numbericValue === 0)\n ? \n {displayValue} { displayUnit || '' }\n \n : }\n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nNumbericDashboard.propTypes = {\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n paletteName: PropTypes.string,\n to: PropTypes.string,\n label: PropTypes.string,\n title: PropTypes.string,\n icon: PropTypes.object,\n unit: PropTypes.string,\n numbericValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(NumbericDashboard)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport AdminData from 'APPSRC/data_providers/AdminData'\n// import Constants from 'APPSRC/config/Constants'\nimport NumbericDashboard from 'APPSRC/components/unit/NumbericDashboard'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\n// icons\nimport {\n psRepository,\n psRepositoryGroup,\n psMembers,\n psFolder,\n psNewFeature,\n psMeter\n} from '@pgyer/icons'\n\nconst styles = (theme) => ({})\n\nclass Dashboard extends React.Component {\n constructor (props) {\n super(props)\n this.mountedFlag = false\n this.state = {\n pending: true,\n data: null\n }\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData()\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(this.state) !== JSON.stringify(this.nextState)) {\n return true\n }\n return false\n }\n\n getData () {\n this.setState({ pending: true })\n AdminData.systemStatus()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (data && !data.code && data.data) {\n this.setState({ pending: false, data: data.data })\n }\n })\n }\n\n render () {\n const { intl } = this.props\n const { pending } = this.state\n return (\n \n { intl.formatMessage({ id: 'label.statistic' }) } \n \n \n \n \n \n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.systemResources' }) } \n \n \n \n \n \n \n \n {!pending && this.state.data.vm.disk.length > 0 && \n { intl.formatMessage({ id: 'label.diskUsgae' }) } \n }\n {!pending && this.state.data.vm.disk.map(\n (item, key) => \n \n )\n }\n \n { intl.formatMessage({ id: 'label.serviceStatus' }) } \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nDashboard.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n // classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Dashboard)\n )\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport Tabs from '@material-ui/core/Tabs'\nimport Tab from '@material-ui/core/Tab'\nimport { injectIntl } from 'react-intl'\n\n// style\nconst styles = theme => ({\n background: {\n backgroundColor: theme.palette.background.light\n }\n})\n\nclass TabHeader extends React.Component {\n render () {\n const { tabs, onChange, currentTab, children, classes } = this.props\n\n return (\n \n \n { tabs.map((label, key) => ) }\n \n \n \n {children}\n \n )\n }\n}\n\nTabHeader.propTypes = {\n children: PropTypes.node,\n currentTab: PropTypes.number,\n tabs: PropTypes.array.isRequired,\n onChange: PropTypes.func,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TabHeader)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport Avatar from '@material-ui/core/Avatar'\nimport Dialog from '@material-ui/core/Dialog'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport Pagination from '@material-ui/lab/Pagination'\nimport Typography from '@material-ui/core/Typography'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { psSetting, plCopy } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport AdminData from 'APPSRC/data_providers/AdminData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { copyToClipboard } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = (theme) => ({\n search: {\n display: 'flex'\n },\n keyword: {\n flexGrow: 1\n },\n sortLabel: {\n lineHeight: theme.spacing(4) + 'px',\n padding: '0px ' + theme.spacing(2) + 'px'\n },\n name: {\n display: 'flex',\n textAlign: 'left',\n alignItems: 'center',\n margin: theme.spacing(1) + 'px 0px'\n },\n icon: {\n margin: theme.spacing(1)\n },\n tag: {\n '& > *': {\n marginRight: theme.spacing(1)\n }\n },\n page: {\n display: 'flex',\n justifyContent: 'flex-end'\n }\n})\n\nclass Users extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: true,\n count: 0,\n list: [],\n category: 0,\n keyword: '',\n sort: 'name',\n page: 1,\n pagesize: 20,\n\n settingAnchor: null,\n settingUser: null,\n\n password1: '',\n password2: '',\n resetPassword: false,\n error: {},\n\n settingAdmin: false,\n password: '',\n\n addUser: false,\n name: '',\n email: '',\n newPassword: ''\n }\n\n this.mountedFlag = false\n this.timeout = null\n\n this.checkPasswordInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'password1',\n passPattern: /^.{6,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 6, n2: 50 }\n )\n }\n ])\n\n this.checkEmailInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.{1,15}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 1, n2: 15 }\n )\n },\n {\n name: 'email',\n passPattern: /^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.checkEmailResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0406,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0405,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.AddFail' })\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData(this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.category !== nextState.category ||\n this.state.keyword !== nextState.keyword ||\n this.state.sort !== nextState.sort ||\n this.state.page !== nextState.page) {\n this.state.page === nextState.page && this.setState({ page: 1 })\n this.timeout && clearTimeout(this.timeout)\n this.timeout = setTimeout(() => this.getData(nextState), 200)\n }\n\n return true\n }\n\n getData (state) {\n const { category, keyword, sort, page, pagesize } = state\n\n this.setState({ pending: true })\n AdminData.userList({\n category: category,\n keyword: keyword,\n sort: sort,\n page: page,\n pagesize: pagesize\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n !data.code && this.setState({\n count: data.data.count,\n list: data.data.list\n })\n })\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { list } = this.state\n const final = []\n\n list.map(item => {\n final.push([\n \n \n \n {item.name}\n {item.email}\n \n ,\n {item.projects},\n {item.created},\n \n {item.mfaEnabled && }\n {item.admin && }\n {!item.status && }\n ,\n this.setState({ settingAnchor: e.target, settingUser: item })} icon={psSetting} />\n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto', 'auto', 'auto'],\n ['label.name', 'label.repository', 'label.requestCreated', '', ''],\n ...final\n ]\n }\n\n updateUserStatusConfirm () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n this.setState({ settingAnchor: null })\n\n if (!settingUser) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('setting_user_status', {\n title: intl.formatMessage({ id: settingUser.status ? 'message.userStatusDisabled' : 'message.userStatusEnabled' }),\n description: intl.formatMessage(\n { id: settingUser.status ? 'message.userStatusDisabled_N' : 'message.userStatusEnabled_N' },\n { n: settingUser.name }\n ),\n reject: () => { return true },\n accept: () => this.updateUserStatus()\n }))\n }\n\n updateUserStatus () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n AdminData.updateUserStatus({\n user: settingUser.id,\n status: settingUser.status ? Constants.commonStatus.delete : Constants.commonStatus.normal\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: settingUser.status ? 'message.disabled' : 'message.enabled' }), 0))\n this.getData(this.state)\n }\n })\n }\n\n closeUserMFAConfirm () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n this.setState({ settingAnchor: null })\n\n if (!settingUser) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('disable_user_mfa', {\n title: intl.formatMessage({ id: 'message.closeMFA' }),\n description: intl.formatMessage({ id: 'message.closeMFA_N' }, { n: settingUser.name }),\n reject: () => { return true },\n accept: () => this.closeUserMFA()\n }))\n }\n\n closeUserMFA () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n AdminData.closeUserMFA({ user: settingUser.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.closed' }), 0))\n this.getData(this.state)\n }\n })\n }\n\n resetPassword () {\n const { intl } = this.props\n const { settingUser, password1, password2 } = this.state\n if (!this.checkPasswordInput()) {\n return false\n }\n\n if (password2 !== password1) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.inputNotSame' }), 2))\n return false\n }\n\n AdminData.resetPassword({\n user: settingUser.id,\n password: password1\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ resetPassword: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.reseted' }), 0))\n }\n })\n }\n\n checkPassword () {\n const { intl } = this.props\n const { password } = this.state\n\n AdminData.checkPassword({ password: password })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.setAdministrator()\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error._S_invalid' }, { s: intl.formatMessage({ id: 'label.password' }) }), 2))\n }\n })\n }\n\n setAdministrator () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n this.setState({ settingAdmin: false })\n\n AdminData.setAdministrator({\n user: settingUser.id,\n admin: settingUser.admin ? 0 : 1\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n this.getData(this.state)\n }\n })\n }\n\n addUser () {\n const { name, email } = this.state\n if (!this.checkEmailInput()) {\n return false\n }\n\n AdminData.addUser({\n name: name,\n email: email\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.setState({ addUser: false, newPassword: data.data.password })\n this.getData(this.state)\n } else if (!this.checkEmailResponse(data.code)) {\n return false\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n const {\n pending, count, category, keyword, sort, page, pagesize,\n settingAnchor, settingUser,\n resetPassword, password1, password2, error,\n settingAdmin, password,\n addUser, name, email, newPassword\n } = this.state\n\n return \n \n !pending && this.setState({ category: value })}\n tabs={[\n intl.formatMessage({ id: 'label.all' }),\n intl.formatMessage({ id: 'label.enabledMFA' }),\n intl.formatMessage({ id: 'label.disabledMFA' }),\n intl.formatMessage({ id: 'label.blocked' })\n ]}\n />\n \n \n \n \n \n \n this.setState({ keyword: e.target.value })}\n />\n {intl.formatMessage({ id: 'label.sort' })}\n this.setState({ sort: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.name' })}\n {intl.formatMessage({ id: 'label.email' })}\n {intl.formatMessage({ id: 'label.createTime' })}\n \n \n \n {\n pending\n ? \n : count\n ? <>\n \n \n this.setState({ page: p })} shape='rounded' color='primary' />\n \n \n : {intl.formatMessage({ id: 'label.noMore' })}\n }\n\n {\n settingUser && <>\n this.setState({ settingAnchor: null })}\n >\n this.updateUserStatusConfirm()}>\n \n \n {\n settingUser.status && this.setState({ resetPassword: true, settingAnchor: null })}>\n \n \n }\n {\n settingUser.status && settingUser.mfaEnabled && this.closeUserMFAConfirm()}>\n \n \n }\n {\n settingUser.status && this.setState({ settingAdmin: true, settingAnchor: null, password: '' })}>\n \n \n }\n \n\n this.setState({ resetPassword: false })}\n >\n \n {intl.formatMessage({ id: 'message.reset_N_Password' }, { n: settingUser.name })}\n \n \n \n \n this.setState({ password1: e.target.value })}\n />\n \n \n this.setState({ password2: e.target.value })}\n />\n \n \n  \n \n \n \n \n \n\n this.setState({ settingAdmin: false })}\n >\n \n {intl.formatMessage({ id: settingUser.admin ? 'message.cancelAdministrator' : 'message.setAdministrator' })}\n \n \n \n \n this.setState({ password: e.target.value })}\n />\n \n \n  \n \n \n \n \n \n \n }\n this.setState({ addUser: false })}\n >\n \n {intl.formatMessage({ id: 'label.addUser' })}\n \n \n \n \n this.setState({ name: e.target.value })}\n />\n \n \n this.setState({ email: e.target.value })}\n />\n \n \n  \n \n \n \n \n \n this.setState({ newPassword: '' })}\n >\n \n {intl.formatMessage({ id: 'message.successAddUser' })}\n \n \n \n \n {intl.formatMessage({ id: 'label.name' })}: {name} \n \n \n {intl.formatMessage({ id: 'label.email' })}: {email} \n \n \n \n {intl.formatMessage({ id: 'label.newPassword' })}: {newPassword} \n copyToClipboard(newPassword, () => this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.copied' }), 0)), e.target.parentElement)} icon={plCopy} />\n \n \n \n \n \n \n \n \n \n }\n}\n\nUsers.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(Users)\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Typography from '@material-ui/core/Typography'\n\n// utils\nimport { format, formatRelative } from 'date-fns'\nimport localeCN from 'date-fns/locale/zh-CN'\nimport localeEN from 'date-fns/locale/en-US'\n\nclass FormattedTime extends Component {\n render () {\n let { currentLanguage, timestamp, absolute, relative } = this.props\n const localObject = currentLanguage === 'zh-cn' ? localeCN : localeEN\n\n // 31536000000 = Date('1971/01/01')\n timestamp *= timestamp < 31536E6 ? 1E3 : 1\n const current = (new Date()).getTime()\n\n if (!absolute && !relative) {\n if (Math.abs(timestamp - current) < 6048E5) {\n // diff less than 7 days\n relative = true\n } else {\n absolute = true\n }\n }\n\n return (\n { absolute && timestamp > 0 && format(timestamp, 'yyyy-MM-dd HH:mm:ss', { locale: localObject }) }\n { relative && !absolute && timestamp > 0 && formatRelative(timestamp, current, { locale: localObject }) }\n )\n }\n}\n\nFormattedTime.propTypes = {\n timestamp: PropTypes.number.isRequired,\n currentLanguage: PropTypes.string.isRequired,\n absolute: PropTypes.bool,\n relative: PropTypes.bool\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FormattedTime)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport Avatar from '@material-ui/core/Avatar'\nimport Dialog from '@material-ui/core/Dialog'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport Pagination from '@material-ui/lab/Pagination'\nimport Typography from '@material-ui/core/Typography'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { psMemberAlt, psSetting, plTrash } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport AdminData from 'APPSRC/data_providers/AdminData'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n search: {\n display: 'flex'\n },\n keyword: {\n flexGrow: 1\n },\n sortLabel: {\n lineHeight: theme.spacing(4) + 'px',\n padding: '0px ' + theme.spacing(2) + 'px'\n },\n name: {\n display: 'flex',\n textAlign: 'left',\n alignItems: 'center',\n margin: theme.spacing(1) + 'px 0px'\n },\n icon: {\n margin: theme.spacing(1)\n },\n page: {\n display: 'flex',\n justifyContent: 'flex-end'\n },\n tag: {\n '& > *': {\n marginLeft: theme.spacing(1)\n }\n }\n})\n\nclass Groups extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: true,\n count: 0,\n list: [],\n keyword: '',\n sort: 'name',\n page: 1,\n pagesize: 20,\n\n settingAnchor: null,\n settingGroup: null,\n\n members: [],\n memberManage: false,\n email: '',\n error: {}\n }\n\n this.mountedFlag = false\n this.timeout = null\n\n this.checkAddResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0407,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0408,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.canNotAddCreatorAsMember' }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData(this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.keyword !== nextState.keyword ||\n this.state.sort !== nextState.sort ||\n this.state.page !== nextState.page) {\n this.state.page === nextState.page && this.setState({ page: 1 })\n this.timeout && clearTimeout(this.timeout)\n this.timeout = setTimeout(() => this.getData(nextState), 200)\n }\n\n return true\n }\n\n getData (state) {\n const { keyword, sort, page, pagesize } = state\n\n this.setState({ pending: true })\n AdminData.groupList({\n keyword: keyword,\n sort: sort,\n page: page,\n pagesize: pagesize\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n !data.code && this.setState({\n count: data.data.count,\n list: data.data.list\n })\n })\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { list } = this.state\n const final = []\n\n list.map(item => {\n final.push([\n \n {\n item.icon\n ? \n : {item.name[0].substr(0, 1).toUpperCase()}\n }\n {item.displayName}\n ,\n ,\n item.status === Constants.commonStatus.normal\n ? this.setState({ settingAnchor: e.target, settingGroup: item })} icon={psSetting} />\n : \n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto'],\n ['label.group', 'label.requestCreated', ''],\n ...final\n ]\n }\n\n openMemberManage () {\n const { settingGroup } = this.state\n\n this.setState({ memberManage: true, settingAnchor: null })\n\n if (!settingGroup) {\n return false\n }\n\n AdminData.groupMembers({ group: settingGroup.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => this.setState({ members: data.data }))\n }\n\n getMembersTable () {\n const { classes, intl } = this.props\n const { members } = this.state\n const final = []\n const roles = {\n [UAC.Role.GUEST]: 'label.guest',\n [UAC.Role.REPORTER]: 'label.reporter',\n [UAC.Role.DEVELOPER]: 'label.developer',\n [UAC.Role.MAINTAINER]: 'label.maintianer',\n [UAC.Role.OWNER]: 'label.owner'\n }\n\n members.map(item => {\n final.push([\n \n \n \n {item.name}\n {item.email}\n \n ,\n ,\n item.creatorFlag && ,\n ,\n \n {\n item.deleteFlag || item.status === Constants.commonStatus.delete\n ? \n : !item.creatorFlag && item.role < UAC.Role.OWNER && <>\n this.setRoleConfirm(item)} icon={psMemberAlt} />\n this.removeMemberConfirm(item)} icon={plTrash} />\n \n }\n \n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto', 'auto', 'auto'],\n ['label.name', 'label.role', '', 'label.joinedAt', ''],\n ...final\n ]\n }\n\n addMember () {\n const { intl } = this.props\n const { settingGroup, email } = this.state\n\n if (!settingGroup || !email) {\n return false\n }\n\n AdminData.groupAddMember({\n email: email,\n group: settingGroup.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.Added' }), 0))\n this.openMemberManage()\n } else if (!this.checkAddResponse(data.code)) {\n return false\n }\n })\n }\n\n removeMemberConfirm (member) {\n const { intl } = this.props\n\n if (!member) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('remove_group_member', {\n title: intl.formatMessage({ id: 'message.memberRemoveConfirm' }),\n description: intl.formatMessage({ id: 'message.confirmDelete' }, { s: ' \\'' + member.name + '\\'' }),\n reject: () => { return true },\n accept: () => this.removeMember(member)\n }))\n }\n\n removeMember (member) {\n const { intl, dispatchEvent } = this.props\n const { settingGroup } = this.state\n\n AdminData.groupRemoveMember({\n group: settingGroup.id,\n user: member.id\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.removed' }), 0))\n this.openMemberManage()\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.removeFail' }), 2))\n }\n })\n }\n\n setRoleConfirm (member) {\n const { intl } = this.props\n\n if (!member) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('set_group_member_role', {\n title: intl.formatMessage({ id: 'message.setGroupOwner_S' }, { s: ' \\'' + member.name + '\\'' }),\n description: '',\n reject: () => { return true },\n accept: () => this.setGroupOwner(member)\n }))\n }\n\n setGroupOwner (member) {\n const { intl, dispatchEvent } = this.props\n const { settingGroup } = this.state\n\n AdminData.setGroupOwner({\n group: settingGroup.id,\n user: member.id\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n this.openMemberManage()\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n const { pending, count, keyword, sort, page, pagesize, settingAnchor, memberManage, email, error } = this.state\n\n return \n \n \n this.setState({ keyword: e.target.value })}\n />\n {intl.formatMessage({ id: 'label.sort' })}\n this.setState({ sort: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.name' })}\n {intl.formatMessage({ id: 'label.createTime' })}\n \n \n \n {\n pending\n ? \n : count\n ? <>\n \n \n this.setState({ page: p })} shape='rounded' color='primary' />\n \n \n : {intl.formatMessage({ id: 'label.noMore' })}\n }\n this.setState({ settingAnchor: null })}\n >\n this.openMemberManage()}>\n \n \n \n this.setState({ memberManage: false })}\n >\n \n {intl.formatMessage({ id: 'label.memberManage' })}\n \n \n \n \n this.setState({ email: e.target.value })}\n /> \n \n \n \n \n \n \n \n \n \n \n }\n}\n\nGroups.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(Groups)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport Avatar from '@material-ui/core/Avatar'\nimport Dialog from '@material-ui/core/Dialog'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport Pagination from '@material-ui/lab/Pagination'\nimport Typography from '@material-ui/core/Typography'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { psSetting, plTrash } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport AdminData from 'APPSRC/data_providers/AdminData'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n search: {\n display: 'flex'\n },\n keyword: {\n flexGrow: 1\n },\n sortLabel: {\n lineHeight: theme.spacing(4) + 'px',\n padding: '0px ' + theme.spacing(2) + 'px'\n },\n name: {\n display: 'flex',\n textAlign: 'left',\n alignItems: 'center',\n margin: theme.spacing(1) + 'px 0px'\n },\n icon: {\n margin: theme.spacing(1)\n },\n page: {\n display: 'flex',\n justifyContent: 'flex-end'\n },\n tag: {\n '& > *': {\n marginLeft: theme.spacing(1)\n }\n }\n})\n\nclass Users extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: true,\n count: 0,\n list: [],\n keyword: '',\n sort: 'name',\n page: 1,\n pagesize: 20,\n\n settingAnchor: null,\n settingRepository: null,\n\n members: [],\n memberManage: false,\n email: '',\n error: {}\n }\n\n this.mountedFlag = false\n this.timeout = null\n\n this.checkAddResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0407,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0408,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.canNotAddCreatorAsMember' }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData(this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.keyword !== nextState.keyword ||\n this.state.sort !== nextState.sort ||\n this.state.page !== nextState.page) {\n this.state.page === nextState.page && this.setState({ page: 1 })\n this.timeout && clearTimeout(this.timeout)\n this.timeout = setTimeout(() => this.getData(nextState), 200)\n }\n\n return true\n }\n\n getData (state) {\n const { keyword, sort, page, pagesize } = state\n\n this.setState({ pending: true })\n AdminData.repositoryList({\n keyword: keyword,\n sort: sort,\n page: page,\n pagesize: pagesize\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n !data.code && this.setState({\n count: data.data.count,\n list: data.data.list\n })\n })\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { list } = this.state\n const final = []\n\n list.map(item => {\n final.push([\n \n {\n item.icon\n ? \n : {item.name[0].substr(0, 1).toUpperCase()}\n }\n {item.group.displayName} / {item.displayName}\n ,\n ,\n item.status === Constants.commonStatus.normal\n ? this.setState({ settingAnchor: e.target, settingRepository: item })} icon={psSetting} />\n : \n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto'],\n ['label.repository', 'label.requestCreated', ''],\n ...final\n ]\n }\n\n openMemberManage () {\n const { settingRepository } = this.state\n\n this.setState({ memberManage: true, settingAnchor: null })\n\n if (!settingRepository) {\n return false\n }\n\n AdminData.repositoryMembers({ repository: settingRepository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => this.setState({ members: data.data }))\n }\n\n getMembersTable () {\n const { classes, intl } = this.props\n const { members } = this.state\n const final = []\n const roles = {\n [UAC.Role.GUEST]: 'label.guest',\n [UAC.Role.REPORTER]: 'label.reporter',\n [UAC.Role.DEVELOPER]: 'label.developer',\n [UAC.Role.MAINTAINER]: 'label.maintianer',\n [UAC.Role.OWNER]: 'label.owner'\n }\n\n members.map(item => {\n final.push([\n \n \n \n {item.name}\n {item.email}\n \n ,\n ,\n \n {item.creatorFlag && }\n {item.groupMember && }\n ,\n ,\n \n {(item.deleteFlag || item.status === Constants.commonStatus.delete) && }\n {!item.creatorFlag && !item.groupMember && item.role < UAC.Role.OWNER && this.removeMemberConfirm(item)} icon={plTrash} />}\n \n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto', 'auto', 'auto'],\n ['label.name', 'label.role', '', 'label.joinedAt', ''],\n ...final\n ]\n }\n\n addMember () {\n const { intl } = this.props\n const { settingRepository, email } = this.state\n\n if (!settingRepository || !email) {\n return false\n }\n\n AdminData.repositoryAddMember({\n email: email,\n repository: settingRepository.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.Added' }), 0))\n this.openMemberManage()\n } else if (!this.checkAddResponse(data.code)) {\n return false\n }\n })\n }\n\n removeMemberConfirm (member) {\n const { intl } = this.props\n\n if (!member) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('remove_repository_member', {\n title: intl.formatMessage({ id: 'message.memberRemoveConfirm' }),\n description: intl.formatMessage({ id: 'message.confirmDelete' }, { s: ' \\'' + member.name + '\\'' }),\n reject: () => { return true },\n accept: () => this.removeMember(member)\n }))\n }\n\n removeMember (member) {\n const { intl, dispatchEvent } = this.props\n const { settingRepository } = this.state\n\n AdminData.repositoryRemoveMember({\n repository: settingRepository.id,\n user: member.id\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.removed' }), 0))\n this.openMemberManage()\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.removeFail' }), 2))\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n const { pending, count, keyword, sort, page, pagesize, settingAnchor, memberManage, email, error } = this.state\n\n return \n \n \n this.setState({ keyword: e.target.value })}\n />\n {intl.formatMessage({ id: 'label.sort' })}\n this.setState({ sort: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.name' })}\n {intl.formatMessage({ id: 'label.createTime' })}\n \n \n \n {\n pending\n ? \n : count\n ? <>\n \n \n this.setState({ page: p })} shape='rounded' color='primary' />\n \n \n : {intl.formatMessage({ id: 'label.noMore' })}\n }\n this.setState({ settingAnchor: null })}\n >\n this.openMemberManage()}>\n \n \n \n this.setState({ memberManage: false })}\n >\n \n {intl.formatMessage({ id: 'label.memberManage' })}\n \n \n \n \n this.setState({ email: e.target.value })}\n /> \n \n \n \n \n \n \n \n \n \n \n }\n}\n\nUsers.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(Users)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport TextField from '@material-ui/core/TextField'\nimport Switch from '@material-ui/core/Switch'\nimport Button from '@material-ui/core/Button'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport AdminData from 'APPSRC/data_providers/AdminData'\n// import Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n }\n})\n\nclass Settings extends React.Component {\n constructor (props) {\n super(props)\n this.mountedFlag = false\n this.state = {\n allowRegister: false,\n host: '',\n ssh: '',\n email_from: '',\n email_name: '',\n pending: true,\n error: {}\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'host',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.url' }) }\n )\n },\n {\n name: 'host',\n passPattern: /^http(s)?:\\/\\/[^/]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.urlPrefix' }) }\n )\n },\n {\n name: 'ssh',\n passPattern: /^[^@]+@.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.sshPrefix' }) }\n )\n },\n {\n name: 'email_name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.name' }) }\n )\n },\n {\n name: 'email_from',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email_from',\n passPattern: /^[^@]+@[^@]+\\.[^@]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData()\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n getData () {\n this.setState({ pending: true })\n AdminData.getConfig()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n pending: false,\n host: data.data.host,\n ssh: data.data.ssh,\n allowRegister: data.data.allowRegister,\n email_from: data.data.email.from,\n email_name: data.data.email.name\n })\n }\n })\n }\n\n updateConfig () {\n if (!this.checkInput()) {\n return false\n }\n\n const data = {\n host: this.state.host,\n ssh: this.state.ssh,\n allowRegister: this.state.allowRegister,\n email: { name: this.state.email_name, from: this.state.email_from }\n }\n\n const payload = {\n data: JSON.stringify(data)\n }\n\n this.setState({ pending: true })\n AdminData.setConfig(payload)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.updated' }), 0))\n this.getData()\n this.reloadUserData()\n }\n })\n }\n\n reloadUserData () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n\n return (\n \n { intl.formatMessage({ id: 'label.setting' }) }\n \n \n \n \n \n {intl.formatMessage({ id: 'label.host' })} \n \n \n \n \n {intl.formatMessage({ id: 'label.urlPrefix' })} \n \n \n this.setState({ host: e.target.value })}\n />\n \n \n {intl.formatMessage({ id: 'label.sshPrefix' })} \n \n \n this.setState({ ssh: e.target.value })}\n />\n \n \n \n  \n \n SMTP \n \n \n \n \n {intl.formatMessage({ id: 'label.senderName' })} \n \n \n this.setState({ email_name: e.target.value })}\n />\n \n \n {intl.formatMessage({ id: 'label.senderAddress' })} \n \n \n this.setState({ email_from: e.target.value })}\n />\n \n \n \n  \n \n {intl.formatMessage({ id: 'label.register' })} \n \n \n \n \n {intl.formatMessage({ id: 'label.allowRegister' })} \n \n \n { this.setState({ allowRegister: !this.state.allowRegister }) }}\n inputProps={{ 'aria-label': 'secondary checkbox' }}\n />\n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nSettings.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Settings)\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport Hidden from '@material-ui/core/Hidden'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plFork, plMember, plMerge, plSetting } from '@pgyer/icons'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// style\nconst styles = theme => ({\n container: {\n height: theme.spacing(9),\n padding: theme.spacing(2) + 'px ' + theme.spacing(3) + 'px',\n border: '1px solid ' + theme.palette.border,\n marginBottom: '-1px',\n borderLeft: 'none',\n borderRight: 'none',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.background.dark\n }\n },\n item: {\n height: theme.spacing(5)\n },\n icon: {\n width: theme.spacing(5),\n height: theme.spacing(5)\n },\n baseInfo: {\n display: 'flex',\n flexFlow: 'column wrap',\n justifyContent: 'center'\n },\n avatar: {\n width: theme.spacing(4),\n height: theme.spacing(4),\n marginRight: '-' + theme.spacing(1) + 'px',\n border: '1px solid ' + theme.palette.border\n },\n counts: {\n '& > div': {\n width: theme.spacing(6)\n }\n }\n})\n\nclass RepositoryCard extends Component {\n render () {\n const { classes, history, repositoryInfo, intl } = this.props\n\n return { history.push(makeLink(repositoryInfo.group.name, repositoryInfo.name)) }}\n >\n \n \n \n { repositoryInfo.icon\n ? \n : {repositoryInfo.name.substr(0, 1).toUpperCase()}\n }\n \n \n \n { repositoryInfo.group.displayName + '/' }\n \n { repositoryInfo.displayName }\n     \n \n \n \n {repositoryInfo.description && \n { repositoryInfo.description }\n }\n \n \n \n \n \n \n   \n {repositoryInfo.forkCount}\n \n \n \n \n   \n {repositoryInfo.mergeRequestCount.open}\n \n \n \n \n   \n {repositoryInfo.members.length}\n \n \n \n \n \n \n {intl.formatMessage({ id: 'label.updatedIn' })}: \n \n \n \n \n {\n ev.stopPropagation()\n history.push(makeLink(repositoryInfo.group.name, repositoryInfo.name, 'settings'))\n }}\n />\n \n
\n }\n}\n\nRepositoryCard.propTypes = {\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n repositoryInfo: PropTypes.object\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupConfig: state.DataStore.currentGroupConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositoryCard)\n )\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Grid from '@material-ui/core/Grid'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n container: {\n marginTop: '10vh'\n },\n alignBlock: {\n textAlign: 'center',\n margin: '0 auto',\n display: 'block'\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n img: {\n width: theme.spacing(20)\n },\n text: {\n maxWidth: theme.spacing(60)\n },\n lighter: {\n color: theme.palette.text.lighter\n }\n})\n\nclass EmptyListNotice extends Component {\n render () {\n const { classes, imageName, title, notice, children, pending } = this.props\n return \n {pending && \n \n }\n {!pending && \n \n \n \n \n \n {title}\n \n
\n \n {notice}\n \n
\n \n
\n {children}\n
\n
\n
}\n
\n }\n}\n\nEmptyListNotice.propTypes = {\n classes: PropTypes.object.isRequired,\n imageName: PropTypes.string,\n pending: PropTypes.bool,\n title: PropTypes.string,\n notice: PropTypes.string,\n children: PropTypes.node\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(EmptyListNotice)\n )\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Avatar from '@material-ui/core/Avatar'\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n plRepository,\n plMerge,\n plMember\n} from '@pgyer/icons'\n\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n content: {\n height: theme.spacing(15.5),\n boxSizing: 'border-box',\n borderBottom: '1px solid ' + theme.palette.border,\n borderRadius: 0\n },\n icon: {\n height: theme.spacing(5),\n width: theme.spacing(5)\n },\n text: {\n height: theme.spacing(3),\n lineHeight: theme.spacing(3) + 'px',\n overflow: 'hidden'\n },\n subtext: {\n paddingTop: theme.spacing(0.5),\n height: theme.spacing(1.5),\n lineHeight: theme.spacing(1.5) + 'px'\n },\n iconBar: {\n height: theme.spacing(3),\n lineHeight: theme.spacing(3) + 'px'\n },\n clonePopvoer: {\n width: theme.spacing(50) + 'px'\n },\n cloneContent: {\n padding: theme.spacing(2)\n }\n})\n\nclass GroupDashboard extends Component {\n constructor (props) {\n super(props)\n this.state = {\n popoverAnchor: null,\n popoverTab: 0\n }\n }\n\n render () {\n const { classes, groupConfig, repositoryList, intl, history } = this.props\n\n return (\n \n { groupConfig && groupConfig.group && groupConfig.group.id\n ? \n \n \n \n { groupConfig.group.icon\n ? \n : {groupConfig.group.name.substr(0, 1).toUpperCase()}\n }\n \n \n \n {groupConfig.group.displayName}   \n \n \n {groupConfig.group.description}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n   { intl.formatMessage({ id: 'label._N_repository' }, {\n n: repositoryList\n .filter(FilterGenerator.group(groupConfig.group.id))\n .length\n }) }     \n \n  \n { intl.formatMessage({ id: 'label._N_mergeRequest' }, {\n n: repositoryList\n .filter(FilterGenerator.group(groupConfig.group.id))\n .reduce((accmulator, item) => accmulator + item.mergeRequestCount.open, 0)\n }) }     \n \n   { intl.formatMessage({ id: 'label._N_member' }, { n: groupConfig.count.member }) }\n \n \n \n : \n \n \n }\n \n )\n }\n}\n\nGroupDashboard.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n groupConfig: PropTypes.object,\n repositoryList: PropTypes.array.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupDashboard)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport RepositoryListItem from 'APPSRC/components/unit/RepositoryListItem'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport GroupDashboard from 'APPSRC/components/unit/GroupDashboard'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport UAC from 'APPSRC/config/UAC'\n\nconst styles = (theme) => ({})\n\nclass RepositoryList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n currentTab: 0\n }\n }\n\n render () {\n const { currentUserInfo, currentGroupKey, currentGroupConfig, repositoryList, repositoryListPending, match, intl } = this.props\n\n repositoryList.sort((item1, item2) => item2.updated - item1.updated)\n let finalList = repositoryList.filter(FilterGenerator.withPermission(UAC.PermissionCode.REPO_READ))\n const tabs = [\n intl.formatMessage({ id: 'label.all' }),\n intl.formatMessage({ id: 'label.IJoined' }),\n intl.formatMessage({ id: 'label.ICreated' })\n ]\n const tabsFilter = [\n () => true,\n FilterGenerator.not(FilterGenerator.creator(currentUserInfo.id)),\n FilterGenerator.creator(currentUserInfo.id)\n ]\n\n if (currentGroupKey) {\n tabs[0] = intl.formatMessage({ id: 'label.repository' })\n finalList = finalList.filter(FilterGenerator.group(currentGroupKey))\n } else if (match.params.repositoryID) {\n const forkedRepository = repositoryList.filter(FilterGenerator.id(match.params.repositoryID))[0]\n finalList = finalList.filter(FilterGenerator.fork(match.params.repositoryID))\n if (forkedRepository) {\n tabs[0] = intl.formatMessage(\n { id: 'label.forkFrom_S' },\n { s: [forkedRepository.group.displayName, forkedRepository.displayName].join('/') }\n )\n } else {\n tabs[0] = intl.formatMessage(\n { id: 'label.forkFrom_S' },\n { s: intl.formatMessage({ id: 'label.unknownRepository' }) }\n )\n }\n }\n\n finalList = finalList.filter(tabsFilter[this.state.currentTab])\n\n return (\n { currentGroupConfig.group && \n \n }\n \n {\n this.setState({ currentTab: tab })\n }}\n >\n {(!currentGroupConfig.group && !match.params.repositoryID) && {\n this.props.history.push(\n currentGroupConfig.group\n ? makeLink('groups', currentGroupConfig.group.name, 'repositories', 'new')\n : makeLink('repositories', 'new')\n )\n }}\n >\n { intl.formatMessage({ id: 'label.newRepository' }) }\n }\n \n \n \n { finalList.map((item, key) => ) }\n { finalList.length === 0 && \n {\n this.props.history.push(\n currentGroupConfig.group\n ? makeLink('groups', currentGroupConfig.group.name, 'repositories', 'new')\n : makeLink('repositories', 'new')\n )\n }}\n >\n { intl.formatMessage({ id: 'label.newRepository' }) }\n \n }\n \n )\n }\n}\n\nRepositoryList.propTypes = {\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n repositoryListPending: PropTypes.bool.isRequired,\n currentGroupKey: PropTypes.string.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n currentGroupKey: state.DataStore.currentGroupKey,\n currentGroupConfig: state.DataStore.currentGroupConfig,\n repositoryList: state.DataStore.repositoryList,\n repositoryListPending: state.DataStore.repositoryListPending\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(RepositoryList)\n )\n)\n","import APIRequest from 'APPSRC/data_providers/main'\n\nfunction list () {\n return APIRequest.GET('/api/repository/list')\n}\n\nfunction create (data) {\n return APIRequest.POST('/api/repository/create', data)\n}\n\nfunction fork (data) {\n return APIRequest.POST('/api/repository/fork', data)\n}\n\nfunction config (data) {\n return APIRequest.GET('/api/repository/config', null, data)\n}\n\nfunction uploadAvatar (data) {\n return APIRequest.POST('/api/repository/uploadAvatar', data)\n}\n\nfunction update (data) {\n return APIRequest.POST('/api/repository/update', data)\n}\n\nfunction updateName (data) {\n return APIRequest.POST('/api/repository/updateName', data)\n}\n\nfunction defaultBranch (data) {\n return APIRequest.POST('/api/repository/defaultBranch', data)\n}\n\nfunction protectedBranchRules (data) {\n return APIRequest.GET('/api/repository/protectedBranchRules', null, data)\n}\n\nfunction createProtectedBranchRule (data) {\n return APIRequest.POST('/api/repository/createProtectedBranchRule', data)\n}\n\nfunction updateProtectedBranchRule (data) {\n return APIRequest.POST('/api/repository/updateProtectedBranchRule', data)\n}\n\nfunction deleteProtectedBranchRule (data) {\n return APIRequest.POST('/api/repository/deleteProtectedBranchRule', data)\n}\n\nfunction addMember (data) {\n return APIRequest.POST('/api/repository/addMember', data)\n}\n\nfunction changeMemberRole (data) {\n return APIRequest.POST('/api/repository/changeMemberRole', data)\n}\n\nfunction removeMember (data) {\n return APIRequest.POST('/api/repository/removeMember', data)\n}\n\nfunction changeOwner (data) {\n return APIRequest.POST('/api/repository/changeOwner', data)\n}\n\nfunction deleteRepository (data) {\n return APIRequest.POST('/api/repository/deleteRepository', data)\n}\n\nfunction activities (data) {\n return APIRequest.GET('/api/repository/activities', null, data)\n}\n\nfunction mergeRequests (data) {\n return APIRequest.GET('/api/repository/mergeRequests', null, data)\n}\n\nfunction mergeRequestClose (data) {\n return APIRequest.POST('/api/repository/mergeRequestClose', data)\n}\n\nfunction mergeRequestCommits (data) {\n return APIRequest.GET('/api/repository/mergeRequestCommits', null, data)\n}\n\nfunction mergeRequestReview (data) {\n return APIRequest.POST('/api/repository/mergeRequestReview', data)\n}\n\nfunction assignReviewer (data) {\n return APIRequest.POST('/api/repository/assignReviewer', data)\n}\n\nfunction deleteReviewer (data) {\n return APIRequest.POST('/api/repository/deleteReviewer', data)\n}\n\nfunction object (data) {\n return APIRequest.GET('/api/repository/object', null, data)\n}\n\nfunction pathStack (data) {\n return APIRequest.GET('/api/repository/pathStack', null, data)\n}\n\nfunction fileContent (data) {\n return APIRequest.GET('/api/repository/fileContent', null, data)\n}\n\nfunction commitList (data) {\n return APIRequest.GET('/api/repository/commitList', null, data)\n}\n\nfunction commitDetail (data) {\n return APIRequest.GET('/api/repository/commitDetail', null, data)\n}\n\nfunction refListContainSHA (data) {\n return APIRequest.GET('/api/repository/refListContainSHA', null, data)\n}\n\nfunction fileChanges (data) {\n return APIRequest.GET('/api/repository/fileChanges', null, data)\n}\n\nfunction branchList (data) {\n return APIRequest.GET('/api/repository/branchList', null, data)\n}\n\nfunction createBranch (data) {\n return APIRequest.POST('/api/repository/createBranch', data)\n}\n\nfunction deleteBranch (data) {\n return APIRequest.POST('/api/repository/deleteBranch', data)\n}\n\nfunction tagList (data) {\n return APIRequest.GET('/api/repository/tagList', null, data)\n}\n\nfunction createTag (data) {\n return APIRequest.POST('/api/repository/createTag', data)\n}\n\nfunction deleteTag (data) {\n return APIRequest.POST('/api/repository/deleteTag', data)\n}\n\nfunction targetRepository (data) {\n return APIRequest.GET('/api/repository/targetRepository', null, data)\n}\n\nfunction lastCommitLog (data) {\n return APIRequest.GET('/api/repository/lastCommitLog', null, data)\n}\n\nfunction getBlameInfo (data) {\n return APIRequest.GET('/api/repository/blameInfo', null, data)\n}\n\nfunction createMergeRequest (data) {\n return APIRequest.POST('/api/repository/createMergeRequest', data)\n}\n\nfunction mergeRequestDetail (data) {\n return APIRequest.GET('/api/repository/mergeRequestDetail', null, data)\n}\n\nfunction checkMergeType (data) {\n return APIRequest.POST('/api/repository/checkMergeType', data)\n}\n\nfunction mergeBranch (data) {\n return APIRequest.POST('/api/repository/mergeBranch', data)\n}\n\nfunction mergeRequestVersionList (data) {\n return APIRequest.GET('/api/repository/mergeRequestVersionList', null, data)\n}\n\nfunction relatedMergeRequests (data) {\n return APIRequest.GET('/api/repository/relatedMergeRequests', null, data)\n}\n\nfunction getWebhook (data) {\n return APIRequest.POST('/api/repository/getWebhook', data)\n}\n\nfunction webhooks (data) {\n return APIRequest.POST('/api/repository/webhooks', data)\n}\n\nfunction editWebhook (data) {\n return APIRequest.POST('/api/repository/editWebhook', data)\n}\n\nfunction deleteWebhook (data) {\n return APIRequest.POST('/api/repository/deleteWebhook', data)\n}\n\nfunction getRepositoryWebhookLogs (data) {\n return APIRequest.POST('/api/repository/getRepositoryWebhookLogs', data)\n}\n\nfunction getRepositoryWebhookLogData (data) {\n return APIRequest.POST('/api/repository/getRepositoryWebhookLogData', data)\n}\n\nexport default {\n list,\n create,\n fork,\n config,\n uploadAvatar,\n update,\n updateName,\n defaultBranch,\n protectedBranchRules,\n createProtectedBranchRule,\n updateProtectedBranchRule,\n deleteProtectedBranchRule,\n addMember,\n changeMemberRole,\n removeMember,\n changeOwner,\n deleteRepository,\n activities,\n mergeRequests,\n mergeRequestClose,\n mergeRequestCommits,\n mergeRequestReview,\n assignReviewer,\n deleteReviewer,\n object,\n pathStack,\n fileContent,\n commitList,\n commitDetail,\n fileChanges,\n refListContainSHA,\n branchList,\n createBranch,\n deleteBranch,\n tagList,\n createTag,\n deleteTag,\n targetRepository,\n lastCommitLog,\n getBlameInfo,\n createMergeRequest,\n mergeRequestDetail,\n checkMergeType,\n mergeBranch,\n mergeRequestVersionList,\n relatedMergeRequests,\n getWebhook,\n webhooks,\n editWebhook,\n deleteWebhook,\n getRepositoryWebhookLogs,\n getRepositoryWebhookLogData\n}\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport Button from '@material-ui/core/Button'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport UAC from 'APPSRC/config/UAC'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginLeft: theme.spacing(2)\n },\n svg: {\n '& svg': {\n right: theme.spacing(3)\n }\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n }\n})\n\nclass newRepository extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n name: '',\n group: '',\n slug: '',\n description: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'group',\n passPattern: /^[0-9a-f]{32}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notChoose' },\n { s: this.props.intl.formatMessage({ id: 'label.group' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^[0-9a-zA-Z\\\\._-]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_has_illegal_character' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'description',\n passPattern: /^.{0,200}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 200 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0401,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0402,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (!nextProps.groupListPending && nextProps.currentUserInfo.id) {\n const personalGroups = nextProps.groupList\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (!personalGroups.length && !nextProps.history.location.pathname.match(/^\\/groups\\/new/i)) {\n nextProps.dispatchEvent(EventGenerator.cancelComformation())\n nextProps.dispatchEvent(EventGenerator.addComformation('default_group_create_confirm', {\n title: this.props.intl.formatMessage({ id: 'message.defaultGroupReqiured' }),\n description: this.props.intl.formatMessage({ id: 'message.defaultGroupReqiuredDescription' }),\n reject: () => {\n nextProps.history.push('/repositories')\n },\n accept: () => {\n nextProps.history.push('/groups/new')\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n }))\n return true\n }\n }\n\n if (!nextState.group && nextProps.currentGroupKey) {\n this.setState({ group: nextProps.currentGroupKey, pending: false })\n } else if (!nextState.group) {\n const permittedGroups = nextProps.groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.GROUP_CREATE_REPO))\n\n const personalGroups = permittedGroups\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (personalGroups[0]) {\n this.setState({ group: personalGroups[0].id, pending: false })\n }\n }\n\n if (this.state.description !== nextState.description && nextState.description.length < 201) {\n this.setState({\n error: {}\n })\n return false\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n createRepository () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n group: this.state.group,\n name: this.state.slug,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n RepositoryData.create(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const repositoryData = data.data\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n this.props.history.push(makeLink(repositoryData.group.name, repositoryData.name))\n }\n })\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createRepositoryFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n render () {\n const { classes, intl, groupList, currentGroupKey, currentUserInfo } = this.props\n\n const permittedGroups = groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.GROUP_CREATE_REPO))\n\n return (\n \n \n { intl.formatMessage({ id: 'label.newRepository' }) }\n \n \n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.repositoryName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n const error = {}\n this.setState({ name, slug, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryURL' }) }\n \n \n this.setState({ group: e.target.value })}\n disabled={!!currentGroupKey.length}\n InputProps={{\n startAdornment: {NetworkHelper.getHost(currentUserInfo)}/,\n endAdornment: /\n }}\n className={classes.svg}\n >\n {permittedGroups.map(option => (\n \n {option.name}\n \n ))}\n \n \n \n {\n const slug = NetworkHelper.makeSlug(e.target.value)\n this.setState({ slug })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryDescription' }) }\n \n \n this.setState({ description: e.target.value })}\n />\n \n \n \n \n 200 ? classes.outRange : ''}\n >\n {this.state.description.length}/200\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nnewRepository.propTypes = {\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n groupList: PropTypes.array.isRequired,\n groupListPending: PropTypes.bool.isRequired,\n currentGroupKey: PropTypes.string,\n classes: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n currentGroupKey: state.DataStore.currentGroupKey,\n groupListPending: state.DataStore.groupListPending,\n groupList: state.DataStore.groupList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(newRepository)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPlus,\n faUndo\n} from '@fortawesome/free-solid-svg-icons'\nimport Button from '@material-ui/core/Button'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport UAC from 'APPSRC/config/UAC'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginRight: theme.spacing(2)\n },\n svg: {\n '& svg': {\n right: theme.spacing(3)\n }\n }\n})\n\nclass newRepositoryFork extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n forkID: '',\n name: '',\n group: '',\n slug: '',\n description: '',\n error: {}\n }\n\n this.observed = {\n forkRepositoryInfo: ''\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'group',\n passPattern: /^[0-9a-f]{32}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notChoose' },\n { s: this.props.intl.formatMessage({ id: 'label.group' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0401,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0402,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (!nextProps.groupListPending && nextProps.currentUserInfo.id) {\n const personalGroups = nextProps.groupList\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (!personalGroups.length && !nextProps.history.location.pathname.match(/^\\/groups\\/new/i)) {\n nextProps.dispatchEvent(EventGenerator.cancelComformation())\n nextProps.dispatchEvent(EventGenerator.addComformation('default_group_create_confirm', {\n title: this.props.intl.formatMessage({ id: 'message.defaultGroupReqiured' }),\n description: this.props.intl.formatMessage({ id: 'message.defaultGroupReqiuredDescription' }),\n reject: () => { nextProps.history.push('/repositories') },\n accept: () => { nextProps.history.push('/groups/new') }\n }))\n return true\n }\n }\n\n const forkRepositoryID = nextProps.match.params.repositoryID\n const matchedRepository = (nextProps.repositoryList || [])\n .filter(FilterGenerator.id(forkRepositoryID))[0]\n\n if (this.observed.forkRepositoryInfo !== JSON.stringify(matchedRepository)) {\n this.observed.forkRepositoryInfo = JSON.stringify(matchedRepository)\n if (matchedRepository) {\n this.setState({\n forkID: forkRepositoryID,\n name: matchedRepository.displayName,\n slug: matchedRepository.name,\n description: matchedRepository.description\n })\n }\n }\n\n const permittedGroups = nextProps.groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.GROUP_CREATE_REPO))\n\n if (!nextState.group) {\n const personalGroups = permittedGroups\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (personalGroups && personalGroups[0] && personalGroups[0].id) {\n this.setState({ group: personalGroups[0].id, pending: false })\n }\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n forkRepository () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n forkID: this.state.forkID,\n group: this.state.group,\n name: this.state.slug,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n RepositoryData.fork(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const repositoryData = data.data\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n this.props.history.push(makeLink(repositoryData.group.name, repositoryData.name))\n }\n })\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.forkRepositoryFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n render () {\n const { classes, intl, match, repositoryList, groupList, currentUserInfo } = this.props\n\n const permittedGroups = groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.GROUP_CREATE_REPO))\n\n const forkRepositoryID = match.params.repositoryID\n const matchedRepository = repositoryList\n .filter(FilterGenerator.id(forkRepositoryID))[0]\n\n return (\n \n \n { intl.formatMessage({ id: 'label.forkRepository' }) }\n \n \n \n \n \n \n { matchedRepository\n ? \n \n \n { intl.formatMessage({ id: 'label.forkFrom_S' }, {\n s: NetworkHelper.getHost(currentUserInfo) +\n makeLink(matchedRepository.group.name, matchedRepository.name) +\n ' (' + matchedRepository.group.displayName + '/' + matchedRepository.displayName + ')'\n }) }\n \n \n \n { intl.formatMessage({ id: 'label.repositoryName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n this.setState({ name, slug })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryURL' }) }\n \n \n this.setState({ group: e.target.value })}\n InputProps={{\n startAdornment: {NetworkHelper.getHost(currentUserInfo)}/,\n endAdornment: /\n }}\n className={classes.svg}\n >\n {permittedGroups.map(option => (\n \n {option.name}\n \n ))}\n \n \n \n {\n const slug = NetworkHelper.makeSlug(e.target.value)\n this.setState({ slug })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryDescription' }) }\n \n \n this.setState({ description: e.target.value })}\n />\n \n \n \n \n \n \n : \n \n \n \n \n }\n \n \n \n \n )\n }\n}\n\nnewRepositoryFork.propTypes = {\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n groupListPending: PropTypes.bool.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n repositoryList: state.DataStore.repositoryList,\n groupListPending: state.DataStore.groupListPending,\n groupList: state.DataStore.groupList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(newRepositoryFork)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport TextField from '@material-ui/core/TextField'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Button from '@material-ui/core/Button'\nimport AvatarUploader from 'APPSRC/components/unit/AvatarUploader'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport Constants from 'APPSRC/config/Constants'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginLeft: theme.spacing(2)\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n }\n})\n\nclass RepositorySettingGeneral extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n name: '',\n description: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^[0-9a-zA-Z\\\\._-]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_has_illegal_character' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'description',\n passPattern: /^.{0,200}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 200 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'name',\n exceptionCode: 0x0402,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n if (this.props.currentRepositoryConfig.repository) {\n this.setState({\n name: this.props.currentRepositoryConfig.repository.displayName,\n description: this.props.currentRepositoryConfig.repository.description\n })\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentRepositoryConfig) !== JSON.stringify(this.props.currentRepositoryConfig) &&\n nextProps.currentRepositoryConfig.repository\n ) {\n this.setState({\n name: nextProps.currentRepositoryConfig.repository.displayName,\n description: nextProps.currentRepositoryConfig.repository.description\n })\n return false\n }\n\n if (this.state.description !== nextState.description && nextState.description.length < 201) {\n this.setState({\n error: {}\n })\n return false\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n updateRepository () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n RepositoryData.update(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadRepositoryData()\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n avatarUploaded (data) {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadRepositoryData()\n }\n }\n\n reloadRepositoryData () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n RepositoryData.config({ rKey: this.props.currentRepositoryConfig.repository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'menu.general' }) }\n \n \n { currentRepositoryConfig.repository\n ? \n \n \n { intl.formatMessage({ id: 'label.repositoryAvatar' }) }\n \n \n \n this.avatarUploaded(data)}\n dataProvider={RepositoryData.uploadAvatar}\n />\n \n \n \n \n \n { intl.formatMessage({ id: 'label.repositoryName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n const error = {}\n this.setState({ name, slug, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryDescription' }) }\n \n \n this.setState({ description: e.target.value })}\n />\n \n \n \n \n 200 ? classes.outRange : ''}\n >\n {this.state.description.length}/200\n \n \n \n \n \n \n \n \n \n \n \n \n : \n \n \n \n }\n )\n }\n}\n\nRepositorySettingGeneral.propTypes = {\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingGeneral)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { plEdit, plTrash, plCheck, plClose } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nconst styles = (theme) => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n title: {\n lineHeight: theme.spacing(3) + 'px',\n paddingBottom: theme.spacing(2)\n },\n content: {\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(5)\n },\n create: {\n marginTop: theme.spacing(1)\n },\n size: {\n fontSize: '12px'\n },\n btn: {\n marginLeft: theme.spacing(1)\n },\n border: {\n borderBottom: '1px solid ' + theme.palette.border,\n marginBottom: theme.spacing(3)\n },\n icon: {\n color: theme.palette.text.light,\n '& svg': {\n width: '16px !important',\n height: '16px !important'\n }\n },\n ok: {\n '& svg': {\n color: theme.palette.success.main + ' !important'\n }\n },\n cancel: {\n marginLeft: theme.spacing(1),\n '& svg': {\n width: '14px !important',\n height: '14px !important',\n padding: '2px',\n color: theme.palette.error.main + ' !important'\n }\n },\n table: {\n marginTop: theme.spacing(3),\n '& tbody tr': {\n '&:hover': {\n background: theme.palette.background.light + ' !important'\n }\n },\n '& td': {\n lineHeight: theme.spacing(6) + 'px',\n '& > div': {\n verticalAlign: 'middle'\n }\n }\n }\n})\n\nclass RepositorySettingBranch extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n branch: props.currentRepositoryConfig.repository ? props.currentRepositoryConfig.repository.defaultBranch : '',\n rules: null,\n updateRuleId: null,\n rule: '',\n rolePush: UAC.Role.OWNER,\n roleMerge: UAC.Role.OWNER,\n error: {}\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'rule',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.rule' }) }\n )\n },\n {\n name: 'rule',\n passPattern: /^([0-9a-zA-Z/]{1,30}|\\/\\^?.{1,30}\\$?\\/[igm]*)$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.rule' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.getData(this.props)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentRepositoryConfig) !== JSON.stringify(this.props.currentRepositoryConfig) &&\n !this.props.currentRepositoryConfig.repository) {\n this.setState({ branch: nextProps.currentRepositoryConfig.repository.defaultBranch })\n this.getData(nextProps)\n return false\n }\n\n return true\n }\n\n getData (props) {\n const { currentRepositoryConfig } = props\n if (!currentRepositoryConfig.repository) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.protectedBranchRules({\n repository: currentRepositoryConfig.repository.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.cancelForm()\n if (!data.code) {\n this.setState({\n pending: false,\n rules: data.data\n })\n }\n })\n }\n\n getTableData () {\n const { classes } = this.props\n const { rules, updateRuleId } = this.state\n const final = []\n if (!rules) {\n return false\n }\n\n rules.map((item, index) => {\n if (item === 'create' || item.id === updateRuleId) {\n final.push(this.createForm())\n } else {\n final.push([\n {item.rule},\n {this.getAllowRoler(item.rolePush)},\n {this.getAllowRoler(item.roleMerge)},\n \n this.editRule(item)} />\n this.deleteConfirm(item.id, item.rule)} icon={plTrash} />\n \n ])\n }\n return true\n })\n\n return [\n ['150px', '200px', '200px', '150px'],\n ['label.branchRule', 'label.allowPush', 'label.allowMerge', 'label.operating'],\n ...final\n ]\n }\n\n getAllowRoler (roleId) {\n const { intl } = this.props\n const roleIds = [\n intl.formatMessage({ id: 'message.noBodyAllow' }),\n intl.formatMessage({ id: 'label.owner' }),\n intl.formatMessage({ id: 'label.maintianer' }),\n intl.formatMessage({ id: 'label.developer' })\n ]\n\n return roleIds.slice(roleId === UAC.Role.NOBODY ? 0 : 1, UAC.Role.NOBODY - roleId + 1).join(' + ')\n }\n\n createForm () {\n const { classes, intl } = this.props\n return [\n this.setState({ rule: e.target.value })}\n />,\n this.setState({ rolePush: e.target.value })}\n >\n {this.getAllowRoler(UAC.Role.OWNER)}\n {this.getAllowRoler(UAC.Role.MAINTAINER)}\n {this.getAllowRoler(UAC.Role.DEVELOPER)}\n {this.getAllowRoler(UAC.Role.NOBODY)}\n ,\n this.setState({ roleMerge: e.target.value })}\n >\n {this.getAllowRoler(UAC.Role.OWNER)}\n {this.getAllowRoler(UAC.Role.MAINTAINER)}\n {this.getAllowRoler(UAC.Role.NOBODY)}\n ,\n \n this.createProtectedBranchRule()} className={classes.ok} />\n this.cancelForm()} className={classes.cancel} />\n \n ]\n }\n\n settingDefaultBranch () {\n const { currentRepositoryConfig } = this.props\n const { branch } = this.state\n if (!currentRepositoryConfig.repository || branch === currentRepositoryConfig.repository.defaultBranch) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.defaultBranch({\n repository: currentRepositoryConfig.repository.id,\n old: currentRepositoryConfig.repository.defaultBranch,\n branch: branch\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadRepositoryData()\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n })\n }\n\n reloadRepositoryData () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n RepositoryData.config({ rKey: this.props.currentRepositoryConfig.repository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n }\n })\n }\n\n cancelForm () {\n let { rules } = this.state\n if (rules && rules.length && rules[rules.length - 1] === 'create') {\n rules = rules.slice(0, rules.length - 1)\n }\n\n this.setState({\n rules: rules,\n updateRuleId: null,\n rule: '',\n rolePush: UAC.Role.OWNER,\n roleMerge: UAC.Role.OWNER,\n error: {}\n })\n }\n\n createRule () {\n const { rules } = this.state\n if (!rules.length || rules[rules.length - 1] !== 'create') {\n this.cancelForm()\n this.setState({ rules: [...rules, 'create'] })\n }\n }\n\n editRule (item) {\n this.cancelForm()\n this.setState({\n updateRuleId: item.id,\n rule: item.rule,\n rolePush: item.rolePush,\n roleMerge: item.roleMerge\n })\n }\n\n deleteConfirm (id, rule) {\n const { intl } = this.props\n this.cancelForm()\n this.props.dispatchEvent(EventGenerator.addComformation('delete_protected_branch_rule', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.rule' }) + ' \\'' + rule + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => {\n this.deleteRule(id, rule)\n }\n }))\n }\n\n createProtectedBranchRule () {\n const { currentRepositoryConfig, intl } = this.props\n const { rules, rule, rolePush, roleMerge, updateRuleId } = this.state\n\n if (!currentRepositoryConfig.repository || !this.checkInput()) {\n return false\n }\n\n const sameRule = rules.filter(FilterGenerator.rule(rule))\n if (sameRule.length > 0) {\n if (!updateRuleId || (updateRuleId && updateRuleId !== sameRule[0].id)) {\n this.setState({\n error: {\n rule: intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: intl.formatMessage({ id: 'label.rule' }) }\n )\n }\n })\n return false\n }\n }\n\n const requestData = {\n repository: currentRepositoryConfig.repository.id,\n rule: rule,\n rolePush: rolePush,\n roleMerge: roleMerge\n }\n\n this.setState({ pending: true })\n if (!updateRuleId) {\n RepositoryData.createProtectedBranchRule({\n ...requestData\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.created' })\n , 0)\n )\n this.getData(this.props)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createProtectedBrancheRuleFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n })\n } else {\n RepositoryData.updateProtectedBranchRule({\n ...requestData,\n id: updateRuleId\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.getData(this.props)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n })\n }\n }\n\n deleteRule (id, rule) {\n const { currentRepositoryConfig } = this.props\n if (!currentRepositoryConfig.repository || !id || !rule) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.deleteProtectedBranchRule({\n repository: currentRepositoryConfig.repository.id,\n id: id,\n rule: rule\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.deleted' })\n , 0)\n )\n this.getData(this.props)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.deleteFail' })\n , 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n this.setState({ pending: false })\n })\n }\n\n render () {\n const { currentRepositoryConfig, classes, intl } = this.props\n const { pending, branch, rules } = this.state\n\n return (\n \n { intl.formatMessage({ id: 'label.branchSetting' }) }\n \n \n {intl.formatMessage({ id: 'label.defaultBranch' })}\n {intl.formatMessage({ id: 'message.defaultBranchDescription' })}\n \n { currentRepositoryConfig.repository && \n \n this.setState({ branch: e.target.value })}\n >\n {!currentRepositoryConfig.repository.defaultBranch && branch === null && {intl.formatMessage({ id: 'message.settingDefaultBranch' })}}\n {currentRepositoryConfig.branches.map((item, index) => {\n return {item.name}\n })}\n \n \n \n this.settingDefaultBranch()}\n className={classes.btn}\n disabled={pending}\n >\n {intl.formatMessage({ id: 'message.settingToDefaultBranch' })}\n \n \n \n }\n \n \n \n \n \n {intl.formatMessage({ id: 'label.protectedBranch' })}\n {intl.formatMessage({ id: 'message.protectedBranchDescription' })}\n \n \n this.createRule()}\n disabled={pending}\n className={classes.create}\n >\n {intl.formatMessage({ id: 'message.createProtectedBranchRule' })}\n \n \n \n { rules !== null\n ? rules.length !== 0\n ? \n : \n : \n \n \n }\n \n \n \n )\n }\n}\n\nRepositorySettingBranch.propTypes = {\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingBranch)\n )\n )\n)\n","const Events = [\n {\n event: null,\n title: 'menu.file_pl',\n checked: false,\n divider: true\n },\n {\n event: 'hook:postReceive',\n title: 'label.pushEvent',\n checked: true,\n divider: false\n },\n {\n event: 'repo:fork',\n title: 'label.forkRepository',\n checked: false,\n divider: false\n },\n {\n event: 'branch:create',\n title: 'label.newBranch',\n checked: false,\n divider: false\n },\n {\n event: 'branch:remove',\n title: 'label.deleteBranch',\n checked: false,\n divider: false\n },\n {\n event: 'branch:changeDefaultBranch',\n title: ['label.update_S_', 'label.defaultBranch'],\n checked: false,\n divider: false\n },\n {\n event: 'tag:create',\n title: 'label.newTag',\n checked: false,\n divider: false\n },\n {\n event: 'tag:remove',\n title: 'label.deleteTag',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequest:create',\n title: 'label.createMergeRequest',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequest:close',\n title: 'label.closeMergeRequest',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequest:merge',\n title: 'label.mergeRequest',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequestReviewer:create',\n title: 'message.selectReviewer',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequestReviewer:delete',\n title: 'message.deleteReviewer',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequestReviewer:review',\n title: 'label.reviewReviewer',\n checked: false,\n divider: false\n },\n {\n event: null,\n title: 'label.member_pl',\n checked: false,\n divider: true\n },\n {\n event: 'repo:addMember',\n title: 'label.inviteMember',\n checked: false,\n divider: false\n },\n {\n event: 'repo:changeMemberRole',\n title: 'label.changeMemberRole',\n checked: false,\n divider: false\n },\n {\n event: 'repo:removeMember',\n title: 'label.removeMember',\n checked: false,\n divider: false\n },\n {\n event: null,\n title: 'menu.setting_pl',\n checked: false,\n divider: true\n },\n {\n event: 'repo:updateAvator',\n title: ['label.update_S_', 'label.repositoryAvatar'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:updateName',\n title: ['label.update_S_', 'label.repositoryName'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:updateDescription',\n title: ['label.update_S_', 'label.repositoryDescription'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:changeOwner',\n title: ['label.update_S_', 'label.owner'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:changeURL',\n title: ['label.update_S_', 'label.repositoryURL'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:remove',\n title: 'label.deleteRepository',\n checked: false,\n divider: false\n },\n {\n event: 'branch:createProtectedBranchRule',\n title: 'label.createProtectedBranchRule',\n checked: false,\n divider: false\n },\n {\n event: 'branch:changeProtectedBranchRule',\n title: 'label.changeProtectedBranchRule',\n checked: false,\n divider: false\n },\n {\n event: 'branch:removeProtectedBranchRule',\n title: 'label.removeProtectedBranchRule',\n checked: false,\n divider: false\n }\n]\n\nexport default Events\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\n\n// style\nconst styles = theme => ({\n list: {\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px '\n },\n title: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n background: theme.palette.background.main,\n borderRadius: theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px 0px 0px',\n '& > div': {\n lineHeight: theme.spacing(5) + 'px'\n }\n },\n list2: {\n '& div:nth-child(1), & li:nth-child(1)': {\n border: '0px'\n }\n }\n})\n\nclass TitleList extends React.Component {\n render () {\n const { title, children, classes } = this.props\n\n return (\n { title && \n {title}\n \n }\n \n {children}\n \n \n )\n }\n}\n\nTitleList.propTypes = {\n title: PropTypes.string.isRequired,\n children: PropTypes.array.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TitleList)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plCopy, plClock, plClose, psConfirm, psError, psMore } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { copyToClipboard } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n webhook: {\n borderTop: '1px solid ' + theme.palette.border\n },\n subline: {\n display: 'flex',\n alignItems: 'center',\n height: theme.spacing(6),\n padding: '0px ' + theme.spacing(3) + 'px'\n },\n date: {\n justifyContent: 'flex-end'\n },\n success: {\n color: theme.palette.success.main\n },\n error: {\n color: theme.palette.error.main\n },\n webhookid: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(1),\n borderRadius: theme.spacing(0.5),\n background: theme.palette.background.dark,\n padding: theme.spacing(0.5) + 'px ' + theme.spacing(1) + 'px'\n },\n more: {\n marginLeft: theme.spacing(2)\n },\n detail: {\n padding: theme.spacing(3),\n paddingTop: 0\n },\n time: {\n lineHeight: theme.spacing(5) + 'px'\n },\n code: {\n overflowX: 'auto',\n padding: theme.spacing(1),\n borderRadius: theme.spacing(0.5),\n background: theme.palette.background.main,\n border: '1px solid ' + theme.palette.border\n }\n})\n\nclass BranchList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n webhookTab: 0,\n webhookId: '',\n logData: null\n }\n }\n\n componentDidMount () {\n }\n\n getData (id) {\n if (!id) {\n return false\n }\n\n this.setState({ webhookTab: 0, webhookId: id, logData: null })\n RepositoryData.getRepositoryWebhookLogData({ id: id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ logData: data.data })\n }\n })\n }\n\n getTime (start, end) {\n return Math.floor((end - start) * 100) / 100\n }\n\n render () {\n const { list, classes, intl } = this.props\n const { webhookTab, webhookId, logData } = this.state\n\n return \n \n {\n list.map(item => \n \n \n {item.id}\n copyToClipboard(item.id)} icon={plCopy} />\n \n \n {item.created}\n {\n webhookId === item.id\n ? this.setState({ webhookId: '' })} icon={plClose} className={classes.more} />\n : this.getData(item.id)} icon={psMore} className={classes.more} />\n }\n \n {\n webhookId && webhookId === item.id && logData && \n \n \n {intl.formatMessage({ id: 'label.response' })} ]}\n currentTab={webhookTab}\n onChange={(e, newValue) => this.setState({ webhookTab: newValue })}\n >\n \n  \n {intl.formatMessage({ id: 'message.useTime_n' }, { n: this.getTime(item.start, item.end) })}\n \n \n \n \n {intl.formatMessage({ id: 'label.httpHeaders' })}\n \n \n \n {\n webhookTab === 0\n ? Object.keys(logData.request.headers).map(key => \n {key}: \n {logData.request.headers[key]}\n )\n : Object.keys(logData.response.headers).map(key => \n {key}: \n {logData.response.headers[key]}\n )\n }\n \n \n \n \n {webhookTab === 0 ? intl.formatMessage({ id: 'label.httpPayload' }) : intl.formatMessage({ id: 'label.httpBody' })}\n  \n {webhookTab === 0 && }\n \n \n \n \n
\n                        \n                          {webhookTab === 0 ? JSON.stringify(JSON.parse(logData.request.body), null, 4) : logData.response.body}\n                        \n                      
\n
\n
\n
\n
\n }\n
)\n }\n \n
\n }\n}\n\nBranchList.propTypes = {\n list: PropTypes.array.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(BranchList)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Radio from '@material-ui/core/Radio'\nimport RadioGroup from '@material-ui/core/RadioGroup'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport { psLog, plEdit, plTrash } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport Events from 'APPSRC/config/WebhookEventConfig'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport WebhookLog from 'APPSRC/components/view/unit/WebhookLog'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { copyToClipboard } from 'APPSRC/helpers/VaribleHelper'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\nconst styles = (theme) => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n header: {\n display: 'flex',\n marginBottom: theme.spacing(4),\n justifyContent: 'space-between',\n lineHeight: theme.spacing(5) + 'px',\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n webhookForm: {\n paddingTop: theme.spacing(6),\n marginBottom: theme.spacing(2),\n paddingBottom: theme.spacing(6)\n },\n btn: {\n verticalAlign: 'bottom',\n marginTop: theme.spacing(2),\n marginLeft: theme.spacing(3)\n },\n icon: {\n color: theme.palette.text.light\n },\n need: {\n color: 'red'\n },\n logs: {\n marginTop: theme.spacing(3)\n },\n dot: {\n width: theme.spacing(1),\n height: theme.spacing(1),\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main\n },\n close: {\n backgroundColor: theme.palette.error.main\n },\n cursorPointer: {\n cursor: 'pointer'\n }\n})\n\nclass RepositorySettingWebhook extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n webhooks: null,\n webhook: null,\n pushEvent: 'hook:postReceive',\n\n edit: false,\n webhookLogs: null,\n isShowWebhookForm: !!window.location.search,\n url: '',\n secret: '',\n trigger: '1',\n active: '1',\n error: {},\n events: JSON.parse(JSON.stringify(Events))\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'url',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.url' }) }\n )\n },\n {\n name: 'url',\n passPattern: /^http(s)?:\\/\\/.+/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.url' }) }\n )\n },\n {\n name: 'url',\n passPattern: /^\\S{0,255}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 255 }\n )\n },\n {\n name: 'secret',\n passPattern: /^\\S{0,255}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 255 }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.getData(this.props)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentRepositoryKey) !== JSON.stringify(this.props.currentRepositoryKey)) {\n this.getData(nextProps)\n return false\n }\n\n return true\n }\n\n getData (props) {\n const { currentRepositoryKey } = props\n if (!currentRepositoryKey) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.webhooks({\n repository: currentRepositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n const webhooks = data.data\n webhooks.map((item, index) => {\n item.events = this.getEvents(item.events)\n return true\n })\n this.setState({\n pending: false,\n webhooks: webhooks\n })\n }\n })\n }\n\n getWebhookLogs (rwKey) {\n if (!rwKey) {\n return false\n }\n\n RepositoryData.getRepositoryWebhookLogs({ webhook: rwKey })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.setState({ webhookLogs: data.data })\n }\n })\n }\n\n editWebhook () {\n const { intl, currentRepositoryKey } = this.props\n const { pending, isShowWebhookForm, trigger, url, secret, webhook, edit, active } = this.state\n if (pending || !isShowWebhookForm || !this.checkInput()) {\n return false\n }\n\n const events = trigger === '1' ? this.state.pushEvent : this.getCheckedEvents()\n if (!events) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.webhookEventsNeed' })\n , 1)\n )\n }\n\n this.setState({ pending: true })\n RepositoryData.editWebhook({\n repository: currentRepositoryKey,\n rwKey: webhook ? webhook.id : '',\n url: url,\n secret: secret,\n events: events,\n active: active\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: edit ? 'message.updated' : 'message.created' })\n , 0)\n )\n this.initData()\n this.setState({ isShowWebhookForm: false })\n this.getData(this.props)\n }\n })\n }\n\n updateWebhook (webhook) {\n const { currentRepositoryKey } = this.props\n\n if (!currentRepositoryKey) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.getWebhook({\n repository: currentRepositoryKey,\n rwKey: webhook.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n const webhook = data.data\n this.setState({\n pending: false,\n edit: true,\n webhook: webhook,\n isShowWebhookForm: true,\n url: webhook.url,\n secret: webhook.secret,\n trigger: webhook.events === this.state.pushEvent ? '1' : '2',\n events: this.getEvents(webhook.events),\n active: webhook.active\n })\n }\n })\n }\n\n deleteWebhook (webhook) {\n const { currentRepositoryKey, intl } = this.props\n this.props.dispatchEvent(EventGenerator.addComformation('delete_webhook', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.webhook' }) }),\n description: '',\n reject: () => { return true },\n accept: () => {\n RepositoryData.deleteWebhook({\n repository: currentRepositoryKey,\n rwKey: webhook.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.deleted' })\n , 0)\n )\n this.getData(this.props)\n }\n })\n }\n }))\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { webhooks } = this.state\n const final = []\n webhooks.map((item) => {\n let eventCount = 0\n final.push([\n \n
\n
,\n {item.user},\n \n copyToClipboard(item.url, () => this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'label.copied' }), 0)))}\n >\n {item.url.substr(0, 40)}\n \n ,\n \n copyToClipboard(item.secret, () => this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'label.copied' }), 0)))}\n >\n {item.secret.substr(0, 20)}\n \n ,\n \n {item.events.map((item, index) => {\n if (item.checked) {\n eventCount++\n if (eventCount === 4) {\n return '...'\n } else if (eventCount > 4) {\n return ''\n } else {\n return (typeof item.title === 'string'\n ? intl.formatMessage({ id: item.title })\n : intl.formatMessage(\n { id: item.title[0] },\n { s: intl.formatMessage({ id: item.title[1] }) }\n )) + '; '\n }\n }\n return ''\n })}\n ,\n ,\n \n this.updateWebhook(item)} />\n this.deleteWebhook(item)} />\n this.getWebhookLogs(item.id)} />\n \n ])\n return true\n })\n\n return [\n ['10px', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto'],\n ['', 'label.creator', 'label.url', 'label.webhookSecret', 'label.webhookTrigger', 'label.updateTime', ''],\n ...final\n ]\n }\n\n initData () {\n this.setState({\n edit: false,\n webhook: null,\n url: '',\n secret: '',\n trigger: '1',\n events: JSON.parse(JSON.stringify(Events)),\n active: '1'\n })\n }\n\n getEvents (events) {\n const tmpEvents = JSON.parse(JSON.stringify(Events))\n events = events.split(',')\n tmpEvents.map((item) => {\n if (events.indexOf(item.event) > -1) {\n item.checked = true\n } else {\n item.checked = false\n }\n return true\n })\n\n return tmpEvents\n }\n\n changeEvent (e) {\n const { events } = this.state\n let checked = false\n if (e.target.checked) {\n checked = true\n }\n\n events.map((item) => {\n if (item.event === e.target.value) {\n item.checked = checked\n }\n return true\n })\n this.setState({\n events: events\n })\n }\n\n getCheckedEvents () {\n const { events } = this.state\n const checkedEvents = []\n events.map((item) => {\n if (item.checked) {\n checkedEvents.push(item.event)\n }\n return true\n })\n\n return checkedEvents.join(',')\n }\n\n render () {\n const { classes, intl } = this.props\n const { pending, webhooks, webhookLogs, isShowWebhookForm, url, secret, trigger, events, edit, active, error } = this.state\n\n return (\n \n \n {intl.formatMessage({ id: 'label.webhookSetting' })}\n {!isShowWebhookForm && this.setState({ isShowWebhookForm: true })}\n >\n {intl.formatMessage({ id: 'label.createWebhook' })}\n }\n \n \n\n {isShowWebhookForm && \n \n {intl.formatMessage({ id: edit ? 'label.updateWebhook' : 'label.createWebhook' })}\n \n \n \n \n \n \n {intl.formatMessage({ id: 'label.url' })} *\n \n \n this.setState({ url: e.target.value })}\n />\n \n \n {intl.formatMessage({ id: 'label.contentType' })}\n \n \n application/json\n \n \n \n {intl.formatMessage({ id: 'label.webhookSecret' })}\n  \n \n \n \n \n this.setState({ secret: e.target.value })}\n />\n \n \n {intl.formatMessage({ id: 'label.webhookTrigger' })}\n \n \n this.setState({ trigger: e.target.value })}>\n } label={intl.formatMessage({ id: 'label.pushTrigger' })} />\n } label={\n \n {intl.formatMessage({ id: 'label.customeTrigger' })}\n  \n \n } />\n \n \n {trigger === '2' && \n \n \n {events.map((item, index) => {\n return item.divider\n ? {intl.formatMessage({ id: item.title })}\n : this.changeEvent(e)} value={item.event} />}\n label={\n typeof item.title === 'string'\n ? intl.formatMessage({ id: item.title })\n : intl.formatMessage(\n { id: item.title[0] },\n { s: intl.formatMessage({ id: item.title[1] }) }\n )\n }\n />\n })}\n \n \n }\n\n \n {intl.formatMessage({ id: 'label.status' })}\n \n \n { this.setState({ active: e.target.value }) }} row>\n } label={intl.formatMessage({ id: 'label.enable' })} />\n } label={intl.formatMessage({ id: 'label.disable' })} />\n \n \n\n \n {\n edit && this.initData()\n this.setState({ isShowWebhookForm: false })\n }}\n >\n {intl.formatMessage({ id: 'label.cancel' })}\n \n this.editWebhook()}\n >\n {pending && }\n {intl.formatMessage({ id: edit ? 'label.update' : 'label.create' })}\n \n \n \n \n \n \n }\n\n {!isShowWebhookForm && \n \n \n {intl.formatMessage({ id: 'label.webhookList' })}\n \n {webhooks\n ? webhooks.length > 0\n ? \n \n \n : \n {intl.formatMessage({ id: 'message.webhookListEmpty' })}\n \n : \n \n \n }\n \n {\n webhookLogs && \n \n \n {intl.formatMessage({ id: 'label.webhookLog' })}  \n ({intl.formatMessage({ id: 'message.show_n_record' }, { n: 30 })})\n \n \n \n \n }\n }\n )\n }\n}\n\nRepositorySettingWebhook.propTypes = {\n currentRepositoryKey: PropTypes.string.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingWebhook)\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport { injectIntl } from 'react-intl'\nimport Constants from 'APPSRC/config/Constants'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\n\n// style\nconst styles = theme => ({\n avatar: {\n width: theme.spacing(4),\n height: theme.spacing(4)\n },\n userName: {\n lineHeight: theme.spacing(4) + 'px'\n }\n})\n\nclass Member extends React.Component {\n render () {\n const { currentUserInfo, item, classes, intl } = this.props\n\n return (\n \n \n \n \n \n {item.name}  \n {currentUserInfo.id === item.id && }\n \n \n )\n }\n}\n\nMember.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n item: PropTypes.object,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Member)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\nimport ListSubheader from '@material-ui/core/ListSubheader'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Divider from '@material-ui/core/Divider'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plTrash } from '@pgyer/icons'\nimport { injectIntl } from 'react-intl'\nimport Member from 'APPSRC/components/unit/Member'\nimport UAC from 'APPSRC/config/UAC'\nimport TableCell from '@material-ui/core/TableCell'\n\n// style\nconst styles = theme => ({\n padding: {\n paddingRight: theme.spacing(1)\n },\n underline: {\n '&&&:before': {\n borderBottom: 'none'\n },\n '&&:after': {\n borderBottom: 'none'\n }\n },\n backgroundColor: {\n '&&&:focus': {\n backgroundColor: 'none'\n }\n },\n deleteMember: {\n color: theme.palette.error.main\n },\n split: {\n margin: theme.spacing(1) + 'px 0px'\n },\n disabled: {\n '& svg': {\n opacity: 0\n }\n }\n})\n\nclass MemberItem extends React.Component {\n update (data) {\n if (typeof data === 'number') {\n this.props.onUpdate(data)\n } else {\n this.props.onRemove(data)\n }\n }\n\n render () {\n let { item, intl, disabled, classes, removeable } = this.props\n disabled = disabled || item.creatorFlag || item.deleteFlag\n\n return (\n \n \n \n \n {item.email}\n \n \n e.target.value && this.update(e.target.value)}\n align='right'\n InputProps={{ classes: { underline: classes.underline } }}\n >\n {intl.formatMessage({ id: 'label.role' })}\n {intl.formatMessage({ id: 'label.guest' })}\n {intl.formatMessage({ id: 'label.reporter' })}\n {intl.formatMessage({ id: 'label.developer' })}\n {intl.formatMessage({ id: 'label.maintianer' })}\n {intl.formatMessage({ id: 'label.owner' })}\n {removeable && }\n {removeable && \n \n   {intl.formatMessage({ id: 'label.removeMember' })}\n }\n \n \n )\n }\n}\n\nMemberItem.propTypes = {\n item: PropTypes.object,\n disabled: PropTypes.bool,\n onUpdate: PropTypes.func,\n onRemove: PropTypes.func,\n removeable: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MemberItem)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Paper from '@material-ui/core/Paper'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport MemberItem from 'APPSRC/components/unit/MemberItem'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n textMain: {\n '& a': {\n color: theme.palette.text.main + ' !important'\n }\n },\n textLight: {\n '& a': {\n color: theme.palette.text.light + ' !important'\n }\n },\n empty: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n tableRow: {\n height: theme.spacing(7)\n }\n})\n\nclass MemberList extends React.Component {\n deleteConfirm (data, name) {\n const { intl, removeMember, isRepository, currentConfig } = this.props\n this.props.dispatchEvent(EventGenerator.addComformation('branch_remove', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.member' }) + ' \\'' + name + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => {\n removeMember(\n isRepository ? currentConfig.repository.id : currentConfig.group.id,\n data\n )\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n }))\n }\n\n render () {\n const {\n intl,\n classes,\n currentConfig,\n changeMemberRole,\n isRepository,\n groupMember,\n currentUserInfo\n } = this.props\n const members = groupMember\n ? currentConfig.members.filter(FilterGenerator.notDeleted()).filter(FilterGenerator.groupMember())\n : currentConfig.members.filter(FilterGenerator.notDeleted()).filter(FilterGenerator.notGroupMember())\n const yourself = currentConfig.members.filter(FilterGenerator.id(currentUserInfo.id))[0]\n return (\n { currentConfig\n ? \n \n \n \n { groupMember ? intl.formatMessage({ id: 'label.groupMember' }) : intl.formatMessage({ id: 'label.repositoryMember' })}\n {intl.formatMessage({ id: 'label.email' })}\n {intl.formatMessage({ id: 'label.role' })} \n \n \n \n { members\n .map((item, key) => {\n return changeMemberRole(\n isRepository ? currentConfig.repository.id : currentConfig.group.id,\n item.id,\n data\n )}\n removeable={isRepository ? !groupMember : groupMember}\n onRemove={data => this.deleteConfirm(data, item.name)}\n />\n })\n }\n \n
\n
\n : \n {intl.formatMessage({ id: 'message.repositoryEmpty' })}\n \n }\n
\n )\n }\n}\n\nMemberList.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n currentConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n changeMemberRole: PropTypes.func.isRequired,\n removeMember: PropTypes.func.isRequired,\n isRepository: PropTypes.bool.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n groupMember: PropTypes.bool.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MemberList)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport TextField from '@material-ui/core/TextField'\nimport Button from '@material-ui/core/Button'\nimport MemberList from 'APPSRC/components/unit/MemberList'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginRight: theme.spacing(2)\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n marginBottom: {\n marginBottom: theme.spacing(4)\n }\n})\n\nclass RepositorySettingMembers extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n groupConfig: {},\n email: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n passPattern: /^.+@[^.]+\\..+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0407,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0408,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.canNotAddCreatorAsMember' }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.email !== nextState.email && nextState.email.length === 0) {\n this.setState({\n error: {}\n })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n addMembers () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id,\n email: this.state.email\n }\n\n this.setState({ pending: true })\n RepositoryData.addMember(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false, email: '' })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.Added' })\n , 0)\n )\n this.reloadRepositoryData()\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.AddFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n changeMemberRole (rKey, uKey, roleID) {\n const data = {\n repository: rKey,\n userID: uKey,\n roleID\n }\n\n RepositoryData.changeMemberRole(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadRepositoryData()\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n })\n }\n\n removeMember (rKey, uKey) {\n const data = {\n repository: rKey,\n userID: uKey\n }\n\n RepositoryData.removeMember(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.removed' })\n , 0)\n )\n this.reloadRepositoryData()\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.removeFail' })\n , 2)\n )\n }\n })\n }\n\n reloadRepositoryData () {\n RepositoryData.config({ rKey: this.props.currentRepositoryConfig.repository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, classes, intl } = this.props\n\n return (\n \n \n this.setState({ email: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.addMembers()\n }\n }}\n variant='outlined'\n placeholder={intl.formatMessage({ id: 'message.plsInputInvitedEmail' })}\n />\n \n \n this.addMembers()}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? [, ' ']\n : ''\n }\n {intl.formatMessage({ id: 'label.inviteMember' })}\n \n \n \n \n {\n currentRepositoryConfig.repository\n ? \n this.changeMemberRole(e, e1, e2)}\n removeMember={(e, e1) => this.removeMember(e, e1)}\n isRepository={Boolean(true)}\n groupMember={Boolean(false)}\n />\n \n : \n \n \n }\n \n \n { currentRepositoryConfig.members\n ? currentRepositoryConfig.members.filter(FilterGenerator.notDeleted()).filter(FilterGenerator.groupMember()).length > 0 &&\n \n this.changeMemberRole(e, e1, e2)}\n removeMember={(e, e1) => this.removeMember(e, e1)}\n isRepository={Boolean(true)}\n groupMember={Boolean(true)}\n />\n \n : \n \n \n }\n \n )\n }\n}\n\nRepositorySettingMembers.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingMembers)\n )\n )\n)\n","import APIRequest from 'APPSRC/data_providers/main'\n\nfunction list () {\n return APIRequest.GET('/api/group/list')\n}\n\nfunction create (data) {\n return APIRequest.POST('/api/group/create', data)\n}\n\nfunction config (data) {\n return APIRequest.GET('/api/group/config', null, data)\n}\n\nfunction mergeRequests (data) {\n return APIRequest.GET('/api/group/mergeRequests', null, data)\n}\n\nfunction activities (data) {\n return APIRequest.GET('/api/group/activities', null, data)\n}\n\nfunction uploadAvatar (data) {\n return APIRequest.POST('/api/group/uploadAvatar', data)\n}\n\nfunction update (data) {\n return APIRequest.POST('/api/group/update', data)\n}\n\nfunction addMember (data) {\n return APIRequest.POST('/api/group/addMember', data)\n}\n\nfunction changeMemberRole (data) {\n return APIRequest.POST('/api/group/changeMemberRole', data)\n}\n\nfunction removeMember (data) {\n return APIRequest.POST('/api/group/removeMember', data)\n}\n\nfunction changeOwner (data) {\n return APIRequest.POST('/api/group/changeOwner', data)\n}\n\nfunction updateName (data) {\n return APIRequest.POST('/api/group/updateName', data)\n}\n\nfunction deleteGroup (data) {\n return APIRequest.POST('/api/group/deleteGroup', data)\n}\n\nexport default {\n list,\n create,\n config,\n mergeRequests,\n activities,\n uploadAvatar,\n update,\n addMember,\n changeMemberRole,\n removeMember,\n changeOwner,\n updateName,\n deleteGroup\n}\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faFile } from '@fortawesome/free-solid-svg-icons'\nimport { plTrash } from '@pgyer/icons'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Member from 'APPSRC/components/unit/Member'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n section: {\n marginTop: theme.spacing(3)\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginRight: theme.spacing(2)\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n warning: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText\n }\n})\n\nconst StyledMenuItem = withStyles(theme => ({\n root: {\n minHeight: theme.spacing(6)\n }\n}))(MenuItem)\n\nclass RepositorySettingAdvanced extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n groupConfig: {},\n slug: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0401,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (nextState.slug === '' && nextProps.currentRepositoryConfig.repository) {\n this.setState({ slug: nextProps.currentRepositoryConfig.repository.name })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n this.setState({ slug: '' })\n }\n\n deleteRepository () {\n this.props.dispatchEvent(EventGenerator.addComformation('repository_delete_repository', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.repositoryDeleteRepositoryNotice' }),\n reject: () => { return true },\n accept: () => {\n this.deleteRepositoryConfirmed()\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n }))\n }\n\n deleteRepositoryConfirmed () {\n this.props.dispatchEvent(EventGenerator.addComformation('repository_delete_repository_confirm', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperationConfirm' }),\n description: this.props.intl.formatMessage({ id: 'message.repositoryDeleteRepositoryConfirmNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id\n }\n this.setState({ pending: true })\n RepositoryData.deleteRepository(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadRepositoryGroupList()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.deleted' })\n , 0)\n )\n this.props.history.push(makeLink('repositories'))\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.deleteFail' })\n , 0)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n this.setState({ pending: false })\n })\n }\n }))\n }\n\n changeSlug () {\n if (!this.checkInput()) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('repository_change_slug', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.repositoryChangeURLNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id,\n name: this.state.slug\n }\n this.setState({ pending: true })\n RepositoryData.updateName(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadRepositoryData()\n this.reloadRepositoryGroupList()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.props.history.push(makeLink('repositories'))\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n }))\n }\n\n changeOwner (userID) {\n this.props.dispatchEvent(EventGenerator.addComformation('repository_change_creator', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.repositoryChangeCreatorNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id,\n userID\n }\n this.setState({ pending: true })\n RepositoryData.changeOwner(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadRepositoryData()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updateFail' })\n , 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n this.setState({ pending: false })\n })\n }\n }))\n }\n\n reloadRepositoryData () {\n RepositoryData.config({ rKey: this.props.currentRepositoryConfig.repository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n }\n })\n }\n\n reloadRepositoryGroupList () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, currentUserInfo, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'label.repositoryAdvancedSetting' }) }\n \n \n { currentRepositoryConfig.repository\n ? \n \n \n { intl.formatMessage({ id: 'label.updateCreator' }) }\n \n \n \n this.changeOwner(e.target.value)}\n >\n { currentRepositoryConfig.members.map((item, key) => {\n return (\n \n )\n }) }\n \n \n \n \n { intl.formatMessage({ id: 'label.updateRepositoryURL' }) }\n \n \n \n \n \n \n {NetworkHelper.getHost(currentUserInfo)}/{currentRepositoryConfig.group.name}/\n \n }}\n onChange={(e) => {\n const slug = NetworkHelper.makeSlug(e.target.value)\n this.setState({ slug })\n }}\n />\n \n \n this.changeSlug()}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? \n : \n }\n   {intl.formatMessage({ id: 'label.save' })}\n \n \n \n \n { intl.formatMessage({ id: 'label.deleteRepository' }) }\n \n \n \n \n { intl.formatMessage({ id: 'message.repositoryDeleteTipFirst' }) }\n \n \n { intl.formatMessage({ id: 'message.repositoryDeleteTipSecond' }) }\n \n \n \n this.deleteRepository()}\n className={classes.warning}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? \n : \n }\n   {intl.formatMessage({ id: 'label.deleteRepository' })}\n \n \n \n \n \n : \n \n }\n )\n }\n}\n\nRepositorySettingAdvanced.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingAdvanced)\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\nimport Typography from '@material-ui/core/Typography'\nimport Divider from '@material-ui/core/Divider'\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plRepository, plMember, plSetting } from '@pgyer/icons'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// style\nconst styles = theme => ({\n card: {\n cursor: 'pointer',\n transition: theme.transitions.create('box-shadow'),\n boxShadow: theme.boxShadow.card,\n '&:hover': {\n boxShadow: theme.boxShadow.cardHover\n }\n },\n content: {\n padding: theme.spacing(3),\n paddingBottom: theme.spacing(2)\n },\n icon: {\n width: theme.spacing(6),\n height: theme.spacing(6)\n },\n title: {\n maxWidth: theme.spacing(16),\n overflow: 'hidden'\n },\n ownerMarker: {\n lineHeight: theme.spacing(3) + 'px'\n },\n description: {\n height: theme.spacing(1.5),\n lineHeight: theme.spacing(1.5) + 'px'\n },\n avatar: {\n marginRight: theme.spacing(1),\n width: theme.spacing(3),\n height: theme.spacing(3)\n }\n})\n\nclass GroupCard extends Component {\n render () {\n const { classes, theme, history, groupInfo, repositoryList, intl } = this.props\n return { history.push(makeLink('groups', groupInfo.name)) }}\n >\n \n \n \n \n \n { groupInfo.icon\n ? \n : {groupInfo.name.substr(0, 1).toUpperCase()}\n }\n \n \n \n {groupInfo.displayName}\n \n \n \n \n \n \n \n \n {\n ev.stopPropagation()\n history.push(makeLink('groups', groupInfo.name, 'settings'))\n }}\n />\n \n \n \n { groupInfo.description || '...' }\n \n \n \n \n  \n { repositoryList.filter(FilterGenerator.group(groupInfo.id)).length }     \n  \n { groupInfo.members.length }\n \n \n \n \n \n \n { groupInfo.members.map((item, key) => {\n return item.icon\n ? \n : {item.name.substr(0, 1).toUpperCase()}\n }) }\n \n \n \n \n }\n}\n\nGroupCard.propTypes = {\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n groupInfo: PropTypes.object,\n repositoryList: PropTypes.array.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupCard)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport GroupCard from 'APPSRC/components/unit/GroupCard'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport UAC from 'APPSRC/config/UAC'\n\nconst styles = (theme) => ({\n container: {\n minWidth: theme.spacing(40)\n }\n})\n\nclass GroupList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n currentTab: 0\n }\n }\n\n render () {\n const { groupList, currentUserInfo, classes, intl } = this.props\n const tabs = [\n intl.formatMessage({ id: 'label.all' }),\n intl.formatMessage({ id: 'label.IJoined' }),\n intl.formatMessage({ id: 'label.ICreated' })\n ]\n const tabsFilter = [\n () => true,\n FilterGenerator.not(FilterGenerator.creator(currentUserInfo.id)),\n FilterGenerator.creator(currentUserInfo.id)\n ]\n\n const finalList = groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.REPO_READ))\n .filter(tabsFilter[this.state.currentTab])\n\n return \n \n {\n this.setState({ currentTab: tab })\n }}\n >\n {\n this.props.history.push(makeLink('groups', 'new'))\n }}\n >\n { intl.formatMessage({ id: 'label.newGroup' }) }\n \n \n \n { finalList\n .map((item, key) => \n \n ) }\n { finalList.length === 0 && \n {\n this.props.history.push(makeLink('groups', 'new'))\n }}\n >\n { intl.formatMessage({ id: 'label.newGroup' }) }\n \n }\n \n }\n}\n\nGroupList.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n groupList: PropTypes.array.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n groupList: state.DataStore.groupList,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(GroupList)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport TextField from '@material-ui/core/TextField'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport GroupConfig from 'APPSRC/config/Group'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPlus,\n faUndo\n} from '@fortawesome/free-solid-svg-icons'\nimport Button from '@material-ui/core/Button'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginLeft: theme.spacing(2)\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n }\n})\n\nclass newRepositoryFork extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n personalGroupCreateFlag: false,\n groupList: null,\n groupListChecked: false,\n name: '',\n slug: '',\n description: '',\n error: {}\n }\n\n this.observed = {\n forkRepositoryInfo: ''\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^[0-9a-zA-Z\\\\._-]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_has_illegal_character' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupURL' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupSlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'description',\n passPattern: /^.{0,200}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 200 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0403,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.groupURL' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0404,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n this.setState({ groupList: data.data })\n }\n })\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (nextProps.currentUserInfo && nextProps.currentUserInfo.id && nextState.groupList !== null && !nextState.groupListChecked) {\n const personalGroups = nextState.groupList\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (personalGroups.length) {\n this.setState({\n groupListChecked: true,\n personalGroupCreateFlag: false,\n pending: false\n })\n } else {\n const userData = nextProps.currentUserInfo.email.split('@')\n this.setState({\n groupListChecked: true,\n personalGroupCreateFlag: true,\n pending: false,\n name: userData[0],\n slug: NetworkHelper.makeSlug(userData[0])\n })\n }\n }\n\n if (this.state.description !== nextState.description && nextState.description.length < 201) {\n this.setState({\n error: {}\n })\n return false\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n createGroup () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n name: this.state.slug,\n type: this.state.personalGroupCreateFlag ? GroupConfig.Type.USER : GroupConfig.Type.NORMAL,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n GroupData.create(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const groupData = data.data\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n this.props.history.push(makeLink('groups', groupData.name))\n }\n })\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createGroupFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n render () {\n const { classes, intl, currentUserInfo } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'label.newGroup' }) }\n \n \n \n \n { this.state.groupList !== null\n ? \n \n \n { this.state.personalGroupCreateFlag && \n \n {intl.formatMessage({ id: 'message.createPersonalGroupNotice' })}\n \n }\n \n { intl.formatMessage({ id: 'label.groupName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n const error = {}\n this.setState({ name, slug, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.groupURL' }) }\n \n \n {NetworkHelper.getHost(currentUserInfo)}/\n }}\n onChange={(e) => {\n const slug = NetworkHelper.makeSlug(e.target.value)\n this.setState({ slug })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.groupDescription' }) }\n \n \n this.setState({ description: e.target.value })}\n />\n \n \n \n \n 200 ? classes.outRange : ''}\n >\n {this.state.description.length}/200\n \n \n \n \n \n \n \n \n \n \n \n \n : \n \n \n \n }\n \n \n )\n }\n}\n\nnewRepositoryFork.propTypes = {\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(newRepositoryFork)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport TextField from '@material-ui/core/TextField'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Button from '@material-ui/core/Button'\nimport AvatarUploader from 'APPSRC/components/unit/AvatarUploader'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport Constants from 'APPSRC/config/Constants'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(1),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginLeft: theme.spacing(2)\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n }\n})\n\nclass GroupSettingGeneral extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n name: '',\n description: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^[0-9a-zA-Z\\\\._-]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_has_illegal_character' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'description',\n passPattern: /^.{0,200}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 200 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'name',\n exceptionCode: 0x0404,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n if (this.props.currentGroupConfig.group) {\n this.setState({\n name: this.props.currentGroupConfig.group.displayName,\n description: this.props.currentGroupConfig.group.description\n })\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentGroupConfig) !== JSON.stringify(this.props.currentGroupConfig) &&\n nextProps.currentGroupConfig.group\n ) {\n this.setState({\n name: nextProps.currentGroupConfig.group.displayName,\n description: nextProps.currentGroupConfig.group.description\n })\n return false\n }\n\n if (this.state.description !== nextState.description && nextState.description.length < 201) {\n this.setState({\n error: {}\n })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n updateGroup () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n group: this.props.currentGroupConfig.group.id,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n GroupData.update(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadGroupData()\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n avatarUploaded (data) {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadGroupData()\n }\n }\n\n reloadGroupData () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n }\n })\n\n GroupData.config({ gKey: this.props.currentGroupConfig.group.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentGroupConfig, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'menu.general' }) }\n \n \n \n { currentGroupConfig.group\n ? \n \n \n { intl.formatMessage({ id: 'label.groupAvatar' }) }\n \n \n \n this.avatarUploaded(data)}\n dataProvider={GroupData.uploadAvatar}\n />\n \n \n \n \n \n { intl.formatMessage({ id: 'label.groupName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n const error = {}\n this.setState({ name, slug, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.groupDescription' }) }\n \n \n this.setState({\n description: e.target.value\n })}\n />\n \n \n \n \n 200 ? classes.outRange : ''}\n >\n {this.state.description.length}/200\n \n \n \n \n \n \n \n \n \n \n \n \n : \n \n \n \n }\n \n )\n }\n}\n\nGroupSettingGeneral.propTypes = {\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupConfig: state.DataStore.currentGroupConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupSettingGeneral)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport TextField from '@material-ui/core/TextField'\nimport Button from '@material-ui/core/Button'\nimport MemberList from 'APPSRC/components/unit/MemberList'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n btn: {\n marginRight: theme.spacing(2)\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n marginBottom: {\n marginBottom: theme.spacing(4)\n }\n})\n\nclass GroupSettingMembers extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n groupConfig: {},\n email: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n passPattern: /^.+@[^.]+\\..+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0407,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0408,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.canNotAddCreatorAsMember' }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.email !== nextState.email && nextState.email.length === 0) {\n this.setState({\n error: {}\n })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n addMembers () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n group: this.props.currentGroupConfig.group.id,\n email: this.state.email\n }\n\n this.setState({ pending: true })\n GroupData.addMember(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false, email: '' })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.Added' })\n , 0)\n )\n this.reloadGroupData()\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.AddFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n changeMemberRole (gKey, uKey, roleID) {\n const data = {\n group: gKey,\n userID: uKey,\n roleID\n }\n\n GroupData.changeMemberRole(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadGroupData()\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n })\n }\n\n removeMember (gKey, uKey) {\n const data = {\n group: gKey,\n userID: uKey\n }\n\n GroupData.removeMember(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.removed' })\n , 0)\n )\n this.reloadGroupData()\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.removeFail' })\n , 2)\n )\n }\n })\n }\n\n reloadGroupData () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n GroupData.config({ gKey: this.props.currentGroupConfig.group.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentGroupConfig, classes, intl } = this.props\n\n return (\n \n \n this.setState({ email: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.addMembers()\n }\n }}\n variant='outlined'\n placeholder={intl.formatMessage({ id: 'message.plsInputInvitedEmail' })}\n />\n \n \n this.addMembers()}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? [, ' ']\n : ''\n }\n {intl.formatMessage({ id: 'label.inviteMember' })}\n \n \n \n \n { currentGroupConfig.group\n ? \n this.changeMemberRole(e, e1, e2)}\n removeMember={(e, e1) => this.removeMember(e, e1)}\n isRepository={Boolean(false)}\n groupMember={Boolean(true)}\n />\n \n : \n \n \n }\n \n )\n }\n}\n\nGroupSettingMembers.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupConfig: state.DataStore.currentGroupConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupSettingMembers)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faFile, faTrash } from '@fortawesome/free-solid-svg-icons'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Member from 'APPSRC/components/unit/Member'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(1),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n section: {\n marginTop: theme.spacing(3)\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginRight: theme.spacing(2)\n },\n warning: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText\n }\n})\n\nconst StyledMenuItem = withStyles(theme => ({\n root: {\n minHeight: theme.spacing(6)\n }\n}))(MenuItem)\n\nclass GroupSettingAdvanced extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n slug: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupSlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0403,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.groupURL' }) }\n )\n },\n {\n exceptionCode: 0x0409,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.canNotDeleteUserGroup' })\n },\n {\n exceptionCode: 0x040A,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.canNotDeleteNonEmptyGroup' })\n },\n {\n exceptionCode: 0x040B,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.canNotChangeOwnerOfUserGroup' })\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (nextState.slug === '' && nextProps.currentGroupConfig.group) {\n this.setState({ slug: nextProps.currentGroupConfig.group.name })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n this.setState({ slug: '' })\n }\n\n deleteGroup () {\n this.props.dispatchEvent(EventGenerator.addComformation('group_delete_group', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.groupDeleteRepositoryNotice' }),\n reject: () => { return true },\n accept: () => {\n this.deleteGroupConfirmed()\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n }))\n }\n\n deleteGroupConfirmed () {\n this.props.dispatchEvent(EventGenerator.addComformation('group_delete_group_confirm', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperationConfirm' }),\n description: this.props.intl.formatMessage({ id: 'message.groupDeleteRepositoryConfirmNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n group: this.props.currentGroupConfig.group.id\n }\n this.setState({ pending: true })\n GroupData.deleteGroup(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadRepositoryGroupList()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.deleted' })\n , 0)\n )\n this.props.history.push(makeLink('groups'))\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.deleteFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n }))\n }\n\n changeSlug () {\n if (!this.checkInput()) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('group_change_slug', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.groupChangeURLNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n group: this.props.currentGroupConfig.group.id,\n name: this.state.slug\n }\n this.setState({ pending: true })\n GroupData.updateName(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadGroupData()\n this.reloadRepositoryGroupList()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.props.history.push(makeLink('groups'))\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n }))\n }\n\n changeOwner (userID) {\n this.props.dispatchEvent(EventGenerator.addComformation('group_change_creator', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.groupChangeCreatorNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n group: this.props.currentGroupConfig.group.id,\n userID\n }\n this.setState({ pending: true })\n GroupData.changeOwner(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadGroupData()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n this.setState({ pending: false })\n })\n }\n }))\n }\n\n reloadGroupData () {\n GroupData.config({ gKey: this.props.currentGroupConfig.group.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: data.data })\n }\n })\n }\n\n reloadRepositoryGroupList () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentGroupConfig, currentUserInfo, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'label.groupAdvancedSetting' }) }\n \n \n \n { currentGroupConfig.group\n ? \n \n \n { intl.formatMessage({ id: 'label.updateCreator' }) }\n \n \n \n this.changeOwner(e.target.value)}\n >\n { currentGroupConfig.members.map((item, key) => {\n return (\n \n )\n }) }\n \n \n \n \n { intl.formatMessage({ id: 'label.updateGroupURL' }) }\n \n \n \n \n \n \n {NetworkHelper.getHost(currentUserInfo)}/\n \n }}\n onChange={(e) => {\n const slug = NetworkHelper.makeSlug(e.target.value)\n const error = {}\n this.setState({\n slug, error\n })\n }}\n />\n \n \n this.changeSlug()}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? \n : \n }\n   {intl.formatMessage({ id: 'label.save' })}\n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.deleteGroup' }) }\n \n \n \n this.deleteGroup()}\n className={classes.warning}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? \n : \n }\n   {intl.formatMessage({ id: 'label.deleteGroup' })}\n \n \n \n : \n \n \n \n }\n \n )\n }\n}\n\nGroupSettingAdvanced.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupConfig: state.DataStore.currentGroupConfig,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupSettingAdvanced)\n )\n )\n)\n","import React from 'react'\nimport { Link } from 'react-router-dom'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\nfunction parser (config) {\n const code = config.item.type\n let members = []\n let user = {}\n\n if (config.currentGroupConfig.group) {\n members = config.currentGroupConfig.members\n } else if (config.currentRepositoryConfig.repository) {\n members = config.currentRepositoryConfig.members\n }\n\n user = members.filter(FilterGenerator.id(config.item.creator))[0]\n config.relatedGroup = config.groupList.filter(FilterGenerator.id(config.item.group))[0]\n config.relatedRepository = config.repositoryList.filter(FilterGenerator.id(config.item.repository))[0]\n\n if (!user) {\n user = {\n icon: null,\n id: config.item.creator,\n name: 'userID_' + config.item.creator.slice(0, 8)\n }\n }\n\n if (!config.relatedGroup) {\n config.relatedGroup = {\n id: config.item.group,\n displayName: 'groupID_' + config.item.group.slice(0, 8),\n name: null\n }\n }\n\n if (!config.relatedRepository) {\n config.relatedRepository = {\n id: config.item.repository,\n displayName: 'repositoryID_' + config.item.repository.slice(0, 8),\n name: null,\n group: config.relatedGroup\n }\n }\n\n if (code === 0x0201) {\n // group create\n const detail = config.relatedGroup.name\n ? \n {config.relatedGroup.displayName}\n \n : config.item.content.name\n\n return { user, action: config.formatter({ id: 'message.activity.createdGroup' }), detail }\n } else if (code === 0x0202) {\n // update group avatar\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateGroup_S_Avator' },\n { s: config.relatedGroup.displayName }\n ),\n detail: ''\n }\n } else if (code === 0x0203) {\n // update repository name\n const detail = \n { config.formatter(\n { id: 'label.updateFrom_S1_To_S2' },\n { s1: config.item.content.from, s2: config.item.content.to }\n ) }\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateGroup_S_Name' },\n { s: config.relatedGroup.displayName }\n ),\n detail\n }\n } else if (code === 0x0204) {\n // update repository description\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateGroup_S_Description' },\n { s: config.relatedGroup.displayName }\n ),\n detail: ''\n }\n } else if (code === 0x0205) {\n // add a new member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.addGroup_S_Memeber' },\n { s: config.relatedGroup.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0206) {\n // add a new member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n const roleName = config.formatter({ id: 'label.roleID_' + config.item.content.to })\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.changeGroup_S_MemebrRole' },\n { s: config.relatedGroup.displayName }\n ),\n detail: (memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')) + ': ' + roleName\n }\n } else if (code === 0x0207) {\n // remove a member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.removeGroup_S_Memebr' },\n { s: config.relatedGroup.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0208) {\n // set a member as creator\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.setGroup_S_Creator' },\n { s: config.relatedGroup.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0209) {\n // change group url\n const detail = \n { config.formatter(\n { id: 'label.updateFrom_S1_To_S2' },\n {\n s1: makeLink('groups', config.item.content.from),\n s2: makeLink('groups', config.item.content.to)\n }\n ) }\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.setGroup_S_URL' },\n { s: config.relatedGroup.displayName }\n ),\n detail\n }\n } else if (code === 0x0301) {\n // create repository\n const detail = config.relatedRepository.name && config.relatedGroup.name\n ? \n {config.relatedGroup.displayName}/{config.relatedRepository.displayName}\n \n : config.item.content.name\n\n return { user, action: config.formatter({ id: 'message.activity.createdRepository' }), detail }\n } else if (code === 0x0302) {\n // create repository via fork\n const repositoryLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n {config.relatedGroup.displayName}/{config.relatedRepository.displayName}\n \n : config.item.content.name\n\n const detail = \n {repositoryLink} {config.formatter({ id: 'label.forkFrom_S' }, { s: config.item.content.sourceName })}\n \n\n return { user, action: config.formatter({ id: 'message.activity.forkRepository' }), detail }\n } else if (code === 0x0303) {\n // update repository avatar\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateRepository_S_Avator' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: ''\n }\n } else if (code === 0x0304) {\n // update repository name\n const detail = \n { config.formatter(\n { id: 'label.updateFrom_S1_To_S2' },\n { s1: config.item.content.from, s2: config.item.content.to }\n ) }\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateRepository_S_Name' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0305) {\n // update repository description\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateRepository_S_Description' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: ''\n }\n } else if (code === 0x0306) {\n // add a new member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.addRepository_S_Memeber' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0307) {\n // add a new member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n const roleName = config.formatter({ id: 'label.roleID_' + config.item.content.to })\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.changeRepository_S_MemebrRole' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: (memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')) + ': ' + roleName\n }\n } else if (code === 0x0308) {\n // remove a member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.removeRepository_S_Memebr' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0309) {\n // set a member as creator\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.setRepository_S_Creator' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x030A) {\n // change repository url\n const detail = \n { config.formatter(\n { id: 'label.updateFrom_S1_To_S2' },\n {\n s1: makeLink(config.relatedGroup.name, config.item.content.from),\n s2: makeLink(config.relatedGroup.name, config.item.content.to)\n }\n ) }\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.setRepository_S_URL' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x030B) {\n // delete repository\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.deleteRepository' }\n ),\n detail: config.item.content.name\n }\n } else if (code === 0x0401) {\n // push to branch\n const branchLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const startHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.from.slice(0, 8) }\n \n : config.item.content.from.slice(0, 8)\n\n const endHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.to.slice(0, 8) }\n \n : config.item.content.to.slice(0, 8)\n\n const detail = \n {startHash} .. {endHash} -> {branchLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.pushTo_S_Branch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0402) {\n // push to new branch\n const branchLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const endHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.to.slice(0, 8) }\n \n : config.item.content.to.slice(0, 8)\n\n const detail = \n {endHash} -> {branchLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.pushTo_S_NewBranch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0403) {\n // create new branch\n const branchLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const detail = \n {config.formatter({ id: 'label.newBranch' })} {branchLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.created_S_NewBranch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0404) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_Branch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'label.deleteBranch' }) + ' ' + config.item.content.name\n }\n } else if (code === 0x0405) {\n // update default branch\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.update_S_DefaultBranch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'message.updateDefaultBranch' })} \n {config.item.content.from && \n \n { config.item.content.from }\n -> \n \n }\n \n { config.item.content.to }\n \n \n }\n } else if (code === 0x0406) {\n // create protected branch rule\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.created_S_ProtectedBranchRule' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'message.createProtectedBranchRule' })} \n \n {config.item.content.name}\n \n \n }\n } else if (code === 0x0407) {\n // update protected branch rule\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.update_S_ProtectedBranchRule' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'message.updateProtectedBranchRule' })} \n \n {config.item.content.name}\n \n \n }\n } else if (code === 0x0408) {\n // delete protected branch rule\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_ProtectedBranchRule' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'message.deleteProtectedBranchRule' })} \n {config.item.content.name}\n \n }\n } else if (code === 0x0501) {\n // push to a tag\n const tagLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const startHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.from.slice(0, 8) }\n \n : config.item.content.from.slice(0, 8)\n\n const endHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.to.slice(0, 8) }\n \n : config.item.content.to.slice(0, 8)\n\n const detail = \n {startHash} .. {endHash} -> {tagLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.pushTo_S_Tag' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0502) {\n // push to a new tag\n const tagLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const endHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.to.slice(0, 8) }\n \n : config.item.content.to.slice(0, 8)\n\n const detail = \n {endHash} -> {tagLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.pushTo_S_NewTag' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0503) {\n // create a new tag\n const tagLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const detail = \n {config.formatter({ id: 'label.newTag' })} {tagLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.created_S_NewTag' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0504) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_Tag' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'label.deleteTag' }) + ' ' + config.item.content.name\n }\n } else if (code === 0x0701) {\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n const detail = \n {config.formatter({ id: 'label.openMergeRequest' })} {mergeRequestLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.open_S_MergeRquest' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: detail\n }\n } else if (code === 0x0702) {\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n const detail = \n {config.formatter({ id: 'label.closeMergeRequest' })} {mergeRequestLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.close_S_MergeRquest' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: detail\n }\n } else if (code === 0x0703) {\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n const detail = \n {config.formatter({ id: 'label.mergeRequest' })} {mergeRequestLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.merge_S_MergeRquest' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: detail\n }\n } else if (code === 0x0704) {\n const reviewer = members.filter(FilterGenerator.id(config.item.content.reviewer))[0]\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.assign_S_Reviewer' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'message.assign_N_M_Reviewer' }, { n: reviewer.name, m: mergeRequestLink })\n }\n } else if (code === 0x0705) {\n const reviewer = members.filter(FilterGenerator.id(config.item.content.reviewer))[0]\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_Reviewer' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'message.delete_M_N_Reviewer' }, { n: reviewer.name, m: mergeRequestLink })\n }\n } else if (code === 0x0706) {\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.review_S_Reviewer' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'message.review_M_Reviewer' }, { m: mergeRequestLink })\n }\n } else if (code === 0x0901) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.create_S_Webhook' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'label.createWebhook' })}\n \n }\n } else if (code === 0x0902) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.update_S_Webhook' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'label.updateWebhook' })}\n \n }\n } else if (code === 0x0903) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_Webhook' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'label.deleteWebhook' })}\n \n }\n }\n\n return {\n user,\n action: '',\n detail: ''\n }\n}\n\nexport default { parser }\n","import React from 'react'\n\nexport default function (options) {\n return function (WrappedComponent) {\n return class extends React.Component {\n constructor (props) {\n super(props)\n this.target = null\n this.cancel = null\n this.onScroll = this.onScroll.bind(this)\n this.state = {\n scrollTrigger: false\n }\n }\n\n componentDidMount () {\n if (options.watching) {\n this.cancel && this.cancel()\n this.target = document.querySelector(options.watching)\n this.cancel = function () { this.target.removeEventListener('scroll', this.onScroll) }\n this.target.addEventListener('scroll', this.onScroll)\n this.onScroll({ target: this.target })\n }\n }\n\n componentWillUnmount () {\n this.cancel && this.cancel()\n this.cancel = null\n this.target = null\n }\n\n onScroll (ev) {\n const scrollAmount = ev.target.pageYOffset || ev.target.scrollTop\n if (scrollAmount > options.threshold && !this.state.scrollTrigger) {\n this.setState({ scrollTrigger: true })\n } else if (scrollAmount <= options.threshold && this.state.scrollTrigger) {\n this.setState({ scrollTrigger: false })\n }\n }\n\n render () {\n return \n }\n }\n }\n}\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport { injectIntl } from 'react-intl'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport Activity from 'APPSRC/config/Activity'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n avatar: {\n width: theme.spacing(3),\n height: theme.spacing(3)\n },\n item: {\n border: '1px solid ' + theme.palette.border,\n marginBottom: '-1px',\n padding: theme.spacing(2) + 'px ' + theme.spacing(3) + 'px',\n '&:first-child': {\n borderRadius: '4px 4px 0px 0px'\n },\n '&:last-child': {\n borderRadius: '0px 0px 4px 4px'\n }\n },\n action: {\n lineHeight: theme.spacing(3) + 'px'\n },\n paddingRight2: {\n paddingRight: theme.spacing(2),\n lineHeight: theme.spacing(3) + 'px'\n }\n})\n\nclass ActivityItem extends React.Component {\n render () {\n const { item, groupList, currentGroupConfig, repositoryList, currentRepositoryConfig, intl, classes } = this.props\n\n const config = { item, groupList, repositoryList, currentGroupConfig, currentRepositoryConfig, formatter: intl.formatMessage }\n const parsedData = Activity.parser(config)\n\n return (\n \n \n \n \n \n \n \n {parsedData.user.name} {parsedData.action}\n {parsedData.detail} \n \n \n \n \n \n {intl.formatMessage({ id: 'label.editIn' })}: \n \n \n \n )\n }\n}\n\nActivityItem.propTypes = {\n item: PropTypes.object,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig,\n groupList: state.DataStore.groupList,\n currentGroupConfig: state.DataStore.currentGroupConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(ActivityItem)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport { plSearch } from '@pgyer/icons'\nimport ActivityItem from 'APPSRC/components/unit/ActivityItem'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\nconst styles = (theme) => ({\n input: {\n width: theme.spacing(30),\n maxWidth: '100%'\n },\n icon: {\n color: theme.palette.text.light\n },\n marginTop3: {\n marginTop: theme.spacing(3)\n }\n})\n\nclass ActivityList extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n activityList: [],\n page: 1,\n listFinshed: false,\n pending: true,\n category: 0,\n keyword: ''\n }\n\n this.observed = {\n keyword: ''\n }\n\n this.mountedFlag = false\n }\n\n componentDidMount () {\n this.setState({ page: 1, listFinshed: false, pending: true, activityList: [] })\n this.getData(this.props, this.state)\n this.mountedFlag = true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // watch currentAppKey\n if (JSON.stringify(this.props.currentGroupConfig) !== JSON.stringify(nextProps.currentGroupConfig)) {\n this.setState({ page: 1, listFinshed: false, pending: true, activityList: [] })\n this.getData(nextProps, nextState)\n return false\n }\n\n // watch project list\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.setState({ page: 1, listFinshed: false, pending: true, activityList: [] })\n this.getData(nextProps, nextState)\n return false\n }\n\n if (this.state.page !== nextState.page && !nextState.pending) {\n this.setState({ pending: true })\n this.getData(nextProps, nextState)\n return false\n }\n\n if (this.state.category !== nextState.category) {\n this.setState({ pending: true, page: 1, activityList: [] })\n this.getData(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n getData (props, state) {\n this.observed.keyword = state.keyword\n if (props.currentRepositoryConfig.repository) {\n // load repository activities\n RepositoryData.activities({ repository: props.currentRepositoryKey, category: state.category, keyword: state.keyword, page: state.page, pagesize: 20 })\n .then(NetworkHelper.withEventdispatcher(props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const listFinshed = data.data.length < 20\n this.setState({ pending: false, activityList: [...this.state.activityList, ...data.data], listFinshed })\n }\n })\n } else if (props.currentGroupConfig.group) {\n // load group activities\n GroupData.activities({ group: props.currentGroupKey, category: state.category, keyword: state.keyword, page: state.page, pagesize: 20 })\n .then(NetworkHelper.withEventdispatcher(props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const listFinshed = data.data.length < 20\n this.setState({ pending: false, activityList: [...this.state.activityList, ...data.data], listFinshed })\n }\n })\n }\n }\n\n searchActivity () {\n if (this.observed.keyword !== this.state.keyword) {\n this.setState({ activityList: [] })\n this.getData(this.props, this.state)\n }\n }\n\n render () {\n const { intl, classes } = this.props\n const activityCategory = Constants.activityCategory\n const tabs = []\n tabs[activityCategory.all] = intl.formatMessage({ id: 'label.all' })\n tabs[activityCategory.commit] = intl.formatMessage({ id: 'label.commitActivity' })\n tabs[activityCategory.mergeRequest] = intl.formatMessage({ id: 'label.mergeRequestActivity' })\n tabs[activityCategory.member] = intl.formatMessage({ id: 'label.memberActivity' })\n\n return (\n \n \n this.setState({ category: newValue })}\n >\n this.setState({ keyword: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.searchActivity()\n }\n }}\n InputProps={{\n startAdornment: \n }}\n />\n \n \n \n \n { this.state.activityList.length > 0 && this.state.activityList\n .map((item, key) => {\n return \n })\n }\n \n \n \n { this.state.pending\n ? \n : this.state.listFinshed\n ? \n : \n }\n \n \n \n \n )\n }\n}\n\nActivityList.propTypes = {\n // match: PropTypes.object.isRequired,\n // dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n // currentGroupKey: PropTypes.string.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n // currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupKey: state.DataStore.currentGroupKey,\n currentGroupConfig: state.DataStore.currentGroupConfig,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(ActivityList)\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter, Link } from 'react-router-dom'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Avatar from '@material-ui/core/Avatar'\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport Popover from '@material-ui/core/Popover'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n plFork,\n plFile,\n plCommit,\n plBranch,\n plMerge,\n plMember,\n plTag,\n plCopy\n} from '@pgyer/icons'\n\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\n\nimport { formatNumber, makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n content: {\n height: theme.spacing(15.5),\n boxSizing: 'border-box',\n borderBottom: '1px solid ' + theme.palette.border,\n borderRadius: 0\n },\n icon: {\n height: theme.spacing(5),\n width: theme.spacing(5)\n },\n text: {\n height: theme.spacing(3),\n lineHeight: theme.spacing(3) + 'px',\n overflow: 'hidden'\n },\n subtext: {\n paddingTop: theme.spacing(0.5),\n height: theme.spacing(1.5),\n lineHeight: theme.spacing(1.5) + 'px'\n },\n iconBar: {\n height: theme.spacing(3),\n lineHeight: theme.spacing(3) + 'px'\n },\n clonePopvoer: {\n width: theme.spacing(50) + 'px'\n },\n cloneContent: {\n padding: theme.spacing(2)\n },\n cloneHeader: {\n padding: '0px ' + theme.spacing(2) + 'px'\n },\n border: {\n '& button': {\n borderColor: theme.palette.border,\n padding: '2px ' + theme.spacing(2) + 'px'\n }\n },\n copy: {\n marginLeft: '2px',\n '& button': {\n position: 'relative',\n right: '-14px',\n borderLeft: '1px solid ' + theme.palette.border,\n borderRadius: '0px 4px 4px 0px'\n }\n }\n})\n\nclass RepositoryDashboard extends Component {\n constructor (props) {\n super(props)\n this.state = {\n popoverAnchor: null,\n popoverTab: 0\n }\n }\n\n render () {\n const { classes, repositoryConfig, intl, history, repositoryList, currentUserInfo } = this.props\n\n const forkRepositoryInfo = repositoryList\n .filter(FilterGenerator.id((repositoryConfig && repositoryConfig.repository && repositoryConfig.repository.forkFrom) || ''))[0]\n\n return (\n \n { repositoryConfig && repositoryConfig.repository && repositoryConfig.repository.id\n ? \n \n \n \n { repositoryConfig.repository.icon\n ? \n : {repositoryConfig.repository.name.substr(0, 1).toUpperCase()}\n }\n \n \n \n {repositoryConfig.group.displayName}/{repositoryConfig.repository.displayName}   \n { forkRepositoryInfo\n ? \n \n { intl.formatMessage({ id: 'label.forkFrom_S' }, {\n s: forkRepositoryInfo.group.displayName + '/' + forkRepositoryInfo.displayName\n }) }\n \n \n : '' }\n \n \n {repositoryConfig.repository.description}\n \n \n \n \n \n \n \n \n history.push(makeLink('repositories/fork', repositoryConfig.repository.id))\n }\n >\n \n   { intl.formatMessage({ id: 'label.fork' }) }\n \n history.push(makeLink('repositories/forklist', repositoryConfig.repository.id))\n }\n >\n { repositoryConfig.repository.forkCount }\n \n \n \n \n \n {\n this.state.popoverAnchor\n ? this.setState({ popoverAnchor: null })\n : this.setState({ popoverAnchor: e.currentTarget })\n }}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n \n \n {\n this.setState({ popoverTab: tab })\n }}\n />\n \n { this.state.popoverTab === 0 && \n \n {intl.formatMessage({ id: 'message.differenceBetweenHTTPSAndSSH' })}  \n \n \n \n {\n const dom = document.getElementById('repsoditory-http-url-text')\n dom.select()\n document.execCommand('Copy')\n dom.blur()\n }}\n />\n \n }}\n />\n }\n { this.state.popoverTab === 1 && \n \n {intl.formatMessage({ id: 'message.generateAndSetSSHKey' })}  \n \n \n \n {\n const dom = document.getElementById('repsoditory-ssh-url-text')\n dom.select()\n document.execCommand('Copy')\n dom.blur()\n }}\n />\n \n }}\n />\n }\n \n \n \n \n \n \n \n \n   { intl.formatMessage({ id: 'label._N_commit' }, { n: repositoryConfig.count.commit }) }     \n \n   { intl.formatMessage({ id: 'label._N_branch' }, { n: repositoryConfig.count.branch }) }     \n \n   { intl.formatMessage({ id: 'label._N_tag' }, { n: repositoryConfig.count.tag }) }     \n \n   { intl.formatMessage({ id: 'label._N_byte' }, { n: formatNumber(repositoryConfig.count.file) }) }     \n \n   { intl.formatMessage({ id: 'label._N_mergeRequest' }, { n: repositoryConfig.repository.mergeRequestCount.open }) }     \n \n   { intl.formatMessage({ id: 'label._N_member' }, { n: repositoryConfig.members.length }) }\n \n \n \n : \n \n \n }\n \n )\n }\n}\n\nRepositoryDashboard.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n repositoryConfig: PropTypes.object,\n repositoryList: PropTypes.array.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositoryDashboard)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport ListSubheader from '@material-ui/core/ListSubheader'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { plBranch, plTag, plCommit } from '@pgyer/icons'\n\n// style\nconst styles = theme => ({\n select: {\n '& > div > svg': {\n width: theme.spacing(3),\n height: theme.spacing(3)\n }\n },\n icon: {\n color: theme.palette.text.light\n }\n})\n\nclass RefSelector extends React.Component {\n composeOptions (revisionList, currentRevision) {\n let options = []\n if (revisionList && (revisionList.branches || revisionList.tags)) {\n if (revisionList.branches && revisionList.branches.length) {\n options.push({this.props.intl.formatMessage({ id: 'label.branch' })})\n options = options.concat(revisionList.branches.map(\n (item, key) => \n   {item.name}\n \n ))\n }\n\n if (revisionList.tags && revisionList.tags.length) {\n options.push({this.props.intl.formatMessage({ id: 'label.tag' })})\n options = options.concat(revisionList.tags.map(\n (item, key) => \n   {item.name}\n \n ))\n }\n\n if (!revisionList.branches.filter(FilterGenerator.id(currentRevision)).length &&\n !revisionList.tags.filter(FilterGenerator.id(currentRevision)).length\n ) {\n options.push({this.props.intl.formatMessage({ id: 'label.commit' })})\n options.push(\n   {currentRevision}\n )\n }\n }\n return options\n }\n\n render () {\n const { currentRevision, revisionList, onChange, classes } = this.props\n\n return e.target.value && onChange(e.target.value)}\n className={classes.select}\n >\n {this.composeOptions(revisionList, currentRevision)}\n \n }\n}\n\nRefSelector.propTypes = {\n currentRevision: PropTypes.string.isRequired,\n revisionList: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RefSelector)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\nimport { diffChars } from 'diff/lib'\n\n// style\nconst styles = theme => ({\n addition: {\n backgroundColor: theme.palette.background.additionDarker\n },\n deletion: {\n backgroundColor: theme.palette.background.deletionDarker\n }\n})\n\nclass CodeLine extends React.Component {\n constructor (props) {\n super(props)\n this.code = React.createRef()\n }\n\n componentDidMount () {\n this.refreshCodeLine()\n }\n\n componentDidUpdate () {\n this.refreshCodeLine()\n }\n\n refreshCodeLine () {\n if (typeof this.props.htmlCode === 'string') {\n const fragment = document.createElement('span')\n fragment.innerHTML = this.props.htmlCode\n\n if (typeof this.props.original === 'string') {\n // diff node, highlight adds\n const diff = diffChars(this.props.original, this.props.code)\n let currentPosition = 0\n const offsets = []\n for (let index = 0; index < diff.length; index++) {\n if (!diff[index].added && !diff[index].removed) {\n currentPosition += diff[index].count\n } else if (diff[index].added) {\n for (let offset = 0; offset < diff[index].count; offset++) {\n offsets.push(currentPosition)\n currentPosition++\n }\n }\n }\n this.highlightWord(fragment, this.props.classes.addition, offsets)\n } else if (typeof this.props.modified === 'string') {\n // diff node, highlight removes\n const diff = diffChars(this.props.code, this.props.modified)\n let currentPosition = 0\n const offsets = []\n for (let index = 0; index < diff.length; index++) {\n if (!diff[index].added && !diff[index].removed) {\n currentPosition += diff[index].count\n } else if (diff[index].removed) {\n for (let offset = 0; offset < diff[index].count; offset++) {\n offsets.push(currentPosition)\n currentPosition++\n }\n }\n }\n this.highlightWord(fragment, this.props.classes.deletion, offsets)\n }\n\n this.code.current.innerHTML = fragment.innerHTML\n }\n }\n\n highlightWord (fragment, className, offsets) {\n let rangeDom = null\n let rangeStart = null\n let rangeEnd = null\n\n for (let index = 0; index < offsets.length; index++) {\n const findRangeOffset = this.findOffset(fragment, offsets[index])\n\n if (!rangeDom) {\n rangeDom = findRangeOffset[0]\n rangeStart = findRangeOffset[1]\n rangeEnd = findRangeOffset[1] - 1\n }\n\n if (rangeDom !== findRangeOffset[0]) {\n this.highlight(rangeDom, className, rangeStart, rangeEnd)\n rangeDom = null\n index--\n continue\n } else {\n if (findRangeOffset[1] !== rangeEnd + 1) {\n this.highlight(rangeDom, className, rangeStart, rangeEnd)\n rangeDom = null\n index--\n continue\n }\n }\n\n rangeEnd = findRangeOffset[1]\n }\n\n if (rangeDom) {\n this.highlight(rangeDom, className, rangeStart, rangeEnd)\n }\n\n return true\n }\n\n highlight (targetDom, className, start, end) {\n const range = document.createRange()\n const mark = document.createElement('span')\n mark.className = className\n range.setStart(targetDom, start)\n range.setEnd(targetDom, end + 1)\n range.surroundContents(mark)\n }\n\n findOffset (parentNode, relativeOffset) {\n let currentOffset = 0\n for (let index = 0; index < parentNode.childNodes.length; index++) {\n const node = parentNode.childNodes.item(index)\n if (node.nodeName === '#text') {\n const contentLength = node.length\n if (relativeOffset - currentOffset >= contentLength) {\n currentOffset += contentLength\n continue\n } else {\n return [node, relativeOffset - currentOffset]\n }\n } else {\n const contentLength = node.innerText.length\n if (relativeOffset - currentOffset >= contentLength) {\n currentOffset += contentLength\n continue\n } else {\n return this.findOffset(node, relativeOffset - currentOffset)\n }\n }\n }\n }\n\n render () {\n return
\n      \n        {this.props.code}\n      \n    
\n }\n}\n\nCodeLine.propTypes = {\n classes: PropTypes.object.isRequired,\n code: PropTypes.string.isRequired,\n original: PropTypes.string,\n modified: PropTypes.string,\n htmlCode: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CodeLine)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'react-router-dom'\n\nclass SmartLink extends React.Component {\n render () {\n const { to, children } = this.props\n return {children}\n }\n}\n\nSmartLink.propTypes = {\n to: PropTypes.string,\n children: PropTypes.node.isRequired\n}\n\nexport default SmartLink\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\n// component\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { plCopy } from '@pgyer/icons'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// style\nconst styles = theme => ({\n disabledBtn: {\n '&:disabled': {\n color: theme.palette.text.main,\n border: '1px solid ' + theme.palette.border\n }\n },\n icon: {\n color: theme.palette.primary.main,\n border: '1px solid ' + theme.palette.border,\n borderLeft: '0px',\n borderRadius: '0px 4px 4px 0px'\n }\n})\n\nclass CommitHashChip extends Component {\n constructor (props) {\n super(props)\n this.state = {\n copyHash: 'label.copyHash'\n }\n }\n\n copyHash () {\n const dom = window.document.createElement('input')\n dom.setAttribute('value', this.props.hash)\n dom.setAttribute('type', 'text')\n window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('Copy')\n window.document.body.removeChild(dom)\n this.setState({ copyHash: 'label.copied' })\n }\n\n render () {\n const { hash, classes } = this.props\n const { copyHash } = this.state\n return (\n \n \n this.copyHash(e)}\n onMouseLeave={() => {\n window.setTimeout(() => this.setState({ copyHash: 'label.copyHash' }), 150)\n }}\n />\n \n )\n }\n}\n\nCommitHashChip.propTypes = {\n hash: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nexport default injectIntl(\n withStyles(styles)(\n CommitHashChip\n )\n)\n","// core component\nimport React, { Component } from 'react'\nimport { withRouter } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport Avatar from '@material-ui/core/Avatar'\nimport SmartLink from 'APPSRC/components/unit/SmartLink'\nimport CommitHashChip from 'APPSRC/components/unit/CommitHashChip'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport Constants from 'APPSRC/config/Constants'\nimport { injectIntl } from 'react-intl'\n\n// helpers\n\nimport { getUserInfo } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = theme => ({\n listItem: {\n borderTop: '1px solid ' + theme.palette.border,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n },\n avatar: {\n width: theme.spacing(3),\n height: theme.spacing(3)\n },\n secondaryWrap: {\n padding: theme.spacing(1),\n paddingLeft: 0,\n paddingBottom: 0\n }\n})\n\nclass CommitItem extends Component {\n render () {\n const {\n intl,\n classes,\n data,\n linkPathBase,\n currentRepositoryConfig,\n showBorder,\n blameMode,\n path\n } = this.props\n const commitInfo = data || {}\n let commitFullInfo = {}\n if (currentRepositoryConfig) {\n const commiterInfo = getUserInfo(currentRepositoryConfig.members, commitInfo.email)\n if (commiterInfo) {\n commitFullInfo = commiterInfo\n commitFullInfo.hash = commitInfo.sha\n commitFullInfo.commitContent = commitInfo.commit\n commitFullInfo.commitTime = commitInfo.time\n }\n }\n\n return \n \n \n \n {commitFullInfo.commitContent ? commitFullInfo.commitContent : ''}\n \n {blameMode && \n {commitFullInfo.hash.substr(0, 8)}\n }\n \n \n }\n secondary={\n \n \n \n \n \n \n \n {commitFullInfo.name ? commitFullInfo.name : ''}\n { commitFullInfo.temporary && \n  \n \n }\n \n \n \n \n {intl.formatMessage({ id: 'label.editIn' })}:\n \n \n \n \n \n }\n />\n {!blameMode && }\n \n }\n}\n\nCommitItem.propTypes = {\n data: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n linkPathBase: PropTypes.string.isRequired,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n showBorder: PropTypes.bool,\n blameMode: PropTypes.bool,\n path: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CommitItem)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\n// import hljs from 'highlight.js'\nimport Prism from 'prismjs'\nimport 'highlight.js/styles/atom-one-light.css'\nimport { getCodeLanguageType, makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport CodeLine from 'APPSRC/components/unit/CodeLine'\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\n// style\nconst styles = theme => ({\n table: {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse',\n '& tr:first-child': {\n border: 'none'\n }\n },\n topBorder: {\n borderTop: '1px solid ' + theme.palette.border\n },\n blame: {\n width: theme.spacing(40),\n verticalAlign: 'middle'\n },\n blameLoading: {\n width: theme.spacing(40),\n verticalAlign: 'top',\n textAlign: 'center',\n paddingTop: theme.spacing(10)\n },\n lineNumber: {\n lineHeight: theme.spacing(2) + 'px',\n width: theme.spacing(4),\n padding: '0 ' + theme.spacing(1) + 'px',\n textAlign: 'right',\n verticalAlign: 'middle',\n userSelect: 'none',\n color: theme.palette.text.lighter,\n backgroundColor: theme.palette.background.main\n },\n code: {\n verticalAlign: 'middle',\n overflowWrap: 'break-word'\n }\n})\n\nclass CodeViewer extends React.Component {\n constructor (props) {\n super(props)\n const lineNumber = window.location.href.match(/^.*#(\\d+)$/)\n this.state = {\n lineNumber: lineNumber ? parseInt(lineNumber[1]) : -1\n }\n this.ref = React.createRef()\n }\n\n componentDidMount () {\n if (this.ref.current) {\n let parent = this.ref.current\n let scroll = 0\n while (parent) {\n scroll += parent.offsetTop\n parent = parent.offsetParent\n }\n\n document.querySelector('.app-content').scrollTop = scroll - 64 - 21 * 5\n }\n return true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n return true\n }\n\n componentDidUpdate (prevProps, prevState) {\n return true\n }\n\n render () {\n const { object, blame, currentRepositoryConfig, match, classes, fragment } = this.props\n const { lineNumber } = this.state\n const lang = getCodeLanguageType(object.path)\n const codes = fragment ? object.object : object.object.raw.split('\\n')\n // let parsed = hljs.highlight(lang, object.object.raw, true)\n // let parsedHtml = parsed.value.split('\\n')\n const parsed = Prism.highlight(codes.join('\\n'), Prism.languages[lang] || Prism.languages.markdown, lang)\n const parsedHtml = parsed.split('\\n')\n let codeLines = []\n\n if (blame && blame.length) {\n let count = 0\n codeLines = codes.map((item, key) => {\n let blameCell = null\n const blameData = blame.filter(blameItem => blameItem.start === (key + 1))\n if (blameData && blameData[0]) {\n count = blameData[0].length\n blameCell = \n \n \n }\n\n return \n {(key === (codes.length - 1) && codes[key].length === 0) || count-- < 1 ? : blameCell}\n {key + 1}\n \n \n })\n } else if (match.params.type === 'blame') {\n codeLines = codes.map((item, key) => {\n return \n { key === 0 && }\n {key + 1}\n \n \n })\n } else {\n codeLines = codes.map((item, key) => {\n let style = {}\n if (fragment && fragment[key]) {\n style = {\n color: '#fff',\n background: fragment[key]\n }\n }\n\n return \n {key + 1}\n \n \n })\n }\n\n return (\n { codeLines }\n
)\n }\n}\n\nCodeViewer.propTypes = {\n classes: PropTypes.object.isRequired,\n object: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n blame: PropTypes.array,\n fragment: PropTypes.array\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CodeViewer)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Menu from '@material-ui/core/Menu'\nimport Button from '@material-ui/core/Button'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plFile, plCodeFile, plCopy } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\n\nimport ReactMarkdown from 'react-markdown'\nimport remarkGfm from 'remark-gfm'\nimport CodeViewer from 'APPSRC/components/unit/CodeViewer'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport { makeLink, formatNumber } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n icon: {\n color: theme.palette.text.lighter\n },\n icon2: {\n color: theme.palette.primary.main\n },\n fileInfo: {\n lineHeight: theme.spacing(5) + 'px',\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n background: theme.palette.background.main,\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px 0 0',\n '& > div': {\n display: 'flex',\n alignItems: 'center'\n }\n },\n blame: {\n justifyContent: 'flex-end',\n '& button': {\n background: theme.palette.background.light,\n borderColor: theme.palette.border\n }\n },\n editorBg: {\n background: theme.palette.background.light\n },\n detail: {\n overflowX: 'hidden',\n border: '1px solid ' + theme.palette.border,\n borderRadius: '0 0 ' + theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px',\n borderTop: '0px'\n },\n mediaFile: {\n display: 'block',\n margin: 'auto',\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(5),\n maxWidth: '80%'\n },\n oldImage: {\n display: 'block',\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(3),\n border: '1px solid ' + theme.palette.error.main,\n padding: theme.spacing(2),\n marginLeft: 'auto',\n marginRight: 'auto',\n maxWidth: '80%'\n },\n newImage: {\n display: 'block',\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(3),\n border: '1px solid ' + theme.palette.success.dark,\n marginLeft: 'auto',\n padding: theme.spacing(2),\n marginRight: 'auto',\n maxWidth: '80%'\n },\n height0: {\n height: '0px',\n paddingTop: '0px !important',\n paddingBottom: '0px !important',\n overflow: 'hidden'\n },\n unknown: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: theme.spacing(32)\n },\n markdown: {\n boxSizing: 'border-box',\n minWidth: '200px',\n maxWidth: '980px',\n margin: '0 auto',\n padding: '45px'\n }\n})\n\nclass ObjectViewer extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n mdSourceShow: false,\n copyAnchor: null\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n return true\n }\n\n copySomething (data) {\n this.setState({ copyAnchor: null })\n window.setTimeout(() => {\n const dom = window.document.createElement('textarea')\n dom.innerHTML = data\n window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('copy')\n window.document.body.removeChild(dom)\n }, 0)\n }\n\n getDisplayMode (object) {\n if (object.object.oversize) {\n return Constants.obejctDisplayType.oversize\n } else if (object.object.size <= 0) {\n return Constants.obejctDisplayType.empty\n } else if (object.object.mime && (object.object.mime.match(/^text/) || object.object.mime === 'application/xml')) {\n if (object.path && object.path.match(/.*\\.md$/i)) {\n return Constants.obejctDisplayType.markdown\n }\n return Constants.obejctDisplayType.text\n } else if (object.object.mime && object.object.mime.match(/^image/)) {\n return Constants.obejctDisplayType.image\n } else if (object.object.mime === 'video/mp4') {\n return Constants.obejctDisplayType.video\n }\n return Constants.obejctDisplayType.unknown\n }\n\n getObjectIcon (mime) {\n return plFile\n }\n\n render () {\n const { currentRepositoryConfig, object, blame, classes, match, history, intl } = this.props\n const { mdSourceShow } = this.state\n\n const displayMode = this.getDisplayMode(object)\n return (\n \n \n   \n {object.path} \n  |  {formatNumber(object.object.size, 'Bytes')}  \n this.setState({ copyAnchor: e.target })} className={classes.icon2} />\n this.setState({ copyAnchor: null })}\n >\n this.copySomething(object.path)}>{intl.formatMessage({ id: 'label.copyPath' })}\n { (displayMode === Constants.obejctDisplayType.text || displayMode === Constants.obejctDisplayType.markdown) &&\n this.copySomething(object.object.raw)}>{intl.formatMessage({ id: 'label.copyCode' })}\n }\n \n { displayMode === Constants.obejctDisplayType.markdown && \n { mdSourceShow\n ? this.setState({ mdSourceShow: false })} />\n : this.setState({ mdSourceShow: true })} />\n }\n \n }\n \n { match.params.path && \n \n history.push(makeLink(\n currentRepositoryConfig.group.name,\n currentRepositoryConfig.repository.name,\n 'commits',\n encodeURIComponent(match.params.rev) + match.params.path\n ))}\n >{intl.formatMessage({ id: 'label.history' })}\n {(displayMode === Constants.obejctDisplayType.text || displayMode === Constants.obejctDisplayType.markdown) && history.push(makeLink(\n currentRepositoryConfig.group.name,\n currentRepositoryConfig.repository.name,\n match.params.type === 'blame' ? 'files' : 'blame',\n encodeURIComponent(match.params.rev) + match.params.path\n ))}\n >{match.params.type === 'blame' ? 'Normal' : 'Blame'}\n }\n \n \n }\n \n \n { displayMode === Constants.obejctDisplayType.text && }\n { displayMode === Constants.obejctDisplayType.markdown && \n \n \n \n \n \n \n \n \n }\n { displayMode === Constants.obejctDisplayType.image && }\n { displayMode === Constants.obejctDisplayType.video &&
\n \n
\n }\n { displayMode === Constants.obejctDisplayType.unknown && {intl.formatMessage({ id: 'message.fileTypeNotSupport' })}}\n { displayMode === Constants.obejctDisplayType.empty && {intl.formatMessage({ id: 'message.fileContentEmpty' })}}\n { displayMode === Constants.obejctDisplayType.oversize && {intl.formatMessage({ id: 'message.fileContentOversize' })}}\n
\n
\n )\n }\n}\n\nObjectViewer.propTypes = {\n currentRepositoryConfig: PropTypes.object.isRequired,\n object: PropTypes.object.isRequired,\n blame: PropTypes.array,\n classes: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(ObjectViewer)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { plCopy } from '@pgyer/icons'\n\n// helpers\nimport { copyToClipboard } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n setup: {\n padding: theme.spacing(3) + 'px',\n borderRadius: '4px 4px 0px 0px',\n border: '1px solid ' + theme.palette.border\n },\n noBorder: {\n borderTop: 0,\n borderRadius: '0px 0px 4px 4px'\n },\n code: {\n position: 'relative',\n marginTop: theme.spacing(1),\n padding: theme.spacing(1.5) + 'px',\n borderRadius: theme.spacing(0.5) + 'px',\n background: theme.palette.background.main\n },\n icon: {\n top: theme.spacing(1.5) + 'px',\n right: theme.spacing(1.5) + 'px',\n position: 'absolute'\n }\n})\n\nclass RepositoryEmpty extends React.Component {\n render () {\n const { currentRepositoryConfig, currentUserInfo, classes, intl } = this.props\n\n if (!currentRepositoryConfig.repository) {\n return null\n }\n\n const remoteCode = 'git remote add origin ' + currentUserInfo.host + '/' + currentRepositoryConfig.group.name + '/' + currentRepositoryConfig.repository.name + '.git'\n const createCode = [\n 'echo \"# ' + currentRepositoryConfig.repository.name + '\" >> README.md',\n 'git init',\n 'git add README.md',\n 'git commit -m \"first commit\"',\n 'git branch -M main',\n remoteCode,\n 'git push -u origin main'\n ]\n const pushCode = [\n remoteCode,\n 'git branch -M main',\n 'git push -u origin main'\n ]\n\n return \n \n {intl.formatMessage({ id: 'message.createNewRepository' })}\n \n copyToClipboard(createCode.join('\\n'))} icon={plCopy} />\n {createCode.map((item, index) => {item})}\n \n \n \n {intl.formatMessage({ id: 'message.pushRepository' })}\n \n copyToClipboard(pushCode.join('\\n'))} icon={plCopy} />\n {pushCode.map((item, index) => {item})}\n \n \n \n }\n}\n\nRepositoryEmpty.propTypes = {\n currentRepositoryConfig: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(RepositoryEmpty)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter, Link } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Tooltip from '@material-ui/core/Tooltip'\n\nimport RepositoryDashboard from 'APPSRC/components/unit/RepositoryDashboard'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport RevisionSelector from 'APPSRC/components/unit/RevisionSelector'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport ObjectViewer from 'APPSRC/components/unit/ObjectViewer'\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plFile, psFolder, plSearch, psRepository } from '@pgyer/icons'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport RepositoryEmpty from 'APPSRC/components/unit/RepositoryEmpty'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink, getDefaultBranch } from 'APPSRC/helpers/VaribleHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n linkObjectName: {\n color: theme.palette.text.main + ' !important'\n },\n linkCommitMessage: {\n color: theme.palette.text.light + ' !important'\n },\n commit: {\n '& > li': {\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px'\n }\n }\n})\n\nclass FileTree extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n pathStack: [],\n search: '',\n objectData: {},\n blameData: null,\n readmeFile: {}\n }\n }\n\n componentDidMount () {\n this.getPathStack(this.props, this.state)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // watch router change\n if (JSON.stringify(this.props.match.params) !== JSON.stringify(nextProps.match.params)) {\n if (this.props.match.params.type !== nextProps.match.params.type &&\n this.props.match.params.rev === nextProps.match.params.rev &&\n this.props.match.params.path === nextProps.match.params.path) {\n this.getObject(nextProps, nextState)\n return false\n }\n this.getPathStack(nextProps, nextState)\n return false\n }\n\n // watch repository config\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getPathStack(nextProps, nextState)\n return false\n }\n\n if (JSON.stringify(this.state.pathStack) !== JSON.stringify(nextState.pathStack)) {\n this.getObject(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n getPathStack (props, state) {\n if (!props.currentRepositoryKey || !props.currentRepositoryConfig.repository) {\n return true\n }\n\n if ((!props.match.params.path || props.match.params.path === '/') && state.pathStack.length === 0) {\n this.getObject(props, state)\n return true\n }\n\n this.setState({ objectData: {}, pending: true })\n RepositoryData.pathStack({\n repository: props.currentRepositoryKey,\n revision: (props.match.params.rev && decodeURIComponent(props.match.params.rev)) || getDefaultBranch(props.currentRepositoryConfig),\n path: props.match.params.path || '/'\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n pending: false,\n pathStack: data.data\n })\n }\n })\n return true\n }\n\n getObject (props, state) {\n if (!props.currentRepositoryConfig.branches || !props.currentRepositoryConfig.branches.length) {\n this.setState({ blameData: null, objectData: {}, pending: false })\n return true\n }\n\n if (state.pathStack.length > 0 &&\n state.pathStack[state.pathStack.length - 1].type === 'blob' &&\n props.match.params.type === 'blame'\n ) {\n this.getBlame(props, state)\n }\n\n const calculatedPath = state.pathStack.reduce((path, item) => (path ? path + '/' : '') + item.name, '')\n this.setState({ blameData: null, objectData: {}, pending: true })\n RepositoryData.object({\n repository: props.currentRepositoryKey,\n parent: (state.pathStack.length && state.pathStack[state.pathStack.length - 1].object) ||\n (props.match.params.rev && decodeURIComponent(props.match.params.rev)) ||\n getDefaultBranch(props.currentRepositoryConfig),\n revision: (props.match.params.rev && decodeURIComponent(props.match.params.rev)) || getDefaultBranch(props.currentRepositoryConfig),\n path: calculatedPath || '/'\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n pending: false,\n search: '',\n objectData: data.data\n })\n this.getReadmeFile(data.data)\n } else {\n this.setState({ pending: false })\n }\n })\n }\n\n getBlame (props, state) {\n this.setState({ blameData: null })\n const calculatedPath = state.pathStack.reduce((path, item) => (path ? path + '/' : '') + item.name, '')\n RepositoryData.getBlameInfo({\n repository: props.currentRepositoryKey,\n revision: (props.match.params.rev && decodeURIComponent(props.match.params.rev)) || getDefaultBranch(props.currentRepositoryConfig),\n path: calculatedPath || '/'\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n search: '',\n blameData: data.data.blame\n })\n }\n })\n }\n\n getReadmeFile (object) {\n if (object.type !== 'blob') {\n const readmeObject = object.object.filter((item) => item.name.toLowerCase() === 'readme.md')\n\n if (readmeObject[0]) {\n RepositoryData.object({\n repository: this.props.currentRepositoryKey,\n parent: readmeObject[0].object,\n revision: (this.props.match.params.rev && decodeURIComponent(this.props.match.params.rev)) || getDefaultBranch(this.props.currentRepositoryConfig),\n path: object.path + '/' + readmeObject[0].name\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ readmeFile: data.data })\n }\n })\n }\n }\n this.setState({ readmeFile: {} })\n }\n\n makeFileListData (data) {\n const currentPath = this.state.pathStack.reduce((path, item) => (path ? path + '/' : '') + item.name, '')\n const final = data\n .sort((item0, item1) => {\n if (item0.type === item1.type) {\n return 0\n } else if (item0.type === 'blob') {\n return 1\n } else {\n return -1\n }\n })\n .map((item) => {\n return [\n \n { item.type === 'blob' && \n   \n {item.name}\n }\n { item.type === 'tree' && \n   \n {item.name}\n }\n { item.type === 'commit' && \n   \n {item.name} \n \n @{item.object.slice(0, 8)}\n \n }\n ,\n item.commit && item.commit.sha && {item.commit.commit},\n \n ]\n })\n\n return [\n ['30%', 'auto', 'auto'],\n ['label.name', 'label.lastCommit', 'label.lastUpdate'],\n ...final\n ]\n }\n\n composePathBreadCrumb () {\n const basePathStack = [\n this.props.currentRepositoryConfig.group.name,\n this.props.currentRepositoryConfig.repository.name,\n 'files',\n encodeURIComponent(this.props.match.params.rev || getDefaultBranch(this.props.currentRepositoryConfig))\n ]\n\n const components = [\n \n {this.props.currentRepositoryConfig.repository.name}\n \n ]\n for (let index = 0; index < this.state.pathStack.length; index++) {\n basePathStack.push(this.state.pathStack[index].name)\n components.push(\n   /  \n \n {this.state.pathStack[index].name}\n \n )\n }\n\n return components\n }\n\n render () {\n const { currentRepositoryError, currentRepositoryConfig, history, match, intl, classes } = this.props\n if (currentRepositoryError) {\n return \n \n \n \n \n }\n\n return \n \n \n \n\n {getDefaultBranch(currentRepositoryConfig) && \n \n \n \n \n history.push(makeLink(\n currentRepositoryConfig.group.name,\n currentRepositoryConfig.repository.name,\n 'files',\n encodeURIComponent(revision)\n ))}\n />\n \n { this.composePathBreadCrumb() }\n \n \n \n this.setState({ search: e.target.value })}\n InputProps={{\n startAdornment: \n }}\n />\n \n \n }\n\n {!this.state.pending && getDefaultBranch(currentRepositoryConfig) && this.state.objectData.commit && \n \n }\n\n {!this.state.pending && getDefaultBranch(currentRepositoryConfig) && this.state.objectData.commit && \n { this.state.objectData.type === 'blob'\n ? \n : \n }\n }\n\n {!this.state.pending && getDefaultBranch(currentRepositoryConfig) && this.state.objectData.type !== 'blob' && this.state.readmeFile.object && \n \n }\n\n {this.state.pending && \n \n }\n\n {!this.state.pending && (!this.state.objectData.object || this.state.objectData.object.length === 0) && }\n \n }\n}\n\nFileTree.propTypes = {\n currentRepositoryError: PropTypes.bool.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryError: state.DataStore.currentRepositoryError,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FileTree)\n )\n )\n)\n","// core\nimport React from 'react'\nimport { withRouter } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport PropTypes from 'prop-types'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport Grid from '@material-ui/core/Grid'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport RevisionSelector from 'APPSRC/components/unit/RevisionSelector'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport DateFnsUtils from '@date-io/date-fns'\nimport Button from '@material-ui/core/Button'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport { plSearch } from '@pgyer/icons'\n\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink, getDefaultBranch } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n path: {\n lineHeight: theme.spacing(4) + 'px'\n }\n})\n\nclass CommitList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n commitList: [],\n page: 1,\n pending: false,\n listFinshed: false,\n searchInput: '',\n search: ''\n }\n\n this.pageSize = 20\n this.mountedFlag = false\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.setState({ page: 1, listFinshed: false, commitList: [], searchInput: '', search: '' })\n this.getData(this.props, this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // change any change that is nned to reload commit to a page number change\n if (\n this.props.currentRepositoryKey !== nextProps.currentRepositoryKey ||\n this.props.match.params.rev !== nextProps.match.params.rev ||\n JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)\n ) {\n this.setState({ page: 1, listFinshed: false, commitList: [], searchInput: '', search: '' })\n if (nextState.page === 1 && nextState.search === '') {\n this.getData(nextProps, nextState)\n }\n return false\n }\n\n if (this.state.search !== nextState.search) {\n this.setState({ page: 1, listFinshed: false, commitList: [] })\n if (nextState.page === 1) {\n this.getData(nextProps, nextState)\n }\n return false\n }\n\n if (this.state.page !== nextState.page) {\n this.getData(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n getData (props, state) {\n if (!props.currentRepositoryConfig.repository || state.pending || !this.mountedFlag) {\n return false\n }\n\n if (!props.currentRepositoryConfig.branches || !props.currentRepositoryConfig.branches.length) {\n return false\n }\n\n const { intl } = props\n this.setState({ pending: true })\n RepositoryData.commitList({\n repository: props.currentRepositoryKey,\n revision: (props.match.params.rev && decodeURIComponent(props.match.params.rev)) || getDefaultBranch(props.currentRepositoryConfig),\n path: props.match.params.path ? decodeURIComponent(props.match.params.path) : '',\n page: state.page,\n pagesize: this.pageSize,\n keyword: state.search\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const result = data.data\n const list = []\n let index = 0\n let currentDate = ''\n list[index] = { date: '', list: [] }\n if (result.length) {\n result.map((item, key) => {\n if (!currentDate) {\n currentDate = new DateFnsUtils().format((Number(item.time) * 1000), 'yyyy-MM-dd')\n list[index].date = currentDate\n list[index].list.push(item)\n } else {\n if (new DateFnsUtils().format((Number(item.time) * 1000), 'yyyy-MM-dd') === currentDate) {\n list[index].date = currentDate\n list[index].list.push(item)\n } else {\n index = index + 1\n list[index] = { date: '', list: [] }\n currentDate = new DateFnsUtils().format((Number(item.time) * 1000), 'yyyy-MM-dd')\n list[index].date = currentDate\n list[index].list.push(item)\n }\n }\n return true\n })\n const listFinshed = result.length < this.pageSize\n\n list.map((tempItem, key) => {\n if (state.commitList.length > 0) {\n let dateExist = false\n state.commitList.map((originItem, key) => {\n if (originItem.date === tempItem.date) {\n dateExist = true\n originItem.list = [...originItem.list, ...tempItem.list]\n return originItem\n }\n if (!dateExist && key === state.commitList.length - 1) {\n state.commitList.push(tempItem)\n }\n return true\n })\n }\n return true\n })\n if (!state.commitList.length || state.page === 1) {\n this.setState({\n pending: false,\n commitList: [...list],\n listFinshed\n })\n } else {\n this.setState({\n pending: false,\n commitList: [...this.state.commitList],\n listFinshed\n })\n }\n } else {\n this.setState({\n pending: false,\n listFinshed: true,\n commitList: []\n })\n }\n } else {\n props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.showCommitListFailed' }),\n 2)\n )\n }\n })\n }\n\n pageReload (reload, refType, ref) {\n if (!refType || !ref) {\n refType = this.state.refType\n ref = this.state.ref\n }\n\n const { currentRepositoryConfig, history } = this.props\n const link = makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'commits', refType, encodeURIComponent(ref)\n )\n\n return reload ? history.push(link) : link\n }\n\n filterCommits (keyword) {\n if (keyword) {\n this.observed.keyword = keyword\n this.setState({ page: 1 })\n this.getData(this.props, this.state)\n } else {\n this.observed.keyword = ''\n this.setState({ page: 1 })\n }\n }\n\n render () {\n const {\n commitList\n } = this.state\n const {\n currentRepositoryConfig,\n match,\n history,\n classes,\n intl\n } = this.props\n return \n {currentRepositoryConfig.branches && currentRepositoryConfig.branches.length !== 0 && \n \n \n history.push(makeLink(\n currentRepositoryConfig.group.name,\n currentRepositoryConfig.repository.name,\n 'commits',\n encodeURIComponent(revision)\n ))}\n />  \n {!match.params.path ? '' : match.params.path.substr(1)}\n \n \n this.setState({ searchInput: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.setState({ search: e.target.value })\n }\n }}\n InputProps={{\n startAdornment: \n }}\n />\n \n \n }\n\n {this.state.commitList.length > 0 && \n \n {commitList.map((item, key) => {\n const title = item.date + ' [' + intl.formatMessage({ id: 'label._N_commit' }, { n: item.list.length }) + ']'\n return (\n \n {item.list.map((listItem, key) => {\n return (\n \n )\n })}\n \n \n )\n })\n }\n \n }\n\n {!this.state.pending && this.state.commitList.length > 0 && \n \n { this.state.pending\n ? \n : this.state.listFinshed\n ? commitList.length > 0\n ? \n : ''\n : \n }\n \n }\n\n {this.state.commitList.length === 0 && \n \n }\n\n \n }\n}\n\nCommitList.propTypes = {\n match: PropTypes.object.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withRouter(\n withTheme(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n CommitList\n )\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plSearch, plSortDesc } from '@pgyer/icons'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\n\n// helpers\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n input: {\n width: theme.spacing(30),\n maxWidth: '100%'\n },\n button: {\n marginLeft: theme.spacing(4)\n },\n icon: {\n color: theme.palette.text.light\n },\n transform: {\n transform: 'rotateX(180deg)'\n }\n})\n\nclass RefFilter extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n keyword: props.match.params.tag ? props.match.params.tag : (props.match.params.branch ? props.match.params.branch : '')\n }\n }\n\n render () {\n const { refType, pending, searchRef, sortDesc, sortSwitch, children, tabValue, tabChange, currentRepositoryConfig, history, classes, intl } = this.props\n\n return (\n tabChange(value)}\n tabs={refType === 'branch' ? [intl.formatMessage({ id: 'label.all' }), intl.formatMessage({ id: 'label.active' }), intl.formatMessage({ id: 'label.inactive' })] : []}\n >\n searchRef(e.target.value)}\n InputProps={{\n startAdornment: \n }}\n /> \n \n {currentRepositoryConfig.branches && currentRepositoryConfig.branches.length > 0 && }\n \n \n \n {children}\n \n \n \n )\n }\n}\n\nRefFilter.propTypes = {\n refType: PropTypes.string.isRequired,\n pending: PropTypes.bool.isRequired,\n searchRef: PropTypes.func.isRequired,\n sortDesc: PropTypes.bool.isRequired,\n sortSwitch: PropTypes.func.isRequired,\n tabValue: PropTypes.number,\n tabChange: PropTypes.func,\n children: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RefFilter)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport Typography from '@material-ui/core/Typography'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plTag, plBranch, psConfirm, plTrash, plCommit, psMore, plSafe } from '@pgyer/icons'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport SmartLink from 'APPSRC/components/unit/SmartLink'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\n\n// helpers\nimport { makeLink, getUserInfo, getDefaultBranch } from 'APPSRC/helpers/VaribleHelper'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\n\n// style\nconst styles = theme => ({\n refListItem: {\n marginTop: theme.spacing(3)\n },\n oneline: {\n display: 'flex',\n height: theme.spacing(3),\n alignItems: 'center'\n },\n refItem: {\n padding: theme.spacing(1.5) + 'px ' + theme.spacing(3) + 'px',\n borderTop: '1px solid ' + theme.palette.border\n },\n refName: {\n '& a': {\n color: theme.palette.text.main + ' !important',\n fontWeight: 600\n }\n },\n refLog: {\n display: 'flex',\n alignItems: 'center',\n maxWidth: '35%',\n '& a': {\n display: 'inline-block',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n color: theme.palette.text.main + ' !important'\n }\n },\n refUpdate: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n refSha: {\n '& a': {\n color: theme.palette.secondary.main + ' !important'\n }\n },\n delete: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center'\n },\n more: {\n paddingTop: theme.spacing(2)\n },\n icon: {\n color: theme.palette.text.light\n },\n icon2: {\n color: theme.palette.success.main,\n marginRight: theme.spacing(2.5)\n }\n})\n\nclass RefList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n page: 1,\n perpage: 10,\n anchor: []\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.repage !== nextProps.repage) {\n this.setState({ page: 1 })\n }\n return true\n }\n\n refListsDeal (refLists) {\n const { currentRepositoryConfig, history } = this.props\n\n refLists.map((refList) => {\n refList.map((item, index) => {\n const filesLink = makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'files', encodeURIComponent(item.name), ''\n )\n item.nameA = history.push(filesLink)}>{item.name}\n if (item.commit.sha) {\n const commitsLink = makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'commit', item.commit.sha.substring(0, 8)\n )\n item.shaA = history.push(commitsLink)}>{item.commit.sha.substring(0, 8)}\n item.logA = history.push(commitsLink)}>{item.commit.commit}\n }\n if (item.commit.email) {\n item.updater = getUserInfo(currentRepositoryConfig.members, item.commit.email)\n }\n return true\n })\n return true\n })\n }\n\n openRefItemMenu (index, e) {\n const anchor = this.state.anchor\n anchor[index] = e.target\n this.setState({ anchor: anchor })\n }\n\n closeRefItemMenu (index) {\n const anchor = this.state.anchor\n anchor[index] = null\n this.setState({ anchor: anchor })\n }\n\n refListItem (refTitle, refList, index) {\n const { currentRepositoryConfig, refType, deleteRef, tabValue, classes, intl } = this.props\n const { page, perpage } = this.state\n const defaultBranch = getDefaultBranch(currentRepositoryConfig)\n if (tabValue === 0 && !refList.length) {\n return false\n }\n\n return (\n { refList.length > 0 && \n \n { refList.slice(0, page * perpage).map((item, index) => (\n \n \n    \n {item.nameA}  \n {item.detail}  \n { refType === 'branch' && item.protected && }\n { refType === 'branch' && item.name === defaultBranch &&     }\n { refType === 'branch' && item.name !== defaultBranch && !!item.isMerge && }\n \n \n  · \n {item.shaA} · \n {item.logA} · \n \n {item.updater.name} \n {intl.formatMessage({ id: 'label.updatedIn' })} \n \n \n \n \n \n { refType === 'branch' && item.name !== defaultBranch && \n this.openRefItemMenu(refTitle + index, e)} icon={psMore} />\n this.closeRefItemMenu(refTitle + index)}\n >\n {\n this.closeRefItemMenu(refTitle + index)\n deleteRef(item.name)\n }}>\n   {intl.formatMessage({ id: 'label.delete' })}\n \n \n \n }\n {refType === 'tag' && deleteRef(item.name)} icon={plTrash} />}\n \n ))\n }\n \n \n }\n { tabValue !== 0 && \n \n \n { page * perpage >= refList.length\n ? \n : \n }\n \n \n \n }\n \n )\n }\n\n render () {\n const { refType, count, refTitles, refLists, pending, currentRepositoryConfig, classes, history, intl } = this.props\n this.refListsDeal(refLists)\n\n let listCount = 0\n refLists && refLists.map((item, index) => {\n listCount += item.length\n return true\n })\n\n return (\n { count\n ? listCount\n ? refLists.map((item, index) => this.refListItem(refTitles[index], item, index))\n : \n \n \n \n \n \n \n : \n \n {refType === 'tag'\n ? currentRepositoryConfig.branches && currentRepositoryConfig.branches.length > 0 && \n : \n }\n \n \n }\n \n )\n }\n}\n\nRefList.propTypes = {\n refType: PropTypes.string.isRequired,\n count: PropTypes.number,\n refTitles: PropTypes.array.isRequired,\n refLists: PropTypes.array.isRequired,\n deleteRef: PropTypes.func.isRequired,\n repage: PropTypes.number.isRequired,\n pending: PropTypes.bool.isRequired,\n tabValue: PropTypes.number,\n currentRepositoryConfig: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RefList)\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport RefFilter from 'APPSRC/components/unit/RefFilter'\nimport RefList from 'APPSRC/components/unit/RefList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n }\n})\n\nclass BranchList extends Component {\n constructor (props) {\n super(props)\n this.observed = {\n keyword: this.props.match.params.branch ? this.props.match.params.branch : '',\n tabValue: 0,\n data: null\n }\n\n this.state = {\n refTitles: [],\n branchLists: null,\n pending: true,\n repage: 0,\n sortDesc: true\n }\n }\n\n componentDidMount () {\n this.getData(this.props)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getData(nextProps)\n return false\n }\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getData(nextProps)\n return false\n }\n if (this.state.sortDesc !== nextState.sortDesc) {\n this.dataSort(nextState.sortDesc)\n return false\n }\n return true\n }\n\n getData (props) {\n if (!props.currentRepositoryKey || !props.currentRepositoryConfig.repository) {\n return false\n }\n\n RepositoryData.branchList({\n repository: props.currentRepositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n if (!data.code) {\n this.observed.data = data.data\n this.dataSort(this.state.sortDesc)\n }\n })\n }\n\n dataSort (sortDesc) {\n if (this.observed.data) {\n this.observed.data.sort((item1, item2) => {\n return sortDesc ? (item2.commit.time - item1.commit.time) : (item1.commit.time - item2.commit.time)\n })\n this.dataFilter(this.observed.tabValue)\n }\n }\n\n dataFilter (tabValue) {\n const { data, keyword } = this.observed\n\n this.observed.tabValue = tabValue\n let branchList = null\n if (data === null || !data.length) {\n branchList = []\n } else if (!keyword) {\n branchList = data\n } else {\n branchList = data.filter(FilterGenerator.nameLikes(keyword))\n }\n\n const activeData = []\n const inactiveData = []\n const nowTimestamp = Math.floor((new Date()).getTime() / 1000)\n const threeMonth = 7776000\n branchList.map((item, index) => {\n if ((nowTimestamp - item.commit.time <= threeMonth) && (tabValue === 0 || tabValue === 1)) {\n activeData.push(item)\n } else if ((nowTimestamp - item.commit.time > threeMonth) && (tabValue === 0 || tabValue === 2)) {\n inactiveData.push(item)\n }\n return true\n })\n\n const refTitles = []\n const refLists = []\n if (tabValue === 0) {\n refTitles.push('active', 'inactive')\n refLists.push(activeData, inactiveData)\n } else if (tabValue === 1) {\n refTitles.push('active')\n refLists.push(activeData)\n } else if (tabValue === 2) {\n refTitles.push('inactive')\n refLists.push(inactiveData)\n }\n\n this.setState({\n refTitles: refTitles,\n branchLists: refLists,\n repage: this.state.repage + 1\n })\n }\n\n filterBranch (keyword) {\n this.observed.keyword = keyword\n this.dataFilter(this.observed.tabValue)\n }\n\n deleteBranch (branch) {\n const { currentRepositoryKey, intl } = this.props\n if (!currentRepositoryKey || !branch) {\n return false\n }\n\n RepositoryData.deleteBranch({\n repository: currentRepositoryKey,\n branch: branch\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.observed.data = this.observed.data.filter((item, index) => {\n return item.name !== branch\n })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.deleted' }),\n 0)\n )\n this.dataFilter(this.observed.tabValue)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.deleteFail' }),\n 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n\n deleteConfirm (branch) {\n const { intl } = this.props\n this.props.dispatchEvent(EventGenerator.addComformation('branch_remove', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.branch' }) + ' \\'' + branch + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => {\n this.deleteBranch(branch)\n }\n }))\n }\n\n render () {\n const { refTitles, branchLists, pending, repage, sortDesc } = this.state\n return (\n this.dataFilter(value)}\n searchRef={(keyword) => this.filterBranch(keyword)}\n sortDesc={sortDesc}\n sortSwitch={() => this.setState({ sortDesc: !sortDesc })}>\n { branchLists\n ? this.deleteConfirm(branch)}\n repage={repage}\n pending={pending}\n tabValue={this.observed.tabValue} />\n : \n \n \n }\n \n \n )\n }\n}\n\nBranchList.propTypes = {\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object,\n match: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(BranchList)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport RefFilter from 'APPSRC/components/unit/RefFilter'\nimport RefList from 'APPSRC/components/unit/RefList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n }\n})\n\nclass TagList extends React.Component {\n constructor (props) {\n super(props)\n this.observed = {\n keyword: this.props.match.params.tag ? this.props.match.params.tag : '',\n data: null\n }\n\n this.state = {\n tagList: null,\n pending: true,\n repage: 0,\n sortDesc: true\n }\n }\n\n componentDidMount () {\n this.getData(this.props)\n }\n\n getData (props) {\n if (!props.currentRepositoryKey || !props.currentRepositoryConfig.repository) {\n return false\n }\n\n RepositoryData.tagList({\n repository: props.currentRepositoryKey\n }).then(NetworkHelper.withEventdispatcher(props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n if (!data.code) {\n this.observed.data = data.data\n this.dataSort(this.state.sortDesc)\n }\n })\n }\n\n dataSort (sortDesc) {\n if (this.observed.data) {\n this.observed.data.sort((item1, item2) => {\n return sortDesc ? (item2.commit.time - item1.commit.time) : (item1.commit.time - item2.commit.time)\n })\n this.dataFilter()\n }\n }\n\n dataFilter () {\n const { data, keyword } = this.observed\n\n let tagList = null\n if (data === null || !data.length) {\n tagList = []\n } else if (!keyword) {\n tagList = data\n } else {\n tagList = data.filter(FilterGenerator.nameLikes(keyword))\n }\n\n this.setState({ tagList: [tagList], repage: this.state.repage + 1 })\n }\n\n filterTag (keyword) {\n this.observed.keyword = keyword\n this.dataFilter()\n }\n\n deleteTag (tag) {\n const { currentRepositoryKey, intl } = this.props\n if (!currentRepositoryKey || !tag) {\n return false\n }\n\n RepositoryData.deleteTag({\n repository: currentRepositoryKey,\n tag: tag\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.observed.data = this.observed.data.filter((item, index) => {\n return item.name !== tag\n })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.deleted' }),\n 0)\n )\n this.dataFilter()\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.deleteFail' }),\n 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n\n deleteConfirm (tag) {\n const { intl } = this.props\n this.props.dispatchEvent(EventGenerator.addComformation('tag_remove', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.tag' }) + ' \\'' + tag + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => {\n this.deleteTag(tag)\n }\n }))\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getData(nextProps)\n return false\n }\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getData(nextProps)\n return false\n }\n if (this.state.sortDesc !== nextState.sortDesc) {\n this.dataSort(nextState.sortDesc)\n return false\n }\n return true\n }\n\n render () {\n const { tagList, pending, repage, sortDesc } = this.state\n return (\n this.filterTag(keyword)}\n sortDesc={sortDesc}\n sortSwitch={() => this.setState({ sortDesc: !sortDesc })}>\n { tagList !== null\n ? this.deleteConfirm(tag)}\n repage={repage}\n pending={pending} />\n : \n \n \n }\n \n \n )\n }\n}\n\nTagList.propTypes = {\n currentRepositoryKey: PropTypes.string,\n currentRepositoryConfig: PropTypes.object,\n match: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TagList)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plBranch, plTag } from '@pgyer/icons'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n title: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(3),\n borderBottom: '1px solid ' + theme.palette.border\n },\n icon: {\n color: theme.palette.text.light\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n },\n mr16: {\n marginRight: theme.spacing(2)\n }\n})\n\nclass CreateTag extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: true,\n name: '',\n origin: '',\n description: '',\n error: {\n }\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.tagName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^\\w+(\\.\\w+)*$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.tagName' }) }\n )\n },\n {\n name: 'origin',\n passPattern: /^.{0,40}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 40 }\n )\n },\n {\n name: 'description',\n passPattern: /^[\\S\\n]{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'name',\n exceptionCode: 0x0403,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.tagName' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0406,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.tagName' }) }\n )\n },\n {\n name: 'origin',\n exceptionCode: 0x040C,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.createOrigin' }) }\n )\n }\n ])\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.pending &&\n this.props.currentRepositoryKey &&\n this.props.currentRepositoryConfig.repository !== undefined) {\n this.setState({ pending: false })\n }\n\n if (this.state.pending &&\n this.props.currentRepositoryConfig.repository !== undefined &&\n this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.setState({ pending: false })\n }\n\n if (this.state.pending &&\n this.props.currentRepositoryKey &&\n JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.setState({ pending: false })\n }\n\n return true\n }\n\n createTag () {\n const { currentRepositoryKey, currentRepositoryConfig, history, intl } = this.props\n const { name, origin, description } = this.state\n if (!currentRepositoryKey || !currentRepositoryConfig.repository || !this.checkInput()) {\n return false\n }\n\n if (name === 'new' || name.slice(name.length - 4) === '.git') {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_invalid' }, { s: this.props.intl.formatMessage({ id: 'label.tagName' }) })\n }\n })\n return false\n }\n\n for (const item of currentRepositoryConfig.branches) {\n if (name === item.name) {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_duplicate' }, { s: this.props.intl.formatMessage({ id: 'label.tagName' }) })\n }\n })\n return false\n }\n }\n\n for (const item of currentRepositoryConfig.tags) {\n if (name === item.name) {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_duplicate' }, { s: this.props.intl.formatMessage({ id: 'label.tagName' }) })\n }\n })\n return false\n }\n }\n\n this.setState({ pending: true })\n RepositoryData.createTag({\n repository: currentRepositoryKey,\n name: name,\n origin: origin,\n description: description\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n currentRepositoryConfig.tags.push({ id: name, name: name })\n ++currentRepositoryConfig.count.tag\n history.push(makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'tags'))\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createTagFail' }),\n 2)\n )\n this.setState({ pending: false })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, history, classes, intl } = this.props\n\n return (\n \n { intl.formatMessage({ id: 'label.newTag' }) }\n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.tagName' }) }\n \n \n {\n this.setState({ name: e.target.value, error: {} })\n }}\n />\n \n {/* \n { intl.formatMessage({ id: 'label.createOrigin' }) }\n */}\n \n { intl.formatMessage({ id: 'label.choseCreateOrigin' }) }\n \n {/* \n this.setState({ origin: e.target.value })}\n />\n */}\n \n this.setState({ origin: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.branch' })}\n { currentRepositoryConfig.branches && currentRepositoryConfig.branches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n {intl.formatMessage({ id: 'label.tag' })}\n { currentRepositoryConfig.tags && currentRepositoryConfig.tags.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n \n \n \n { intl.formatMessage({ id: 'label.tagDescription' }) }\n \n \n {\n this.setState({ description: e.target.value })\n }}\n />\n \n \n \n \n 30 ? classes.outRange : ''}\n >\n {this.state.description.length}/30\n \n \n \n \n \n history.push(makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'tags'\n ))}\n >\n {intl.formatMessage({ id: 'label.cancel' })}\n \n this.createTag()}\n >\n { this.state.pending ? : ''}\n {intl.formatMessage({ id: 'label.ok' })}\n \n \n \n \n  \n \n \n \n )\n }\n}\n\nCreateTag.propTypes = {\n currentRepositoryKey: PropTypes.string,\n currentRepositoryConfig: PropTypes.object,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CreateTag)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plBranch, plTag } from '@pgyer/icons'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n title: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(3),\n borderBottom: '1px solid ' + theme.palette.border\n },\n icon: {\n color: theme.palette.text.light\n },\n mr16: {\n marginRight: theme.spacing(2)\n }\n})\n\nclass CreateBranch extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n name: '',\n origin: '',\n error: {\n }\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{1,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^\\w[\\w/-\\\\.]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'origin',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notChoose' },\n { s: this.props.intl.formatMessage({ id: 'label.createOrigin' }) }\n )\n },\n {\n name: 'origin',\n passPattern: /^.{1,40}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 40 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'name',\n exceptionCode: 0x0403,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0406,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'origin',\n exceptionCode: 0x040C,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.createOrigin' }) }\n )\n }\n ])\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.pending &&\n this.props.currentRepositoryKey &&\n this.props.currentRepositoryConfig.repository !== undefined) {\n this.setState({ pending: false })\n }\n\n if (this.state.pending &&\n this.props.currentRepositoryConfig.repository !== undefined &&\n this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.setState({ pending: false })\n }\n\n if (this.state.pending &&\n this.props.currentRepositoryKey &&\n JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.setState({ pending: false })\n }\n\n return true\n }\n\n createBranch () {\n const { currentRepositoryKey, currentRepositoryConfig, history, intl } = this.props\n const { name, origin } = this.state\n\n if (!currentRepositoryKey ||\n !currentRepositoryConfig.repository ||\n !this.checkInput()) {\n return false\n }\n\n if (name === 'new' || name.slice(name.length - 4) === '.git') {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_invalid' }, { s: this.props.intl.formatMessage({ id: 'label.branchName' }) })\n }\n })\n return false\n }\n\n for (const item of currentRepositoryConfig.branches) {\n if (name === item.name) {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_duplicate' }, { s: this.props.intl.formatMessage({ id: 'label.branchName' }) })\n }\n })\n return false\n }\n }\n\n for (const item of currentRepositoryConfig.tags) {\n if (name === item.name) {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_duplicate' }, { s: this.props.intl.formatMessage({ id: 'label.branchName' }) })\n }\n })\n return false\n }\n }\n\n this.setState({ pending: true })\n RepositoryData.createBranch({\n repository: currentRepositoryKey,\n name: name,\n origin: origin\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n currentRepositoryConfig.branches.push({ id: name, name: name })\n ++currentRepositoryConfig.count.branch\n history.push(makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'branches'\n ))\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createBranchFail' }),\n 2\n )\n )\n this.setState({ pending: false })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, history, classes, intl } = this.props\n\n return (\n \n { intl.formatMessage({ id: 'label.newBranch' }) }\n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.branchName' }) }\n \n \n this.setState({ name: e.target.value })}\n />\n \n {/* \n { intl.formatMessage({ id: 'label.createOrigin' }) }\n */}\n \n { intl.formatMessage({ id: 'label.choseCreateOrigin' }) }\n \n {/* \n this.setState({ origin: e.target.value })}\n />\n */}\n \n this.setState({ origin: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.branch' })}\n { currentRepositoryConfig.branches && currentRepositoryConfig.branches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n {intl.formatMessage({ id: 'label.tag' })}\n { currentRepositoryConfig.tags && currentRepositoryConfig.tags.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n \n \n  \n \n history.push(makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'branches'\n ))}\n >\n {intl.formatMessage({ id: 'label.cancel' })}\n \n this.createBranch()}\n >\n { this.state.pending ? : ''}\n {intl.formatMessage({ id: 'label.ok' })}\n \n \n \n \n  \n \n \n \n )\n }\n}\n\nCreateBranch.propTypes = {\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CreateBranch)\n )\n )\n)\n","// core component\nimport React, { Component } from 'react'\nimport { withRouter, Link } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Button from '@material-ui/core/Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { injectIntl } from 'react-intl'\nimport { plTag, plBranch } from '@pgyer/icons'\n// helper\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = theme => ({\n content: {\n maxHeight: '0px',\n marginTop: theme.spacing(3) + 'px',\n overflow: 'hidden',\n transition: 'max-height .3s',\n border: '1px solid ' + theme.palette.border,\n borderBottom: '0px'\n },\n contentShow: {\n maxHeight: '1000px',\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px'\n },\n parent: {\n padding: theme.spacing(2) + 'px 0px',\n margin: '0px ' + theme.spacing(2) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n parentA: {\n display: 'inline-block',\n marginTop: theme.spacing(2),\n marginRight: theme.spacing(2)\n },\n borderNone: {\n border: '0px'\n },\n versions: {\n marginBottom: theme.spacing(1)\n },\n button: {\n marginRight: theme.spacing(1),\n marginTop: theme.spacing(1)\n }\n})\n\nclass CommitContainRef extends Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n refList: [],\n refTotal: 0\n }\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData(this.props)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getData(nextProps)\n return false\n }\n if (this.props.currentHash !== nextProps.currentHash) {\n this.getData(nextProps)\n return false\n }\n return true\n }\n\n getData (props) {\n if (!props.currentHash || !props.currentRepositoryKey) {\n return false\n }\n RepositoryData.refListContainSHA({\n repository: props.currentRepositoryKey,\n hash: props.currentHash\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const refList = []\n refList.branch = data.data.branch\n refList.tag = data.data.tag\n this.setState({\n pending: false,\n refList: refList,\n refTotal: data.data.branch.length + data.data.tag.length\n })\n }\n })\n }\n\n render () {\n const {\n show,\n classes,\n parentHash,\n currentGroup,\n currentRepository,\n history,\n intl\n } = this.props\n const { refList, refTotal } = this.state\n return (\n \n {intl.formatMessage({ id: 'label.parentNode' })}\n \n {\n parentHash.length > 0\n ? parentHash.map((item, key) => {\n return (\n \n {item ? item.substr(0, 8) : ''}\n \n )\n })\n : ''\n }\n \n \n \n {intl.formatMessage({ id: 'message.someVersion' })}\n {\n refTotal > 0\n ? refList.branch.map((item, key) => {\n const branchFilesLink = makeLink(currentGroup, currentRepository, 'files', encodeURIComponent(item))\n return (\n history.push(branchFilesLink)}\n key={key}\n >\n \n  {item}\n \n )\n })\n : \n }\n {\n refTotal > 0\n ? refList.tag.map((item, key) => {\n const tagFilesLink = makeLink(currentGroup, currentRepository, 'files', encodeURIComponent(item))\n return (\n history.push(tagFilesLink)}\n key={key}\n >\n \n  {item}\n \n )\n })\n : \n }\n \n \n )\n }\n}\n\nCommitContainRef.propTypes = {\n show: PropTypes.bool.isRequired,\n classes: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n parentHash: PropTypes.array.isRequired,\n currentGroup: PropTypes.string.isRequired,\n currentRepository: PropTypes.string.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n currentHash: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CommitContainRef)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\n// import hljs from 'highlight.js'\nimport Prism from 'prismjs'\nimport 'highlight.js/styles/atom-one-light.css'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { getCodeLanguageType } from 'APPSRC/helpers/VaribleHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport CodeLine from 'APPSRC/components/unit/CodeLine'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { psMore } from '@pgyer/icons'\n\n// style\nconst styles = theme => ({\n table: {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse'\n },\n diffLabelTop: {\n color: theme.palette.text.light\n },\n diffLabel: {\n height: theme.spacing(4),\n color: theme.palette.text.light,\n '& code': {\n lineHeight: theme.spacing(4) + 'px'\n }\n },\n lineLabelButton: {\n width: theme.spacing(6),\n height: theme.spacing(2),\n padding: 0 + ' !important',\n overflow: 'hidden',\n marginTop: '-5px',\n borderRadius: 0\n },\n lineLabel: {\n width: theme.spacing(6),\n padding: 0,\n verticalAlign: 'top',\n userSelect: 'none'\n },\n lineNumber: {\n width: theme.spacing(6),\n padding: '0 ' + theme.spacing(1) + 'px',\n textAlign: 'right',\n verticalAlign: 'top',\n userSelect: 'none',\n color: theme.palette.text.lighter\n },\n diffMarker: {\n width: theme.spacing(2),\n textAlign: 'center',\n padding: '0',\n verticalAlign: 'top',\n userSelect: 'none',\n color: theme.palette.text.light\n },\n code: {\n verticalAlign: 'top',\n overflowWrap: 'break-word'\n },\n lineNumberAddition: {\n backgroundColor: theme.palette.background.additionDark\n },\n lineNumberDeletion: {\n backgroundColor: theme.palette.background.deletionDark\n },\n lineNumberMarker: {\n backgroundColor: theme.palette.background.diffLabelDark\n },\n addition: {\n backgroundColor: theme.palette.background.addition\n },\n deletion: {\n backgroundColor: theme.palette.background.deletion\n },\n marker: {\n backgroundColor: theme.palette.background.diffLabel\n },\n disabled: {\n backgroundColor: '#fcfdfe'\n }\n})\n\nclass CodeDiffViewer extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n originalHTML: [],\n modifiedHTML: [],\n original: [],\n modified: [],\n fullfileContent: [],\n diffContent: []\n }\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n exceptionCode: 0x040E,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'phrase.file' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n if (this.props.showFullFile) {\n this.makeFullDiffContent()\n } else {\n this.makeDiffContent()\n if (this.state.fullfileContent.length > 0) {\n this.buildFullFileContent()\n }\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.showFullFile !== nextProps.showFullFile) {\n if (nextProps.showFullFile) {\n this.makeFullDiffContent()\n } else {\n this.makeDiffContent()\n if (this.state.fullfileContent.length > 0) {\n this.buildFullFileContent()\n }\n }\n return false\n }\n return true\n }\n\n getFileContent (callback) {\n RepositoryData.object({\n repository: this.props.repository,\n parent: this.props.fileDiffInfo.original.sha\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.state.fullfileContent = data.data.object && data.data.object.raw ? data.data.object.raw.split('\\n') : []\n this.setState({ fullfileContent: this.state.fullfileContent })\n callback(data)\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.getFileFail' })\n , 2)\n )\n }\n })\n }\n\n // highlightOld (code) {\n // // using highlight js\n // let lang = getCodeLanguageType(this.props.fileDiffInfo.original.name || this.props.fileDiffInfo.modified.name || '')\n // let parsed = hljs.highlight(lang, code.join('\\n'), true)\n // let parsedHtml = parsed.value.split('\\n')\n // let final = []\n // for (let index = 0; index < code.length; index++) {\n // if (typeof code[index] === 'string') {\n // final[index] = parsedHtml[index]\n // }\n // }\n // return final\n // }\n\n highlight (code) {\n // using prismjs\n const lang = getCodeLanguageType(this.props.fileDiffInfo.original.name || this.props.fileDiffInfo.modified.name || '')\n const parsed = Prism.highlight(code.join('\\n'), Prism.languages[lang] || Prism.languages.markdown, lang)\n const parsedHtml = parsed.split('\\n')\n const final = []\n for (let index = 0; index < code.length; index++) {\n if (typeof code[index] === 'string') {\n final[index] = parsedHtml[index]\n }\n }\n return final\n }\n\n makeDiffContent () {\n if (this.props.fileDiffInfo && this.props.fileDiffInfo.diff && this.props.fileDiffInfo.diff.line.length) {\n const lineData = this.props.fileDiffInfo.diff.line\n const final = []\n const original = []\n const modified = []\n let lineNumber = [null, null]\n for (let index = 0; index < lineData.length; index++) {\n const line = lineData[index]\n const matches = line.match(/^@@\\s-+(\\d+)(,\\d+)?\\s+\\++(\\d+)(,\\d+)?\\s+@@.*$/i)\n if (matches) {\n lineNumber = [parseInt(matches[1]), parseInt(matches[3])]\n final.push([0, 0, '', line])\n } else if (line[0] === '-') {\n final.push([lineNumber[0], null, '-'])\n original[lineNumber[0]] = line.substring(1)\n lineNumber[0]++\n } else if (line[0] === '+') {\n final.push([null, lineNumber[1], '+'])\n modified[lineNumber[1]] = line.substring(1)\n lineNumber[1]++\n } else {\n final.push([lineNumber[0], lineNumber[1], ''])\n original[lineNumber[0]] = line.substring(1)\n modified[lineNumber[1]] = line.substring(1)\n lineNumber[0]++\n lineNumber[1]++\n }\n }\n\n this.setState({\n diffContent: final,\n original,\n modified,\n originalHTML: this.highlight(original),\n modifiedHTML: this.highlight(modified)\n })\n }\n }\n\n makeFullDiffContent () {\n if (this.state.fullfileContent.length > 0) {\n if (this.props.fileDiffInfo && this.props.fileDiffInfo.diff && this.props.fileDiffInfo.diff.line.length) {\n const modifiedLines = this.state.fullfileContent.length\n const lineData = this.props.fileDiffInfo.diff.line\n const final = []\n const original = []\n const modified = []\n let lineNumber = [null, null]\n for (let index = 0; index < lineData.length; index++) {\n const line = lineData[index]\n const matches = line.match(/^@@\\s-+(\\d+)(,\\d+)?\\s+\\++(\\d+)(,\\d+)?\\s+@@.*$/i)\n if (matches) {\n let lastLineNumber = [0, 0]\n if (final.length) {\n lastLineNumber = [...lineNumber]\n }\n\n lineNumber = [parseInt(matches[1]), parseInt(matches[3])]\n\n for (;lastLineNumber[0] < Math.min(lineNumber[0], modifiedLines) - 1;) {\n lastLineNumber[1]++\n lastLineNumber[0]++\n final.push([lastLineNumber[0], lastLineNumber[1], ''])\n original[lastLineNumber[0]] = this.state.fullfileContent[lastLineNumber[0] - 1]\n modified[lastLineNumber[1]] = this.state.fullfileContent[lastLineNumber[0] - 1]\n }\n } else if (line[0] === '-') {\n final.push([lineNumber[0], null, '-'])\n original[lineNumber[0]] = line.substring(1)\n lineNumber[0]++\n } else if (line[0] === '+') {\n final.push([null, lineNumber[1], '+'])\n modified[lineNumber[1]] = line.substring(1)\n lineNumber[1]++\n } else {\n final.push([lineNumber[0], lineNumber[1], ''])\n original[lineNumber[0]] = line.substring(1)\n modified[lineNumber[1]] = line.substring(1)\n lineNumber[0]++\n lineNumber[1]++\n }\n }\n\n for (;lineNumber[0] <= this.state.fullfileContent.length;) {\n final.push([lineNumber[0], lineNumber[1], ''])\n original[lineNumber[0]] = this.state.fullfileContent[lineNumber[0] - 1]\n modified[lineNumber[1]] = this.state.fullfileContent[lineNumber[0] - 1]\n lineNumber[0]++\n lineNumber[1]++\n }\n\n this.setState({\n diffContent: final,\n original,\n modified,\n originalHTML: this.highlight(original),\n modifiedHTML: this.highlight(modified)\n })\n }\n } else {\n this.getFileContent((data) => {\n this.makeFullDiffContent()\n })\n }\n }\n\n expandCode (direction, markerPosition) {\n if (this.state.fullfileContent.length > 0) {\n const diffContent = this.state.diffContent\n const marker = diffContent[markerPosition]\n if (direction === 'head') {\n const previous = this.state.diffContent[markerPosition - 1]\n const next = this.state.diffContent[markerPosition + 1]\n if (!previous && next[1] <= 20) {\n // first marker, and line number less than 20, remove marker\n const insertData = []\n let originLine = next[0] - 1\n for (let index = next[1] - 1; index > 0; index--) {\n insertData.unshift([originLine, index, ''])\n originLine--\n }\n diffContent.splice(markerPosition, 1, ...insertData)\n this.setState({ diffContent })\n return true\n } else if (previous && previous[1] && previous[1] + 21 >= next[1]) {\n // non-first marker, the distance of previous line number and next line number less than 20, remove marker\n const insertData = []\n let originLine = previous[0] + 1\n for (let index = previous[1] + 1; index < next[1]; index++) {\n insertData.push([originLine, index, ''])\n originLine++\n }\n diffContent.splice(markerPosition, 1, ...insertData)\n this.setState({ diffContent })\n return true\n } else {\n // normal condition, just change marker\n const markerData = marker[3].match(/^@@\\s-+(\\d+)(,)?(\\d+)?\\s+\\++(\\d+)(,)?(\\d+)?\\s+@@.*$/i)\n if (markerData) {\n marker[3] = '@@ -' +\n (parseInt(markerData[1]) - 20) + ',' +\n ((parseInt(markerData[3]) + 20) || '') + ' +' +\n (parseInt(markerData[4]) - 20) + ',' +\n ((parseInt(markerData[6]) + 20) || '') + ' @@'\n }\n\n const insertData = []\n let originLine = next[0] - 1\n for (let index = next[1] - 1; index >= next[1] - 20; index--) {\n insertData.unshift([originLine, index, ''])\n originLine--\n }\n diffContent.splice(markerPosition + 1, 0, ...insertData)\n this.setState({ diffContent })\n return true\n }\n } else if (direction === 'tail') {\n const previous = this.state.diffContent[markerPosition - 1]\n const next = this.state.diffContent[markerPosition + 1]\n if (!marker && previous[0] + 21 > this.state.fullfileContent.length) {\n // reach the bottom line, remove marker (using original file content)\n const insertData = []\n let modifiedLine = previous[1] + 1\n for (let index = previous[0] + 1; index <= this.state.fullfileContent.length; index++) {\n insertData.push([index, modifiedLine, ''])\n modifiedLine++\n }\n diffContent.splice(markerPosition, 1, ...insertData)\n this.setState({ diffContent })\n return true\n } else if (marker && next && next[1] && previous[1] + 21 >= next[1]) {\n // the distance of previous line number and next line number less than 20, remove marker\n const insertData = []\n let originLine = previous[0] + 1\n for (let index = previous[1] + 1; index < next[1]; index++) {\n insertData.push([originLine, index, ''])\n originLine++\n }\n diffContent.splice(markerPosition, 1, ...insertData)\n this.setState({ diffContent })\n return true\n } else {\n // other condition, just append code\n const insertData = []\n let originLine = previous[0] + 1\n for (let index = previous[1] + 1; index < (previous[1] + 21); index++) {\n insertData.push([originLine, index, ''])\n originLine++\n }\n diffContent.splice(markerPosition, 0, ...insertData)\n this.setState({ diffContent })\n return true\n }\n }\n } else {\n this.getFileContent((data) => {\n this.buildFullFileContent()\n this.expandCode(direction, markerPosition)\n })\n }\n }\n\n buildFullFileContent () {\n const { original, modified, fullfileContent } = this.state\n let modifiedIndex = 1\n for (let index = 0; index < fullfileContent.length; index++) {\n if (typeof original[index + 1] !== 'string') {\n original[index + 1] = fullfileContent[index]\n modified[modifiedIndex] = fullfileContent[index]\n modifiedIndex++\n } else {\n while (typeof modified[modifiedIndex] === 'string' && modifiedIndex < modified.length) {\n modifiedIndex++\n }\n }\n }\n\n this.setState({\n original,\n modified,\n originalHTML: this.highlight(original),\n modifiedHTML: this.highlight(modified)\n })\n }\n\n makeLines () {\n const final = []\n const classes = this.props.classes\n if (this.props.renderSideBySide) {\n let lastDeletionIndex = null\n let lastDeletionDiffIndex = null\n for (let index = 0; index < this.state.diffContent.length; index++) {\n const lineData = this.state.diffContent[index]\n\n if (lineData[2] === '-' && lastDeletionIndex === null) {\n lastDeletionIndex = final.length\n lastDeletionDiffIndex = index\n }\n\n if (lineData[2] === '-') {\n final.push([\n {lineData[0]},\n -,\n ,\n ,\n ,\n \n ])\n }\n\n if (lineData[2] === '+' && typeof lastDeletionIndex === 'number') {\n if (final[lastDeletionIndex]) {\n final[lastDeletionIndex][3] = {lineData[1]}\n final[lastDeletionIndex][4] = +\n final[lastDeletionIndex][5] = \n \n \n\n final[lastDeletionIndex][2] = \n \n \n lastDeletionIndex++\n lastDeletionDiffIndex++\n } else {\n lastDeletionIndex = null\n lastDeletionDiffIndex = null\n }\n }\n\n if (lineData[2] === '+' && typeof lastDeletionIndex !== 'number') {\n final.push([\n ,\n ,\n ,\n {lineData[1]},\n +,\n \n ])\n\n lastDeletionIndex = null\n lastDeletionDiffIndex = null\n }\n\n if (lineData[0] === 0 && lineData[1] === 0) {\n if (index === 0) {\n final.push([\n \n this.expandCode('head', index)} />\n ,\n ,\n \n ])\n } else {\n final.push([\n \n this.expandCode('tail', index)} />\n this.expandCode('head', index)} />\n ,\n ,\n \n ])\n }\n\n lastDeletionIndex = null\n lastDeletionDiffIndex = null\n } else if (lineData[2] === '') {\n final.push([\n {lineData[0]},\n ,\n ,\n {lineData[1]},\n ,\n \n ])\n\n lastDeletionIndex = null\n lastDeletionDiffIndex = null\n }\n }\n } else {\n for (let index = 0; index < this.state.diffContent.length; index++) {\n const lineData = this.state.diffContent[index]\n const appendClassName = { '+': classes.addition, '-': classes.deletion }[lineData[2]]\n const appendClassNameDark = { '+': classes.lineNumberAddition, '-': classes.lineNumberDeletion }[lineData[2]]\n\n if (lineData[0] === 0 && lineData[1] === 0) {\n if (index === 0) {\n final.push([\n \n this.expandCode('head', index)} />\n ,\n ,\n ,\n \n ])\n } else {\n final.push([\n \n this.expandCode('tail', index)} />\n this.expandCode('head', index)} />\n ,\n ,\n ,\n \n ])\n }\n } else {\n if (lineData[2] === '-') {\n const prevLineData = this.state.diffContent[index - 1]\n const nextLineData = this.state.diffContent[index + 1]\n const nextTwoLineData = this.state.diffContent[index + 2]\n if (nextLineData && nextLineData[2] === '+' &&\n (!nextTwoLineData || (nextTwoLineData && nextTwoLineData[2] !== '+')) &&\n (!prevLineData || (prevLineData && prevLineData[2] !== '+'))\n ) {\n final.push([\n {lineData[0]},\n ,\n -,\n \n \n \n ])\n } else {\n final.push([\n {lineData[0]},\n ,\n -,\n \n ])\n }\n } else if (lineData[2] === '+') {\n const prevLineData = this.state.diffContent[index - 1]\n const prevTwoLineData = this.state.diffContent[index - 2]\n if (prevLineData && prevLineData[2] === '-' &&\n (!prevTwoLineData || (prevTwoLineData && prevTwoLineData[2] !== '-'))\n ) {\n final.push([\n ,\n {lineData[1]},\n +,\n \n \n \n ])\n } else {\n final.push([\n ,\n {lineData[1]},\n +,\n \n ])\n }\n } else {\n final.push([\n {lineData[0]},\n {lineData[1]},\n {lineData[2]},\n \n ])\n }\n }\n }\n }\n\n if (final.length > 0 && (!this.state.fullfileContent.length || this.state.diffContent[this.state.diffContent.length - 1][0] < this.state.fullfileContent.length - 1)) {\n const lastItem = this.state.diffContent[this.state.diffContent.length - 1]\n if (lastItem[2] === '') {\n if (this.props.renderSideBySide) {\n final.push([\n \n this.expandCode('tail', this.state.diffContent.length)} />\n ,\n ,\n \n ])\n } else {\n final.push([\n \n this.expandCode('tail', this.state.diffContent.length)} />\n ,\n ,\n ,\n \n ])\n }\n }\n }\n\n return final.map((item, key) => {item})\n }\n\n render () {\n const { renderSideBySide, classes } = this.props\n\n return (\n {renderSideBySide\n ? \n \n \n \n \n \n \n \n : \n \n \n \n \n }\n \n {this.makeLines()}\n \n
)\n }\n}\n\nCodeDiffViewer.propTypes = {\n intl: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n repository: PropTypes.string.isRequired,\n fileDiffInfo: PropTypes.object.isRequired,\n showFullFile: PropTypes.bool,\n renderSideBySide: PropTypes.bool,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n expandStatus: state.DrawerStates.expandStatus\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CodeDiffViewer)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Constants from 'APPSRC/config/Constants'\nimport CodeDiffViewer from 'APPSRC/components/unit/CodeDiffViewer'\n\n// helpers\nimport { formatNumber } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n icon: {\n color: theme.palette.text.lighter\n },\n icon2: {\n color: theme.palette.primary.main\n },\n fileInfo: {\n lineHeight: theme.spacing(5) + 'px',\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n background: theme.palette.background.main,\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px 0 0',\n display: 'flex',\n alignItems: 'center'\n },\n editorBg: {\n background: '#1e1e1e'\n },\n detail: {\n overflow: 'hidden',\n border: '1px solid ' + theme.palette.border,\n borderRadius: '0 0 ' + theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px',\n borderTop: '0px'\n },\n mediaFile: {\n display: 'block',\n margin: 'auto',\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(5),\n maxWidth: '80%'\n },\n oldImage: {\n display: 'block',\n marginTop: theme.spacing(5),\n border: '1px solid ' + theme.palette.error.main,\n padding: theme.spacing(2),\n marginLeft: 'auto',\n marginRight: 'auto',\n maxWidth: '80%'\n },\n newImage: {\n display: 'block',\n marginTop: theme.spacing(5),\n border: '1px solid ' + theme.palette.success.dark,\n marginLeft: 'auto',\n padding: theme.spacing(2),\n marginRight: 'auto',\n maxWidth: '80%'\n },\n imagelegend: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: theme.spacing(8)\n },\n opacity1: {\n color: theme.palette.text.lighter,\n cursor: 'not-allowed'\n },\n height0: {\n height: '0px',\n paddingTop: '0px !important',\n paddingBottom: '0px !important',\n overflow: 'hidden'\n },\n unknown: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: theme.spacing(16)\n },\n markdown: {\n boxSizing: 'border-box',\n minWidth: '200px',\n maxWidth: '980px',\n margin: '0 auto',\n padding: '45px'\n }\n})\n\nclass ObjectDiffViewer extends React.Component {\n getDisplayMode (fileDiff) {\n if ((fileDiff.original.object && fileDiff.original.object.oversize) ||\n (fileDiff.modified.object && fileDiff.modified.object.oversize)\n ) {\n return Constants.obejctDiffDisplayType.oversize\n } else if (fileDiff.original.name &&\n fileDiff.modified.name &&\n fileDiff.original.name !== fileDiff.modified.name\n ) {\n return Constants.obejctDiffDisplayType.infoChange\n } else if (\n fileDiff.original.mode &&\n fileDiff.modified.mode &&\n fileDiff.original.mode !== fileDiff.modified.mode\n ) {\n return Constants.obejctDiffDisplayType.infoChange\n } else if (fileDiff.type === 'text') {\n return Constants.obejctDiffDisplayType.textChange\n } else if (fileDiff.type === 'binary' &&\n (\n (fileDiff.original.object && fileDiff.original.object.mime.match(/^image/)) ||\n (fileDiff.modified.object && fileDiff.modified.object.mime.match(/^image/))\n )\n ) {\n return Constants.obejctDiffDisplayType.imageChange\n } else if (fileDiff.type === 'oversize') {\n return Constants.obejctDiffDisplayType.oversize\n } else {\n return Constants.obejctDiffDisplayType.unknown\n }\n }\n\n render () {\n const { classes, intl, fileDiffInfo, repository, renderSideBySide, layoutUpdateTimeStamp, showFullFile } = this.props\n\n const displayMode = this.getDisplayMode(fileDiffInfo)\n\n return (\n \n {\n displayMode === Constants.obejctDiffDisplayType.imageChange && \n \n { fileDiffInfo.original.object\n ? \n \n \n {formatNumber(fileDiffInfo.original.object.size, 'Bytes')} | W: {fileDiffInfo.original.object.width}px | H: {fileDiffInfo.original.object.height}px\n \n \n : \n {intl.formatMessage({ id: 'message.fileContentEmpty' })}\n }\n \n \n { fileDiffInfo.modified.object\n ? \n \n \n {formatNumber(fileDiffInfo.modified.object.size, 'Bytes')} | W: {fileDiffInfo.modified.object.width}px | H: {fileDiffInfo.modified.object.height}px\n \n \n : \n {intl.formatMessage({ id: 'message.fileContentEmpty' })}\n }\n \n \n }\n { displayMode === Constants.obejctDiffDisplayType.infoChange && \n { fileDiffInfo.original.name !== fileDiffInfo.modified.name &&\n \n File name changed from {fileDiffInfo.original.name} to {fileDiffInfo.modified.name}\n }\n { fileDiffInfo.original.mode !== fileDiffInfo.modified.mode &&\n \n File mode changed from {fileDiffInfo.original.mode} to {fileDiffInfo.modified.mode}\n }\n \n }\n { displayMode === Constants.obejctDiffDisplayType.textChange && }\n { displayMode === Constants.obejctDiffDisplayType.unknown && {intl.formatMessage({ id: 'message.fileTypeNotSupport' })}}\n { displayMode === Constants.obejctDiffDisplayType.empty && {intl.formatMessage({ id: 'message.fileContentEmpty' })}}\n { displayMode === Constants.obejctDiffDisplayType.oversize && {intl.formatMessage({ id: 'message.fileContentOversize' })}}\n \n \n )\n }\n}\n\nObjectDiffViewer.propTypes = {\n fileDiffInfo: PropTypes.object.isRequired,\n repository: PropTypes.string.isRequired,\n layoutUpdateTimeStamp: PropTypes.number,\n renderSideBySide: PropTypes.bool,\n showFullFile: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n expandStatus: state.DrawerStates.expandStatus\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(ObjectDiffViewer)\n )\n )\n)\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// component\nimport Accordion from '@material-ui/core/Accordion'\nimport Button from '@material-ui/core/Button'\nimport Grid from '@material-ui/core/Grid'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { faImage, faVideo, faCompress } from '@fortawesome/free-solid-svg-icons'\nimport {\n plFile,\n plCopy,\n plExpand\n} from '@pgyer/icons'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\nimport ObjectDiffViewer from 'APPSRC/components/unit/ObjectDiffViewer'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n add: {\n color: theme.palette.success.main,\n cursor: 'default',\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(2)\n },\n delete: {\n color: theme.palette.error.main,\n cursor: 'default',\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1)\n },\n viewFileBtn: {\n minWidth: theme.spacing(24)\n },\n viewOldFileBtn: {\n minWidth: theme.spacing(27)\n },\n fileName: {\n cursor: 'default',\n marginTop: theme.spacing(0.5)\n },\n viewFile: {\n marginLeft: theme.spacing(2)\n },\n panelSummary: {\n border: '1px solid ' + theme.palette.border,\n position: 'sticky',\n top: theme.spacing(16),\n zIndex: 7\n },\n panelDetail: {\n zIndex: theme.spacing(1),\n overflow: 'hidden'\n },\n separator: {\n color: theme.palette.border\n },\n icon: {\n color: theme.palette.primary.main\n }\n})\n\nclass FileDiffExpansionPanel extends Component {\n constructor (props) {\n super(props)\n const { intl } = props\n this.state = {\n panelIsOpen: true,\n showFullFile: false,\n copyPath: 'label.copyPath',\n viewFile: intl.formatMessage({ id: 'label.browserFile' }),\n showFullFileTitle: intl.formatMessage({ id: 'label.expandFullFile' })\n }\n this.fileType = {\n text: 1,\n image: 2,\n video: 3\n }\n }\n\n viewFileDetail (link) {\n const { history } = this.props\n history.push(link)\n }\n\n toggleFullFile (e) {\n e.stopPropagation()\n const { intl } = this.props\n this.setState({\n showFullFile: !this.state.showFullFile,\n showFullFileTitle: this.state.showFullFile ? intl.formatMessage({ id: 'label.expandFullFile' }) : intl.formatMessage({ id: 'label.showDiffOnly' })\n })\n }\n\n copyPath (e, path) {\n e.stopPropagation()\n this.copySomething(path)\n this.setState({ copyPath: 'label.copied' })\n }\n\n copySomething (data) {\n const dom = window.document.createElement('input')\n dom.setAttribute('value', data)\n dom.setAttribute('type', 'text')\n window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('copy')\n window.document.body.removeChild(dom)\n }\n\n fileTypeDeal (file) {\n const { unknow, text, image, video } = this.fileType\n if (file.type.indexOf('text') !== -1 ||\n file.type.indexOf('application/xml') !== -1\n ) {\n return text\n } else if (file.type.indexOf('image') !== -1) {\n return image\n } else if (file.type.indexOf('video/mp4') !== -1) {\n return video\n } else {\n return unknow\n }\n }\n\n fileIconDeal (fileType) {\n const { image, video } = this.fileType\n switch (fileType) {\n case image:\n return faImage\n case video:\n return faVideo\n default:\n return plFile\n }\n }\n\n togglePanel () {\n this.setState({\n panelIsOpen: !this.state.panelIsOpen\n })\n }\n\n render () {\n const {\n fileDiffInfo,\n renderSideBySide,\n currentRepositoryKey,\n modifiedRepositoryKey,\n classes,\n intl,\n match,\n layoutUpdateTimeStamp,\n fileTreeIsOpen\n } = this.props\n let { parentHash, hash } = this.props\n const { text, image } = this.fileType\n const { panelIsOpen, copyPath, viewFile, showFullFile, showFullFileTitle } = this.state\n parentHash = parentHash ? parentHash[0].substr(0, 8) : ''\n hash = hash ? hash.substr(0, 8) : ''\n const parentHashFileLink = makeLink(match.params.groupName, match.params.repositoryName, 'files', parentHash, fileDiffInfo.original.name)\n const currentHashFileLink = makeLink(match.params.groupName, match.params.repositoryName, 'files', hash, fileDiffInfo.modified.name)\n const fileType = this.fileTypeDeal(fileDiffInfo)\n return ( this.togglePanel(e)}\n square={Boolean(false)}\n >\n }\n aria-controls='panel1a-content'\n className={classes.panelSummary}\n >\n \n \n event.stopPropagation()}\n onFocus={event => event.stopPropagation()}\n className={classes.fileName}\n component='span'\n >\n   \n {\n fileDiffInfo.original.name === fileDiffInfo.modified.name\n ? fileDiffInfo.modified.name\n : fileDiffInfo.original.name + ' -> ' + fileDiffInfo.modified.name\n }   \n \n {\n fileDiffInfo.original.mode === fileDiffInfo.modified.mode\n ? ''\n : fileDiffInfo.original.mode + ' -> ' + fileDiffInfo.modified.mode\n }  \n \n \n {\n this.copyPath(e, fileDiffInfo.modified.name)\n e.stopPropagation()\n }} onMouseLeave={() => {\n window.setTimeout(() => this.setState({ copyPath: 'label.copyPath' }), 100)\n }}\n />\n \n {\n fileType === text && \n \n +{fileDiffInfo.diff.additions}\n \n \n {fileDiffInfo.diff.deletions}\n \n \n |\n \n \n \n \n { currentRepositoryKey === modifiedRepositoryKey && hash &&\n \n \n \n }\n \n }\n {\n fileType === image && currentRepositoryKey === modifiedRepositoryKey && parentHash && hash && \n \n \n \n \n \n \n \n }\n \n \n \n \n \n )\n }\n}\n\nFileDiffExpansionPanel.propTypes = {\n currentRepositoryKey: PropTypes.string.isRequired,\n modifiedRepositoryKey: PropTypes.string.isRequired,\n fileDiffInfo: PropTypes.object.isRequired,\n renderSideBySide: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n hash: PropTypes.string,\n parentHash: PropTypes.array,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n layoutUpdateTimeStamp: PropTypes.number,\n fileTreeIsOpen: PropTypes.bool\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FileDiffExpansionPanel)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faSquare, faFile, faFolder, faFolderOpen } from '@fortawesome/free-solid-svg-icons'\n\n// style\nlet themeSpacing = 0\nconst styles = theme => {\n themeSpacing = parseInt(theme.spacing(1))\n return {\n fileBrowserTop: {\n position: 'relative',\n height: '100%'\n },\n fileBrowser: {\n maxHeight: '100%',\n overflow: 'auto',\n overflowX: 'hidden',\n background: theme.palette.background.light\n },\n tree: {\n paddingRight: theme.spacing(1),\n lineHeight: theme.spacing(4.5) + 'px',\n cursor: 'pointer',\n '& > *': { lineHeight: theme.spacing(4.5) + 'px' },\n '&:hover': { background: theme.palette.background.dark }\n },\n listSub: {\n position: 'relative'\n },\n listDir: {\n lineHeight: theme.spacing(5) + 'px',\n paddingLeft: theme.spacing(1),\n background: theme.palette.background.light\n },\n listDir2: {\n position: 'absolute',\n width: '100%',\n left: '0',\n top: '0',\n paddingLeft: theme.spacing(1),\n lineHeight: theme.spacing(5) + 'px',\n boxSizing: 'border-box',\n background: theme.palette.background.light,\n overflowX: 'hidden'\n },\n listFile: {\n lineHeight: theme.spacing(5) + 'px',\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(1),\n cursor: 'pointer',\n '& > *': { lineHeight: theme.spacing(5) + 'px' },\n '&:hover': { background: theme.palette.background.dark }\n },\n add: {\n float: 'right',\n color: theme.palette.success.main\n },\n delete: {\n float: 'right',\n color: theme.palette.error.main\n }\n }\n}\n\nclass FileBrowser extends React.Component {\n constructor (props) {\n super(props)\n\n this.fileBrowser = {\n changeFilesTmp: null,\n treeFiles: null,\n listFiles: null\n }\n\n this.state = {\n count: 0\n }\n\n this.initChangeFiles()\n this.listFilesRef = React.createRef()\n }\n\n initChangeFiles () {\n const { changeFiles } = this.props\n if (!changeFiles || !changeFiles.length) {\n return false\n }\n\n changeFiles.map((item, index) => {\n const lastIndex = item.name.lastIndexOf('/')\n item.used = false\n item.dirname = lastIndex !== -1 ? item.name.slice(0, lastIndex) : ''\n item.filename = lastIndex !== -1 ? item.name.slice(lastIndex + 1) : item.name\n return true\n })\n\n this.initTreeFiles()\n this.initListFiles()\n }\n\n initTreeFiles () {\n const { changeFiles } = this.props\n if (!changeFiles || !changeFiles.length) {\n return false\n }\n\n this.fileBrowser.treeFiles = { '/': true, '/open': true }\n this.fileBrowser.changeFilesTmp = [...changeFiles]\n this.fileBrowser.changeFilesTmp.sort((item1, item2) => {\n return (item1.dirname !== item2.dirname && item1.dirname.indexOf(item2.dirname) > -1) ? -1 : 0\n })\n\n this.fileBrowser.changeFilesTmp.map((item, index) => {\n let tmpDir = this.fileBrowser.treeFiles\n\n if (item.dirname) {\n const dirs = item.dirname.split('/')\n dirs.map((item, index) => {\n if (!item) {\n return false\n }\n if (tmpDir[item] === undefined) {\n tmpDir[item] = { '/': true, '/open': true }\n }\n tmpDir = tmpDir[item]\n return true\n })\n }\n\n tmpDir[item.filename] = { '/': false, ...item }\n return true\n })\n\n return true\n }\n\n initListFiles () {\n const { changeFiles } = this.props\n if (!changeFiles || !changeFiles.length) {\n return false\n }\n\n this.fileBrowser.listFiles = []\n\n changeFiles.map((item, index) => {\n if (item.used) {\n return item\n }\n item.used = true\n const dirTmp = { name: item.dirname, files: [item] }\n changeFiles.map((item, index) => {\n if (item.used) {\n return item\n }\n if (item.dirname === dirTmp.name) {\n item.used = true\n dirTmp.files.push(item)\n }\n return true\n })\n this.fileBrowser.listFiles.push(dirTmp)\n return true\n })\n\n return true\n }\n\n treeFiles (path, treeFiles, deep) {\n const { fileClick, classes } = this.props\n const files = Object.keys(treeFiles)\n let filesCount = 0\n if (files.length < 3) {\n return false\n }\n\n files.map((item, index) => {\n filesCount += (item !== '/' && item !== '/open' && !treeFiles[item]['/']) ? 1 : 0\n return true\n })\n\n return (\n { filesCount > 0 || files.length > 3\n ? \n {\n treeFiles['/open'] = !treeFiles['/open']\n this.setState({ count: this.state.count + 1 })\n }}>\n   {path}\n \n { treeFiles['/open'] && files.map((item, index) => item !== '/' && item !== '/open' && \n { treeFiles[item]['/']\n ? this.treeFiles(item, treeFiles[item], deep + 1)\n : fileClick(treeFiles[item].hash)} style={this.calcPadding(deep, false)}>\n   {treeFiles[item].filename}\n -{treeFiles[item].delete}\n +{treeFiles[item].add} \n \n }\n )}\n \n : files.map((item, index) => item !== '/' && item !== '/open' && \n {this.treeFiles((path !== '/' ? (path + '/') : '') + item, treeFiles[item], deep)}\n )}\n )\n }\n\n calcPadding (deep, isDir) {\n return {\n paddingLeft: (2 * deep + (isDir ? 1 : 3)) * themeSpacing + 'px'\n }\n }\n\n listFiles () {\n const { fileClick, classes } = this.props\n const { listFiles } = this.fileBrowser\n if (!listFiles || !listFiles.length) {\n return false\n }\n\n return (\n {listFiles.map((item, index) => {\n return (\n {this.calcDir(item.name)}/\n {item.name}/\n {item.files && item.files.map((item, index) => {\n return ( fileClick(item.hash)}>\n   {item.filename}\n -{item.delete}\n +{item.add} \n )\n })}\n )\n })\n }\n )\n }\n\n calcDir (dir) {\n if (!dir) {\n return ''\n }\n\n const dirs = dir.split('/')\n let index = dirs.length - 2\n while (dirs.join('/').length > 32 && index > 0) {\n dirs[index--] = '..'\n }\n\n return dirs.join('/')\n }\n\n listFilesScroll (e) {\n if (this.props.treeView) {\n return false\n }\n\n const scrollTop = e.target.scrollTop\n let offsetTop = 0\n let offsetBottom = 0\n const offset = 5 * themeSpacing\n const children = this.listFilesRef.current.children\n for (let i = 0; i < children.length; i++) {\n offsetBottom += children[i].clientHeight\n if (scrollTop >= offsetTop && scrollTop < offsetBottom) {\n if (scrollTop > offsetBottom - offset) {\n children[i].style = 'position: relative'\n children[i].children[0].style = 'top: ' + (children[i].clientHeight - offset) + 'px'\n } else {\n children[i].style = 'position: static'\n children[i].children[0].style = 'top: 0; width: ' + children[i].clientWidth + 'px'\n }\n } else {\n children[i].style = 'position: relative'\n children[i].children[0].style = 'top: 0'\n }\n\n offsetTop += children[i].clientHeight\n }\n }\n\n render () {\n const { treeView, classes } = this.props\n this.initChangeFiles()\n return (\n this.listFilesScroll(e)}>\n {treeView ? this.treeFiles('/', this.fileBrowser.treeFiles, 0) : this.listFiles()}\n \n \n )\n }\n}\n\nFileBrowser.propTypes = {\n changeFiles: PropTypes.array.isRequired,\n treeView: PropTypes.bool.isRequired,\n fileClick: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FileBrowser)\n )\n )\n)\n","// core component\nimport React, { Component } from 'react'\nimport { withRouter } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport PropTypes from 'prop-types'\n\nimport Grid from '@material-ui/core/Grid'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Typography from '@material-ui/core/Typography'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport FileDiffExpansionPanel from 'APPSRC/components/unit/FileDiffExpansionPanel'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport FileBrowser from 'APPSRC/components/unit/FileBrowser'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { injectIntl } from 'react-intl'\n\nconst styles = theme => ({\n add: {\n color: theme.palette.success.main,\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(2)\n },\n delete: {\n color: theme.palette.error.main,\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1)\n },\n changedFile: {\n color: theme.palette.primary.main,\n paddingBottom: theme.spacing(1),\n backgroundColor: 'transparent',\n fontSize: '1.25rem',\n '&:hover': {\n backgroundColor: 'transparent',\n boxShadow: 'none'\n }\n },\n typography: {\n padding: theme.spacing(2)\n },\n changedFileList: {\n width: '100%',\n maxWidth: theme.spacing(113),\n backgroundColor: theme.palette.background.paper\n },\n paper: {\n minWidth: theme.spacing(38),\n width: '100%'\n },\n expansionMargin0: {\n margin: 0\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n content: {\n zIndex: theme.spacing(1),\n backgroundColor: theme.palette.background.light\n },\n stickyPosition: {\n position: 'sticky',\n top: theme.spacing(8),\n zIndex: theme.spacing(1),\n padding: theme.spacing(2) + 'px 0px',\n backgroundColor: theme.palette.background.light\n },\n fileTreeHide: {\n display: 'none'\n },\n fileTreeSticky: {\n position: 'sticky',\n top: theme.spacing(14.5),\n maxHeight: (window.innerHeight - 116) + 'px'\n },\n diffTitle: {\n lineHeight: theme.spacing(4) + 'px'\n },\n fileDiffPanel: {\n marginBottom: theme.spacing(3)\n }\n})\n\nclass FileDiffDetail extends Component {\n constructor (props) {\n super(props)\n this.mountedFlag = false\n this.observed = {\n currentRepositoryKey: null\n }\n this.state = {\n changedFilesInfo: [],\n diffViwerLayoutUpdateTimestamp: 0,\n fileTreeIsOpen: false,\n fileTreeGridNumber: 3,\n effectFileCount: 0,\n fileDiff: [],\n renderSideBySide: true,\n addLine: 0,\n deleteLine: 0,\n pending: true,\n large: false\n }\n }\n\n toggleDiffShow () {\n this.setState({\n renderSideBySide: !this.state.renderSideBySide,\n diffViwerLayoutUpdateTimestamp: new Date().getTime()\n })\n }\n\n toggleFileTree () {\n this.setState({\n fileTreeIsOpen: !this.state.fileTreeIsOpen,\n renderSideBySide: this.state.fileTreeIsOpen,\n diffViwerLayoutUpdateTimestamp: new Date().getTime()\n })\n }\n\n jumpToAnchor (hash) {\n window.location.href = window.location.href.split('#')[0] + '#' + hash\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.observed.currentRepositoryKey = this.props.currentRepositoryKey\n this.setState({ pending: true })\n this.getData(this.props)\n }\n\n getFileTreeInfo (data) {\n const fileChangedInfo = []\n for (let key = 0; key < data.length; key++) {\n const item = data[key]\n if (item.modified && item.modified.name) {\n fileChangedInfo.push({\n name: item.modified.name,\n add: item.diff.additions,\n delete: Math.abs(item.diff.deletions),\n hash: item.modified.sha\n })\n }\n }\n return fileChangedInfo\n }\n\n getData (props) {\n if (!props.currentRepositoryKey || !props.childHash || !props.parentHash.length) {\n return false\n }\n\n RepositoryData.fileChanges({\n repository: props.currentRepositoryKey,\n original: props.parentHash[0],\n modified: props.parentHash.length > 1 ? props.parentHash[1] : props.childHash\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (data.data.large) {\n this.setState({\n effectFileCount: data.data.count,\n large: true,\n pending: false\n })\n return false\n }\n\n const addtions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.additions, 0)\n const deletions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.deletions, 0)\n\n const changedFilesInfo = this.getFileTreeInfo(data.data.detail)\n\n this.setState({\n changedFilesInfo: changedFilesInfo,\n effectFileCount: data.data.count,\n fileDiff: data.data.detail,\n addLine: addtions,\n deleteLine: deletions,\n pending: false\n })\n })\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.setState({ pending: true })\n this.getData(nextProps)\n return false\n }\n if (this.props.childHash !== nextProps.childHash) {\n this.setState({ pending: true })\n this.getData(nextProps)\n return false\n }\n if (this.props.parentHash[0] !== nextProps.parentHash[0]) {\n this.setState({ pending: true })\n this.getData(nextProps)\n return false\n }\n return true\n }\n\n render () {\n const {\n effectFileCount,\n addLine,\n deleteLine,\n fileDiff,\n renderSideBySide,\n pending,\n fileTreeIsOpen,\n fileTreeGridNumber,\n changedFilesInfo,\n diffViwerLayoutUpdateTimestamp,\n large\n } = this.state\n const { classes, intl, childHash, parentHash, currentRepositoryKey } = this.props\n return (\n \n \n \n {intl.formatMessage({ id: 'label.fileModification' })}  \n {pending ? '' : '(' + effectFileCount + ')'}\n \n \n \n \n \n {intl.formatMessage({ id: 'label.allFiles' })} :  \n { !pending\n ? effectFileCount\n : \n }\n \n \n { !pending\n ? '+' + addLine\n : \n }\n \n \n { !pending\n ? deleteLine\n : \n }\n \n \n this.toggleDiffShow(e)}\n >\n {renderSideBySide ? 'inline' : 'side-by-side'}\n \n this.toggleFileTree(e)}\n >\n {fileTreeIsOpen ? intl.formatMessage({ id: 'label.closeFileTree' }) : intl.formatMessage({ id: 'label.openFileTree' })}\n \n \n \n \n \n \n \n this.jumpToAnchor(e)} />\n \n \n {!pending && fileDiff && fileDiff.length > 0 && \n {fileDiff.map((item, index) => \n )}\n }\n {!large && (pending || !fileDiff || !fileDiff.length) && \n \n }\n {large && \n {intl.formatMessage({ id: 'message.diffFileToMany' })}\n }\n \n \n \n )\n }\n}\n\nFileDiffDetail.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired,\n parentHash: PropTypes.array.isRequired,\n childHash: PropTypes.string.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FileDiffDetail)\n )\n )\n )\n)\n","// core component\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Paper from '@material-ui/core/Paper'\nimport Button from '@material-ui/core/Button'\nimport Avatar from '@material-ui/core/Avatar'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { psCaretDown } from '@pgyer/icons'\nimport CommitContainRef from 'APPSRC/components/view/unit/CommitContainRef'\nimport FileDiffDetail from 'APPSRC/components/view/FileDiffDetail'\nimport CommitHashChip from 'APPSRC/components/unit/CommitHashChip'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink, getUserInfo } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = theme => ({\n oneline: {\n display: 'flex',\n alignItems: 'center'\n },\n ml16: {\n marginLeft: theme.spacing(2)\n },\n icon: {\n marginLeft: theme.spacing(1),\n fontSize: theme.spacing(1),\n color: theme.palette.text.main\n },\n transform: {\n transform: 'rotate(180deg)'\n }\n})\n\nconst CommiterAvatar = withStyles(theme => ({\n root: {\n width: theme.spacing(3),\n height: theme.spacing(3)\n }\n}))(Avatar)\n\nclass CommitDetail extends React.Component {\n constructor (props) {\n super(props)\n this.mountedFlag = false\n this.state = {\n currentGroup: props.match.params.groupName ? props.match.params.groupName : '',\n currentRepository: props.match.params.repositoryName ? props.match.params.repositoryName : '',\n commitDetail: {},\n commiterInfo: {\n name: ''\n },\n optionAnchorEl: null,\n parentHash: [],\n parentHashShow: false\n }\n\n this.mountedFlag = false\n }\n\n openOptionPopover (e) {\n this.setState({ optionAnchorEl: e.currentTarget })\n }\n\n closeOptionPopover () {\n this.setState({ optionAnchorEl: null })\n }\n\n componentDidMount () {\n this.mountedFlag = true\n const { closeDrawer } = this.props\n closeDrawer()\n this.getData(this.props, this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // watch current hash\n if (this.props.match.params.hash !== nextProps.match.params.hash) {\n this.getData(nextProps, nextState)\n return false\n }\n // watch repository id\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getData(nextProps, nextState)\n return false\n }\n\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getData(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n copyHash (hash) {\n const { intl } = this.props\n this.copySomething(hash)\n this.setState({ copyHash: intl.formatMessage({ id: 'label.copied' }) })\n }\n\n copySomething (data) {\n const dom = window.document.createElement('input')\n dom.setAttribute('value', data)\n dom.setAttribute('type', 'text')\n window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('copy')\n window.document.body.removeChild(dom)\n }\n\n getData (props, state) {\n if (!props.match.params.hash || !props.currentRepositoryKey || !props.currentRepositoryConfig.repository) {\n return false\n }\n\n RepositoryData.commitDetail({\n repository: props.currentRepositoryKey,\n commitSHA: props.match.params.hash\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n const result = data.data\n if (!result) {\n return false\n }\n if (props.currentRepositoryConfig) {\n const commiterInfo = getUserInfo(props.currentRepositoryConfig.members, result.email)\n const parentHash = result.parent.split(' ')\n this.setState({\n commitDetail: result,\n commiterInfo: commiterInfo,\n parentHash: parentHash\n })\n }\n })\n }\n\n render () {\n const {\n commitDetail,\n commiterInfo,\n currentRepository,\n currentGroup,\n parentHash,\n parentHashShow\n } = this.state\n\n const { classes, currentRepositoryKey, history, intl, match } = this.props\n return (\n \n \n \n \n \n {commitDetail.commit}\n \n   \n \n {commiterInfo.name}  {intl.formatMessage({ id: 'label.editIn' })} \n \n { commitDetail.time && \n \n \n }\n \n \n \n \n {commitDetail.sha && }\n history.push(makeLink(currentGroup, currentRepository, 'files', match.params.hash, ''))}\n >\n {intl.formatMessage({ id: 'label.browserFile' })}\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nCommitDetail.propTypes = {\n match: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n closeDrawer: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n closeDrawer: () => {\n dispatch({ type: 'drawer.expandStatus.close' })\n },\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CommitDetail)\n )\n )\n )\n)\n","// core component\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { psConfirm, psClock } from '@pgyer/icons'\nimport Constants from 'APPSRC/config/Constants'\n\n// helper\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nconst styles = theme => ({\n reviewer: {\n position: 'relative'\n },\n reviewerIcon: {\n marginLeft: '-8px',\n borderRadius: '50%',\n boxSizing: 'border-box',\n width: theme.spacing(4),\n height: theme.spacing(4),\n border: '2px solid ' + theme.palette.background.light + ' !important'\n },\n isReview: {\n right: 0,\n bottom: 0,\n zIndex: '1',\n fontSize: '12px',\n borderRadius: '50%',\n position: 'absolute',\n color: theme.palette.text.light,\n background: theme.palette.background.light,\n border: '2px solid ' + theme.palette.background.light\n },\n reviewed: {\n color: theme.palette.success.main\n }\n})\n\nclass MergeRequestReviewers extends React.Component {\n render () {\n const { repositoryInfo, reviewers, classes } = this.props\n\n return (\n {reviewers.length > 0 && reviewers.map((item, index) => {\n const reviewer = repositoryInfo.members.filter(FilterGenerator.id(item.user))[0]\n\n return (\n \n \n )\n })\n }\n )\n }\n}\n\nMergeRequestReviewers.propTypes = {\n repositoryInfo: PropTypes.object.isRequired,\n reviewers: PropTypes.array.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nexport default withStyles(styles)(\n withRouter((MergeRequestReviewers))\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faArrowRight } from '@fortawesome/free-solid-svg-icons'\nimport { plMerge, plMerged, plForbid, plConfirm } from '@pgyer/icons'\nimport MergeRequestReviewers from 'APPSRC/components/unit/MergeRequestReviewers'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport SmartLink from 'APPSRC/components/unit/SmartLink'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport { makeLink, getUserInfo } from 'APPSRC/helpers/VaribleHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\n// style\nconst styles = theme => ({\n item: {\n padding: theme.spacing(1.5) + 'px ' + theme.spacing(3) + 'px',\n borderTop: '1px solid ' + theme.palette.border\n },\n oneline: {\n lineHeight: theme.spacing(3.5) + 'px'\n },\n title: {\n '& a': {\n color: theme.palette.text.main + ' !important',\n fontWeight: 600\n }\n },\n textMain: {\n '& a': {\n color: theme.palette.text.main + ' !important'\n }\n },\n reviewers: {\n marginBottom: theme.spacing(0.5)\n }\n})\n\nclass MergeRequestItem extends React.Component {\n constructor (props) {\n super(props)\n this.dataDeal()\n }\n\n dataDeal () {\n const { data, repositoryList, history } = this.props\n if (!data && !repositoryList.length) {\n return false\n }\n\n const targetRepository = repositoryList.filter(FilterGenerator.id(data.targetRepository))\n if (targetRepository.length) {\n const repoData = targetRepository[0]\n data.targetRepository = repoData\n const targetLink = makeLink(repoData.group.name, repoData.name, 'commits', encodeURIComponent(data.targetBranch))\n data.targetLink = history.push(targetLink)}>{data.targetBranch}\n const titleLink = makeLink(repoData.group.name, repoData.name, 'mergerequests', data.number)\n data.titleLink = history.push(titleLink)}>{data.title}\n } else {\n data.targetLink = data.targetBranch\n data.titleLink = data.targetBranch\n }\n\n const sourceRepository = repositoryList.filter(FilterGenerator.id(data.sourceRepository))\n if (sourceRepository.length) {\n const repoData = sourceRepository[0]\n data.sourceRepository = repoData\n const sourceLink = makeLink(repoData.group.name, repoData.name, 'commits', encodeURIComponent(data.sourceBranch))\n data.sourceLink = history.push(sourceLink)}>{data.sourceBranch}\n\n data.updater = getUserInfo(repoData.members, data.commit.email).name\n } else {\n data.sourceLink = data.sourceBranch\n if (targetRepository.length) {\n const repoData = targetRepository[0]\n data.updater = getUserInfo(repoData.members, data.commit.email).name\n } else {\n data.updater = data.commit.email\n }\n }\n }\n\n render () {\n const { isRepository, data, classes, intl } = this.props\n const mergeRequestStatus = Constants.mergeRequestStatus\n\n return (\n \n \n {data.titleLink}    \n {data.status === mergeRequestStatus.open && }\n {data.status === mergeRequestStatus.merged && }\n {data.status === mergeRequestStatus.closed && }\n \n \n {!isRepository && data.targetRepository.name}\n !{data.number} · \n \n  \n {data.sourceLink} \n  \n {data.targetLink}\n  · \n \n {data.updater}  \n {intl.formatMessage({ id: 'label.editIn' })}:  \n \n \n \n \n \n \n {data.reviewers.length > 0\n ? \n :  \n }\n \n \n {intl.formatMessage({ id: 'label.updateTime' })}:  \n \n \n \n \n )\n }\n}\n\nMergeRequestItem.propTypes = {\n repositoryList: PropTypes.array.isRequired,\n isRepository: PropTypes.bool.isRequired,\n data: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MergeRequestItem)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport { plSearch, plSortDesc } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport MergeRequestItem from 'APPSRC/components/unit/MergeRequestItem'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n list: {\n marginTop: theme.spacing(3)\n },\n button: {\n marginLeft: theme.spacing(4)\n },\n input: {\n width: theme.spacing(30),\n maxWidth: '100%'\n },\n icon: {\n color: theme.palette.text.light\n },\n transform: {\n transform: 'rotateX(180deg)'\n },\n more: {\n paddingTop: theme.spacing(2)\n }\n})\n\nclass MergeRequest extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n isGlobal: !props.match.params.groupName,\n isRepository: null,\n tabValue: 0,\n keyword: '',\n sortDesc: true,\n page: 1,\n pagesize: 10,\n noMore: false,\n mrList: null,\n relatedRepository: []\n }\n\n this.observed = {\n keyword: ''\n }\n }\n\n componentDidMount () {\n this.getData(this.props, this.state, false)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(this.props.currentGroupConfig) !== JSON.stringify(nextProps.currentGroupConfig)) {\n this.getData(nextProps, nextState, false)\n return false\n }\n\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getData(nextProps, nextState, false)\n return false\n }\n\n if (this.state.page !== nextState.page && !nextState.pending) {\n this.setState({ pending: true })\n this.getData(nextProps, nextState, false)\n return false\n }\n\n if (this.state.sortDesc !== nextState.sortDesc) {\n this.getData(nextProps, nextState, true)\n return false\n }\n\n if (this.state.tabValue !== nextState.tabValue) {\n this.getData(nextProps, nextState, true)\n return false\n }\n\n return true\n }\n\n getData (props, state, reset) {\n if (reset) {\n this.observed.keyword = state.keyword\n this.setState({ pending: true, page: 1, mrList: null })\n }\n\n const data = {\n status: state.tabValue,\n keyword: state.keyword,\n sort: state.sortDesc ? 'desc' : 'asc',\n page: reset ? 1 : state.page,\n pagesize: state.pagesize\n }\n\n if (props.currentRepositoryConfig.repository) {\n data.repository = props.currentRepositoryConfig.repository.id\n RepositoryData.mergeRequests(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.getDataDeal(data, true)\n })\n } else if (props.currentGroupConfig.group) {\n data.group = props.currentGroupConfig.group.id\n GroupData.mergeRequests(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.getDataDeal(data, false)\n })\n } else if (state.isGlobal) {\n RepositoryData.relatedMergeRequests(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.getDataDeal(data, false)\n })\n }\n }\n\n getDataDeal (data, isRepository) {\n if (!data.code) {\n this.setState({\n pending: false,\n isRepository: isRepository,\n mrList: [...(this.state.mrList ? this.state.mrList : []), ...(this.state.isGlobal ? data.data.mergeRequests : data.data)],\n noMore: (this.state.isGlobal ? data.data.mergeRequests.length : data.data.length) < this.state.pagesize,\n relatedRepository: data.data.relatedRepository\n })\n } else {\n this.setState({ mrList: [] })\n }\n }\n\n searchMergeRequests () {\n if (this.observed.keyword !== this.state.keyword) {\n this.getData(this.props, this.state, true)\n }\n }\n\n getTabs () {\n const { isRepository, isGlobal, relatedRepository } = this.state\n const { repositoryList, currentGroupConfig, currentRepositoryConfig, intl } = this.props\n const status = Constants.mergeRequestStatus\n const tabs = []\n tabs[0] = intl.formatMessage({ id: 'label.all' })\n tabs[status.open] = intl.formatMessage({ id: 'message.opened' })\n tabs[status.merged] = intl.formatMessage({ id: 'message.merged' })\n tabs[status.closed] = intl.formatMessage({ id: 'message.closed' })\n\n if (this.observed.keyword) {\n return tabs\n }\n\n const counts = []\n counts[0] = 0\n counts[status.open] = 0\n counts[status.merged] = 0\n counts[status.closed] = 0\n if (isRepository !== null) {\n if (isRepository) {\n counts[status.open] = currentRepositoryConfig.repository.mergeRequestCount.open\n counts[status.merged] = currentRepositoryConfig.repository.mergeRequestCount.merged\n counts[status.closed] = currentRepositoryConfig.repository.mergeRequestCount.closed\n } else {\n if (isGlobal) {\n repositoryList.map((item, index) => {\n relatedRepository.map((repositoryId) => {\n if (item.id === repositoryId) {\n counts[status.open] += item.mergeRequestCount.open\n counts[status.merged] += item.mergeRequestCount.merged\n counts[status.closed] += item.mergeRequestCount.closed\n }\n return true\n })\n return true\n })\n } else {\n repositoryList.map((item, index) => {\n if (item.group && currentGroupConfig.group && item.group.id === currentGroupConfig.group.id) {\n counts[status.open] += item.mergeRequestCount.open\n counts[status.merged] += item.mergeRequestCount.merged\n counts[status.closed] += item.mergeRequestCount.closed\n }\n return true\n })\n }\n }\n counts[0] = counts[status.open] + counts[status.merged] + counts[status.closed]\n }\n\n tabs[0] += '(' + counts[0] + ')'\n tabs[status.open] += '(' + counts[status.open] + ')'\n tabs[status.merged] += '(' + counts[status.merged] + ')'\n tabs[status.closed] += '(' + counts[status.closed] + ')'\n return tabs\n }\n\n render () {\n const { repositoryList, classes, history, intl } = this.props\n const { pending, isRepository, tabValue, sortDesc, page, noMore, mrList } = this.state\n\n return (\n !pending && this.setState({ tabValue: newValue })}\n currentTab={tabValue}\n >\n this.setState({ keyword: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.searchMergeRequests()\n }\n }}\n InputProps={{\n startAdornment: \n }}\n /> \n !pending && this.setState({ sortDesc: !sortDesc })} className={[classes.icon, sortDesc ? '' : classes.transform].join(' ')} icon={plSortDesc} />\n \n \n \n \n { mrList\n ? mrList && mrList.length\n ? \n {mrList.map((item, index) => {\n return ()\n })}\n \n \n \n { noMore\n ? \n : pending\n ? \n \n \n : \n }\n \n \n \n : \n : \n \n \n }\n \n \n \n )\n }\n}\n\nMergeRequest.propTypes = {\n repositoryList: PropTypes.array.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n currentGroupConfig: state.DataStore.currentGroupConfig,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MergeRequest)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plBranch } from '@pgyer/icons'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n title: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(3),\n borderBottom: '1px solid ' + theme.palette.border\n },\n repositorySelect: {\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px',\n overflow: 'hidden'\n },\n branchTitle: {\n lineHeight: theme.spacing(5) + 'px',\n background: theme.palette.background.main,\n padding: '0px ' + theme.spacing(2) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n branchSelect: {\n padding: theme.spacing(2)\n },\n commit: {\n borderTop: '1px solid ' + theme.palette.border\n },\n icon: {\n color: theme.palette.text.light\n },\n errorInfo: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText\n },\n hideError: {\n display: 'none'\n }\n})\n\nclass CreateMergeRequest extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n name: '',\n originRepository: '',\n targetRepository: '',\n originBranch: '',\n targetBranch: '',\n originLastCommit: {},\n targetLastCommit: {},\n targetRepositoryList: [],\n targetRepositoryBranches: [],\n originRepositoryBranches: [],\n originRepositoryInfo: null,\n targetRepositoryInfo: null,\n error: false,\n groupName: props.match.params.groupName ? props.match.params.groupName : '',\n repositoryName: props.match.params.repositoryName ? props.match.params.repositoryName : ''\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryConfig.repository !== undefined &&\n this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getTargetRepository()\n return false\n }\n\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getTargetRepository()\n return false\n }\n\n if (this.props.repositoryList !== nextProps.repositoryList) {\n if (this.state.groupName && !this.state.repositoryName) {\n const groupRepository = nextProps.repositoryList.filter(FilterGenerator.groupName(this.state.groupName))\n if (groupRepository.length > 0) {\n this.getTargetRepository(groupRepository[0].id)\n }\n }\n if (!this.state.groupName && !this.state.repositoryName) {\n if (nextProps.repositoryList.length > 0) {\n this.getInitRepositoryBranches(nextProps.repositoryList[0].id)\n this.getTargetRepository(nextProps.repositoryList[0].id)\n }\n }\n return false\n }\n\n this.props.history.listen(location => {\n // 最新路由的 location 对象,可以通过比较 pathname 是否相同来判断路由的变化情况\n if (location.pathname === '/mergerequests/new') {\n this.setState({\n groupName: '',\n repositoryName: ''\n })\n return false\n }\n })\n\n if (this.state.originRepository !== nextState.originRepository && nextProps.repositoryList.length > 0) {\n if (this.state.groupName && !this.state.repositoryName) {\n const groupRepository = nextProps.repositoryList.filter(FilterGenerator.groupName(nextState.groupName))\n this.getInitRepositoryBranches(nextState.originRepository)\n if (groupRepository.length > 0) {\n this.getTargetRepository(nextState.originRepository)\n }\n } else if (!this.state.repositoryName && !this.state.groupName && !this.state.originRepository) {\n this.getInitRepositoryBranches(nextProps.repositoryList[0].id)\n this.getTargetRepository(nextState.originRepository)\n } else {\n this.getInitRepositoryBranches(nextState.originRepository)\n this.getTargetRepository(nextState.originRepository)\n }\n return false\n }\n\n if (!this.state.originRepository && !this.state.repositoryName && !this.state.groupName && nextProps.repositoryList.length > 0) {\n this.setState({ originRepository: nextProps.repositoryList[0].id })\n return true\n }\n\n if (!this.state.originRepository && !this.state.repositoryName && this.state.groupName && nextProps.repositoryList.length > 0) {\n const groupRepository = nextProps.repositoryList.filter(FilterGenerator.groupName(nextState.groupName))\n if (groupRepository.length) {\n this.getInitRepositoryBranches(groupRepository[0].id)\n }\n return false\n }\n\n return true\n }\n\n componentDidMount () {\n this.getTargetRepository()\n }\n\n getTargetRepository (repositoryKey = '') {\n const { currentRepositoryKey } = this.props\n\n if (!currentRepositoryKey && !repositoryKey) {\n return false\n }\n\n RepositoryData.targetRepository({\n repository: currentRepositoryKey || repositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n let targetRepositoryKey = ''\n const targetRepositoryList = data.data\n targetRepositoryList.map((item) => {\n if (item.forkFlag) {\n targetRepositoryKey = item.rKey\n }\n return true\n })\n if (!targetRepositoryKey) {\n targetRepositoryKey = currentRepositoryKey || repositoryKey\n }\n RepositoryData.branchList({\n repository: targetRepositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n originRepository: currentRepositoryKey || repositoryKey,\n targetRepository: targetRepositoryKey,\n targetRepositoryList: targetRepositoryList,\n targetRepositoryBranches: data.data\n })\n }\n })\n }\n })\n }\n\n getInitRepositoryBranches (repositoryKey) {\n RepositoryData.branchList({\n repository: repositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n originRepository: repositoryKey,\n originRepositoryBranches: data.data,\n error: false\n })\n }\n })\n }\n\n getOriginRepositoryBranches (e) {\n RepositoryData.branchList({\n repository: e.target.value\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n originRepository: e.target.value,\n originRepositoryBranches: data.data,\n error: false,\n originLastCommit: false,\n targetLastCommit: false\n })\n }\n })\n }\n\n getTargetRepositoryBranches (e) {\n RepositoryData.branchList({\n repository: e.target.value\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n targetRepository: e.target.value,\n targetRepositoryBranches: data.data,\n error: false,\n targetLastCommit: false\n })\n }\n })\n }\n\n selectOriginBranch (e) {\n const { currentRepositoryKey, repositoryList } = this.props\n const { originRepository } = this.state\n RepositoryData.lastCommitLog({\n ref: e.target.value,\n repository: currentRepositoryKey || originRepository\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const originRepositoryInfo = originRepository ? repositoryList.filter(FilterGenerator.id(originRepository)) : null\n this.setState({\n originLastCommit: data.data,\n originBranch: e.target.value,\n originRepositoryInfo: originRepositoryInfo[0],\n error: false\n })\n }\n })\n }\n\n selectTargetBranch (e) {\n const { repositoryList } = this.props\n const { targetRepository } = this.state\n RepositoryData.lastCommitLog({\n ref: e.target.value,\n repository: targetRepository\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const targetRepositoryInfo = targetRepository ? repositoryList.filter(FilterGenerator.id(targetRepository)) : null\n this.setState({\n targetLastCommit: data.data,\n targetBranch: e.target.value,\n targetRepositoryInfo: targetRepositoryInfo[0],\n error: false\n })\n }\n })\n }\n\n GoMergeRequestDetail () {\n const { history } = this.props\n const { originRepository, targetRepository, originBranch, targetBranch, targetRepositoryInfo } = this.state\n if (originRepository === targetRepository && originBranch === targetBranch) {\n this.setState({\n error: true\n })\n } else {\n history.push(makeLink(targetRepositoryInfo.group.name,\n targetRepositoryInfo.name,\n 'mergerequests',\n 'detail',\n originRepository,\n encodeURIComponent(originBranch),\n targetRepository,\n encodeURIComponent(targetBranch)\n ))\n }\n }\n\n render () {\n const { currentRepositoryConfig, classes, intl, repositoryList } = this.props\n const {\n targetRepositoryList,\n targetRepositoryBranches,\n originLastCommit,\n targetLastCommit,\n originBranch,\n targetBranch,\n originRepository,\n targetRepository,\n error,\n repositoryName,\n groupName,\n originRepositoryBranches,\n originRepositoryInfo,\n targetRepositoryInfo\n } = this.state\n let groupRepository = []\n if (!repositoryName && groupName) {\n groupRepository = repositoryList.filter(FilterGenerator.groupName(groupName))\n }\n return (\n \n { intl.formatMessage({ id: 'label.createMergeRequest' }) }\n \n \n \n \n \n {intl.formatMessage({ id: 'label.sourceBranch' })}\n \n \n this.getOriginRepositoryBranches(e)}\n onClick={e => !originRepository && this.props.history.push(makeLink('repositories/new'))}\n >\n { repositoryName && currentRepositoryConfig.repository &&\n \n {currentRepositoryConfig.repository.group.name}/{currentRepositoryConfig.repository.name}\n \n }\n { !!groupRepository.length && groupName && groupRepository.map((item, index) => {\n if (item.group.name !== groupName) {\n return null\n }\n\n return (\n {item.group.displayName + '/' + item.displayName}\n )\n })\n }\n { groupRepository.length === 0 && originRepository.length === 0 && groupName && {intl.formatMessage({ id: 'label.createRepository' })} }\n {\n !groupName && !repositoryName && !!originRepository.length && !!repositoryList.length && repositoryList.map((item, index) => {\n return (\n {item.group.displayName + '/' + item.displayName}\n )\n })\n }\n {(!originRepository.length || !repositoryList.length) && {intl.formatMessage({ id: 'label.createRepository' })}}\n \n \n \n this.selectOriginBranch(e)}\n >\n {intl.formatMessage({ id: 'label.branch' })}\n { currentRepositoryConfig.branches && currentRepositoryConfig.branches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n {\n !currentRepositoryConfig.branches && originRepositoryBranches && originRepositoryBranches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n \n \n \n { (originRepositoryInfo || currentRepositoryConfig.repository) && originLastCommit && originBranch && \n \n \n }\n \n \n \n \n {intl.formatMessage({ id: 'label.targetBranch' })}\n \n \n this.getTargetRepositoryBranches(e)}\n >\n { targetRepositoryList && targetRepositoryList.map((item, index) => {\n return (\n {item.name}\n )\n })\n }\n {\n targetRepositoryList.length === 0 && {intl.formatMessage({ id: 'label.createRepository' })}\n }\n \n \n \n this.selectTargetBranch(e)}\n >\n {intl.formatMessage({ id: 'label.branch' })}\n { targetRepositoryBranches && targetRepositoryBranches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n \n \n \n { (targetRepositoryInfo || currentRepositoryConfig.repository) && targetLastCommit && targetBranch && \n \n \n }\n \n \n {error && \n \n \n \n {intl.formatMessage({ id: 'message.selectDifferentBranch' })}\n \n \n \n }\n \n this.GoMergeRequestDetail()}\n >\n {intl.formatMessage({ id: 'label.compareBranch' })}\n \n \n \n \n \n )\n }\n}\n\nCreateMergeRequest.propTypes = {\n repositoryList: PropTypes.array.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CreateMergeRequest)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport FormControl from '@material-ui/core/FormControl'\nimport Select from '@material-ui/core/Select'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Typography from '@material-ui/core/Typography'\nimport FileDiffExpansionPanel from 'APPSRC/components/unit/FileDiffExpansionPanel'\nimport FileBrowser from 'APPSRC/components/unit/FileBrowser'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n copyHash: {\n minWidth: theme.spacing(1),\n height: theme.spacing(4),\n width: theme.spacing(4),\n padding: theme.spacing(0),\n marginBottom: theme.spacing(0.5)\n },\n commitLog: {\n paddingRight: 0\n },\n changedFileList: {\n width: '100%',\n backgroundColor: theme.palette.background.paper\n },\n commitAvatar: {\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(0.5),\n marginRight: theme.spacing(1)\n },\n commiterName: {\n paddingTop: theme.spacing(0.5)\n },\n add: {\n color: theme.palette.success.main,\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(2)\n },\n delete: {\n color: theme.palette.error.main,\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1)\n },\n changedFile: {\n color: theme.palette.primary.main,\n paddingBottom: theme.spacing(1),\n backgroundColor: 'transparent',\n fontSize: '1.25rem',\n '&:hover': {\n backgroundColor: 'transparent',\n boxShadow: 'none'\n }\n },\n typography: {\n padding: theme.spacing(2)\n },\n paper: {\n minWidth: theme.spacing(38),\n width: '100%'\n },\n expansionMargin0: {\n margin: 0\n },\n content: {\n zIndex: theme.spacing(1),\n backgroundColor: theme.palette.background.light\n },\n stickyPosition: {\n position: 'sticky',\n top: theme.spacing(8),\n zIndex: theme.spacing(1),\n backgroundColor: theme.palette.background.light\n },\n diffInfoSticky: {\n top: '105px',\n position: 'sticky',\n marginTop: '-24px',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n height: theme.spacing(10) + 1 + 'px',\n zIndex: theme.spacing(1),\n backgroundColor: theme.palette.background.light\n },\n and: {\n lineHeight: theme.spacing(4) + 'px'\n },\n fileTreeHide: {\n display: 'none'\n },\n fileTreeSticky: {\n position: 'sticky',\n top: '174px',\n maxHeight: (window.innerHeight - 174) + 'px'\n },\n fileDiffPanel: {\n marginBottom: theme.spacing(3),\n '& > div > div:first-child': {\n top: '186px'\n }\n }\n})\n\nclass MergeRequestDiff extends React.Component {\n constructor (props) {\n super(props)\n const { latestVersion, baseVersion } = this.props\n this.state = {\n diffViwerLayoutUpdateTimestamp: 0,\n renderSideBySide: true,\n fileTreeIsOpen: false,\n fileTreeGridNumber: 3,\n startHash: latestVersion,\n endHash: baseVersion\n }\n }\n\n toggleDiffShow () {\n this.setState({\n renderSideBySide: !this.state.renderSideBySide,\n diffViwerLayoutUpdateTimestamp: new Date().getTime()\n })\n }\n\n componentDidMount () {\n const { latestVersion, baseVersion } = this.props\n this.setState({\n startHash: latestVersion,\n endHash: baseVersion\n })\n }\n\n toggleFileTree () {\n this.setState({\n fileTreeIsOpen: !this.state.fileTreeIsOpen,\n renderSideBySide: this.state.fileTreeIsOpen,\n diffViwerLayoutUpdateTimestamp: new Date().getTime()\n })\n }\n\n jumpToAnchor (hash) {\n window.location.href = window.location.href.split('#')[0] + '#' + hash\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.startHash !== nextState.startHash) {\n this.props.getVersionDiff(nextProps.sourceRepository, nextProps.targetRepository, nextState.startHash, this.state.endHash, nextProps)\n return false\n }\n\n if (this.state.endHash !== nextState.endHash) {\n this.props.getVersionDiff(nextProps.sourceRepository, nextProps.targetRepository, this.state.startHash, nextState.endHash, nextProps)\n return false\n }\n\n return true\n }\n\n changeHash (e, position) {\n const val = e.target.value\n if (position === 'start') {\n this.setState({\n startHash: val\n })\n } else {\n this.setState({\n endHash: val\n })\n }\n }\n\n render () {\n const {\n classes,\n intl,\n changedFilesInfo,\n fileDiff,\n pending,\n effectFileCount,\n addLine,\n deleteLine,\n showVersionCompare,\n versionList,\n baseVersionList,\n baseVersion,\n sourceRepository,\n latestVersion\n } = this.props\n const {\n renderSideBySide,\n fileTreeIsOpen,\n fileTreeGridNumber,\n diffViwerLayoutUpdateTimestamp,\n startHash,\n endHash\n } = this.state\n return (\n \n {showVersionCompare && \n \n \n \n this.changeHash(e, 'start')}\n >\n { versionList && versionList.map((item, index) => {\n return (\n \n {index === 0\n ? intl.formatMessage({ id: 'label.lastModified' })\n : intl.formatMessage(\n { id: 'label.lastModified_N' },\n { n: versionList.length - index }\n )\n }\n \n \n {'-' + item.sha.substr(0, 8)}\n \n )\n })\n }\n \n \n \n {intl.formatMessage({ id: 'label.and' })}\n \n \n this.changeHash(e, 'end')}\n >\n { baseVersionList && baseVersionList.map((item, index) => {\n return (\n \n {index === 0\n ? 'Base Line'\n : intl.formatMessage(\n { id: 'label.lastModified_N' },\n { n: baseVersionList.length - index }\n )\n }\n \n \n {'-' + item.sha.substr(0, 8)}\n \n )\n })\n }\n \n \n \n \n \n }\n \n \n {intl.formatMessage({ id: 'label.allFiles' })} :  \n { !pending\n ? effectFileCount\n : \n }\n \n \n { !pending\n ? '+' + addLine\n : \n }\n \n \n { !pending\n ? deleteLine\n : \n }\n \n \n this.toggleDiffShow(e)}\n >\n {renderSideBySide ? 'inline' : 'side-by-side'}\n \n this.toggleFileTree(e)}\n >\n {fileTreeIsOpen ? intl.formatMessage({ id: 'label.closeFileTree' }) : intl.formatMessage({ id: 'label.openFileTree' })}\n \n \n \n \n \n \n this.jumpToAnchor(e)} />\n \n \n \n {!pending && fileDiff\n ? fileDiff.map((item, index) => \n \n )\n : \n \n }\n \n \n \n \n )\n }\n}\n\nMergeRequestDiff.propTypes = {\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n changedFilesInfo: PropTypes.array.isRequired,\n fileDiff: PropTypes.array.isRequired,\n pending: PropTypes.bool.isRequired,\n effectFileCount: PropTypes.number.isRequired,\n addLine: PropTypes.number.isRequired,\n deleteLine: PropTypes.number.isRequired,\n showVersionCompare: PropTypes.bool.isRequired,\n versionList: PropTypes.array,\n latestVersion: PropTypes.string,\n baseVersion: PropTypes.string,\n baseVersionList: PropTypes.array,\n getVersionDiff: PropTypes.func,\n sourceRepository: PropTypes.string,\n targetRepository: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n // repositoryList: state.DataStore.repositoryList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MergeRequestDiff)\n )\n )\n)\n","// core component\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport Button from '@material-ui/core/Button'\nimport Avatar from '@material-ui/core/Avatar'\nimport Divider from '@material-ui/core/Divider'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plMerge, plCheck, plMerged, plForbid, plConfirm, plAddAlt, plTrash } from '@pgyer/icons'\nimport MergeRequestDiff from 'APPSRC/components/unit/MergeRequestDiff'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport ActivityItem from 'APPSRC/components/unit/ActivityItem'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport Member from 'APPSRC/components/unit/Member'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// helper\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n createMRTitle: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(2),\n borderBottom: '1px solid ' + theme.palette.border\n },\n activityItem: {\n display: 'flex',\n position: 'relative',\n alignItems: 'center',\n height: theme.spacing(8),\n padding: '0px ' + theme.spacing(2) + 'px',\n '& > svg:first-child': {\n padding: '12px',\n borderRadius: '50%',\n marginRight: theme.spacing(2),\n color: theme.palette.primary.main,\n border: '1px solid ' + theme.palette.border,\n width: theme.spacing(5),\n height: theme.spacing(5),\n boxSizing: 'border-box'\n },\n '& > div:first-child': {\n width: theme.spacing(5),\n height: theme.spacing(5),\n marginRight: theme.spacing(2)\n }\n },\n activityItemLine: {\n top: '-12px',\n position: 'absolute',\n left: theme.spacing(4.5),\n height: theme.spacing(3),\n borderLeft: '1px solid ' + theme.palette.border\n },\n hideInput: {\n display: 'none'\n },\n tab: {\n marginTop: theme.spacing(3)\n },\n tabHeader: {\n position: 'sticky',\n top: theme.spacing(8),\n zIndex: 9,\n borderBottom: '1px solid ' + theme.palette.border\n },\n mergeRequestInfo: {\n border: 0\n },\n description: {\n padding: theme.spacing(2) + 'px'\n },\n button: {\n margin: theme.spacing(2) + 'px 0px'\n },\n icon: {\n color: theme.palette.text.light\n },\n assigned: {\n color: theme.palette.primary.main\n },\n members: {\n overflowY: 'auto',\n borderRadius: '4px',\n boxSizing: 'border-box',\n maxHeight: theme.spacing(27.5),\n border: '1px solid ' + theme.palette.border\n },\n member: {\n cursor: 'pointer',\n borderBottom: '1px solid ' + theme.palette.border,\n padding: theme.spacing(1.5) + 'px ' + theme.spacing(2) + 'px',\n '&:last-child': {\n border: 'none'\n },\n '&:hover': {\n background: theme.palette.background.main\n }\n },\n reviewersTitle: {\n height: theme.spacing(5),\n boxSizing: 'content-box',\n padding: '0px ' + theme.spacing(2) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n activityTitle: {\n marginBottom: theme.spacing(2)\n },\n reviewersMenuItem: {\n justifyContent: 'space-between',\n height: theme.spacing(5)\n },\n divider: {\n margin: theme.spacing(1) + 'px 0px'\n },\n deleteReviewer: {\n color: theme.palette.error.main\n },\n reviewersMember: {\n padding: theme.spacing(3) + 'px ' + theme.spacing(2) + 'px',\n height: theme.spacing(10)\n },\n noReviewers: {\n fontSize: '14px',\n textAlign: 'center',\n lineHeight: theme.spacing(10) + 'px'\n },\n cancel: {\n marginRight: theme.spacing(2)\n }\n})\n\nconst CommiterAvatar = withStyles(theme => ({\n root: {\n width: theme.spacing(3),\n height: theme.spacing(3)\n }\n}))(Avatar)\n\nclass MergeRequestDetail extends React.Component {\n constructor (props) {\n super(props)\n\n const params = props.match.params\n this.state = {\n mid: params.mid ? params.mid : '',\n mergeRequestInfo: {\n id: '',\n sourceRepository: params.sourceRepository ? params.sourceRepository : '',\n sourceBranch: params.sourceBranch ? decodeURIComponent(params.sourceBranch) : '',\n targetRepository: params.targetRepository ? params.targetRepository : '',\n targetBranch: params.targetBranch ? decodeURIComponent(params.targetBranch) : ''\n },\n sourceRepositoryInfo: null,\n targetRepositoryInfo: null,\n requesterInfo: null,\n handlerInfo: null,\n title: params.sourceBranch ? decodeURIComponent(params.sourceBranch) : '',\n description: '',\n tabValue: 0,\n pending: true,\n changedFiles: [],\n fileDiff: [],\n effectFileCount: 0,\n addLine: 0,\n deleteLine: 0,\n commits: [],\n activities: [],\n showCommitInput: false,\n mergeMessage: '',\n usingSquash: false,\n error: {},\n hasMergeConflict: false,\n mergeStatus: 'open',\n versionList: [],\n latestVersion: '',\n baseVersion: '',\n submitMergeRequest: false,\n mergePending: false,\n\n reviewers: [],\n reviewersMenu: null,\n updateReviewersPending: false\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'message',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'message',\n passPattern: /^.{1,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n }\n ])\n this.getVersionDiff = this.getVersionDiff.bind(this)\n }\n\n componentDidMount () {\n this.props.closeDrawer()\n this.state.mid ? this.getDetailData(this.props, this.state) : this.getChangeData(this.props, this.state)\n if (this.state.mid) {\n this.getVersionList(this.state)\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.repositoryList.length !== nextProps.repositoryList.length) {\n this.state.mid ? this.getDetailData(nextProps, nextState) : this.getChangeData(nextProps, nextState)\n this.getVersionList(nextState)\n return false\n }\n\n if (JSON.stringify(this.state.mergeRequestInfo) !== JSON.stringify(nextState.mergeRequestInfo)) {\n if (this.state.updateReviewersPending) {\n this.getActivities(this.state.mergeRequestInfo.targetRepository, this.state.mergeRequestInfo.id)\n return false\n }\n\n this.getChangeData(nextProps, nextState)\n this.getVersionList(nextState)\n return false\n }\n if (this.props.match.params.mid !== nextProps.match.params.mid) {\n this.setState({ mid: nextProps.match.params.mid })\n return false\n }\n if (this.state.mid !== nextState.mid) {\n this.getDetailData(nextProps, nextState)\n this.getVersionList(nextState)\n return false\n }\n if (this.state.mergeStatus !== nextState.mergeStatus) {\n this.getDetailData(nextProps, nextState)\n return false\n }\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getDetailData(nextProps, nextState)\n return false\n }\n return true\n }\n\n getVersionDiff (sourceRepository, targetRepository, original, modified, props) {\n RepositoryData.fileChanges({\n versionCompare: true,\n repository: sourceRepository,\n original: original,\n targetRepository: targetRepository,\n modified: modified\n }).then(NetworkHelper.withEventdispatcher(props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const addtions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.additions, 0)\n const deletions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.deletions, 0)\n this.setState({\n pending: false,\n changedFiles: this.getFileTreeInfo(data.data.detail),\n fileDiff: data.data.detail,\n effectFileCount: data.data.count,\n addLine: addtions,\n deleteLine: deletions\n })\n }\n })\n }\n\n getChangeData (props, state) {\n const { repositoryList } = props\n const { id, sourceRepository, sourceBranch, targetRepository, targetBranch } = state.mergeRequestInfo\n if (!sourceRepository || !sourceBranch || !targetRepository || !targetBranch || !repositoryList.length) {\n return false\n }\n\n if (id) {\n this.getRepositories(props, state, false)\n } else {\n this.setState({\n submitMergeRequest: true\n })\n this.getRepositories(props, state, true)\n }\n RepositoryData.fileChanges({\n mergeRequest: id,\n repository: sourceRepository,\n original: sourceBranch,\n targetRepository: targetRepository,\n modified: targetBranch\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const addtions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.additions, 0)\n const deletions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.deletions, 0)\n this.setState({\n pending: false,\n changedFiles: this.getFileTreeInfo(data.data.detail),\n fileDiff: data.data.detail,\n effectFileCount: data.data.count,\n addLine: addtions,\n deleteLine: deletions\n })\n }\n\n RepositoryData.mergeRequestCommits({\n mergeRequest: id,\n sourceRepository: sourceRepository,\n sourceBranch: sourceBranch,\n targetRepository: targetRepository,\n targetBranch: targetBranch\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n commits: data.data\n })\n }\n })\n\n if (this.state.mid) {\n this.getActivities(targetRepository, id)\n }\n })\n }\n\n getActivities (targetRepository, id) {\n RepositoryData.activities({\n repository: targetRepository,\n mergeRequest: id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n activities: data.data,\n updateReviewersPending: false\n })\n }\n })\n }\n\n getFileTreeInfo (data) {\n const fileChangedInfo = []\n for (let key = 0; key < data.length; key++) {\n const item = data[key]\n if (item.modified && item.modified.name) {\n fileChangedInfo.push({\n name: item.modified.name,\n add: item.diff.additions,\n delete: Math.abs(item.diff.deletions),\n hash: item.modified.sha\n })\n }\n }\n return fileChangedInfo\n }\n\n // if the user is creating the mr, then createMergeRequest = true\n getRepositories (props, state, createMergeRequest = false) {\n const { repositoryList } = props\n const { mergeRequestInfo } = state\n\n const target = repositoryList.filter(FilterGenerator.id(mergeRequestInfo.targetRepository))[0]\n this.setState({\n sourceRepositoryInfo: createMergeRequest ? repositoryList.filter(FilterGenerator.id(mergeRequestInfo.sourceRepository))[0] : state.mergeRequestInfo.sourceRepoInfo,\n targetRepositoryInfo: target,\n requesterInfo: mergeRequestInfo.submitter,\n handlerInfo: mergeRequestInfo.handler ? target.members.filter(FilterGenerator.id(mergeRequestInfo.handler))[0] : null\n })\n }\n\n createMergeRequest () {\n const { mergeRequestInfo, title, description, targetRepositoryInfo, reviewers, mergePending } = this.state\n const { history, intl } = this.props\n if (mergePending) {\n return false\n }\n\n this.setState({ mergePending: true })\n RepositoryData.createMergeRequest({\n sourceRepository: mergeRequestInfo.sourceRepository,\n sourceBranch: mergeRequestInfo.sourceBranch,\n targetRepository: mergeRequestInfo.targetRepository,\n targetBranch: mergeRequestInfo.targetBranch,\n title: title,\n description: description,\n reviewers: reviewers.join(',')\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ mergePending: false })\n if (!data.code) {\n this.setState({\n mid: data.data.id\n })\n\n history.push(makeLink(targetRepositoryInfo.group.name,\n targetRepositoryInfo.name,\n 'mergerequests',\n data.data.id\n ))\n } else if (data.code === 0x0406) {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.mergeRequestExists' }), 2\n )\n )\n } else if (data.code === 0x040F) {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.branchProteced' }), 2\n )\n )\n } else {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.createMergeRequestFail' }), 2\n )\n )\n }\n })\n }\n\n getDetailData (props, state) {\n const { currentRepositoryKey } = props\n const { mid } = state\n if (!mid || !currentRepositoryKey) {\n return false\n }\n\n RepositoryData.mergeRequestDetail({\n repository: currentRepositoryKey,\n mid: mid\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n mergeRequestInfo: data.data,\n reviewers: data.data.reviewers.map(item => item.user)\n })\n }\n })\n }\n\n getVersionList (state) {\n const { mergeRequestInfo } = state\n if (!mergeRequestInfo.id) {\n return false\n }\n\n RepositoryData.mergeRequestVersionList({\n mergeRequest: mergeRequestInfo.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n versionList: data.data.mergeVersionList || [],\n latestVersion: data.data.mergeVersionList.length > 0 ? data.data.mergeVersionList[0].sha : '',\n baseVersion: data.data.baseVersion,\n baseVersionList: data.data.baseVersionList\n })\n }\n })\n }\n\n checkMergeType () {\n const { mergeRequestInfo, mergeMessage, usingSquash, showCommitInput } = this.state\n const { intl } = this.props\n if (!mergeRequestInfo.id && (!this.checkInput() && showCommitInput)) {\n return false\n }\n\n this.setState({ mergePending: true })\n RepositoryData.checkMergeType({\n mergeRequest: mergeRequestInfo.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n if (data.data.canBeFastForward) {\n this.mergeBranch(this.props, this.state, '', false)\n } else {\n this.setState({\n showCommitInput: true\n })\n if (mergeMessage) {\n this.mergeBranch(this.props, this.state, mergeMessage, usingSquash)\n } else {\n this.setState({\n error: {\n mergeMessage: intl.formatMessage({ id: 'message.error._S_empty' }, { s: this.props.intl.formatMessage({ id: 'label.mergeMessage' }) })\n },\n mergePending: false\n })\n return false\n }\n }\n } else {\n this.setState({ mergePending: false })\n }\n })\n }\n\n mergeBranch (props, state, message, usingSquash) {\n const { mergeRequestInfo } = state\n const { intl } = this.props\n if (!mergeRequestInfo.id) {\n return false\n }\n\n RepositoryData.mergeBranch({\n message: message,\n mergeRequest: mergeRequestInfo.id,\n usingSquash: usingSquash\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ mergePending: false })\n if (!data.code) {\n if (data.data.conflict) {\n this.setState({\n hasMergeConflict: true,\n mergeStatus: 'conflict',\n showCommitInput: false\n })\n } else {\n this.setState({\n mergeStatus: 'merged',\n showCommitInput: false\n })\n }\n } else if (data.code === 0x0405) {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.userNotReview' }), 2\n )\n )\n } else if (data.code === 0x040F) {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.branchProteced' }), 2\n )\n )\n } else {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.mergeFail' }), 2\n )\n )\n }\n })\n }\n\n closeMergeRequest () {\n const { intl } = this.props\n if (!this.state.mergeRequestInfo) {\n return false\n }\n\n RepositoryData.mergeRequestClose({\n mergeRequest: this.state.mergeRequestInfo.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n mergeStatus: 'closed',\n showCommitInput: false\n })\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.closed' }), 0))\n }\n })\n }\n\n assignReviewer (isCreateMR, reviewer) {\n const { updateReviewersPending, mergeRequestInfo, reviewers } = this.state\n const { intl } = this.props\n if (updateReviewersPending || !reviewer || (!isCreateMR && !mergeRequestInfo.id)) {\n return false\n }\n\n if (isCreateMR) {\n reviewers.includes(reviewer) ? this.deleteReviewer(isCreateMR, reviewer) : this.setState({ reviewers: [reviewer] })\n } else {\n if (reviewers.includes(reviewer)) {\n return false\n }\n\n if (reviewers.length && this.isReview(reviewers[0])) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.reviewedCanNotAssign' }), 1))\n return false\n }\n\n this.setState({ updateReviewersPending: true })\n RepositoryData.assignReviewer({\n id: mergeRequestInfo.id,\n reviewer: reviewer\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ reviewers: [reviewer] })\n this.getDetailData(this.props, this.state)\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n } else {\n this.setState({ updateReviewersPending: false })\n data.code === 0x0405 && this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.reviewedCanNotAssign' }), 1))\n }\n })\n }\n }\n\n deleteReviewer (isCreateMR, reviewer) {\n const { updateReviewersPending, mergeRequestInfo, reviewers } = this.state\n const { intl } = this.props\n if (updateReviewersPending || !reviewer || (!isCreateMR && !mergeRequestInfo.id)) {\n return false\n }\n\n if (isCreateMR) {\n this.setState({ reviewers: reviewers.filter(item => item !== reviewer) })\n } else {\n if (this.isReview(reviewer)) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.reviewedCanNotDelete' }), 1))\n return false\n }\n\n this.setState({ updateReviewersPending: true })\n RepositoryData.deleteReviewer({\n id: mergeRequestInfo.id,\n reviewer: reviewer\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ reviewers: reviewers.filter(item => item !== reviewer) })\n this.getDetailData(this.props, this.state)\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.deleted' }), 0))\n } else {\n this.setState({ updateReviewersPending: false })\n data.code === 0x0405 && this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.reviewedCanNotDelete' }), 1))\n }\n })\n }\n }\n\n mergeRequestReview () {\n const { mergeRequestInfo, updateReviewersPending } = this.state\n const { intl } = this.props\n if (updateReviewersPending || !mergeRequestInfo.id) {\n return false\n }\n\n this.setState({ updateReviewersPending: true })\n RepositoryData.mergeRequestReview({\n id: mergeRequestInfo.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ updateReviewersPending: false })\n this.getDetailData(this.props, this.state)\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.approved' }), 0))\n }\n })\n }\n\n isReview (reviewer) {\n const { mergeRequestInfo } = this.state\n if (!mergeRequestInfo.id) {\n return false\n }\n\n reviewer = mergeRequestInfo.reviewers.filter(item => item.user === reviewer)\n return reviewer.length ? reviewer[0].isReview : false\n }\n\n getTabs () {\n const { intl } = this.props\n const { changedFiles, commits, activities } = this.state\n const tabs = []\n tabs.push(intl.formatMessage({ id: 'label.codeDiff' }) + '(' + changedFiles.length + ')')\n tabs.push(intl.formatMessage({ id: 'label.commitActivity' }) + '(' + commits.length + ')')\n if (this.state.mid) {\n tabs.push(intl.formatMessage({ id: 'label.mergeRequestActivity' }) + '(' + activities.length + ')')\n }\n\n return tabs\n }\n\n render () {\n const { currentUserInfo, history, classes, intl } = this.props\n const {\n mergeRequestInfo,\n sourceRepositoryInfo,\n targetRepositoryInfo,\n requesterInfo,\n handlerInfo,\n title,\n description,\n tabValue,\n pending,\n changedFiles,\n fileDiff,\n effectFileCount,\n addLine,\n deleteLine,\n commits,\n activities,\n showCommitInput,\n mergeMessage,\n usingSquash,\n hasMergeConflict,\n versionList,\n latestVersion,\n baseVersion,\n baseVersionList,\n submitMergeRequest,\n reviewers,\n reviewersMenu\n } = this.state\n return (\n {\n !this.state.mid && (sourceRepositoryInfo || submitMergeRequest) && \n \n \n { intl.formatMessage({ id: 'label.createMergeRequest' }) }\n \n \n {intl.formatMessage(\n { id: 'message.from_S_Merge_S' },\n {\n s1: sourceRepositoryInfo.group.name + '/' + sourceRepositoryInfo.name + ':' + mergeRequestInfo.sourceBranch,\n s2: targetRepositoryInfo.group.name + '/' + targetRepositoryInfo.name + ':' + mergeRequestInfo.targetBranch\n }\n )}\n \n \n \n \n \n \n {intl.formatMessage({ id: 'label.title' })}\n \n this.setState({ title: e.target.value })} />\n \n {intl.formatMessage({ id: 'label.description' })}\n \n this.setState({ description: e.target.value })} />\n \n \n \n \n \n {intl.formatMessage({ id: 'message.assignReviewerTitle' })}\n \n \n {targetRepositoryInfo.members.map((item, index) => {\n if (item.deleteFlag || item.role < UAC.Role.DEVELOPER) {\n return false\n }\n\n return this.assignReviewer(true, item.id)}>\n \n {reviewers.includes(item.id) && }\n \n })\n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n {\n this.state.mid && mergeRequestInfo.id && \n \n \n {mergeRequestInfo.title}    \n {mergeRequestInfo.status === Constants.mergeRequestStatus.open &&     }\n {mergeRequestInfo.status === Constants.mergeRequestStatus.merged &&     }\n {mergeRequestInfo.status === Constants.mergeRequestStatus.closed &&     }\n \n {mergeRequestInfo.description && {mergeRequestInfo.description}}\n \n {mergeRequestInfo.status === Constants.mergeRequestStatus.open && \n \n     \n {reviewers.includes(currentUserInfo.id) && !this.isReview(currentUserInfo.id)\n ? \n : \n }\n \n \n }\n \n \n \n this.setState({ mergeMessage: e.target.value })}\n />\n \n \n this.setState({ usingSquash: !this.state.usingSquash })}\n name='usingSquash'\n color='primary'\n />\n }\n label='使用Squash'\n />\n \n {\n hasMergeConflict && \n \n {intl.formatMessage({ id: 'message.mergeConflictTitle' })}  \n \n \n \n {intl.formatMessage({ id: 'message.mergeConflictTip1' })}\n \n git fetch origin\n \n \n git checkout -b {mergeRequestInfo.sourceBranch} origin/ {mergeRequestInfo.sourceBranch}\n \n \n \n {intl.formatMessage({ id: 'message.mergeConflictTip2' })}\n \n \n {intl.formatMessage({ id: 'message.mergeConflictTip3' })}\n \n git fetch origin\n \n \n git fetch origin\n \n \n git checkout origin/{mergeRequestInfo.targetBranch}\n \n \n git merge --no-ff {mergeRequestInfo.sourceBranch}\n \n \n \n {intl.formatMessage({ id: 'message.mergeConflictTip4' })}\n \n git push origin {mergeRequestInfo.targetBranch}\n \n \n \n }\n \n \n \n }\n { !pending\n ? \n \n \n this.setState({ tabValue: newValue })} currentTab={tabValue}> \n \n \n {\n tabValue === 0 && \n }\n {\n tabValue === 1 && \n {commits.map((item, index) => )\n }\n \n }\n {\n tabValue === 2 && activities.map((item, key) => {\n return \n })\n }\n \n \n {this.state.mid && mergeRequestInfo.id && \n \n \n {intl.formatMessage({ id: 'label.reviewer' })}\n {mergeRequestInfo.status === Constants.mergeRequestStatus.open && \n this.setState({ reviewersMenu: e.currentTarget })} icon={plAddAlt} />\n this.setState({ reviewersMenu: null })}\n >\n \n {intl.formatMessage({ id: 'message.selectReviewer' })}\n \n {targetRepositoryInfo.members && targetRepositoryInfo.members.map((item, index) => {\n if (item.deleteFlag || item.role < UAC.Role.DEVELOPER) {\n return false\n }\n\n return {\n this.setState({ reviewersMenu: null })\n this.assignReviewer(false, item.id)\n }}>\n   \n {reviewers.includes(item.id) && }\n \n })\n }\n \n {\n this.setState({ reviewersMenu: null })\n this.deleteReviewer(false, reviewers[0])\n }}>\n   \n {intl.formatMessage({ id: 'message.deleteReviewer' })}\n \n \n \n }\n \n \n {reviewers.length > 0\n ? reviewers.map((item, index) => {\n const isReview = this.isReview(item)\n return \n \n \n \n })\n : \n {intl.formatMessage({ id: 'message.notSelectReviewers' })}\n \n }\n \n \n {intl.formatMessage({ id: 'label.activity' })}\n \n \n \n \n {intl.formatMessage({ id: 'label.requestMerge' })}:  \n {sourceRepositoryInfo.group.displayName}/{sourceRepositoryInfo.displayName}/{mergeRequestInfo.sourceBranch} -> {targetRepositoryInfo.group.displayName}/{targetRepositoryInfo.displayName}/{mergeRequestInfo.targetBranch}\n \n \n \n {requesterInfo.name}  \n {intl.formatMessage({ id: 'label.requestCreated' })}:  \n \n
\n \n { mergeRequestInfo.status !== Constants.mergeRequestStatus.open && \n \n {handlerInfo.name}  \n {intl.formatMessage({ id: mergeRequestInfo.status === Constants.mergeRequestStatus.merged ? 'label.requestMerged' : 'label.requestClosed' })}:  \n \n
\n \n }\n \n \n \n }\n \n : \n \n \n }\n \n )\n }\n}\n\nMergeRequestDetail.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n closeDrawer: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n repositoryList: state.DataStore.repositoryList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) },\n closeDrawer: () => dispatch({ type: 'drawer.expandStatus.close' })\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MergeRequestDetail)\n )\n )\n )\n)\n","import React from 'react'\nimport { Switch, Route, withRouter } from 'react-router-dom'\n\n// components\nimport UserInfo from 'APPSRC/components/view/UserInfo'\n\nimport UserSettingSSHKey from 'APPSRC/components/view/UserSettingSSHKey'\nimport UserSettingEmail from 'APPSRC/components/view/UserSettingEmail'\nimport UserSettingGeneral from 'APPSRC/components/view/UserSettingGeneral'\nimport UserSettingNotification from 'APPSRC/components/view/UserSettingNotification'\n\nimport AdminDashboard from 'APPSRC/components/view/admin/Dashboard'\nimport AdminUsers from 'APPSRC/components/view/admin/Users'\nimport AdminGroups from 'APPSRC/components/view/admin/Groups'\nimport AdminRepositories from 'APPSRC/components/view/admin/Repositories'\nimport AdminSettings from 'APPSRC/components/view/admin/Settings'\n\nimport RepositoryList from 'APPSRC/components/view/RepositoryList'\nimport NewRepository from 'APPSRC/components/view/NewRepository'\nimport NewRepositoryFork from 'APPSRC/components/view/NewRepositoryFork'\nimport RepositorySettingGeneral from 'APPSRC/components/view/RepositorySettingGeneral'\nimport RepositorySettingBranch from 'APPSRC/components/view/RepositorySettingBranch'\nimport RepositorySettingWebhook from 'APPSRC/components/view/RepositorySettingWebhook'\nimport RepositorySettingMembers from 'APPSRC/components/view/RepositorySettingMembers'\nimport RepositorySettingAdvanced from 'APPSRC/components/view/RepositorySettingAdvanced'\n\nimport GroupList from 'APPSRC/components/view/GroupList'\nimport NewGroup from 'APPSRC/components/view/NewGroup'\nimport GroupSettingGeneral from 'APPSRC/components/view/GroupSettingGeneral'\nimport GroupSettingMembers from 'APPSRC/components/view/GroupSettingMembers'\nimport GroupSettingAdvanced from 'APPSRC/components/view/GroupSettingAdvanced'\n\nimport ActivityList from 'APPSRC/components/view/ActivityList'\n\nimport FileTree from 'APPSRC/components/view/FileTree'\nimport CommitList from 'APPSRC/components/view/CommitList'\nimport BranchList from 'APPSRC/components/view/BranchList'\nimport TagList from 'APPSRC/components/view/TagList'\nimport CreateTag from 'APPSRC/components/view/CreateTag'\nimport CreateBranch from 'APPSRC/components/view/CreateBranch'\nimport CommitDetail from 'APPSRC/components/view/CommitDetail'\nimport MergeRequest from 'APPSRC/components/view/MergeRequest'\nimport CreateMergeRequest from 'APPSRC/components/view/CreateMergeRequest'\nimport MergeRequestDetail from 'APPSRC/components/view/MergeRequestDetail'\n\nclass MainRoutes extends React.Component {\n render () {\n return \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n\n \n\n \n\n \n \n \n \n \n\n \n \n \n \n }\n}\n\nexport default withRouter(MainRoutes)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport MainRoutes from 'APPSRC/routes/MainRoutes'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\nconst styles = theme => ({\n container: {\n backgroundColor: theme.palette.background.light\n },\n content: {\n padding: 0\n },\n toolbar: theme.mixins.toolbar,\n mainContainer: {\n padding: theme.spacing(3) + 'px ' + theme.spacing(6) + 'px'\n }\n})\n\nclass Main extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n groupListLoaded: false,\n repositoryListLoaded: false\n }\n }\n\n componentDidMount () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n this.setState({ repositoryListLoaded: true })\n }\n })\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n this.setState({ groupListLoaded: true })\n }\n })\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // load group config\n if (\n (nextState.groupListLoaded && this.state.groupListLoaded !== nextState.groupListLoaded) ||\n (this.props.match.params.groupName !== nextProps.match.params.groupName ||\n (this.props.match.params.repositoryName !== nextProps.match.params.repositoryName &&\n !nextProps.match.params.repositoryName\n )\n )\n ) {\n const currentGroup = nextProps.groupList.filter(FilterGenerator.name(nextProps.match.params.groupName))[0]\n\n if (currentGroup && currentGroup.id) {\n this.props.dispatchEvent({ type: 'data.currentGroupKey.update', data: currentGroup.id })\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: {} })\n if (nextProps.history.location.pathname.match(/^\\/groups/i)) {\n GroupData.config({ gKey: currentGroup.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: data.data })\n } else {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: {} })\n }\n })\n }\n } else {\n this.props.dispatchEvent({ type: 'data.currentGroupKey.update', data: '' })\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: {} })\n }\n } else if (!nextProps.match.params.groupName) {\n this.props.dispatchEvent({ type: 'data.currentGroupKey.update', data: '' })\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: {} })\n }\n\n // load repository config\n if ((nextState.repositoryListLoaded && this.state.repositoryListLoaded !== nextState.repositoryListLoaded) ||\n (this.props.match.params.groupName !== nextProps.match.params.groupName ||\n this.props.match.params.repositoryName !== nextProps.match.params.repositoryName\n )\n ) {\n const currentRepository = nextProps.repositoryList.filter(\n item =>\n item.group.name === nextProps.match.params.groupName &&\n item.name === nextProps.match.params.repositoryName\n )[0]\n\n if (currentRepository && currentRepository.id) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryKey.update', data: currentRepository.id })\n RepositoryData.config({ rKey: currentRepository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n this.setState({ repositoryListLoaded: true })\n } else {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: {} })\n }\n })\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: {} })\n this.props.dispatchEvent({ type: 'data.currentRepositoryError.update', data: false })\n } else {\n this.props.dispatchEvent({ type: 'data.currentRepositoryKey.update', data: '' })\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: {} })\n this.props.dispatchEvent({ type: 'data.currentRepositoryError.update', data: true })\n }\n }\n\n return true\n }\n\n render () {\n const { classes } = this.props\n return
\n
\n
\n
\n \n
\n
\n
\n }\n}\n\nMain.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n dispatchEvent: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n groupList: state.DataStore.groupList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Main)\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// assets\n\n// components\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport Divider from '@material-ui/core/Divider'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plMemberAlt, plKey, plExit, psCaretDown, plDraft } from '@pgyer/icons'\nimport { withStyles } from '@material-ui/core/styles'\nimport Avatar from '@material-ui/core/Avatar'\nimport Typography from '@material-ui/core/Typography'\nimport Constants from 'APPSRC/config/Constants'\n\nimport { injectIntl } from 'react-intl'\n\n// style\nconst styles = theme => ({\n settings: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer'\n },\n menu: {\n width: theme.spacing(30),\n marginTop: theme.spacing(1),\n padding: 0\n },\n list: {\n '& > li': {\n height: theme.spacing(5)\n },\n '& > hr': {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n }\n },\n name: {\n opacity: '1 !important',\n display: 'block',\n height: 'auto !important'\n },\n icon: {\n width: theme.spacing(4),\n height: theme.spacing(4)\n },\n down: {\n marginLeft: theme.spacing(2),\n fontSize: theme.spacing(1)\n }\n})\n\nclass UserOption extends Component {\n constructor (props) {\n super(props)\n this.state = {\n anchorEl: null\n }\n\n this.handleUserMenuClick = this.handleUserMenuClick.bind(this)\n this.handleUserMenuClose = this.handleUserMenuClose.bind(this)\n this.logout = this.logout.bind(this)\n }\n\n handleUserMenuClick (event) {\n this.setState({ anchorEl: event.currentTarget })\n }\n\n handleUserMenuClose () {\n this.setState({ anchorEl: null })\n }\n\n logout () {\n this.setState({ anchorEl: null })\n window.location.href = '/user/logout'\n }\n\n goView (path) {\n this.setState({ anchorEl: null })\n this.props.history.push(path)\n }\n\n render () {\n const { currentUserInfo, classes, className, intl } = this.props\n\n return (\n \n
\n \n \n
\n \n \n \n { currentUserInfo.name }\n \n \n { currentUserInfo.email }\n \n \n \n { this.goView('/settings/profile') }}>\n \n \n \n \n \n { this.goView('/settings/email') }}>\n \n \n \n \n \n { this.goView('/settings/sshkey') }}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }\n}\n\nUserOption.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(\n UserOption\n )\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n// assets\n\n// components\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { plLocalization } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\n\n// style\nconst styles = theme => ({\n menu: {\n marginTop: theme.spacing(1),\n padding: 0\n }\n})\n\nclass LanguageSelect extends Component {\n constructor (props) {\n super(props)\n this.state = {\n anchorEl: null,\n userInfoLoadingStatus: false\n }\n\n this.handleUserMenuClick = this.handleUserMenuClick.bind(this)\n this.handleUserMenuClose = this.handleUserMenuClose.bind(this)\n }\n\n componentDidMount () {\n this.setState({ userInfoLoadingStatus: true })\n }\n\n handleUserMenuClick (event) {\n this.setState({ anchorEl: event.currentTarget })\n }\n\n handleUserMenuClose () {\n this.setState({ anchorEl: null })\n }\n\n changeLanguage (lang) {\n this.props.dispatchEvent({ type: 'data.currentLanguage.update', data: lang })\n this.setState({ anchorEl: null })\n }\n\n render () {\n const { anchorEl } = this.state\n const { intl, classes, currentLanguage } = this.props\n\n return (\n \n \n \n this.changeLanguage('zh-cn')}>\n \n \n this.changeLanguage('en-us')}>\n \n \n \n \n )\n }\n}\n\nLanguageSelect.propTypes = {\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n dispatchEvent: PropTypes.func.isRequired,\n currentLanguage: PropTypes.string.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(LanguageSelect)\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Typography from '@material-ui/core/Typography'\nimport Avatar from '@material-ui/core/Avatar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { plCheck } from '@pgyer/icons'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport UAC from 'APPSRC/config/UAC'\nimport { injectIntl } from 'react-intl'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n menu: {\n top: theme.spacing(8) + 1 + 'px !important',\n width: theme.spacing(34) + 'px !important',\n height: theme.spacing(40),\n boxShadow: '0px 20px 40px 0px rgba(66, 72, 86, 0.1)'\n },\n button: {\n position: 'relative',\n maxWidth: '100%',\n paddingRight: theme.spacing(3),\n '& > span': {\n display: 'list-item',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n '& svg': {\n position: 'absolute',\n right: theme.spacing(1),\n top: '10px'\n }\n },\n listIcon: {\n width: theme.spacing(3),\n height: theme.spacing(3),\n fontSize: theme.spacing(2) + 'px'\n },\n title: {\n color: theme.palette.text.lighter,\n fontSize: theme.spacing(1.5) + 'px',\n padding: theme.spacing(1) + 'px ' + theme.spacing(2) + 'px'\n },\n checked: {\n color: theme.palette.primary.main\n }\n})\n\nclass GroupRepositoryMenu extends Component {\n constructor (props) {\n super(props)\n this.state = {\n anchorElement: null,\n repositoryList: this.props.repositoryList,\n groupList: this.props.groupList,\n enterMenu: false,\n enterButton: false\n }\n }\n\n componentDidMount () {}\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.repositoryList !== nextProps.repositoryList ||\n this.props.groupList !== nextProps.groupList\n ) {\n this.setState({\n repositoryList: nextProps.repositoryList,\n groupList: nextProps.groupList\n })\n }\n\n return true\n }\n\n getToRepository (repositoryInfo) {\n this.initAnchor()\n this.props.history.push('/' + repositoryInfo.group.name + '/' + repositoryInfo.name + '/')\n }\n\n getToGroup (groupInfo) {\n this.initAnchor()\n this.props.history.push('/groups/' + groupInfo.name + '/')\n }\n\n initAnchor () {\n this.setState({\n anchorElement: null,\n enterButton: false,\n enterMenu: false\n })\n }\n\n render () {\n const { classes, intl, history, type, currentRepositoryKey, currentGroupKey } = this.props\n const { repositoryList, groupList } = this.state\n\n const repositoryItems = repositoryList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.REPO_READ))\n .map((item, key) => (\n { this.getToRepository(item) }} >\n \n { item.icon\n ? \n : {item.name.substr(0, 1).toUpperCase()}\n }\n \n \n {item.id === currentRepositoryKey && }\n )\n )\n\n const GroupItems = groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.REPO_READ))\n .map((item, key) => (\n { this.getToGroup(item) }} >\n \n { item.icon\n ? \n : {item.name.substr(0, 1).toUpperCase()}\n }\n \n \n {item.id === currentGroupKey && !currentRepositoryKey && }\n )\n )\n\n return (\n \n {((type === 'repository' &&\n (repositoryList.length + groupList.length)) ||\n (type === 'group' &&\n groupList.length))\n ? {\n this.initAnchor()\n history.push(type === 'repository' ? '/repositories' : '/groups')\n }}\n onMouseEnter={(ev) => {\n this.setState({\n enterButton: true,\n anchorElement: ev.currentTarget\n })\n }}\n onMouseLeave={() => {\n this.setState({ enterButton: false })\n setTimeout(() => !this.state.enterMenu && this.initAnchor(), 100)\n }}\n >\n { type === 'repository' && intl.formatMessage({ id: 'menu.repository_pl' })}\n { type === 'group' && intl.formatMessage({ id: 'menu.group_pl' })}\n \n \n : { history.push(type === 'repository' ? '/repositories/new' : '/groups/new') }}\n >\n { type === 'repository' && intl.formatMessage({ id: 'label.newRepository' })}\n { type === 'group' && intl.formatMessage({ id: 'label.newGroup' })}\n }\n\n {((type === 'repository' &&\n (repositoryList.length + groupList.length) > 0) ||\n (type === 'group' &&\n groupList.length > 0)) &&\n { this.setState({ anchorElement: null }) }}\n PaperProps={{ className: classes.menu }}\n getContentAnchorEl={null}\n transitionDuration={0}\n onMouseEnter={() => { this.setState({ enterMenu: true }) }}\n onMouseLeave={() => this.initAnchor()}\n >\n \n \n { type === 'repository' && intl.formatMessage({ id: 'label.repository' })}\n { type === 'group' && intl.formatMessage({ id: 'label.group' })}\n \n \n { type === 'repository' && repositoryItems }\n { type === 'group' && GroupItems }\n }\n \n )\n }\n}\n\nGroupRepositoryMenu.propTypes = {\n classes: PropTypes.object.isRequired,\n // dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n currentRepositoryKey: PropTypes.string,\n currentGroupKey: PropTypes.string,\n intl: PropTypes.object.isRequired,\n type: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n groupList: state.DataStore.groupList,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentGroupKey: state.DataStore.currentGroupKey\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n // dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupRepositoryMenu)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withRouter } from 'react-router'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport AppBar from '@material-ui/core/AppBar'\nimport Toolbar from '@material-ui/core/Toolbar'\nimport Divider from '@material-ui/core/Divider'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ListItemText from '@material-ui/core/ListItemText'\n\n// self components\nimport UserOption from 'APPSRC/components/unit/UserOption'\nimport withScrollTrigger from 'APPSRC/helpers/withScrollTrigger'\nimport LanguageSelect from 'APPSRC/components/unit/LanguageSelect'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { psAddAlt, plMerge, plBell, plHelp, plRepair } from '@pgyer/icons'\nimport GroupRepositoryMenu from 'APPSRC/components/unit/GroupRepositoryMenu'\n\n// style\nconst styles = theme => ({\n appBar: {\n width: '100%',\n zIndex: theme.zIndex.drawer,\n borderBottom: '1px solid ' + theme.palette.border\n },\n img: {\n height: theme.spacing(4),\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(6),\n cursor: 'pointer'\n },\n placeholder: {\n display: 'inline-block',\n verticalAlign: 'middle',\n height: theme.spacing(4),\n marginRight: theme.spacing(2),\n transition: theme.transitions.create('width')\n },\n placeholderExpanded: {\n width: theme.spacing(37)\n },\n placeholderCollapsed: {\n width: theme.spacing(8)\n },\n options: {\n display: 'flex'\n },\n split: {\n marginTop: theme.spacing(1),\n height: theme.spacing(2)\n },\n optionItem: {\n marginRight: theme.spacing(2)\n },\n menu: {\n marginTop: theme.spacing(1),\n padding: 0\n }\n})\n\nconst scrollTriggerOptions = {\n threshold: 0,\n watching: '.app-content'\n}\n\nclass Header extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n newMenuAnchor: null,\n helpMenuAnchor: null\n }\n }\n\n render () {\n const { classes, currentUserInfo, scrollTrigger, history, intl, notificationOpenStatusToggle, currentLanguage } = this.props\n return (\n \n \n \n \n history.push('/repositories')}\n />\n \n \n \n \n \n \n {\n history.push('/mergerequests')\n }} icon={plMerge} className={classes.optionItem} />\n \n \n this.setState({ newMenuAnchor: e.currentTarget })} icon={psAddAlt} className={classes.optionItem} />\n \n this.setState({ newMenuAnchor: null })}\n >\n {\n history.push('/repositories/new')\n this.setState({ newMenuAnchor: null })\n }}>\n \n \n {\n history.push('/groups/new')\n this.setState({ newMenuAnchor: null })\n }}>\n \n \n {\n history.push('/mergerequests/new')\n this.setState({ newMenuAnchor: null })\n }}>\n \n \n \n notificationOpenStatusToggle()} />\n \n this.setState({ helpMenuAnchor: e.currentTarget })} icon={plHelp} className={classes.optionItem} />\n this.setState({ helpMenuAnchor: null })}\n >\n {\n this.setState({ helpMenuAnchor: null })\n window.open('/doc/' + (currentLanguage === 'en-us' ? 'en' : 'cn'), '_blank')\n }}>\n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://codefever.pgyer.com/community', '_blank')\n }}>\n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://github.com/PGYER/codefever/blob/master/doc/zh-cn/contribute/bug_fix_issue.md', '_blank')\n }}>\n \n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://github.com/PGYER/codefever', '_blank')\n }}>\n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://codefever.pgyer.com/', '_blank')\n }}>\n \n \n \n {currentUserInfo.admin && { history.push('/admin') }} icon={plRepair} className={classes.optionItem} />}\n \n \n \n \n \n )\n }\n}\n\nHeader.propTypes = {\n intl: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n scrollTrigger: PropTypes.bool.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n notificationOpenStatusToggle: PropTypes.func.isRequired,\n currentLanguage: PropTypes.string.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n notificationOpenStatusToggle: () => dispatch({ type: 'notification.notificationOpenStatus.toggle' })\n }\n}\n\nexport default injectIntl(\n withRouter(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n withScrollTrigger(scrollTriggerOptions)(Header)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\n// component\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport Avatar from '@material-ui/core/Avatar'\nimport Button from '@material-ui/core/Button'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport Collapse from '@material-ui/core/Collapse'\nimport Typography from '@material-ui/core/Typography'\nimport ExpandLess from '@material-ui/icons/ExpandLess'\nimport ExpandMore from '@material-ui/icons/ExpandMore'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { psHome } from '@pgyer/icons'\nimport Constants from 'APPSRC/config/Constants'\n\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nconst styles = (theme) => ({\n list: {\n marginTop: theme.spacing(3)\n },\n listItem: {\n overflow: 'hidden',\n width: theme.spacing(34),\n height: theme.spacing(5),\n borderRadius: theme.spacing(0.5),\n transition: [theme.transitions.create('width'), theme.transitions.create('padding')].join(','),\n cursor: 'pointer',\n '& svg, & span': {\n color: theme.palette.text.light\n },\n '&:hover': {\n '& > div > svg': {\n color: theme.palette.primary.main\n },\n '& span': {\n color: theme.palette.text.main\n }\n }\n },\n listItemExpand: {\n padding: '0px ' + theme.spacing(4) + 'px'\n },\n listItemCollapsed: {\n width: theme.spacing(5),\n minWidth: theme.spacing(5),\n padding: '0px ' + theme.spacing(1.5) + 'px'\n },\n listItemText: {\n margin: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height'),\n '& > span': {\n lineHeight: theme.spacing(5) + 'px'\n }\n },\n listItemTextExpand: {\n height: theme.spacing(5) + 'px'\n },\n listItemTextCollapsed: {\n height: 0\n },\n drawerHeader: {\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'center',\n height: theme.spacing(4),\n width: theme.spacing(28),\n background: theme.palette.background.main,\n padding: theme.spacing(1) + 'px ' + theme.spacing(3) + 'px',\n transition: [theme.transitions.create('width'), theme.transitions.create('padding')].join(',')\n },\n drawerHeaderExpand: {\n width: theme.spacing(28),\n padding: theme.spacing(1) + 'px ' + theme.spacing(3) + 'px'\n },\n drawerHeaderCollapsed: {\n width: theme.spacing(4),\n padding: theme.spacing(1) + 'px ' + theme.spacing(0.5) + 'px'\n },\n active: {\n backgroundColor: theme.palette.background.light,\n '& span': {\n color: theme.palette.text.main\n }\n },\n secondCollapse: {\n backgroundColor: theme.palette.background.light\n },\n morePadding: {\n width: theme.spacing(34),\n borderRadius: theme.spacing(0.5),\n paddingBottom: theme.spacing(2) + 'px',\n backgroundColor: theme.palette.background.light\n },\n secondActive: {\n borderRadius: theme.spacing(0.5),\n backgroundColor: theme.palette.background.main,\n '& span': {\n color: theme.palette.text.main\n }\n },\n home: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main\n },\n iconActive: {\n color: theme.palette.primary.main + ' !important'\n },\n avatar: {\n cursor: 'pointer',\n width: theme.spacing(4),\n height: theme.spacing(4)\n },\n title: {\n fontSize: '18px',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n height: theme.spacing(4),\n paddingLeft: theme.spacing(2),\n lineHeight: theme.spacing(4) + 'px',\n transition: theme.transitions.create('height')\n },\n titleExpand: {\n height: theme.spacing(4)\n },\n titleCollapsed: {\n height: 0\n },\n button: {\n '&:hover': {\n background: theme.palette.primary.main\n }\n }\n})\n\nclass DrawerList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n open: {},\n itemSwitch: false,\n itemName: null,\n avatarHover: false\n }\n }\n\n openChildren (key) {\n const newOpen = { ...this.state.open }\n newOpen[key] = !newOpen[key]\n this.setState({ open: newOpen })\n }\n\n render () {\n const {\n classes, drawerExpandStatus, drawerConfig, location, intl, mode,\n repositoryList, currentRepositoryKey, groupList, currentGroupKey\n } = this.props\n\n const listItems = drawerConfig.map((item, key) => {\n let activeFlag = false\n item.activePattern.map((pattern) => {\n if (location.pathname && location.pathname.match(pattern)) {\n activeFlag = true\n }\n return true\n })\n const firstLevel = (\n {\n this.props.history.push(item.path)\n item.children && this.openChildren(key)\n }}\n >\n \n \n \n \n {item.count}\n {item.children ? (this.state.open[key] ? : ) : ''}\n \n )\n\n const secondLevel = item.children\n ? item.children.map((sitem, skey) => {\n let secondActiveFlag = false\n sitem.activePattern.map((pattern) => {\n if (location.pathname && location.pathname.match(pattern)) {\n secondActiveFlag = true\n }\n return true\n })\n const sListItem = (\n this.props.history.push(sitem.path)}\n className={activeFlag ? classes.secondCollapse : ''}\n key={skey}\n >\n \n \n \n \n \n \n )\n return sListItem\n })\n : ''\n\n return (\n
\n {firstLevel}\n {secondLevel}\n
\n )\n })\n\n const avatarProps = {}\n const currentProject = repositoryList.filter(FilterGenerator.id(currentRepositoryKey))[0]\n const currentGroup = groupList.filter(FilterGenerator.id(currentGroupKey))[0]\n if (['repository', 'group'].includes(mode)) {\n const icon = (currentProject && currentProject.icon) || (currentGroup && currentGroup.icon)\n const name = (currentProject && currentProject.name) || (currentGroup && currentGroup.name)\n if (icon) {\n avatarProps.src = Constants.HOSTS.STATIC_AVATAR_PREFIX + icon\n } else if (name) {\n avatarProps.children = name[0].toUpperCase()\n }\n\n if (mode === 'repository') {\n avatarProps.onClick = () => { this.props.history.push('/' + currentProject.group.name + '/' + currentProject.name + '/') }\n } else if (mode === 'group') {\n avatarProps.onClick = () => { this.props.history.push('/groups/' + currentGroup.name) }\n }\n\n avatarProps.onMouseEnter = () => { this.setState({ avatarHover: true }) }\n avatarProps.onMouseLeave = () => { this.setState({ avatarHover: false }) }\n\n if (this.state.avatarHover) {\n avatarProps.src = ''\n avatarProps.children = \n \n \n avatarProps.onClick = () => {\n this.props.history.push('/repositories')\n this.setState({ avatarHover: false })\n }\n }\n } else {\n avatarProps.src = '/static/00000000000000/images/logo-ico.png'\n avatarProps.onClick = () => {\n this.props.history.push('/repositories')\n this.setState({ avatarHover: false })\n }\n }\n\n return (\n \n
\n \n \n {mode === 'default' && 'CodeFever'}\n {mode === 'admin' && 'CodeFever Admin'}\n \n
\n {listItems}\n
\n )\n }\n}\n\nDrawerList.propTypes = {\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n location: PropTypes.object.isRequired,\n drawerExpandStatus: PropTypes.bool.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n currentRepositoryKey: PropTypes.string,\n currentGroupKey: PropTypes.string,\n drawerConfig: PropTypes.array.isRequired,\n mode: PropTypes.string.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n drawerExpandStatus: state.DrawerStates.expandStatus,\n repositoryList: state.DataStore.repositoryList,\n groupList: state.DataStore.groupList,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentGroupKey: state.DataStore.currentGroupKey\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n withRouter(DrawerList)\n )\n )\n)\n","// component\nimport {\n psRepository,\n psRepositoryGroup,\n psBranch,\n psCommit,\n psMerge,\n psLog,\n psMembers,\n psMemberAlt,\n psFile,\n psSetting,\n psTag,\n psEmail,\n psKey,\n psBell\n} from '@pgyer/icons'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nfunction makeDrawerConfig () {\n return [\n {\n path: '/settings/profile',\n name: 'menu.profile',\n icon: psMemberAlt,\n activePattern: [\n /^\\/settings$/i,\n /^\\/settings\\/profile/i\n ]\n },\n {\n path: '/settings/email',\n name: 'menu.mail',\n icon: psEmail,\n activePattern: [\n /^\\/settings\\/email/i\n ]\n },\n {\n path: '/settings/sshkey',\n name: 'menu.SSHKey_pl',\n icon: psKey,\n activePattern: [\n /^\\/settings\\/sshkey/i\n ]\n },\n {\n path: '/settings/notification',\n name: 'menu.notification',\n icon: psBell,\n activePattern: [\n /^\\/settings\\/notification/i\n ]\n }\n ]\n}\n\nfunction makeAdminDrawerConfig () {\n return [\n {\n path: '/admin/dashboard',\n name: 'menu.dashboard',\n icon: psLog,\n activePattern: [\n /^\\/admin(\\/)?$/i,\n /^\\/admin\\/dashboard\\/?.*$/i\n ]\n },\n {\n path: '/admin/users',\n name: 'menu.user_pl',\n icon: psMembers,\n activePattern: [\n /^\\/admin\\/users\\/?.*$/i\n ]\n },\n {\n path: '/admin/groups',\n name: 'menu.group_pl',\n icon: psRepositoryGroup,\n activePattern: [\n /^\\/admin\\/groups\\/?.*$/i\n ]\n },\n {\n path: '/admin/repositories',\n name: 'menu.repository_pl',\n icon: psRepository,\n activePattern: [\n /^\\/admin\\/repositories\\/?.*$/i\n ]\n },\n {\n path: '/admin/settings',\n name: 'menu.setting_pl',\n icon: psSetting,\n activePattern: [\n /^\\/admin\\/settings\\/?.*$/i\n ]\n }\n ]\n}\n\nfunction makeGroupDrawerConfig (groupConfig) {\n return (groupConfig && groupConfig.group)\n ? [\n {\n path: ['/groups', groupConfig.group.name, 'repositories'].join('/'),\n name: 'menu.repository_pl',\n icon: psRepository,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})(\\/)?$/i,\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/repositories/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'mergerequests'].join('/'),\n name: 'menu.mergeRequest_pl',\n icon: psMerge,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/mergerequests\\/?.*$/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'members'].join('/'),\n name: 'menu.member_pl',\n icon: psMembers,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/members(\\/)?$/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'activities'].join('/'),\n name: 'menu.activity_pl',\n icon: psLog,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/activities(\\/)?/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'settings'].join('/'),\n name: 'menu.setting_pl',\n icon: psSetting,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings(\\/)?$/i,\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings\\/.*$/i\n ],\n children: [\n {\n path: ['/groups', groupConfig.group.name, 'settings', 'general'].join('/'),\n name: 'menu.general',\n icon: psSetting,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings(\\/)?$/i,\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings\\/general(\\/)?$/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'settings', 'advanced'].join('/'),\n name: 'menu.advanced',\n icon: psSetting,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings\\/advanced(\\/)?$/i\n ]\n }\n ]\n }\n ]\n : []\n}\n\nfunction makeRepositoryDrawerConfig (repositoryConfig) {\n return (repositoryConfig && repositoryConfig.repository)\n ? [\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'files'].join('/'),\n name: 'menu.file_pl',\n icon: psFile,\n activePattern: [\n /^\\/([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/files(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/files\\/.*$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/blame\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'commits'].join('/'),\n name: 'menu.commit_pl',\n count: repositoryConfig.count.commit,\n icon: psCommit,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/commits(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/commits\\/.*$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/commit\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'mergerequests'].join('/'),\n name: 'menu.mergeRequest_pl',\n count: repositoryConfig.count.mergeRequest.open,\n icon: psMerge,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/mergerequests(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/mergerequests\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'branches'].join('/'),\n name: 'menu.branch_pl',\n count: repositoryConfig.count.branch,\n icon: psBranch,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/branches(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/branches\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'tags'].join('/'),\n name: 'menu.tag_pl',\n count: repositoryConfig.count.tag,\n icon: psTag,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/tags(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/tags\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'members'].join('/'),\n name: 'menu.member_pl',\n count: (repositoryConfig.members && repositoryConfig.members.filter(FilterGenerator.notDeleted()).length) || 0,\n icon: psMembers,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/members(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'activities'].join('/'),\n name: 'menu.activity_pl',\n icon: psLog,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/activities(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings'].join('/'),\n name: 'menu.setting_pl',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/.*$/i\n ],\n children: [\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings', 'general'].join('/'),\n name: 'menu.general',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/general(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings', 'branch'].join('/'),\n name: 'menu.branch_pl',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/branch(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings', 'webhook'].join('/'),\n name: 'menu.webhook_pl',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/webhook(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings', 'advanced'].join('/'),\n name: 'menu.advanced',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/advanced(\\/)?$/i\n ]\n }\n ]\n }\n ]\n : []\n}\n\nexport default { makeDrawerConfig, makeAdminDrawerConfig, makeGroupDrawerConfig, makeRepositoryDrawerConfig }\n","// vendor package\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { Switch, Route, withRouter } from 'react-router-dom'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plMenuCollapse } from '@pgyer/icons'\n\n// component\nimport Drawer from '@material-ui/core/Drawer'\nimport DrawerList from 'APPSRC/components/DrawerList'\n\nimport DrawerConfig from 'APPSRC/config/DrawerConfig.js'\n\n// style\nconst styles = theme => ({\n drawerContainer: {\n position: 'relative'\n },\n container: {\n height: '100vh',\n transition: theme.transitions.create('width')\n },\n containerExpanded: {\n width: theme.spacing(40)\n },\n containerCollapsed: {\n width: theme.spacing(11)\n },\n drawerPaper: {\n position: 'relative',\n boxSizing: 'border-box',\n width: '100%',\n overflowX: 'hidden'\n },\n drawerExpandControl: {\n position: 'absolute',\n top: theme.spacing(12),\n right: '-12px',\n fontSize: '14px',\n color: '#64728C',\n cursor: 'pointer',\n textAlign: 'center',\n borderRadius: '50%',\n width: theme.spacing(3),\n height: theme.spacing(3),\n zIndex: theme.zIndex.drawer + 1,\n lineHeight: theme.spacing(3) + 'px',\n background: theme.palette.background.light,\n border: '1px solid ' + theme.palette.border\n },\n transform: {\n transform: 'rotate(180deg)'\n },\n toolbar: theme.mixins.toolbar\n})\n\nclass Side extends React.Component {\n drawer (drawerConfig, mode) {\n const { classes, expandStatus, toggleDrawer } = this.props\n\n return
\n \n \n
\n \n \n \n
\n }\n\n render () {\n const { currentGroupConfig, currentRepositoryConfig } = this.props\n\n return \n \n {this.drawer(DrawerConfig.makeDrawerConfig(), 'default')}\n \n \n \n \n \n {this.drawer(DrawerConfig.makeAdminDrawerConfig(), 'admin')}\n \n \n {this.drawer(DrawerConfig.makeGroupDrawerConfig(currentGroupConfig), 'group')}\n \n \n {this.drawer(DrawerConfig.makeRepositoryDrawerConfig(currentRepositoryConfig), 'repository')}\n \n \n }\n}\n\nSide.propTypes = {\n expandStatus: PropTypes.bool.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n toggleDrawer: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state) => {\n return {\n expandStatus: state.DrawerStates.expandStatus,\n currentGroupConfig: state.DataStore.currentGroupConfig,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n toggleDrawer: () => {\n dispatch({ type: 'drawer.expandStatus.toggle' })\n }\n }\n}\n\nexport default withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n withRouter(Side)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Button from '@material-ui/core/Button'\nimport Dialog from '@material-ui/core/Dialog'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogContentText from '@material-ui/core/DialogContentText'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\nclass Comformation extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n loading: false\n }\n this.observed = {\n openStatus: false\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.observed.openStatus !== nextProps.openStatus) {\n this.observed.openStatus = nextProps.openStatus\n this.setState({ loading: false })\n this.props.dispatchEvent(EventGenerator.consumeComformation())\n }\n if (this.observed.eventCount !== nextProps.eventCount) {\n this.props.dispatchEvent(EventGenerator.consumeComformation())\n }\n return true\n }\n\n onCancel (ev) {\n this.props.rejectFn && this.props.rejectFn()\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n\n onAccept (ev) {\n this.setState({ loading: true })\n this.props.acceptFn && this.props.acceptFn()\n }\n\n render () {\n const { openStatus, title, description, intl } = this.props\n return (\n this.onCancel(ev)}\n aria-labelledby='alert-dialog-title'\n aria-describedby='alert-dialog-description'\n >\n {title}\n \n {description}\n \n \n \n \n \n \n )\n }\n}\n\nComformation.propTypes = {\n openStatus: PropTypes.bool.isRequired,\n eventCount: PropTypes.number.isRequired,\n title: PropTypes.any,\n description: PropTypes.any,\n acceptFn: PropTypes.func,\n rejectFn: PropTypes.func,\n dispatchEvent: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n openStatus: state.NotificationStates.confirmation.open,\n eventCount: state.NotificationStates.confirmation.eventCount,\n title: state.NotificationStates.confirmation.title,\n description: state.NotificationStates.confirmation.description,\n acceptFn: state.NotificationStates.confirmation.accept,\n rejectFn: state.NotificationStates.confirmation.reject\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Comformation)\n )\n)\n","// vendor package\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Drawer from '@material-ui/core/Drawer'\nimport Button from '@material-ui/core/Button'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { psSetting, plClose, psMore, plCheck, psTrash } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport { makeLink, notificationParser } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n notification: {\n '& > div:first-child': {\n background: 'transparent'\n }\n },\n paper: {\n padding: 0,\n top: theme.spacing(8),\n boxSizing: 'border-box',\n width: theme.spacing(50),\n height: 'calc(100% - 64px)',\n background: theme.palette.background.light,\n border: '1px solid ' + theme.palette.border\n },\n header: {\n top: 0,\n zIndex: 1,\n position: 'sticky',\n background: theme.palette.background.light\n },\n headerTitle: {\n display: 'flex',\n alignItems: 'center',\n height: theme.spacing(6) + 'px',\n padding: '0px ' + theme.spacing(3) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n close: {\n '& svg': {\n width: '14px !important',\n height: '14px !important',\n padding: '2px'\n }\n },\n icon: {\n color: theme.palette.text.light\n },\n more: {\n marginTop: theme.spacing(0.5)\n },\n menu: {\n padding: '0px ' + theme.spacing(3) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n notifySetting: {\n display: 'none'\n },\n notify: {\n '&:hover': {\n background: theme.palette.background.main,\n '& > div:first-child > div:nth-of-type(2)': {\n display: 'block'\n }\n },\n padding: theme.spacing(2) + 'px ' + theme.spacing(3) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n notifiTitle: {\n lineHeight: theme.spacing(4) + 'px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n '& > span': {\n fontSize: '12px'\n }\n },\n readed: {\n '& div, & span': {\n color: theme.palette.text.lighter + '!important'\n }\n },\n notifiContent: {\n cursor: 'pointer',\n lineHeight: theme.spacing(2.5) + 'px',\n maxHeight: theme.spacing(5),\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n '-webkit-line-clamp': 2,\n '-webkit-box-orient': 'vertical'\n },\n loading: {\n justifyContent: 'center',\n padding: theme.spacing(4) + 'px'\n }\n})\n\nclass Notification extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: false,\n menuAnchor: null,\n category: Constants.notificationCategory.unRead,\n list: [],\n pagesize: 20,\n page: 1,\n loadMore: true\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.notificationOpenStatus !== nextProps.notificationOpenStatus &&\n nextProps.notificationOpenStatus === true) {\n this.getData(nextState, true)\n return false\n }\n\n if (this.state.category !== nextState.category) {\n this.getData(nextState, true)\n return false\n }\n\n if (this.state.page !== nextState.page) {\n this.getData(nextState, false)\n return false\n }\n\n return true\n }\n\n getData (state, reset) {\n const { pending, category, list, pagesize, page, loadMore } = state\n if (pending) {\n return false\n }\n\n this.setState({\n pending: true,\n list: reset ? [] : list,\n page: reset ? 1 : page,\n loadMore: reset ? true : loadMore\n })\n\n UserData.notifications({\n category: category,\n page: reset ? 1 : page\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n data.data.map(item => notificationParser(item, this.props.intl))\n\n this.setState({\n pending: false,\n list: [...this.state.list, ...data.data],\n loadMore: data.data.length === pagesize\n })\n }\n })\n }\n\n reloadUserData () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n }\n\n setNotificationRead (id) {\n const { dispatchEvent, intl } = this.props\n const { list } = this.state\n if (this.state.pending) {\n return false\n }\n\n this.setState({\n menuAnchor: null,\n pending: true\n })\n UserData.setNotificationRead({\n id: id,\n all: id ? '' : '1'\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n list.map((item, index) => {\n if (!id) {\n item.isRead = true\n } else if (id && item.id === id) {\n item.isRead = true\n }\n return true\n })\n this.setState({\n pending: false,\n list: list\n })\n this.reloadUserData()\n data.code && dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n })\n }\n\n deleteNotification (id) {\n const { dispatchEvent, intl } = this.props\n let { list } = this.state\n if (this.state.pending) {\n return false\n }\n\n this.setState({\n menuAnchor: null,\n pending: true\n })\n UserData.deleteNotification({\n id: id,\n all: id ? '' : '1'\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n list = list.filter((item, index) => {\n if (!id) {\n return !item.isRead\n } else {\n item.id === id && !item.isRead && this.reloadUserData()\n return item.id !== id\n }\n })\n this.setState({\n pending: false,\n list: list\n })\n data.code && dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.deleteFail' }), 2))\n })\n }\n\n aLink (item) {\n const { history } = this.props\n this.props.notificationOpenStatusClose()\n !item.isRead && this.setNotificationRead(item.id)\n\n history.push(makeLink(item.url))\n }\n\n notificationSetting () {\n this.props.notificationOpenStatusClose()\n this.props.history.push(makeLink('settings/notification'))\n }\n\n render () {\n const { notificationOpenStatus, notificationOpenStatusClose, classes, intl } = this.props\n const { pending, menuAnchor, category, list, page, loadMore } = this.state\n\n const notificationCategory = []\n notificationCategory[Constants.notificationCategory.all] = intl.formatMessage({ id: 'label.all' })\n notificationCategory[Constants.notificationCategory.unRead] = intl.formatMessage({ id: 'label.unread' })\n\n return ( !pending && notificationOpenStatusClose()}\n className={classes.notification}\n elevation={8}\n PaperProps={{\n className: classes.paper,\n onScroll: e => !pending && loadMore && ((e.target.offsetHeight - 2 + e.target.scrollTop) === e.target.scrollHeight) && this.setState({ page: page + 1 })\n }}\n >\n \n \n \n {intl.formatMessage({ id: 'label.notificationCenter' })}\n \n \n this.notificationSetting()} />\n !pending && notificationOpenStatusClose()} />\n \n \n \n !pending && this.setState({ category: value })}\n tabs={notificationCategory}\n >\n this.setState({ menuAnchor: e.target })} />\n this.setState({ menuAnchor: null })}\n transitionDuration={0}\n >\n this.setNotificationRead('')}>{intl.formatMessage({ id: 'message.tagAllRead' })}\n this.deleteNotification('')}>{intl.formatMessage({ id: 'message.deleteAllReaded' })}\n \n \n \n \n \n {list.map((item, index) => {\n return ( !item.isRead && this.setNotificationRead(item.id)}\n >\n \n \n \n  · {item.data.group && item.data.group + ' / '}{item.data.repository}\n \n \n \n {!item.isRead && }\n {\n this.deleteNotification(item.id)\n e.stopPropagation()\n }}\n />\n \n \n {\n this.aLink(item)\n e.stopPropagation()\n }}\n >{item.text}\n \n )\n })}\n { loadMore\n ? \n {pending && }\n \n : \n \n \n }\n \n \n )\n }\n}\n\nNotification.propTypes = {\n notificationOpenStatus: PropTypes.bool.isRequired,\n notificationOpenStatusClose: PropTypes.func.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state) => {\n return {\n notificationOpenStatus: state.NotificationStates.notificationOpenStatus\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) },\n notificationOpenStatusClose: () => dispatch({ type: 'notification.notificationOpenStatus.close' })\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n withRouter(Notification)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\n\nimport NotificationBar from '@pgyer/essential-component/NotificationBar'\n\nclass NotificationBars extends React.Component {\n constructor () {\n super()\n this.messageLists = []\n }\n\n componentDidMount () {\n this.messageLists = []\n }\n\n addMessage (message) {\n if (message.message) {\n const currentIndex = this.messageLists.length\n this.messageLists.push({ ...message, openStatus: true })\n setTimeout(() => { this.closeMessage(currentIndex) }, 5000)\n }\n }\n\n closeMessage (index) {\n this.messageLists[index].openStatus = false\n this.props.dispatchEvent({ type: 'notification.message.change' })\n setTimeout(() => {\n if (!this.messageLists.reduce((result, message) => (result || message.openStatus), false)) {\n this.messageLists = []\n }\n }, 200)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (nextProps.notificationBody === this.props.notificationBody) {\n return false\n }\n return true\n }\n\n render () {\n const { notificationBody } = this.props\n this.addMessage(notificationBody)\n\n let offset = 0\n return this.messageLists.map(\n (message, index) => {\n offset += message.openStatus ? 1 : 0\n return ( 0 ? offset - 1 : 0}\n open={message.openStatus}\n onClose={(ev, reason) => (reason === 'timeout' && this.closeMessage(index))}\n action={message.action}\n message={message.message}\n />)\n }\n )\n }\n}\n\nNotificationBars.propTypes = {\n notificationBody: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n notificationBody: state.NotificationStates.notificationBody\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(NotificationBars)\n","const data = {\n chinese: '简体中文',\n english: 'English'\n}\n\nexport default { __namespace__: 'lang', ...data }\n","const data = {\n Added: '已添加',\n created: '已创建',\n updated: '已更新',\n removed: '已移除',\n deleted: '已删除',\n copied: '已拷贝',\n merged: '已合并',\n opened: '已打开',\n closed: '已关闭',\n binded: '已绑定',\n unbinded: '已解绑',\n verified: '已验证',\n approved: '已评审',\n enabled: '已恢复',\n disabled: '已禁用',\n reseted: '已重置',\n createPersonalGroupNotice: '至少需要创建一个仓库组作为个人仓库组',\n\n emailCodeHasSendNewEmail: '验证码已经发送至新的邮箱',\n phoneCodeHasSendNewPhone: '验证码已经发送至新的手机',\n finishIdentityVerify: '前请输入您的账号密码以完成身份验证',\n unbindEnterCodeFeverPassword: '若确认,请输入您的CodeFever账号密码以验证身份',\n scanQrcodeBind: '请使用微信扫描二维码完成绑定',\n theAccountUsedWechat_N: '该账号曾使用微信\"{n}\"与蒲公英旗下产品小程序绑定,确认使用当前微信账号替换\"{n}\"的绑定吗?',\n rebindWechat: '取消,更换微信后重新绑定',\n unbindAllProduct: '解除绑定,您将同时解绑蒲公英旗下所有产品',\n mfaGuide: '打开具有 MFA 功能的 App 并扫描下方二维码,输入 App 上的显示的两组不同的 MFA 密码并点击 保存 按钮完成 MFA 设备设置。你可以在任何手机应用市场搜索 MFA 下载你信任的 App。',\n\n inputEmailToAddMemeber: '输入用户的注册邮箱以添加为成员',\n groupMemberCanControlRepositoryNotice: '此仓库所在仓库组的成员对于此仓库的控制权由其仓库组角色决定',\n\n repositoryChangeCreatorNotice: '您确定需要更换此仓库创建者吗 ? 新的创建着将拥有仓库所有管理权限, 且曾经的创建者将会拥有 所有者 角色',\n repositoryChangeURLNotice: '您确定需要更改此仓库 URL 吗 ? URL 更改后,不能再使用原 URL 管理仓库, git 客户端使用的仓库地址也会同步变更, 您需要使用 git remote 命令重新设置仓库地址',\n repositoryDeleteRepositoryNotice: '您确定要删除此仓库吗 ? 仓库删除后此仓库不再可用, 仓库内的 文件 和 相关记录 都会不可逆的被删除, 请确认需要保留的文件已经备份完成, 点击 取消 按钮可以取消操作。',\n repositoryDeleteRepositoryConfirmNotice: '需要您再次确认删除此仓库 ? 此仓库删除后, 所有信息和文件都会被不可逆删除, 此操作造成的后果不可恢复, 请确认需要保留的文件已经备份完成, 点击 取消 按钮可以取消此操作。',\n\n groupChangeCreatorNotice: '您确定需要更换此仓库组创建者吗 ? 新的创建着将拥有仓库组所有管理权限, 且曾经的创建者将会拥有 所有者 角色, 注意个人默认仓库组不能更改创建者',\n groupChangeURLNotice: '您确定需要更改此仓库组 URL 吗 ? URL 更改后,不能再使用原 URL 管理仓库组, git 客户端使用的组内仓库地址也会同步变更, 您需要使用 git remote 命令重新设置仓库地址',\n groupDeleteRepositoryNotice: '您确定要删除此仓库组吗 ? 仓库组删除后不再可用, 仓库组内的 相关记录 都会不可逆的被删除, 在删除此仓库组前请手动删除组内所有仓库, 点击 取消 按钮可以取消操作。',\n groupDeleteRepositoryConfirmNotice: '需要您再次确认删除此仓库组 ? 此仓库组删除后, 所有信息都会被不可逆删除, 此操作造成的后果不可恢复, 在删除此仓库组前请手动删除组内所有仓库, 点击 取消 按钮可以取消此操作。',\n\n inputCommitFilter: '输入提交信息过滤',\n repositoryEmpty: '仓库为空',\n displaySource: '展示源码',\n displayRendereFile: '展示渲染内容',\n fileContentEmpty: '文件内容为空',\n fileContentOversize: '文件大小超过允许展示的最大限度, 请在本地查看',\n fileTypeNotSupport: '暂不支持二进制文件的展示',\n diffFileToMany: '超过允许展示的最大文件数量, 请在本地查看',\n createNewRepository: '在命令行创建一个新仓库',\n pushRepository: '在命令行 push 一个已存在的仓库',\n\n _S_empty: '请输入{s}',\n repository_S_empty: '仓库内还没有{s}',\n repositoryBranchEmpty: 'Git分支,本质上是指向提交对象的可变指针。使用 git 命令创建分支: \\'git branch 新分支名称 旧分支名称\\'',\n repositoryTagEmpty: '标签是某一时间点上的版本,通常使用标签标识代码库的重要版本,如在项目的里程碑创建标签。也可以使用 git 命令创建标签:git tag -a v1.0 -m \\'版本 1.0\\'',\n mergeRequestEmpty: '未找到相关合并请求记录',\n addNewCommit: '新增一个提交',\n alreadyMergeRequest: '已经合并请求',\n alreadyCloseRequest: '已经关闭请求',\n assignReviewerTitle: '指定评审员(只能指定1人)',\n selectReviewer: '选择评审员',\n notSelectReviewers: '未指定评审员',\n deleteReviewer: '清除评审员',\n notApprove: '未评审',\n assign_N_M_Reviewer: '指定 {n} 为和并请求 {m} 的评审员',\n delete_M_N_Reviewer: '删除了和并请求 {m} 的评审员 {n}',\n review_M_Reviewer: '评审了和并请求 {m} 的代码',\n\n _S_listEmpty: '{s}列表为空',\n repositoryListEmptyNotice: '创建一个仓库, 开始体验吧',\n groupListEmptyNotice: '创建一个仓库组, 组织并管理组内仓库',\n\n input_S_name: '输入{s}名过滤',\n confirmDelete: '确认删除{s}?',\n\n jumpWithLink: '跳转链接',\n noRepositoryFind: '没有查看权限',\n noCommitRecord: '暂无提交记录',\n plsInputInvitedEmail: '请输入被邀请人邮箱',\n repositoryDeleteTipFirst: '删除项目将删除其存储库和所有相关资源,包括问题、合并请求等',\n repositoryDeleteTipSecond: '无法还原已删除的项目!',\n inputMergeCommit: '请输入合并的提交信息, 并根据情况勾选是否使用squash功能',\n selectDifferentBranch: '必须选择不同的分支进行合并',\n mergeConflictTitle: '你要合并的两个分支有代码冲突,请根据下面的命令在本地进行合并',\n mergeConflictTip1: '第一步:拉取代码并新建合并请求的分支',\n mergeConflictTip2: '第二步:本地检查代码更改',\n mergeConflictTip3: '第三步:合并分支并解决冲突',\n mergeConflictTip4: '第四步:将代码推送到codeForge平台',\n from_S_Merge_S: '从 {s1} 请求合并到 {s2}',\n\n defaultGroupReqiured: '需要默认仓库组',\n defaultGroupReqiuredDescription: '您需要至少创建一个仓库组用于存放仓库',\n\n someVersion: '相关版本',\n backHome: '回到首页',\n inputSSHKEYContent: '请输入 SSH Key 内容',\n inputSSHKEYName: '请输入 SSH Key 名称',\n defaultBranchDescription: '默认分支被视为代码库中的基本分支, 是所有克隆、代码提交和合并请求的目标分支',\n settingToDefaultBranch: '设置为默认分支',\n updateDefaultBranch: '修改默认分支',\n settingDefaultBranch: '请设置默认分支',\n protectedBranchDescription: '保护分支会保障分支安全性, 不允许除所有者以外角色进行强制推送及删除',\n protectedBranchRuleEmpty: '目前无保护分支规则, 请新建保护分支规则, 保护分支安全',\n inputBranchOrRegexp: '请输入分支名称或通用符规则',\n createProtectedBranchRule: '新建保护分支规则',\n updateProtectedBranchRule: '修改保护分支规则',\n deleteProtectedBranchRule: '删除保护分支规则',\n noBodyAllow: '不允许任何人',\n\n primaryEmail: '主邮箱地址',\n primaryEmailDescription: '当前 CodeFever 账号的邮箱地址, 用于接收相关通知, 密码重置, 登录等操作',\n updatePrimaryEmail: '更改主邮箱地址',\n myEmail: '我的邮箱地址',\n myEmailDescription: '多邮箱功能用于同一用户有多个不同邮箱用于提交代码, 系统可识别并创建关联关系',\n addEmail: '新建邮箱地址',\n contactedEmail: '已关联邮箱',\n shouldValidation: '待验证',\n resendEmail: '重发邮件',\n\n differenceBetweenHTTPSAndSSH: 'HTTPS 与 SSH 有什么区别 ?',\n generateAndSetSSHKey: '请确认客户端的 SSH Key 已经生成并且在 CodeFever 上正确设置。',\n itsMyEmail: '这是我的邮箱',\n\n notificationSystem: '系统消息',\n notificationMention: '提到我的',\n tagRead: '标记为已读',\n tagAllRead: '标记所有为已读',\n deleteAllReaded: '删除所有已读用户消息',\n mergeRequestNotification: '合并请求通知',\n mergeRequestNotificationDesc: '可接收仓库成员发布的和并请求通知, 开发者及以上成员可接收',\n emailNotification: '邮件通知',\n emailNotificationDesc: '通知设置中的消息将发送到您的注册邮箱中。',\n\n searchByName: '查找姓名或邮箱',\n userStatusEnabled: '恢复确认',\n userStatusDisabled: '禁用确认',\n userStatusEnabled_N: '确认恢复用户 \"{n}\" ?',\n userStatusDisabled_N: '确认禁用用户 \"{n}\" ?',\n closeMFA: '关闭2FA认证',\n closeMFAConfirm: '关闭2FA认证确认',\n closeMFA_N: '确认关闭用户 \"{n}\" 2FA认证?',\n resetPassword: '重置密码',\n reset_N_Password: '重置用户 \"{n}\" 密码',\n searchRepository: '查找仓库',\n searchGroup: '查找仓库组',\n roleToOwner: '指定为所有者',\n setGroupOwner_S: '确定指定 {s} 为仓库组的所有者?',\n setAdministrator: '设置为管理员',\n cancelAdministrator: '取消管理员',\n memberRemoveConfirm: '成员删除确认',\n successAddUser: '添加用户成功',\n\n webhookEventsNeed: '请选择推送事件',\n webhookListEmpty: '还没有创建Webhook',\n useTime_n: '用时 {n} s',\n show_n_record: '显示最新{n}条记录'\n}\n\nexport default { ...data, __namespace__: 'message' }\n","const data = {\n _S_empty: '请输入{s}',\n _S_retype: '请再次输入{s}',\n _S_has_illegal_character: '{s}含有非法字符(只支持字母、数字、下划线(_)、中划线(-)和点(.)的组合)',\n _S_notChoose: '请选择{s}',\n _S_duplicate: '{s}重复',\n _S_invalid: '{s}不正确',\n _S_notFound: '没有找到此{s}',\n noMoreThan_N_characters: '不能超过{n}个字符',\n within_N1_to_N2_characters: '需要在{n1}至{n2}个字符之间',\n only_N1_or_N2_characters: '只能包含{n1}或{n2}个字符',\n requireCombinationOfCharactersNumbersAndUnderscore: '只能是字母、数字和下划线的组合',\n input_S_placeholder: '请输入{s},只支持字母、数字、下划线(_)、中划线(-)和点(.)的组合',\n inputNotSame: '两次输入不一致',\n inputSame: '两次输入一致',\n canNotAddCreatorAsMember: '创建者不能当作成员添加',\n\n createRepositoryFail: '创建仓库失败,请稍后重试',\n createGroupFail: '创建仓库组失败,请稍后重试',\n createBranchFail: '创建分支失败,请稍后重试',\n createTagFail: '创建标签失败,请稍后重试',\n createMergeRequestFail: '创建合并请求失败,请稍后重试',\n createProtectedBrancheRuleFail: '创建保护分支规则失败,请稍后重试',\n AddFail: '添加失败,请稍后重试',\n updateFail: '更新失败,请稍后重试',\n removeFail: '移除失败,请稍后重试',\n deleteFail: '删除失败,请稍后重试',\n verifyFail: '验证失败,请稍后重试',\n forkRepositoryFail: 'Fork仓库失败,请稍后重试',\n getFileFail: '获取完整文件失败,请稍后重试',\n getEmailCodeFail: '获取邮箱验证码失败,请稍后重试',\n getPhoneCodeFail: '获取手机验证码失败,请稍后重试',\n change_S_Fail: '修改{s}失败,请稍后重试',\n waitToRetry: '网络错误,请稍后重试',\n\n canNotChangeOwnerOfUserGroup: '不能更改个人默认仓库组的创建者',\n canNotDeleteUserGroup: '不能删除个人默认仓库组',\n canNotDeleteNonEmptyGroup: '仓库组内含有未删除的仓库, 请手动删除组内仓库后再试',\n mergeRequestExists: '存在已打开的合并请求',\n mergeFail: '合并失败,请稍后再试',\n reviewedCanNotAssign: '不能替换评审过的评审员',\n reviewedCanNotDelete: '不能删除评审过的评审员',\n branchProteced: '不能在保护分支上合并',\n userNotReview: '不能合并,还有评审员未评审',\n\n inputNewEmail: '请输入新的邮箱',\n bindEmailFirst: '你需要绑定邮箱才可以绑定第三方平台',\n wechatHasbound: '该微信号已经被绑定,请扫码登录后解绑重试',\n sshKeyDuplicate: '此 SSH Key 已经添加, 或在其他用户中'\n}\n\nexport default { ...data, __namespace__: 'message.error' }\n","const data = {\n createdGroup: '创建仓库组',\n updateGroup_S_Avator: '更新了仓库组 {s} 的头像',\n updateGroup_S_Name: '更新了仓库组 {s} 的名称',\n updateGroup_S_Description: '更新了仓库组 {s} 的描述',\n\n addGroup_S_Memeber: '向仓库组 {s} 添加了成员',\n changeGroup_S_MemebrRole: '设置了仓库组 {s} 内成员角色',\n removeGroup_S_Memebr: '移除了仓库组 {s} 的成员',\n setGroup_S_Creator: '设置了仓库组 {s} 的创建者',\n setGroup_S_URL: '修改了仓库组 {s} 的访问地址',\n\n createdRepository: '创建仓库',\n deleteRepository: '删除仓库',\n forkRepository: 'fork 并创建仓库',\n updateRepository_S_Avator: '更新了仓库 {s} 的头像',\n updateRepository_S_Name: '更新了仓库 {s} 的名称',\n updateRepository_S_Description: '更新了仓库 {s} 的描述',\n\n pushTo_S_Branch: '推送提交到仓库 {s} 的分支',\n pushTo_S_NewBranch: '推送分支到仓库 {s}',\n created_S_NewBranch: '在仓库 {s} 创建新分支',\n delete_S_Branch: '在仓库 {s} 删除了分支',\n update_S_DefaultBranch: '修改了仓库 {s} 的默认分支',\n created_S_ProtectedBranchRule: '在仓库 {s} 创建保护分支规则',\n update_S_ProtectedBranchRule: '修改了仓库 {s} 的保护分支规则',\n delete_S_ProtectedBranchRule: '删除了仓库 {s} 的保护分支规则',\n\n pushTo_S_Tag: '推送提交到仓库 {s} 的标签',\n pushTo_S_NewTag: '推送标签到仓库 {s}',\n created_S_NewTag: '在仓库 {s} 创建新标签',\n delete_S_Tag: '在仓库 {s} 删除了标签',\n\n addRepository_S_Memeber: '向仓库 {s} 添加了成员',\n changeRepository_S_MemebrRole: '设置了仓库 {s} 内成员角色',\n removeRepository_S_Memebr: '移除了仓库 {s} 的成员',\n setRepository_S_Creator: '设置了仓库 {s} 的创建者',\n setRepository_S_URL: '修改了仓库 {s} 的访问地址',\n\n open_S_MergeRquest: '在仓库 {s} 打开合并请求',\n close_S_MergeRquest: '在仓库 {s} 关闭合并请求',\n merge_S_MergeRquest: '在仓库 {s} 合并请求',\n assign_S_Reviewer: '在仓库 {s} 指定评审员',\n delete_S_Reviewer: '在仓库 {s} 删除评审员',\n review_S_Reviewer: '在仓库 {s} 评审了代码',\n\n create_S_Webhook: '在仓库 {s} 创建了webhook',\n update_S_Webhook: '在仓库 {s} 更新了webhook',\n delete_S_Webhook: '在仓库 {s} 删除了webhook'\n}\n\nexport default { ...data, __namespace__: 'message.activity' }\n","const data = {\n repository: '仓库',\n repository_pl: '仓库',\n\n group: '仓库组',\n group_pl: '仓库组',\n\n file: '文件',\n file_pl: '文件',\n\n commit: '提交',\n commit_pl: '提交',\n\n mergeRequest: '合并请求',\n mergeRequest_pl: '合并请求',\n\n branch: '分支',\n branch_pl: '分支',\n\n webhook: 'Webhook',\n webhook_pl: 'Webhooks',\n\n tag: '标签',\n tag_pl: '标签',\n\n member: '成员',\n member_pl: '成员',\n\n activity: '动态',\n activity_pl: '动态',\n\n setting: '设置',\n setting_pl: '设置',\n\n SSHKey: 'SSH Key',\n SSHKey_pl: 'SSH Keys',\n\n user: '用户',\n user_pl: '用户',\n\n fileTree: '文件树',\n merge: '合并',\n data: '数据',\n clone: '克隆',\n fork: 'Fork',\n limitation: '限制',\n role: '角色',\n team: '团队',\n code: '源码',\n hash: '哈希值',\n time: '时间',\n number: '数量',\n line: '行',\n\n guest: '访客',\n reporter: '监督者',\n developer: '开发者',\n maintianer: '维护者',\n owner: '所有者',\n\n parentNode: '父节点'\n}\n\nexport default { ...data, __namespace__: 'term' }\n","import Term from 'APPSRC/lang/zh-cn/Term'\n\nconst data = {\n ...Term,\n\n CodeFever: 'CodeFever',\n ID: 'ID',\n\n user: '用户',\n name: '名称',\n creator: '创建者',\n reviewer: '评审员',\n administrator: '管理员',\n title: '标题',\n description: '描述',\n origin: '来源',\n source: '源',\n target: '目标',\n url: 'URL',\n ssh: 'SSH',\n slug: '标识串',\n prefix: '前缀',\n avatar: '头像',\n icon: '图标',\n joinedAt: '加入时间',\n unknown: '未知',\n all: '所有',\n detail: '详情',\n language: '语言',\n webhook: 'Webhook',\n log: '日志',\n httpHeaders: '头部',\n httpBody: '响应数据',\n httpPayload: '请求数据',\n\n browser: '浏览',\n expand: '展开',\n times: '次',\n full: '完整',\n invite: '邀请',\n before: '前',\n\n new: '新建',\n add: '新增',\n open: '打开',\n close: '关闭',\n save: '保存',\n create: '创建',\n update: '更新',\n remove: '移除',\n modification: '修改',\n delete: '删除',\n and: '和',\n ok: '确定',\n cancel: '取消',\n copy: '拷贝',\n push: '推送',\n merge: '合并',\n chose: '选择',\n show: '显示',\n list: '列表',\n copied: '已复制',\n contain: '包含',\n request: '请求',\n response: '响应',\n bind: '绑定',\n unbind: '解绑',\n replace: '替换',\n sort: '排序',\n manage: '管理',\n protected: '保护',\n operating: '操作',\n approve: '评审',\n enable: '启用',\n disable: '禁用',\n\n last: '最近',\n default: '默认',\n active: '活跃',\n inactive: '非活跃',\n\n path: '路径',\n email: '电子邮件地址',\n password: '密码',\n oldPassword: '旧密码',\n newPassword: '新密码',\n mfaCode: 'MFA 密码',\n twoFactorAuthentication: '二因素认证',\n emailCode: '验证码',\n phoneCode: '验证码',\n phone: '手机',\n china: '中国',\n company: '公司',\n job: '职位',\n wechat: '微信',\n credential: '凭据',\n\n login: '登录',\n logout: '退出登录',\n\n next: '下一页',\n prev: '上一页',\n\n mergeMessage: '合并信息',\n submit: '提交',\n rule: '规则',\n allow: '允许',\n status: '状态',\n history: '历史',\n notification: '通知',\n\n learnMore: '了解更多',\n myServiceTicket: '我的工单',\n getHelp: '获取帮助',\n help: '帮助',\n result: '结果',\n success: '成功',\n failure: '失败',\n doc: '文档',\n adminArea: '管理后台',\n\n edit: '编辑',\n confirm: '确认'\n}\n\nexport default { ...data, __namespace__: 'phrase' }\n","import Term from 'APPSRC/lang/zh-cn/Term'\nimport Phrase from 'APPSRC/lang/zh-cn/Phrase'\n\n// let phraseSeperator = ''\n\nconst data = {\n ...Term,\n ...Phrase,\n\n dashboard: '概览',\n general: '常规',\n advanced: '高级',\n profile: '个人信息',\n mail: '多邮箱'\n}\n\nexport default { ...data, __namespace__: 'menu' }\n","import Term from 'APPSRC/lang/zh-cn/Term'\n// import Time from 'APPSRC/lang/zh-cn/Time'\nimport Phrase from 'APPSRC/lang/zh-cn/Phrase'\n\nconst phraseSeperator = ''\n\nconst data = {\n ...Phrase,\n ...Term,\n\n update_S_: '修改{s}',\n retryAfter_N_seconds: '{n} 秒后重试',\n userAvatar: [Phrase.user, Phrase.avatar].join(phraseSeperator),\n userName: [Phrase.user, Phrase.name].join(phraseSeperator),\n getEmailCode: ['获取', Phrase.emailCode].join(phraseSeperator),\n getPhoneCode: ['获取', Phrase.phoneCode].join(phraseSeperator),\n mostSeen: '常见',\n loginCredential: [Phrase.login, Phrase.credential].join(phraseSeperator),\n CodeFeverPassword: [Phrase.CodeFever, Phrase.password].join(phraseSeperator),\n wechatBind: [Phrase.wechat, Phrase.bind].join(phraseSeperator),\n unbind_P: '解除{p}绑定',\n\n repositoryID: [Term.repository, Phrase.ID].join(phraseSeperator),\n repositoryName: [Term.repository, Phrase.name].join(phraseSeperator),\n repositoryDescription: [Term.repository, Phrase.description].join(phraseSeperator),\n repositoryURL: [Term.repository, Phrase.url].join(phraseSeperator),\n repositorySlug: [Term.repository, Phrase.slug].join(phraseSeperator),\n repositoryMember: [Term.repository, Term.member].join(phraseSeperator),\n newRepository: [Phrase.new, Term.repository].join(phraseSeperator),\n forkRepository: [Term.fork, Term.repository].join(phraseSeperator),\n unknownRepository: [Phrase.unknown, Term.repository].join(phraseSeperator),\n allRepository: [Phrase.all, Term.repository].join(phraseSeperator),\n deleteRepository: [Phrase.delete, Term.repository].join(phraseSeperator),\n\n groupID: [Term.group, Phrase.ID].join(phraseSeperator),\n groupName: [Term.group, Phrase.name].join(phraseSeperator),\n groupDescription: [Term.group, Phrase.description].join(phraseSeperator),\n groupURL: [Term.group, Phrase.url].join(phraseSeperator),\n groupSlug: [Term.repository, Phrase.slug].join(phraseSeperator),\n groupMember: [Term.group, Term.member].join(phraseSeperator),\n newGroup: [Phrase.new, Term.group].join(phraseSeperator),\n unknownGroup: [Phrase.unknown, Term.group].join(phraseSeperator),\n deleteGroup: [Phrase.delete, Term.group].join(phraseSeperator),\n\n inviteMember: [Phrase.invite, Term.member].join(phraseSeperator),\n removeMember: [Phrase.remove, Term.member].join(phraseSeperator),\n\n forkFrom_S: [Term.fork, '自: {s}'].join(phraseSeperator),\n updateFrom_S1_To_S2: ['从 {s1} 更新为 {s2}'].join(phraseSeperator),\n\n repositoryAvatar: [Term.repository, Phrase.icon].join(phraseSeperator),\n groupAvatar: [Term.group, Phrase.icon].join(phraseSeperator),\n basicInfo: '基本信息',\n newPasswordConfirm: [Phrase.confirm, Phrase.newPassword].join(phraseSeperator),\n security: '安全性',\n setupNewMFADevice: '设置 MFA 设备',\n changeMFADevice: '更换 MFA 设备',\n removeMFADevice: '移除 MFA 设备',\n mfaCode1: ['第一组 ', Phrase.mfaCode].join(phraseSeperator),\n mfaCode2: ['第二组 ', Phrase.mfaCode].join(phraseSeperator),\n commitTime: [Phrase.commit, Phrase.time].join(phraseSeperator),\n copyPath: [Phrase.copy, Phrase.path].join(phraseSeperator),\n copyHash: [Phrase.copy, Term.hash].join(phraseSeperator),\n copyCode: [Phrase.copy, Term.code].join(phraseSeperator),\n lastCommit: [Phrase.last, Term.commit].join(phraseSeperator),\n lastUpdate: [Phrase.last, Phrase.update].join(phraseSeperator),\n\n updateCreator: [Phrase.update, Phrase.creator].join(phraseSeperator),\n updateRepositoryURL: [Phrase.update, Term.repository, Phrase.url].join(phraseSeperator),\n updateGroupURL: [Phrase.update, Term.group, Phrase.url].join(phraseSeperator),\n\n webhookSetting: [Term.webhook, Term.setting].join(phraseSeperator),\n createWebhook: [Phrase.create, Term.webhook].join(phraseSeperator),\n updateWebhook: [Phrase.update, Term.webhook].join(phraseSeperator),\n deleteWebhook: [Phrase.delete, Term.webhook].join(phraseSeperator),\n contentType: '数据格式',\n webhookSecret: '校验秘钥',\n webhookTrigger: '触发事件',\n pushTrigger: '仅推送事件',\n customeTrigger: '自定义',\n webhookList: 'Webhook列表',\n webhookLog: [Phrase.webhook, Phrase.log].join(phraseSeperator),\n\n createOrigin: [Phrase.create, Phrase.origin].join(phraseSeperator),\n choseCreateOrigin: [Phrase.chose, Phrase.create, Phrase.origin].join(phraseSeperator),\n tagDescription: [Term.tag, Phrase.description].join(phraseSeperator),\n tagName: [Term.tag, Phrase.name].join(phraseSeperator),\n branchName: [Term.branch, Phrase.name].join(phraseSeperator),\n defaultBranch: [Phrase.default, Term.branch].join(phraseSeperator),\n protectedBranch: [Phrase.protected, Term.branch].join(phraseSeperator),\n branchRule: [Phrase.branch, Phrase.rule].join(phraseSeperator),\n allowPush: [Phrase.allow, Phrase.push].join(phraseSeperator),\n allowMerge: [Phrase.allow, Phrase.merge].join(phraseSeperator),\n noData: ['没有', Term.data].join(phraseSeperator),\n newBranch: [Phrase.new, Term.branch].join(phraseSeperator),\n newTag: [Phrase.new, Term.tag].join(phraseSeperator),\n deleteBranch: [Phrase.delete, Term.branch].join(phraseSeperator),\n deleteTag: [Phrase.delete, Term.tag].join(phraseSeperator),\n updateTime: [Phrase.update, Term.time].join(phraseSeperator),\n updatedIn: '更新于',\n editIn: '编辑于',\n expandFullFile: [Phrase.expand, Phrase.full, Phrase.file].join(phraseSeperator),\n showDiffOnly: '仅展示修改行',\n codeDiff: '代码差异',\n requestCreated: '创建于',\n requestClosed: '关闭于',\n requestMerged: '合并于',\n createRepository: ['请', Phrase.create, Term.repository].join(phraseSeperator),\n\n commitActivity: [Term.commit, Phrase.activity].join(phraseSeperator),\n mergeRequestActivity: [Term.mergeRequest, Phrase.activity].join(phraseSeperator),\n memberActivity: [Term.member, Phrase.activity].join(phraseSeperator),\n\n addSSHKey: [Phrase.add, Term.SSHKey].join(phraseSeperator),\n emailManage: ['邮箱', Phrase.manage].join(phraseSeperator),\n memberManage: [Term.member, Phrase.manage].join(phraseSeperator),\n primaryEmail: '主邮箱',\n contactEmail: '关联邮箱列表',\n SSHKeyManage: [Term.SSHKey_pl, ' ', Phrase.manage].join(phraseSeperator),\n notificationCenter: '通知中心',\n notificationReceiveStatus: '接收通知状态',\n unread: '未读',\n\n fileModification: [Term.file, Phrase.modification].join(phraseSeperator),\n fileModificationList: [Phrase.modification, Term.file, Phrase.list].join(phraseSeperator),\n lineAdd: [Term.line, Phrase.add].join(phraseSeperator),\n lineDelete: [Term.line, Phrase.delete].join(phraseSeperator),\n browserFile: [Phrase.browser, Phrase.file].join(phraseSeperator),\n browserUnchangedFIle: [Phrase.browser, Phrase.modification, Phrase.before, Phrase.file].join(phraseSeperator),\n commitHash: [Term.commit, Term.hash].join(phraseSeperator),\n allFiles: [Phrase.all, Phrase.file].join(phraseSeperator),\n openFileTree: [Phrase.open, Term.fileTree].join(phraseSeperator),\n closeFileTree: [Phrase.close, Term.fileTree].join(phraseSeperator),\n\n requestMerge: [Phrase.request, Phrase.merge].join(phraseSeperator),\n createMergeRequest: [Phrase.create, Term.mergeRequest].join(phraseSeperator),\n closeMergeRequest: [Phrase.close, Term.mergeRequest].join(phraseSeperator),\n\n more: '查看更多',\n noMore: '没有更多',\n processing: '处理中',\n\n IJoined: '我参与的',\n ICreated: '我创建的',\n\n dangerOperation: '危险操作',\n dangerOperationConfirm: '最后确认危险操作',\n compareBranch: '对比分支并继续',\n lastModified: '最近修改',\n lastModified_N: ['第', '{n}', '次修改'].join(phraseSeperator),\n\n openMergeRequest: [Phrase.open, Term.mergeRequest].join(phraseSeperator),\n modificationBranch: [Phrase.modification, Term.branch].join(phraseSeperator),\n sourceBranch: [Phrase.source, Term.branch].join(phraseSeperator),\n targetBranch: [Phrase.target, Term.branch].join(phraseSeperator),\n repositoryAdvancedSetting: '仓库高级设置',\n branchSetting: '分支设置',\n groupAdvancedSetting: '仓库组高级设置',\n memberLimitation: [Term.member, Term.limitation].join(phraseSeperator),\n modificationLimitation: [Phrase.modification, Term.limitation].join(phraseSeperator),\n roleID_1: Term.guest,\n roleID_2: Term.reporter,\n roleID_3: Term.developer,\n roleID_4: Term.maintianer,\n roleID_5: Term.owner,\n yourself: '你自己',\n\n enabledMFA: '开启了2FA',\n disabledMFA: '未开启2FA',\n blocked: '禁用',\n createTime: '创建时间',\n addUser: '添加用户',\n\n statistic: '统计',\n systemResources: '系统资源',\n diskUsgae: '磁盘使用量',\n serviceStatus: '服务状态',\n\n host: '主机',\n senderName: '发件人名称',\n senderAddress: '发件人地址',\n register: '注册',\n allowRegister: '开放注册',\n urlPrefix: [Phrase.url, ' ', Phrase.prefix].join(phraseSeperator),\n sshPrefix: [Phrase.ssh, ' ', Phrase.prefix].join(phraseSeperator),\n\n support: '技术支持',\n feedback: '提交反馈',\n contribute: '为 CodeFever Community 贡献代码',\n about: '关于 CodeFever Community',\n\n pushEvent: '推送事件',\n changeMemberRole: [Phrase.modification, Term.member, Term.role].join(phraseSeperator),\n createProtectedBranchRule: '创建受保护分支规则',\n changeProtectedBranchRule: '修改受保护分支规则',\n removeProtectedBranchRule: '删除受保护分支规则',\n reviewReviewer: '评审代码',\n\n _N_repository: '{n} {n, plural, =0 {' + Term.repository + '}\\n=1 {' + Term.repository + '}\\nother {' + Term.repository_pl + '}}',\n _N_commit: '{n} {n, plural, =0 {' + Term.commit + '}\\n=1 {' + Term.commit + '}\\nother {' + Term.commit_pl + '}}',\n _N_branch: '{n} {n, plural, =0 {' + Term.branch + '}\\n=1 {' + Term.branch + '}\\nother {' + Term.branch_pl + '}}',\n _N_tag: '{n} {n, plural, =0 {' + Term.tag + '}\\n=1 {' + Term.tag + '}\\nother {' + Term.tag_pl + '}}',\n _N_byte: '{n} {n, plural, =0 {Byte}\\n=1 {Byte}\\nother {Bytes}}',\n _N_mergeRequest: '{n} {n, plural, =0 {' + Term.mergeRequest + '}\\n=1 {' + Term.mergeRequest + '}\\nother {' + Term.mergeRequest_pl + '}}',\n _N_member: '{n} {n, plural, =0 {' + Term.member + '}\\n=1 {' + Term.member + '}\\nother {' + Term.member_pl + '}}'\n}\n\nexport default { ...data, __namespace__: 'label' }\n","const data = {\n 'mergeRequest:create': '{user} 打开了和并请求: !{number} {title}',\n 'mergeRequest:close': '{user} 关闭了和并请求: !{number} {title}',\n 'mergeRequest:merge': '{user} 合并了和并请求: !{number} {title}',\n 'mergeRequestReviewer:create': '{user} 指定你为合并请求 !{number} {title} 的评审员',\n 'mergeRequestReviewer:review': '{user} 通过了和并请求 !{number} {title} 的评审'\n}\n\nexport default { ...data, __namespace__: 'notification' }\n","const data = {\n Added: 'Added',\n created: 'Created',\n updated: 'Updated',\n removed: 'Removed',\n deleted: 'Deleted',\n copied: 'Copied',\n merged: 'Merged',\n opened: 'Opened',\n closed: 'Closed',\n binded: 'Binded',\n unbinded: 'Unbinded',\n verified: 'Verified',\n approved: 'Approved',\n enabled: 'Enabled',\n disabled: 'Disabled',\n reseted: 'reseted',\n createPersonalGroupNotice: 'At Least One Group is Required',\n\n emailCodeHasSendNewEmail: 'A E-mail Contains Validation Code Has Sent To Your E-mail Box',\n phoneCodeHasSendNewPhone: 'A Text Message Contains Validation Code Has Sent To Your Cellphone',\n finishIdentityVerify: 'Input Password To Verify Your Identity',\n unbindEnterCodeFeverPassword: 'Input Password To Confirm',\n scanQrcodeBind: 'Scan QR Code To Bind Your Account By Using WeChat App',\n theAccountUsedWechat_N: 'This Account Has Binded Account Named \"{n}\", Are Your Confirm To Substitute It?',\n rebindWechat: 'Cancel',\n unbindAllProduct: 'Unbind All Pgyer\\'s Products',\n mfaGuide: 'Use Apps with MFA Feature to Scan the Following QRCode, Input Two Different MFA Code And Press Save Button to Setup a New MFA Device. You Can Search MFA in Any App Merket to Download a MFA App You Trusted in.',\n\n inputEmailToAddMemeber: 'Input Email To Add A Member',\n groupMemberCanControlRepositoryNotice: 'Members In Group Can Also Access This Repositoy Using Same Role Privilige In Group',\n\n repositoryChangeCreatorNotice: 'Sure To Change Creator ? Both New And Old Creator Will Be Owner Of This Repository',\n repositoryChangeURLNotice: 'Sure To Change URL ? Both Git Client And Web Wiil Not Respond For Old URL, You May Wish To Reset Remote Via git remote Command',\n repositoryDeleteRepositoryNotice: 'Sure To Delete This Repositoy ? Your Repository Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.',\n repositoryDeleteRepositoryConfirmNotice: 'This Repository Will Be Deleted, Are You Sure About This ? Your Repository Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.',\n\n groupChangeCreatorNotice: 'Sure To Change Creator ? Both New And Old Creator Will Be Owner Of This Repository, Notice That You Can Not Change Creator Of Default Group',\n groupChangeURLNotice: 'Sure To Change URL ? Both Git Client And Web Wiil Not Respond For Old URL, You May Wish To Reset Remote Via git remote Command',\n groupDeleteRepositoryNotice: 'Sure To Delete This Group ? Your Group And Related Repositoies Will NOT BE AVAILABLE Any More, All Record Related To This Group Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.',\n groupDeleteRepositoryConfirmNotice: 'This Group Will Be Deleted, Are You Sure About This ? Your Group And Related Repositoies Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.',\n\n inputCommitFilter: 'Input To Filter',\n repositoryEmpty: 'Empty Repository',\n displaySource: 'View Source',\n displayRendereFile: 'View Rendered',\n fileContentEmpty: 'Empty File',\n fileContentOversize: 'File Size Exceed limitation, Check It Out Localy',\n fileTypeNotSupport: 'Binary File Can Not Shown',\n diffFileToMany: ' The maximum number of files allowed to be displayed is exceeded, please check locally',\n createNewRepository: 'create a new repository on the command line',\n pushRepository: 'push an existing repository from the command line',\n\n _S_empty: 'Please Input {s}',\n repository_S_empty: 'No {s} In Repository',\n repositoryBranchEmpty: 'Branch List Empty',\n repositoryTagEmpty: 'Tag List Empty',\n mergeRequestEmpty: 'Empty Merge Request List',\n addNewCommit: 'Add New Commit',\n alreadyMergeRequest: 'Merged',\n alreadyCloseRequest: 'Close',\n assignReviewerTitle: 'Assigne Reviewer(Only One Person Can Be Assigned)',\n selectReviewer: 'Select Reviewer',\n notSelectReviewers: 'No Assign Reviewer',\n deleteReviewer: 'Delete Reviewer',\n notApprove: 'Not Approve',\n assign_N_M_Reviewer: 'Assign {n} As A Reviewer For Merge Request {m}',\n delete_M_N_Reviewer: 'Removed Reviewer {n} Of Merge Request {m}',\n review_M_Reviewer: 'Approve Changes Of Merge Request {m}',\n\n _S_listEmpty: 'Empty {s} List',\n repositoryListEmptyNotice: 'Create A Repositoy To Explore',\n groupListEmptyNotice: 'Create A Group To Manage Your Repositories',\n\n input_S_name: 'Input {s} To Filter',\n confirmDelete: 'Delteing {s}?',\n\n jumpWithLink: 'Go To This Link',\n noRepositoryFind: 'No view permission',\n noCommitRecord: 'No Commit Record',\n plsInputInvitedEmail: 'Input E-mail to Invite',\n repositoryDeleteTipFirst: 'All Recored Related To This Repositoy Will Also Be DELTED, Include Source, Merge Request Record etc.',\n repositoryDeleteTipSecond: 'A Delted Repository CAN NOT Recover!',\n inputMergeCommit: 'Input Commit Message, Check Squash When Needed.',\n selectDifferentBranch: 'Can Not Merge INTO Source Itself',\n mergeConflictTitle: 'Conflict Found In Merge Progeress, Follows Instructions Below To Resolve Conflict Localy ',\n mergeConflictTip1: '1: Pull Target Branch To Local',\n mergeConflictTip2: '2: Check File Diff',\n mergeConflictTip3: '3: Resolve Conflicts And Merge',\n mergeConflictTip4: '4 : Push Changes To Remote',\n from_S_Merge_S: 'Request Merge From {s1} To {s2}',\n\n defaultGroupReqiured: 'A Group Is Required',\n defaultGroupReqiuredDescription: 'At Least One Group Is Required To Create Repository',\n\n someVersion: 'Related Version',\n backHome: 'Homepage',\n inputSSHKEYContent: 'Please Enter The SSH Key',\n inputSSHKEYName: 'Please Enter SSH Key Name',\n defaultBranchDescription: 'The Default Branch Is Regarded As The Basic Branch In The Code Base And Is The Target Branch For All Clones, Code Submissions, And Merge Requests',\n settingToDefaultBranch: 'Set As Default Branch',\n updateDefaultBranch: 'Modify The Default Branch',\n settingDefaultBranch: 'Please Set The Default Branch',\n protectedBranchDescription: 'Protecting Branches Will Ensure Branch Security, And Roles Other Than Owner Are Not Allowed To Be Pushed And Deleted Forcibly',\n protectedBranchRuleEmpty: 'There Are No Protection Branch Rules At Present, Please Create A New Protection Branch Rule To Protect Branch Safety',\n inputBranchOrRegexp: 'Please Enter The Branch Name or Universal Rules',\n createProtectedBranchRule: 'New Protection Branch Rule',\n updateProtectedBranchRule: 'Modify Protection Branch Rule',\n deleteProtectedBranchRule: 'Delete Protection Branch Rule',\n noBodyAllow: 'Nobody',\n\n primaryEmail: 'Primary E-mail',\n primaryEmailDescription: 'The Email Address Of The Current CodeFever Account, Used To Receive Relevant Notifications, Password Reset, Login And Other Operations',\n updatePrimaryEmail: 'Change Primary E-mail',\n myEmail: 'My E-mail',\n myEmailDescription: 'Multi-mailbox Function Is Used For The Same User To Have Multiple Different Mailboxes For Code Submission, The System Can Identify And Create An Association Relationship',\n addEmail: 'Add E-mail',\n contactedEmail: 'Mailbox Linked',\n shouldValidation: 'To Be Verified',\n resendEmail: 'Resend Mail',\n\n differenceBetweenHTTPSAndSSH: 'HTTPS or SSH, Which one should I choose ?',\n generateAndSetSSHKey: 'Please Confirm The SSH Key Has Been Generated And Set Porperly On CodeFever.',\n itsMyEmail: 'It\\'s My Email',\n\n notificationSystem: 'System Message',\n notificationMention: 'Mentioned Me',\n tagRead: 'Mark As Read',\n tagAllRead: 'Mark All As Read',\n deleteAllReaded: 'Delete All Read User Messages',\n mergeRequestNotification: 'Notification Of Merge Request',\n mergeRequestNotificationDesc: 'Can Receive And Request Notifications Issued By Warehouse Members, Developers And Above Members Can Receive',\n emailNotification: 'E-mail notification',\n emailNotificationDesc: 'The Message In The Notification Settings Will Be Sent To Your Registered Mailbox.',\n\n searchByName: 'Search by name or email',\n userStatusEnabled: 'Enable confirmation',\n userStatusDisabled: 'Disable confirmation',\n userStatusEnabled_N: 'Confirm to enable user \"{n}\"?',\n userStatusDisabled_N: 'Confirm to disable user \"{n}\"?',\n closeMFA: 'Turn off 2FA certification',\n closeMFAConfirm: 'Close 2FA authentication confirmation',\n closeMFA_N: 'Are you sure to turn off 2FA authentication for user \"{n}\"?',\n resetPassword: 'Reset Password',\n reset_N_Password: 'Reset user \"{n}\" password',\n searchRepository: 'Search repository',\n searchGroup: 'Sreach group',\n roleToOwner: 'Designated as owner',\n setGroupOwner_S: 'Are you sure to specify {s} as the owner of the group?',\n setAdministrator: 'Set as administrator',\n cancelAdministrator: 'Cancel an administrator',\n memberRemoveConfirm: 'Member delete confirmation',\n successAddUser: 'User added successfully',\n\n webhookEventsNeed: 'Please select events',\n webhookListEmpty: 'Webhook List Empty',\n useTime_n: 'Completed in {n} seconds',\n show_n_record: 'Show latest {n} records'\n}\n\nexport default { ...data, __namespace__: 'message' }\n","const data = {\n _S_empty: 'Please Input {s}',\n _S_retype: 'Please Retype {s}',\n _S_has_illegal_character: 'Only Combination of Alphanumeric \\'_\\' \\'-\\' \\'.\\' Allowed in {s}',\n _S_notChoose: 'Please Choose {s}',\n _S_duplicate: '{s} Duplicated',\n _S_invalid: '{s} Invalid',\n _S_notFound: '{s} Not Found',\n noMoreThan_N_characters: 'No More{n} Characters',\n within_N1_to_N2_characters: 'Between {n1} to {n2} Characters',\n only_N1_or_N2_characters: 'Only {n1} Or {n2} Characters Allowed',\n requireCombinationOfCharactersNumbersAndUnderscore: 'Only Combination Of Numberic, Underscore And Character Allowd',\n input_S_placeholder: 'Please Input {s}, Only Numberic, Underscore, strike, dot And Character Allowed',\n inputNotSame: 'Doesn\\'t Match The Retype Field',\n inputSame: 'Same Input',\n canNotAddCreatorAsMember: 'Can Not Add Creator As Member',\n\n createRepositoryFail: 'Create Repository Fail, Please Retry Later',\n createGroupFail: 'Create Group Fail, Please Retry Later',\n createBranchFail: 'Create Branch Fail, Please Retry Later',\n createTagFail: 'Create Tags Fail, Please Retry Later',\n createMergeRequestFail: 'Create Merge Request Fail, Please Retry Later',\n createProtectedBrancheRuleFail: 'Failed To Create Protection Branch Rule, Please Retry Later',\n AddFail: 'Fail To Add, Please Retry Later',\n updateFail: 'Fail To Update, Please Retry Later',\n removeFail: 'Fail To Remove, Please Retry Later',\n deleteFail: 'Fail To Delete, Please Retry Later',\n verifyFail: 'Fail To Verify, Please Retry Later',\n forkRepositoryFail: 'Fail To Fork, Please Retry Later',\n getFileFail: 'Fail To Get File Content, Please Retry Later',\n getEmailCodeFail: 'Fail To Get Email Validation Code, Please Retry Later',\n getPhoneCodeFail: 'Fail To Get Phone Number Validation Code, Please Retry Later',\n change_S_Fail: 'Fail To Update {s}, Please Retry Later',\n waitToRetry: 'Connection Down, Please Retry Later',\n\n canNotChangeOwnerOfUserGroup: 'Creator Of Default Group CAN NOT Be Modified',\n canNotDeleteUserGroup: 'Default Group CAN NOT Be Deleted',\n canNotDeleteNonEmptyGroup: 'Group CAN NOT Be Deleted When Contains Repository',\n mergeRequestExists: 'Same Merge Request Exsits',\n mergeFail: 'Fail To Merge, Please Retry Later',\n reviewedCanNotAssign: 'Can’t Replace The Reviewer',\n reviewedCanNotDelete: 'Cannot Delete Reviewers Who Have Reviewed The Code',\n branchProteced: 'Can Not Perform Merge On Proteced Branch',\n userNotReview: 'Cannot Be Merged, And The Reviewers Have Not Reviewed',\n\n inputNewEmail: 'Input New Email',\n bindEmailFirst: 'An Login Email Is Required When Bind Account Of Other Platform',\n wechatHasbound: 'This Account Has Been Used, Please Select Another Account And Retry',\n sshKeyDuplicate: 'This SSH Key has already been added, or in another user'\n}\n\nexport default { ...data, __namespace__: 'message.error' }\n","const data = {\n createdGroup: 'Create A Group',\n updateGroup_S_Avator: 'Update Avatar Of Group {s}',\n updateGroup_S_Name: 'Update Name Of Group {s}',\n updateGroup_S_Description: 'Update Description Of Group {s}',\n\n addGroup_S_Memeber: 'Add New Member To Group {s}',\n changeGroup_S_MemebrRole: 'Update Role Of A Member In Group {s}',\n removeGroup_S_Memebr: 'Remove A Member In Group {s}',\n setGroup_S_Creator: 'Set A Member As Creator Of Group {s}',\n setGroup_S_URL: 'Change URL Of Group {s}',\n\n createdRepository: 'Create A Repository',\n deleteRepository: 'Delete A Repository',\n forkRepository: 'Frok And Create A Repository',\n updateRepository_S_Avator: 'Update Avatar Of Repository {s}',\n updateRepository_S_Name: 'Update Name Of Repository {s}',\n updateRepository_S_Description: 'Update Description Of Repository {s}',\n\n pushTo_S_Branch: 'Push Commits To Repository {s}',\n pushTo_S_NewBranch: 'Push Branches To Repository {s}',\n created_S_NewBranch: 'Add Branch In Repository {s}',\n delete_S_Branch: 'Delete Branche In Repository {s}',\n update_S_DefaultBranch: 'Modified The Default Branch Of Repository {s}',\n created_S_ProtectedBranchRule: 'Create Protection Branch Rule in Repository {s}',\n update_S_ProtectedBranchRule: 'Modified The Protection Branch Rule Of Repository {s}',\n delete_S_ProtectedBranchRule: 'Removed Protection Branch Rule For Repository {s}',\n\n pushTo_S_Tag: 'Push Commits To A Tag Of Repository {s}',\n pushTo_S_NewTag: 'Push Tags To Repository {s}',\n created_S_NewTag: 'Create A Tag In Repository {s}',\n delete_S_Tag: 'Delete A Tag In Repository {s}',\n\n addRepository_S_Memeber: 'Add A Member To Repository {s}',\n changeRepository_S_MemebrRole: 'Set Role To A Memebre In Repository {s}',\n removeRepository_S_Memebr: 'Remove Members in Repository {s}',\n setRepository_S_Creator: 'Set A Member As Creator Of Repository {s}',\n setRepository_S_URL: 'Change URL Of Repository {s}',\n\n open_S_MergeRquest: 'Open A Merge Request In Repository {s}',\n close_S_MergeRquest: 'Close A Merge Request In Repository {s}',\n merge_S_MergeRquest: 'Merged A Merge Request In Repository {s}',\n assign_S_Reviewer: 'Assign Reviewer In Repository {s}',\n delete_S_Reviewer: 'Delete Reviewer In Repository {s}',\n review_S_Reviewer: 'Approve Changes In Repository {s}',\n\n create_S_Webhook: 'Create Webhook In Repository {s}',\n update_S_Webhook: 'Update Webhook In Repository {s}',\n delete_S_Webhook: 'Delete Webhook In Repository {s}'\n}\n\nexport default { ...data, __namespace__: 'message.activity' }\n","const data = {\n repository: 'Repository',\n repository_pl: 'Repositories',\n\n group: 'Group',\n group_pl: 'Groups',\n\n file: 'File',\n file_pl: 'Files',\n\n commit: 'Commit',\n commit_pl: 'Commits',\n\n mergeRequest: 'Merge Request',\n mergeRequest_pl: 'Merge Requests',\n\n branch: 'Branch',\n branch_pl: 'Branches',\n\n webhook: 'Webhook',\n webhook_pl: 'Webhooks',\n\n tag: 'Tag',\n tag_pl: 'Tags',\n\n member: 'Member',\n member_pl: 'Members',\n\n activity: 'Activity',\n activity_pl: 'Activities',\n\n setting: 'Setting',\n setting_pl: 'Settings',\n\n SSHKey: 'SSH Key',\n SSHKey_pl: 'SSH Keys',\n\n user: 'User',\n user_pl: 'Users',\n\n fileTree: 'File Tree',\n merge: 'Merge',\n data: 'Data',\n clone: 'Clone',\n fork: 'Fork',\n limitation: 'Limitation',\n role: 'Role',\n team: 'Team',\n code: 'Source',\n hash: 'Hash',\n time: 'Time',\n number: 'Count',\n line: 'Line',\n\n guest: 'Guest',\n reporter: 'Reporter',\n developer: 'Developer',\n maintianer: 'Maintainer',\n owner: 'Owner',\n\n parentNode: 'Parent Node'\n}\n\nexport default { ...data, __namespace__: 'term' }\n","import Term from 'APPSRC/lang/en-us/Term'\n\nconst data = {\n ...Term,\n\n CodeFever: 'CodeFever',\n ID: 'ID',\n\n user: 'User',\n name: 'Name',\n creator: 'Creator',\n reviewer: 'Reviewer',\n administrator: 'Administrator',\n title: 'Title',\n description: 'Description',\n origin: 'Origin',\n source: 'Source',\n target: 'Target',\n url: 'URL',\n ssh: 'SSH',\n slug: 'Slug',\n prefix: 'Prefix',\n avatar: 'Avatar',\n icon: 'Icon',\n joinedAt: 'Joined In',\n unknown: 'Unknown',\n all: 'All',\n detail: 'Detail',\n language: 'Language',\n webhook: 'Webhook',\n log: 'Log',\n httpHeaders: 'Headers',\n httpBody: 'Body',\n httpPayload: 'Payload',\n\n browser: 'View',\n expand: 'Expand',\n full: 'Full',\n invite: 'Invite',\n times: 'Times',\n before: 'Before',\n\n new: 'New',\n add: 'Add',\n open: 'Open',\n close: 'Close',\n save: 'Save',\n create: 'Create',\n update: 'Update',\n remove: 'Remove',\n modification: 'Modify',\n delete: 'Delete',\n and: 'And',\n ok: 'OK',\n cancel: 'Cancel',\n copy: 'Copy',\n push: 'Push',\n merge: 'Merge',\n chose: 'Choose',\n show: 'Show',\n list: 'List',\n copied: 'Copied',\n contain: 'Contain',\n request: 'Request',\n response: 'Response',\n bind: 'Bind',\n unbind: 'Unbind',\n replace: 'Replace',\n sort: 'Sort',\n manage: 'Manage',\n protected: 'Protected',\n operating: 'Operating',\n approve: 'Approve',\n enable: 'Enable',\n disable: 'Disable',\n\n last: 'Latest',\n default: 'Default',\n active: 'Active',\n inactive: 'Inactive',\n\n path: 'Path',\n email: 'E-mail',\n password: 'Password',\n oldPassword: 'Current Password',\n newPassword: 'New Password',\n mfaCode: 'MFA Code',\n twoFactorAuthentication: 'Two-Factor Authentication',\n emailCode: 'Validation Code',\n phoneCode: 'Validation Code',\n phone: 'Cellphone',\n china: 'China',\n company: 'Company',\n job: 'Job',\n wechat: 'Wechat',\n credential: 'Credential',\n\n login: 'Sign In',\n logout: 'Sign Out',\n\n next: 'Next',\n prev: 'Previous',\n\n mergeMessage: 'Merge Message',\n submit: 'Submit',\n rule: 'Rule',\n allow: 'Allow',\n status: 'Status',\n history: 'History',\n notification: 'Notification',\n\n learnMore: 'Learn More',\n myServiceTicket: 'My Service Tickets',\n getHelp: 'Get Help',\n help: 'Help',\n result: 'Result',\n success: 'Success',\n failure: 'Failure',\n doc: 'DOC',\n adminArea: 'Admin Area',\n\n edit: 'Edit',\n confirm: 'Confirm'\n}\n\nexport default { ...data, __namespace__: 'phrase' }\n","import Term from 'APPSRC/lang/en-us/Term'\nimport Phrase from 'APPSRC/lang/en-us/Phrase'\n\n// let phraseSeperator = ''\n\nconst data = {\n ...Term,\n ...Phrase,\n\n dashboard: 'Dashboard',\n general: 'General',\n advanced: 'Advanced',\n profile: 'Profile',\n mail: 'E-mails'\n}\n\nexport default { ...data, __namespace__: 'menu' }\n","import Term from 'APPSRC/lang/en-us/Term'\n// import Time from 'APPSRC/lang/zh-cn/Time'\nimport Phrase from 'APPSRC/lang/en-us/Phrase'\n\nconst phraseSeperator = ' '\n\nconst data = {\n ...Phrase,\n ...Term,\n\n update_S_: 'Modify {s}',\n retryAfter_N_seconds: 'Retry After {n} Seconds',\n userAvatar: [Phrase.user, Phrase.avatar].join(phraseSeperator),\n userName: [Phrase.user, Phrase.name].join(phraseSeperator),\n getEmailCode: ['Get', Phrase.emailCode].join(phraseSeperator),\n getPhoneCode: ['Get', Phrase.phoneCode].join(phraseSeperator),\n mostSeen: 'Most Seen',\n loginCredential: [Phrase.login, Phrase.credential].join(phraseSeperator),\n CodeFeverPassword: [Phrase.CodeFever, Phrase.password].join(phraseSeperator),\n wechatBind: [Phrase.wechat, Phrase.bind].join(phraseSeperator),\n unbind_P: 'Unbind {p}',\n\n repositoryID: [Term.repository, Phrase.ID].join(phraseSeperator),\n repositoryName: [Term.repository, Phrase.name].join(phraseSeperator),\n repositoryDescription: [Term.repository, Phrase.description].join(phraseSeperator),\n repositoryURL: [Term.repository, Phrase.url].join(phraseSeperator),\n repositorySlug: [Term.repository, Phrase.slug].join(phraseSeperator),\n repositoryMember: [Term.repository, Term.member].join(phraseSeperator),\n newRepository: [Phrase.new, Term.repository].join(phraseSeperator),\n forkRepository: [Term.fork, Term.repository].join(phraseSeperator),\n unknownRepository: [Phrase.unknown, Term.repository].join(phraseSeperator),\n allRepository: [Phrase.all, Term.repository].join(phraseSeperator),\n deleteRepository: [Phrase.delete, Term.repository].join(phraseSeperator),\n\n groupID: [Term.group, Phrase.ID].join(phraseSeperator),\n groupName: [Term.group, Phrase.name].join(phraseSeperator),\n groupDescription: [Term.group, Phrase.description].join(phraseSeperator),\n groupURL: [Term.group, Phrase.url].join(phraseSeperator),\n groupSlug: [Term.repository, Phrase.slug].join(phraseSeperator),\n groupMember: [Term.group, Term.member].join(phraseSeperator),\n newGroup: [Phrase.new, Term.group].join(phraseSeperator),\n unknownGroup: [Phrase.unknown, Term.group].join(phraseSeperator),\n deleteGroup: [Phrase.delete, Term.group].join(phraseSeperator),\n\n inviteMember: [Phrase.invite, Term.member].join(phraseSeperator),\n removeMember: [Phrase.remove, Term.member].join(phraseSeperator),\n\n forkFrom_S: [Term.fork, 'From: {s}'].join(phraseSeperator),\n updateFrom_S1_To_S2: ['Update From {s1} To {s2}'].join(phraseSeperator),\n\n repositoryAvatar: [Term.repository, Phrase.icon].join(phraseSeperator),\n groupAvatar: [Term.group, Phrase.icon].join(phraseSeperator),\n basicInfo: 'Basic Info',\n newPasswordConfirm: [Phrase.confirm, Phrase.newPassword].join(phraseSeperator),\n security: 'Security',\n setupNewMFADevice: 'Setup New MFA Device',\n changeMFADevice: 'Change MFA Device',\n removeMFADevice: 'Remove MFA Device',\n mfaCode1: ['First', Phrase.mfaCode].join(phraseSeperator),\n mfaCode2: ['Second', Phrase.mfaCode].join(phraseSeperator),\n commitTime: [Phrase.commit, Phrase.time].join(phraseSeperator),\n copyPath: [Phrase.copy, Phrase.path].join(phraseSeperator),\n copyHash: [Phrase.copy, Term.hash].join(phraseSeperator),\n copyCode: [Phrase.copy, Term.code].join(phraseSeperator),\n lastCommit: [Phrase.last, Term.commit].join(phraseSeperator),\n lastUpdate: [Phrase.last, Phrase.update].join(phraseSeperator),\n\n updateCreator: [Phrase.update, Phrase.creator].join(phraseSeperator),\n updateRepositoryURL: [Phrase.update, Term.repository, Phrase.url].join(phraseSeperator),\n updateGroupURL: [Phrase.update, Term.group, Phrase.url].join(phraseSeperator),\n\n webhookSetting: [Term.webhook, Term.setting].join(phraseSeperator),\n createWebhook: [Phrase.create, Term.webhook].join(phraseSeperator),\n updateWebhook: [Phrase.update, Term.webhook].join(phraseSeperator),\n deleteWebhook: [Phrase.delete, Term.webhook].join(phraseSeperator),\n contentType: 'Content Type',\n webhookSecret: 'Secret Key',\n webhookTrigger: 'Trigger Event',\n pushTrigger: 'Just the push event',\n customeTrigger: 'Customized',\n webhookList: 'Webhook List',\n webhookLog: [Phrase.webhook, Phrase.log].join(phraseSeperator),\n\n createOrigin: [Phrase.create, Phrase.origin].join(phraseSeperator),\n choseCreateOrigin: [Phrase.chose, Phrase.create, Phrase.origin].join(phraseSeperator),\n tagDescription: [Term.tag, Phrase.description].join(phraseSeperator),\n tagName: [Term.tag, Phrase.name].join(phraseSeperator),\n branchName: [Term.branch, Phrase.name].join(phraseSeperator),\n defaultBranch: [Phrase.default, Term.branch].join(phraseSeperator),\n protectedBranch: [Phrase.protected, Term.branch].join(phraseSeperator),\n branchRule: [Phrase.branch, Phrase.rule].join(phraseSeperator),\n allowPush: [Phrase.allow, Phrase.push].join(phraseSeperator),\n allowMerge: [Phrase.allow, Phrase.merge].join(phraseSeperator),\n noData: ['No', Term.data].join(phraseSeperator),\n newBranch: [Phrase.new, Term.branch].join(phraseSeperator),\n newTag: [Phrase.new, Term.tag].join(phraseSeperator),\n deleteBranch: [Phrase.delete, Term.branch].join(phraseSeperator),\n deleteTag: [Phrase.delete, Term.tag].join(phraseSeperator),\n updateTime: [Phrase.update, Term.time].join(phraseSeperator),\n updatedIn: 'Updated At',\n editIn: 'Edited At',\n expandFullFile: [Phrase.expand, Phrase.full, Phrase.file].join(phraseSeperator),\n showDiffOnly: 'Show Diff',\n codeDiff: 'Diff',\n requestCreated: 'Created At',\n requestClosed: 'Closed At',\n requestMerged: 'Merged At',\n createRepository: ['Please', Phrase.create, Term.repository].join(phraseSeperator),\n\n commitActivity: [Term.commit, Phrase.activity].join(phraseSeperator),\n mergeRequestActivity: [Term.mergeRequest, Phrase.activity].join(phraseSeperator),\n memberActivity: [Term.member, Phrase.activity].join(phraseSeperator),\n\n addSSHKey: [Phrase.add, Term.SSHKey].join(phraseSeperator),\n emailManage: [Phrase.email, Phrase.manage].join(phraseSeperator),\n memberManage: [Term.member, Phrase.manage].join(phraseSeperator),\n primaryEmail: 'Primary E-mail',\n contactEmail: 'List Of Associated Mailboxes',\n SSHKeyManage: [Term.SSHKey_pl, Phrase.manage].join(phraseSeperator),\n notificationCenter: 'Notification Center',\n notificationReceiveStatus: 'Receive Notification Status',\n unread: 'Unread',\n\n fileModification: [Term.file, Phrase.modification].join(phraseSeperator),\n fileModificationList: [Phrase.modification, Term.file, Phrase.list].join(phraseSeperator),\n lineAdd: [Term.line, Phrase.add].join(phraseSeperator),\n lineDelete: [Term.line, Phrase.delete].join(phraseSeperator),\n browserFile: [Phrase.browser, Phrase.file].join(phraseSeperator),\n browserUnchangedFIle: [Phrase.browser, Phrase.modification, Phrase.before, Phrase.file].join(phraseSeperator),\n commitHash: [Term.commit, Term.hash].join(phraseSeperator),\n allFiles: [Phrase.all, Phrase.file].join(phraseSeperator),\n openFileTree: [Phrase.open, Term.fileTree].join(phraseSeperator),\n closeFileTree: [Phrase.close, Term.fileTree].join(phraseSeperator),\n\n requestMerge: [Phrase.request, Phrase.merge].join(phraseSeperator),\n createMergeRequest: [Phrase.create, Term.mergeRequest].join(phraseSeperator),\n closeMergeRequest: [Phrase.close, Term.mergeRequest].join(phraseSeperator),\n\n more: 'More',\n noMore: 'No More',\n processing: 'Processing',\n\n IJoined: 'Joined',\n ICreated: 'Created By Me',\n\n dangerOperation: 'Dangerous Action',\n dangerOperationConfirm: 'Confirm Dangerous Action',\n compareBranch: 'Compare and Continue',\n lastModified: 'Last Modified',\n lastModified_N: '{n}{n, plural, =1 {st}\\n=2 {nd}\\n=3 {rd}\\nother {th}} Revision',\n\n openMergeRequest: [Phrase.open, Term.mergeRequest].join(phraseSeperator),\n modificationBranch: [Phrase.modification, Term.branch].join(phraseSeperator),\n sourceBranch: [Phrase.source, Term.branch].join(phraseSeperator),\n targetBranch: [Phrase.target, Term.branch].join(phraseSeperator),\n repositoryAdvancedSetting: 'Repository Advanced Settings',\n branchSetting: 'Branch Settings',\n groupAdvancedSetting: 'Group Advanced Settings',\n memberLimitation: [Term.member, Term.limitation].join(phraseSeperator),\n modificationLimitation: [Phrase.modification, Term.limitation].join(phraseSeperator),\n roleID_1: Term.guest,\n roleID_2: Term.reporter,\n roleID_3: Term.developer,\n roleID_4: Term.maintianer,\n roleID_5: Term.owner,\n yourself: 'It\\'s you',\n\n enabledMFA: '2FA Enabled',\n disabledMFA: '2FA Disabled',\n blocked: 'Blocked',\n createTime: 'Created Time',\n addUser: 'Add user',\n\n statistic: 'Statistic',\n systemResources: 'System Resources',\n diskUsgae: 'Disk Usgae',\n serviceStatus: 'Service Status',\n\n host: 'Host',\n senderName: 'Sender Name',\n senderAddress: 'Sender Email Address',\n register: 'Register',\n allowRegister: 'Allow Register',\n urlPrefix: [Phrase.url, Phrase.prefix].join(phraseSeperator),\n sshPrefix: [Phrase.ssh, Phrase.prefix].join(phraseSeperator),\n\n support: 'Technical Support',\n feedback: 'Submit Feedback',\n contribute: 'Contribute to CodeFever Community',\n about: 'About CodeFever Community',\n\n pushEvent: 'Push Event',\n changeMemberRole: [Phrase.modification, Term.member, Term.role].join(phraseSeperator),\n createProtectedBranchRule: 'Create protected branch rule',\n changeProtectedBranchRule: 'Update protected branch rule',\n removeProtectedBranchRule: 'remove protected branch rule',\n reviewReviewer: 'Review Code',\n\n _N_repository: '{n} {n, plural, =0 {' + Term.repository + '}\\n=1 {' + Term.repository + '}\\nother {' + Term.repository_pl + '}}',\n _N_commit: '{n} {n, plural, =0 {' + Term.commit + '}\\n=1 {' + Term.commit + '}\\nother {' + Term.commit_pl + '}}',\n _N_branch: '{n} {n, plural, =0 {' + Term.branch + '}\\n=1 {' + Term.branch + '}\\nother {' + Term.branch_pl + '}}',\n _N_tag: '{n} {n, plural, =0 {' + Term.tag + '}\\n=1 {' + Term.tag + '}\\nother {' + Term.tag_pl + '}}',\n _N_byte: '{n} {n, plural, =0 {Byte}\\n=1 {Byte}\\nother {Bytes}}',\n _N_mergeRequest: '{n} {n, plural, =0 {' + Term.mergeRequest + '}\\n=1 {' + Term.mergeRequest + '}\\nother {' + Term.mergeRequest_pl + '}}',\n _N_member: '{n} {n, plural, =0 {' + Term.member + '}\\n=1 {' + Term.member + '}\\nother {' + Term.member_pl + '}}'\n}\n\nexport default { ...data, __namespace__: 'label' }\n","const data = {\n 'mergeRequest:create': '{user} Open Merge Request: !{number} {title}',\n 'mergeRequest:close': '{user} Close Merge Request: !{number} {title}',\n 'mergeRequest:merge': '{user} Merge The Merge Request: !{number} {title}',\n 'mergeRequestReviewer:create': '{user} Assign You As The Reviewer For The Merge Request !{number} {title}',\n 'mergeRequestReviewer:review': '{user} Approve Changes Of Merge Request !{number} {title} '\n}\n\nexport default { ...data, __namespace__: 'notification' }\n","import { composeNamespacedData } from 'APPSRC/helpers/VaribleHelper'\n\nimport Lang from 'APPSRC/lang/Lang'\n\nimport CNMessage from 'APPSRC/lang/zh-cn/Message'\nimport CNErrorMessage from 'APPSRC/lang/zh-cn/ErrorMessage'\nimport CNActivityMessage from 'APPSRC/lang/zh-cn/ActivityMessage'\nimport CNTerm from 'APPSRC/lang/zh-cn/Term'\nimport CNPhrase from 'APPSRC/lang/zh-cn/Phrase'\nimport CNMenu from 'APPSRC/lang/zh-cn/Menu'\nimport CNLabel from 'APPSRC/lang/zh-cn/Label'\nimport CNNotification from 'APPSRC/lang/zh-cn/Notification'\n\nimport USMessage from 'APPSRC/lang/en-us/Message'\nimport USErrorMessage from 'APPSRC/lang/en-us/ErrorMessage'\nimport USActivityMessage from 'APPSRC/lang/en-us/ActivityMessage'\nimport USTerm from 'APPSRC/lang/en-us/Term'\nimport USPhrase from 'APPSRC/lang/en-us/Phrase'\nimport USMenu from 'APPSRC/lang/en-us/Menu'\nimport USLabel from 'APPSRC/lang/en-us/Label'\nimport USNotification from 'APPSRC/lang/en-us/Notification'\n\nfunction localeSelector (locale) {\n switch (locale) {\n case 'zh-cn':\n return composeNamespacedData(\n Lang,\n CNMessage,\n CNActivityMessage,\n CNErrorMessage,\n CNTerm,\n CNPhrase,\n CNMenu,\n CNLabel,\n CNNotification\n )\n case 'en-us':\n return composeNamespacedData(\n Lang,\n USMessage,\n USActivityMessage,\n USErrorMessage,\n USTerm,\n USPhrase,\n USMenu,\n USLabel,\n USNotification\n )\n }\n}\n\nexport { localeSelector }\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { IntlProvider } from 'react-intl'\nimport { MuiThemeProvider, createTheme } from '@material-ui/core/styles'\n\n// components\nimport DateFnsUtils from '@date-io/date-fns'\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers'\nimport localeCN from 'date-fns/locale/zh-CN'\nimport localTheme from 'APPSRC/config/colors/theme1'\n\nimport Main from 'APPSRC/components/Main'\nimport Header from 'APPSRC/components/Header'\nimport Drawer from 'APPSRC/components/Drawer'\nimport Comformation from 'APPSRC/components/Comformation'\nimport Notification from 'APPSRC/components/Notification'\nimport NotificationBars from 'APPSRC/components/NotificationBars'\n\n// helpers\nimport { localeSelector } from 'APPSRC/helpers/LocaleSelector'\n\nclass App extends React.Component {\n render () {\n const { currentLanguage } = this.props\n const originTheme = createTheme({})\n const theme = createTheme(localTheme(originTheme))\n\n return \n \n \n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n }\n}\n\nApp.propTypes = {\n currentLanguage: PropTypes.string.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nexport default connect(mapStateToProps)(App)\n","import React from 'react'\nimport { Switch, Route, withRouter } from 'react-router-dom'\n\nimport App from 'APPSRC/components/App'\n\nclass BaseRoutes extends React.Component {\n render () {\n return (\n \n \n \n \n\n \n \n \n \n \n \n \n \n )\n }\n}\n\nexport default withRouter(BaseRoutes)\n","// import helper\nimport { initailizer } from 'APPSRC/helpers/VaribleHelper'\n\nfunction DataStore (state = {}, event) {\n // initialize status\n state.repositoryList = initailizer(state.repositoryList, [])\n state.repositoryListPending = initailizer(state.repositoryListPending, true)\n state.groupList = initailizer(state.groupList, [])\n state.groupListPending = initailizer(state.groupListPending, true)\n state.currentRepositoryKey = initailizer(state.currentRepositoryKey, '')\n state.currentRepositoryError = initailizer(state.currentRepositoryError, false)\n state.currentRepositoryConfig = initailizer(state.currentRepositoryConfig, {})\n state.currentGroupKey = initailizer(state.currentGroupKey, '')\n state.currentGroupConfig = initailizer(state.currentGroupConfig, {})\n state.currentUserInfo = initailizer(state.currentUserInfo, {})\n\n let localLanguage = window.localStorage.getItem('lang')\n if (!localLanguage) {\n localLanguage = navigator.language.toLowerCase() || navigator.userLanguage.toLowerCase()\n\n if (['zh-cn', 'en-us'].indexOf(localLanguage) < 0) {\n localLanguage = 'zh-cn'\n }\n\n window.localStorage.setItem('lang', localLanguage)\n state.currentLanguage = localLanguage\n }\n state.currentLanguage = initailizer(state.currentLanguage, localLanguage)\n\n // check event\n if (!event.type.match(/^data\\./)) {\n return { ...state }\n }\n\n if (event.type === 'data.repositoryList.update') {\n state.repositoryList = event.data\n state.repositoryListPending = false\n } else if (event.type === 'data.groupList.update') {\n state.groupList = event.data\n state.groupListPending = false\n } else if (event.type === 'data.currentRepositoryKey.update') {\n state.currentRepositoryKey = event.data\n } else if (event.type === 'data.currentRepositoryError.update') {\n state.currentRepositoryError = event.data\n } else if (event.type === 'data.currentRepositoryConfig.update') {\n state.currentRepositoryConfig = event.data\n } else if (event.type === 'data.currentGroupKey.update') {\n state.currentGroupKey = event.data\n } else if (event.type === 'data.currentGroupConfig.update') {\n state.currentGroupConfig = event.data\n } else if (event.type === 'data.currentUserInfo.update') {\n state.currentUserInfo = event.data\n } else if (event.type === 'data.currentLanguage.update') {\n state.currentLanguage = event.data\n window.localStorage.setItem('lang', event.data)\n }\n\n return { ...state }\n}\n\nexport default DataStore\n","// import helper\nimport { initailizer } from 'APPSRC/helpers/VaribleHelper'\n\nfunction DrawerReducer (state = {}, event) {\n // initialize status\n state.expandStatus = initailizer(state.expandStatus, true)\n\n // check event\n if (!event.type.match(/^drawer\\./)) {\n return { ...state }\n }\n\n if (event.type === 'drawer.expandStatus.toggle') {\n state.expandStatus = !state.expandStatus\n } else if (event.type === 'drawer.expandStatus.close') {\n state.expandStatus = false\n } else if (event.type === 'drawer.expandStatus.open') {\n state.expandStatus = true\n }\n\n return { ...state }\n}\n\nexport default DrawerReducer\n","// import helper\nimport { initailizer, getObjectByProperty } from 'APPSRC/helpers/VaribleHelper'\n\nfunction NotificationReducer (state = {}, event) {\n // initialize status\n state.notificationCount = initailizer(state.notificationCount, 0)\n state.notificationBody = initailizer(state.notificationBody, {})\n state.askHandleStatus = initailizer(state.askHandleStatus, false)\n state.confirmation = initailizer(state.confirmation, {\n open: false,\n title: '',\n description: '',\n accept: function () {},\n reject: function () {},\n queueList: [],\n eventCount: 0\n })\n state.notificationOpenStatus = initailizer(state.notificationOpenStatus, false)\n\n // check event\n if (!event.type.match(/^notification\\./)) {\n return { ...state }\n }\n\n // network status\n if (event.type === 'notification.message.add') {\n state.notificationCount++\n state.notificationBody = event.data\n } else if (event.type === 'notification.message.change') {\n state.notificationBody = event.data = {}\n } else if (event.type === 'notification.askhandle.status') {\n state.askHandleStatus = event.data\n }\n\n // confirm dialog\n if (event.type === 'notification.confirmation.popup') {\n state.confirmation.open = true\n state.confirmation.title = event.data.title\n state.confirmation.description = event.data.description\n state.confirmation.accept = event.data.accept || function () { return true }\n state.confirmation.reject = event.data.reject || function () { return true }\n } else if (event.type === 'notification.confirmation.close') {\n state.confirmation.eventCount++\n state.confirmation.open = false\n state.confirmation.accept = function () { return true }\n state.confirmation.reject = function () { return true }\n }\n\n // confirm dialog queue management\n if (event.type === 'notification.confirmation.add') {\n state.confirmation.eventCount++\n state.confirmation.queueList.push(event.data)\n } else if (event.type === 'notification.confirmation.remove') {\n state.confirmation.eventCount++\n const id = getObjectByProperty(state.confirmation.queueList, 'key', event.data.key)\n typeof id === 'number' && delete state.confirmation.queueList[id]\n } else if (event.type === 'notification.confirmation.consume') {\n if (state.confirmation.queueList.length && !state.confirmation.open) {\n state.confirmation.eventCount++\n const newItem = state.confirmation.queueList.shift()\n state.confirmation.open = true\n state.confirmation.title = newItem.data.title\n state.confirmation.description = newItem.data.description\n state.confirmation.accept = newItem.data.accept || function () { return true }\n state.confirmation.reject = newItem.data.reject || function () { return true }\n }\n }\n\n // notification open/close\n if (event.type === 'notification.notificationOpenStatus.toggle') {\n state.notificationOpenStatus = !state.notificationOpenStatus\n } else if (event.type === 'notification.notificationOpenStatus.open') {\n state.notificationOpenStatus = true\n } else if (event.type === 'notification.notificationOpenStatus.close') {\n state.notificationOpenStatus = false\n }\n\n return { ...state, confirmation: { ...state.confirmation, queueList: [...state.confirmation.queueList] } }\n}\n\nexport default NotificationReducer\n","// import combineReducers\nimport { combineReducers } from 'redux'\n\n// import reducer settings\nimport DataStore from 'APPSRC/reducers/DataStore'\nimport DrawerStates from 'APPSRC/reducers/DrawerStates'\nimport NotificationStates from 'APPSRC/reducers/NotificationStates'\n\n// combine reducers\nexport default combineReducers({\n DataStore,\n DrawerStates,\n NotificationStates\n})\n","// dynamic path settings\nimport './env'\n\n// core\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport { BrowserRouter } from 'react-router-dom'\nimport { createStore } from 'redux'\nimport { Provider } from 'react-redux'\n\n// import assets\nimport 'APPSRC/assets/styles/App.styl'\n\n// import pollyfile\nimport '@formatjs/intl-pluralrules/polyfill'\nimport '@formatjs/intl-relativetimeformat/polyfill'\n\n// import Components\nimport BaseRoutes from 'APPSRC/routes/BaseRoutes'\nimport Reducer from 'APPSRC/reducers/main'\n\nconst Store = createStore(Reducer)\nconst routeBaseName = '/'\n\n// render app with router\nReactDOM.render((\n \n \n \n \n \n), document.getElementById('root'))\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/bootstrap","env.js","webpack:///./src/assets/styles/App.styl?eef1","assets/styles/App.styl","config/colors/theme1.js","config/Constants.js","config/UAC.js","config/Group.js","helpers/FilterGenerator.js","helpers/VaribleHelper.js","data_providers/main.js","data_providers/UserData.js","helpers/EventGenerator.js","helpers/ErrorCodeParser.js","helpers/NetworkHelper.js","helpers/ValidatorGenerator.js","components/view/unit/SetEmail.js","components/view/unit/SetUserInfo.js","components/view/UserInfo.js","components/unit/ShowHelper.js","components/unit/SSHKeyItem.js","components/unit/TableList.js","components/view/UserSettingSSHKey.js","components/unit/SquareIconButton.js","components/view/UserSettingEmail.js","components/unit/AvatarUploader.js","components/view/UserSettingGeneral.js","components/unit/InlineMarker.js","components/view/UserSettingNotification.js","data_providers/AdminData.js","components/unit/NumbericDashboard.js","components/view/admin/Dashboard.js","components/unit/TabHeader.js","components/view/admin/Users.js","components/unit/FormattedTime.js","components/view/admin/Groups.js","components/view/admin/Repositories.js","components/view/admin/Settings.js","components/unit/RepositoryListItem.js","components/unit/EmptyListNotice.js","components/unit/GroupDashboard.js","components/view/RepositoryList.js","data_providers/RepositoryData.js","components/view/NewRepository.js","components/view/NewRepositoryFork.js","components/view/RepositorySettingGeneral.js","components/view/RepositorySettingBranch.js","config/WebhookEventConfig.js","components/unit/TitleList.js","components/view/unit/WebhookLog.js","components/view/RepositorySettingWebhook.js","components/unit/Member.js","components/unit/MemberItem.js","components/unit/MemberList.js","components/view/RepositorySettingMembers.js","data_providers/GroupData.js","components/view/RepositorySettingAdvanced.js","components/unit/GroupCard.js","components/view/GroupList.js","components/view/NewGroup.js","components/view/GroupSettingGeneral.js","components/view/GroupSettingMembers.js","components/view/GroupSettingAdvanced.js","config/Activity.js","helpers/withScrollTrigger.js","components/unit/ActivityItem.js","components/view/ActivityList.js","components/unit/RepositoryDashboard.js","components/unit/RevisionSelector.js","components/unit/CodeLine.js","components/unit/SmartLink.js","components/unit/CommitHashChip.js","components/unit/CommitItem.js","components/unit/CodeViewer.js","components/unit/ObjectViewer.js","components/unit/RepositoryEmpty.js","components/view/FileTree.js","components/view/CommitList.js","components/unit/RefFilter.js","components/unit/RefList.js","components/view/BranchList.js","components/view/TagList.js","components/view/CreateTag.js","components/view/CreateBranch.js","components/view/unit/CommitContainRef.js","components/unit/CodeDiffViewer.js","components/unit/ObjectDiffViewer.js","components/unit/FileDiffExpansionPanel.js","components/unit/FileBrowser.js","components/view/FileDiffDetail.js","components/view/CommitDetail.js","components/unit/MergeRequestReviewers.js","components/unit/MergeRequestItem.js","components/view/MergeRequest.js","components/view/CreateMergeRequest.js","components/unit/MergeRequestDiff.js","components/view/MergeRequestDetail.js","routes/MainRoutes.js","components/Main.js","components/unit/UserOption.js","components/unit/LanguageSelect.js","components/unit/GroupRepositoryMenu.js","components/Header.js","components/DrawerList.js","config/DrawerConfig.js","components/Drawer.js","components/Comformation.js","components/Notification.js","components/NotificationBars.js","lang/Lang.js","lang/zh-cn/Message.js","lang/zh-cn/ErrorMessage.js","lang/zh-cn/ActivityMessage.js","lang/zh-cn/Term.js","lang/zh-cn/Phrase.js","lang/zh-cn/Menu.js","lang/zh-cn/Label.js","lang/zh-cn/Notification.js","lang/en-us/Message.js","lang/en-us/ErrorMessage.js","lang/en-us/ActivityMessage.js","lang/en-us/Term.js","lang/en-us/Phrase.js","lang/en-us/Menu.js","lang/en-us/Label.js","lang/en-us/Notification.js","helpers/LocaleSelector.js","components/App.js","routes/BaseRoutes.js","reducers/DataStore.js","reducers/DrawerStates.js","reducers/NotificationStates.js","reducers/main.js","index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice","w","__webpack_public_path__","window","location","protocol","host","api","content","default","options","locals","___CSS_LOADER_EXPORT___","makeTheme","originTheme","baseTheme","makePreset","typography","fontFamily","palette","primary","main","caption","fontSize","overrides","MuiInputBase","input","backgroundColor","MuiMenuItem","root","height","spacing","MuiTableCell","borderBottom","border","paddingTop","paddingBottom","textAlign","flexDirection","MuiPaper","pointerEvents","elevation1","boxShadow","elevation2","elevation8","MuiTab","fontWeight","getStaticHost","origin","Constants","commonStatus","normal","delete","obejctDisplayType","unknown","empty","oversize","text","markdown","image","video","obejctDiffDisplayType","infoChange","textChange","imageChange","activityCategory","all","commit","mergeRequest","member","mergeRequestStatus","open","merged","closed","notificationCategory","unRead","system","mention","notificationRefuseType","group","repository","notificationStatus","mr","email","STATIC_VERSION","HOSTS","STATIC_HOST","PGYER_AVATAR_HOST","STATIC_AVATAR_PREFIX","codeFileExtentsions","bat","clj","cljs","cljn","cljc","cljx","coffee","litcoffee","h","cpp","cs","css","go","graphql","htm","xhtm","html","xhtml","ini","java","js","jsx","es","jsm","esm","json","kt","less","lua","md","mysql","pas","perl","pgsql","php","xhp","php3","php4","ps","py","rb","rust","scss","sh","sql","swift","ts","tsx","tsm","vb","xml","yml","Role","NO_PERMISSION","GUEST","REPORTER","DEVELOPER","MAINTAINER","OWNER","NOBODY","PermissionCode","REPO_READ","REPO_PUSH","REPO_REMOVE","REPO_CHANGE_MEMBER","REPO_CHANGE_INFO","MR_READ","MR_PUSH","MR_MERGE","GROUP_CHANGE_MEMBER","GROUP_CREATE_REPO","PermissionConfig","NORMAL","USER","not","filter","and","arguments","reduce","final","or","userGroup","item","type","GroupConfig","normalGroup","id","ID","rule","ids","IDS","some","indexOfEmails","emails","indexOf","names","groupID","groups","groupIDs","groupMember","notGroupMember","deleted","deleteFlag","notDeleted","fork","forkID","forkFrom","forks","forkIDs","nameLikes","keyword","search","fields","field","toLowerCase","creator","userID","owner","creators","userIDs","withPermission","permissionCode","checkPermission","role","withPermissions","permissionCodes","groupName","target","initailizer","varible","defaultValue","undefined","makeFormData","formData","FormData","match","append","replace","keyName","getObjectByProperty","array","porpertyName","index","formatNumber","inputUnit","unitOffset","Math","abs","Number","MAX_VALUE","NaN","round","trim","makeLink","join","composeNamespacedData","__namespace__","tableDataLabelParser","parser","headerRowIndex","map","finalData","p1","countentIndex","UAC","getCodeLanguageType","filename","ext","split","pop","getUserInfo","members","commitEmail","userInfo","FilterGenerator","temporary","icon","getDefaultBranch","currentRepositoryConfig","branches","master","defaultBranch","copyToClipboard","success","el","setTimeout","dom","document","createElement","innerHTML","appendChild","body","select","execCommand","removeChild","DataProvider","method","endpoint","query","queryArray","encodeURIComponent","makeQueryString","appendHeader","localLanguage","localStorage","getItem","fetch","cache","credentials","headers","Accept","redirect","referrer","GET","requestTime","Date","getTime","POST","PUT","DELETE","OPTIONS","APIRequest","getKeyList","addSSHKey","removeSSHKey","setUserData","updateBasicInfo","updatePassword","changeEmail","getMFAData","revokeMFAData","updateMFAData","getCountriesCode","confirmTel","uploadAvatar","getCode","getEmailCode","addCommitEmail","resentCommitEmailCode","deleteCommitEmail","validationCommitEmailCode","notifications","setNotificationRead","deleteNotification","userNotificationSetting","notificationRefused","setGroupOrRepoNotification","Event","NewNotification","message","level","action","Network","statusCode","NewComformation","title","description","accept","reject","consumeComformation","cancelComformation","addComformation","removeComformation","fetchMessage","code","navigator","language","userLanguage","catchError","error","dispatcher","EventGenerator","ErrorCodeParser","getJSONData","response","ok","parseInt","status","responseJson","catch","e","then","href","getTextData","getFile","withEventdispatcher","handler","promise","getHost","userinfo","getSSHHost","ssh","makeSlug","stateValidator","instance","rules","errorFlag","state","passPattern","errorMessage","setState","codeValidator","exceptionCode","props","dispatchEvent","SetEmail","intl","password","showPassword","showCodeInput","emailFocus","passwordFocus","codeBtnDisabled","codeText","formatMessage","getEmailCodeCheckInput","ValidatorGenerator","getEmailCodeCheckResponse","saveEmailCheckInput","saveEmailCheckResponse","currentUserInfo","UserData","NetworkHelper","countDown","time","int","setInterval","clearInterval","update","classes","Grid","xs","container","Typography","variant","component","gutterBottom","TextField","fullWidth","helperText","placeholder","onChange","onFocus","onBlur","Fragment","lg","align","Button","color","onClick","className","pr0","InputProps","endAdornment","disabled","saveData","React","Component","injectIntl","withStyles","theme","paddingRight","minWidth","connect","ownProps","dispatch","event","SetUserInfo","oldData","comData","showBtn","checkInput","label","checkResponse","UserInfo","updateAllInfo","cb","Paper","infoWrap","padding","marginTop","DataStore","ShowHelper","doc","currentLanguage","tooltip","showDoc","plHelp","Tooltip","placement","style","cursor","textDecoration","withTheme","progress","info","SSHKeyItem","onDelete","justifyContent","line","line2","hash","center","plTrash","marginBottom","display","alignItems","light","withRouter","TableList","inputData","Table","TableHead","TableRow","TableCell","width","TableBody","row","rowid","UserSettingSSHKey","pending","keyList","mountedFlag","n1","n2","getData","parsedKey","header","multiline","rows","inputValue","matches","setObject","disableElevation","addKey","btn","table","removeKey","CircularProgress","lineHeight","paper","margin","SquareIconButton","badge","copyProps","button","disableFocusListener","right","top","zIndex","position","borderRadius","background","contrastText","UserSettingEmail","primaryEmail","validationEmail","codeDisabled","count","codeCheckInput","codeCheckResponse","nextProps","nextState","JSON","stringify","cancel","cancelForm","createValidationForm","reloadUserData","createForm","validationForm","isCheck","plEdit","deleteConfirm","plCheck","plClose","history","createCommitEmailForm","getTableData","loading","size","marginLeft","opacity","verticalAlign","AvatarUploader","showImgIcon","uploadFile","instanceID","floor","random","appendData","dataProvider","file","files","onUpdate","src","htmlFor","avatarLabel","onMouseEnter","onMouseLeave","Avatar","classNames","circleUserInfoAvatar","userInfoAvatar","iconBox","iconBoxCircle","iconBoxRounded","faPlus","editIcon","uploadInput","left","bottom","borderBottomLeftRadius","borderBottomRightRadius","transform","UserSettingGeneral","updateUserInfo","team","oldPassword","newPassword","againPassword","mfaMode","mfaQRCodeData","mfaSecret","mfaCode1","mfaCode2","checkBaseInfo","checkBaseResponse","checkPWDResponse","checkMFAInput","validateArr","RegExp","mfaEnabled","prepareMFADeviceSetup","checkPWDInput","current","new","clearPWD","MFAPending","secret","code1","code2","noMarginTop","sm","mainMarginBottom","fold","mainMarginTop","avatarUploaded","revokeMFADevice","updateMFADevice","pl","paddingLeft","flexRow","flexFlow","flexRowCenter","InlineMarker","extraColor","containedInfo","lighter","secondary","bg","iconPadding","IOSSwitch","marginRight","switchBase","thumb","track","boxSizing","transition","transitions","checked","focusVisible","Switch","focusVisibleClassName","disableRipple","UserSettingNotification","refusedList","openSet","groupFold","otherRepository","groupList","repositoryList","changeOpenSet","isUserNotificationOpen","notification","isTargetOpen","repo","refusedRepo","repoItem","offset","isUser","reloadUserInfo","updated","isRepository","displayName","plAngleDown","tableFold","repositoryTableData","getTableRow","subtitle","desc","switch","repoIndex","span","getRepositoryTable","userList","updateUserStatus","closeUserMFA","resetPassword","checkPassword","setAdministrator","addUser","groupMembers","groupAddMember","groupRemoveMember","setGroupOwner","repositoryMembers","repositoryAddMember","repositoryRemoveMember","systemStatus","getConfig","setConfig","NumbericDashboard","paletteName","unit","numbericValue","to","displayValue","displayUnit","warning","parseFloat","unitPrefix","standardUnit","unitScaleIndex","inputSuffix","baseValue","valueScaleIndex","toString","formatUnit","Card","card","clickable","CardContent","dark","Dashboard","AdminData","psMembers","usage","user","psRepositoryGroup","psRepository","psMeter","vm","cpu","memory","disk","psFolder","psNewFeature","service","codefever","nginx","crond","sendmail","TabHeader","tabs","currentTab","children","Tabs","indicatorColor","textColor","Tab","Users","list","category","sort","page","pagesize","settingAnchor","settingUser","password1","password2","settingAdmin","timeout","checkPasswordInput","checkEmailInput","checkEmailResponse","clearTimeout","avatar","projects","created","tag","admin","psSetting","sortLabel","MenuItem","Pagination","ceil","shape","Menu","anchorEl","anchorOrigin","horizontal","vertical","transformOrigin","PaperProps","menu","getContentAnchorEl","transitionDuration","Boolean","onClose","updateUserStatusConfirm","ListItemText","disableTypography","closeUserMFAConfirm","Dialog","maxWidth","DialogTitle","DialogContent","parentElement","plCopy","flexGrow","FormattedTime","timestamp","absolute","relative","localObject","localeCN","localeEN","format","locale","formatRelative","Groups","settingGroup","memberManage","checkAddResponse","substr","toUpperCase","roles","creatorFlag","joined","setRoleConfirm","psMemberAlt","removeMemberConfirm","openMemberManage","removeMember","addMember","getMembersTable","settingRepository","Settings","allowRegister","email_from","email_name","from","payload","mg","inputProps","updateConfig","RepositoryCard","repositoryInfo","alignContent","ev","baseInfo","counts","plFork","forkCount","plMerge","mergeRequestCount","plMember","Hidden","mdDown","alignSelf","plSetting","stopPropagation","borderLeft","borderRight","currentGroupConfig","EmptyListNotice","imageName","notice","img","alignBlock","GroupDashboard","popoverAnchor","popoverTab","groupConfig","elevation","subtext","iconBar","plRepository","accmulator","overflow","clonePopvoer","cloneContent","RepositoryList","currentGroupKey","repositoryListPending","item1","item2","finalList","tabsFilter","params","repositoryID","forkedRepository","tab","RepositoryListItem","config","updateName","protectedBranchRules","createProtectedBranchRule","updateProtectedBranchRule","deleteProtectedBranchRule","changeMemberRole","changeOwner","deleteRepository","activities","mergeRequests","mergeRequestClose","mergeRequestCommits","mergeRequestReview","assignReviewer","deleteReviewer","pathStack","fileContent","commitList","commitDetail","fileChanges","refListContainSHA","branchList","createBranch","deleteBranch","tagList","createTag","deleteTag","targetRepository","lastCommitLog","getBlameInfo","createMergeRequest","mergeRequestDetail","checkMergeType","mergeBranch","mergeRequestVersionList","relatedMergeRequests","getWebhook","webhooks","editWebhook","deleteWebhook","getRepositoryWebhookLogs","getRepositoryWebhookLogData","newRepository","slug","groupListPending","pathname","personalGroups","RepositoryData","repositoryData","permittedGroups","startAdornment","InputAdornment","svg","option","textRight","outRange","createRepository","newRepositoryFork","observed","forkRepositoryInfo","forkRepositoryID","matchedRepository","faUndo","forkRepository","RepositorySettingGeneral","reloadRepositoryData","rKey","updateRepository","RepositorySettingBranch","branch","updateRuleId","rolePush","roleMerge","getAllowRoler","editRule","roleId","old","deleteRule","sameRule","requestData","settingDefaultBranch","createRule","Events","divider","TitleList","list2","BranchList","webhookTab","webhookId","logData","start","end","webhook","subline","psConfirm","psError","webhookid","date","more","psMore","detail","newValue","plClock","keys","request","parse","borderTop","overflowX","RepositorySettingWebhook","pushEvent","edit","webhookLogs","isShowWebhookForm","url","trigger","active","events","currentRepositoryKey","getEvents","rwKey","getCheckedEvents","initData","eventCount","dot","cursorPointer","close","updateWebhook","psLog","getWebhookLogs","tmpEvents","checkedEvents","webhookForm","need","RadioGroup","FormControlLabel","control","Radio","Checkbox","changeEvent","logs","WebhookLog","Member","userName","MemberItem","onRemove","removeable","underline","ListSubheader","disableSticky","Divider","deleteMember","MemberList","currentConfig","yourself","TableContainer","textMain","tableRow","textLight","RepositorySettingMembers","uKey","roleID","onKeyDown","keyCode","addMembers","e1","e2","deleteGroup","StyledMenuItem","minHeight","RepositorySettingAdvanced","deleteRepositoryConfirmed","reloadRepositoryGroupList","GroupData","section","changeSlug","faFile","GroupCard","groupInfo","ownerMarker","listIcon","cardHover","GroupList","personalGroupCreateFlag","groupListChecked","userData","groupData","createGroup","GroupSettingGeneral","reloadGroupData","gKey","updateGroup","GroupSettingMembers","GroupSettingAdvanced","deleteGroupConfirmed","faTrash","relatedGroup","relatedRepository","formatter","s1","s2","memberInfo","uid","roleName","repositoryLink","sourceName","branchLink","startHash","endHash","tagLink","mergeRequestLink","reviewer","ActivityItem","parsedData","Activity","paddingRight2","ActivityList","activityList","listFinshed","searchActivity","plSearch","marginTop3","faAngleDown","RepositoryDashboard","repositoryConfig","ButtonGroup","currentTarget","Popover","TransitionProps","cloneHeader","readOnly","copy","getElementById","blur","plCommit","plBranch","plTag","plFile","borderColor","RefSelector","revisionList","currentRevision","tags","concat","composeOptions","CodeLine","createRef","refreshCodeLine","htmlCode","fragment","original","diff","diffChars","currentPosition","offsets","added","removed","highlightWord","addition","modified","deletion","rangeDom","rangeStart","rangeEnd","findRangeOffset","findOffset","highlight","targetDom","range","createRange","mark","setStart","setEnd","surroundContents","parentNode","relativeOffset","currentOffset","childNodes","node","nodeName","contentLength","innerText","ref","additionDarker","deletionDarker","SmartLink","CommitHashChip","copyHash","setAttribute","disabledBtn","CommitItem","linkPathBase","showBorder","blameMode","path","commitInfo","commitFullInfo","commiterInfo","sha","commitContent","commitTime","ListItem","listItem","float","secondaryWrap","CodeViewer","lineNumber","parent","scroll","offsetTop","offsetParent","querySelector","scrollTop","prevProps","prevState","blame","lang","codes","raw","parsedHtml","Prism","languages","codeLines","blameCell","blameData","blameItem","rowSpan","repositoryName","topBorder","blameLoading","tableLayout","borderCollapse","userSelect","overflowWrap","ObjectViewer","mdSourceShow","copyAnchor","mime","displayMode","getDisplayMode","fileInfo","getObjectIcon","icon2","copySomething","plCodeFile","rev","editorBg","height0","rel","remarkPlugins","remarkGfm","base64Encoded","mediaFile","controls","oldImage","newImage","RepositoryEmpty","remoteCode","createCode","pushCode","setup","noBorder","FileTree","objectData","readmeFile","getPathStack","getObject","revision","decodeURIComponent","getBlame","calculatedPath","getReadmeFile","readmeObject","currentPath","item0","linkObjectName","linkCommitMessage","basePathStack","components","currentRepositoryError","RevisionSelector","composePathBreadCrumb","makeFileListData","CommitList","searchInput","pageSize","currentDate","DateFnsUtils","tempItem","dateExist","originItem","reload","refType","link","RefFilter","searchRef","sortDesc","sortSwitch","tabValue","tabChange","plSortDesc","RefList","perpage","anchor","repage","refLists","refList","filesLink","nameA","commitsLink","substring","shaA","logA","updater","refTitle","deleteRef","refListItem","refItem","oneline","refName","refLog","protected","plSafe","isMerge","refSha","refUpdate","openRefItemMenu","closeRefItemMenu","refTitles","refListsDeal","listCount","whiteSpace","textOverflow","branchLists","dataSort","dataFilter","activeData","inactiveData","nowTimestamp","threeMonth","filterBranch","TagList","filterTag","CreateTag","mr16","CreateBranch","CommitContainRef","refTotal","currentHash","show","parentHash","currentGroup","currentRepository","contentShow","parentA","borderNone","versions","branchFilesLink","tagFilesLink","maxHeight","CodeDiffViewer","originalHTML","modifiedHTML","fullfileContent","diffContent","showFullFile","makeFullDiffContent","makeDiffContent","buildFullFileContent","callback","fileDiffInfo","lineData","modifiedLines","lastLineNumber","min","getFileContent","direction","markerPosition","marker","previous","next","insertData","originLine","unshift","markerData","modifiedLine","expandCode","modifiedIndex","renderSideBySide","lastDeletionIndex","lastDeletionDiffIndex","lineNumberDeletion","diffMarker","lineNumberAddition","lineLabel","diffLabelTop","lineNumberMarker","lineLabelButton","colSpan","diffLabel","appendClassName","appendClassNameDark","prevLineData","nextLineData","nextTwoLineData","prevTwoLineData","makeLines","additionDark","deletionDark","diffLabelDark","expandStatus","DrawerStates","ObjectDiffViewer","fileDiff","layoutUpdateTimeStamp","imagelegend","opacity1","FileDiffExpansionPanel","panelIsOpen","copyPath","viewFile","showFullFileTitle","fileType","unknow","faImage","faVideo","modifiedRepositoryKey","fileTreeIsOpen","parentHashFileLink","currentHashFileLink","fileTypeDeal","Accordion","expanded","togglePanel","square","AccordionSummary","expandIcon","panelSummary","fileName","fileIconDeal","add","additions","deletions","separator","toggleFullFile","faCompress","plExpand","viewFileDetail","viewOldFileBtn","viewFileBtn","AccordionDetails","panelDetail","themeSpacing","FileBrowser","fileBrowser","changeFilesTmp","treeFiles","listFiles","initChangeFiles","listFilesRef","changeFiles","lastIndex","lastIndexOf","used","dirname","initTreeFiles","initListFiles","tmpDir","dirTmp","deep","fileClick","filesCount","tree","calcPadding","faFolderOpen","faFolder","isDir","listSub","listDir2","calcDir","listDir","listFile","faSquare","dir","dirs","treeView","offsetBottom","clientHeight","clientWidth","fileBrowserTop","onScroll","listFilesScroll","FileDiffDetail","changedFilesInfo","diffViwerLayoutUpdateTimestamp","fileTreeGridNumber","effectFileCount","addLine","deleteLine","large","fileChangedInfo","childHash","addtions","accumulator","getFileTreeInfo","stickyPosition","diffTitle","toggleDiffShow","toggleFileTree","fileTreeSticky","fileTreeHide","jumpToAnchor","fileDiffPanel","changedFile","changedFileList","expansionMargin0","innerHeight","CommiterAvatar","CommitDetail","optionAnchorEl","parentHashShow","closeDrawer","commitSHA","psCaretDown","ml16","MergeRequestReviewers","reviewers","reviewerIcon","isReview","psClock","reviewed","MergeRequestItem","dataDeal","repoData","targetLink","targetBranch","titleLink","number","sourceRepository","sourceLink","sourceBranch","plConfirm","plMerged","plForbid","faArrowRight","MergeRequest","isGlobal","noMore","mrList","reset","getDataDeal","repositoryId","getTabs","searchMergeRequests","CreateMergeRequest","originRepository","originBranch","originLastCommit","targetLastCommit","targetRepositoryList","targetRepositoryBranches","originRepositoryBranches","originRepositoryInfo","targetRepositoryInfo","getTargetRepository","groupRepository","getInitRepositoryBranches","listen","repositoryKey","targetRepositoryKey","forkFlag","repositorySelect","branchTitle","branchSelect","getOriginRepositoryBranches","selectOriginBranch","currentRefType","getTargetRepositoryBranches","selectTargetBranch","errorInfo","hideError","GoMergeRequestDetail","MergeRequestDiff","latestVersion","baseVersion","getVersionDiff","val","showVersionCompare","versionList","baseVersionList","diffInfoSticky","FormControl","Select","changeHash","commitLog","commitAvatar","commiterName","MergeRequestDetail","mid","mergeRequestInfo","sourceRepositoryInfo","requesterInfo","handlerInfo","changedFiles","commits","showCommitInput","mergeMessage","usingSquash","hasMergeConflict","mergeStatus","submitMergeRequest","mergePending","reviewersMenu","updateReviewersPending","getDetailData","getChangeData","getVersionList","getActivities","versionCompare","getRepositories","sourceRepoInfo","submitter","mergeVersionList","canBeFastForward","conflict","isCreateMR","includes","createMRTitle","assigned","closeMergeRequest","hideInput","tabHeader","reviewersTitle","plAddAlt","reviewersMenuItem","reviewersMember","noReviewers","activityTitle","activityItem","activityItemLine","merge","overflowY","MainRoutes","exact","AdminUsers","AdminGroups","AdminRepositories","AdminSettings","AdminDashboard","NewRepository","NewRepositoryFork","NewGroup","Main","groupListLoaded","repositoryListLoaded","toolbar","mainContainer","mixins","UserOption","handleUserMenuClick","handleUserMenuClose","logout","settings","down","MenuListProps","goView","ListItemIcon","plMemberAlt","plDraft","plKey","plExit","LanguageSelect","userInfoLoadingStatus","plLocalization","selected","changeLanguage","GroupRepositoryMenu","anchorElement","enterMenu","enterButton","initAnchor","repositoryItems","getToRepository","GroupItems","getToGroup","Header","newMenuAnchor","helpMenuAnchor","scrollTrigger","notificationOpenStatusToggle","AppBar","appBar","Toolbar","optionItem","psAddAlt","orientation","plBell","unReadNotification","plRepair","drawer","placeholderExpanded","placeholderCollapsed","threshold","watching","WrappedComponent","removeEventListener","addEventListener","scrollAmount","pageYOffset","mountContainer","DrawerList","itemSwitch","itemName","avatarHover","newOpen","drawerExpandStatus","drawerConfig","listItems","activeFlag","activePattern","pattern","firstLevel","listItemExpand","listItemCollapsed","openChildren","iconActive","listItemText","listItemTextExpand","listItemTextCollapsed","secondLevel","sitem","skey","secondActiveFlag","Collapse","in","unmountOnExit","secondCollapse","List","disablePadding","secondActive","inset","morePadding","avatarProps","currentProject","psHome","drawerHeader","drawerHeaderExpand","drawerHeaderCollapsed","home","titleExpand","titleCollapsed","makeDrawerConfig","psEmail","psKey","psBell","makeAdminDrawerConfig","makeGroupDrawerConfig","psMerge","makeRepositoryDrawerConfig","psFile","psCommit","psBranch","psTag","Side","toggleDrawer","drawerContainer","drawerExpandControl","plMenuCollapse","Drawer","drawerPaper","containerExpanded","containerCollapsed","DrawerConfig","Comformation","openStatus","rejectFn","acceptFn","onCancel","DialogContentText","DialogActions","onAccept","NotificationStates","confirmation","Notification","menuAnchor","loadMore","notificationOpenStatus","notificationParser","isRead","notificationOpenStatusClose","offsetHeight","scrollHeight","headerTitle","notificationSetting","notify","readed","notifiTitle","notifySetting","psTrash","notifiContent","aLink","NotificationBars","messageLists","currentIndex","closeMessage","notificationBody","addMessage","NotificationBar","reason","chinese","english","Added","copied","opened","binded","unbinded","verified","approved","enabled","reseted","createPersonalGroupNotice","emailCodeHasSendNewEmail","phoneCodeHasSendNewPhone","finishIdentityVerify","unbindEnterCodeFeverPassword","scanQrcodeBind","theAccountUsedWechat_N","rebindWechat","unbindAllProduct","mfaGuide","inputEmailToAddMemeber","groupMemberCanControlRepositoryNotice","repositoryChangeCreatorNotice","repositoryChangeURLNotice","repositoryDeleteRepositoryNotice","repositoryDeleteRepositoryConfirmNotice","groupChangeCreatorNotice","groupChangeURLNotice","groupDeleteRepositoryNotice","groupDeleteRepositoryConfirmNotice","inputCommitFilter","repositoryEmpty","displaySource","displayRendereFile","fileContentEmpty","fileContentOversize","fileTypeNotSupport","diffFileToMany","createNewRepository","pushRepository","_S_empty","repository_S_empty","repositoryBranchEmpty","repositoryTagEmpty","mergeRequestEmpty","addNewCommit","alreadyMergeRequest","alreadyCloseRequest","assignReviewerTitle","selectReviewer","notSelectReviewers","notApprove","assign_N_M_Reviewer","delete_M_N_Reviewer","review_M_Reviewer","_S_listEmpty","repositoryListEmptyNotice","groupListEmptyNotice","input_S_name","confirmDelete","jumpWithLink","noRepositoryFind","noCommitRecord","plsInputInvitedEmail","repositoryDeleteTipFirst","repositoryDeleteTipSecond","inputMergeCommit","selectDifferentBranch","mergeConflictTitle","mergeConflictTip1","mergeConflictTip2","mergeConflictTip3","mergeConflictTip4","from_S_Merge_S","defaultGroupReqiured","defaultGroupReqiuredDescription","someVersion","backHome","inputSSHKEYContent","inputSSHKEYName","defaultBranchDescription","settingToDefaultBranch","updateDefaultBranch","protectedBranchDescription","protectedBranchRuleEmpty","inputBranchOrRegexp","noBodyAllow","primaryEmailDescription","updatePrimaryEmail","myEmail","myEmailDescription","addEmail","contactedEmail","shouldValidation","resendEmail","differenceBetweenHTTPSAndSSH","generateAndSetSSHKey","itsMyEmail","notificationSystem","notificationMention","tagRead","tagAllRead","deleteAllReaded","mergeRequestNotification","mergeRequestNotificationDesc","emailNotification","emailNotificationDesc","searchByName","userStatusEnabled","userStatusDisabled","userStatusEnabled_N","userStatusDisabled_N","closeMFA","closeMFAConfirm","closeMFA_N","reset_N_Password","searchRepository","searchGroup","roleToOwner","setGroupOwner_S","cancelAdministrator","memberRemoveConfirm","successAddUser","webhookEventsNeed","webhookListEmpty","useTime_n","show_n_record","_S_retype","_S_has_illegal_character","_S_notChoose","_S_duplicate","_S_invalid","_S_notFound","noMoreThan_N_characters","within_N1_to_N2_characters","only_N1_or_N2_characters","requireCombinationOfCharactersNumbersAndUnderscore","input_S_placeholder","inputNotSame","inputSame","canNotAddCreatorAsMember","createRepositoryFail","createGroupFail","createBranchFail","createTagFail","createMergeRequestFail","createProtectedBrancheRuleFail","AddFail","updateFail","removeFail","deleteFail","verifyFail","forkRepositoryFail","getFileFail","getEmailCodeFail","getPhoneCodeFail","change_S_Fail","waitToRetry","canNotChangeOwnerOfUserGroup","canNotDeleteUserGroup","canNotDeleteNonEmptyGroup","mergeRequestExists","mergeFail","reviewedCanNotAssign","reviewedCanNotDelete","branchProteced","userNotReview","inputNewEmail","bindEmailFirst","wechatHasbound","sshKeyDuplicate","createdGroup","updateGroup_S_Avator","updateGroup_S_Name","updateGroup_S_Description","addGroup_S_Memeber","changeGroup_S_MemebrRole","removeGroup_S_Memebr","setGroup_S_Creator","setGroup_S_URL","createdRepository","updateRepository_S_Avator","updateRepository_S_Name","updateRepository_S_Description","pushTo_S_Branch","pushTo_S_NewBranch","created_S_NewBranch","delete_S_Branch","update_S_DefaultBranch","created_S_ProtectedBranchRule","update_S_ProtectedBranchRule","delete_S_ProtectedBranchRule","pushTo_S_Tag","pushTo_S_NewTag","created_S_NewTag","delete_S_Tag","addRepository_S_Memeber","changeRepository_S_MemebrRole","removeRepository_S_Memebr","setRepository_S_Creator","setRepository_S_URL","open_S_MergeRquest","close_S_MergeRquest","merge_S_MergeRquest","assign_S_Reviewer","delete_S_Reviewer","review_S_Reviewer","create_S_Webhook","update_S_Webhook","delete_S_Webhook","repository_pl","group_pl","file_pl","commit_pl","mergeRequest_pl","branch_pl","webhook_pl","tag_pl","member_pl","activity","activity_pl","setting","setting_pl","SSHKey","SSHKey_pl","user_pl","fileTree","clone","limitation","guest","reporter","developer","maintianer","Term","CodeFever","administrator","source","prefix","joinedAt","log","httpHeaders","httpBody","httpPayload","browser","expand","times","full","invite","before","save","remove","modification","chose","contain","unbind","manage","operating","approve","enable","disable","last","inactive","mfaCode","twoFactorAuthentication","emailCode","phoneCode","phone","china","company","job","wechat","credential","login","prev","submit","allow","learnMore","myServiceTicket","getHelp","help","failure","adminArea","confirm","Phrase","dashboard","general","advanced","profile","mail","phraseSeperator","update_S_","retryAfter_N_seconds","userAvatar","getPhoneCode","mostSeen","loginCredential","CodeFeverPassword","wechatBind","unbind_P","repositoryDescription","repositoryURL","repositorySlug","repositoryMember","unknownRepository","allRepository","groupDescription","groupURL","groupSlug","newGroup","unknownGroup","inviteMember","forkFrom_S","updateFrom_S1_To_S2","repositoryAvatar","groupAvatar","basicInfo","newPasswordConfirm","security","setupNewMFADevice","changeMFADevice","removeMFADevice","copyCode","lastCommit","lastUpdate","updateCreator","updateRepositoryURL","updateGroupURL","webhookSetting","createWebhook","contentType","webhookSecret","webhookTrigger","pushTrigger","customeTrigger","webhookList","webhookLog","createOrigin","choseCreateOrigin","tagDescription","tagName","branchName","protectedBranch","branchRule","allowPush","allowMerge","noData","newBranch","newTag","updateTime","updatedIn","editIn","expandFullFile","showDiffOnly","codeDiff","requestCreated","requestClosed","requestMerged","commitActivity","mergeRequestActivity","memberActivity","emailManage","contactEmail","SSHKeyManage","notificationCenter","notificationReceiveStatus","unread","fileModification","fileModificationList","lineAdd","lineDelete","browserFile","browserUnchangedFIle","commitHash","allFiles","openFileTree","closeFileTree","requestMerge","processing","IJoined","ICreated","dangerOperation","dangerOperationConfirm","compareBranch","lastModified","lastModified_N","openMergeRequest","modificationBranch","repositoryAdvancedSetting","branchSetting","groupAdvancedSetting","memberLimitation","modificationLimitation","roleID_1","roleID_2","roleID_3","roleID_4","roleID_5","enabledMFA","disabledMFA","blocked","createTime","statistic","systemResources","diskUsgae","serviceStatus","senderName","senderAddress","register","urlPrefix","sshPrefix","support","feedback","contribute","about","changeProtectedBranchRule","removeProtectedBranchRule","reviewReviewer","_N_repository","_N_commit","_N_branch","_N_tag","_N_byte","_N_mergeRequest","_N_member","localeSelector","Lang","CNMessage","CNActivityMessage","CNErrorMessage","CNTerm","CNPhrase","CNMenu","CNLabel","CNNotification","USMessage","USActivityMessage","USErrorMessage","USTerm","USPhrase","USMenu","USLabel","USNotification","App","createTheme","localTheme","utils","messages","appContent","BaseRoutes","setItem","DrawerReducer","NotificationReducer","notificationCount","askHandleStatus","queueList","newItem","combineReducers","Store","createStore","Reducer","ReactDOM","render","store","basename"],"mappings":"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","file":"static/js/main.fe6c2de7.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = this[\"webpackJsonpundefined\"] = this[\"webpackJsonpundefined\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([346,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/* eslint-disable */\n__webpack_public_path__ = function (w) {\n return w.location.protocol + '//' + w.location.host + '/'\n} (window)\n/* eslint-enable */\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/stylus-loader/index.js!./App.styl\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* global style override */\\nbody {\\n margin: 0;\\n padding: 0;\\n}\\npre {\\n margin: 0;\\n}\\ncode {\\n font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;\\n font-size: 12px;\\n white-space: break-spaces;\\n}\\n/* global style for app */\\n#root a,\\n.root a {\\n color: #3455db;\\n text-decoration: none;\\n}\\n#root a:hover,\\n.root a:hover {\\n text-decoration: underline;\\n}\\n#root .width-auto,\\n.root .width-auto {\\n width: auto !important;\\n}\\n#root .app-root,\\n.root .app-root {\\n height: 100%;\\n overflow: hidden;\\n position: relative;\\n display: flex;\\n width: 100%;\\n}\\n#root .app-content,\\n.root .app-content {\\n width: 100%;\\n height: 100vh;\\n overflow: auto;\\n position: relative;\\n}\\n#root .text-overflow,\\n.root .text-overflow {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n#root .marker-dark,\\n.root .marker-dark {\\n color: #fff !important;\\n}\\n#root .marker-dark-clickable,\\n.root .marker-dark-clickable {\\n color: #fff !important;\\n cursor: pointer;\\n}\\n#menu-repository,\\n#menu-group {\\n pointer-events: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/assets/styles/App.styl\"],\"names\":[],\"mappings\":\"AAAA,0BAAA;AACA;EACE,SAAQ;EACR,UAAS;AACX;AACA;EACE,SAAQ;AACV;AACA;EACE,wEAA2B;EAC3B,eAAW;EACX,yBAAa;AACf;AACA,yBAAA;AAEE;;EACE,cAAO;EACP,qBAAiB;AACrB;AAAI;;EACE,0BAAiB;AAGvB;AADE;;EACE,sBAAO;AAIX;AADE;;EACE,YAAQ;EACR,gBAAU;EACV,kBAAU;EACV,aAAS;EACT,WAAO;AAIX;AAFE;;EACE,WAAO;EACP,aAAQ;EACR,cAAU;EACV,kBAAU;AAKd;AAFE;;EACE,gBAAU;EACV,uBAAe;EACf,mBAAa;AAKjB;AAFE;;EACE,sBAAO;AAKX;AAJE;;EACE,sBAAO;EACP,eAAQ;AAOZ;AANA;;EACE,oBAAgB;AASlB\",\"sourcesContent\":[\"/* global style override */\\nbody\\n margin: 0\\n padding: 0\\n\\npre\\n margin: 0;\\n\\ncode\\n font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\\n font-size: 12px;\\n white-space: break-spaces;\\n\\n/* global style for app */\\n#root, .root\\n a\\n color: #3455db;\\n text-decoration: none;\\n &:hover\\n text-decoration: underline;\\n\\n .width-auto\\n width: auto !important;\\n\\n /* style sheet for container */\\n .app-root\\n height: 100%;\\n overflow: hidden;\\n position: relative;\\n display: flex;\\n width: 100%;\\n\\n .app-content\\n width: 100%;\\n height: 100vh;\\n overflow: auto;\\n position: relative;\\n\\n /* css helpers */\\n .text-overflow\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n\\n /* Code Diff Viewer (Diff Maker Style) */\\n .marker-dark\\n color: #FFF !important;\\n .marker-dark-clickable\\n color: #FFF !important;\\n cursor: pointer;\\n#menu-repository, #menu-group\\n pointer-events: none;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import makePreset from '@pgyer/mui-theme-preset'\n\nfunction makeTheme (originTheme) {\n const baseTheme = makePreset(originTheme, 'CodeFever')\n\n // export overwrite properties\n baseTheme.typography.fontFamily = 'system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"'\n baseTheme.palette.primary.main = '#3455db'\n baseTheme.typography.caption.fontSize = 14\n return {\n ...baseTheme,\n overrides: {\n ...baseTheme.overrides,\n MuiInputBase: {\n input: {\n ...baseTheme.overrides.MuiInputBase.input,\n backgroundColor: 'none'\n }\n },\n MuiMenuItem: {\n root: {\n ...baseTheme.overrides.MuiMenuItem.root,\n height: originTheme.spacing(4)\n }\n },\n MuiTableCell: {\n root: {\n borderBottom: '1px solid ' + baseTheme.palette.border,\n height: originTheme.spacing(5),\n paddingTop: 0,\n paddingBottom: 0,\n textAlign: 'left',\n flexDirection: 'row',\n '&:last-child': {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n }\n }\n },\n MuiPaper: {\n root: {\n pointerEvents: 'auto'\n },\n elevation1: {\n boxShadow: 'none'\n },\n elevation2: {\n boxShadow: '0px 8px 16px 0px rgb(63 70 62 / 20%)'\n },\n elevation8: {\n boxShadow: '0 10px 40px rgb(14 32 66 / 15%), 0 1px 2px rgb(14 32 66 / 5%)'\n }\n },\n MuiTab: {\n ...baseTheme.overrides.MuiTab,\n root: {\n ...baseTheme.overrides.MuiTab.root,\n '&$selected': {\n fontWeight: 600\n }\n }\n }\n }\n }\n}\n\nexport default makeTheme\n","const commonStatus = {\n normal: 1,\n delete: 4\n}\n\n// Object Viewer 显示模式\nconst obejctDisplayType = {\n unknown: 0,\n empty: 1,\n oversize: 2,\n text: 3,\n markdown: 4,\n image: 5,\n video: 6\n}\n\n// Object Diff Viewer 显示模式\nconst obejctDiffDisplayType = {\n unknown: 0,\n empty: 1,\n oversize: 2,\n infoChange: 3,\n textChange: 4,\n imageChange: 5\n}\n\n// activity category\nconst activityCategory = {\n all: 0,\n commit: 1,\n mergeRequest: 2,\n member: 3\n}\n\n// merge request status\nconst mergeRequestStatus = {\n open: 1,\n merged: 2,\n closed: 3\n}\n\nconst notificationCategory = {\n all: 0,\n unRead: 1,\n system: 2,\n mention: 3\n}\n\nconst notificationRefuseType = {\n group: 1,\n repository: 2\n}\n\nconst notificationStatus = {\n mr: 1,\n email: 2\n}\n\nfunction getStaticHost () {\n return window.location.origin + '/'\n}\n\nconst STATIC_VERSION = '00000000000000'\n\nconst HOSTS = {\n STATIC_HOST: getStaticHost(),\n PGYER_AVATAR_HOST: getStaticHost() + 'file/fetch/avatar/',\n STATIC_AVATAR_PREFIX: getStaticHost() + 'file/fetch/avatar/'\n}\n\nconst codeFileExtentsions = {\n bat: 'bat',\n clj: 'clojure',\n cljs: 'clojure',\n cljn: 'clojure',\n cljc: 'clojure',\n cljx: 'clojure',\n coffee: 'coffee',\n litcoffee: 'coffee',\n c: 'cpp',\n h: 'cpp',\n cpp: 'cpp',\n cs: 'csharp',\n css: 'css',\n go: 'go',\n graphql: 'graphql',\n htm: 'html',\n xhtm: 'html',\n html: 'html',\n xhtml: 'html',\n ini: 'ini',\n java: 'java',\n js: 'javascript',\n jsx: 'javascript',\n es: 'javascript',\n jsm: 'javascript',\n esm: 'javascript',\n json: 'json',\n kt: 'kotlin',\n less: 'less',\n lua: 'lua',\n md: 'markdown',\n mysql: 'mysql',\n m: 'objective-c',\n pas: 'pascal',\n perl: 'perl',\n pgsql: 'pgsql',\n php: 'php',\n xhp: 'php',\n php3: 'php',\n php4: 'php',\n ps: 'powershell',\n py: 'python',\n r: 'r',\n rb: 'ruby',\n rust: 'rust',\n scss: 'scss',\n sh: 'bash',\n sql: 'sql',\n swift: 'swift',\n ts: 'typescript',\n tsx: 'typescript',\n tsm: 'typescript',\n vb: 'vb',\n xml: 'xml',\n yml: 'yaml'\n}\n\nconst Constants = {\n commonStatus,\n obejctDisplayType,\n obejctDiffDisplayType,\n activityCategory,\n mergeRequestStatus,\n notificationCategory,\n notificationRefuseType,\n notificationStatus,\n STATIC_VERSION,\n HOSTS,\n codeFileExtentsions\n}\n\nexport default Constants\n","const Role = {\n NO_PERMISSION: 0,\n GUEST: 1,\n REPORTER: 2,\n DEVELOPER: 3,\n MAINTAINER: 4,\n OWNER: 5,\n NOBODY: 6\n}\n\nconst PermissionCode = {\n NO_PERMISSION: 0x00,\n\n REPO_READ: 0x01,\n REPO_PUSH: 0x02,\n REPO_REMOVE: 0x03,\n REPO_CHANGE_MEMBER: 0x04,\n REPO_CHANGE_INFO: 0x05,\n\n MR_READ: 0x08,\n MR_PUSH: 0x09,\n MR_MERGE: 0x0A,\n\n GROUP_CHANGE_MEMBER: 0x10,\n GROUP_CREATE_REPO: 0x11\n}\n\nconst PermissionConfig = {}\nPermissionConfig[Role.NO_PERMISSION] = []\nPermissionConfig[Role.GUEST] = [\n PermissionCode.REPO_READ\n]\nPermissionConfig[Role.REPORTER] = [\n PermissionCode.REPO_READ,\n PermissionCode.MR_READ\n]\nPermissionConfig[Role.DEVELOPER] = [\n PermissionCode.REPO_READ,\n PermissionCode.MR_READ, PermissionCode.MR_PUSH\n]\nPermissionConfig[Role.MAINTAINER] = [\n PermissionCode.REPO_READ, PermissionCode.REPO_PUSH, PermissionCode.REPO_CHANGE_MEMBER, PermissionCode.REPO_CHANGE_INFO,\n PermissionCode.MR_READ, PermissionCode.MR_PUSH, PermissionCode.MR_MERGE,\n PermissionCode.GROUP_CHANGE_MEMBER, PermissionCode.GROUP_CREATE_REPO\n]\nPermissionConfig[Role.OWNER] = [\n PermissionCode.REPO_READ, PermissionCode.REPO_PUSH, PermissionCode.REPO_REMOVE, PermissionCode.REPO_CHANGE_MEMBER, PermissionCode.REPO_CHANGE_INFO,\n PermissionCode.MR_READ, PermissionCode.MR_PUSH, PermissionCode.MR_MERGE,\n PermissionCode.GROUP_CHANGE_MEMBER, PermissionCode.GROUP_CREATE_REPO\n]\n\nexport default { Role, PermissionCode, PermissionConfig }\n","const Type = {\n NORMAL: 1,\n USER: 2\n}\n\nexport default { Type }\n","import GroupConfig from 'APPSRC/config/Group'\nimport { checkPermission } from 'APPSRC/helpers/VaribleHelper'\n\nfunction not (filter) {\n return input => !filter(input)\n}\n\nfunction and () {\n return input => [].slice.call(arguments).reduce((final, filter) => {\n return final && filter(input)\n }, false)\n}\n\nfunction or () {\n return input => [].slice.call(arguments).reduce((final, filter) => {\n return final || filter(input)\n }, false)\n}\n\nfunction userGroup () {\n return item => item.type === GroupConfig.Type.USER\n}\n\nfunction normalGroup () {\n return item => item.type === GroupConfig.Type.NORMAL\n}\n\nfunction id (ID) {\n return item => ID === item.id\n}\n\nfunction rule (rule) {\n return item => rule === item.rule\n}\n\nfunction ids (IDS) {\n return item => IDS.some(\n ID => ID === item.id\n )\n}\n\nfunction groupName (groupName) {\n return item => groupName === item.group.name\n}\n\nfunction email (email) {\n return item => email === item.email\n}\n\nfunction indexOfEmails (email) {\n return item => item.emails.indexOf(email) > -1\n}\n\nfunction name (name) {\n return item => name === item.name\n}\n\nfunction names (names) {\n return item => names.some(\n name => name === item.name\n )\n}\n\nfunction groupMember () {\n return item => item.groupMember\n}\n\nfunction notGroupMember () {\n return item => !item.groupMember\n}\n\nfunction deleted () {\n return item => item.deleteFlag\n}\n\nfunction notDeleted () {\n return item => !item.deleteFlag\n}\n\nfunction creator (userID) {\n return item => userID === item.owner\n}\n\nfunction creators (userIDs) {\n return item => userIDs.some(\n userID => userID === item.owner\n )\n}\n\nfunction group (groupID) {\n return item => groupID === item.group.id\n}\n\nfunction groups (groupIDs) {\n return item => groupIDs.some(\n groupID => groupID === item.group.id\n )\n}\n\nfunction fork (forkID) {\n return item => forkID === item.forkFrom\n}\n\nfunction forks (forkIDs) {\n return item => forkIDs.some(\n forkID => forkID === item.forkFrom\n )\n}\n\nfunction nameLikes (keyword) {\n return item => item.name.indexOf(keyword) > -1\n}\n\nfunction search (keyword, fields) {\n return item => fields.reduce(\n (result, field) => result || (item[field].toLowerCase().indexOf(keyword.toLowerCase()) > -1)\n , false)\n}\n\nfunction withPermission (permissionCode) {\n return item => checkPermission(item.role, permissionCode)\n}\n\nfunction withPermissions (permissionCodes) {\n return item => permissionCodes.some(\n permissionCode => checkPermission(item.role, permissionCode)\n )\n}\n\nfunction target (target) {\n return item => target === item.target\n}\n\nexport default {\n not,\n and,\n or,\n userGroup,\n normalGroup,\n id,\n rule,\n ids,\n email,\n indexOfEmails,\n name,\n names,\n group,\n groups,\n groupMember,\n notGroupMember,\n deleted,\n notDeleted,\n fork,\n forks,\n nameLikes,\n search,\n creator,\n creators,\n withPermission,\n withPermissions,\n groupName,\n target\n}\n","import Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nfunction initailizer (varible, defaultValue = null) {\n return varible === undefined ? defaultValue : varible\n}\n\nfunction makeFormData (data) {\n const formData = new window.FormData()\n for (const key in data) {\n if (typeof data[key] === 'object' && !key.match(/_(SAFE|BINARY)$/)) {\n for (const keyName in data[key]) {\n if (typeof data[key].length === 'number') {\n formData.append(key + '[]', data[key][keyName])\n } else {\n formData.append(key + '[' + keyName + ']', data[key][keyName])\n }\n }\n } else {\n formData.append(key.replace(/_(SAFE|BINARY)$/, ''), data[key])\n }\n }\n return formData\n}\n\nfunction makeQueryString (query) {\n const queryArray = []\n for (const key in query) {\n queryArray.push(key + '=' + window.encodeURIComponent(query[key]))\n }\n return queryArray.join('&')\n}\n\nfunction getObjectByProperty (array, porpertyName, value) {\n for (let index = 0; index < array.length; index++) {\n if (array[index][porpertyName] === value) {\n return array[index]\n }\n }\n return {}\n}\n\nfunction formatNumber (input, inputUnit) {\n const unit = ['', 'k', 'M', 'G', 'T', 'P']\n let unitOffset = 0\n\n if (Math.abs(input) > Number.MAX_VALUE) {\n return NaN\n }\n\n if (inputUnit === '%') {\n input = 100 * input\n } else {\n while (input >= 1000) {\n input = input / 1000\n unitOffset++\n }\n }\n\n if (unitOffset) {\n return ((Math.round(input * 10) / 10) + ' ' + unit[unitOffset]).trim() + (inputUnit || '')\n } else {\n inputUnit = inputUnit ? ' ' + inputUnit : ''\n return Math.round(input * 100) / 100 + (inputUnit || '')\n }\n}\n\nfunction formatUnit (input, inputUnit) {\n const unit = ['p', 'u', 'm', '', 'k', 'M', 'G', 'T', 'P']\n const originPoint = 3\n\n let unitPrefix, standardUnit, unitScaleIndex, inputSuffix, baseValue, valueScaleIndex\n\n if (!inputUnit || !input) {\n return [input, inputUnit]\n }\n\n input = input.toString().trim()\n inputUnit = inputUnit.toString().trim()\n\n unitPrefix = inputUnit.slice(0, 1)\n standardUnit = inputUnit\n unitScaleIndex = unit.indexOf(unitPrefix)\n if (unitScaleIndex > -1) {\n standardUnit = inputUnit.slice(1)\n } else {\n unitScaleIndex = originPoint\n unitPrefix = ''\n }\n\n inputSuffix = input.slice(-1)\n baseValue = input\n valueScaleIndex = unit.indexOf(inputSuffix)\n\n if (valueScaleIndex > -1) {\n baseValue = input.slice(0, -1)\n } else {\n valueScaleIndex = originPoint\n inputSuffix = ''\n }\n\n return [baseValue, unit[valueScaleIndex + unitScaleIndex - originPoint] + standardUnit]\n}\n\nfunction roundNumber (input, base = 1) {\n let number = Math.round(input * 10 / base) / 10\n number = number.toString().replace(/^(\\d+\\.\\d)\\d*$/, (match, p1) => p1)\n number = parseFloat(number)\n if (number.toString() === 'NaN') {\n return input\n }\n return number\n}\n\nfunction percentColor (percent, theme, reverse) {\n const colorLevels = [theme.palette.info, theme.palette.success, theme.palette.warning, theme.palette.error]\n const breakPoints = [0.94, 0.85, 0.70, 0.50]\n let level = 0\n\n if (reverse) {\n percent = 1 - percent\n }\n\n for (level = 0; level < breakPoints.length; level++) {\n if (percent >= breakPoints[level] || level === breakPoints.length - 1) {\n break\n }\n }\n return colorLevels[level]\n}\n\nfunction prependZero (number, targetLegnth) {\n let returnString = number.toString()\n while (returnString.length < targetLegnth) {\n returnString = '0' + returnString\n }\n return returnString\n}\n\nfunction makeLink () {\n return '/' + [].slice.call(arguments).join('/')\n}\n\nfunction composeNamespacedData () {\n let data = {}\n for (let i = 0; i < arguments.length; i++) {\n if (arguments[i] && arguments[i].__namespace__) {\n for (const key in arguments[i]) {\n data[arguments[i].__namespace__ + '.' + key] = arguments[i][key]\n }\n } else if (arguments[i]) {\n data = { ...data, ...arguments[i] }\n }\n }\n return data\n}\n\nfunction dataLabelParser (headerRowIndex) {\n return (parser, data) => {\n if (data && data.map && data[headerRowIndex] && data[headerRowIndex].map) {\n let finalData = [...data]\n finalData = finalData.map((item, index) => {\n if (index === headerRowIndex) {\n return item.map((content) => {\n if (typeof content === 'string') {\n return content.replace(/((legend|label|map)\\.\\w+)/g, (match, p1) => {\n return parser({ id: p1 })\n })\n }\n return content\n })\n } else {\n return item.map((content, countentIndex) => {\n if (typeof content === 'string' && countentIndex === 0) {\n return content.replace(/((legend|label|map)\\.\\w+)/g, (match, p1) => {\n return parser({ id: p1 })\n })\n }\n return content\n })\n }\n })\n\n return finalData\n }\n return data\n }\n}\n\nfunction tableDataLabelParser (parser, data) {\n return dataLabelParser(1)(parser, data)\n}\n\nfunction checkPermission (role, permissionCode) {\n if (role && UAC.PermissionConfig[role] && UAC.PermissionConfig[role].length) {\n return UAC.PermissionConfig[role].indexOf(permissionCode) > -1\n }\n return false\n}\n\nfunction getLang () {\n let lang = ''\n\n if (window.localStorage.getItem('lang')) {\n lang = window.localStorage.getItem('lang')\n } else {\n lang = navigator.language.toLowerCase() || navigator.userLanguage.toLowerCase()\n }\n\n return lang\n}\n\nfunction getCodeLanguageType (filename) {\n const ext = filename && filename.split('.').pop().toLowerCase()\n return (ext && Constants.codeFileExtentsions[ext]) || 'markdown'\n}\n\nfunction getUserInfo (members, commitEmail) {\n const userInfo = members ? members.filter(FilterGenerator.indexOfEmails(commitEmail)) : []\n return userInfo.length\n ? userInfo[0]\n : {\n temporary: true,\n name: commitEmail,\n email: commitEmail,\n icon: ''\n }\n}\n\nfunction getDefaultBranch (currentRepositoryConfig) {\n if (currentRepositoryConfig.branches && currentRepositoryConfig.branches.length) {\n const master = currentRepositoryConfig.branches.filter(FilterGenerator.id(currentRepositoryConfig.repository.defaultBranch))\n if (master[0]) {\n return master[0].id\n } else {\n return currentRepositoryConfig.branches[0].id\n }\n }\n return ''\n}\n\nfunction notificationParser (notification, intl) {\n if (!notification.type || !notification.data) {\n return false\n }\n\n const data = notification.data = JSON.parse(notification.data)\n notification.text = intl.formatMessage({ id: 'notification.' + notification.type }, data)\n notification.url = ''\n\n if (['mergeRequest:create', 'mergeRequest:close', 'mergeRequest:merge', 'mergeRequestReviewer:create', 'mergeRequestReviewer:review'].includes(notification.type)) {\n notification.url = [data.group, data.repository, 'mergerequests', data.number].join('/')\n }\n\n return true\n}\n\nfunction copyToClipboard (data, success, el) {\n window.setTimeout(() => {\n const dom = window.document.createElement('textarea')\n dom.innerHTML = data\n el ? el.appendChild(dom) : window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('copy')\n el ? el.removeChild(dom) : window.document.body.removeChild(dom)\n success && success()\n }, 0)\n}\n\nexport {\n initailizer, makeFormData, makeQueryString, getObjectByProperty, formatNumber,\n formatUnit, roundNumber, percentColor, prependZero,\n makeLink, composeNamespacedData, tableDataLabelParser,\n checkPermission, getLang, getCodeLanguageType, getUserInfo, getDefaultBranch,\n notificationParser, copyToClipboard\n}\n","import { makeFormData, makeQueryString } from 'APPSRC/helpers/VaribleHelper'\n\nfunction DataProvider (method, endpoint, data, query) {\n let returnPromise\n\n if (query) {\n endpoint += '?' + makeQueryString(query)\n }\n\n // for demo path hwader\n const appendHeader = 'codefever-app'\n const localLanguage = window.localStorage.getItem('lang') || 'zh-cn'\n\n if (data) {\n returnPromise = window.fetch(\n endpoint,\n {\n body: makeFormData(data),\n cache: 'no-cache',\n credentials: 'same-origin',\n headers: {\n 'codefever-end-env': appendHeader,\n 'codefever-end-lang': localLanguage,\n Accept: 'application/json'\n },\n method: method,\n mode: 'same-origin',\n redirect: 'follow',\n referrer: 'client'\n })\n } else {\n returnPromise = window.fetch(\n endpoint,\n {\n cache: 'no-cache',\n credentials: 'same-origin',\n headers: {\n 'codefever-end-env': appendHeader,\n 'codefever-end-lang': localLanguage,\n Accept: 'application/json'\n },\n method: method,\n mode: 'same-origin',\n redirect: 'follow',\n referrer: 'client'\n })\n }\n\n return returnPromise\n}\n\nfunction GET (endpoint, data = {}, query = {}) {\n query.requestTime = new Date().getTime()\n return DataProvider('GET', endpoint, null, query)\n}\n\nfunction POST (endpoint, data, query = {}) {\n return DataProvider('POST', endpoint, data, query)\n}\n\nfunction PUT (endpoint, data, query = {}) {\n return DataProvider('PUT', endpoint, data, query)\n}\n\nfunction DELETE (endpoint, data, query = {}) {\n return DataProvider('DELETE', endpoint, data, query)\n}\n\nfunction OPTIONS (endpoint, data, query = {}) {\n return DataProvider('OPTIONS', endpoint, data, query)\n}\n\nexport default { GET, POST, PUT, DELETE, OPTIONS }\n","import APIRequest from 'APPSRC/data_providers/main'\n\nfunction getUserInfo () {\n return APIRequest.GET('/api/user/info')\n}\n\nfunction getKeyList () {\n return APIRequest.GET('/api/user/listKey')\n}\n\nfunction addSSHKey (data) {\n return APIRequest.POST('/api/user/addSSHKey', data)\n}\n\nfunction removeSSHKey (data) {\n return APIRequest.POST('/api/user/removeSSHKey', data)\n}\n\nfunction setUserData (data) {\n return APIRequest.POST('/api/user/update', data)\n}\n\nfunction updateBasicInfo (data) {\n return APIRequest.POST('/api/user/updateBasicInfo', data)\n}\n\nfunction updatePassword (data) {\n return APIRequest.POST('/api/user/updatePassword', data)\n}\n\nfunction changeEmail (data) {\n return APIRequest.POST('/api/user/changeEmail', data)\n}\n\nfunction getMFAData () {\n return APIRequest.GET('/api/user/getMFAData')\n}\n\nfunction updateMFAData (data) {\n return APIRequest.POST('/api/user/updateMFAData', data)\n}\n\nfunction revokeMFAData () {\n return APIRequest.POST('/api/user/revokeMFAData', {})\n}\n\nfunction getCountriesCode (data) {\n return APIRequest.POST('/api/user/getCountriesCode', data)\n}\n\nfunction getCode (data) {\n return APIRequest.POST('/api/user/getCode', data)\n}\n\nfunction confirmTel (data) {\n return APIRequest.POST('/api/user/confirmTel', data)\n}\n\nfunction uploadAvatar (data) {\n return APIRequest.POST('/api/user/uploadAvatar', data)\n}\n\nfunction getEmailCode (data) {\n return APIRequest.POST('/api/user/getEmailCode', data)\n}\n\nfunction addCommitEmail (data) {\n return APIRequest.POST('/api/user/addCommitEmail', data)\n}\n\nfunction resentCommitEmailCode (data) {\n return APIRequest.POST('/api/user/resentCommitEmailCode', data)\n}\n\nfunction deleteCommitEmail (data) {\n return APIRequest.POST('/api/user/deleteCommitEmail', data)\n}\n\nfunction validationCommitEmailCode (data) {\n return APIRequest.POST('/api/user/validationCommitEmailCode', data)\n}\n\nfunction notifications (data) {\n return APIRequest.GET('/api/user/notifications', null, data)\n}\n\nfunction setNotificationRead (data) {\n return APIRequest.POST('/api/user/setNotificationRead', data)\n}\n\nfunction deleteNotification (data) {\n return APIRequest.POST('/api/user/deleteNotification', data)\n}\n\nfunction userNotificationSetting (data) {\n return APIRequest.POST('/api/user/userNotificationSetting', data)\n}\n\nfunction notificationRefused (data) {\n return APIRequest.GET('/api/user/notificationRefused', null, data)\n}\n\nfunction setGroupOrRepoNotification (data) {\n return APIRequest.POST('/api/user/setGroupOrRepoNotification', data)\n}\n\nexport default {\n getUserInfo,\n getKeyList,\n addSSHKey,\n removeSSHKey,\n setUserData,\n updateBasicInfo,\n updatePassword,\n changeEmail,\n getMFAData,\n revokeMFAData,\n updateMFAData,\n getCountriesCode,\n confirmTel,\n uploadAvatar,\n getCode,\n getEmailCode,\n addCommitEmail,\n resentCommitEmailCode,\n deleteCommitEmail,\n validationCommitEmailCode,\n notifications,\n setNotificationRead,\n deleteNotification,\n userNotificationSetting,\n notificationRefused,\n setGroupOrRepoNotification\n}\n","function Event (type, data) {\n return { type, data }\n}\n\nfunction Network (type, statusCode) {\n}\n\nfunction NewNotification (message, level = 0, action = null) {\n return { type: 'notification.message.add', data: { message, level, action } }\n}\n\nfunction NewComformation (title, description, accept, reject) {\n return { type: 'notification.confirmation.popup', data: { title, description, accept, reject } }\n}\n\nfunction consumeComformation () {\n return { type: 'notification.confirmation.consume', data: null }\n}\n\nfunction cancelComformation () {\n return { type: 'notification.confirmation.close', data: null }\n}\n\nfunction addComformation (key, item) {\n return { type: 'notification.confirmation.add', data: { key: key, data: item } }\n}\n\nfunction removeComformation (key) {\n return { type: 'notification.confirmation.remove', data: { key } }\n}\n\nexport default { Event, NewNotification, Network, NewComformation, consumeComformation, cancelComformation, addComformation, removeComformation }\n","import { getLang } from 'APPSRC/helpers/VaribleHelper'\n\nfunction fetchMessage (code) {\n const lang = getLang()\n if (lang === 'zh-cn') {\n const ErrorCode = {\n 0x0000: '操作成功',\n\n 0x0100: '请求错误',\n 0x0101: '登录信息失效, 需要重新登陆',\n 0x0102: null,\n 0x0103: null,\n 0x0104: null,\n 0x0105: '请求的地址不存在',\n 0x0106: '没有操作权限',\n\n 0x0200: '请求资源为空',\n 0x0201: '输入错误',\n 0x0202: '输入值超过允许范围',\n\n 0x0301: '没有此仓库组',\n 0x0302: '没有此仓库',\n\n // internal net work error\n 0xFF00: '不能识别的响应数据,请稍后再试',\n 0xFF01: '网络链接错误,请稍后再试',\n 0xFF02: '请求过于频繁,请稍后再试'\n }\n return ErrorCode[code] || null\n } else {\n const ErrorCode = {\n 0x0000: 'Done',\n\n 0x0100: 'Request Error',\n 0x0101: 'Invalid Login',\n 0x0102: null,\n 0x0103: null,\n 0x0104: null,\n 0x0105: 'Resource Not Found',\n 0x0106: 'Insufficient Permission',\n\n 0x0200: 'Empty Resource',\n 0x0201: 'Invalid Input',\n 0x0202: 'Input Out of Range',\n\n 0x0301: 'No Such Group',\n 0x0302: 'No Such Repository',\n\n // internal net work error\n 0xFF00: 'Response Data Can Not Be Parsed, Try Later',\n 0xFF01: 'Network Error, Try Later',\n 0xFF02: 'Too Many Request, Try Later'\n }\n return ErrorCode[code] || null\n }\n}\n\nexport default fetchMessage\n","import EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ErrorCodeParser from 'APPSRC/helpers/ErrorCodeParser'\n\nfunction getJSONData (response, dispatcher = null) {\n dispatcher && dispatcher({ type: 'network.connection.ok' })\n\n // check response valid\n if (!response.ok) {\n if (parseInt(response.status) === 429) {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF02), 1))\n return { code: 1 }\n }\n\n if (parseInt(response.status) >= 500) {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF03), 1))\n return { code: 1 }\n }\n }\n\n let responseJson = {}\n\n responseJson = response.json().catch((e) => {\n dispatcher && dispatcher({ type: 'network.connection.error' })\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF00), 2))\n return { code: 1 }\n })\n\n responseJson\n .then((data) => {\n if (data && data.code && data.code < 0x0400) {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(data.code) || data.message, 2))\n if (parseInt(data.code) === 0x0101) {\n // login status not valid, redirect to login page\n window.setTimeout(() => {\n window.location.href = '/user/login'\n }, 3000)\n }\n if (parseInt(data.code) === 0x0106) {\n // access denied\n }\n }\n })\n .catch((error) => {\n catchError(error, dispatcher)\n })\n return responseJson\n}\n\nfunction getTextData (response, dispatcher = null) {\n // check response valid\n if (!response.ok) {\n switch (response.status) {\n case 429: {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF02), 1))\n break\n }\n case 500: {\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF03), 1))\n break\n }\n default: {\n dispatcher && dispatcher(EventGenerator.NewNotification('Oooops...', 1))\n }\n }\n return null\n }\n\n return response.text()\n}\n\nfunction getFile (response, dispatcher = null) {\n\n}\n\nfunction catchError (error, dispatcher = null) {\n dispatcher && dispatcher({ type: 'network.connection.error' })\n dispatcher && dispatcher(EventGenerator.NewNotification(ErrorCodeParser(0xFF01), 2))\n return error\n}\n\nfunction withEventdispatcher (dispatcher) {\n return (handler) => (promise) => handler(promise, dispatcher)\n}\n\nfunction getHost (userinfo) {\n return userinfo && userinfo.host\n}\n\nfunction getSSHHost (userinfo) {\n return userinfo && userinfo.ssh\n ? userinfo.ssh\n : 'git@' + userinfo.host.replace('http://', '').replace('https://', '')\n}\n\nfunction makeSlug (input) {\n return input.replace(/[^\\w]/g, '_')\n}\n\nexport default { getJSONData, getTextData, getFile, catchError, withEventdispatcher, getHost, getSSHHost, makeSlug }\n","import EventGenerator from 'APPSRC/helpers/EventGenerator'\n\nfunction stateValidator (instance, rules) {\n // rules [{name, passPattern, errorMessage}, ...]\n return () => {\n const error = {}\n let errorFlag = false\n for (let index = rules.length - 1; index >= 0; index--) {\n const rule = rules[index]\n if (typeof instance.state[rule.name] === 'string' && !instance.state[rule.name].match(rule.passPattern)) {\n errorFlag |= true\n error[rule.name] = rule.errorMessage\n }\n }\n instance.setState({ error })\n return !errorFlag\n }\n}\n\nfunction codeValidator (instance, rules) {\n // rules [{name, exceptionCode, errorMessage}, ...]\n return (input) => {\n const error = {}\n for (let index = 0; index < rules.length; index++) {\n const rule = rules[index]\n if (rule.exceptionCode && rule.exceptionCode === input && rule.name) {\n error[rule.name] = rule.errorMessage\n instance.setState({ error })\n return false\n } else if (rule.exceptionCode && rule.exceptionCode === input && !rule.name) {\n instance.props.dispatchEvent(EventGenerator.NewNotification(rule.errorMessage, parseInt(rule.level) || 2))\n return false\n }\n }\n return true\n }\n}\n\nexport default {\n stateValidator,\n codeValidator\n}\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport UserData from 'APPSRC/data_providers/UserData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n pr0: {\n '& > div': {\n paddingRight: '0px !important'\n },\n '& button': {\n minWidth: theme.spacing(18)\n }\n }\n})\n\nclass SetEmail extends React.Component {\n constructor (props) {\n super(props)\n const { intl } = this.props\n this.state = {\n email: '',\n password: '',\n code: '',\n error: {},\n showPassword: false,\n showCodeInput: false,\n emailFocus: false,\n passwordFocus: false,\n codeBtnDisabled: false,\n codeText: intl.formatMessage({ id: 'label.getEmailCode' })\n }\n\n this.getEmailCodeCheckInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.getEmailCodeCheckResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x040D,\n errorMessage: intl.formatMessage({ id: 'message.error.inputNewEmail' })\n },\n {\n name: 'email',\n exceptionCode: 0x0406,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'password',\n exceptionCode: 0x040C,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.password' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0405,\n errorMessage: intl.formatMessage({ id: 'message.error.getEmailCodeFail' })\n }\n ])\n\n this.saveEmailCheckInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'password',\n passPattern: /^.+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: intl.formatMessage({ id: 'label.password' }) }\n )\n },\n {\n name: 'code',\n passPattern: /^[0-9]{6}$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.emailCode' }) }\n )\n }\n ])\n\n this.saveEmailCheckResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0405,\n errorMessage: intl.formatMessage(\n { id: 'message.error.change_S_Fail' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'code',\n exceptionCode: 0x040C,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.setState({ email: this.props.currentUserInfo.email })\n }\n\n getEmailCode () {\n const { intl } = this.props\n const { email, password, codeBtnDisabled } = this.state\n if (codeBtnDisabled || !password || !this.getEmailCodeCheckInput()) {\n return false\n }\n\n UserData.getEmailCode({\n email: email,\n password: password\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.emailCodeHasSendNewEmail' }), 0))\n this.setState({ showCodeInput: true })\n this.countDown()\n } else if (!this.getEmailCodeCheckResponse(data.code)) {\n return false\n }\n })\n }\n\n countDown () {\n const { intl } = this.props\n this.setState({ codeBtnDisabled: true })\n\n let time = 60\n this.int = setInterval(() => {\n this.setState({ codeText: intl.formatMessage({ id: 'label.retryAfter_N_seconds' }, { n: time }) })\n if (--time <= 0) {\n clearInterval(this.int)\n this.setState({\n codeText: intl.formatMessage({ id: 'label.getEmailCode' }),\n codeBtnDisabled: false\n })\n }\n }, 1000)\n }\n\n saveData () {\n const { intl } = this.props\n const { email, password, code } = this.state\n if (!this.saveEmailCheckInput()) {\n return false\n }\n\n UserData.changeEmail({\n password: password,\n email: email,\n code: code\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.update(() => {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n setTimeout(() => (window.location.href = '/user/logout'), 3000)\n })\n } else if (this.saveEmailCheckResponse(data.code)) {\n return false\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n const { email, password, code, error, showPassword, showCodeInput } = this.state\n return (\n \n \n { intl.formatMessage({ id: 'label.email' }) }\n \n \n this.setState({ email: e.target.value })}\n onFocus={() => this.setState({ emailFocus: true, showPassword: true })}\n onBlur={() => setTimeout(() => {\n this.setState({ emailFocus: false })\n !this.state.passwordFocus && this.setState({ showPassword: false })\n }, 150)}\n />\n \n { showPassword && !showCodeInput && \n \n this.setState({ password: e.target.value })}\n onFocus={() => this.setState({ passwordFocus: true })}\n onBlur={() => setTimeout(() => {\n this.setState({ passwordFocus: false })\n !this.state.emailFocus && this.setState({ showPassword: false })\n }, 150)}\n />\n \n \n \n \n \n }\n { showCodeInput && \n \n this.setState({ code: e.target.value })}\n InputProps={{\n endAdornment: \n }}\n />\n \n \n \n \n \n }\n \n \n )\n }\n}\n\nSetEmail.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n update: PropTypes.func.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(SetEmail)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport UserData from 'APPSRC/data_providers/UserData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n})\n\nclass SetUserInfo extends React.Component {\n constructor (props) {\n super(props)\n this.oldData = props.currentUserInfo[props.comData.field]\n this.state = {\n data: this.oldData,\n showBtn: false,\n error: {}\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'data',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: props.comData.label }) }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'data',\n exceptionCode: 0x0405,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.change_S_Fail' },\n { s: this.props.intl.formatMessage({ id: props.comData.label }) }\n )\n }\n ])\n }\n\n saveData () {\n const { intl, comData } = this.props\n const { data } = this.state\n if (this.oldData === data || !this.checkInput()) {\n return false\n }\n\n UserData.setUserData({\n data: data,\n field: comData.field\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((result) => {\n if (!result.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n this.oldData = data\n this.props.update()\n } else if (!this.checkResponse(result.code)) {\n return false\n }\n })\n }\n\n render () {\n const { intl, comData } = this.props\n return (\n \n \n { intl.formatMessage({ id: comData.label }) }\n \n \n this.setState({ data: e.target.value })}\n onFocus={() => this.setState({ showBtn: true })}\n />\n \n { this.state.showBtn && \n   \n \n \n }\n \n \n )\n }\n}\n\nSetUserInfo.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n comData: PropTypes.object.isRequired,\n update: PropTypes.func.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(SetUserInfo)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport SetEmail from 'APPSRC/components/view/unit/SetEmail'\nimport SetUserInfo from 'APPSRC/components/view/unit/SetUserInfo'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\nconst styles = (theme) => ({\n infoWrap: {\n padding: '20px 30px 60px 30px',\n marginTop: 20\n }\n})\n\nclass UserInfo extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n }\n this.updateAllInfo = this.updateAllInfo.bind(this)\n }\n\n updateAllInfo (cb) {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n typeof cb === 'function' && cb()\n }\n })\n }\n\n render () {\n const { classes, currentUserInfo, intl } = this.props\n return (\n
\n {intl.formatMessage({ id: 'label.settings' })}\n\n \n {intl.formatMessage({ id: 'label.profile' })}\n
\n {'u_key' in currentUserInfo ? : ''}\n
\n {'u_key' in currentUserInfo ? : ''}\n
\n {intl.formatMessage({ id: 'label.loginCredential' })}\n
\n {'u_key' in currentUserInfo ? : ''}\n
\n {'u_key' in currentUserInfo ? : ''}\n \n
\n )\n }\n}\n\nUserInfo.propTypes = {\n classes: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(UserInfo)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\n\n// components\nimport Tooltip from '@material-ui/core/Tooltip'\nimport Button from '@material-ui/core/Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plHelp } from '@pgyer/icons'\nimport { Typography } from '@material-ui/core'\n\nconst styles = (theme) => ({\n progress: {\n color: theme.palette.info.main\n }\n})\n\nclass ShowHelper extends React.Component {\n showDoc () {\n const { doc, currentLanguage } = this.props\n\n let language = 'cn'\n if (currentLanguage === 'en-us') {\n language = 'en'\n }\n\n window.open('/doc/' + language + doc, '_blank')\n }\n\n render () {\n const { tooltip, title, type, intl } = this.props\n if (type === 'button') {\n return \n } else if (type === 'icon') {\n return \n \n this.showDoc() }>\n \n \n \n \n } else {\n return \n \n this.showDoc() }>\n {title || intl.formatMessage({ id: 'label.learnMore' })} \n \n \n \n \n }\n }\n}\n\nShowHelper.propTypes = {\n doc: PropTypes.string.isRequired,\n title: PropTypes.string,\n tooltip: PropTypes.string,\n type: PropTypes.string,\n intl: PropTypes.object.isRequired,\n currentLanguage: PropTypes.string.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n ShowHelper\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport { injectIntl } from 'react-intl'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plTrash } from '@pgyer/icons'\n\nimport Button from '@material-ui/core/Button'\n\n// style\nconst styles = theme => ({\n line: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(0.5)\n },\n line2: {\n marginBottom: theme.spacing(1)\n },\n center: {\n display: 'flex',\n alignItems: 'center'\n },\n icon: {\n color: theme.palette.text.light\n }\n})\n\nclass SSHKeyItem extends React.Component {\n render () {\n const { item, onDelete, classes } = this.props\n\n return (\n \n \n {item.name}  \n \n \n { item.hash.replace(/([a-f0-9]{2})/ig, '$1:').slice(0, -1) }\n \n \n \n \n \n )\n }\n}\n\nSSHKeyItem.propTypes = {\n item: PropTypes.object,\n onDelete: PropTypes.func,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(SSHKeyItem)\n )\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\n\n// components\nimport { tableDataLabelParser } from 'APPSRC/helpers/VaribleHelper'\nimport Typography from '@material-ui/core/Typography'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\n\n// style\nconst styles = theme => ({})\n\nclass TableList extends Component {\n render () {\n const { data, intl } = this.props\n\n let inputData = data || [[], []]\n inputData = tableDataLabelParser(intl.formatMessage, inputData)\n\n return \n \n \n { inputData[1].map((name, index) => (\n {name}\n )) }\n \n \n \n {inputData.map((item, index) => {\n if (index > 1) {\n return (\n { item.map((row, rowid) => ({row})) }\n )\n }\n return null\n })}\n \n
\n }\n}\n\nTableList.propTypes = {\n // classes: PropTypes.object.isRequired,\n // theme: PropTypes.object.isRequired,\n data: PropTypes.array,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TableList)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Paper from '@material-ui/core/Paper'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport SSHKeyItem from 'APPSRC/components/unit/SSHKeyItem'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport UserData from 'APPSRC/data_providers/UserData'\n\n// helpers\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n margin: theme.spacing(2) + 'px 0px'\n },\n table: {\n '& th, & td': {\n textAlign: 'left !important'\n }\n }\n})\n\nclass UserSettingSSHKey extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n keyList: [],\n name: '',\n key: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'key',\n passPattern: /^.+$/m,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.SSHKey' }) }\n )\n },\n {\n name: 'key',\n passPattern: /^((?:ssh|ecdsa)-[\\w\\d]+)\\s+(\\S)+(?:\\s+(\\S+))?\\s*$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.SSHKey' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.name' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'key',\n exceptionCode: 0x040D,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.sshKeyDuplicate' })\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData()\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n addKey () {\n if (!this.checkInput()) {\n return false\n }\n\n const { intl, dispatchEvent } = this.props\n const { key, name } = this.state\n const parsedKey = key.match(/^((?:ssh|ecdsa)-[\\w\\d]+)\\s+(\\S+)(?:\\s+(\\S+))?\\s*$/)\n\n this.setState({ pending: true })\n UserData.addSSHKey({\n name: name,\n key: parsedKey[2]\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.Added' }), 0))\n this.setState({ name: '', key: '' })\n this.getData()\n } else if (!this.checkResponse(data.code)) {\n return false\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.AddFail' }), 2))\n }\n })\n\n return true\n }\n\n removeKey (id) {\n const { intl, dispatchEvent } = this.props\n UserData.removeSSHKey({ id: id })\n .then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.removed' }), 0))\n this.getData()\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.removeFail' }), 2))\n }\n })\n }\n\n getData () {\n UserData.getKeyList()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ keyList: data.data })\n }\n })\n }\n\n render () {\n const { currentUserInfo, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'label.SSHKey_pl' }) }\n \n \n \n \n { currentUserInfo.id\n ? \n \n \n \n \n { intl.formatMessage({ id: 'label.addSSHKey' }) }  \n \n \n \n \n {\n const inputValue = e.target.value\n const matches = inputValue.match(/^((?:ssh|ecdsa)-[\\w\\d]+)\\s+(\\S)+(?:\\s+(\\S+))?\\s*$/)\n const setObject = { key: inputValue, name: '' }\n if (matches && matches[3]) {\n setObject.name = matches[3]\n }\n this.setState(setObject)\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.name' }) }\n \n \n this.setState({ name: e.target.value })}\n placeholder={intl.formatMessage({ id: 'message.inputSSHKEYName' })}\n />\n \n \n this.addKey()}\n disabled={this.state.pending}\n className={classes.btn}\n >\n {intl.formatMessage({ id: 'label.addSSHKey' })}\n \n \n \n \n \n \n {\n return [ this.removeKey(id)} />]\n })\n ]} />\n \n \n \n : \n \n \n \n }\n \n \n )\n }\n}\n\nUserSettingSSHKey.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(UserSettingSSHKey)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// components\nimport { withStyles } from '@material-ui/core/styles'\nimport Button from '@material-ui/core/Button'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n button: {\n minWidth: theme.spacing(3) + 'px !important',\n padding: '7px 8px !important'\n },\n icon: {\n width: '18px !important',\n height: '18px !important'\n },\n badge: {\n right: 0,\n top: '-5px',\n zIndex: '1',\n fontSize: '12px',\n position: 'absolute',\n borderRadius: '10px',\n background: '#FF3F35',\n height: theme.spacing(2),\n minWidth: theme.spacing(2),\n lineHeight: theme.spacing(2) + 'px',\n color: theme.palette.primary.contrastText,\n border: '2px solid ' + theme.palette.background.light\n }\n})\n\nclass SquareIconButton extends React.Component {\n render () {\n const { icon, className, label, badge, intl, classes, ...copyProps } = this.props\n const button = ()\n return (label\n ? \n {button}\n \n : button\n )\n }\n}\n\nSquareIconButton.propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n badge: PropTypes.number,\n icon: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n label: PropTypes.string\n}\n\nexport default injectIntl(\n withStyles(styles)(\n SquareIconButton\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { plTrash, plCheck, plEdit, plClose } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport UserData from 'APPSRC/data_providers/UserData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = (theme) => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n title: {\n lineHeight: theme.spacing(3) + 'px',\n paddingBottom: theme.spacing(2)\n },\n content: {\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(5),\n borderBottom: '1px solid ' + theme.palette.border,\n marginBottom: theme.spacing(3)\n },\n create: {\n marginTop: theme.spacing(1)\n },\n size: {\n fontSize: '12px'\n },\n btn: {\n textDecoration: 'none !important',\n marginLeft: theme.spacing(3)\n },\n icon: {\n color: theme.palette.text.light\n },\n disabled: {\n opacity: 0.5,\n cursor: 'not-allowed'\n },\n ok: {\n '& svg': {\n color: theme.palette.success.main + ' !important'\n }\n },\n cancel: {\n marginLeft: theme.spacing(3),\n '& svg': {\n width: '14px !important',\n height: '14px !important',\n padding: '2px',\n color: theme.palette.error.main + ' !important'\n }\n },\n table: {\n marginTop: theme.spacing(3),\n '& tbody tr': {\n '&:hover': {\n background: theme.palette.background.light + ' !important'\n }\n },\n '& td': {\n height: theme.spacing(6) + 'px',\n '& > div': {\n verticalAlign: 'middle'\n }\n }\n }\n})\n\nclass UserSettingEmail extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n primaryEmail: props.currentUserInfo.id ? props.currentUserInfo.email : '',\n emails: props.currentUserInfo.id ? props.currentUserInfo.emails : null,\n email: '',\n error: {},\n validationEmail: null,\n code: '',\n codeDisabled: [],\n count: {}\n }\n\n const { intl } = props\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^.+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n passPattern: /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.codeCheckInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'code',\n passPattern: /^\\d+$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: intl.formatMessage({ id: 'label.emailCode' }) }\n )\n },\n {\n name: 'code',\n passPattern: /^\\d{6}$/,\n errorMessage: intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.emailCode' }) }\n )\n }\n ])\n\n this.codeCheckResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'code',\n exceptionCode: 0x040C,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: intl.formatMessage({ id: 'label.emailCode' }) }\n )\n }\n ])\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentUserInfo) !== JSON.stringify(this.props.currentUserInfo)) {\n this.setState({\n primaryEmail: nextProps.currentUserInfo.email,\n emails: nextProps.currentUserInfo.emails\n })\n return false\n }\n return true\n }\n\n reloadUserData (cancel) {\n cancel && this.cancelForm()\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n }\n\n addCommitEmail () {\n const { emails, email } = this.state\n const { intl } = this.props\n if (!emails || !this.checkInput()) {\n return false\n }\n\n if (emails.filter(FilterGenerator.email(email)).length > 0) {\n this.setState({\n error: {\n email: intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: intl.formatMessage({ id: 'label.email' }) }\n )\n }\n })\n return false\n }\n\n this.setState({ pending: true })\n UserData.addCommitEmail({\n email: email\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.emailCodeHasSendNewEmail' }), 0))\n this.createValidationForm(email)\n this.reloadUserData(false)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.AddFail' }), 2))\n }\n })\n }\n\n resentCommitEmailCode (email) {\n const { intl } = this.props\n const { codeDisabled } = this.state\n\n if (typeof codeDisabled[email] === 'undefined') {\n codeDisabled[email] = false\n }\n\n if (codeDisabled[email]) {\n return false\n }\n\n this.cancelForm()\n UserData.resentCommitEmailCode({\n email: email\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.emailCodeHasSendNewEmail' }), 0))\n this.countDown(email)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.getEmailCodeFail' }), 2))\n }\n })\n }\n\n countDown (email) {\n const { count, codeDisabled } = this.state\n\n if (typeof count[email] === 'undefined') {\n count[email] = 120\n }\n\n if (count[email]) {\n this.setState({\n codeDisabled: { ...codeDisabled, [email]: true },\n count: { ...count, [email]: --count[email] }\n })\n window.setTimeout(() => this.countDown(email), 1000)\n } else {\n this.setState({\n codeDisabled: { ...codeDisabled, [email]: false },\n count: { ...count, [email]: 120 }\n })\n }\n }\n\n validationCommitEmailCode (item) {\n const { intl } = this.props\n const { code } = this.state\n if (!item || !this.codeCheckInput()) {\n return false\n }\n\n this.setState({ pending: true })\n UserData.validationCommitEmailCode({\n id: item.id,\n email: item.email,\n code: code\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.verified' }), 0))\n this.reloadUserData(true)\n } else if (!this.codeCheckResponse(data.code)) {\n return false\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.verifyFail' }), 2))\n }\n })\n }\n\n deleteConfirm (id, email) {\n const { intl } = this.props\n this.cancelForm()\n this.props.dispatchEvent(EventGenerator.addComformation('delete_my_email', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.email' }) + ' \\'' + email + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => this.deleteCommitEmail(id)\n }))\n }\n\n deleteCommitEmail (id) {\n const { intl } = this.props\n if (!id) {\n return false\n }\n\n this.setState({ pending: true })\n UserData.deleteCommitEmail({\n id: id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.deleted' }), 0))\n this.reloadUserData(true)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.deleteFail' }), 2))\n }\n })\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { primaryEmail, emails, validationEmail, codeDisabled, count } = this.state\n const final = []\n if (!emails) {\n return false\n }\n\n emails.map((item, index) => {\n if (item === 'create') {\n final.push(this.createForm())\n } else if (validationEmail === item.email) {\n final.push(this.validationForm(item))\n } else {\n final.push([\n {item.email},\n item.email === primaryEmail\n ? {intl.formatMessage({ id: 'label.primaryEmail' })}\n : item.isCheck\n ? {intl.formatMessage({ id: 'message.contactedEmail' })}\n : \n {intl.formatMessage({ id: 'message.shouldValidation' })}\n this.resentCommitEmailCode(item.email)}\n >\n {intl.formatMessage({ id: 'message.resendEmail' })}?\n {codeDisabled[item.email] && '(' + count[item.email] + ')'}\n \n ,\n item.email !== primaryEmail && \n {!item.isCheck && this.createValidationForm(item.email)} icon={plEdit} />}\n this.deleteConfirm(item.id, item.email)} icon={plTrash} />\n \n ])\n }\n return true\n })\n\n return [\n ['30%', 'auto', 'auto'],\n ['label.contactEmail', 'label.status', ''],\n ...final\n ]\n }\n\n createForm () {\n const { classes, intl } = this.props\n return [\n this.setState({ email: e.target.value })}\n />,\n '',\n \n this.addCommitEmail()} className={classes.ok} />\n this.cancelForm()} className={classes.cancel} />\n \n ]\n }\n\n validationForm (item) {\n const { classes, intl } = this.props\n return [\n {item.email},\n this.setState({ code: e.target.value })}\n />,\n \n this.validationCommitEmailCode(item)} className={classes.ok} />\n this.cancelForm()} className={classes.cancel} />\n \n ]\n }\n\n cancelForm () {\n let { emails } = this.state\n if (emails[emails.length - 1] === 'create') {\n emails = emails.slice(0, emails.length - 1)\n }\n\n this.setState({\n emails: emails,\n email: '',\n error: {},\n validationEmail: null,\n code: ''\n })\n }\n\n createCommitEmailForm () {\n const { emails } = this.state\n if (emails[emails.length - 1] !== 'create') {\n this.cancelForm()\n this.setState({ emails: [...emails, 'create'] })\n }\n }\n\n createValidationForm (email) {\n this.cancelForm()\n this.setState({ validationEmail: email })\n }\n\n render () {\n const { history, classes, intl } = this.props\n const { pending, primaryEmail, emails } = this.state\n\n return (\n \n { intl.formatMessage({ id: 'label.emailManage' }) }\n \n \n {intl.formatMessage({ id: 'message.primaryEmail' })}\n {intl.formatMessage({ id: 'message.primaryEmailDescription' })}\n \n \n {primaryEmail}\n \n \n \n \n \n \n \n \n {intl.formatMessage({ id: 'message.myEmail' })}\n \n {intl.formatMessage({ id: 'message.myEmailDescription' })}  \n \n \n \n \n \n \n \n { emails !== null\n ? \n : \n \n \n }\n \n \n )\n }\n}\n\nUserSettingEmail.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UserSettingEmail)\n )\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\n\n// components\nimport PropTypes from 'prop-types'\nimport { withStyles } from '@material-ui/core/styles'\nimport Avatar from '@material-ui/core/Avatar'\nimport classNames from 'classnames'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlus } from '@fortawesome/free-solid-svg-icons'\nimport { injectIntl } from 'react-intl'\nimport { Grid } from '@material-ui/core'\n\nconst styles = (theme) => ({\n avatarLabel: {\n cursor: 'pointer',\n position: 'relative',\n display: 'inline-block',\n borderRadius: theme.spacing(1) + 'px'\n },\n iconBox: {\n width: '100%',\n position: 'absolute',\n left: '0',\n bottom: '0',\n background: '#2F354D',\n opacity: 0.3\n },\n iconBoxRounded: {\n height: '40%',\n borderBottomLeftRadius: theme.spacing(1) + 'px',\n borderBottomRightRadius: theme.spacing(1) + 'px'\n },\n iconBoxCircle: {\n height: '100%',\n borderRadius: '50%'\n },\n editIcon: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n fontSize: theme.spacing(2) + 'px',\n color: '#fff'\n },\n uploadInput: {\n display: 'none !important'\n },\n userInfoAvatar: {\n width: theme.spacing(7),\n height: theme.spacing(7)\n },\n circleUserInfoAvatar: {\n width: theme.spacing(10),\n height: theme.spacing(10)\n }\n})\n\nclass AvatarUploader extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n showImgIcon: false\n }\n this.uploadFile = this.uploadFile.bind(this)\n this.instanceID = ''\n }\n\n componentDidMount () {\n this.instanceID = Math.floor(Math.random() * 1E6)\n }\n\n uploadFile (e) {\n const { appendData, name, dataProvider } = this.props\n const file = e.target.files[0]\n const data = { ...appendData }\n data[name + '_BINARY'] = file\n\n if (!file) {\n return false\n }\n\n dataProvider(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(this.props.onUpdate)\n }\n\n render () {\n const { classes, src, type } = this.props\n return (\n \n {\n this.setState({\n showImgIcon: true\n })\n }}\n onMouseLeave={() => {\n this.setState({\n showImgIcon: false\n })\n }}\n >\n {type === 'avatar'\n ? \n : 1 ? src : ''}\n className={classNames(classes.userInfoAvatar)}\n >\n {src.length === 1 ? src : ''}\n }\n {this.state.showImgIcon &&\n \n \n \n }\n \n \n \n )\n }\n}\n\nAvatarUploader.propTypes = {\n classes: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n src: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onUpdate: PropTypes.func.isRequired,\n dataProvider: PropTypes.func.isRequired,\n appendData: PropTypes.object.isRequired,\n type: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(AvatarUploader)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport TextField from '@material-ui/core/TextField'\nimport Button from '@material-ui/core/Button'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport AvatarUploader from 'APPSRC/components/unit/AvatarUploader'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px',\n marginTop: theme.spacing(4)\n },\n mainMarginTop: {\n marginTop: theme.spacing(3)\n },\n mainMarginBottom: {\n marginBottom: theme.spacing(1)\n },\n noMarginTop: {\n marginTop: 'unset'\n },\n title: {\n marginTop: theme.spacing(3),\n marginBottom: theme.spacing(1)\n },\n pl: {\n paddingLeft: theme.spacing(4) + 'px !important'\n },\n btn: {\n color: theme.palette.primary.main,\n cursor: 'pointer'\n },\n paper: {\n paddingBottom: theme.spacing(10)\n },\n fold: {\n fontWeight: 500\n },\n flexRow: {\n display: 'flex',\n flexFlow: 'row nowrap',\n justifyContent: 'flex-start',\n alignItems: 'center'\n },\n flexRowCenter: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n padding: theme.spacing(1.5) + 'px ' + theme.spacing(1) + 'px',\n marginLeft: theme.spacing(4)\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n }\n})\n\nclass UserSettingGeneral extends React.Component {\n constructor (props) {\n super(props)\n this.updateUserInfo = this.updateUserInfo.bind(this)\n this.mountedFlag = false\n const { currentUserInfo } = this.props\n this.state = {\n name: currentUserInfo.name || '',\n email: currentUserInfo.email || '',\n team: currentUserInfo.team || '',\n role: currentUserInfo.role || '',\n oldPassword: '',\n newPassword: '',\n againPassword: '',\n mfaMode: 0, // 0 = options, 1 = settings\n mfaQRCodeData: '',\n mfaSecret: '',\n mfaCode1: '',\n mfaCode2: '',\n error: {}\n }\n\n this.checkBaseInfo = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^\\S+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.userName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{2,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 2, n2: 50 }\n )\n },\n {\n name: 'email',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n passPattern: /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'team',\n passPattern: /^.{0,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 50 }\n )\n },\n {\n name: 'role',\n passPattern: /^.{0,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 50 }\n )\n }\n ])\n\n this.checkBaseResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'data',\n exceptionCode: 0x0405,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.updateFail' }\n )\n }\n ])\n\n this.checkPWDResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'oldPassword',\n exceptionCode: 0x0410,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.password' }) }\n )\n }\n ])\n\n this.checkMFAInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'mfaCode1',\n passPattern: /^\\d{6}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.mfaCode' }) }\n )\n },\n {\n name: 'mfaCode2',\n passPattern: /^\\d{6}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.mfaCode' }) }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'mfaCode1',\n exceptionCode: 0x0411,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.mfaCode' }) }\n )\n },\n {\n name: 'mfaCode2',\n exceptionCode: 0x0412,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.mfaCode' }) }\n )\n }\n ])\n }\n\n checkPWDInput () {\n const validateArr = [\n {\n name: 'oldPassword',\n passPattern: /^.{6,}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.oldPassword' }) }\n )\n },\n {\n name: 'newPassword',\n passPattern: /^.{6,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 6, n2: 50 }\n )\n },\n {\n name: 'againPassword',\n passPattern: new RegExp('^' + this.state.newPassword + '$'),\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.inputNotSame' }\n )\n }\n ]\n return ValidatorGenerator.stateValidator(this, validateArr)()\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.updateUserInfo()\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentUserInfo.name !== nextProps.currentUserInfo.name ||\n this.props.currentUserInfo.email !== nextProps.currentUserInfo.email ||\n this.props.currentUserInfo.team !== nextProps.currentUserInfo.team ||\n this.props.currentUserInfo.role !== nextProps.currentUserInfo.role\n ) {\n this.setState({\n name: nextProps.currentUserInfo.name || '',\n email: nextProps.currentUserInfo.email || '',\n team: nextProps.currentUserInfo.team || '',\n role: nextProps.currentUserInfo.role || ''\n })\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n avatarUploaded (data) {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.updateUserInfo()\n }\n }\n\n updateUserInfo () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n if (!data.data.mfaEnabled) {\n this.prepareMFADeviceSetup()\n }\n }\n })\n }\n\n updateBasicInfo () {\n if (!this.checkBaseInfo()) {\n return false\n }\n\n UserData.updateBasicInfo({\n name: this.state.name,\n email: this.state.email,\n team: this.state.team,\n role: this.state.role\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((result) => {\n if (!result.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.updated' }), 0))\n this.updateUserInfo()\n } else if (!this.checkBaseResponse(result.code)) {\n return false\n }\n })\n }\n\n updatePassword () {\n const { oldPassword, newPassword } = this.state\n if (!this.checkPWDInput()) {\n return false\n }\n\n UserData.updatePassword({\n current: oldPassword,\n new: newPassword\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.updated' }), 0))\n this.updateUserInfo()\n this.clearPWD()\n } else if (!this.checkPWDResponse(data.code)) {\n return false\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n }\n })\n }\n\n clearPWD () {\n this.setState({\n oldPassword: '',\n newPassword: '',\n againPassword: ''\n })\n }\n\n prepareMFADeviceSetup () {\n this.setState({ MFAPending: true })\n UserData.getMFAData()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ MFAPending: false })\n if (data && !data.code && data.data) {\n this.setState({\n mfaMode: 1,\n mfaQRCodeData: data.data.image,\n mfaSecret: data.data.secret,\n mfaCode1: '',\n mfaCode2: ''\n })\n }\n })\n }\n\n revokeMFADevice () {\n this.setState({ MFAPending: true })\n UserData.revokeMFAData()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ MFAPending: false })\n if (data && !data.code && data.data) {\n this.updateUserInfo()\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.removed' }), 0))\n }\n })\n }\n\n updateMFADevice () {\n if (!this.checkMFAInput()) {\n return false\n }\n\n if (this.state.mfaCode1 === this.state.mfaCode2) {\n this.setState({\n error: {\n ...this.state.error,\n mfaCode2: this.props.intl.formatMessage({ id: 'message.error.inputSame' })\n }\n })\n return false\n }\n\n this.setState({ MFAPending: true })\n UserData.updateMFAData({\n secret: this.state.mfaSecret,\n code1: this.state.mfaCode1,\n code2: this.state.mfaCode2\n })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ MFAPending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.updated' }), 0))\n this.setState({\n mfaMode: 0,\n mfaSecret: '',\n mfaCode1: '',\n mfaCode2: ''\n })\n this.updateUserInfo()\n } else if (!this.checkResponse(data.code)) {\n return false\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n }\n })\n }\n\n render () {\n const { currentUserInfo, classes, intl } = this.props\n\n return (\n \n { intl.formatMessage({ id: 'menu.profile' }) }\n \n \n \n \n \n { intl.formatMessage({ id: 'label.userName' }) }\n \n \n {\n const name = e.target.value\n const error = {}\n this.setState({ name, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.email' }) }\n \n \n {\n const email = e.target.value\n const error = {}\n this.setState({ email, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.team' }) }\n \n \n {\n const team = e.target.value\n const error = {}\n this.setState({ team, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.role' }) }\n \n \n {\n const role = e.target.value\n const error = {}\n this.setState({ role, error })\n }}\n />\n \n\n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.userAvatar' }) }\n \n \n this.avatarUploaded(data)}\n dataProvider={UserData.uploadAvatar}\n />\n \n \n \n \n\n \n { intl.formatMessage({ id: 'label.security' }) }\n \n \n \n \n \n { intl.formatMessage({ id: 'label.oldPassword' }) }\n \n \n {\n const oldPassword = e.target.value\n const error = {}\n this.setState({ oldPassword, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.newPassword' }) }\n \n \n {\n const newPassword = e.target.value\n const error = {}\n this.setState({ newPassword, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.newPasswordConfirm' }) }\n \n \n {\n const againPassword = e.target.value\n const error = {}\n this.setState({ againPassword, error })\n }}\n />\n \n \n \n \n \n \n \n\n \n { intl.formatMessage({ id: 'label.twoFactorAuthentication' }) }\n \n \n { (this.state.mfaMode === 0 && currentUserInfo.mfaEnabled) && \n \n   \n \n }\n { (this.state.mfaMode === 1 || !currentUserInfo.mfaEnabled) && \n \n {intl.formatMessage({ id: 'message.mfaGuide' })}\n \n \n {this.state.MFAPending\n ? \n : }\n \n \n this.setState({ mfaCode1: e.target.value })}\n />\n \n \n this.setState({ mfaCode2: e.target.value })}\n />\n \n \n \n \n }\n )\n }\n}\n\nUserSettingGeneral.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UserSettingGeneral)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nconst styles = (theme) => ({\n root: {\n padding: theme.spacing(0.5) + 'px',\n lineHeight: 1.5,\n fontSize: theme.spacing(1.5) + 'px',\n fontWeight: 'normal',\n display: 'inline',\n borderRadius: theme.spacing(0.5)\n },\n iconPadding: {\n paddingLeft: theme.spacing(1) + 'px'\n },\n icon: {\n width: 0,\n left: '-14px',\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'middle'\n }\n})\n\nclass InlineMarker extends React.Component {\n render () {\n const { classes, theme, icon, text, color, background } = this.props\n const extraColor = {\n containedInfo: {\n main: theme.palette.primary.contrastText,\n lighter: theme.palette.secondary.main\n }\n }\n\n const bg = background === undefined ? true : background\n const palette = color\n ? (theme.palette[color] ? theme.palette : extraColor)[color]\n : theme.palette.primary\n return icon\n ? \n
\n {text}\n
\n : \n {text}\n \n }\n}\n\nInlineMarker.propTypes = {\n classes: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n icon: PropTypes.object,\n text: PropTypes.string.isRequired,\n color: PropTypes.string,\n background: PropTypes.bool\n}\n\nexport default withTheme(\n withStyles(styles)(InlineMarker)\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Switch from '@material-ui/core/Switch'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { plAngleDown } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nconst IOSSwitch = withStyles((theme) => ({\n root: {\n padding: 0,\n width: theme.spacing(6),\n height: theme.spacing(3),\n margin: theme.spacing(1),\n marginRight: theme.spacing(4.5)\n },\n disabled: {\n '& + $track': {\n cursor: 'not-allowed !important'\n }\n },\n switchBase: {\n padding: 1,\n '&$checked': {\n transform: 'translateX(24px)',\n color: theme.palette.primary.contrastText,\n '& + $track': {\n opacity: 1,\n border: 'none'\n }\n },\n '&$focusVisible $thumb': {\n color: theme.palette.primary.light,\n border: '6px solid ' + theme.palette.border\n }\n },\n thumb: {\n width: '22px',\n height: '22px'\n },\n track: {\n opacity: 1,\n borderRadius: '12px',\n boxSizing: 'border-box',\n backgroundColor: theme.palette.text.lighter,\n transition: theme.transitions.create(['background-color', 'border'])\n },\n checked: {},\n focusVisible: {}\n}))(({ classes, ...props }) => {\n return (\n \n )\n})\n\nconst styles = (theme) => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n content: {\n paddingBottom: theme.spacing(4),\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border\n },\n subtitle: {\n marginBottom: '14px'\n },\n desc: {\n fontSize: '14px'\n },\n title: {\n marginBottom: theme.spacing(3),\n '&:last-child': {\n marginBottom: 0\n },\n '& table tr th:nth-of-type(2), & table tr td:nth-of-type(2)': {\n textAlign: 'right'\n }\n },\n tableFold: {\n '& table th': {\n border: '0px'\n },\n '& table tbody': {\n display: 'none'\n }\n },\n switch: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n paddingRight: theme.spacing(12.5)\n },\n icon: {\n '& svg': {\n height: '12px !important',\n color: theme.palette.text.light,\n transform: 'rotate(180deg)',\n transition: 'transform .3s'\n }\n },\n span: {\n marginLeft: theme.spacing(2)\n },\n fold: {\n '& svg': {\n transform: 'rotate(0deg)'\n }\n },\n otherRepository: {\n '& table thead': {\n display: 'none'\n },\n '& table tr td:last-child': {\n width: '50px'\n }\n }\n})\n\nclass UserSettingNotification extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n refusedList: null,\n openSet: {},\n groupFold: {},\n otherRepository: false\n }\n }\n\n componentDidMount () {\n this.getData()\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(this.props.currentUserInfo) !== JSON.stringify(nextProps.currentUserInfo) ||\n JSON.stringify(this.props.groupList) !== JSON.stringify(nextProps.groupList) ||\n JSON.stringify(this.props.repositoryList) !== JSON.stringify(nextProps.repositoryList) ||\n JSON.stringify(this.state.refusedList) !== JSON.stringify(nextState.refusedList)) {\n this.changeOpenSet(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n changeOpenSet (props, state) {\n const { currentUserInfo, groupList, repositoryList } = props\n const { refusedList, openSet } = state\n let otherRepository = false\n if (currentUserInfo.id) {\n openSet[Constants.notificationStatus.mr] = this.isUserNotificationOpen(Constants.notificationStatus.mr, currentUserInfo.notification)\n openSet[Constants.notificationStatus.email] = this.isUserNotificationOpen(Constants.notificationStatus.email, currentUserInfo.notification)\n }\n\n if (refusedList) {\n repositoryList.length && repositoryList.map((item, index) => {\n openSet[item.id] = this.isTargetOpen(state, item.id)\n\n // not in group, just in repository\n if (groupList.length && groupList.filter(FilterGenerator.id(item.group.id)).length === 0) {\n otherRepository = true\n }\n return true\n })\n groupList.length && groupList.map((item, index) => {\n openSet[item.id] = this.isTargetOpen(state, item.id)\n\n // if all repo refuse, group display refuse\n if (openSet[item.id] && repositoryList.length) {\n const repo = repositoryList.filter(FilterGenerator.group(item.id))\n if (repo.length) {\n const refusedRepo = repo.filter((repoItem, index) => {\n return !openSet[repoItem.id] || repoItem.role < UAC.Role.DEVELOPER\n })\n openSet[item.id] = !(repo.length === refusedRepo.length)\n }\n }\n return true\n })\n }\n\n this.setState({\n openSet: openSet,\n otherRepository: otherRepository\n })\n }\n\n isUserNotificationOpen (offset, status) {\n return !(status >> (offset - 1) & 1)\n }\n\n isTargetOpen (state, target) {\n return !(state.refusedList.filter(FilterGenerator.target(target)).length)\n }\n\n getData () {\n this.setState({ pending: true })\n UserData.notificationRefused({})\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({\n pending: false,\n refusedList: data.code ? [] : data.data\n })\n })\n }\n\n reloadUserInfo () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n }\n\n updated (open, data, isUser) {\n const { dispatchEvent, intl } = this.props\n this.setState({ pending: false })\n if (!data.code) {\n isUser ? this.reloadUserInfo() : this.getData()\n } else {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n }\n }\n\n userNotificationSetting (offset) {\n const { pending, openSet } = this.state\n if (pending || !offset) {\n return false\n }\n\n const open = openSet[offset] = !openSet[offset]\n this.setState({\n pending: true,\n openSet: openSet\n })\n UserData.userNotificationSetting({\n offset: offset\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.updated(open, data, true)\n })\n }\n\n setGroupOrRepoNotification (target, type) {\n const { pending, openSet } = this.state\n if (pending || !type || !target) {\n return false\n }\n\n const open = openSet[target] = !openSet[target]\n this.setState({\n pending: true,\n openSet: openSet\n })\n UserData.setGroupOrRepoNotification({\n type: type,\n target: target,\n open: open ? 1 : 0\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.updated(open, data, false)\n })\n }\n\n tableFold (group) {\n const { groupFold } = this.state\n groupFold[group] = !groupFold[group]\n this.setState({ groupFold: groupFold })\n }\n\n getTableRow (item, className) {\n const { classes, intl } = this.props\n const { openSet, groupFold } = this.state\n const isRepository = !!item.group\n const disabled = item.role < UAC.Role.DEVELOPER\n return [\n \n {isRepository && {item.group.displayName + '/'}}{item.displayName}   \n \n ,\n this.setGroupOrRepoNotification(\n item.id,\n isRepository ? Constants.notificationRefuseType.repository : Constants.notificationRefuseType.group\n )\n }\n />,\n !isRepository\n ? this.tableFold(item.id)}\n className={[classes.icon, groupFold[item.id] ? classes.fold : ''].join(' ')} />\n : ''\n ]\n }\n\n getRepositoryTable () {\n const { repositoryList, groupList } = this.props\n const repositoryTableData = [\n ['auto', 'auto', '50px'],\n ['label.repository', 'label.notificationReceiveStatus', '']\n ]\n\n repositoryList.map((item, index) => {\n groupList.filter(FilterGenerator.id(item.group.id)).length === 0 && repositoryTableData.push(this.getTableRow(item, ''))\n return true\n })\n\n return repositoryTableData\n }\n\n render () {\n const { currentUserInfo, groupList, repositoryList, classes, intl } = this.props\n const { refusedList, openSet, groupFold, otherRepository } = this.state\n\n return (\n \n {intl.formatMessage({ id: 'label.notification' })}\n \n {refusedList\n ? \n {currentUserInfo.id && \n \n \n {intl.formatMessage({ id: 'message.mergeRequestNotification' })}\n {intl.formatMessage({ id: 'message.mergeRequestNotificationDesc' })}\n \n \n this.userNotificationSetting(Constants.notificationStatus.mr)}\n />\n \n \n \n \n {intl.formatMessage({ id: 'message.emailNotification' })}\n {intl.formatMessage({ id: 'message.emailNotificationDesc' })}\n \n \n this.userNotificationSetting(Constants.notificationStatus.email)}\n />\n \n \n \n }\n \n {intl.formatMessage({ id: 'label.repository' })}\n \n {groupList.length > 0 && repositoryList.length > 0 && groupList.map((item, index) => {\n const final = [\n ['auto', 'auto', '50px'],\n this.getTableRow(item, '')\n ]\n repositoryList.filter(FilterGenerator.group(item.id)).map((repo, repoIndex) => {\n final.push(this.getTableRow(repo, classes.span))\n return true\n })\n return \n })\n }\n {otherRepository && }\n \n : \n \n \n }\n )\n }\n}\n\nUserSettingNotification.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n repositoryList: state.DataStore.repositoryList,\n groupList: state.DataStore.groupList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UserSettingNotification)\n )\n )\n)\n","import APIRequest from 'APPSRC/data_providers/main'\n\nfunction userList (data) {\n return APIRequest.POST('/api/admin/userList', data)\n}\n\nfunction updateUserStatus (data) {\n return APIRequest.POST('/api/admin/updateUserStatus', data)\n}\n\nfunction closeUserMFA (data) {\n return APIRequest.POST('/api/admin/closeUserMFA', data)\n}\n\nfunction resetPassword (data) {\n return APIRequest.POST('/api/admin/resetPassword', data)\n}\n\nfunction checkPassword (data) {\n return APIRequest.POST('/api/admin/checkPassword', data)\n}\n\nfunction setAdministrator (data) {\n return APIRequest.POST('/api/admin/setAdministrator', data)\n}\n\nfunction addUser (data) {\n return APIRequest.POST('/api/admin/addUser', data)\n}\n\nfunction groupList (data) {\n return APIRequest.POST('/api/admin/groupList', data)\n}\n\nfunction groupMembers (data) {\n return APIRequest.POST('/api/admin/groupMembers', data)\n}\n\nfunction groupAddMember (data) {\n return APIRequest.POST('/api/admin/groupAddMember', data)\n}\n\nfunction groupRemoveMember (data) {\n return APIRequest.POST('/api/admin/groupRemoveMember', data)\n}\n\nfunction setGroupOwner (data) {\n return APIRequest.POST('/api/admin/setGroupOwner', data)\n}\n\nfunction repositoryList (data) {\n return APIRequest.POST('/api/admin/repositoryList', data)\n}\n\nfunction repositoryMembers (data) {\n return APIRequest.POST('/api/admin/repositoryMembers', data)\n}\n\nfunction repositoryAddMember (data) {\n return APIRequest.POST('/api/admin/repositoryAddMember', data)\n}\n\nfunction repositoryRemoveMember (data) {\n return APIRequest.POST('/api/admin/repositoryRemoveMember', data)\n}\n\nfunction systemStatus () {\n return APIRequest.GET('/api/admin/systemStatus')\n}\n\nfunction getConfig () {\n return APIRequest.GET('/api/admin/config')\n}\n\nfunction setConfig (data) {\n return APIRequest.POST('/api/admin/config', data)\n}\n\nexport default {\n userList,\n updateUserStatus,\n closeUserMFA,\n resetPassword,\n checkPassword,\n setAdministrator,\n addUser,\n groupList,\n groupMembers,\n groupAddMember,\n groupRemoveMember,\n setGroupOwner,\n repositoryList,\n repositoryMembers,\n repositoryAddMember,\n repositoryRemoveMember,\n systemStatus,\n getConfig,\n setConfig\n}\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport { formatNumber, formatUnit } from 'APPSRC/helpers/VaribleHelper'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\n\n// style\nconst styles = theme => ({\n card: {\n minWidth: theme.spacing(22),\n height: theme.spacing(14)\n },\n content: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2)\n },\n title: {\n marginBottom: theme.spacing(2)\n },\n icon: {\n textAlign: 'right',\n marginTop: theme.spacing(1)\n },\n clickable: {\n cursor: 'pointer'\n }\n})\n\nclass NumbericDashboard extends Component {\n render () {\n const { classes, paletteName, theme, title, icon, label, unit, numbericValue, to, intl, history } = this.props\n let palette = (paletteName && theme.palette[paletteName]) ? theme.palette[paletteName] : {}\n let displayValue = numbericValue\n let displayUnit = unit\n\n if (paletteName === 'fromValue') {\n if (typeof numbericValue === 'number') {\n if (numbericValue >= 85) {\n // Excellent\n palette = theme.palette.error\n } else if (numbericValue >= 70) {\n // Good\n palette = theme.palette.warning\n } else {\n // Fair\n palette = theme.palette.success\n }\n } else {\n if (numbericValue === 'Running') {\n palette = theme.palette.success\n } else {\n palette = theme.palette.error\n }\n }\n }\n\n if (displayValue) {\n displayValue = ((numbericValue === parseFloat(numbericValue)) ? formatNumber(numbericValue) : numbericValue) || 'NaN'\n }\n\n if (displayUnit) {\n [displayValue, displayUnit] = formatUnit(displayValue, displayUnit)\n }\n\n return (\n { to && history.push(to) }}\n >\n \n \n \n \n { title || (label ? intl.formatMessage({ id: label }) : '-') }\n \n \n {(numbericValue || numbericValue === 0)\n ? \n {displayValue} { displayUnit || '' }\n \n : }\n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nNumbericDashboard.propTypes = {\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n paletteName: PropTypes.string,\n to: PropTypes.string,\n label: PropTypes.string,\n title: PropTypes.string,\n icon: PropTypes.object,\n unit: PropTypes.string,\n numbericValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(NumbericDashboard)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport AdminData from 'APPSRC/data_providers/AdminData'\n// import Constants from 'APPSRC/config/Constants'\nimport NumbericDashboard from 'APPSRC/components/unit/NumbericDashboard'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\n// icons\nimport {\n psRepository,\n psRepositoryGroup,\n psMembers,\n psFolder,\n psNewFeature,\n psMeter\n} from '@pgyer/icons'\n\nconst styles = (theme) => ({})\n\nclass Dashboard extends React.Component {\n constructor (props) {\n super(props)\n this.mountedFlag = false\n this.state = {\n pending: true,\n data: null\n }\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData()\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(this.state) !== JSON.stringify(this.nextState)) {\n return true\n }\n return false\n }\n\n getData () {\n this.setState({ pending: true })\n AdminData.systemStatus()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (data && !data.code && data.data) {\n this.setState({ pending: false, data: data.data })\n }\n })\n }\n\n render () {\n const { intl } = this.props\n const { pending } = this.state\n return (\n \n { intl.formatMessage({ id: 'label.statistic' }) } \n \n \n \n \n \n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.systemResources' }) } \n \n \n \n \n \n \n \n {!pending && this.state.data.vm.disk.length > 0 && \n { intl.formatMessage({ id: 'label.diskUsgae' }) } \n }\n {!pending && this.state.data.vm.disk.map(\n (item, key) => \n \n )\n }\n \n { intl.formatMessage({ id: 'label.serviceStatus' }) } \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nDashboard.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n // classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Dashboard)\n )\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport Tabs from '@material-ui/core/Tabs'\nimport Tab from '@material-ui/core/Tab'\nimport { injectIntl } from 'react-intl'\n\n// style\nconst styles = theme => ({\n background: {\n backgroundColor: theme.palette.background.light\n }\n})\n\nclass TabHeader extends React.Component {\n render () {\n const { tabs, onChange, currentTab, children, classes } = this.props\n\n return (\n \n \n { tabs.map((label, key) => ) }\n \n \n \n {children}\n \n )\n }\n}\n\nTabHeader.propTypes = {\n children: PropTypes.node,\n currentTab: PropTypes.number,\n tabs: PropTypes.array.isRequired,\n onChange: PropTypes.func,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TabHeader)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport Avatar from '@material-ui/core/Avatar'\nimport Dialog from '@material-ui/core/Dialog'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport Pagination from '@material-ui/lab/Pagination'\nimport Typography from '@material-ui/core/Typography'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { psSetting, plCopy } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport AdminData from 'APPSRC/data_providers/AdminData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { copyToClipboard } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = (theme) => ({\n search: {\n display: 'flex'\n },\n keyword: {\n flexGrow: 1\n },\n sortLabel: {\n lineHeight: theme.spacing(4) + 'px',\n padding: '0px ' + theme.spacing(2) + 'px'\n },\n name: {\n display: 'flex',\n textAlign: 'left',\n alignItems: 'center',\n margin: theme.spacing(1) + 'px 0px'\n },\n icon: {\n margin: theme.spacing(1)\n },\n tag: {\n '& > *': {\n marginRight: theme.spacing(1)\n }\n },\n page: {\n display: 'flex',\n justifyContent: 'flex-end'\n }\n})\n\nclass Users extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: true,\n count: 0,\n list: [],\n category: 0,\n keyword: '',\n sort: 'name',\n page: 1,\n pagesize: 20,\n\n settingAnchor: null,\n settingUser: null,\n\n password1: '',\n password2: '',\n resetPassword: false,\n error: {},\n\n settingAdmin: false,\n password: '',\n\n addUser: false,\n name: '',\n email: '',\n newPassword: ''\n }\n\n this.mountedFlag = false\n this.timeout = null\n\n this.checkPasswordInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'password1',\n passPattern: /^.{6,50}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 6, n2: 50 }\n )\n }\n ])\n\n this.checkEmailInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.{1,15}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 1, n2: 15 }\n )\n },\n {\n name: 'email',\n passPattern: /^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.checkEmailResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0406,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0405,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.AddFail' })\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData(this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.category !== nextState.category ||\n this.state.keyword !== nextState.keyword ||\n this.state.sort !== nextState.sort ||\n this.state.page !== nextState.page) {\n this.state.page === nextState.page && this.setState({ page: 1 })\n this.timeout && clearTimeout(this.timeout)\n this.timeout = setTimeout(() => this.getData(nextState), 200)\n }\n\n return true\n }\n\n getData (state) {\n const { category, keyword, sort, page, pagesize } = state\n\n this.setState({ pending: true })\n AdminData.userList({\n category: category,\n keyword: keyword,\n sort: sort,\n page: page,\n pagesize: pagesize\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n !data.code && this.setState({\n count: data.data.count,\n list: data.data.list\n })\n })\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { list } = this.state\n const final = []\n\n list.map(item => {\n final.push([\n \n \n \n {item.name}\n {item.email}\n \n ,\n {item.projects},\n {item.created},\n \n {item.mfaEnabled && }\n {item.admin && }\n {!item.status && }\n ,\n this.setState({ settingAnchor: e.target, settingUser: item })} icon={psSetting} />\n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto', 'auto', 'auto'],\n ['label.name', 'label.repository', 'label.requestCreated', '', ''],\n ...final\n ]\n }\n\n updateUserStatusConfirm () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n this.setState({ settingAnchor: null })\n\n if (!settingUser) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('setting_user_status', {\n title: intl.formatMessage({ id: settingUser.status ? 'message.userStatusDisabled' : 'message.userStatusEnabled' }),\n description: intl.formatMessage(\n { id: settingUser.status ? 'message.userStatusDisabled_N' : 'message.userStatusEnabled_N' },\n { n: settingUser.name }\n ),\n reject: () => { return true },\n accept: () => this.updateUserStatus()\n }))\n }\n\n updateUserStatus () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n AdminData.updateUserStatus({\n user: settingUser.id,\n status: settingUser.status ? Constants.commonStatus.delete : Constants.commonStatus.normal\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: settingUser.status ? 'message.disabled' : 'message.enabled' }), 0))\n this.getData(this.state)\n }\n })\n }\n\n closeUserMFAConfirm () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n this.setState({ settingAnchor: null })\n\n if (!settingUser) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('disable_user_mfa', {\n title: intl.formatMessage({ id: 'message.closeMFA' }),\n description: intl.formatMessage({ id: 'message.closeMFA_N' }, { n: settingUser.name }),\n reject: () => { return true },\n accept: () => this.closeUserMFA()\n }))\n }\n\n closeUserMFA () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n AdminData.closeUserMFA({ user: settingUser.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.closed' }), 0))\n this.getData(this.state)\n }\n })\n }\n\n resetPassword () {\n const { intl } = this.props\n const { settingUser, password1, password2 } = this.state\n if (!this.checkPasswordInput()) {\n return false\n }\n\n if (password2 !== password1) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.inputNotSame' }), 2))\n return false\n }\n\n AdminData.resetPassword({\n user: settingUser.id,\n password: password1\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ resetPassword: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.reseted' }), 0))\n }\n })\n }\n\n checkPassword () {\n const { intl } = this.props\n const { password } = this.state\n\n AdminData.checkPassword({ password: password })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.setAdministrator()\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error._S_invalid' }, { s: intl.formatMessage({ id: 'label.password' }) }), 2))\n }\n })\n }\n\n setAdministrator () {\n const { intl } = this.props\n const { settingUser } = this.state\n\n this.setState({ settingAdmin: false })\n\n AdminData.setAdministrator({\n user: settingUser.id,\n admin: settingUser.admin ? 0 : 1\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n this.getData(this.state)\n }\n })\n }\n\n addUser () {\n const { name, email } = this.state\n if (!this.checkEmailInput()) {\n return false\n }\n\n AdminData.addUser({\n name: name,\n email: email\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.setState({ addUser: false, newPassword: data.data.password })\n this.getData(this.state)\n } else if (!this.checkEmailResponse(data.code)) {\n return false\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n const {\n pending, count, category, keyword, sort, page, pagesize,\n settingAnchor, settingUser,\n resetPassword, password1, password2, error,\n settingAdmin, password,\n addUser, name, email, newPassword\n } = this.state\n\n return \n \n !pending && this.setState({ category: value })}\n tabs={[\n intl.formatMessage({ id: 'label.all' }),\n intl.formatMessage({ id: 'label.enabledMFA' }),\n intl.formatMessage({ id: 'label.disabledMFA' }),\n intl.formatMessage({ id: 'label.blocked' })\n ]}\n />\n \n \n \n \n \n \n this.setState({ keyword: e.target.value })}\n />\n {intl.formatMessage({ id: 'label.sort' })}\n this.setState({ sort: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.name' })}\n {intl.formatMessage({ id: 'label.email' })}\n {intl.formatMessage({ id: 'label.createTime' })}\n \n \n \n {\n pending\n ? \n : count\n ? <>\n \n \n this.setState({ page: p })} shape='rounded' color='primary' />\n \n \n : {intl.formatMessage({ id: 'label.noMore' })}\n }\n\n {\n settingUser && <>\n this.setState({ settingAnchor: null })}\n >\n this.updateUserStatusConfirm()}>\n \n \n {\n settingUser.status && this.setState({ resetPassword: true, settingAnchor: null })}>\n \n \n }\n {\n settingUser.status && settingUser.mfaEnabled && this.closeUserMFAConfirm()}>\n \n \n }\n {\n settingUser.status && this.setState({ settingAdmin: true, settingAnchor: null, password: '' })}>\n \n \n }\n \n\n this.setState({ resetPassword: false })}\n >\n \n {intl.formatMessage({ id: 'message.reset_N_Password' }, { n: settingUser.name })}\n \n \n \n \n this.setState({ password1: e.target.value })}\n />\n \n \n this.setState({ password2: e.target.value })}\n />\n \n \n  \n \n \n \n \n \n\n this.setState({ settingAdmin: false })}\n >\n \n {intl.formatMessage({ id: settingUser.admin ? 'message.cancelAdministrator' : 'message.setAdministrator' })}\n \n \n \n \n this.setState({ password: e.target.value })}\n />\n \n \n  \n \n \n \n \n \n \n }\n this.setState({ addUser: false })}\n >\n \n {intl.formatMessage({ id: 'label.addUser' })}\n \n \n \n \n this.setState({ name: e.target.value })}\n />\n \n \n this.setState({ email: e.target.value })}\n />\n \n \n  \n \n \n \n \n \n this.setState({ newPassword: '' })}\n >\n \n {intl.formatMessage({ id: 'message.successAddUser' })}\n \n \n \n \n {intl.formatMessage({ id: 'label.name' })}: {name} \n \n \n {intl.formatMessage({ id: 'label.email' })}: {email} \n \n \n \n {intl.formatMessage({ id: 'label.newPassword' })}: {newPassword} \n copyToClipboard(newPassword, () => this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.copied' }), 0)), e.target.parentElement)} icon={plCopy} />\n \n \n \n \n \n \n \n \n \n }\n}\n\nUsers.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(Users)\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Typography from '@material-ui/core/Typography'\n\n// utils\nimport { format, formatRelative } from 'date-fns'\nimport localeCN from 'date-fns/locale/zh-CN'\nimport localeEN from 'date-fns/locale/en-US'\n\nclass FormattedTime extends Component {\n render () {\n let { currentLanguage, timestamp, absolute, relative } = this.props\n const localObject = currentLanguage === 'zh-cn' ? localeCN : localeEN\n\n // 31536000000 = Date('1971/01/01')\n timestamp *= timestamp < 31536E6 ? 1E3 : 1\n const current = (new Date()).getTime()\n\n if (!absolute && !relative) {\n if (Math.abs(timestamp - current) < 6048E5) {\n // diff less than 7 days\n relative = true\n } else {\n absolute = true\n }\n }\n\n return (\n { absolute && timestamp > 0 && format(timestamp, 'yyyy-MM-dd HH:mm:ss', { locale: localObject }) }\n { relative && !absolute && timestamp > 0 && formatRelative(timestamp, current, { locale: localObject }) }\n )\n }\n}\n\nFormattedTime.propTypes = {\n timestamp: PropTypes.number.isRequired,\n currentLanguage: PropTypes.string.isRequired,\n absolute: PropTypes.bool,\n relative: PropTypes.bool\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FormattedTime)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport Avatar from '@material-ui/core/Avatar'\nimport Dialog from '@material-ui/core/Dialog'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport Pagination from '@material-ui/lab/Pagination'\nimport Typography from '@material-ui/core/Typography'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { psMemberAlt, psSetting, plTrash } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport AdminData from 'APPSRC/data_providers/AdminData'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n search: {\n display: 'flex'\n },\n keyword: {\n flexGrow: 1\n },\n sortLabel: {\n lineHeight: theme.spacing(4) + 'px',\n padding: '0px ' + theme.spacing(2) + 'px'\n },\n name: {\n display: 'flex',\n textAlign: 'left',\n alignItems: 'center',\n margin: theme.spacing(1) + 'px 0px'\n },\n icon: {\n margin: theme.spacing(1)\n },\n page: {\n display: 'flex',\n justifyContent: 'flex-end'\n },\n tag: {\n '& > *': {\n marginLeft: theme.spacing(1)\n }\n }\n})\n\nclass Groups extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: true,\n count: 0,\n list: [],\n keyword: '',\n sort: 'name',\n page: 1,\n pagesize: 20,\n\n settingAnchor: null,\n settingGroup: null,\n\n members: [],\n memberManage: false,\n email: '',\n error: {}\n }\n\n this.mountedFlag = false\n this.timeout = null\n\n this.checkAddResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0407,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0408,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.canNotAddCreatorAsMember' }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData(this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.keyword !== nextState.keyword ||\n this.state.sort !== nextState.sort ||\n this.state.page !== nextState.page) {\n this.state.page === nextState.page && this.setState({ page: 1 })\n this.timeout && clearTimeout(this.timeout)\n this.timeout = setTimeout(() => this.getData(nextState), 200)\n }\n\n return true\n }\n\n getData (state) {\n const { keyword, sort, page, pagesize } = state\n\n this.setState({ pending: true })\n AdminData.groupList({\n keyword: keyword,\n sort: sort,\n page: page,\n pagesize: pagesize\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n !data.code && this.setState({\n count: data.data.count,\n list: data.data.list\n })\n })\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { list } = this.state\n const final = []\n\n list.map(item => {\n final.push([\n \n {\n item.icon\n ? \n : {item.name[0].substr(0, 1).toUpperCase()}\n }\n {item.displayName}\n ,\n ,\n item.status === Constants.commonStatus.normal\n ? this.setState({ settingAnchor: e.target, settingGroup: item })} icon={psSetting} />\n : \n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto'],\n ['label.group', 'label.requestCreated', ''],\n ...final\n ]\n }\n\n openMemberManage () {\n const { settingGroup } = this.state\n\n this.setState({ memberManage: true, settingAnchor: null })\n\n if (!settingGroup) {\n return false\n }\n\n AdminData.groupMembers({ group: settingGroup.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => this.setState({ members: data.data }))\n }\n\n getMembersTable () {\n const { classes, intl } = this.props\n const { members } = this.state\n const final = []\n const roles = {\n [UAC.Role.GUEST]: 'label.guest',\n [UAC.Role.REPORTER]: 'label.reporter',\n [UAC.Role.DEVELOPER]: 'label.developer',\n [UAC.Role.MAINTAINER]: 'label.maintianer',\n [UAC.Role.OWNER]: 'label.owner'\n }\n\n members.map(item => {\n final.push([\n \n \n \n {item.name}\n {item.email}\n \n ,\n ,\n item.creatorFlag && ,\n ,\n \n {\n item.deleteFlag || item.status === Constants.commonStatus.delete\n ? \n : !item.creatorFlag && item.role < UAC.Role.OWNER && <>\n this.setRoleConfirm(item)} icon={psMemberAlt} />\n this.removeMemberConfirm(item)} icon={plTrash} />\n \n }\n \n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto', 'auto', 'auto'],\n ['label.name', 'label.role', '', 'label.joinedAt', ''],\n ...final\n ]\n }\n\n addMember () {\n const { intl } = this.props\n const { settingGroup, email } = this.state\n\n if (!settingGroup || !email) {\n return false\n }\n\n AdminData.groupAddMember({\n email: email,\n group: settingGroup.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.Added' }), 0))\n this.openMemberManage()\n } else if (!this.checkAddResponse(data.code)) {\n return false\n }\n })\n }\n\n removeMemberConfirm (member) {\n const { intl } = this.props\n\n if (!member) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('remove_group_member', {\n title: intl.formatMessage({ id: 'message.memberRemoveConfirm' }),\n description: intl.formatMessage({ id: 'message.confirmDelete' }, { s: ' \\'' + member.name + '\\'' }),\n reject: () => { return true },\n accept: () => this.removeMember(member)\n }))\n }\n\n removeMember (member) {\n const { intl, dispatchEvent } = this.props\n const { settingGroup } = this.state\n\n AdminData.groupRemoveMember({\n group: settingGroup.id,\n user: member.id\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.removed' }), 0))\n this.openMemberManage()\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.removeFail' }), 2))\n }\n })\n }\n\n setRoleConfirm (member) {\n const { intl } = this.props\n\n if (!member) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('set_group_member_role', {\n title: intl.formatMessage({ id: 'message.setGroupOwner_S' }, { s: ' \\'' + member.name + '\\'' }),\n description: '',\n reject: () => { return true },\n accept: () => this.setGroupOwner(member)\n }))\n }\n\n setGroupOwner (member) {\n const { intl, dispatchEvent } = this.props\n const { settingGroup } = this.state\n\n AdminData.setGroupOwner({\n group: settingGroup.id,\n user: member.id\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n this.openMemberManage()\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n const { pending, count, keyword, sort, page, pagesize, settingAnchor, memberManage, email, error } = this.state\n\n return \n \n \n this.setState({ keyword: e.target.value })}\n />\n {intl.formatMessage({ id: 'label.sort' })}\n this.setState({ sort: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.name' })}\n {intl.formatMessage({ id: 'label.createTime' })}\n \n \n \n {\n pending\n ? \n : count\n ? <>\n \n \n this.setState({ page: p })} shape='rounded' color='primary' />\n \n \n : {intl.formatMessage({ id: 'label.noMore' })}\n }\n this.setState({ settingAnchor: null })}\n >\n this.openMemberManage()}>\n \n \n \n this.setState({ memberManage: false })}\n >\n \n {intl.formatMessage({ id: 'label.memberManage' })}\n \n \n \n \n this.setState({ email: e.target.value })}\n /> \n \n \n \n \n \n \n \n \n \n \n }\n}\n\nGroups.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(Groups)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport Avatar from '@material-ui/core/Avatar'\nimport Dialog from '@material-ui/core/Dialog'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport Pagination from '@material-ui/lab/Pagination'\nimport Typography from '@material-ui/core/Typography'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { psSetting, plTrash } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport AdminData from 'APPSRC/data_providers/AdminData'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n search: {\n display: 'flex'\n },\n keyword: {\n flexGrow: 1\n },\n sortLabel: {\n lineHeight: theme.spacing(4) + 'px',\n padding: '0px ' + theme.spacing(2) + 'px'\n },\n name: {\n display: 'flex',\n textAlign: 'left',\n alignItems: 'center',\n margin: theme.spacing(1) + 'px 0px'\n },\n icon: {\n margin: theme.spacing(1)\n },\n page: {\n display: 'flex',\n justifyContent: 'flex-end'\n },\n tag: {\n '& > *': {\n marginLeft: theme.spacing(1)\n }\n }\n})\n\nclass Users extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: true,\n count: 0,\n list: [],\n keyword: '',\n sort: 'name',\n page: 1,\n pagesize: 20,\n\n settingAnchor: null,\n settingRepository: null,\n\n members: [],\n memberManage: false,\n email: '',\n error: {}\n }\n\n this.mountedFlag = false\n this.timeout = null\n\n this.checkAddResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0407,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0408,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.canNotAddCreatorAsMember' }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData(this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.keyword !== nextState.keyword ||\n this.state.sort !== nextState.sort ||\n this.state.page !== nextState.page) {\n this.state.page === nextState.page && this.setState({ page: 1 })\n this.timeout && clearTimeout(this.timeout)\n this.timeout = setTimeout(() => this.getData(nextState), 200)\n }\n\n return true\n }\n\n getData (state) {\n const { keyword, sort, page, pagesize } = state\n\n this.setState({ pending: true })\n AdminData.repositoryList({\n keyword: keyword,\n sort: sort,\n page: page,\n pagesize: pagesize\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n !data.code && this.setState({\n count: data.data.count,\n list: data.data.list\n })\n })\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { list } = this.state\n const final = []\n\n list.map(item => {\n final.push([\n \n {\n item.icon\n ? \n : {item.name[0].substr(0, 1).toUpperCase()}\n }\n {item.group.displayName} / {item.displayName}\n ,\n ,\n item.status === Constants.commonStatus.normal\n ? this.setState({ settingAnchor: e.target, settingRepository: item })} icon={psSetting} />\n : \n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto'],\n ['label.repository', 'label.requestCreated', ''],\n ...final\n ]\n }\n\n openMemberManage () {\n const { settingRepository } = this.state\n\n this.setState({ memberManage: true, settingAnchor: null })\n\n if (!settingRepository) {\n return false\n }\n\n AdminData.repositoryMembers({ repository: settingRepository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => this.setState({ members: data.data }))\n }\n\n getMembersTable () {\n const { classes, intl } = this.props\n const { members } = this.state\n const final = []\n const roles = {\n [UAC.Role.GUEST]: 'label.guest',\n [UAC.Role.REPORTER]: 'label.reporter',\n [UAC.Role.DEVELOPER]: 'label.developer',\n [UAC.Role.MAINTAINER]: 'label.maintianer',\n [UAC.Role.OWNER]: 'label.owner'\n }\n\n members.map(item => {\n final.push([\n \n \n \n {item.name}\n {item.email}\n \n ,\n ,\n \n {item.creatorFlag && }\n {item.groupMember && }\n ,\n ,\n \n {(item.deleteFlag || item.status === Constants.commonStatus.delete) && }\n {!item.creatorFlag && !item.groupMember && item.role < UAC.Role.OWNER && this.removeMemberConfirm(item)} icon={plTrash} />}\n \n ])\n\n return true\n })\n\n return [\n ['auto', 'auto', 'auto', 'auto', 'auto'],\n ['label.name', 'label.role', '', 'label.joinedAt', ''],\n ...final\n ]\n }\n\n addMember () {\n const { intl } = this.props\n const { settingRepository, email } = this.state\n\n if (!settingRepository || !email) {\n return false\n }\n\n AdminData.repositoryAddMember({\n email: email,\n repository: settingRepository.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.Added' }), 0))\n this.openMemberManage()\n } else if (!this.checkAddResponse(data.code)) {\n return false\n }\n })\n }\n\n removeMemberConfirm (member) {\n const { intl } = this.props\n\n if (!member) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('remove_repository_member', {\n title: intl.formatMessage({ id: 'message.memberRemoveConfirm' }),\n description: intl.formatMessage({ id: 'message.confirmDelete' }, { s: ' \\'' + member.name + '\\'' }),\n reject: () => { return true },\n accept: () => this.removeMember(member)\n }))\n }\n\n removeMember (member) {\n const { intl, dispatchEvent } = this.props\n const { settingRepository } = this.state\n\n AdminData.repositoryRemoveMember({\n repository: settingRepository.id,\n user: member.id\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.removed' }), 0))\n this.openMemberManage()\n } else if (data.code > 0x0400) {\n dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.removeFail' }), 2))\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n const { pending, count, keyword, sort, page, pagesize, settingAnchor, memberManage, email, error } = this.state\n\n return \n \n \n this.setState({ keyword: e.target.value })}\n />\n {intl.formatMessage({ id: 'label.sort' })}\n this.setState({ sort: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.name' })}\n {intl.formatMessage({ id: 'label.createTime' })}\n \n \n \n {\n pending\n ? \n : count\n ? <>\n \n \n this.setState({ page: p })} shape='rounded' color='primary' />\n \n \n : {intl.formatMessage({ id: 'label.noMore' })}\n }\n this.setState({ settingAnchor: null })}\n >\n this.openMemberManage()}>\n \n \n \n this.setState({ memberManage: false })}\n >\n \n {intl.formatMessage({ id: 'label.memberManage' })}\n \n \n \n \n this.setState({ email: e.target.value })}\n /> \n \n \n \n \n \n \n \n \n \n \n }\n}\n\nUsers.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(Users)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport TextField from '@material-ui/core/TextField'\nimport Switch from '@material-ui/core/Switch'\nimport Button from '@material-ui/core/Button'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport AdminData from 'APPSRC/data_providers/AdminData'\n// import Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n }\n})\n\nclass Settings extends React.Component {\n constructor (props) {\n super(props)\n this.mountedFlag = false\n this.state = {\n allowRegister: false,\n host: '',\n ssh: '',\n email_from: '',\n email_name: '',\n pending: true,\n error: {}\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'host',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.url' }) }\n )\n },\n {\n name: 'host',\n passPattern: /^http(s)?:\\/\\/[^/]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.urlPrefix' }) }\n )\n },\n {\n name: 'ssh',\n passPattern: /^[^@]+@.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.sshPrefix' }) }\n )\n },\n {\n name: 'email_name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.name' }) }\n )\n },\n {\n name: 'email_from',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email_from',\n passPattern: /^[^@]+@[^@]+\\.[^@]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData()\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n getData () {\n this.setState({ pending: true })\n AdminData.getConfig()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n pending: false,\n host: data.data.host,\n ssh: data.data.ssh,\n allowRegister: data.data.allowRegister,\n email_from: data.data.email.from,\n email_name: data.data.email.name\n })\n }\n })\n }\n\n updateConfig () {\n if (!this.checkInput()) {\n return false\n }\n\n const data = {\n host: this.state.host,\n ssh: this.state.ssh,\n allowRegister: this.state.allowRegister,\n email: { name: this.state.email_name, from: this.state.email_from }\n }\n\n const payload = {\n data: JSON.stringify(data)\n }\n\n this.setState({ pending: true })\n AdminData.setConfig(payload)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(this.props.intl.formatMessage({ id: 'message.updated' }), 0))\n this.getData()\n this.reloadUserData()\n }\n })\n }\n\n reloadUserData () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n }\n\n render () {\n const { classes, intl } = this.props\n\n return (\n \n { intl.formatMessage({ id: 'label.setting' }) }\n \n \n \n \n \n {intl.formatMessage({ id: 'label.host' })} \n \n \n \n \n {intl.formatMessage({ id: 'label.urlPrefix' })} \n \n \n this.setState({ host: e.target.value })}\n />\n \n \n {intl.formatMessage({ id: 'label.sshPrefix' })} \n \n \n this.setState({ ssh: e.target.value })}\n />\n \n \n \n  \n \n SMTP \n \n \n \n \n {intl.formatMessage({ id: 'label.senderName' })} \n \n \n this.setState({ email_name: e.target.value })}\n />\n \n \n {intl.formatMessage({ id: 'label.senderAddress' })} \n \n \n this.setState({ email_from: e.target.value })}\n />\n \n \n \n  \n \n {intl.formatMessage({ id: 'label.register' })} \n \n \n \n \n {intl.formatMessage({ id: 'label.allowRegister' })} \n \n \n { this.setState({ allowRegister: !this.state.allowRegister }) }}\n inputProps={{ 'aria-label': 'secondary checkbox' }}\n />\n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nSettings.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Settings)\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport Hidden from '@material-ui/core/Hidden'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plFork, plMember, plMerge, plSetting } from '@pgyer/icons'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// style\nconst styles = theme => ({\n container: {\n height: theme.spacing(9),\n padding: theme.spacing(2) + 'px ' + theme.spacing(3) + 'px',\n border: '1px solid ' + theme.palette.border,\n marginBottom: '-1px',\n borderLeft: 'none',\n borderRight: 'none',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.background.dark\n }\n },\n item: {\n height: theme.spacing(5)\n },\n icon: {\n width: theme.spacing(5),\n height: theme.spacing(5)\n },\n baseInfo: {\n display: 'flex',\n flexFlow: 'column wrap',\n justifyContent: 'center'\n },\n avatar: {\n width: theme.spacing(4),\n height: theme.spacing(4),\n marginRight: '-' + theme.spacing(1) + 'px',\n border: '1px solid ' + theme.palette.border\n },\n counts: {\n '& > div': {\n width: theme.spacing(6)\n }\n }\n})\n\nclass RepositoryCard extends Component {\n render () {\n const { classes, history, repositoryInfo, intl } = this.props\n\n return { history.push(makeLink(repositoryInfo.group.name, repositoryInfo.name)) }}\n >\n \n \n \n { repositoryInfo.icon\n ? \n : {repositoryInfo.name.substr(0, 1).toUpperCase()}\n }\n \n \n \n { repositoryInfo.group.displayName + '/' }\n \n { repositoryInfo.displayName }\n     \n \n \n \n {repositoryInfo.description && \n { repositoryInfo.description }\n }\n \n \n \n \n \n \n   \n {repositoryInfo.forkCount}\n \n \n \n \n   \n {repositoryInfo.mergeRequestCount.open}\n \n \n \n \n   \n {repositoryInfo.members.length}\n \n \n \n \n \n \n {intl.formatMessage({ id: 'label.updatedIn' })}: \n \n \n \n \n {\n ev.stopPropagation()\n history.push(makeLink(repositoryInfo.group.name, repositoryInfo.name, 'settings'))\n }}\n />\n \n
\n }\n}\n\nRepositoryCard.propTypes = {\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n repositoryInfo: PropTypes.object\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupConfig: state.DataStore.currentGroupConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositoryCard)\n )\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Grid from '@material-ui/core/Grid'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n container: {\n marginTop: '10vh'\n },\n alignBlock: {\n textAlign: 'center',\n margin: '0 auto',\n display: 'block'\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n img: {\n width: theme.spacing(20)\n },\n text: {\n maxWidth: theme.spacing(60)\n },\n lighter: {\n color: theme.palette.text.lighter\n }\n})\n\nclass EmptyListNotice extends Component {\n render () {\n const { classes, imageName, title, notice, children, pending } = this.props\n return \n {pending && \n \n }\n {!pending && \n \n \n \n \n \n {title}\n \n
\n \n {notice}\n \n
\n \n
\n {children}\n
\n
\n
}\n
\n }\n}\n\nEmptyListNotice.propTypes = {\n classes: PropTypes.object.isRequired,\n imageName: PropTypes.string,\n pending: PropTypes.bool,\n title: PropTypes.string,\n notice: PropTypes.string,\n children: PropTypes.node\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(EmptyListNotice)\n )\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Avatar from '@material-ui/core/Avatar'\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n plRepository,\n plMerge,\n plMember\n} from '@pgyer/icons'\n\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n content: {\n height: theme.spacing(15.5),\n boxSizing: 'border-box',\n borderBottom: '1px solid ' + theme.palette.border,\n borderRadius: 0\n },\n icon: {\n height: theme.spacing(5),\n width: theme.spacing(5)\n },\n text: {\n height: theme.spacing(3),\n lineHeight: theme.spacing(3) + 'px',\n overflow: 'hidden'\n },\n subtext: {\n paddingTop: theme.spacing(0.5),\n height: theme.spacing(1.5),\n lineHeight: theme.spacing(1.5) + 'px'\n },\n iconBar: {\n height: theme.spacing(3),\n lineHeight: theme.spacing(3) + 'px'\n },\n clonePopvoer: {\n width: theme.spacing(50) + 'px'\n },\n cloneContent: {\n padding: theme.spacing(2)\n }\n})\n\nclass GroupDashboard extends Component {\n constructor (props) {\n super(props)\n this.state = {\n popoverAnchor: null,\n popoverTab: 0\n }\n }\n\n render () {\n const { classes, groupConfig, repositoryList, intl, history } = this.props\n\n return (\n \n { groupConfig && groupConfig.group && groupConfig.group.id\n ? \n \n \n \n { groupConfig.group.icon\n ? \n : {groupConfig.group.name.substr(0, 1).toUpperCase()}\n }\n \n \n \n {groupConfig.group.displayName}   \n \n \n {groupConfig.group.description}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n   { intl.formatMessage({ id: 'label._N_repository' }, {\n n: repositoryList\n .filter(FilterGenerator.group(groupConfig.group.id))\n .length\n }) }     \n \n  \n { intl.formatMessage({ id: 'label._N_mergeRequest' }, {\n n: repositoryList\n .filter(FilterGenerator.group(groupConfig.group.id))\n .reduce((accmulator, item) => accmulator + item.mergeRequestCount.open, 0)\n }) }     \n \n   { intl.formatMessage({ id: 'label._N_member' }, { n: groupConfig.count.member }) }\n \n \n \n : \n \n \n }\n \n )\n }\n}\n\nGroupDashboard.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n groupConfig: PropTypes.object,\n repositoryList: PropTypes.array.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupDashboard)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport RepositoryListItem from 'APPSRC/components/unit/RepositoryListItem'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport GroupDashboard from 'APPSRC/components/unit/GroupDashboard'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport UAC from 'APPSRC/config/UAC'\n\nconst styles = (theme) => ({})\n\nclass RepositoryList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n currentTab: 0\n }\n }\n\n render () {\n const { currentUserInfo, currentGroupKey, currentGroupConfig, repositoryList, repositoryListPending, match, intl } = this.props\n\n repositoryList.sort((item1, item2) => item2.updated - item1.updated)\n let finalList = repositoryList.filter(FilterGenerator.withPermission(UAC.PermissionCode.REPO_READ))\n const tabs = [\n intl.formatMessage({ id: 'label.all' }),\n intl.formatMessage({ id: 'label.IJoined' }),\n intl.formatMessage({ id: 'label.ICreated' })\n ]\n const tabsFilter = [\n () => true,\n FilterGenerator.not(FilterGenerator.creator(currentUserInfo.id)),\n FilterGenerator.creator(currentUserInfo.id)\n ]\n\n if (currentGroupKey) {\n tabs[0] = intl.formatMessage({ id: 'label.repository' })\n finalList = finalList.filter(FilterGenerator.group(currentGroupKey))\n } else if (match.params.repositoryID) {\n const forkedRepository = repositoryList.filter(FilterGenerator.id(match.params.repositoryID))[0]\n finalList = finalList.filter(FilterGenerator.fork(match.params.repositoryID))\n if (forkedRepository) {\n tabs[0] = intl.formatMessage(\n { id: 'label.forkFrom_S' },\n { s: [forkedRepository.group.displayName, forkedRepository.displayName].join('/') }\n )\n } else {\n tabs[0] = intl.formatMessage(\n { id: 'label.forkFrom_S' },\n { s: intl.formatMessage({ id: 'label.unknownRepository' }) }\n )\n }\n }\n\n finalList = finalList.filter(tabsFilter[this.state.currentTab])\n\n return (\n { currentGroupConfig.group && \n \n }\n \n {\n this.setState({ currentTab: tab })\n }}\n >\n {(!currentGroupConfig.group && !match.params.repositoryID) && {\n this.props.history.push(\n currentGroupConfig.group\n ? makeLink('groups', currentGroupConfig.group.name, 'repositories', 'new')\n : makeLink('repositories', 'new')\n )\n }}\n >\n { intl.formatMessage({ id: 'label.newRepository' }) }\n }\n \n \n \n { finalList.map((item, key) => ) }\n { finalList.length === 0 && \n {\n this.props.history.push(\n currentGroupConfig.group\n ? makeLink('groups', currentGroupConfig.group.name, 'repositories', 'new')\n : makeLink('repositories', 'new')\n )\n }}\n >\n { intl.formatMessage({ id: 'label.newRepository' }) }\n \n }\n \n )\n }\n}\n\nRepositoryList.propTypes = {\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n repositoryListPending: PropTypes.bool.isRequired,\n currentGroupKey: PropTypes.string.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n currentGroupKey: state.DataStore.currentGroupKey,\n currentGroupConfig: state.DataStore.currentGroupConfig,\n repositoryList: state.DataStore.repositoryList,\n repositoryListPending: state.DataStore.repositoryListPending\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(RepositoryList)\n )\n)\n","import APIRequest from 'APPSRC/data_providers/main'\n\nfunction list () {\n return APIRequest.GET('/api/repository/list')\n}\n\nfunction create (data) {\n return APIRequest.POST('/api/repository/create', data)\n}\n\nfunction fork (data) {\n return APIRequest.POST('/api/repository/fork', data)\n}\n\nfunction config (data) {\n return APIRequest.GET('/api/repository/config', null, data)\n}\n\nfunction uploadAvatar (data) {\n return APIRequest.POST('/api/repository/uploadAvatar', data)\n}\n\nfunction update (data) {\n return APIRequest.POST('/api/repository/update', data)\n}\n\nfunction updateName (data) {\n return APIRequest.POST('/api/repository/updateName', data)\n}\n\nfunction defaultBranch (data) {\n return APIRequest.POST('/api/repository/defaultBranch', data)\n}\n\nfunction protectedBranchRules (data) {\n return APIRequest.GET('/api/repository/protectedBranchRules', null, data)\n}\n\nfunction createProtectedBranchRule (data) {\n return APIRequest.POST('/api/repository/createProtectedBranchRule', data)\n}\n\nfunction updateProtectedBranchRule (data) {\n return APIRequest.POST('/api/repository/updateProtectedBranchRule', data)\n}\n\nfunction deleteProtectedBranchRule (data) {\n return APIRequest.POST('/api/repository/deleteProtectedBranchRule', data)\n}\n\nfunction addMember (data) {\n return APIRequest.POST('/api/repository/addMember', data)\n}\n\nfunction changeMemberRole (data) {\n return APIRequest.POST('/api/repository/changeMemberRole', data)\n}\n\nfunction removeMember (data) {\n return APIRequest.POST('/api/repository/removeMember', data)\n}\n\nfunction changeOwner (data) {\n return APIRequest.POST('/api/repository/changeOwner', data)\n}\n\nfunction deleteRepository (data) {\n return APIRequest.POST('/api/repository/deleteRepository', data)\n}\n\nfunction activities (data) {\n return APIRequest.GET('/api/repository/activities', null, data)\n}\n\nfunction mergeRequests (data) {\n return APIRequest.GET('/api/repository/mergeRequests', null, data)\n}\n\nfunction mergeRequestClose (data) {\n return APIRequest.POST('/api/repository/mergeRequestClose', data)\n}\n\nfunction mergeRequestCommits (data) {\n return APIRequest.GET('/api/repository/mergeRequestCommits', null, data)\n}\n\nfunction mergeRequestReview (data) {\n return APIRequest.POST('/api/repository/mergeRequestReview', data)\n}\n\nfunction assignReviewer (data) {\n return APIRequest.POST('/api/repository/assignReviewer', data)\n}\n\nfunction deleteReviewer (data) {\n return APIRequest.POST('/api/repository/deleteReviewer', data)\n}\n\nfunction object (data) {\n return APIRequest.GET('/api/repository/object', null, data)\n}\n\nfunction pathStack (data) {\n return APIRequest.GET('/api/repository/pathStack', null, data)\n}\n\nfunction fileContent (data) {\n return APIRequest.GET('/api/repository/fileContent', null, data)\n}\n\nfunction commitList (data) {\n return APIRequest.GET('/api/repository/commitList', null, data)\n}\n\nfunction commitDetail (data) {\n return APIRequest.GET('/api/repository/commitDetail', null, data)\n}\n\nfunction refListContainSHA (data) {\n return APIRequest.GET('/api/repository/refListContainSHA', null, data)\n}\n\nfunction fileChanges (data) {\n return APIRequest.GET('/api/repository/fileChanges', null, data)\n}\n\nfunction branchList (data) {\n return APIRequest.GET('/api/repository/branchList', null, data)\n}\n\nfunction createBranch (data) {\n return APIRequest.POST('/api/repository/createBranch', data)\n}\n\nfunction deleteBranch (data) {\n return APIRequest.POST('/api/repository/deleteBranch', data)\n}\n\nfunction tagList (data) {\n return APIRequest.GET('/api/repository/tagList', null, data)\n}\n\nfunction createTag (data) {\n return APIRequest.POST('/api/repository/createTag', data)\n}\n\nfunction deleteTag (data) {\n return APIRequest.POST('/api/repository/deleteTag', data)\n}\n\nfunction targetRepository (data) {\n return APIRequest.GET('/api/repository/targetRepository', null, data)\n}\n\nfunction lastCommitLog (data) {\n return APIRequest.GET('/api/repository/lastCommitLog', null, data)\n}\n\nfunction getBlameInfo (data) {\n return APIRequest.GET('/api/repository/blameInfo', null, data)\n}\n\nfunction createMergeRequest (data) {\n return APIRequest.POST('/api/repository/createMergeRequest', data)\n}\n\nfunction mergeRequestDetail (data) {\n return APIRequest.GET('/api/repository/mergeRequestDetail', null, data)\n}\n\nfunction checkMergeType (data) {\n return APIRequest.POST('/api/repository/checkMergeType', data)\n}\n\nfunction mergeBranch (data) {\n return APIRequest.POST('/api/repository/mergeBranch', data)\n}\n\nfunction mergeRequestVersionList (data) {\n return APIRequest.GET('/api/repository/mergeRequestVersionList', null, data)\n}\n\nfunction relatedMergeRequests (data) {\n return APIRequest.GET('/api/repository/relatedMergeRequests', null, data)\n}\n\nfunction getWebhook (data) {\n return APIRequest.POST('/api/repository/getWebhook', data)\n}\n\nfunction webhooks (data) {\n return APIRequest.POST('/api/repository/webhooks', data)\n}\n\nfunction editWebhook (data) {\n return APIRequest.POST('/api/repository/editWebhook', data)\n}\n\nfunction deleteWebhook (data) {\n return APIRequest.POST('/api/repository/deleteWebhook', data)\n}\n\nfunction getRepositoryWebhookLogs (data) {\n return APIRequest.POST('/api/repository/getRepositoryWebhookLogs', data)\n}\n\nfunction getRepositoryWebhookLogData (data) {\n return APIRequest.POST('/api/repository/getRepositoryWebhookLogData', data)\n}\n\nexport default {\n list,\n create,\n fork,\n config,\n uploadAvatar,\n update,\n updateName,\n defaultBranch,\n protectedBranchRules,\n createProtectedBranchRule,\n updateProtectedBranchRule,\n deleteProtectedBranchRule,\n addMember,\n changeMemberRole,\n removeMember,\n changeOwner,\n deleteRepository,\n activities,\n mergeRequests,\n mergeRequestClose,\n mergeRequestCommits,\n mergeRequestReview,\n assignReviewer,\n deleteReviewer,\n object,\n pathStack,\n fileContent,\n commitList,\n commitDetail,\n fileChanges,\n refListContainSHA,\n branchList,\n createBranch,\n deleteBranch,\n tagList,\n createTag,\n deleteTag,\n targetRepository,\n lastCommitLog,\n getBlameInfo,\n createMergeRequest,\n mergeRequestDetail,\n checkMergeType,\n mergeBranch,\n mergeRequestVersionList,\n relatedMergeRequests,\n getWebhook,\n webhooks,\n editWebhook,\n deleteWebhook,\n getRepositoryWebhookLogs,\n getRepositoryWebhookLogData\n}\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport Button from '@material-ui/core/Button'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport UAC from 'APPSRC/config/UAC'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginLeft: theme.spacing(2)\n },\n svg: {\n '& svg': {\n right: theme.spacing(3)\n }\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n }\n})\n\nclass newRepository extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n name: '',\n group: '',\n slug: '',\n description: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'group',\n passPattern: /^[0-9a-f]{32}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notChoose' },\n { s: this.props.intl.formatMessage({ id: 'label.group' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^[0-9a-zA-Z\\\\._-]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_has_illegal_character' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'description',\n passPattern: /^.{0,200}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 200 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0401,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0402,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (!nextProps.groupListPending && nextProps.currentUserInfo.id) {\n const personalGroups = nextProps.groupList\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (!personalGroups.length && !nextProps.history.location.pathname.match(/^\\/groups\\/new/i)) {\n nextProps.dispatchEvent(EventGenerator.cancelComformation())\n nextProps.dispatchEvent(EventGenerator.addComformation('default_group_create_confirm', {\n title: this.props.intl.formatMessage({ id: 'message.defaultGroupReqiured' }),\n description: this.props.intl.formatMessage({ id: 'message.defaultGroupReqiuredDescription' }),\n reject: () => {\n nextProps.history.push('/repositories')\n },\n accept: () => {\n nextProps.history.push('/groups/new')\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n }))\n return true\n }\n }\n\n if (!nextState.group && nextProps.currentGroupKey) {\n this.setState({ group: nextProps.currentGroupKey, pending: false })\n } else if (!nextState.group) {\n const permittedGroups = nextProps.groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.GROUP_CREATE_REPO))\n\n const personalGroups = permittedGroups\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (personalGroups[0]) {\n this.setState({ group: personalGroups[0].id, pending: false })\n }\n }\n\n if (this.state.description !== nextState.description && nextState.description.length < 201) {\n this.setState({\n error: {}\n })\n return false\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n createRepository () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n group: this.state.group,\n name: this.state.slug,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n RepositoryData.create(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const repositoryData = data.data\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n this.props.history.push(makeLink(repositoryData.group.name, repositoryData.name))\n }\n })\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createRepositoryFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n render () {\n const { classes, intl, groupList, currentGroupKey, currentUserInfo } = this.props\n\n const permittedGroups = groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.GROUP_CREATE_REPO))\n\n return (\n \n \n { intl.formatMessage({ id: 'label.newRepository' }) }\n \n \n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.repositoryName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n const error = {}\n this.setState({ name, slug, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryURL' }) }\n \n \n this.setState({ group: e.target.value })}\n disabled={!!currentGroupKey.length}\n InputProps={{\n startAdornment: {NetworkHelper.getHost(currentUserInfo)}/,\n endAdornment: /\n }}\n className={classes.svg}\n >\n {permittedGroups.map(option => (\n \n {option.name}\n \n ))}\n \n \n \n {\n const slug = NetworkHelper.makeSlug(e.target.value)\n this.setState({ slug })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryDescription' }) }\n \n \n this.setState({ description: e.target.value })}\n />\n \n \n \n \n 200 ? classes.outRange : ''}\n >\n {this.state.description.length}/200\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nnewRepository.propTypes = {\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n groupList: PropTypes.array.isRequired,\n groupListPending: PropTypes.bool.isRequired,\n currentGroupKey: PropTypes.string,\n classes: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n currentGroupKey: state.DataStore.currentGroupKey,\n groupListPending: state.DataStore.groupListPending,\n groupList: state.DataStore.groupList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(newRepository)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPlus,\n faUndo\n} from '@fortawesome/free-solid-svg-icons'\nimport Button from '@material-ui/core/Button'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport UAC from 'APPSRC/config/UAC'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginRight: theme.spacing(2)\n },\n svg: {\n '& svg': {\n right: theme.spacing(3)\n }\n }\n})\n\nclass newRepositoryFork extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n forkID: '',\n name: '',\n group: '',\n slug: '',\n description: '',\n error: {}\n }\n\n this.observed = {\n forkRepositoryInfo: ''\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'group',\n passPattern: /^[0-9a-f]{32}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notChoose' },\n { s: this.props.intl.formatMessage({ id: 'label.group' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0401,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0402,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (!nextProps.groupListPending && nextProps.currentUserInfo.id) {\n const personalGroups = nextProps.groupList\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (!personalGroups.length && !nextProps.history.location.pathname.match(/^\\/groups\\/new/i)) {\n nextProps.dispatchEvent(EventGenerator.cancelComformation())\n nextProps.dispatchEvent(EventGenerator.addComformation('default_group_create_confirm', {\n title: this.props.intl.formatMessage({ id: 'message.defaultGroupReqiured' }),\n description: this.props.intl.formatMessage({ id: 'message.defaultGroupReqiuredDescription' }),\n reject: () => { nextProps.history.push('/repositories') },\n accept: () => { nextProps.history.push('/groups/new') }\n }))\n return true\n }\n }\n\n const forkRepositoryID = nextProps.match.params.repositoryID\n const matchedRepository = (nextProps.repositoryList || [])\n .filter(FilterGenerator.id(forkRepositoryID))[0]\n\n if (this.observed.forkRepositoryInfo !== JSON.stringify(matchedRepository)) {\n this.observed.forkRepositoryInfo = JSON.stringify(matchedRepository)\n if (matchedRepository) {\n this.setState({\n forkID: forkRepositoryID,\n name: matchedRepository.displayName,\n slug: matchedRepository.name,\n description: matchedRepository.description\n })\n }\n }\n\n const permittedGroups = nextProps.groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.GROUP_CREATE_REPO))\n\n if (!nextState.group) {\n const personalGroups = permittedGroups\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (personalGroups && personalGroups[0] && personalGroups[0].id) {\n this.setState({ group: personalGroups[0].id, pending: false })\n }\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n forkRepository () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n forkID: this.state.forkID,\n group: this.state.group,\n name: this.state.slug,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n RepositoryData.fork(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const repositoryData = data.data\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n this.props.history.push(makeLink(repositoryData.group.name, repositoryData.name))\n }\n })\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.forkRepositoryFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n render () {\n const { classes, intl, match, repositoryList, groupList, currentUserInfo } = this.props\n\n const permittedGroups = groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.GROUP_CREATE_REPO))\n\n const forkRepositoryID = match.params.repositoryID\n const matchedRepository = repositoryList\n .filter(FilterGenerator.id(forkRepositoryID))[0]\n\n return (\n \n \n { intl.formatMessage({ id: 'label.forkRepository' }) }\n \n \n \n \n \n \n { matchedRepository\n ? \n \n \n { intl.formatMessage({ id: 'label.forkFrom_S' }, {\n s: NetworkHelper.getHost(currentUserInfo) +\n makeLink(matchedRepository.group.name, matchedRepository.name) +\n ' (' + matchedRepository.group.displayName + '/' + matchedRepository.displayName + ')'\n }) }\n \n \n \n { intl.formatMessage({ id: 'label.repositoryName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n this.setState({ name, slug })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryURL' }) }\n \n \n this.setState({ group: e.target.value })}\n InputProps={{\n startAdornment: {NetworkHelper.getHost(currentUserInfo)}/,\n endAdornment: /\n }}\n className={classes.svg}\n >\n {permittedGroups.map(option => (\n \n {option.name}\n \n ))}\n \n \n \n {\n const slug = NetworkHelper.makeSlug(e.target.value)\n this.setState({ slug })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryDescription' }) }\n \n \n this.setState({ description: e.target.value })}\n />\n \n \n \n \n \n \n : \n \n \n \n \n }\n \n \n \n \n )\n }\n}\n\nnewRepositoryFork.propTypes = {\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n groupListPending: PropTypes.bool.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n repositoryList: state.DataStore.repositoryList,\n groupListPending: state.DataStore.groupListPending,\n groupList: state.DataStore.groupList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(newRepositoryFork)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport TextField from '@material-ui/core/TextField'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Button from '@material-ui/core/Button'\nimport AvatarUploader from 'APPSRC/components/unit/AvatarUploader'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport Constants from 'APPSRC/config/Constants'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginLeft: theme.spacing(2)\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n }\n})\n\nclass RepositorySettingGeneral extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n name: '',\n description: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^[0-9a-zA-Z\\\\._-]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_has_illegal_character' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'description',\n passPattern: /^.{0,200}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 200 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'name',\n exceptionCode: 0x0402,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositoryName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n if (this.props.currentRepositoryConfig.repository) {\n this.setState({\n name: this.props.currentRepositoryConfig.repository.displayName,\n description: this.props.currentRepositoryConfig.repository.description\n })\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentRepositoryConfig) !== JSON.stringify(this.props.currentRepositoryConfig) &&\n nextProps.currentRepositoryConfig.repository\n ) {\n this.setState({\n name: nextProps.currentRepositoryConfig.repository.displayName,\n description: nextProps.currentRepositoryConfig.repository.description\n })\n return false\n }\n\n if (this.state.description !== nextState.description && nextState.description.length < 201) {\n this.setState({\n error: {}\n })\n return false\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n updateRepository () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n RepositoryData.update(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadRepositoryData()\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n avatarUploaded (data) {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadRepositoryData()\n }\n }\n\n reloadRepositoryData () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n RepositoryData.config({ rKey: this.props.currentRepositoryConfig.repository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'menu.general' }) }\n \n \n { currentRepositoryConfig.repository\n ? \n \n \n { intl.formatMessage({ id: 'label.repositoryAvatar' }) }\n \n \n \n this.avatarUploaded(data)}\n dataProvider={RepositoryData.uploadAvatar}\n />\n \n \n \n \n \n { intl.formatMessage({ id: 'label.repositoryName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n const error = {}\n this.setState({ name, slug, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.repositoryDescription' }) }\n \n \n this.setState({ description: e.target.value })}\n />\n \n \n \n \n 200 ? classes.outRange : ''}\n >\n {this.state.description.length}/200\n \n \n \n \n \n \n \n \n \n \n \n \n : \n \n \n \n }\n )\n }\n}\n\nRepositorySettingGeneral.propTypes = {\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingGeneral)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { plEdit, plTrash, plCheck, plClose } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nconst styles = (theme) => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n title: {\n lineHeight: theme.spacing(3) + 'px',\n paddingBottom: theme.spacing(2)\n },\n content: {\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(5)\n },\n create: {\n marginTop: theme.spacing(1)\n },\n size: {\n fontSize: '12px'\n },\n btn: {\n marginLeft: theme.spacing(1)\n },\n border: {\n borderBottom: '1px solid ' + theme.palette.border,\n marginBottom: theme.spacing(3)\n },\n icon: {\n color: theme.palette.text.light,\n '& svg': {\n width: '16px !important',\n height: '16px !important'\n }\n },\n ok: {\n '& svg': {\n color: theme.palette.success.main + ' !important'\n }\n },\n cancel: {\n marginLeft: theme.spacing(1),\n '& svg': {\n width: '14px !important',\n height: '14px !important',\n padding: '2px',\n color: theme.palette.error.main + ' !important'\n }\n },\n table: {\n marginTop: theme.spacing(3),\n '& tbody tr': {\n '&:hover': {\n background: theme.palette.background.light + ' !important'\n }\n },\n '& td': {\n lineHeight: theme.spacing(6) + 'px',\n '& > div': {\n verticalAlign: 'middle'\n }\n }\n }\n})\n\nclass RepositorySettingBranch extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n branch: props.currentRepositoryConfig.repository ? props.currentRepositoryConfig.repository.defaultBranch : '',\n rules: null,\n updateRuleId: null,\n rule: '',\n rolePush: UAC.Role.OWNER,\n roleMerge: UAC.Role.OWNER,\n error: {}\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'rule',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.rule' }) }\n )\n },\n {\n name: 'rule',\n passPattern: /^([0-9a-zA-Z/]{1,30}|\\/\\^?.{1,30}\\$?\\/[igm]*)$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.rule' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.getData(this.props)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentRepositoryConfig) !== JSON.stringify(this.props.currentRepositoryConfig) &&\n !this.props.currentRepositoryConfig.repository) {\n this.setState({ branch: nextProps.currentRepositoryConfig.repository.defaultBranch })\n this.getData(nextProps)\n return false\n }\n\n return true\n }\n\n getData (props) {\n const { currentRepositoryConfig } = props\n if (!currentRepositoryConfig.repository) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.protectedBranchRules({\n repository: currentRepositoryConfig.repository.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.cancelForm()\n if (!data.code) {\n this.setState({\n pending: false,\n rules: data.data\n })\n }\n })\n }\n\n getTableData () {\n const { classes } = this.props\n const { rules, updateRuleId } = this.state\n const final = []\n if (!rules) {\n return false\n }\n\n rules.map((item, index) => {\n if (item === 'create' || item.id === updateRuleId) {\n final.push(this.createForm())\n } else {\n final.push([\n {item.rule},\n {this.getAllowRoler(item.rolePush)},\n {this.getAllowRoler(item.roleMerge)},\n \n this.editRule(item)} />\n this.deleteConfirm(item.id, item.rule)} icon={plTrash} />\n \n ])\n }\n return true\n })\n\n return [\n ['150px', '200px', '200px', '150px'],\n ['label.branchRule', 'label.allowPush', 'label.allowMerge', 'label.operating'],\n ...final\n ]\n }\n\n getAllowRoler (roleId) {\n const { intl } = this.props\n const roleIds = [\n intl.formatMessage({ id: 'message.noBodyAllow' }),\n intl.formatMessage({ id: 'label.owner' }),\n intl.formatMessage({ id: 'label.maintianer' }),\n intl.formatMessage({ id: 'label.developer' })\n ]\n\n return roleIds.slice(roleId === UAC.Role.NOBODY ? 0 : 1, UAC.Role.NOBODY - roleId + 1).join(' + ')\n }\n\n createForm () {\n const { classes, intl } = this.props\n return [\n this.setState({ rule: e.target.value })}\n />,\n this.setState({ rolePush: e.target.value })}\n >\n {this.getAllowRoler(UAC.Role.OWNER)}\n {this.getAllowRoler(UAC.Role.MAINTAINER)}\n {this.getAllowRoler(UAC.Role.DEVELOPER)}\n {this.getAllowRoler(UAC.Role.NOBODY)}\n ,\n this.setState({ roleMerge: e.target.value })}\n >\n {this.getAllowRoler(UAC.Role.OWNER)}\n {this.getAllowRoler(UAC.Role.MAINTAINER)}\n {this.getAllowRoler(UAC.Role.NOBODY)}\n ,\n \n this.createProtectedBranchRule()} className={classes.ok} />\n this.cancelForm()} className={classes.cancel} />\n \n ]\n }\n\n settingDefaultBranch () {\n const { currentRepositoryConfig } = this.props\n const { branch } = this.state\n if (!currentRepositoryConfig.repository || branch === currentRepositoryConfig.repository.defaultBranch) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.defaultBranch({\n repository: currentRepositoryConfig.repository.id,\n old: currentRepositoryConfig.repository.defaultBranch,\n branch: branch\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadRepositoryData()\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n })\n }\n\n reloadRepositoryData () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n RepositoryData.config({ rKey: this.props.currentRepositoryConfig.repository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n }\n })\n }\n\n cancelForm () {\n let { rules } = this.state\n if (rules && rules.length && rules[rules.length - 1] === 'create') {\n rules = rules.slice(0, rules.length - 1)\n }\n\n this.setState({\n rules: rules,\n updateRuleId: null,\n rule: '',\n rolePush: UAC.Role.OWNER,\n roleMerge: UAC.Role.OWNER,\n error: {}\n })\n }\n\n createRule () {\n const { rules } = this.state\n if (!rules.length || rules[rules.length - 1] !== 'create') {\n this.cancelForm()\n this.setState({ rules: [...rules, 'create'] })\n }\n }\n\n editRule (item) {\n this.cancelForm()\n this.setState({\n updateRuleId: item.id,\n rule: item.rule,\n rolePush: item.rolePush,\n roleMerge: item.roleMerge\n })\n }\n\n deleteConfirm (id, rule) {\n const { intl } = this.props\n this.cancelForm()\n this.props.dispatchEvent(EventGenerator.addComformation('delete_protected_branch_rule', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.rule' }) + ' \\'' + rule + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => {\n this.deleteRule(id, rule)\n }\n }))\n }\n\n createProtectedBranchRule () {\n const { currentRepositoryConfig, intl } = this.props\n const { rules, rule, rolePush, roleMerge, updateRuleId } = this.state\n\n if (!currentRepositoryConfig.repository || !this.checkInput()) {\n return false\n }\n\n const sameRule = rules.filter(FilterGenerator.rule(rule))\n if (sameRule.length > 0) {\n if (!updateRuleId || (updateRuleId && updateRuleId !== sameRule[0].id)) {\n this.setState({\n error: {\n rule: intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: intl.formatMessage({ id: 'label.rule' }) }\n )\n }\n })\n return false\n }\n }\n\n const requestData = {\n repository: currentRepositoryConfig.repository.id,\n rule: rule,\n rolePush: rolePush,\n roleMerge: roleMerge\n }\n\n this.setState({ pending: true })\n if (!updateRuleId) {\n RepositoryData.createProtectedBranchRule({\n ...requestData\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.created' })\n , 0)\n )\n this.getData(this.props)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createProtectedBrancheRuleFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n })\n } else {\n RepositoryData.updateProtectedBranchRule({\n ...requestData,\n id: updateRuleId\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.getData(this.props)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n })\n }\n }\n\n deleteRule (id, rule) {\n const { currentRepositoryConfig } = this.props\n if (!currentRepositoryConfig.repository || !id || !rule) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.deleteProtectedBranchRule({\n repository: currentRepositoryConfig.repository.id,\n id: id,\n rule: rule\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.deleted' })\n , 0)\n )\n this.getData(this.props)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.deleteFail' })\n , 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n this.setState({ pending: false })\n })\n }\n\n render () {\n const { currentRepositoryConfig, classes, intl } = this.props\n const { pending, branch, rules } = this.state\n\n return (\n \n { intl.formatMessage({ id: 'label.branchSetting' }) }\n \n \n {intl.formatMessage({ id: 'label.defaultBranch' })}\n {intl.formatMessage({ id: 'message.defaultBranchDescription' })}\n \n { currentRepositoryConfig.repository && \n \n this.setState({ branch: e.target.value })}\n >\n {!currentRepositoryConfig.repository.defaultBranch && branch === null && {intl.formatMessage({ id: 'message.settingDefaultBranch' })}}\n {currentRepositoryConfig.branches.map((item, index) => {\n return {item.name}\n })}\n \n \n \n this.settingDefaultBranch()}\n className={classes.btn}\n disabled={pending}\n >\n {intl.formatMessage({ id: 'message.settingToDefaultBranch' })}\n \n \n \n }\n \n \n \n \n \n {intl.formatMessage({ id: 'label.protectedBranch' })}\n {intl.formatMessage({ id: 'message.protectedBranchDescription' })}\n \n \n this.createRule()}\n disabled={pending}\n className={classes.create}\n >\n {intl.formatMessage({ id: 'message.createProtectedBranchRule' })}\n \n \n \n { rules !== null\n ? rules.length !== 0\n ? \n : \n : \n \n \n }\n \n \n \n )\n }\n}\n\nRepositorySettingBranch.propTypes = {\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingBranch)\n )\n )\n)\n","const Events = [\n {\n event: null,\n title: 'menu.file_pl',\n checked: false,\n divider: true\n },\n {\n event: 'hook:postReceive',\n title: 'label.pushEvent',\n checked: true,\n divider: false\n },\n {\n event: 'repo:fork',\n title: 'label.forkRepository',\n checked: false,\n divider: false\n },\n {\n event: 'branch:create',\n title: 'label.newBranch',\n checked: false,\n divider: false\n },\n {\n event: 'branch:remove',\n title: 'label.deleteBranch',\n checked: false,\n divider: false\n },\n {\n event: 'branch:changeDefaultBranch',\n title: ['label.update_S_', 'label.defaultBranch'],\n checked: false,\n divider: false\n },\n {\n event: 'tag:create',\n title: 'label.newTag',\n checked: false,\n divider: false\n },\n {\n event: 'tag:remove',\n title: 'label.deleteTag',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequest:create',\n title: 'label.createMergeRequest',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequest:close',\n title: 'label.closeMergeRequest',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequest:merge',\n title: 'label.mergeRequest',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequestReviewer:create',\n title: 'message.selectReviewer',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequestReviewer:delete',\n title: 'message.deleteReviewer',\n checked: false,\n divider: false\n },\n {\n event: 'mergeRequestReviewer:review',\n title: 'label.reviewReviewer',\n checked: false,\n divider: false\n },\n {\n event: null,\n title: 'label.member_pl',\n checked: false,\n divider: true\n },\n {\n event: 'repo:addMember',\n title: 'label.inviteMember',\n checked: false,\n divider: false\n },\n {\n event: 'repo:changeMemberRole',\n title: 'label.changeMemberRole',\n checked: false,\n divider: false\n },\n {\n event: 'repo:removeMember',\n title: 'label.removeMember',\n checked: false,\n divider: false\n },\n {\n event: null,\n title: 'menu.setting_pl',\n checked: false,\n divider: true\n },\n {\n event: 'repo:updateAvator',\n title: ['label.update_S_', 'label.repositoryAvatar'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:updateName',\n title: ['label.update_S_', 'label.repositoryName'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:updateDescription',\n title: ['label.update_S_', 'label.repositoryDescription'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:changeOwner',\n title: ['label.update_S_', 'label.owner'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:changeURL',\n title: ['label.update_S_', 'label.repositoryURL'],\n checked: false,\n divider: false\n },\n {\n event: 'repo:remove',\n title: 'label.deleteRepository',\n checked: false,\n divider: false\n },\n {\n event: 'branch:createProtectedBranchRule',\n title: 'label.createProtectedBranchRule',\n checked: false,\n divider: false\n },\n {\n event: 'branch:changeProtectedBranchRule',\n title: 'label.changeProtectedBranchRule',\n checked: false,\n divider: false\n },\n {\n event: 'branch:removeProtectedBranchRule',\n title: 'label.removeProtectedBranchRule',\n checked: false,\n divider: false\n }\n]\n\nexport default Events\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\n\n// style\nconst styles = theme => ({\n list: {\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px '\n },\n title: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n background: theme.palette.background.main,\n borderRadius: theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px 0px 0px',\n '& > div': {\n lineHeight: theme.spacing(5) + 'px'\n }\n },\n list2: {\n '& div:nth-child(1), & li:nth-child(1)': {\n border: '0px'\n }\n }\n})\n\nclass TitleList extends React.Component {\n render () {\n const { title, children, classes } = this.props\n\n return (\n { title && \n {title}\n \n }\n \n {children}\n \n \n )\n }\n}\n\nTitleList.propTypes = {\n title: PropTypes.string.isRequired,\n children: PropTypes.array.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TitleList)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plCopy, plClock, plClose, psConfirm, psError, psMore } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { copyToClipboard } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n webhook: {\n borderTop: '1px solid ' + theme.palette.border\n },\n subline: {\n display: 'flex',\n alignItems: 'center',\n height: theme.spacing(6),\n padding: '0px ' + theme.spacing(3) + 'px'\n },\n date: {\n justifyContent: 'flex-end'\n },\n success: {\n color: theme.palette.success.main\n },\n error: {\n color: theme.palette.error.main\n },\n webhookid: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(1),\n borderRadius: theme.spacing(0.5),\n background: theme.palette.background.dark,\n padding: theme.spacing(0.5) + 'px ' + theme.spacing(1) + 'px'\n },\n more: {\n marginLeft: theme.spacing(2)\n },\n detail: {\n padding: theme.spacing(3),\n paddingTop: 0\n },\n time: {\n lineHeight: theme.spacing(5) + 'px'\n },\n code: {\n overflowX: 'auto',\n padding: theme.spacing(1),\n borderRadius: theme.spacing(0.5),\n background: theme.palette.background.main,\n border: '1px solid ' + theme.palette.border\n }\n})\n\nclass BranchList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n webhookTab: 0,\n webhookId: '',\n logData: null\n }\n }\n\n componentDidMount () {\n }\n\n getData (id) {\n if (!id) {\n return false\n }\n\n this.setState({ webhookTab: 0, webhookId: id, logData: null })\n RepositoryData.getRepositoryWebhookLogData({ id: id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ logData: data.data })\n }\n })\n }\n\n getTime (start, end) {\n return Math.floor((end - start) * 100) / 100\n }\n\n render () {\n const { list, classes, intl } = this.props\n const { webhookTab, webhookId, logData } = this.state\n\n return \n \n {\n list.map(item => \n \n \n {item.id}\n copyToClipboard(item.id)} icon={plCopy} />\n \n \n {item.created}\n {\n webhookId === item.id\n ? this.setState({ webhookId: '' })} icon={plClose} className={classes.more} />\n : this.getData(item.id)} icon={psMore} className={classes.more} />\n }\n \n {\n webhookId && webhookId === item.id && logData && \n \n \n {intl.formatMessage({ id: 'label.response' })} ]}\n currentTab={webhookTab}\n onChange={(e, newValue) => this.setState({ webhookTab: newValue })}\n >\n \n  \n {intl.formatMessage({ id: 'message.useTime_n' }, { n: this.getTime(item.start, item.end) })}\n \n \n \n \n {intl.formatMessage({ id: 'label.httpHeaders' })}\n \n \n \n {\n webhookTab === 0\n ? Object.keys(logData.request.headers).map(key => \n {key}: \n {logData.request.headers[key]}\n )\n : Object.keys(logData.response.headers).map(key => \n {key}: \n {logData.response.headers[key]}\n )\n }\n \n \n \n \n {webhookTab === 0 ? intl.formatMessage({ id: 'label.httpPayload' }) : intl.formatMessage({ id: 'label.httpBody' })}\n  \n {webhookTab === 0 && }\n \n \n \n \n
\n                        \n                          {webhookTab === 0 ? JSON.stringify(JSON.parse(logData.request.body), null, 4) : logData.response.body}\n                        \n                      
\n
\n
\n
\n
\n }\n
)\n }\n \n
\n }\n}\n\nBranchList.propTypes = {\n list: PropTypes.array.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(BranchList)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Radio from '@material-ui/core/Radio'\nimport RadioGroup from '@material-ui/core/RadioGroup'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport { psLog, plEdit, plTrash } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport Events from 'APPSRC/config/WebhookEventConfig'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport WebhookLog from 'APPSRC/components/view/unit/WebhookLog'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { copyToClipboard } from 'APPSRC/helpers/VaribleHelper'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\nconst styles = (theme) => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n header: {\n display: 'flex',\n marginBottom: theme.spacing(4),\n justifyContent: 'space-between',\n lineHeight: theme.spacing(5) + 'px',\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n webhookForm: {\n paddingTop: theme.spacing(6),\n marginBottom: theme.spacing(2),\n paddingBottom: theme.spacing(6)\n },\n btn: {\n verticalAlign: 'bottom',\n marginTop: theme.spacing(2),\n marginLeft: theme.spacing(3)\n },\n icon: {\n color: theme.palette.text.light\n },\n need: {\n color: 'red'\n },\n logs: {\n marginTop: theme.spacing(3)\n },\n dot: {\n width: theme.spacing(1),\n height: theme.spacing(1),\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main\n },\n close: {\n backgroundColor: theme.palette.error.main\n },\n cursorPointer: {\n cursor: 'pointer'\n }\n})\n\nclass RepositorySettingWebhook extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n webhooks: null,\n webhook: null,\n pushEvent: 'hook:postReceive',\n\n edit: false,\n webhookLogs: null,\n isShowWebhookForm: !!window.location.search,\n url: '',\n secret: '',\n trigger: '1',\n active: '1',\n error: {},\n events: JSON.parse(JSON.stringify(Events))\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'url',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.url' }) }\n )\n },\n {\n name: 'url',\n passPattern: /^http(s)?:\\/\\/.+/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.url' }) }\n )\n },\n {\n name: 'url',\n passPattern: /^\\S{0,255}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 255 }\n )\n },\n {\n name: 'secret',\n passPattern: /^\\S{0,255}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 255 }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.getData(this.props)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentRepositoryKey) !== JSON.stringify(this.props.currentRepositoryKey)) {\n this.getData(nextProps)\n return false\n }\n\n return true\n }\n\n getData (props) {\n const { currentRepositoryKey } = props\n if (!currentRepositoryKey) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.webhooks({\n repository: currentRepositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n const webhooks = data.data\n webhooks.map((item, index) => {\n item.events = this.getEvents(item.events)\n return true\n })\n this.setState({\n pending: false,\n webhooks: webhooks\n })\n }\n })\n }\n\n getWebhookLogs (rwKey) {\n if (!rwKey) {\n return false\n }\n\n RepositoryData.getRepositoryWebhookLogs({ webhook: rwKey })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.setState({ webhookLogs: data.data })\n }\n })\n }\n\n editWebhook () {\n const { intl, currentRepositoryKey } = this.props\n const { pending, isShowWebhookForm, trigger, url, secret, webhook, edit, active } = this.state\n if (pending || !isShowWebhookForm || !this.checkInput()) {\n return false\n }\n\n const events = trigger === '1' ? this.state.pushEvent : this.getCheckedEvents()\n if (!events) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.webhookEventsNeed' })\n , 1)\n )\n }\n\n this.setState({ pending: true })\n RepositoryData.editWebhook({\n repository: currentRepositoryKey,\n rwKey: webhook ? webhook.id : '',\n url: url,\n secret: secret,\n events: events,\n active: active\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.setState({ pending: false })\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: edit ? 'message.updated' : 'message.created' })\n , 0)\n )\n this.initData()\n this.setState({ isShowWebhookForm: false })\n this.getData(this.props)\n }\n })\n }\n\n updateWebhook (webhook) {\n const { currentRepositoryKey } = this.props\n\n if (!currentRepositoryKey) {\n return false\n }\n\n this.setState({ pending: true })\n RepositoryData.getWebhook({\n repository: currentRepositoryKey,\n rwKey: webhook.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n const webhook = data.data\n this.setState({\n pending: false,\n edit: true,\n webhook: webhook,\n isShowWebhookForm: true,\n url: webhook.url,\n secret: webhook.secret,\n trigger: webhook.events === this.state.pushEvent ? '1' : '2',\n events: this.getEvents(webhook.events),\n active: webhook.active\n })\n }\n })\n }\n\n deleteWebhook (webhook) {\n const { currentRepositoryKey, intl } = this.props\n this.props.dispatchEvent(EventGenerator.addComformation('delete_webhook', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.webhook' }) }),\n description: '',\n reject: () => { return true },\n accept: () => {\n RepositoryData.deleteWebhook({\n repository: currentRepositoryKey,\n rwKey: webhook.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.deleted' })\n , 0)\n )\n this.getData(this.props)\n }\n })\n }\n }))\n }\n\n getTableData () {\n const { classes, intl } = this.props\n const { webhooks } = this.state\n const final = []\n webhooks.map((item) => {\n let eventCount = 0\n final.push([\n \n
\n
,\n {item.user},\n \n copyToClipboard(item.url, () => this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'label.copied' }), 0)))}\n >\n {item.url.substr(0, 40)}\n \n ,\n \n copyToClipboard(item.secret, () => this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'label.copied' }), 0)))}\n >\n {item.secret.substr(0, 20)}\n \n ,\n \n {item.events.map((item, index) => {\n if (item.checked) {\n eventCount++\n if (eventCount === 4) {\n return '...'\n } else if (eventCount > 4) {\n return ''\n } else {\n return (typeof item.title === 'string'\n ? intl.formatMessage({ id: item.title })\n : intl.formatMessage(\n { id: item.title[0] },\n { s: intl.formatMessage({ id: item.title[1] }) }\n )) + '; '\n }\n }\n return ''\n })}\n ,\n ,\n \n this.updateWebhook(item)} />\n this.deleteWebhook(item)} />\n this.getWebhookLogs(item.id)} />\n \n ])\n return true\n })\n\n return [\n ['10px', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto'],\n ['', 'label.creator', 'label.url', 'label.webhookSecret', 'label.webhookTrigger', 'label.updateTime', ''],\n ...final\n ]\n }\n\n initData () {\n this.setState({\n edit: false,\n webhook: null,\n url: '',\n secret: '',\n trigger: '1',\n events: JSON.parse(JSON.stringify(Events)),\n active: '1'\n })\n }\n\n getEvents (events) {\n const tmpEvents = JSON.parse(JSON.stringify(Events))\n events = events.split(',')\n tmpEvents.map((item) => {\n if (events.indexOf(item.event) > -1) {\n item.checked = true\n } else {\n item.checked = false\n }\n return true\n })\n\n return tmpEvents\n }\n\n changeEvent (e) {\n const { events } = this.state\n let checked = false\n if (e.target.checked) {\n checked = true\n }\n\n events.map((item) => {\n if (item.event === e.target.value) {\n item.checked = checked\n }\n return true\n })\n this.setState({\n events: events\n })\n }\n\n getCheckedEvents () {\n const { events } = this.state\n const checkedEvents = []\n events.map((item) => {\n if (item.checked) {\n checkedEvents.push(item.event)\n }\n return true\n })\n\n return checkedEvents.join(',')\n }\n\n render () {\n const { classes, intl } = this.props\n const { pending, webhooks, webhookLogs, isShowWebhookForm, url, secret, trigger, events, edit, active, error } = this.state\n\n return (\n \n \n {intl.formatMessage({ id: 'label.webhookSetting' })}\n {!isShowWebhookForm && this.setState({ isShowWebhookForm: true })}\n >\n {intl.formatMessage({ id: 'label.createWebhook' })}\n }\n \n \n\n {isShowWebhookForm && \n \n {intl.formatMessage({ id: edit ? 'label.updateWebhook' : 'label.createWebhook' })}\n \n \n \n \n \n \n {intl.formatMessage({ id: 'label.url' })} *\n \n \n this.setState({ url: e.target.value })}\n />\n \n \n {intl.formatMessage({ id: 'label.contentType' })}\n \n \n application/json\n \n \n \n {intl.formatMessage({ id: 'label.webhookSecret' })}\n  \n \n \n \n \n this.setState({ secret: e.target.value })}\n />\n \n \n {intl.formatMessage({ id: 'label.webhookTrigger' })}\n \n \n this.setState({ trigger: e.target.value })}>\n } label={intl.formatMessage({ id: 'label.pushTrigger' })} />\n } label={\n \n {intl.formatMessage({ id: 'label.customeTrigger' })}\n  \n \n } />\n \n \n {trigger === '2' && \n \n \n {events.map((item, index) => {\n return item.divider\n ? {intl.formatMessage({ id: item.title })}\n : this.changeEvent(e)} value={item.event} />}\n label={\n typeof item.title === 'string'\n ? intl.formatMessage({ id: item.title })\n : intl.formatMessage(\n { id: item.title[0] },\n { s: intl.formatMessage({ id: item.title[1] }) }\n )\n }\n />\n })}\n \n \n }\n\n \n {intl.formatMessage({ id: 'label.status' })}\n \n \n { this.setState({ active: e.target.value }) }} row>\n } label={intl.formatMessage({ id: 'label.enable' })} />\n } label={intl.formatMessage({ id: 'label.disable' })} />\n \n \n\n \n {\n edit && this.initData()\n this.setState({ isShowWebhookForm: false })\n }}\n >\n {intl.formatMessage({ id: 'label.cancel' })}\n \n this.editWebhook()}\n >\n {pending && }\n {intl.formatMessage({ id: edit ? 'label.update' : 'label.create' })}\n \n \n \n \n \n \n }\n\n {!isShowWebhookForm && \n \n \n {intl.formatMessage({ id: 'label.webhookList' })}\n \n {webhooks\n ? webhooks.length > 0\n ? \n \n \n : \n {intl.formatMessage({ id: 'message.webhookListEmpty' })}\n \n : \n \n \n }\n \n {\n webhookLogs && \n \n \n {intl.formatMessage({ id: 'label.webhookLog' })}  \n ({intl.formatMessage({ id: 'message.show_n_record' }, { n: 30 })})\n \n \n \n \n }\n }\n )\n }\n}\n\nRepositorySettingWebhook.propTypes = {\n currentRepositoryKey: PropTypes.string.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingWebhook)\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport { injectIntl } from 'react-intl'\nimport Constants from 'APPSRC/config/Constants'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\n\n// style\nconst styles = theme => ({\n avatar: {\n width: theme.spacing(4),\n height: theme.spacing(4)\n },\n userName: {\n lineHeight: theme.spacing(4) + 'px'\n }\n})\n\nclass Member extends React.Component {\n render () {\n const { currentUserInfo, item, classes, intl } = this.props\n\n return (\n \n \n \n \n \n {item.name}  \n {currentUserInfo.id === item.id && }\n \n \n )\n }\n}\n\nMember.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n item: PropTypes.object,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Member)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\nimport ListSubheader from '@material-ui/core/ListSubheader'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Divider from '@material-ui/core/Divider'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plTrash } from '@pgyer/icons'\nimport { injectIntl } from 'react-intl'\nimport Member from 'APPSRC/components/unit/Member'\nimport UAC from 'APPSRC/config/UAC'\nimport TableCell from '@material-ui/core/TableCell'\n\n// style\nconst styles = theme => ({\n padding: {\n paddingRight: theme.spacing(1)\n },\n underline: {\n '&&&:before': {\n borderBottom: 'none'\n },\n '&&:after': {\n borderBottom: 'none'\n }\n },\n backgroundColor: {\n '&&&:focus': {\n backgroundColor: 'none'\n }\n },\n deleteMember: {\n color: theme.palette.error.main\n },\n split: {\n margin: theme.spacing(1) + 'px 0px'\n },\n disabled: {\n '& svg': {\n opacity: 0\n }\n }\n})\n\nclass MemberItem extends React.Component {\n update (data) {\n if (typeof data === 'number') {\n this.props.onUpdate(data)\n } else {\n this.props.onRemove(data)\n }\n }\n\n render () {\n let { item, intl, disabled, classes, removeable } = this.props\n disabled = disabled || item.creatorFlag || item.deleteFlag\n\n return (\n \n \n \n \n {item.email}\n \n \n e.target.value && this.update(e.target.value)}\n align='right'\n InputProps={{ classes: { underline: classes.underline } }}\n >\n {intl.formatMessage({ id: 'label.role' })}\n {intl.formatMessage({ id: 'label.guest' })}\n {intl.formatMessage({ id: 'label.reporter' })}\n {intl.formatMessage({ id: 'label.developer' })}\n {intl.formatMessage({ id: 'label.maintianer' })}\n {intl.formatMessage({ id: 'label.owner' })}\n {removeable && }\n {removeable && \n \n   {intl.formatMessage({ id: 'label.removeMember' })}\n }\n \n \n )\n }\n}\n\nMemberItem.propTypes = {\n item: PropTypes.object,\n disabled: PropTypes.bool,\n onUpdate: PropTypes.func,\n onRemove: PropTypes.func,\n removeable: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MemberItem)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Paper from '@material-ui/core/Paper'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport MemberItem from 'APPSRC/components/unit/MemberItem'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport UAC from 'APPSRC/config/UAC'\n\n// helpers\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n textMain: {\n '& a': {\n color: theme.palette.text.main + ' !important'\n }\n },\n textLight: {\n '& a': {\n color: theme.palette.text.light + ' !important'\n }\n },\n empty: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n tableRow: {\n height: theme.spacing(7)\n }\n})\n\nclass MemberList extends React.Component {\n deleteConfirm (data, name) {\n const { intl, removeMember, isRepository, currentConfig } = this.props\n this.props.dispatchEvent(EventGenerator.addComformation('branch_remove', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.member' }) + ' \\'' + name + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => {\n removeMember(\n isRepository ? currentConfig.repository.id : currentConfig.group.id,\n data\n )\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n }))\n }\n\n render () {\n const {\n intl,\n classes,\n currentConfig,\n changeMemberRole,\n isRepository,\n groupMember,\n currentUserInfo\n } = this.props\n const members = groupMember\n ? currentConfig.members.filter(FilterGenerator.notDeleted()).filter(FilterGenerator.groupMember())\n : currentConfig.members.filter(FilterGenerator.notDeleted()).filter(FilterGenerator.notGroupMember())\n const yourself = currentConfig.members.filter(FilterGenerator.id(currentUserInfo.id))[0]\n return (\n { currentConfig\n ? \n \n \n \n { groupMember ? intl.formatMessage({ id: 'label.groupMember' }) : intl.formatMessage({ id: 'label.repositoryMember' })}\n {intl.formatMessage({ id: 'label.email' })}\n {intl.formatMessage({ id: 'label.role' })} \n \n \n \n { members\n .map((item, key) => {\n return changeMemberRole(\n isRepository ? currentConfig.repository.id : currentConfig.group.id,\n item.id,\n data\n )}\n removeable={isRepository ? !groupMember : groupMember}\n onRemove={data => this.deleteConfirm(data, item.name)}\n />\n })\n }\n \n
\n
\n : \n {intl.formatMessage({ id: 'message.repositoryEmpty' })}\n \n }\n
\n )\n }\n}\n\nMemberList.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n currentConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n changeMemberRole: PropTypes.func.isRequired,\n removeMember: PropTypes.func.isRequired,\n isRepository: PropTypes.bool.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n groupMember: PropTypes.bool.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MemberList)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport TextField from '@material-ui/core/TextField'\nimport Button from '@material-ui/core/Button'\nimport MemberList from 'APPSRC/components/unit/MemberList'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginRight: theme.spacing(2)\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n marginBottom: {\n marginBottom: theme.spacing(4)\n }\n})\n\nclass RepositorySettingMembers extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n groupConfig: {},\n email: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n passPattern: /^.+@[^.]+\\..+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0407,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0408,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.canNotAddCreatorAsMember' }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.email !== nextState.email && nextState.email.length === 0) {\n this.setState({\n error: {}\n })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n addMembers () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id,\n email: this.state.email\n }\n\n this.setState({ pending: true })\n RepositoryData.addMember(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false, email: '' })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.Added' })\n , 0)\n )\n this.reloadRepositoryData()\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.AddFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n changeMemberRole (rKey, uKey, roleID) {\n const data = {\n repository: rKey,\n userID: uKey,\n roleID\n }\n\n RepositoryData.changeMemberRole(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadRepositoryData()\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n })\n }\n\n removeMember (rKey, uKey) {\n const data = {\n repository: rKey,\n userID: uKey\n }\n\n RepositoryData.removeMember(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.removed' })\n , 0)\n )\n this.reloadRepositoryData()\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.removeFail' })\n , 2)\n )\n }\n })\n }\n\n reloadRepositoryData () {\n RepositoryData.config({ rKey: this.props.currentRepositoryConfig.repository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, classes, intl } = this.props\n\n return (\n \n \n this.setState({ email: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.addMembers()\n }\n }}\n variant='outlined'\n placeholder={intl.formatMessage({ id: 'message.plsInputInvitedEmail' })}\n />\n \n \n this.addMembers()}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? [, ' ']\n : ''\n }\n {intl.formatMessage({ id: 'label.inviteMember' })}\n \n \n \n \n {\n currentRepositoryConfig.repository\n ? \n this.changeMemberRole(e, e1, e2)}\n removeMember={(e, e1) => this.removeMember(e, e1)}\n isRepository={Boolean(true)}\n groupMember={Boolean(false)}\n />\n \n : \n \n \n }\n \n \n { currentRepositoryConfig.members\n ? currentRepositoryConfig.members.filter(FilterGenerator.notDeleted()).filter(FilterGenerator.groupMember()).length > 0 &&\n \n this.changeMemberRole(e, e1, e2)}\n removeMember={(e, e1) => this.removeMember(e, e1)}\n isRepository={Boolean(true)}\n groupMember={Boolean(true)}\n />\n \n : \n \n \n }\n \n )\n }\n}\n\nRepositorySettingMembers.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingMembers)\n )\n )\n)\n","import APIRequest from 'APPSRC/data_providers/main'\n\nfunction list () {\n return APIRequest.GET('/api/group/list')\n}\n\nfunction create (data) {\n return APIRequest.POST('/api/group/create', data)\n}\n\nfunction config (data) {\n return APIRequest.GET('/api/group/config', null, data)\n}\n\nfunction mergeRequests (data) {\n return APIRequest.GET('/api/group/mergeRequests', null, data)\n}\n\nfunction activities (data) {\n return APIRequest.GET('/api/group/activities', null, data)\n}\n\nfunction uploadAvatar (data) {\n return APIRequest.POST('/api/group/uploadAvatar', data)\n}\n\nfunction update (data) {\n return APIRequest.POST('/api/group/update', data)\n}\n\nfunction addMember (data) {\n return APIRequest.POST('/api/group/addMember', data)\n}\n\nfunction changeMemberRole (data) {\n return APIRequest.POST('/api/group/changeMemberRole', data)\n}\n\nfunction removeMember (data) {\n return APIRequest.POST('/api/group/removeMember', data)\n}\n\nfunction changeOwner (data) {\n return APIRequest.POST('/api/group/changeOwner', data)\n}\n\nfunction updateName (data) {\n return APIRequest.POST('/api/group/updateName', data)\n}\n\nfunction deleteGroup (data) {\n return APIRequest.POST('/api/group/deleteGroup', data)\n}\n\nexport default {\n list,\n create,\n config,\n mergeRequests,\n activities,\n uploadAvatar,\n update,\n addMember,\n changeMemberRole,\n removeMember,\n changeOwner,\n updateName,\n deleteGroup\n}\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faFile } from '@fortawesome/free-solid-svg-icons'\nimport { plTrash } from '@pgyer/icons'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Member from 'APPSRC/components/unit/Member'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(4),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n section: {\n marginTop: theme.spacing(3)\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginRight: theme.spacing(2)\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n warning: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText\n }\n})\n\nconst StyledMenuItem = withStyles(theme => ({\n root: {\n minHeight: theme.spacing(6)\n }\n}))(MenuItem)\n\nclass RepositorySettingAdvanced extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n groupConfig: {},\n slug: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0401,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.repositorySlug' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (nextState.slug === '' && nextProps.currentRepositoryConfig.repository) {\n this.setState({ slug: nextProps.currentRepositoryConfig.repository.name })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n this.setState({ slug: '' })\n }\n\n deleteRepository () {\n this.props.dispatchEvent(EventGenerator.addComformation('repository_delete_repository', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.repositoryDeleteRepositoryNotice' }),\n reject: () => { return true },\n accept: () => {\n this.deleteRepositoryConfirmed()\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n }))\n }\n\n deleteRepositoryConfirmed () {\n this.props.dispatchEvent(EventGenerator.addComformation('repository_delete_repository_confirm', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperationConfirm' }),\n description: this.props.intl.formatMessage({ id: 'message.repositoryDeleteRepositoryConfirmNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id\n }\n this.setState({ pending: true })\n RepositoryData.deleteRepository(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadRepositoryGroupList()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.deleted' })\n , 0)\n )\n this.props.history.push(makeLink('repositories'))\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.deleteFail' })\n , 0)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n this.setState({ pending: false })\n })\n }\n }))\n }\n\n changeSlug () {\n if (!this.checkInput()) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('repository_change_slug', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.repositoryChangeURLNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id,\n name: this.state.slug\n }\n this.setState({ pending: true })\n RepositoryData.updateName(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadRepositoryData()\n this.reloadRepositoryGroupList()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.props.history.push(makeLink('repositories'))\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n }))\n }\n\n changeOwner (userID) {\n this.props.dispatchEvent(EventGenerator.addComformation('repository_change_creator', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.repositoryChangeCreatorNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n repository: this.props.currentRepositoryConfig.repository.id,\n userID\n }\n this.setState({ pending: true })\n RepositoryData.changeOwner(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadRepositoryData()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updateFail' })\n , 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n this.setState({ pending: false })\n })\n }\n }))\n }\n\n reloadRepositoryData () {\n RepositoryData.config({ rKey: this.props.currentRepositoryConfig.repository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n }\n })\n }\n\n reloadRepositoryGroupList () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, currentUserInfo, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'label.repositoryAdvancedSetting' }) }\n \n \n { currentRepositoryConfig.repository\n ? \n \n \n { intl.formatMessage({ id: 'label.updateCreator' }) }\n \n \n \n this.changeOwner(e.target.value)}\n >\n { currentRepositoryConfig.members.map((item, key) => {\n return (\n \n )\n }) }\n \n \n \n \n { intl.formatMessage({ id: 'label.updateRepositoryURL' }) }\n \n \n \n \n \n \n {NetworkHelper.getHost(currentUserInfo)}/{currentRepositoryConfig.group.name}/\n \n }}\n onChange={(e) => {\n const slug = NetworkHelper.makeSlug(e.target.value)\n this.setState({ slug })\n }}\n />\n \n \n this.changeSlug()}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? \n : \n }\n   {intl.formatMessage({ id: 'label.save' })}\n \n \n \n \n { intl.formatMessage({ id: 'label.deleteRepository' }) }\n \n \n \n \n { intl.formatMessage({ id: 'message.repositoryDeleteTipFirst' }) }\n \n \n { intl.formatMessage({ id: 'message.repositoryDeleteTipSecond' }) }\n \n \n \n this.deleteRepository()}\n className={classes.warning}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? \n : \n }\n   {intl.formatMessage({ id: 'label.deleteRepository' })}\n \n \n \n \n \n : \n \n }\n )\n }\n}\n\nRepositorySettingAdvanced.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositorySettingAdvanced)\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\nimport Typography from '@material-ui/core/Typography'\nimport Divider from '@material-ui/core/Divider'\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plRepository, plMember, plSetting } from '@pgyer/icons'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// style\nconst styles = theme => ({\n card: {\n cursor: 'pointer',\n transition: theme.transitions.create('box-shadow'),\n boxShadow: theme.boxShadow.card,\n '&:hover': {\n boxShadow: theme.boxShadow.cardHover\n }\n },\n content: {\n padding: theme.spacing(3),\n paddingBottom: theme.spacing(2)\n },\n icon: {\n width: theme.spacing(6),\n height: theme.spacing(6)\n },\n title: {\n maxWidth: theme.spacing(16),\n overflow: 'hidden'\n },\n ownerMarker: {\n lineHeight: theme.spacing(3) + 'px'\n },\n description: {\n height: theme.spacing(1.5),\n lineHeight: theme.spacing(1.5) + 'px'\n },\n avatar: {\n marginRight: theme.spacing(1),\n width: theme.spacing(3),\n height: theme.spacing(3)\n }\n})\n\nclass GroupCard extends Component {\n render () {\n const { classes, theme, history, groupInfo, repositoryList, intl } = this.props\n return { history.push(makeLink('groups', groupInfo.name)) }}\n >\n \n \n \n \n \n { groupInfo.icon\n ? \n : {groupInfo.name.substr(0, 1).toUpperCase()}\n }\n \n \n \n {groupInfo.displayName}\n \n \n \n \n \n \n \n \n {\n ev.stopPropagation()\n history.push(makeLink('groups', groupInfo.name, 'settings'))\n }}\n />\n \n \n \n { groupInfo.description || '...' }\n \n \n \n \n  \n { repositoryList.filter(FilterGenerator.group(groupInfo.id)).length }     \n  \n { groupInfo.members.length }\n \n \n \n \n \n \n { groupInfo.members.map((item, key) => {\n return item.icon\n ? \n : {item.name.substr(0, 1).toUpperCase()}\n }) }\n \n \n \n \n }\n}\n\nGroupCard.propTypes = {\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n groupInfo: PropTypes.object,\n repositoryList: PropTypes.array.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupCard)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport GroupCard from 'APPSRC/components/unit/GroupCard'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport UAC from 'APPSRC/config/UAC'\n\nconst styles = (theme) => ({\n container: {\n minWidth: theme.spacing(40)\n }\n})\n\nclass GroupList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n currentTab: 0\n }\n }\n\n render () {\n const { groupList, currentUserInfo, classes, intl } = this.props\n const tabs = [\n intl.formatMessage({ id: 'label.all' }),\n intl.formatMessage({ id: 'label.IJoined' }),\n intl.formatMessage({ id: 'label.ICreated' })\n ]\n const tabsFilter = [\n () => true,\n FilterGenerator.not(FilterGenerator.creator(currentUserInfo.id)),\n FilterGenerator.creator(currentUserInfo.id)\n ]\n\n const finalList = groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.REPO_READ))\n .filter(tabsFilter[this.state.currentTab])\n\n return \n \n {\n this.setState({ currentTab: tab })\n }}\n >\n {\n this.props.history.push(makeLink('groups', 'new'))\n }}\n >\n { intl.formatMessage({ id: 'label.newGroup' }) }\n \n \n \n { finalList\n .map((item, key) => \n \n ) }\n { finalList.length === 0 && \n {\n this.props.history.push(makeLink('groups', 'new'))\n }}\n >\n { intl.formatMessage({ id: 'label.newGroup' }) }\n \n }\n \n }\n}\n\nGroupList.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n groupList: PropTypes.array.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n groupList: state.DataStore.groupList,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(GroupList)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport TextField from '@material-ui/core/TextField'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport GroupConfig from 'APPSRC/config/Group'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faPlus,\n faUndo\n} from '@fortawesome/free-solid-svg-icons'\nimport Button from '@material-ui/core/Button'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginLeft: theme.spacing(2)\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n }\n})\n\nclass newRepositoryFork extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n personalGroupCreateFlag: false,\n groupList: null,\n groupListChecked: false,\n name: '',\n slug: '',\n description: '',\n error: {}\n }\n\n this.observed = {\n forkRepositoryInfo: ''\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^[0-9a-zA-Z\\\\._-]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_has_illegal_character' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupURL' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupSlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'description',\n passPattern: /^.{0,200}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 200 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0403,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.groupURL' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0404,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n this.setState({ groupList: data.data })\n }\n })\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (nextProps.currentUserInfo && nextProps.currentUserInfo.id && nextState.groupList !== null && !nextState.groupListChecked) {\n const personalGroups = nextState.groupList\n .filter(FilterGenerator.creator(nextProps.currentUserInfo.id))\n .filter(FilterGenerator.userGroup())\n\n if (personalGroups.length) {\n this.setState({\n groupListChecked: true,\n personalGroupCreateFlag: false,\n pending: false\n })\n } else {\n const userData = nextProps.currentUserInfo.email.split('@')\n this.setState({\n groupListChecked: true,\n personalGroupCreateFlag: true,\n pending: false,\n name: userData[0],\n slug: NetworkHelper.makeSlug(userData[0])\n })\n }\n }\n\n if (this.state.description !== nextState.description && nextState.description.length < 201) {\n this.setState({\n error: {}\n })\n return false\n }\n\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n createGroup () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n name: this.state.slug,\n type: this.state.personalGroupCreateFlag ? GroupConfig.Type.USER : GroupConfig.Type.NORMAL,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n GroupData.create(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const groupData = data.data\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n this.props.history.push(makeLink('groups', groupData.name))\n }\n })\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createGroupFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n render () {\n const { classes, intl, currentUserInfo } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'label.newGroup' }) }\n \n \n \n \n { this.state.groupList !== null\n ? \n \n \n { this.state.personalGroupCreateFlag && \n \n {intl.formatMessage({ id: 'message.createPersonalGroupNotice' })}\n \n }\n \n { intl.formatMessage({ id: 'label.groupName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n const error = {}\n this.setState({ name, slug, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.groupURL' }) }\n \n \n {NetworkHelper.getHost(currentUserInfo)}/\n }}\n onChange={(e) => {\n const slug = NetworkHelper.makeSlug(e.target.value)\n this.setState({ slug })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.groupDescription' }) }\n \n \n this.setState({ description: e.target.value })}\n />\n \n \n \n \n 200 ? classes.outRange : ''}\n >\n {this.state.description.length}/200\n \n \n \n \n \n \n \n \n \n \n \n \n : \n \n \n \n }\n \n \n )\n }\n}\n\nnewRepositoryFork.propTypes = {\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(newRepositoryFork)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport TextField from '@material-ui/core/TextField'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Button from '@material-ui/core/Button'\nimport AvatarUploader from 'APPSRC/components/unit/AvatarUploader'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport Constants from 'APPSRC/config/Constants'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(1),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginLeft: theme.spacing(2)\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n }\n})\n\nclass GroupSettingGeneral extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n name: '',\n description: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^[0-9a-zA-Z\\\\._-]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_has_illegal_character' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n },\n {\n name: 'description',\n passPattern: /^.{0,200}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 200 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'name',\n exceptionCode: 0x0404,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.groupName' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n if (this.props.currentGroupConfig.group) {\n this.setState({\n name: this.props.currentGroupConfig.group.displayName,\n description: this.props.currentGroupConfig.group.description\n })\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(nextProps.currentGroupConfig) !== JSON.stringify(this.props.currentGroupConfig) &&\n nextProps.currentGroupConfig.group\n ) {\n this.setState({\n name: nextProps.currentGroupConfig.group.displayName,\n description: nextProps.currentGroupConfig.group.description\n })\n return false\n }\n\n if (this.state.description !== nextState.description && nextState.description.length < 201) {\n this.setState({\n error: {}\n })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n updateGroup () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n group: this.props.currentGroupConfig.group.id,\n displayName: this.state.name,\n description: this.state.description\n }\n\n this.setState({ pending: true })\n GroupData.update(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadGroupData()\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n avatarUploaded (data) {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadGroupData()\n }\n }\n\n reloadGroupData () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n }\n })\n\n GroupData.config({ gKey: this.props.currentGroupConfig.group.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentGroupConfig, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'menu.general' }) }\n \n \n \n { currentGroupConfig.group\n ? \n \n \n { intl.formatMessage({ id: 'label.groupAvatar' }) }\n \n \n \n this.avatarUploaded(data)}\n dataProvider={GroupData.uploadAvatar}\n />\n \n \n \n \n \n { intl.formatMessage({ id: 'label.groupName' }) }\n \n \n {\n const name = e.target.value\n const slug = NetworkHelper.makeSlug(name)\n const error = {}\n this.setState({ name, slug, error })\n }}\n />\n \n \n { intl.formatMessage({ id: 'label.groupDescription' }) }\n \n \n this.setState({\n description: e.target.value\n })}\n />\n \n \n \n \n 200 ? classes.outRange : ''}\n >\n {this.state.description.length}/200\n \n \n \n \n \n \n \n \n \n \n \n \n : \n \n \n \n }\n \n )\n }\n}\n\nGroupSettingGeneral.propTypes = {\n history: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupConfig: state.DataStore.currentGroupConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupSettingGeneral)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport TextField from '@material-ui/core/TextField'\nimport Button from '@material-ui/core/Button'\nimport MemberList from 'APPSRC/components/unit/MemberList'\nimport { injectIntl } from 'react-intl'\n\nconst styles = (theme) => ({\n btn: {\n marginRight: theme.spacing(2)\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n marginBottom: {\n marginBottom: theme.spacing(4)\n }\n})\n\nclass GroupSettingMembers extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n groupConfig: {},\n email: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'email',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n passPattern: /^.+@[^.]+\\..+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'email',\n exceptionCode: 0x0407,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.email' }) }\n )\n },\n {\n name: 'email',\n exceptionCode: 0x0408,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.canNotAddCreatorAsMember' }\n )\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.email !== nextState.email && nextState.email.length === 0) {\n this.setState({\n error: {}\n })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n addMembers () {\n if (!this.checkInput()) {\n return true\n }\n\n const data = {\n group: this.props.currentGroupConfig.group.id,\n email: this.state.email\n }\n\n this.setState({ pending: true })\n GroupData.addMember(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ pending: false, email: '' })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.Added' })\n , 0)\n )\n this.reloadGroupData()\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.AddFail' })\n , 2)\n )\n this.setState({ pending: false })\n }\n })\n\n return true\n }\n\n changeMemberRole (gKey, uKey, roleID) {\n const data = {\n group: gKey,\n userID: uKey,\n roleID\n }\n\n GroupData.changeMemberRole(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.reloadGroupData()\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n })\n }\n\n removeMember (gKey, uKey) {\n const data = {\n group: gKey,\n userID: uKey\n }\n\n GroupData.removeMember(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.removed' })\n , 0)\n )\n this.reloadGroupData()\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.removeFail' })\n , 2)\n )\n }\n })\n }\n\n reloadGroupData () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n GroupData.config({ gKey: this.props.currentGroupConfig.group.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentGroupConfig, classes, intl } = this.props\n\n return (\n \n \n this.setState({ email: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.addMembers()\n }\n }}\n variant='outlined'\n placeholder={intl.formatMessage({ id: 'message.plsInputInvitedEmail' })}\n />\n \n \n this.addMembers()}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? [, ' ']\n : ''\n }\n {intl.formatMessage({ id: 'label.inviteMember' })}\n \n \n \n \n { currentGroupConfig.group\n ? \n this.changeMemberRole(e, e1, e2)}\n removeMember={(e, e1) => this.removeMember(e, e1)}\n isRepository={Boolean(false)}\n groupMember={Boolean(true)}\n />\n \n : \n \n \n }\n \n )\n }\n}\n\nGroupSettingMembers.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupConfig: state.DataStore.currentGroupConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupSettingMembers)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Typography from '@material-ui/core/Typography'\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faFile, faTrash } from '@fortawesome/free-solid-svg-icons'\n\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport Button from '@material-ui/core/Button'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Member from 'APPSRC/components/unit/Member'\n\nconst styles = (theme) => ({\n header: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(1),\n borderBottom: '1px solid ' + theme.palette.border,\n fontSize: '18px'\n },\n section: {\n marginTop: theme.spacing(3)\n },\n paper: {\n padding: theme.spacing(2)\n },\n btn: {\n marginRight: theme.spacing(2)\n },\n warning: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText\n }\n})\n\nconst StyledMenuItem = withStyles(theme => ({\n root: {\n minHeight: theme.spacing(6)\n }\n}))(MenuItem)\n\nclass GroupSettingAdvanced extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: false,\n slug: '',\n error: {}\n }\n\n this.mountedFlag = false\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'slug',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.groupSlug' }) }\n )\n },\n {\n name: 'slug',\n passPattern: /^[0-9a-zA-z_]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.requireCombinationOfCharactersNumbersAndUnderscore' }\n )\n },\n {\n name: 'slug',\n passPattern: /^.{5,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.within_N1_to_N2_characters' },\n { n1: 5, n2: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'slug',\n exceptionCode: 0x0403,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.groupURL' }) }\n )\n },\n {\n exceptionCode: 0x0409,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.canNotDeleteUserGroup' })\n },\n {\n exceptionCode: 0x040A,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.canNotDeleteNonEmptyGroup' })\n },\n {\n exceptionCode: 0x040B,\n errorMessage: this.props.intl.formatMessage({ id: 'message.error.canNotChangeOwnerOfUserGroup' })\n }\n ])\n }\n\n componentDidMount () {\n this.mountedFlag = true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (nextState.slug === '' && nextProps.currentGroupConfig.group) {\n this.setState({ slug: nextProps.currentGroupConfig.group.name })\n return false\n }\n return true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n this.setState({ slug: '' })\n }\n\n deleteGroup () {\n this.props.dispatchEvent(EventGenerator.addComformation('group_delete_group', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.groupDeleteRepositoryNotice' }),\n reject: () => { return true },\n accept: () => {\n this.deleteGroupConfirmed()\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n }))\n }\n\n deleteGroupConfirmed () {\n this.props.dispatchEvent(EventGenerator.addComformation('group_delete_group_confirm', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperationConfirm' }),\n description: this.props.intl.formatMessage({ id: 'message.groupDeleteRepositoryConfirmNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n group: this.props.currentGroupConfig.group.id\n }\n this.setState({ pending: true })\n GroupData.deleteGroup(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadRepositoryGroupList()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.deleted' })\n , 0)\n )\n this.props.history.push(makeLink('groups'))\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.deleteFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n }))\n }\n\n changeSlug () {\n if (!this.checkInput()) {\n return false\n }\n\n this.props.dispatchEvent(EventGenerator.addComformation('group_change_slug', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.groupChangeURLNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n group: this.props.currentGroupConfig.group.id,\n name: this.state.slug\n }\n this.setState({ pending: true })\n GroupData.updateName(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadGroupData()\n this.reloadRepositoryGroupList()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n this.props.history.push(makeLink('groups'))\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.setState({ pending: false })\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n }))\n }\n\n changeOwner (userID) {\n this.props.dispatchEvent(EventGenerator.addComformation('group_change_creator', {\n title: this.props.intl.formatMessage({ id: 'label.dangerOperation' }),\n description: this.props.intl.formatMessage({ id: 'message.groupChangeCreatorNotice' }),\n reject: () => { return true },\n accept: () => {\n const data = {\n group: this.props.currentGroupConfig.group.id,\n userID\n }\n this.setState({ pending: true })\n GroupData.changeOwner(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.reloadGroupData()\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.updated' })\n , 0)\n )\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else if (data.code > 0x0400) {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.updateFail' })\n , 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n this.setState({ pending: false })\n })\n }\n }))\n }\n\n reloadGroupData () {\n GroupData.config({ gKey: this.props.currentGroupConfig.group.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: data.data })\n }\n })\n }\n\n reloadRepositoryGroupList () {\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n }\n })\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n }\n })\n }\n\n render () {\n const { currentGroupConfig, currentUserInfo, classes, intl } = this.props\n\n return (\n \n \n { intl.formatMessage({ id: 'label.groupAdvancedSetting' }) }\n \n \n \n { currentGroupConfig.group\n ? \n \n \n { intl.formatMessage({ id: 'label.updateCreator' }) }\n \n \n \n this.changeOwner(e.target.value)}\n >\n { currentGroupConfig.members.map((item, key) => {\n return (\n \n )\n }) }\n \n \n \n \n { intl.formatMessage({ id: 'label.updateGroupURL' }) }\n \n \n \n \n \n \n {NetworkHelper.getHost(currentUserInfo)}/\n \n }}\n onChange={(e) => {\n const slug = NetworkHelper.makeSlug(e.target.value)\n const error = {}\n this.setState({\n slug, error\n })\n }}\n />\n \n \n this.changeSlug()}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? \n : \n }\n   {intl.formatMessage({ id: 'label.save' })}\n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.deleteGroup' }) }\n \n \n \n this.deleteGroup()}\n className={classes.warning}\n disabled={this.state.pending}\n >\n { this.state.pending\n ? \n : \n }\n   {intl.formatMessage({ id: 'label.deleteGroup' })}\n \n \n \n : \n \n \n \n }\n \n )\n }\n}\n\nGroupSettingAdvanced.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupConfig: state.DataStore.currentGroupConfig,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupSettingAdvanced)\n )\n )\n)\n","import React from 'react'\nimport { Link } from 'react-router-dom'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\nfunction parser (config) {\n const code = config.item.type\n let members = []\n let user = {}\n\n if (config.currentGroupConfig.group) {\n members = config.currentGroupConfig.members\n } else if (config.currentRepositoryConfig.repository) {\n members = config.currentRepositoryConfig.members\n }\n\n user = members.filter(FilterGenerator.id(config.item.creator))[0]\n config.relatedGroup = config.groupList.filter(FilterGenerator.id(config.item.group))[0]\n config.relatedRepository = config.repositoryList.filter(FilterGenerator.id(config.item.repository))[0]\n\n if (!user) {\n user = {\n icon: null,\n id: config.item.creator,\n name: 'userID_' + config.item.creator.slice(0, 8)\n }\n }\n\n if (!config.relatedGroup) {\n config.relatedGroup = {\n id: config.item.group,\n displayName: 'groupID_' + config.item.group.slice(0, 8),\n name: null\n }\n }\n\n if (!config.relatedRepository) {\n config.relatedRepository = {\n id: config.item.repository,\n displayName: 'repositoryID_' + config.item.repository.slice(0, 8),\n name: null,\n group: config.relatedGroup\n }\n }\n\n if (code === 0x0201) {\n // group create\n const detail = config.relatedGroup.name\n ? \n {config.relatedGroup.displayName}\n \n : config.item.content.name\n\n return { user, action: config.formatter({ id: 'message.activity.createdGroup' }), detail }\n } else if (code === 0x0202) {\n // update group avatar\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateGroup_S_Avator' },\n { s: config.relatedGroup.displayName }\n ),\n detail: ''\n }\n } else if (code === 0x0203) {\n // update repository name\n const detail = \n { config.formatter(\n { id: 'label.updateFrom_S1_To_S2' },\n { s1: config.item.content.from, s2: config.item.content.to }\n ) }\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateGroup_S_Name' },\n { s: config.relatedGroup.displayName }\n ),\n detail\n }\n } else if (code === 0x0204) {\n // update repository description\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateGroup_S_Description' },\n { s: config.relatedGroup.displayName }\n ),\n detail: ''\n }\n } else if (code === 0x0205) {\n // add a new member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.addGroup_S_Memeber' },\n { s: config.relatedGroup.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0206) {\n // add a new member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n const roleName = config.formatter({ id: 'label.roleID_' + config.item.content.to })\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.changeGroup_S_MemebrRole' },\n { s: config.relatedGroup.displayName }\n ),\n detail: (memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')) + ': ' + roleName\n }\n } else if (code === 0x0207) {\n // remove a member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.removeGroup_S_Memebr' },\n { s: config.relatedGroup.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0208) {\n // set a member as creator\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.setGroup_S_Creator' },\n { s: config.relatedGroup.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0209) {\n // change group url\n const detail = \n { config.formatter(\n { id: 'label.updateFrom_S1_To_S2' },\n {\n s1: makeLink('groups', config.item.content.from),\n s2: makeLink('groups', config.item.content.to)\n }\n ) }\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.setGroup_S_URL' },\n { s: config.relatedGroup.displayName }\n ),\n detail\n }\n } else if (code === 0x0301) {\n // create repository\n const detail = config.relatedRepository.name && config.relatedGroup.name\n ? \n {config.relatedGroup.displayName}/{config.relatedRepository.displayName}\n \n : config.item.content.name\n\n return { user, action: config.formatter({ id: 'message.activity.createdRepository' }), detail }\n } else if (code === 0x0302) {\n // create repository via fork\n const repositoryLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n {config.relatedGroup.displayName}/{config.relatedRepository.displayName}\n \n : config.item.content.name\n\n const detail = \n {repositoryLink} {config.formatter({ id: 'label.forkFrom_S' }, { s: config.item.content.sourceName })}\n \n\n return { user, action: config.formatter({ id: 'message.activity.forkRepository' }), detail }\n } else if (code === 0x0303) {\n // update repository avatar\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateRepository_S_Avator' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: ''\n }\n } else if (code === 0x0304) {\n // update repository name\n const detail = \n { config.formatter(\n { id: 'label.updateFrom_S1_To_S2' },\n { s1: config.item.content.from, s2: config.item.content.to }\n ) }\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateRepository_S_Name' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0305) {\n // update repository description\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.updateRepository_S_Description' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: ''\n }\n } else if (code === 0x0306) {\n // add a new member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.addRepository_S_Memeber' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0307) {\n // add a new member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n const roleName = config.formatter({ id: 'label.roleID_' + config.item.content.to })\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.changeRepository_S_MemebrRole' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: (memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')) + ': ' + roleName\n }\n } else if (code === 0x0308) {\n // remove a member\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.removeRepository_S_Memebr' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x0309) {\n // set a member as creator\n const memberInfo = members.filter(FilterGenerator.id(config.item.content.uid))[0]\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.setRepository_S_Creator' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: memberInfo ? (memberInfo.name + ' <' + memberInfo.email + '>') : (config.item.content.name + ' <' + config.item.content.email + '>')\n }\n } else if (code === 0x030A) {\n // change repository url\n const detail = \n { config.formatter(\n { id: 'label.updateFrom_S1_To_S2' },\n {\n s1: makeLink(config.relatedGroup.name, config.item.content.from),\n s2: makeLink(config.relatedGroup.name, config.item.content.to)\n }\n ) }\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.setRepository_S_URL' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x030B) {\n // delete repository\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.deleteRepository' }\n ),\n detail: config.item.content.name\n }\n } else if (code === 0x0401) {\n // push to branch\n const branchLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const startHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.from.slice(0, 8) }\n \n : config.item.content.from.slice(0, 8)\n\n const endHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.to.slice(0, 8) }\n \n : config.item.content.to.slice(0, 8)\n\n const detail = \n {startHash} .. {endHash} -> {branchLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.pushTo_S_Branch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0402) {\n // push to new branch\n const branchLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const endHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.to.slice(0, 8) }\n \n : config.item.content.to.slice(0, 8)\n\n const detail = \n {endHash} -> {branchLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.pushTo_S_NewBranch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0403) {\n // create new branch\n const branchLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const detail = \n {config.formatter({ id: 'label.newBranch' })} {branchLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.created_S_NewBranch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0404) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_Branch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'label.deleteBranch' }) + ' ' + config.item.content.name\n }\n } else if (code === 0x0405) {\n // update default branch\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.update_S_DefaultBranch' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'message.updateDefaultBranch' })} \n {config.item.content.from && \n \n { config.item.content.from }\n -> \n \n }\n \n { config.item.content.to }\n \n \n }\n } else if (code === 0x0406) {\n // create protected branch rule\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.created_S_ProtectedBranchRule' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'message.createProtectedBranchRule' })} \n \n {config.item.content.name}\n \n \n }\n } else if (code === 0x0407) {\n // update protected branch rule\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.update_S_ProtectedBranchRule' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'message.updateProtectedBranchRule' })} \n \n {config.item.content.name}\n \n \n }\n } else if (code === 0x0408) {\n // delete protected branch rule\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_ProtectedBranchRule' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'message.deleteProtectedBranchRule' })} \n {config.item.content.name}\n \n }\n } else if (code === 0x0501) {\n // push to a tag\n const tagLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const startHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.from.slice(0, 8) }\n \n : config.item.content.from.slice(0, 8)\n\n const endHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.to.slice(0, 8) }\n \n : config.item.content.to.slice(0, 8)\n\n const detail = \n {startHash} .. {endHash} -> {tagLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.pushTo_S_Tag' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0502) {\n // push to a new tag\n const tagLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const endHash = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.to.slice(0, 8) }\n \n : config.item.content.to.slice(0, 8)\n\n const detail = \n {endHash} -> {tagLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.pushTo_S_NewTag' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0503) {\n // create a new tag\n const tagLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n { config.item.content.name }\n \n : config.item.content.name\n\n const detail = \n {config.formatter({ id: 'label.newTag' })} {tagLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.created_S_NewTag' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail\n }\n } else if (code === 0x0504) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_Tag' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'label.deleteTag' }) + ' ' + config.item.content.name\n }\n } else if (code === 0x0701) {\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n const detail = \n {config.formatter({ id: 'label.openMergeRequest' })} {mergeRequestLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.open_S_MergeRquest' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: detail\n }\n } else if (code === 0x0702) {\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n const detail = \n {config.formatter({ id: 'label.closeMergeRequest' })} {mergeRequestLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.close_S_MergeRquest' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: detail\n }\n } else if (code === 0x0703) {\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n const detail = \n {config.formatter({ id: 'label.mergeRequest' })} {mergeRequestLink}\n \n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.merge_S_MergeRquest' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: detail\n }\n } else if (code === 0x0704) {\n const reviewer = members.filter(FilterGenerator.id(config.item.content.reviewer))[0]\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.assign_S_Reviewer' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'message.assign_N_M_Reviewer' }, { n: reviewer.name, m: mergeRequestLink })\n }\n } else if (code === 0x0705) {\n const reviewer = members.filter(FilterGenerator.id(config.item.content.reviewer))[0]\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_Reviewer' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'message.delete_M_N_Reviewer' }, { n: reviewer.name, m: mergeRequestLink })\n }\n } else if (code === 0x0706) {\n const mergeRequestLink = config.relatedRepository.name && config.relatedGroup.name\n ? \n !{ config.item.content.id }\n \n : config.item.content.id\n\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.review_S_Reviewer' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: config.formatter({ id: 'message.review_M_Reviewer' }, { m: mergeRequestLink })\n }\n } else if (code === 0x0901) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.create_S_Webhook' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'label.createWebhook' })}\n \n }\n } else if (code === 0x0902) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.update_S_Webhook' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'label.updateWebhook' })}\n \n }\n } else if (code === 0x0903) {\n return {\n user,\n action: config.formatter(\n { id: 'message.activity.delete_S_Webhook' },\n { s: config.relatedGroup.displayName + '/' + config.relatedRepository.displayName }\n ),\n detail: \n {config.formatter({ id: 'label.deleteWebhook' })}\n \n }\n }\n\n return {\n user,\n action: '',\n detail: ''\n }\n}\n\nexport default { parser }\n","import React from 'react'\n\nexport default function (options) {\n return function (WrappedComponent) {\n return class extends React.Component {\n constructor (props) {\n super(props)\n this.target = null\n this.cancel = null\n this.onScroll = this.onScroll.bind(this)\n this.state = {\n scrollTrigger: false\n }\n }\n\n componentDidMount () {\n if (options.watching) {\n this.cancel && this.cancel()\n this.target = document.querySelector(options.watching)\n this.cancel = function () { this.target.removeEventListener('scroll', this.onScroll) }\n this.target.addEventListener('scroll', this.onScroll)\n this.onScroll({ target: this.target })\n }\n }\n\n componentWillUnmount () {\n this.cancel && this.cancel()\n this.cancel = null\n this.target = null\n }\n\n onScroll (ev) {\n const scrollAmount = ev.target.pageYOffset || ev.target.scrollTop\n if (scrollAmount > options.threshold && !this.state.scrollTrigger) {\n this.setState({ scrollTrigger: true })\n } else if (scrollAmount <= options.threshold && this.state.scrollTrigger) {\n this.setState({ scrollTrigger: false })\n }\n }\n\n render () {\n return \n }\n }\n }\n}\n","// core\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport { injectIntl } from 'react-intl'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport Activity from 'APPSRC/config/Activity'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n avatar: {\n width: theme.spacing(3),\n height: theme.spacing(3)\n },\n item: {\n border: '1px solid ' + theme.palette.border,\n marginBottom: '-1px',\n padding: theme.spacing(2) + 'px ' + theme.spacing(3) + 'px',\n '&:first-child': {\n borderRadius: '4px 4px 0px 0px'\n },\n '&:last-child': {\n borderRadius: '0px 0px 4px 4px'\n }\n },\n action: {\n lineHeight: theme.spacing(3) + 'px'\n },\n paddingRight2: {\n paddingRight: theme.spacing(2),\n lineHeight: theme.spacing(3) + 'px'\n }\n})\n\nclass ActivityItem extends React.Component {\n render () {\n const { item, groupList, currentGroupConfig, repositoryList, currentRepositoryConfig, intl, classes } = this.props\n\n const config = { item, groupList, repositoryList, currentGroupConfig, currentRepositoryConfig, formatter: intl.formatMessage }\n const parsedData = Activity.parser(config)\n\n return (\n \n \n \n \n \n \n \n {parsedData.user.name} {parsedData.action}\n {parsedData.detail} \n \n \n \n \n \n {intl.formatMessage({ id: 'label.editIn' })}: \n \n \n \n )\n }\n}\n\nActivityItem.propTypes = {\n item: PropTypes.object,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig,\n groupList: state.DataStore.groupList,\n currentGroupConfig: state.DataStore.currentGroupConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(ActivityItem)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport { plSearch } from '@pgyer/icons'\nimport ActivityItem from 'APPSRC/components/unit/ActivityItem'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\nconst styles = (theme) => ({\n input: {\n width: theme.spacing(30),\n maxWidth: '100%'\n },\n icon: {\n color: theme.palette.text.light\n },\n marginTop3: {\n marginTop: theme.spacing(3)\n }\n})\n\nclass ActivityList extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n activityList: [],\n page: 1,\n listFinshed: false,\n pending: true,\n category: 0,\n keyword: ''\n }\n\n this.observed = {\n keyword: ''\n }\n\n this.mountedFlag = false\n }\n\n componentDidMount () {\n this.setState({ page: 1, listFinshed: false, pending: true, activityList: [] })\n this.getData(this.props, this.state)\n this.mountedFlag = true\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // watch currentAppKey\n if (JSON.stringify(this.props.currentGroupConfig) !== JSON.stringify(nextProps.currentGroupConfig)) {\n this.setState({ page: 1, listFinshed: false, pending: true, activityList: [] })\n this.getData(nextProps, nextState)\n return false\n }\n\n // watch project list\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.setState({ page: 1, listFinshed: false, pending: true, activityList: [] })\n this.getData(nextProps, nextState)\n return false\n }\n\n if (this.state.page !== nextState.page && !nextState.pending) {\n this.setState({ pending: true })\n this.getData(nextProps, nextState)\n return false\n }\n\n if (this.state.category !== nextState.category) {\n this.setState({ pending: true, page: 1, activityList: [] })\n this.getData(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n getData (props, state) {\n this.observed.keyword = state.keyword\n if (props.currentRepositoryConfig.repository) {\n // load repository activities\n RepositoryData.activities({ repository: props.currentRepositoryKey, category: state.category, keyword: state.keyword, page: state.page, pagesize: 20 })\n .then(NetworkHelper.withEventdispatcher(props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const listFinshed = data.data.length < 20\n this.setState({ pending: false, activityList: [...this.state.activityList, ...data.data], listFinshed })\n }\n })\n } else if (props.currentGroupConfig.group) {\n // load group activities\n GroupData.activities({ group: props.currentGroupKey, category: state.category, keyword: state.keyword, page: state.page, pagesize: 20 })\n .then(NetworkHelper.withEventdispatcher(props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const listFinshed = data.data.length < 20\n this.setState({ pending: false, activityList: [...this.state.activityList, ...data.data], listFinshed })\n }\n })\n }\n }\n\n searchActivity () {\n if (this.observed.keyword !== this.state.keyword) {\n this.setState({ activityList: [] })\n this.getData(this.props, this.state)\n }\n }\n\n render () {\n const { intl, classes } = this.props\n const activityCategory = Constants.activityCategory\n const tabs = []\n tabs[activityCategory.all] = intl.formatMessage({ id: 'label.all' })\n tabs[activityCategory.commit] = intl.formatMessage({ id: 'label.commitActivity' })\n tabs[activityCategory.mergeRequest] = intl.formatMessage({ id: 'label.mergeRequestActivity' })\n tabs[activityCategory.member] = intl.formatMessage({ id: 'label.memberActivity' })\n\n return (\n \n \n this.setState({ category: newValue })}\n >\n this.setState({ keyword: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.searchActivity()\n }\n }}\n InputProps={{\n startAdornment: \n }}\n />\n \n \n \n \n { this.state.activityList.length > 0 && this.state.activityList\n .map((item, key) => {\n return \n })\n }\n \n \n \n { this.state.pending\n ? \n : this.state.listFinshed\n ? \n : \n }\n \n \n \n \n )\n }\n}\n\nActivityList.propTypes = {\n // match: PropTypes.object.isRequired,\n // dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n // currentGroupKey: PropTypes.string.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n // currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentGroupKey: state.DataStore.currentGroupKey,\n currentGroupConfig: state.DataStore.currentGroupConfig,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(ActivityList)\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter, Link } from 'react-router-dom'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Avatar from '@material-ui/core/Avatar'\nimport Paper from '@material-ui/core/Paper'\nimport Typography from '@material-ui/core/Typography'\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport Popover from '@material-ui/core/Popover'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n plFork,\n plFile,\n plCommit,\n plBranch,\n plMerge,\n plMember,\n plTag,\n plCopy\n} from '@pgyer/icons'\n\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\n\nimport { formatNumber, makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n content: {\n height: theme.spacing(15.5),\n boxSizing: 'border-box',\n borderBottom: '1px solid ' + theme.palette.border,\n borderRadius: 0\n },\n icon: {\n height: theme.spacing(5),\n width: theme.spacing(5)\n },\n text: {\n height: theme.spacing(3),\n lineHeight: theme.spacing(3) + 'px',\n overflow: 'hidden'\n },\n subtext: {\n paddingTop: theme.spacing(0.5),\n height: theme.spacing(1.5),\n lineHeight: theme.spacing(1.5) + 'px'\n },\n iconBar: {\n height: theme.spacing(3),\n lineHeight: theme.spacing(3) + 'px'\n },\n clonePopvoer: {\n width: theme.spacing(50) + 'px'\n },\n cloneContent: {\n padding: theme.spacing(2)\n },\n cloneHeader: {\n padding: '0px ' + theme.spacing(2) + 'px'\n },\n border: {\n '& button': {\n borderColor: theme.palette.border,\n padding: '2px ' + theme.spacing(2) + 'px'\n }\n },\n copy: {\n marginLeft: '2px',\n '& button': {\n position: 'relative',\n right: '-14px',\n borderLeft: '1px solid ' + theme.palette.border,\n borderRadius: '0px 4px 4px 0px'\n }\n }\n})\n\nclass RepositoryDashboard extends Component {\n constructor (props) {\n super(props)\n this.state = {\n popoverAnchor: null,\n popoverTab: 0\n }\n }\n\n render () {\n const { classes, repositoryConfig, intl, history, repositoryList, currentUserInfo } = this.props\n\n const forkRepositoryInfo = repositoryList\n .filter(FilterGenerator.id((repositoryConfig && repositoryConfig.repository && repositoryConfig.repository.forkFrom) || ''))[0]\n\n return (\n \n { repositoryConfig && repositoryConfig.repository && repositoryConfig.repository.id\n ? \n \n \n \n { repositoryConfig.repository.icon\n ? \n : {repositoryConfig.repository.name.substr(0, 1).toUpperCase()}\n }\n \n \n \n {repositoryConfig.group.displayName}/{repositoryConfig.repository.displayName}   \n { forkRepositoryInfo\n ? \n \n { intl.formatMessage({ id: 'label.forkFrom_S' }, {\n s: forkRepositoryInfo.group.displayName + '/' + forkRepositoryInfo.displayName\n }) }\n \n \n : '' }\n \n \n {repositoryConfig.repository.description}\n \n \n \n \n \n \n \n \n history.push(makeLink('repositories/fork', repositoryConfig.repository.id))\n }\n >\n \n   { intl.formatMessage({ id: 'label.fork' }) }\n \n history.push(makeLink('repositories/forklist', repositoryConfig.repository.id))\n }\n >\n { repositoryConfig.repository.forkCount }\n \n \n \n \n \n {\n this.state.popoverAnchor\n ? this.setState({ popoverAnchor: null })\n : this.setState({ popoverAnchor: e.currentTarget })\n }}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n \n \n {\n this.setState({ popoverTab: tab })\n }}\n />\n \n { this.state.popoverTab === 0 && \n \n {intl.formatMessage({ id: 'message.differenceBetweenHTTPSAndSSH' })}  \n \n \n \n {\n const dom = document.getElementById('repsoditory-http-url-text')\n dom.select()\n document.execCommand('Copy')\n dom.blur()\n }}\n />\n \n }}\n />\n }\n { this.state.popoverTab === 1 && \n \n {intl.formatMessage({ id: 'message.generateAndSetSSHKey' })}  \n \n \n \n {\n const dom = document.getElementById('repsoditory-ssh-url-text')\n dom.select()\n document.execCommand('Copy')\n dom.blur()\n }}\n />\n \n }}\n />\n }\n \n \n \n \n \n \n \n \n   { intl.formatMessage({ id: 'label._N_commit' }, { n: repositoryConfig.count.commit }) }     \n \n   { intl.formatMessage({ id: 'label._N_branch' }, { n: repositoryConfig.count.branch }) }     \n \n   { intl.formatMessage({ id: 'label._N_tag' }, { n: repositoryConfig.count.tag }) }     \n \n   { intl.formatMessage({ id: 'label._N_byte' }, { n: formatNumber(repositoryConfig.count.file) }) }     \n \n   { intl.formatMessage({ id: 'label._N_mergeRequest' }, { n: repositoryConfig.repository.mergeRequestCount.open }) }     \n \n   { intl.formatMessage({ id: 'label._N_member' }, { n: repositoryConfig.members.length }) }\n \n \n \n : \n \n \n }\n \n )\n }\n}\n\nRepositoryDashboard.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n repositoryConfig: PropTypes.object,\n repositoryList: PropTypes.array.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RepositoryDashboard)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport MenuItem from '@material-ui/core/MenuItem'\nimport TextField from '@material-ui/core/TextField'\nimport ListSubheader from '@material-ui/core/ListSubheader'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport { plBranch, plTag, plCommit } from '@pgyer/icons'\n\n// style\nconst styles = theme => ({\n select: {\n '& > div > svg': {\n width: theme.spacing(3),\n height: theme.spacing(3)\n }\n },\n icon: {\n color: theme.palette.text.light\n }\n})\n\nclass RefSelector extends React.Component {\n composeOptions (revisionList, currentRevision) {\n let options = []\n if (revisionList && (revisionList.branches || revisionList.tags)) {\n if (revisionList.branches && revisionList.branches.length) {\n options.push({this.props.intl.formatMessage({ id: 'label.branch' })})\n options = options.concat(revisionList.branches.map(\n (item, key) => \n   {item.name}\n \n ))\n }\n\n if (revisionList.tags && revisionList.tags.length) {\n options.push({this.props.intl.formatMessage({ id: 'label.tag' })})\n options = options.concat(revisionList.tags.map(\n (item, key) => \n   {item.name}\n \n ))\n }\n\n if (!revisionList.branches.filter(FilterGenerator.id(currentRevision)).length &&\n !revisionList.tags.filter(FilterGenerator.id(currentRevision)).length\n ) {\n options.push({this.props.intl.formatMessage({ id: 'label.commit' })})\n options.push(\n   {currentRevision}\n )\n }\n }\n return options\n }\n\n render () {\n const { currentRevision, revisionList, onChange, classes } = this.props\n\n return e.target.value && onChange(e.target.value)}\n className={classes.select}\n >\n {this.composeOptions(revisionList, currentRevision)}\n \n }\n}\n\nRefSelector.propTypes = {\n currentRevision: PropTypes.string.isRequired,\n revisionList: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RefSelector)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\nimport { diffChars } from 'diff/lib'\n\n// style\nconst styles = theme => ({\n addition: {\n backgroundColor: theme.palette.background.additionDarker\n },\n deletion: {\n backgroundColor: theme.palette.background.deletionDarker\n }\n})\n\nclass CodeLine extends React.Component {\n constructor (props) {\n super(props)\n this.code = React.createRef()\n }\n\n componentDidMount () {\n this.refreshCodeLine()\n }\n\n componentDidUpdate () {\n this.refreshCodeLine()\n }\n\n refreshCodeLine () {\n if (typeof this.props.htmlCode === 'string') {\n const fragment = document.createElement('span')\n fragment.innerHTML = this.props.htmlCode\n\n if (typeof this.props.original === 'string') {\n // diff node, highlight adds\n const diff = diffChars(this.props.original, this.props.code)\n let currentPosition = 0\n const offsets = []\n for (let index = 0; index < diff.length; index++) {\n if (!diff[index].added && !diff[index].removed) {\n currentPosition += diff[index].count\n } else if (diff[index].added) {\n for (let offset = 0; offset < diff[index].count; offset++) {\n offsets.push(currentPosition)\n currentPosition++\n }\n }\n }\n this.highlightWord(fragment, this.props.classes.addition, offsets)\n } else if (typeof this.props.modified === 'string') {\n // diff node, highlight removes\n const diff = diffChars(this.props.code, this.props.modified)\n let currentPosition = 0\n const offsets = []\n for (let index = 0; index < diff.length; index++) {\n if (!diff[index].added && !diff[index].removed) {\n currentPosition += diff[index].count\n } else if (diff[index].removed) {\n for (let offset = 0; offset < diff[index].count; offset++) {\n offsets.push(currentPosition)\n currentPosition++\n }\n }\n }\n this.highlightWord(fragment, this.props.classes.deletion, offsets)\n }\n\n this.code.current.innerHTML = fragment.innerHTML\n }\n }\n\n highlightWord (fragment, className, offsets) {\n let rangeDom = null\n let rangeStart = null\n let rangeEnd = null\n\n for (let index = 0; index < offsets.length; index++) {\n const findRangeOffset = this.findOffset(fragment, offsets[index])\n\n if (!rangeDom) {\n rangeDom = findRangeOffset[0]\n rangeStart = findRangeOffset[1]\n rangeEnd = findRangeOffset[1] - 1\n }\n\n if (rangeDom !== findRangeOffset[0]) {\n this.highlight(rangeDom, className, rangeStart, rangeEnd)\n rangeDom = null\n index--\n continue\n } else {\n if (findRangeOffset[1] !== rangeEnd + 1) {\n this.highlight(rangeDom, className, rangeStart, rangeEnd)\n rangeDom = null\n index--\n continue\n }\n }\n\n rangeEnd = findRangeOffset[1]\n }\n\n if (rangeDom) {\n this.highlight(rangeDom, className, rangeStart, rangeEnd)\n }\n\n return true\n }\n\n highlight (targetDom, className, start, end) {\n const range = document.createRange()\n const mark = document.createElement('span')\n mark.className = className\n range.setStart(targetDom, start)\n range.setEnd(targetDom, end + 1)\n range.surroundContents(mark)\n }\n\n findOffset (parentNode, relativeOffset) {\n let currentOffset = 0\n for (let index = 0; index < parentNode.childNodes.length; index++) {\n const node = parentNode.childNodes.item(index)\n if (node.nodeName === '#text') {\n const contentLength = node.length\n if (relativeOffset - currentOffset >= contentLength) {\n currentOffset += contentLength\n continue\n } else {\n return [node, relativeOffset - currentOffset]\n }\n } else {\n const contentLength = node.innerText.length\n if (relativeOffset - currentOffset >= contentLength) {\n currentOffset += contentLength\n continue\n } else {\n return this.findOffset(node, relativeOffset - currentOffset)\n }\n }\n }\n }\n\n render () {\n return
\n      \n        {this.props.code}\n      \n    
\n }\n}\n\nCodeLine.propTypes = {\n classes: PropTypes.object.isRequired,\n code: PropTypes.string.isRequired,\n original: PropTypes.string,\n modified: PropTypes.string,\n htmlCode: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CodeLine)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'react-router-dom'\n\nclass SmartLink extends React.Component {\n render () {\n const { to, children } = this.props\n return {children}\n }\n}\n\nSmartLink.propTypes = {\n to: PropTypes.string,\n children: PropTypes.node.isRequired\n}\n\nexport default SmartLink\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\n// component\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { plCopy } from '@pgyer/icons'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// style\nconst styles = theme => ({\n disabledBtn: {\n '&:disabled': {\n color: theme.palette.text.main,\n border: '1px solid ' + theme.palette.border\n }\n },\n icon: {\n color: theme.palette.primary.main,\n border: '1px solid ' + theme.palette.border,\n borderLeft: '0px',\n borderRadius: '0px 4px 4px 0px'\n }\n})\n\nclass CommitHashChip extends Component {\n constructor (props) {\n super(props)\n this.state = {\n copyHash: 'label.copyHash'\n }\n }\n\n copyHash () {\n const dom = window.document.createElement('input')\n dom.setAttribute('value', this.props.hash)\n dom.setAttribute('type', 'text')\n window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('Copy')\n window.document.body.removeChild(dom)\n this.setState({ copyHash: 'label.copied' })\n }\n\n render () {\n const { hash, classes } = this.props\n const { copyHash } = this.state\n return (\n \n \n this.copyHash(e)}\n onMouseLeave={() => {\n window.setTimeout(() => this.setState({ copyHash: 'label.copyHash' }), 150)\n }}\n />\n \n )\n }\n}\n\nCommitHashChip.propTypes = {\n hash: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nexport default injectIntl(\n withStyles(styles)(\n CommitHashChip\n )\n)\n","// core component\nimport React, { Component } from 'react'\nimport { withRouter } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport Avatar from '@material-ui/core/Avatar'\nimport SmartLink from 'APPSRC/components/unit/SmartLink'\nimport CommitHashChip from 'APPSRC/components/unit/CommitHashChip'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport Constants from 'APPSRC/config/Constants'\nimport { injectIntl } from 'react-intl'\n\n// helpers\n\nimport { getUserInfo } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = theme => ({\n listItem: {\n borderTop: '1px solid ' + theme.palette.border,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n },\n avatar: {\n width: theme.spacing(3),\n height: theme.spacing(3)\n },\n secondaryWrap: {\n padding: theme.spacing(1),\n paddingLeft: 0,\n paddingBottom: 0\n }\n})\n\nclass CommitItem extends Component {\n render () {\n const {\n intl,\n classes,\n data,\n linkPathBase,\n currentRepositoryConfig,\n showBorder,\n blameMode,\n path\n } = this.props\n const commitInfo = data || {}\n let commitFullInfo = {}\n if (currentRepositoryConfig) {\n const commiterInfo = getUserInfo(currentRepositoryConfig.members, commitInfo.email)\n if (commiterInfo) {\n commitFullInfo = commiterInfo\n commitFullInfo.hash = commitInfo.sha\n commitFullInfo.commitContent = commitInfo.commit\n commitFullInfo.commitTime = commitInfo.time\n }\n }\n\n return \n \n \n \n {commitFullInfo.commitContent ? commitFullInfo.commitContent : ''}\n \n {blameMode && \n {commitFullInfo.hash.substr(0, 8)}\n }\n \n \n }\n secondary={\n \n \n \n \n \n \n \n {commitFullInfo.name ? commitFullInfo.name : ''}\n { commitFullInfo.temporary && \n  \n \n }\n \n \n \n \n {intl.formatMessage({ id: 'label.editIn' })}:\n \n \n \n \n \n }\n />\n {!blameMode && }\n \n }\n}\n\nCommitItem.propTypes = {\n data: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n linkPathBase: PropTypes.string.isRequired,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n showBorder: PropTypes.bool,\n blameMode: PropTypes.bool,\n path: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CommitItem)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\n// import hljs from 'highlight.js'\nimport Prism from 'prismjs'\nimport 'highlight.js/styles/atom-one-light.css'\nimport { getCodeLanguageType, makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport CodeLine from 'APPSRC/components/unit/CodeLine'\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\n// style\nconst styles = theme => ({\n table: {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse',\n '& tr:first-child': {\n border: 'none'\n }\n },\n topBorder: {\n borderTop: '1px solid ' + theme.palette.border\n },\n blame: {\n width: theme.spacing(40),\n verticalAlign: 'middle'\n },\n blameLoading: {\n width: theme.spacing(40),\n verticalAlign: 'top',\n textAlign: 'center',\n paddingTop: theme.spacing(10)\n },\n lineNumber: {\n lineHeight: theme.spacing(2) + 'px',\n width: theme.spacing(4),\n padding: '0 ' + theme.spacing(1) + 'px',\n textAlign: 'right',\n verticalAlign: 'middle',\n userSelect: 'none',\n color: theme.palette.text.lighter,\n backgroundColor: theme.palette.background.main\n },\n code: {\n verticalAlign: 'middle',\n overflowWrap: 'break-word'\n }\n})\n\nclass CodeViewer extends React.Component {\n constructor (props) {\n super(props)\n const lineNumber = window.location.href.match(/^.*#(\\d+)$/)\n this.state = {\n lineNumber: lineNumber ? parseInt(lineNumber[1]) : -1\n }\n this.ref = React.createRef()\n }\n\n componentDidMount () {\n if (this.ref.current) {\n let parent = this.ref.current\n let scroll = 0\n while (parent) {\n scroll += parent.offsetTop\n parent = parent.offsetParent\n }\n\n document.querySelector('.app-content').scrollTop = scroll - 64 - 21 * 5\n }\n return true\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n return true\n }\n\n componentDidUpdate (prevProps, prevState) {\n return true\n }\n\n render () {\n const { object, blame, currentRepositoryConfig, match, classes, fragment } = this.props\n const { lineNumber } = this.state\n const lang = getCodeLanguageType(object.path)\n const codes = fragment ? object.object : object.object.raw.split('\\n')\n // let parsed = hljs.highlight(lang, object.object.raw, true)\n // let parsedHtml = parsed.value.split('\\n')\n const parsed = Prism.highlight(codes.join('\\n'), Prism.languages[lang] || Prism.languages.markdown, lang)\n const parsedHtml = parsed.split('\\n')\n let codeLines = []\n\n if (blame && blame.length) {\n let count = 0\n codeLines = codes.map((item, key) => {\n let blameCell = null\n const blameData = blame.filter(blameItem => blameItem.start === (key + 1))\n if (blameData && blameData[0]) {\n count = blameData[0].length\n blameCell = \n \n \n }\n\n return \n {(key === (codes.length - 1) && codes[key].length === 0) || count-- < 1 ? : blameCell}\n {key + 1}\n \n \n })\n } else if (match.params.type === 'blame') {\n codeLines = codes.map((item, key) => {\n return \n { key === 0 && }\n {key + 1}\n \n \n })\n } else {\n codeLines = codes.map((item, key) => {\n let style = {}\n if (fragment && fragment[key]) {\n style = {\n color: '#fff',\n background: fragment[key]\n }\n }\n\n return \n {key + 1}\n \n \n })\n }\n\n return (\n { codeLines }\n
)\n }\n}\n\nCodeViewer.propTypes = {\n classes: PropTypes.object.isRequired,\n object: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n blame: PropTypes.array,\n fragment: PropTypes.array\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CodeViewer)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Menu from '@material-ui/core/Menu'\nimport Button from '@material-ui/core/Button'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plFile, plCodeFile, plCopy } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\n\nimport ReactMarkdown from 'react-markdown'\nimport remarkGfm from 'remark-gfm'\nimport CodeViewer from 'APPSRC/components/unit/CodeViewer'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport { makeLink, formatNumber } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n icon: {\n color: theme.palette.text.lighter\n },\n icon2: {\n color: theme.palette.primary.main\n },\n fileInfo: {\n lineHeight: theme.spacing(5) + 'px',\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n background: theme.palette.background.main,\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px 0 0',\n '& > div': {\n display: 'flex',\n alignItems: 'center'\n }\n },\n blame: {\n justifyContent: 'flex-end',\n '& button': {\n background: theme.palette.background.light,\n borderColor: theme.palette.border\n }\n },\n editorBg: {\n background: theme.palette.background.light\n },\n detail: {\n overflowX: 'hidden',\n border: '1px solid ' + theme.palette.border,\n borderRadius: '0 0 ' + theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px',\n borderTop: '0px'\n },\n mediaFile: {\n display: 'block',\n margin: 'auto',\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(5),\n maxWidth: '80%'\n },\n oldImage: {\n display: 'block',\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(3),\n border: '1px solid ' + theme.palette.error.main,\n padding: theme.spacing(2),\n marginLeft: 'auto',\n marginRight: 'auto',\n maxWidth: '80%'\n },\n newImage: {\n display: 'block',\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(3),\n border: '1px solid ' + theme.palette.success.dark,\n marginLeft: 'auto',\n padding: theme.spacing(2),\n marginRight: 'auto',\n maxWidth: '80%'\n },\n height0: {\n height: '0px',\n paddingTop: '0px !important',\n paddingBottom: '0px !important',\n overflow: 'hidden'\n },\n unknown: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: theme.spacing(32)\n },\n markdown: {\n boxSizing: 'border-box',\n minWidth: '200px',\n maxWidth: '980px',\n margin: '0 auto',\n padding: '45px'\n }\n})\n\nclass ObjectViewer extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n mdSourceShow: false,\n copyAnchor: null\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n return true\n }\n\n copySomething (data) {\n this.setState({ copyAnchor: null })\n window.setTimeout(() => {\n const dom = window.document.createElement('textarea')\n dom.innerHTML = data\n window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('copy')\n window.document.body.removeChild(dom)\n }, 0)\n }\n\n getDisplayMode (object) {\n if (object.object.oversize) {\n return Constants.obejctDisplayType.oversize\n } else if (object.object.size <= 0) {\n return Constants.obejctDisplayType.empty\n } else if (object.object.mime && (object.object.mime.match(/^text/) || object.object.mime === 'application/xml')) {\n if (object.path && object.path.match(/.*\\.md$/i)) {\n return Constants.obejctDisplayType.markdown\n }\n return Constants.obejctDisplayType.text\n } else if (object.object.mime && object.object.mime.match(/^image/)) {\n return Constants.obejctDisplayType.image\n } else if (object.object.mime === 'video/mp4') {\n return Constants.obejctDisplayType.video\n }\n return Constants.obejctDisplayType.unknown\n }\n\n getObjectIcon (mime) {\n return plFile\n }\n\n render () {\n const { currentRepositoryConfig, object, blame, classes, match, history, intl } = this.props\n const { mdSourceShow } = this.state\n\n const displayMode = this.getDisplayMode(object)\n return (\n \n \n   \n {object.path} \n  |  {formatNumber(object.object.size, 'Bytes')}  \n this.setState({ copyAnchor: e.target })} className={classes.icon2} />\n this.setState({ copyAnchor: null })}\n >\n this.copySomething(object.path)}>{intl.formatMessage({ id: 'label.copyPath' })}\n { (displayMode === Constants.obejctDisplayType.text || displayMode === Constants.obejctDisplayType.markdown) &&\n this.copySomething(object.object.raw)}>{intl.formatMessage({ id: 'label.copyCode' })}\n }\n \n { displayMode === Constants.obejctDisplayType.markdown && \n { mdSourceShow\n ? this.setState({ mdSourceShow: false })} />\n : this.setState({ mdSourceShow: true })} />\n }\n \n }\n \n { match.params.path && \n \n history.push(makeLink(\n currentRepositoryConfig.group.name,\n currentRepositoryConfig.repository.name,\n 'commits',\n encodeURIComponent(match.params.rev) + match.params.path\n ))}\n >{intl.formatMessage({ id: 'label.history' })}\n {(displayMode === Constants.obejctDisplayType.text || displayMode === Constants.obejctDisplayType.markdown) && history.push(makeLink(\n currentRepositoryConfig.group.name,\n currentRepositoryConfig.repository.name,\n match.params.type === 'blame' ? 'files' : 'blame',\n encodeURIComponent(match.params.rev) + match.params.path\n ))}\n >{match.params.type === 'blame' ? 'Normal' : 'Blame'}\n }\n \n \n }\n \n \n { displayMode === Constants.obejctDisplayType.text && }\n { displayMode === Constants.obejctDisplayType.markdown && \n \n \n \n \n \n \n \n \n }\n { displayMode === Constants.obejctDisplayType.image && }\n { displayMode === Constants.obejctDisplayType.video &&
\n \n
\n }\n { displayMode === Constants.obejctDisplayType.unknown && {intl.formatMessage({ id: 'message.fileTypeNotSupport' })}}\n { displayMode === Constants.obejctDisplayType.empty && {intl.formatMessage({ id: 'message.fileContentEmpty' })}}\n { displayMode === Constants.obejctDisplayType.oversize && {intl.formatMessage({ id: 'message.fileContentOversize' })}}\n
\n
\n )\n }\n}\n\nObjectViewer.propTypes = {\n currentRepositoryConfig: PropTypes.object.isRequired,\n object: PropTypes.object.isRequired,\n blame: PropTypes.array,\n classes: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(ObjectViewer)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { plCopy } from '@pgyer/icons'\n\n// helpers\nimport { copyToClipboard } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n setup: {\n padding: theme.spacing(3) + 'px',\n borderRadius: '4px 4px 0px 0px',\n border: '1px solid ' + theme.palette.border\n },\n noBorder: {\n borderTop: 0,\n borderRadius: '0px 0px 4px 4px'\n },\n code: {\n position: 'relative',\n marginTop: theme.spacing(1),\n padding: theme.spacing(1.5) + 'px',\n borderRadius: theme.spacing(0.5) + 'px',\n background: theme.palette.background.main\n },\n icon: {\n top: theme.spacing(1.5) + 'px',\n right: theme.spacing(1.5) + 'px',\n position: 'absolute'\n }\n})\n\nclass RepositoryEmpty extends React.Component {\n render () {\n const { currentRepositoryConfig, currentUserInfo, classes, intl } = this.props\n\n if (!currentRepositoryConfig.repository) {\n return null\n }\n\n const remoteCode = 'git remote add origin ' + currentUserInfo.host + '/' + currentRepositoryConfig.group.name + '/' + currentRepositoryConfig.repository.name + '.git'\n const createCode = [\n 'echo \"# ' + currentRepositoryConfig.repository.name + '\" >> README.md',\n 'git init',\n 'git add README.md',\n 'git commit -m \"first commit\"',\n 'git branch -M main',\n remoteCode,\n 'git push -u origin main'\n ]\n const pushCode = [\n remoteCode,\n 'git branch -M main',\n 'git push -u origin main'\n ]\n\n return \n \n {intl.formatMessage({ id: 'message.createNewRepository' })}\n \n copyToClipboard(createCode.join('\\n'))} icon={plCopy} />\n {createCode.map((item, index) => {item})}\n \n \n \n {intl.formatMessage({ id: 'message.pushRepository' })}\n \n copyToClipboard(pushCode.join('\\n'))} icon={plCopy} />\n {pushCode.map((item, index) => {item})}\n \n \n \n }\n}\n\nRepositoryEmpty.propTypes = {\n currentRepositoryConfig: PropTypes.object.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig,\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(RepositoryEmpty)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter, Link } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Tooltip from '@material-ui/core/Tooltip'\n\nimport RepositoryDashboard from 'APPSRC/components/unit/RepositoryDashboard'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport RevisionSelector from 'APPSRC/components/unit/RevisionSelector'\nimport TableList from 'APPSRC/components/unit/TableList'\nimport ObjectViewer from 'APPSRC/components/unit/ObjectViewer'\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plFile, psFolder, plSearch, psRepository } from '@pgyer/icons'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport RepositoryEmpty from 'APPSRC/components/unit/RepositoryEmpty'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink, getDefaultBranch } from 'APPSRC/helpers/VaribleHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n linkObjectName: {\n color: theme.palette.text.main + ' !important'\n },\n linkCommitMessage: {\n color: theme.palette.text.light + ' !important'\n },\n commit: {\n '& > li': {\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px'\n }\n }\n})\n\nclass FileTree extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n pathStack: [],\n search: '',\n objectData: {},\n blameData: null,\n readmeFile: {}\n }\n }\n\n componentDidMount () {\n this.getPathStack(this.props, this.state)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // watch router change\n if (JSON.stringify(this.props.match.params) !== JSON.stringify(nextProps.match.params)) {\n if (this.props.match.params.type !== nextProps.match.params.type &&\n this.props.match.params.rev === nextProps.match.params.rev &&\n this.props.match.params.path === nextProps.match.params.path) {\n this.getObject(nextProps, nextState)\n return false\n }\n this.getPathStack(nextProps, nextState)\n return false\n }\n\n // watch repository config\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getPathStack(nextProps, nextState)\n return false\n }\n\n if (JSON.stringify(this.state.pathStack) !== JSON.stringify(nextState.pathStack)) {\n this.getObject(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n getPathStack (props, state) {\n if (!props.currentRepositoryKey || !props.currentRepositoryConfig.repository) {\n return true\n }\n\n if ((!props.match.params.path || props.match.params.path === '/') && state.pathStack.length === 0) {\n this.getObject(props, state)\n return true\n }\n\n this.setState({ objectData: {}, pending: true })\n RepositoryData.pathStack({\n repository: props.currentRepositoryKey,\n revision: (props.match.params.rev && decodeURIComponent(props.match.params.rev)) || getDefaultBranch(props.currentRepositoryConfig),\n path: props.match.params.path || '/'\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n pending: false,\n pathStack: data.data\n })\n }\n })\n return true\n }\n\n getObject (props, state) {\n if (!props.currentRepositoryConfig.branches || !props.currentRepositoryConfig.branches.length) {\n this.setState({ blameData: null, objectData: {}, pending: false })\n return true\n }\n\n if (state.pathStack.length > 0 &&\n state.pathStack[state.pathStack.length - 1].type === 'blob' &&\n props.match.params.type === 'blame'\n ) {\n this.getBlame(props, state)\n }\n\n const calculatedPath = state.pathStack.reduce((path, item) => (path ? path + '/' : '') + item.name, '')\n this.setState({ blameData: null, objectData: {}, pending: true })\n RepositoryData.object({\n repository: props.currentRepositoryKey,\n parent: (state.pathStack.length && state.pathStack[state.pathStack.length - 1].object) ||\n (props.match.params.rev && decodeURIComponent(props.match.params.rev)) ||\n getDefaultBranch(props.currentRepositoryConfig),\n revision: (props.match.params.rev && decodeURIComponent(props.match.params.rev)) || getDefaultBranch(props.currentRepositoryConfig),\n path: calculatedPath || '/'\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n pending: false,\n search: '',\n objectData: data.data\n })\n this.getReadmeFile(data.data)\n } else {\n this.setState({ pending: false })\n }\n })\n }\n\n getBlame (props, state) {\n this.setState({ blameData: null })\n const calculatedPath = state.pathStack.reduce((path, item) => (path ? path + '/' : '') + item.name, '')\n RepositoryData.getBlameInfo({\n repository: props.currentRepositoryKey,\n revision: (props.match.params.rev && decodeURIComponent(props.match.params.rev)) || getDefaultBranch(props.currentRepositoryConfig),\n path: calculatedPath || '/'\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n search: '',\n blameData: data.data.blame\n })\n }\n })\n }\n\n getReadmeFile (object) {\n if (object.type !== 'blob') {\n const readmeObject = object.object.filter((item) => item.name.toLowerCase() === 'readme.md')\n\n if (readmeObject[0]) {\n RepositoryData.object({\n repository: this.props.currentRepositoryKey,\n parent: readmeObject[0].object,\n revision: (this.props.match.params.rev && decodeURIComponent(this.props.match.params.rev)) || getDefaultBranch(this.props.currentRepositoryConfig),\n path: object.path + '/' + readmeObject[0].name\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ readmeFile: data.data })\n }\n })\n }\n }\n this.setState({ readmeFile: {} })\n }\n\n makeFileListData (data) {\n const currentPath = this.state.pathStack.reduce((path, item) => (path ? path + '/' : '') + item.name, '')\n const final = data\n .sort((item0, item1) => {\n if (item0.type === item1.type) {\n return 0\n } else if (item0.type === 'blob') {\n return 1\n } else {\n return -1\n }\n })\n .map((item) => {\n return [\n \n { item.type === 'blob' && \n   \n {item.name}\n }\n { item.type === 'tree' && \n   \n {item.name}\n }\n { item.type === 'commit' && \n   \n {item.name} \n \n @{item.object.slice(0, 8)}\n \n }\n ,\n item.commit && item.commit.sha && {item.commit.commit},\n \n ]\n })\n\n return [\n ['30%', 'auto', 'auto'],\n ['label.name', 'label.lastCommit', 'label.lastUpdate'],\n ...final\n ]\n }\n\n composePathBreadCrumb () {\n const basePathStack = [\n this.props.currentRepositoryConfig.group.name,\n this.props.currentRepositoryConfig.repository.name,\n 'files',\n encodeURIComponent(this.props.match.params.rev || getDefaultBranch(this.props.currentRepositoryConfig))\n ]\n\n const components = [\n \n {this.props.currentRepositoryConfig.repository.name}\n \n ]\n for (let index = 0; index < this.state.pathStack.length; index++) {\n basePathStack.push(this.state.pathStack[index].name)\n components.push(\n   /  \n \n {this.state.pathStack[index].name}\n \n )\n }\n\n return components\n }\n\n render () {\n const { currentRepositoryError, currentRepositoryConfig, history, match, intl, classes } = this.props\n if (currentRepositoryError) {\n return \n \n \n \n \n }\n\n return \n \n \n \n\n {getDefaultBranch(currentRepositoryConfig) && \n \n \n \n \n history.push(makeLink(\n currentRepositoryConfig.group.name,\n currentRepositoryConfig.repository.name,\n 'files',\n encodeURIComponent(revision)\n ))}\n />\n \n { this.composePathBreadCrumb() }\n \n \n \n this.setState({ search: e.target.value })}\n InputProps={{\n startAdornment: \n }}\n />\n \n \n }\n\n {!this.state.pending && getDefaultBranch(currentRepositoryConfig) && this.state.objectData.commit && \n \n }\n\n {!this.state.pending && getDefaultBranch(currentRepositoryConfig) && this.state.objectData.commit && \n { this.state.objectData.type === 'blob'\n ? \n : \n }\n }\n\n {!this.state.pending && getDefaultBranch(currentRepositoryConfig) && this.state.objectData.type !== 'blob' && this.state.readmeFile.object && \n \n }\n\n {this.state.pending && \n \n }\n\n {!this.state.pending && (!this.state.objectData.object || this.state.objectData.object.length === 0) && }\n \n }\n}\n\nFileTree.propTypes = {\n currentRepositoryError: PropTypes.bool.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryError: state.DataStore.currentRepositoryError,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FileTree)\n )\n )\n)\n","// core\nimport React from 'react'\nimport { withRouter } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport PropTypes from 'prop-types'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport Grid from '@material-ui/core/Grid'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport RevisionSelector from 'APPSRC/components/unit/RevisionSelector'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport DateFnsUtils from '@date-io/date-fns'\nimport Button from '@material-ui/core/Button'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport { plSearch } from '@pgyer/icons'\n\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink, getDefaultBranch } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n path: {\n lineHeight: theme.spacing(4) + 'px'\n }\n})\n\nclass CommitList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n commitList: [],\n page: 1,\n pending: false,\n listFinshed: false,\n searchInput: '',\n search: ''\n }\n\n this.pageSize = 20\n this.mountedFlag = false\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.setState({ page: 1, listFinshed: false, commitList: [], searchInput: '', search: '' })\n this.getData(this.props, this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // change any change that is nned to reload commit to a page number change\n if (\n this.props.currentRepositoryKey !== nextProps.currentRepositoryKey ||\n this.props.match.params.rev !== nextProps.match.params.rev ||\n JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)\n ) {\n this.setState({ page: 1, listFinshed: false, commitList: [], searchInput: '', search: '' })\n if (nextState.page === 1 && nextState.search === '') {\n this.getData(nextProps, nextState)\n }\n return false\n }\n\n if (this.state.search !== nextState.search) {\n this.setState({ page: 1, listFinshed: false, commitList: [] })\n if (nextState.page === 1) {\n this.getData(nextProps, nextState)\n }\n return false\n }\n\n if (this.state.page !== nextState.page) {\n this.getData(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n getData (props, state) {\n if (!props.currentRepositoryConfig.repository || state.pending || !this.mountedFlag) {\n return false\n }\n\n if (!props.currentRepositoryConfig.branches || !props.currentRepositoryConfig.branches.length) {\n return false\n }\n\n const { intl } = props\n this.setState({ pending: true })\n RepositoryData.commitList({\n repository: props.currentRepositoryKey,\n revision: (props.match.params.rev && decodeURIComponent(props.match.params.rev)) || getDefaultBranch(props.currentRepositoryConfig),\n path: props.match.params.path ? decodeURIComponent(props.match.params.path) : '',\n page: state.page,\n pagesize: this.pageSize,\n keyword: state.search\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const result = data.data\n const list = []\n let index = 0\n let currentDate = ''\n list[index] = { date: '', list: [] }\n if (result.length) {\n result.map((item, key) => {\n if (!currentDate) {\n currentDate = new DateFnsUtils().format((Number(item.time) * 1000), 'yyyy-MM-dd')\n list[index].date = currentDate\n list[index].list.push(item)\n } else {\n if (new DateFnsUtils().format((Number(item.time) * 1000), 'yyyy-MM-dd') === currentDate) {\n list[index].date = currentDate\n list[index].list.push(item)\n } else {\n index = index + 1\n list[index] = { date: '', list: [] }\n currentDate = new DateFnsUtils().format((Number(item.time) * 1000), 'yyyy-MM-dd')\n list[index].date = currentDate\n list[index].list.push(item)\n }\n }\n return true\n })\n const listFinshed = result.length < this.pageSize\n\n list.map((tempItem, key) => {\n if (state.commitList.length > 0) {\n let dateExist = false\n state.commitList.map((originItem, key) => {\n if (originItem.date === tempItem.date) {\n dateExist = true\n originItem.list = [...originItem.list, ...tempItem.list]\n return originItem\n }\n if (!dateExist && key === state.commitList.length - 1) {\n state.commitList.push(tempItem)\n }\n return true\n })\n }\n return true\n })\n if (!state.commitList.length || state.page === 1) {\n this.setState({\n pending: false,\n commitList: [...list],\n listFinshed\n })\n } else {\n this.setState({\n pending: false,\n commitList: [...this.state.commitList],\n listFinshed\n })\n }\n } else {\n this.setState({\n pending: false,\n listFinshed: true,\n commitList: []\n })\n }\n } else {\n props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.showCommitListFailed' }),\n 2)\n )\n }\n })\n }\n\n pageReload (reload, refType, ref) {\n if (!refType || !ref) {\n refType = this.state.refType\n ref = this.state.ref\n }\n\n const { currentRepositoryConfig, history } = this.props\n const link = makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'commits', refType, encodeURIComponent(ref)\n )\n\n return reload ? history.push(link) : link\n }\n\n filterCommits (keyword) {\n if (keyword) {\n this.observed.keyword = keyword\n this.setState({ page: 1 })\n this.getData(this.props, this.state)\n } else {\n this.observed.keyword = ''\n this.setState({ page: 1 })\n }\n }\n\n render () {\n const {\n commitList\n } = this.state\n const {\n currentRepositoryConfig,\n match,\n history,\n classes,\n intl\n } = this.props\n return \n {currentRepositoryConfig.branches && currentRepositoryConfig.branches.length !== 0 && \n \n \n history.push(makeLink(\n currentRepositoryConfig.group.name,\n currentRepositoryConfig.repository.name,\n 'commits',\n encodeURIComponent(revision)\n ))}\n />  \n {!match.params.path ? '' : match.params.path.substr(1)}\n \n \n this.setState({ searchInput: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.setState({ search: e.target.value })\n }\n }}\n InputProps={{\n startAdornment: \n }}\n />\n \n \n }\n\n {this.state.commitList.length > 0 && \n \n {commitList.map((item, key) => {\n const title = item.date + ' [' + intl.formatMessage({ id: 'label._N_commit' }, { n: item.list.length }) + ']'\n return (\n \n {item.list.map((listItem, key) => {\n return (\n \n )\n })}\n \n \n )\n })\n }\n \n }\n\n {!this.state.pending && this.state.commitList.length > 0 && \n \n { this.state.pending\n ? \n : this.state.listFinshed\n ? commitList.length > 0\n ? \n : ''\n : \n }\n \n }\n\n {this.state.commitList.length === 0 && \n \n }\n\n \n }\n}\n\nCommitList.propTypes = {\n match: PropTypes.object.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withRouter(\n withTheme(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n CommitList\n )\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plSearch, plSortDesc } from '@pgyer/icons'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\n\n// helpers\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n input: {\n width: theme.spacing(30),\n maxWidth: '100%'\n },\n button: {\n marginLeft: theme.spacing(4)\n },\n icon: {\n color: theme.palette.text.light\n },\n transform: {\n transform: 'rotateX(180deg)'\n }\n})\n\nclass RefFilter extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n keyword: props.match.params.tag ? props.match.params.tag : (props.match.params.branch ? props.match.params.branch : '')\n }\n }\n\n render () {\n const { refType, pending, searchRef, sortDesc, sortSwitch, children, tabValue, tabChange, currentRepositoryConfig, history, classes, intl } = this.props\n\n return (\n tabChange(value)}\n tabs={refType === 'branch' ? [intl.formatMessage({ id: 'label.all' }), intl.formatMessage({ id: 'label.active' }), intl.formatMessage({ id: 'label.inactive' })] : []}\n >\n searchRef(e.target.value)}\n InputProps={{\n startAdornment: \n }}\n /> \n \n {currentRepositoryConfig.branches && currentRepositoryConfig.branches.length > 0 && }\n \n \n \n {children}\n \n \n \n )\n }\n}\n\nRefFilter.propTypes = {\n refType: PropTypes.string.isRequired,\n pending: PropTypes.bool.isRequired,\n searchRef: PropTypes.func.isRequired,\n sortDesc: PropTypes.bool.isRequired,\n sortSwitch: PropTypes.func.isRequired,\n tabValue: PropTypes.number,\n tabChange: PropTypes.func,\n children: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RefFilter)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport Typography from '@material-ui/core/Typography'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plTag, plBranch, psConfirm, plTrash, plCommit, psMore, plSafe } from '@pgyer/icons'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport SmartLink from 'APPSRC/components/unit/SmartLink'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\n\n// helpers\nimport { makeLink, getUserInfo, getDefaultBranch } from 'APPSRC/helpers/VaribleHelper'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\n\n// style\nconst styles = theme => ({\n refListItem: {\n marginTop: theme.spacing(3)\n },\n oneline: {\n display: 'flex',\n height: theme.spacing(3),\n alignItems: 'center'\n },\n refItem: {\n padding: theme.spacing(1.5) + 'px ' + theme.spacing(3) + 'px',\n borderTop: '1px solid ' + theme.palette.border\n },\n refName: {\n '& a': {\n color: theme.palette.text.main + ' !important',\n fontWeight: 600\n }\n },\n refLog: {\n display: 'flex',\n alignItems: 'center',\n maxWidth: '35%',\n '& a': {\n display: 'inline-block',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n color: theme.palette.text.main + ' !important'\n }\n },\n refUpdate: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n refSha: {\n '& a': {\n color: theme.palette.secondary.main + ' !important'\n }\n },\n delete: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center'\n },\n more: {\n paddingTop: theme.spacing(2)\n },\n icon: {\n color: theme.palette.text.light\n },\n icon2: {\n color: theme.palette.success.main,\n marginRight: theme.spacing(2.5)\n }\n})\n\nclass RefList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n page: 1,\n perpage: 10,\n anchor: []\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.repage !== nextProps.repage) {\n this.setState({ page: 1 })\n }\n return true\n }\n\n refListsDeal (refLists) {\n const { currentRepositoryConfig, history } = this.props\n\n refLists.map((refList) => {\n refList.map((item, index) => {\n const filesLink = makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'files', encodeURIComponent(item.name), ''\n )\n item.nameA = history.push(filesLink)}>{item.name}\n if (item.commit.sha) {\n const commitsLink = makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'commit', item.commit.sha.substring(0, 8)\n )\n item.shaA = history.push(commitsLink)}>{item.commit.sha.substring(0, 8)}\n item.logA = history.push(commitsLink)}>{item.commit.commit}\n }\n if (item.commit.email) {\n item.updater = getUserInfo(currentRepositoryConfig.members, item.commit.email)\n }\n return true\n })\n return true\n })\n }\n\n openRefItemMenu (index, e) {\n const anchor = this.state.anchor\n anchor[index] = e.target\n this.setState({ anchor: anchor })\n }\n\n closeRefItemMenu (index) {\n const anchor = this.state.anchor\n anchor[index] = null\n this.setState({ anchor: anchor })\n }\n\n refListItem (refTitle, refList, index) {\n const { currentRepositoryConfig, refType, deleteRef, tabValue, classes, intl } = this.props\n const { page, perpage } = this.state\n const defaultBranch = getDefaultBranch(currentRepositoryConfig)\n if (tabValue === 0 && !refList.length) {\n return false\n }\n\n return (\n { refList.length > 0 && \n \n { refList.slice(0, page * perpage).map((item, index) => (\n \n \n    \n {item.nameA}  \n {item.detail}  \n { refType === 'branch' && item.protected && }\n { refType === 'branch' && item.name === defaultBranch &&     }\n { refType === 'branch' && item.name !== defaultBranch && !!item.isMerge && }\n \n \n  · \n {item.shaA} · \n {item.logA} · \n \n {item.updater.name} \n {intl.formatMessage({ id: 'label.updatedIn' })} \n \n \n \n \n \n { refType === 'branch' && item.name !== defaultBranch && \n this.openRefItemMenu(refTitle + index, e)} icon={psMore} />\n this.closeRefItemMenu(refTitle + index)}\n >\n {\n this.closeRefItemMenu(refTitle + index)\n deleteRef(item.name)\n }}>\n   {intl.formatMessage({ id: 'label.delete' })}\n \n \n \n }\n {refType === 'tag' && deleteRef(item.name)} icon={plTrash} />}\n \n ))\n }\n \n \n }\n { tabValue !== 0 && \n \n \n { page * perpage >= refList.length\n ? \n : \n }\n \n \n \n }\n \n )\n }\n\n render () {\n const { refType, count, refTitles, refLists, pending, currentRepositoryConfig, classes, history, intl } = this.props\n this.refListsDeal(refLists)\n\n let listCount = 0\n refLists && refLists.map((item, index) => {\n listCount += item.length\n return true\n })\n\n return (\n { count\n ? listCount\n ? refLists.map((item, index) => this.refListItem(refTitles[index], item, index))\n : \n \n \n \n \n \n \n : \n \n {refType === 'tag'\n ? currentRepositoryConfig.branches && currentRepositoryConfig.branches.length > 0 && \n : \n }\n \n \n }\n \n )\n }\n}\n\nRefList.propTypes = {\n refType: PropTypes.string.isRequired,\n count: PropTypes.number,\n refTitles: PropTypes.array.isRequired,\n refLists: PropTypes.array.isRequired,\n deleteRef: PropTypes.func.isRequired,\n repage: PropTypes.number.isRequired,\n pending: PropTypes.bool.isRequired,\n tabValue: PropTypes.number,\n currentRepositoryConfig: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RefList)\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport RefFilter from 'APPSRC/components/unit/RefFilter'\nimport RefList from 'APPSRC/components/unit/RefList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n }\n})\n\nclass BranchList extends Component {\n constructor (props) {\n super(props)\n this.observed = {\n keyword: this.props.match.params.branch ? this.props.match.params.branch : '',\n tabValue: 0,\n data: null\n }\n\n this.state = {\n refTitles: [],\n branchLists: null,\n pending: true,\n repage: 0,\n sortDesc: true\n }\n }\n\n componentDidMount () {\n this.getData(this.props)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getData(nextProps)\n return false\n }\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getData(nextProps)\n return false\n }\n if (this.state.sortDesc !== nextState.sortDesc) {\n this.dataSort(nextState.sortDesc)\n return false\n }\n return true\n }\n\n getData (props) {\n if (!props.currentRepositoryKey || !props.currentRepositoryConfig.repository) {\n return false\n }\n\n RepositoryData.branchList({\n repository: props.currentRepositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n if (!data.code) {\n this.observed.data = data.data\n this.dataSort(this.state.sortDesc)\n }\n })\n }\n\n dataSort (sortDesc) {\n if (this.observed.data) {\n this.observed.data.sort((item1, item2) => {\n return sortDesc ? (item2.commit.time - item1.commit.time) : (item1.commit.time - item2.commit.time)\n })\n this.dataFilter(this.observed.tabValue)\n }\n }\n\n dataFilter (tabValue) {\n const { data, keyword } = this.observed\n\n this.observed.tabValue = tabValue\n let branchList = null\n if (data === null || !data.length) {\n branchList = []\n } else if (!keyword) {\n branchList = data\n } else {\n branchList = data.filter(FilterGenerator.nameLikes(keyword))\n }\n\n const activeData = []\n const inactiveData = []\n const nowTimestamp = Math.floor((new Date()).getTime() / 1000)\n const threeMonth = 7776000\n branchList.map((item, index) => {\n if ((nowTimestamp - item.commit.time <= threeMonth) && (tabValue === 0 || tabValue === 1)) {\n activeData.push(item)\n } else if ((nowTimestamp - item.commit.time > threeMonth) && (tabValue === 0 || tabValue === 2)) {\n inactiveData.push(item)\n }\n return true\n })\n\n const refTitles = []\n const refLists = []\n if (tabValue === 0) {\n refTitles.push('active', 'inactive')\n refLists.push(activeData, inactiveData)\n } else if (tabValue === 1) {\n refTitles.push('active')\n refLists.push(activeData)\n } else if (tabValue === 2) {\n refTitles.push('inactive')\n refLists.push(inactiveData)\n }\n\n this.setState({\n refTitles: refTitles,\n branchLists: refLists,\n repage: this.state.repage + 1\n })\n }\n\n filterBranch (keyword) {\n this.observed.keyword = keyword\n this.dataFilter(this.observed.tabValue)\n }\n\n deleteBranch (branch) {\n const { currentRepositoryKey, intl } = this.props\n if (!currentRepositoryKey || !branch) {\n return false\n }\n\n RepositoryData.deleteBranch({\n repository: currentRepositoryKey,\n branch: branch\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.observed.data = this.observed.data.filter((item, index) => {\n return item.name !== branch\n })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.deleted' }),\n 0)\n )\n this.dataFilter(this.observed.tabValue)\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.deleteFail' }),\n 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n\n deleteConfirm (branch) {\n const { intl } = this.props\n this.props.dispatchEvent(EventGenerator.addComformation('branch_remove', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.branch' }) + ' \\'' + branch + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => {\n this.deleteBranch(branch)\n }\n }))\n }\n\n render () {\n const { refTitles, branchLists, pending, repage, sortDesc } = this.state\n return (\n this.dataFilter(value)}\n searchRef={(keyword) => this.filterBranch(keyword)}\n sortDesc={sortDesc}\n sortSwitch={() => this.setState({ sortDesc: !sortDesc })}>\n { branchLists\n ? this.deleteConfirm(branch)}\n repage={repage}\n pending={pending}\n tabValue={this.observed.tabValue} />\n : \n \n \n }\n \n \n )\n }\n}\n\nBranchList.propTypes = {\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object,\n match: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(BranchList)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport RefFilter from 'APPSRC/components/unit/RefFilter'\nimport RefList from 'APPSRC/components/unit/RefList'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n }\n})\n\nclass TagList extends React.Component {\n constructor (props) {\n super(props)\n this.observed = {\n keyword: this.props.match.params.tag ? this.props.match.params.tag : '',\n data: null\n }\n\n this.state = {\n tagList: null,\n pending: true,\n repage: 0,\n sortDesc: true\n }\n }\n\n componentDidMount () {\n this.getData(this.props)\n }\n\n getData (props) {\n if (!props.currentRepositoryKey || !props.currentRepositoryConfig.repository) {\n return false\n }\n\n RepositoryData.tagList({\n repository: props.currentRepositoryKey\n }).then(NetworkHelper.withEventdispatcher(props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ pending: false })\n if (!data.code) {\n this.observed.data = data.data\n this.dataSort(this.state.sortDesc)\n }\n })\n }\n\n dataSort (sortDesc) {\n if (this.observed.data) {\n this.observed.data.sort((item1, item2) => {\n return sortDesc ? (item2.commit.time - item1.commit.time) : (item1.commit.time - item2.commit.time)\n })\n this.dataFilter()\n }\n }\n\n dataFilter () {\n const { data, keyword } = this.observed\n\n let tagList = null\n if (data === null || !data.length) {\n tagList = []\n } else if (!keyword) {\n tagList = data\n } else {\n tagList = data.filter(FilterGenerator.nameLikes(keyword))\n }\n\n this.setState({ tagList: [tagList], repage: this.state.repage + 1 })\n }\n\n filterTag (keyword) {\n this.observed.keyword = keyword\n this.dataFilter()\n }\n\n deleteTag (tag) {\n const { currentRepositoryKey, intl } = this.props\n if (!currentRepositoryKey || !tag) {\n return false\n }\n\n RepositoryData.deleteTag({\n repository: currentRepositoryKey,\n tag: tag\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.observed.data = this.observed.data.filter((item, index) => {\n return item.name !== tag\n })\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.deleted' }),\n 0)\n )\n this.dataFilter()\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.deleteFail' }),\n 2)\n )\n }\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n })\n }\n\n deleteConfirm (tag) {\n const { intl } = this.props\n this.props.dispatchEvent(EventGenerator.addComformation('tag_remove', {\n title: intl.formatMessage(\n { id: 'message.confirmDelete' },\n { s: intl.formatMessage({ id: 'label.tag' }) + ' \\'' + tag + '\\' ' }),\n description: '',\n reject: () => { return true },\n accept: () => {\n this.deleteTag(tag)\n }\n }))\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getData(nextProps)\n return false\n }\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getData(nextProps)\n return false\n }\n if (this.state.sortDesc !== nextState.sortDesc) {\n this.dataSort(nextState.sortDesc)\n return false\n }\n return true\n }\n\n render () {\n const { tagList, pending, repage, sortDesc } = this.state\n return (\n this.filterTag(keyword)}\n sortDesc={sortDesc}\n sortSwitch={() => this.setState({ sortDesc: !sortDesc })}>\n { tagList !== null\n ? this.deleteConfirm(tag)}\n repage={repage}\n pending={pending} />\n : \n \n \n }\n \n \n )\n }\n}\n\nTagList.propTypes = {\n currentRepositoryKey: PropTypes.string,\n currentRepositoryConfig: PropTypes.object,\n match: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TagList)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plBranch, plTag } from '@pgyer/icons'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n title: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(3),\n borderBottom: '1px solid ' + theme.palette.border\n },\n icon: {\n color: theme.palette.text.light\n },\n textRight: {\n textAlign: 'right'\n },\n outRange: {\n color: theme.palette.error.main\n },\n mr16: {\n marginRight: theme.spacing(2)\n }\n})\n\nclass CreateTag extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: true,\n name: '',\n origin: '',\n description: '',\n error: {\n }\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.tagName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^\\w+(\\.\\w+)*$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.tagName' }) }\n )\n },\n {\n name: 'origin',\n passPattern: /^.{0,40}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 40 }\n )\n },\n {\n name: 'description',\n passPattern: /^[\\S\\n]{0,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'name',\n exceptionCode: 0x0403,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.tagName' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0406,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.tagName' }) }\n )\n },\n {\n name: 'origin',\n exceptionCode: 0x040C,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.createOrigin' }) }\n )\n }\n ])\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.pending &&\n this.props.currentRepositoryKey &&\n this.props.currentRepositoryConfig.repository !== undefined) {\n this.setState({ pending: false })\n }\n\n if (this.state.pending &&\n this.props.currentRepositoryConfig.repository !== undefined &&\n this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.setState({ pending: false })\n }\n\n if (this.state.pending &&\n this.props.currentRepositoryKey &&\n JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.setState({ pending: false })\n }\n\n return true\n }\n\n createTag () {\n const { currentRepositoryKey, currentRepositoryConfig, history, intl } = this.props\n const { name, origin, description } = this.state\n if (!currentRepositoryKey || !currentRepositoryConfig.repository || !this.checkInput()) {\n return false\n }\n\n if (name === 'new' || name.slice(name.length - 4) === '.git') {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_invalid' }, { s: this.props.intl.formatMessage({ id: 'label.tagName' }) })\n }\n })\n return false\n }\n\n for (const item of currentRepositoryConfig.branches) {\n if (name === item.name) {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_duplicate' }, { s: this.props.intl.formatMessage({ id: 'label.tagName' }) })\n }\n })\n return false\n }\n }\n\n for (const item of currentRepositoryConfig.tags) {\n if (name === item.name) {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_duplicate' }, { s: this.props.intl.formatMessage({ id: 'label.tagName' }) })\n }\n })\n return false\n }\n }\n\n this.setState({ pending: true })\n RepositoryData.createTag({\n repository: currentRepositoryKey,\n name: name,\n origin: origin,\n description: description\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n currentRepositoryConfig.tags.push({ id: name, name: name })\n ++currentRepositoryConfig.count.tag\n history.push(makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'tags'))\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createTagFail' }),\n 2)\n )\n this.setState({ pending: false })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, history, classes, intl } = this.props\n\n return (\n \n { intl.formatMessage({ id: 'label.newTag' }) }\n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.tagName' }) }\n \n \n {\n this.setState({ name: e.target.value, error: {} })\n }}\n />\n \n {/* \n { intl.formatMessage({ id: 'label.createOrigin' }) }\n */}\n \n { intl.formatMessage({ id: 'label.choseCreateOrigin' }) }\n \n {/* \n this.setState({ origin: e.target.value })}\n />\n */}\n \n this.setState({ origin: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.branch' })}\n { currentRepositoryConfig.branches && currentRepositoryConfig.branches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n {intl.formatMessage({ id: 'label.tag' })}\n { currentRepositoryConfig.tags && currentRepositoryConfig.tags.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n \n \n \n { intl.formatMessage({ id: 'label.tagDescription' }) }\n \n \n {\n this.setState({ description: e.target.value })\n }}\n />\n \n \n \n \n 30 ? classes.outRange : ''}\n >\n {this.state.description.length}/30\n \n \n \n \n \n history.push(makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'tags'\n ))}\n >\n {intl.formatMessage({ id: 'label.cancel' })}\n \n this.createTag()}\n >\n { this.state.pending ? : ''}\n {intl.formatMessage({ id: 'label.ok' })}\n \n \n \n \n  \n \n \n \n )\n }\n}\n\nCreateTag.propTypes = {\n currentRepositoryKey: PropTypes.string,\n currentRepositoryConfig: PropTypes.object,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CreateTag)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plBranch, plTag } from '@pgyer/icons'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n title: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(3),\n borderBottom: '1px solid ' + theme.palette.border\n },\n icon: {\n color: theme.palette.text.light\n },\n mr16: {\n marginRight: theme.spacing(2)\n }\n})\n\nclass CreateBranch extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n name: '',\n origin: '',\n error: {\n }\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'name',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'name',\n passPattern: /^.{1,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n },\n {\n name: 'name',\n passPattern: /^\\w[\\w/-\\\\.]+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'origin',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notChoose' },\n { s: this.props.intl.formatMessage({ id: 'label.createOrigin' }) }\n )\n },\n {\n name: 'origin',\n passPattern: /^.{1,40}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 40 }\n )\n }\n ])\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n name: 'name',\n exceptionCode: 0x0403,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_invalid' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'name',\n exceptionCode: 0x0406,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_duplicate' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'origin',\n exceptionCode: 0x040C,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'label.createOrigin' }) }\n )\n }\n ])\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.pending &&\n this.props.currentRepositoryKey &&\n this.props.currentRepositoryConfig.repository !== undefined) {\n this.setState({ pending: false })\n }\n\n if (this.state.pending &&\n this.props.currentRepositoryConfig.repository !== undefined &&\n this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.setState({ pending: false })\n }\n\n if (this.state.pending &&\n this.props.currentRepositoryKey &&\n JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.setState({ pending: false })\n }\n\n return true\n }\n\n createBranch () {\n const { currentRepositoryKey, currentRepositoryConfig, history, intl } = this.props\n const { name, origin } = this.state\n\n if (!currentRepositoryKey ||\n !currentRepositoryConfig.repository ||\n !this.checkInput()) {\n return false\n }\n\n if (name === 'new' || name.slice(name.length - 4) === '.git') {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_invalid' }, { s: this.props.intl.formatMessage({ id: 'label.branchName' }) })\n }\n })\n return false\n }\n\n for (const item of currentRepositoryConfig.branches) {\n if (name === item.name) {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_duplicate' }, { s: this.props.intl.formatMessage({ id: 'label.branchName' }) })\n }\n })\n return false\n }\n }\n\n for (const item of currentRepositoryConfig.tags) {\n if (name === item.name) {\n this.setState({\n error: {\n name: intl.formatMessage({ id: 'message.error._S_duplicate' }, { s: this.props.intl.formatMessage({ id: 'label.branchName' }) })\n }\n })\n return false\n }\n }\n\n this.setState({ pending: true })\n RepositoryData.createBranch({\n repository: currentRepositoryKey,\n name: name,\n origin: origin\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n currentRepositoryConfig.branches.push({ id: name, name: name })\n ++currentRepositoryConfig.count.branch\n history.push(makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'branches'\n ))\n } else if (!this.checkResponse(data.code)) {\n this.setState({ pending: false })\n } else {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.createBranchFail' }),\n 2\n )\n )\n this.setState({ pending: false })\n }\n })\n }\n\n render () {\n const { currentRepositoryConfig, history, classes, intl } = this.props\n\n return (\n \n { intl.formatMessage({ id: 'label.newBranch' }) }\n \n \n \n \n \n \n { intl.formatMessage({ id: 'label.branchName' }) }\n \n \n this.setState({ name: e.target.value })}\n />\n \n {/* \n { intl.formatMessage({ id: 'label.createOrigin' }) }\n */}\n \n { intl.formatMessage({ id: 'label.choseCreateOrigin' }) }\n \n {/* \n this.setState({ origin: e.target.value })}\n />\n */}\n \n this.setState({ origin: e.target.value })}\n >\n {intl.formatMessage({ id: 'label.branch' })}\n { currentRepositoryConfig.branches && currentRepositoryConfig.branches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n {intl.formatMessage({ id: 'label.tag' })}\n { currentRepositoryConfig.tags && currentRepositoryConfig.tags.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n \n \n  \n \n history.push(makeLink(\n currentRepositoryConfig.repository.group.name,\n currentRepositoryConfig.repository.name,\n 'branches'\n ))}\n >\n {intl.formatMessage({ id: 'label.cancel' })}\n \n this.createBranch()}\n >\n { this.state.pending ? : ''}\n {intl.formatMessage({ id: 'label.ok' })}\n \n \n \n \n  \n \n \n \n )\n }\n}\n\nCreateBranch.propTypes = {\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CreateBranch)\n )\n )\n)\n","// core component\nimport React, { Component } from 'react'\nimport { withRouter, Link } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Button from '@material-ui/core/Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { injectIntl } from 'react-intl'\nimport { plTag, plBranch } from '@pgyer/icons'\n// helper\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = theme => ({\n content: {\n maxHeight: '0px',\n marginTop: theme.spacing(3) + 'px',\n overflow: 'hidden',\n transition: 'max-height .3s',\n border: '1px solid ' + theme.palette.border,\n borderBottom: '0px'\n },\n contentShow: {\n maxHeight: '1000px',\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px'\n },\n parent: {\n padding: theme.spacing(2) + 'px 0px',\n margin: '0px ' + theme.spacing(2) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n parentA: {\n display: 'inline-block',\n marginTop: theme.spacing(2),\n marginRight: theme.spacing(2)\n },\n borderNone: {\n border: '0px'\n },\n versions: {\n marginBottom: theme.spacing(1)\n },\n button: {\n marginRight: theme.spacing(1),\n marginTop: theme.spacing(1)\n }\n})\n\nclass CommitContainRef extends Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n refList: [],\n refTotal: 0\n }\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.getData(this.props)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getData(nextProps)\n return false\n }\n if (this.props.currentHash !== nextProps.currentHash) {\n this.getData(nextProps)\n return false\n }\n return true\n }\n\n getData (props) {\n if (!props.currentHash || !props.currentRepositoryKey) {\n return false\n }\n RepositoryData.refListContainSHA({\n repository: props.currentRepositoryKey,\n hash: props.currentHash\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const refList = []\n refList.branch = data.data.branch\n refList.tag = data.data.tag\n this.setState({\n pending: false,\n refList: refList,\n refTotal: data.data.branch.length + data.data.tag.length\n })\n }\n })\n }\n\n render () {\n const {\n show,\n classes,\n parentHash,\n currentGroup,\n currentRepository,\n history,\n intl\n } = this.props\n const { refList, refTotal } = this.state\n return (\n \n {intl.formatMessage({ id: 'label.parentNode' })}\n \n {\n parentHash.length > 0\n ? parentHash.map((item, key) => {\n return (\n \n {item ? item.substr(0, 8) : ''}\n \n )\n })\n : ''\n }\n \n \n \n {intl.formatMessage({ id: 'message.someVersion' })}\n {\n refTotal > 0\n ? refList.branch.map((item, key) => {\n const branchFilesLink = makeLink(currentGroup, currentRepository, 'files', encodeURIComponent(item))\n return (\n history.push(branchFilesLink)}\n key={key}\n >\n \n  {item}\n \n )\n })\n : \n }\n {\n refTotal > 0\n ? refList.tag.map((item, key) => {\n const tagFilesLink = makeLink(currentGroup, currentRepository, 'files', encodeURIComponent(item))\n return (\n history.push(tagFilesLink)}\n key={key}\n >\n \n  {item}\n \n )\n })\n : \n }\n \n \n )\n }\n}\n\nCommitContainRef.propTypes = {\n show: PropTypes.bool.isRequired,\n classes: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n parentHash: PropTypes.array.isRequired,\n currentGroup: PropTypes.string.isRequired,\n currentRepository: PropTypes.string.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n currentHash: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CommitContainRef)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\n// import hljs from 'highlight.js'\nimport Prism from 'prismjs'\nimport 'highlight.js/styles/atom-one-light.css'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { getCodeLanguageType } from 'APPSRC/helpers/VaribleHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\nimport CodeLine from 'APPSRC/components/unit/CodeLine'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { psMore } from '@pgyer/icons'\n\n// style\nconst styles = theme => ({\n table: {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse'\n },\n diffLabelTop: {\n color: theme.palette.text.light\n },\n diffLabel: {\n height: theme.spacing(4),\n color: theme.palette.text.light,\n '& code': {\n lineHeight: theme.spacing(4) + 'px'\n }\n },\n lineLabelButton: {\n width: theme.spacing(6),\n height: theme.spacing(2),\n padding: 0 + ' !important',\n overflow: 'hidden',\n marginTop: '-5px',\n borderRadius: 0\n },\n lineLabel: {\n width: theme.spacing(6),\n padding: 0,\n verticalAlign: 'top',\n userSelect: 'none'\n },\n lineNumber: {\n width: theme.spacing(6),\n padding: '0 ' + theme.spacing(1) + 'px',\n textAlign: 'right',\n verticalAlign: 'top',\n userSelect: 'none',\n color: theme.palette.text.lighter\n },\n diffMarker: {\n width: theme.spacing(2),\n textAlign: 'center',\n padding: '0',\n verticalAlign: 'top',\n userSelect: 'none',\n color: theme.palette.text.light\n },\n code: {\n verticalAlign: 'top',\n overflowWrap: 'break-word'\n },\n lineNumberAddition: {\n backgroundColor: theme.palette.background.additionDark\n },\n lineNumberDeletion: {\n backgroundColor: theme.palette.background.deletionDark\n },\n lineNumberMarker: {\n backgroundColor: theme.palette.background.diffLabelDark\n },\n addition: {\n backgroundColor: theme.palette.background.addition\n },\n deletion: {\n backgroundColor: theme.palette.background.deletion\n },\n marker: {\n backgroundColor: theme.palette.background.diffLabel\n },\n disabled: {\n backgroundColor: '#fcfdfe'\n }\n})\n\nclass CodeDiffViewer extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n originalHTML: [],\n modifiedHTML: [],\n original: [],\n modified: [],\n fullfileContent: [],\n diffContent: []\n }\n\n this.checkResponse = ValidatorGenerator.codeValidator(this, [\n {\n exceptionCode: 0x040E,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_notFound' },\n { s: this.props.intl.formatMessage({ id: 'phrase.file' }) }\n )\n }\n ])\n }\n\n componentDidMount () {\n if (this.props.showFullFile) {\n this.makeFullDiffContent()\n } else {\n this.makeDiffContent()\n if (this.state.fullfileContent.length > 0) {\n this.buildFullFileContent()\n }\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.showFullFile !== nextProps.showFullFile) {\n if (nextProps.showFullFile) {\n this.makeFullDiffContent()\n } else {\n this.makeDiffContent()\n if (this.state.fullfileContent.length > 0) {\n this.buildFullFileContent()\n }\n }\n return false\n }\n return true\n }\n\n getFileContent (callback) {\n RepositoryData.object({\n repository: this.props.repository,\n parent: this.props.fileDiffInfo.original.sha\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.state.fullfileContent = data.data.object && data.data.object.raw ? data.data.object.raw.split('\\n') : []\n this.setState({ fullfileContent: this.state.fullfileContent })\n callback(data)\n } else if (!this.checkResponse(data.code)) {\n // do nothing\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(\n this.props.intl.formatMessage({ id: 'message.error.getFileFail' })\n , 2)\n )\n }\n })\n }\n\n // highlightOld (code) {\n // // using highlight js\n // let lang = getCodeLanguageType(this.props.fileDiffInfo.original.name || this.props.fileDiffInfo.modified.name || '')\n // let parsed = hljs.highlight(lang, code.join('\\n'), true)\n // let parsedHtml = parsed.value.split('\\n')\n // let final = []\n // for (let index = 0; index < code.length; index++) {\n // if (typeof code[index] === 'string') {\n // final[index] = parsedHtml[index]\n // }\n // }\n // return final\n // }\n\n highlight (code) {\n // using prismjs\n const lang = getCodeLanguageType(this.props.fileDiffInfo.original.name || this.props.fileDiffInfo.modified.name || '')\n const parsed = Prism.highlight(code.join('\\n'), Prism.languages[lang] || Prism.languages.markdown, lang)\n const parsedHtml = parsed.split('\\n')\n const final = []\n for (let index = 0; index < code.length; index++) {\n if (typeof code[index] === 'string') {\n final[index] = parsedHtml[index]\n }\n }\n return final\n }\n\n makeDiffContent () {\n if (this.props.fileDiffInfo && this.props.fileDiffInfo.diff && this.props.fileDiffInfo.diff.line.length) {\n const lineData = this.props.fileDiffInfo.diff.line\n const final = []\n const original = []\n const modified = []\n let lineNumber = [null, null]\n for (let index = 0; index < lineData.length; index++) {\n const line = lineData[index]\n const matches = line.match(/^@@\\s-+(\\d+)(,\\d+)?\\s+\\++(\\d+)(,\\d+)?\\s+@@.*$/i)\n if (matches) {\n lineNumber = [parseInt(matches[1]), parseInt(matches[3])]\n final.push([0, 0, '', line])\n } else if (line[0] === '-') {\n final.push([lineNumber[0], null, '-'])\n original[lineNumber[0]] = line.substring(1)\n lineNumber[0]++\n } else if (line[0] === '+') {\n final.push([null, lineNumber[1], '+'])\n modified[lineNumber[1]] = line.substring(1)\n lineNumber[1]++\n } else {\n final.push([lineNumber[0], lineNumber[1], ''])\n original[lineNumber[0]] = line.substring(1)\n modified[lineNumber[1]] = line.substring(1)\n lineNumber[0]++\n lineNumber[1]++\n }\n }\n\n this.setState({\n diffContent: final,\n original,\n modified,\n originalHTML: this.highlight(original),\n modifiedHTML: this.highlight(modified)\n })\n }\n }\n\n makeFullDiffContent () {\n if (this.state.fullfileContent.length > 0) {\n if (this.props.fileDiffInfo && this.props.fileDiffInfo.diff && this.props.fileDiffInfo.diff.line.length) {\n const modifiedLines = this.state.fullfileContent.length\n const lineData = this.props.fileDiffInfo.diff.line\n const final = []\n const original = []\n const modified = []\n let lineNumber = [null, null]\n for (let index = 0; index < lineData.length; index++) {\n const line = lineData[index]\n const matches = line.match(/^@@\\s-+(\\d+)(,\\d+)?\\s+\\++(\\d+)(,\\d+)?\\s+@@.*$/i)\n if (matches) {\n let lastLineNumber = [0, 0]\n if (final.length) {\n lastLineNumber = [...lineNumber]\n }\n\n lineNumber = [parseInt(matches[1]), parseInt(matches[3])]\n\n for (;lastLineNumber[0] < Math.min(lineNumber[0], modifiedLines) - 1;) {\n lastLineNumber[1]++\n lastLineNumber[0]++\n final.push([lastLineNumber[0], lastLineNumber[1], ''])\n original[lastLineNumber[0]] = this.state.fullfileContent[lastLineNumber[0] - 1]\n modified[lastLineNumber[1]] = this.state.fullfileContent[lastLineNumber[0] - 1]\n }\n } else if (line[0] === '-') {\n final.push([lineNumber[0], null, '-'])\n original[lineNumber[0]] = line.substring(1)\n lineNumber[0]++\n } else if (line[0] === '+') {\n final.push([null, lineNumber[1], '+'])\n modified[lineNumber[1]] = line.substring(1)\n lineNumber[1]++\n } else {\n final.push([lineNumber[0], lineNumber[1], ''])\n original[lineNumber[0]] = line.substring(1)\n modified[lineNumber[1]] = line.substring(1)\n lineNumber[0]++\n lineNumber[1]++\n }\n }\n\n for (;lineNumber[0] <= this.state.fullfileContent.length;) {\n final.push([lineNumber[0], lineNumber[1], ''])\n original[lineNumber[0]] = this.state.fullfileContent[lineNumber[0] - 1]\n modified[lineNumber[1]] = this.state.fullfileContent[lineNumber[0] - 1]\n lineNumber[0]++\n lineNumber[1]++\n }\n\n this.setState({\n diffContent: final,\n original,\n modified,\n originalHTML: this.highlight(original),\n modifiedHTML: this.highlight(modified)\n })\n }\n } else {\n this.getFileContent((data) => {\n this.makeFullDiffContent()\n })\n }\n }\n\n expandCode (direction, markerPosition) {\n if (this.state.fullfileContent.length > 0) {\n const diffContent = this.state.diffContent\n const marker = diffContent[markerPosition]\n if (direction === 'head') {\n const previous = this.state.diffContent[markerPosition - 1]\n const next = this.state.diffContent[markerPosition + 1]\n if (!previous && next[1] <= 20) {\n // first marker, and line number less than 20, remove marker\n const insertData = []\n let originLine = next[0] - 1\n for (let index = next[1] - 1; index > 0; index--) {\n insertData.unshift([originLine, index, ''])\n originLine--\n }\n diffContent.splice(markerPosition, 1, ...insertData)\n this.setState({ diffContent })\n return true\n } else if (previous && previous[1] && previous[1] + 21 >= next[1]) {\n // non-first marker, the distance of previous line number and next line number less than 20, remove marker\n const insertData = []\n let originLine = previous[0] + 1\n for (let index = previous[1] + 1; index < next[1]; index++) {\n insertData.push([originLine, index, ''])\n originLine++\n }\n diffContent.splice(markerPosition, 1, ...insertData)\n this.setState({ diffContent })\n return true\n } else {\n // normal condition, just change marker\n const markerData = marker[3].match(/^@@\\s-+(\\d+)(,)?(\\d+)?\\s+\\++(\\d+)(,)?(\\d+)?\\s+@@.*$/i)\n if (markerData) {\n marker[3] = '@@ -' +\n (parseInt(markerData[1]) - 20) + ',' +\n ((parseInt(markerData[3]) + 20) || '') + ' +' +\n (parseInt(markerData[4]) - 20) + ',' +\n ((parseInt(markerData[6]) + 20) || '') + ' @@'\n }\n\n const insertData = []\n let originLine = next[0] - 1\n for (let index = next[1] - 1; index >= next[1] - 20; index--) {\n insertData.unshift([originLine, index, ''])\n originLine--\n }\n diffContent.splice(markerPosition + 1, 0, ...insertData)\n this.setState({ diffContent })\n return true\n }\n } else if (direction === 'tail') {\n const previous = this.state.diffContent[markerPosition - 1]\n const next = this.state.diffContent[markerPosition + 1]\n if (!marker && previous[0] + 21 > this.state.fullfileContent.length) {\n // reach the bottom line, remove marker (using original file content)\n const insertData = []\n let modifiedLine = previous[1] + 1\n for (let index = previous[0] + 1; index <= this.state.fullfileContent.length; index++) {\n insertData.push([index, modifiedLine, ''])\n modifiedLine++\n }\n diffContent.splice(markerPosition, 1, ...insertData)\n this.setState({ diffContent })\n return true\n } else if (marker && next && next[1] && previous[1] + 21 >= next[1]) {\n // the distance of previous line number and next line number less than 20, remove marker\n const insertData = []\n let originLine = previous[0] + 1\n for (let index = previous[1] + 1; index < next[1]; index++) {\n insertData.push([originLine, index, ''])\n originLine++\n }\n diffContent.splice(markerPosition, 1, ...insertData)\n this.setState({ diffContent })\n return true\n } else {\n // other condition, just append code\n const insertData = []\n let originLine = previous[0] + 1\n for (let index = previous[1] + 1; index < (previous[1] + 21); index++) {\n insertData.push([originLine, index, ''])\n originLine++\n }\n diffContent.splice(markerPosition, 0, ...insertData)\n this.setState({ diffContent })\n return true\n }\n }\n } else {\n this.getFileContent((data) => {\n this.buildFullFileContent()\n this.expandCode(direction, markerPosition)\n })\n }\n }\n\n buildFullFileContent () {\n const { original, modified, fullfileContent } = this.state\n let modifiedIndex = 1\n for (let index = 0; index < fullfileContent.length; index++) {\n if (typeof original[index + 1] !== 'string') {\n original[index + 1] = fullfileContent[index]\n modified[modifiedIndex] = fullfileContent[index]\n modifiedIndex++\n } else {\n while (typeof modified[modifiedIndex] === 'string' && modifiedIndex < modified.length) {\n modifiedIndex++\n }\n }\n }\n\n this.setState({\n original,\n modified,\n originalHTML: this.highlight(original),\n modifiedHTML: this.highlight(modified)\n })\n }\n\n makeLines () {\n const final = []\n const classes = this.props.classes\n if (this.props.renderSideBySide) {\n let lastDeletionIndex = null\n let lastDeletionDiffIndex = null\n for (let index = 0; index < this.state.diffContent.length; index++) {\n const lineData = this.state.diffContent[index]\n\n if (lineData[2] === '-' && lastDeletionIndex === null) {\n lastDeletionIndex = final.length\n lastDeletionDiffIndex = index\n }\n\n if (lineData[2] === '-') {\n final.push([\n {lineData[0]},\n -,\n ,\n ,\n ,\n \n ])\n }\n\n if (lineData[2] === '+' && typeof lastDeletionIndex === 'number') {\n if (final[lastDeletionIndex]) {\n final[lastDeletionIndex][3] = {lineData[1]}\n final[lastDeletionIndex][4] = +\n final[lastDeletionIndex][5] = \n \n \n\n final[lastDeletionIndex][2] = \n \n \n lastDeletionIndex++\n lastDeletionDiffIndex++\n } else {\n lastDeletionIndex = null\n lastDeletionDiffIndex = null\n }\n }\n\n if (lineData[2] === '+' && typeof lastDeletionIndex !== 'number') {\n final.push([\n ,\n ,\n ,\n {lineData[1]},\n +,\n \n ])\n\n lastDeletionIndex = null\n lastDeletionDiffIndex = null\n }\n\n if (lineData[0] === 0 && lineData[1] === 0) {\n if (index === 0) {\n final.push([\n \n this.expandCode('head', index)} />\n ,\n ,\n \n ])\n } else {\n final.push([\n \n this.expandCode('tail', index)} />\n this.expandCode('head', index)} />\n ,\n ,\n \n ])\n }\n\n lastDeletionIndex = null\n lastDeletionDiffIndex = null\n } else if (lineData[2] === '') {\n final.push([\n {lineData[0]},\n ,\n ,\n {lineData[1]},\n ,\n \n ])\n\n lastDeletionIndex = null\n lastDeletionDiffIndex = null\n }\n }\n } else {\n for (let index = 0; index < this.state.diffContent.length; index++) {\n const lineData = this.state.diffContent[index]\n const appendClassName = { '+': classes.addition, '-': classes.deletion }[lineData[2]]\n const appendClassNameDark = { '+': classes.lineNumberAddition, '-': classes.lineNumberDeletion }[lineData[2]]\n\n if (lineData[0] === 0 && lineData[1] === 0) {\n if (index === 0) {\n final.push([\n \n this.expandCode('head', index)} />\n ,\n ,\n ,\n \n ])\n } else {\n final.push([\n \n this.expandCode('tail', index)} />\n this.expandCode('head', index)} />\n ,\n ,\n ,\n \n ])\n }\n } else {\n if (lineData[2] === '-') {\n const prevLineData = this.state.diffContent[index - 1]\n const nextLineData = this.state.diffContent[index + 1]\n const nextTwoLineData = this.state.diffContent[index + 2]\n if (nextLineData && nextLineData[2] === '+' &&\n (!nextTwoLineData || (nextTwoLineData && nextTwoLineData[2] !== '+')) &&\n (!prevLineData || (prevLineData && prevLineData[2] !== '+'))\n ) {\n final.push([\n {lineData[0]},\n ,\n -,\n \n \n \n ])\n } else {\n final.push([\n {lineData[0]},\n ,\n -,\n \n ])\n }\n } else if (lineData[2] === '+') {\n const prevLineData = this.state.diffContent[index - 1]\n const prevTwoLineData = this.state.diffContent[index - 2]\n if (prevLineData && prevLineData[2] === '-' &&\n (!prevTwoLineData || (prevTwoLineData && prevTwoLineData[2] !== '-'))\n ) {\n final.push([\n ,\n {lineData[1]},\n +,\n \n \n \n ])\n } else {\n final.push([\n ,\n {lineData[1]},\n +,\n \n ])\n }\n } else {\n final.push([\n {lineData[0]},\n {lineData[1]},\n {lineData[2]},\n \n ])\n }\n }\n }\n }\n\n if (final.length > 0 && (!this.state.fullfileContent.length || this.state.diffContent[this.state.diffContent.length - 1][0] < this.state.fullfileContent.length - 1)) {\n const lastItem = this.state.diffContent[this.state.diffContent.length - 1]\n if (lastItem[2] === '') {\n if (this.props.renderSideBySide) {\n final.push([\n \n this.expandCode('tail', this.state.diffContent.length)} />\n ,\n ,\n \n ])\n } else {\n final.push([\n \n this.expandCode('tail', this.state.diffContent.length)} />\n ,\n ,\n ,\n \n ])\n }\n }\n }\n\n return final.map((item, key) => {item})\n }\n\n render () {\n const { renderSideBySide, classes } = this.props\n\n return (\n {renderSideBySide\n ? \n \n \n \n \n \n \n \n : \n \n \n \n \n }\n \n {this.makeLines()}\n \n
)\n }\n}\n\nCodeDiffViewer.propTypes = {\n intl: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n repository: PropTypes.string.isRequired,\n fileDiffInfo: PropTypes.object.isRequired,\n showFullFile: PropTypes.bool,\n renderSideBySide: PropTypes.bool,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n expandStatus: state.DrawerStates.expandStatus\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CodeDiffViewer)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Constants from 'APPSRC/config/Constants'\nimport CodeDiffViewer from 'APPSRC/components/unit/CodeDiffViewer'\n\n// helpers\nimport { formatNumber } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n icon: {\n color: theme.palette.text.lighter\n },\n icon2: {\n color: theme.palette.primary.main\n },\n fileInfo: {\n lineHeight: theme.spacing(5) + 'px',\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n background: theme.palette.background.main,\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px 0 0',\n display: 'flex',\n alignItems: 'center'\n },\n editorBg: {\n background: '#1e1e1e'\n },\n detail: {\n overflow: 'hidden',\n border: '1px solid ' + theme.palette.border,\n borderRadius: '0 0 ' + theme.spacing(0.5) + 'px ' + theme.spacing(0.5) + 'px',\n borderTop: '0px'\n },\n mediaFile: {\n display: 'block',\n margin: 'auto',\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(5),\n maxWidth: '80%'\n },\n oldImage: {\n display: 'block',\n marginTop: theme.spacing(5),\n border: '1px solid ' + theme.palette.error.main,\n padding: theme.spacing(2),\n marginLeft: 'auto',\n marginRight: 'auto',\n maxWidth: '80%'\n },\n newImage: {\n display: 'block',\n marginTop: theme.spacing(5),\n border: '1px solid ' + theme.palette.success.dark,\n marginLeft: 'auto',\n padding: theme.spacing(2),\n marginRight: 'auto',\n maxWidth: '80%'\n },\n imagelegend: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: theme.spacing(8)\n },\n opacity1: {\n color: theme.palette.text.lighter,\n cursor: 'not-allowed'\n },\n height0: {\n height: '0px',\n paddingTop: '0px !important',\n paddingBottom: '0px !important',\n overflow: 'hidden'\n },\n unknown: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: theme.spacing(16)\n },\n markdown: {\n boxSizing: 'border-box',\n minWidth: '200px',\n maxWidth: '980px',\n margin: '0 auto',\n padding: '45px'\n }\n})\n\nclass ObjectDiffViewer extends React.Component {\n getDisplayMode (fileDiff) {\n if ((fileDiff.original.object && fileDiff.original.object.oversize) ||\n (fileDiff.modified.object && fileDiff.modified.object.oversize)\n ) {\n return Constants.obejctDiffDisplayType.oversize\n } else if (fileDiff.original.name &&\n fileDiff.modified.name &&\n fileDiff.original.name !== fileDiff.modified.name\n ) {\n return Constants.obejctDiffDisplayType.infoChange\n } else if (\n fileDiff.original.mode &&\n fileDiff.modified.mode &&\n fileDiff.original.mode !== fileDiff.modified.mode\n ) {\n return Constants.obejctDiffDisplayType.infoChange\n } else if (fileDiff.type === 'text') {\n return Constants.obejctDiffDisplayType.textChange\n } else if (fileDiff.type === 'binary' &&\n (\n (fileDiff.original.object && fileDiff.original.object.mime.match(/^image/)) ||\n (fileDiff.modified.object && fileDiff.modified.object.mime.match(/^image/))\n )\n ) {\n return Constants.obejctDiffDisplayType.imageChange\n } else if (fileDiff.type === 'oversize') {\n return Constants.obejctDiffDisplayType.oversize\n } else {\n return Constants.obejctDiffDisplayType.unknown\n }\n }\n\n render () {\n const { classes, intl, fileDiffInfo, repository, renderSideBySide, layoutUpdateTimeStamp, showFullFile } = this.props\n\n const displayMode = this.getDisplayMode(fileDiffInfo)\n\n return (\n \n {\n displayMode === Constants.obejctDiffDisplayType.imageChange && \n \n { fileDiffInfo.original.object\n ? \n \n \n {formatNumber(fileDiffInfo.original.object.size, 'Bytes')} | W: {fileDiffInfo.original.object.width}px | H: {fileDiffInfo.original.object.height}px\n \n \n : \n {intl.formatMessage({ id: 'message.fileContentEmpty' })}\n }\n \n \n { fileDiffInfo.modified.object\n ? \n \n \n {formatNumber(fileDiffInfo.modified.object.size, 'Bytes')} | W: {fileDiffInfo.modified.object.width}px | H: {fileDiffInfo.modified.object.height}px\n \n \n : \n {intl.formatMessage({ id: 'message.fileContentEmpty' })}\n }\n \n \n }\n { displayMode === Constants.obejctDiffDisplayType.infoChange && \n { fileDiffInfo.original.name !== fileDiffInfo.modified.name &&\n \n File name changed from {fileDiffInfo.original.name} to {fileDiffInfo.modified.name}\n }\n { fileDiffInfo.original.mode !== fileDiffInfo.modified.mode &&\n \n File mode changed from {fileDiffInfo.original.mode} to {fileDiffInfo.modified.mode}\n }\n \n }\n { displayMode === Constants.obejctDiffDisplayType.textChange && }\n { displayMode === Constants.obejctDiffDisplayType.unknown && {intl.formatMessage({ id: 'message.fileTypeNotSupport' })}}\n { displayMode === Constants.obejctDiffDisplayType.empty && {intl.formatMessage({ id: 'message.fileContentEmpty' })}}\n { displayMode === Constants.obejctDiffDisplayType.oversize && {intl.formatMessage({ id: 'message.fileContentOversize' })}}\n \n \n )\n }\n}\n\nObjectDiffViewer.propTypes = {\n fileDiffInfo: PropTypes.object.isRequired,\n repository: PropTypes.string.isRequired,\n layoutUpdateTimeStamp: PropTypes.number,\n renderSideBySide: PropTypes.bool,\n showFullFile: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n expandStatus: state.DrawerStates.expandStatus\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(ObjectDiffViewer)\n )\n )\n)\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\n// component\nimport Accordion from '@material-ui/core/Accordion'\nimport Button from '@material-ui/core/Button'\nimport Grid from '@material-ui/core/Grid'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { faImage, faVideo, faCompress } from '@fortawesome/free-solid-svg-icons'\nimport {\n plFile,\n plCopy,\n plExpand\n} from '@pgyer/icons'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\nimport ObjectDiffViewer from 'APPSRC/components/unit/ObjectDiffViewer'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n add: {\n color: theme.palette.success.main,\n cursor: 'default',\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(2)\n },\n delete: {\n color: theme.palette.error.main,\n cursor: 'default',\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1)\n },\n viewFileBtn: {\n minWidth: theme.spacing(24)\n },\n viewOldFileBtn: {\n minWidth: theme.spacing(27)\n },\n fileName: {\n cursor: 'default',\n marginTop: theme.spacing(0.5)\n },\n viewFile: {\n marginLeft: theme.spacing(2)\n },\n panelSummary: {\n border: '1px solid ' + theme.palette.border,\n position: 'sticky',\n top: theme.spacing(16),\n zIndex: 7\n },\n panelDetail: {\n zIndex: theme.spacing(1),\n overflow: 'hidden'\n },\n separator: {\n color: theme.palette.border\n },\n icon: {\n color: theme.palette.primary.main\n }\n})\n\nclass FileDiffExpansionPanel extends Component {\n constructor (props) {\n super(props)\n const { intl } = props\n this.state = {\n panelIsOpen: true,\n showFullFile: false,\n copyPath: 'label.copyPath',\n viewFile: intl.formatMessage({ id: 'label.browserFile' }),\n showFullFileTitle: intl.formatMessage({ id: 'label.expandFullFile' })\n }\n this.fileType = {\n text: 1,\n image: 2,\n video: 3\n }\n }\n\n viewFileDetail (link) {\n const { history } = this.props\n history.push(link)\n }\n\n toggleFullFile (e) {\n e.stopPropagation()\n const { intl } = this.props\n this.setState({\n showFullFile: !this.state.showFullFile,\n showFullFileTitle: this.state.showFullFile ? intl.formatMessage({ id: 'label.expandFullFile' }) : intl.formatMessage({ id: 'label.showDiffOnly' })\n })\n }\n\n copyPath (e, path) {\n e.stopPropagation()\n this.copySomething(path)\n this.setState({ copyPath: 'label.copied' })\n }\n\n copySomething (data) {\n const dom = window.document.createElement('input')\n dom.setAttribute('value', data)\n dom.setAttribute('type', 'text')\n window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('copy')\n window.document.body.removeChild(dom)\n }\n\n fileTypeDeal (file) {\n const { unknow, text, image, video } = this.fileType\n if (file.type.indexOf('text') !== -1 ||\n file.type.indexOf('application/xml') !== -1\n ) {\n return text\n } else if (file.type.indexOf('image') !== -1) {\n return image\n } else if (file.type.indexOf('video/mp4') !== -1) {\n return video\n } else {\n return unknow\n }\n }\n\n fileIconDeal (fileType) {\n const { image, video } = this.fileType\n switch (fileType) {\n case image:\n return faImage\n case video:\n return faVideo\n default:\n return plFile\n }\n }\n\n togglePanel () {\n this.setState({\n panelIsOpen: !this.state.panelIsOpen\n })\n }\n\n render () {\n const {\n fileDiffInfo,\n renderSideBySide,\n currentRepositoryKey,\n modifiedRepositoryKey,\n classes,\n intl,\n match,\n layoutUpdateTimeStamp,\n fileTreeIsOpen\n } = this.props\n let { parentHash, hash } = this.props\n const { text, image } = this.fileType\n const { panelIsOpen, copyPath, viewFile, showFullFile, showFullFileTitle } = this.state\n parentHash = parentHash ? parentHash[0].substr(0, 8) : ''\n hash = hash ? hash.substr(0, 8) : ''\n const parentHashFileLink = makeLink(match.params.groupName, match.params.repositoryName, 'files', parentHash, fileDiffInfo.original.name)\n const currentHashFileLink = makeLink(match.params.groupName, match.params.repositoryName, 'files', hash, fileDiffInfo.modified.name)\n const fileType = this.fileTypeDeal(fileDiffInfo)\n return ( this.togglePanel(e)}\n square={Boolean(false)}\n >\n }\n aria-controls='panel1a-content'\n className={classes.panelSummary}\n >\n \n \n event.stopPropagation()}\n onFocus={event => event.stopPropagation()}\n className={classes.fileName}\n component='span'\n >\n   \n {\n fileDiffInfo.original.name === fileDiffInfo.modified.name\n ? fileDiffInfo.modified.name\n : fileDiffInfo.original.name + ' -> ' + fileDiffInfo.modified.name\n }   \n \n {\n fileDiffInfo.original.mode === fileDiffInfo.modified.mode\n ? ''\n : fileDiffInfo.original.mode + ' -> ' + fileDiffInfo.modified.mode\n }  \n \n \n {\n this.copyPath(e, fileDiffInfo.modified.name)\n e.stopPropagation()\n }} onMouseLeave={() => {\n window.setTimeout(() => this.setState({ copyPath: 'label.copyPath' }), 100)\n }}\n />\n \n {\n fileType === text && \n \n +{fileDiffInfo.diff.additions}\n \n \n {fileDiffInfo.diff.deletions}\n \n \n |\n \n \n \n \n { currentRepositoryKey === modifiedRepositoryKey && hash &&\n \n \n \n }\n \n }\n {\n fileType === image && currentRepositoryKey === modifiedRepositoryKey && parentHash && hash && \n \n \n \n \n \n \n \n }\n \n \n \n \n \n )\n }\n}\n\nFileDiffExpansionPanel.propTypes = {\n currentRepositoryKey: PropTypes.string.isRequired,\n modifiedRepositoryKey: PropTypes.string.isRequired,\n fileDiffInfo: PropTypes.object.isRequired,\n renderSideBySide: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n hash: PropTypes.string,\n parentHash: PropTypes.array,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n layoutUpdateTimeStamp: PropTypes.number,\n fileTreeIsOpen: PropTypes.bool\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FileDiffExpansionPanel)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faSquare, faFile, faFolder, faFolderOpen } from '@fortawesome/free-solid-svg-icons'\n\n// style\nlet themeSpacing = 0\nconst styles = theme => {\n themeSpacing = parseInt(theme.spacing(1))\n return {\n fileBrowserTop: {\n position: 'relative',\n height: '100%'\n },\n fileBrowser: {\n maxHeight: '100%',\n overflow: 'auto',\n overflowX: 'hidden',\n background: theme.palette.background.light\n },\n tree: {\n paddingRight: theme.spacing(1),\n lineHeight: theme.spacing(4.5) + 'px',\n cursor: 'pointer',\n '& > *': { lineHeight: theme.spacing(4.5) + 'px' },\n '&:hover': { background: theme.palette.background.dark }\n },\n listSub: {\n position: 'relative'\n },\n listDir: {\n lineHeight: theme.spacing(5) + 'px',\n paddingLeft: theme.spacing(1),\n background: theme.palette.background.light\n },\n listDir2: {\n position: 'absolute',\n width: '100%',\n left: '0',\n top: '0',\n paddingLeft: theme.spacing(1),\n lineHeight: theme.spacing(5) + 'px',\n boxSizing: 'border-box',\n background: theme.palette.background.light,\n overflowX: 'hidden'\n },\n listFile: {\n lineHeight: theme.spacing(5) + 'px',\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(1),\n cursor: 'pointer',\n '& > *': { lineHeight: theme.spacing(5) + 'px' },\n '&:hover': { background: theme.palette.background.dark }\n },\n add: {\n float: 'right',\n color: theme.palette.success.main\n },\n delete: {\n float: 'right',\n color: theme.palette.error.main\n }\n }\n}\n\nclass FileBrowser extends React.Component {\n constructor (props) {\n super(props)\n\n this.fileBrowser = {\n changeFilesTmp: null,\n treeFiles: null,\n listFiles: null\n }\n\n this.state = {\n count: 0\n }\n\n this.initChangeFiles()\n this.listFilesRef = React.createRef()\n }\n\n initChangeFiles () {\n const { changeFiles } = this.props\n if (!changeFiles || !changeFiles.length) {\n return false\n }\n\n changeFiles.map((item, index) => {\n const lastIndex = item.name.lastIndexOf('/')\n item.used = false\n item.dirname = lastIndex !== -1 ? item.name.slice(0, lastIndex) : ''\n item.filename = lastIndex !== -1 ? item.name.slice(lastIndex + 1) : item.name\n return true\n })\n\n this.initTreeFiles()\n this.initListFiles()\n }\n\n initTreeFiles () {\n const { changeFiles } = this.props\n if (!changeFiles || !changeFiles.length) {\n return false\n }\n\n this.fileBrowser.treeFiles = { '/': true, '/open': true }\n this.fileBrowser.changeFilesTmp = [...changeFiles]\n this.fileBrowser.changeFilesTmp.sort((item1, item2) => {\n return (item1.dirname !== item2.dirname && item1.dirname.indexOf(item2.dirname) > -1) ? -1 : 0\n })\n\n this.fileBrowser.changeFilesTmp.map((item, index) => {\n let tmpDir = this.fileBrowser.treeFiles\n\n if (item.dirname) {\n const dirs = item.dirname.split('/')\n dirs.map((item, index) => {\n if (!item) {\n return false\n }\n if (tmpDir[item] === undefined) {\n tmpDir[item] = { '/': true, '/open': true }\n }\n tmpDir = tmpDir[item]\n return true\n })\n }\n\n tmpDir[item.filename] = { '/': false, ...item }\n return true\n })\n\n return true\n }\n\n initListFiles () {\n const { changeFiles } = this.props\n if (!changeFiles || !changeFiles.length) {\n return false\n }\n\n this.fileBrowser.listFiles = []\n\n changeFiles.map((item, index) => {\n if (item.used) {\n return item\n }\n item.used = true\n const dirTmp = { name: item.dirname, files: [item] }\n changeFiles.map((item, index) => {\n if (item.used) {\n return item\n }\n if (item.dirname === dirTmp.name) {\n item.used = true\n dirTmp.files.push(item)\n }\n return true\n })\n this.fileBrowser.listFiles.push(dirTmp)\n return true\n })\n\n return true\n }\n\n treeFiles (path, treeFiles, deep) {\n const { fileClick, classes } = this.props\n const files = Object.keys(treeFiles)\n let filesCount = 0\n if (files.length < 3) {\n return false\n }\n\n files.map((item, index) => {\n filesCount += (item !== '/' && item !== '/open' && !treeFiles[item]['/']) ? 1 : 0\n return true\n })\n\n return (\n { filesCount > 0 || files.length > 3\n ? \n {\n treeFiles['/open'] = !treeFiles['/open']\n this.setState({ count: this.state.count + 1 })\n }}>\n   {path}\n \n { treeFiles['/open'] && files.map((item, index) => item !== '/' && item !== '/open' && \n { treeFiles[item]['/']\n ? this.treeFiles(item, treeFiles[item], deep + 1)\n : fileClick(treeFiles[item].hash)} style={this.calcPadding(deep, false)}>\n   {treeFiles[item].filename}\n -{treeFiles[item].delete}\n +{treeFiles[item].add} \n \n }\n )}\n \n : files.map((item, index) => item !== '/' && item !== '/open' && \n {this.treeFiles((path !== '/' ? (path + '/') : '') + item, treeFiles[item], deep)}\n )}\n )\n }\n\n calcPadding (deep, isDir) {\n return {\n paddingLeft: (2 * deep + (isDir ? 1 : 3)) * themeSpacing + 'px'\n }\n }\n\n listFiles () {\n const { fileClick, classes } = this.props\n const { listFiles } = this.fileBrowser\n if (!listFiles || !listFiles.length) {\n return false\n }\n\n return (\n {listFiles.map((item, index) => {\n return (\n {this.calcDir(item.name)}/\n {item.name}/\n {item.files && item.files.map((item, index) => {\n return ( fileClick(item.hash)}>\n   {item.filename}\n -{item.delete}\n +{item.add} \n )\n })}\n )\n })\n }\n )\n }\n\n calcDir (dir) {\n if (!dir) {\n return ''\n }\n\n const dirs = dir.split('/')\n let index = dirs.length - 2\n while (dirs.join('/').length > 32 && index > 0) {\n dirs[index--] = '..'\n }\n\n return dirs.join('/')\n }\n\n listFilesScroll (e) {\n if (this.props.treeView) {\n return false\n }\n\n const scrollTop = e.target.scrollTop\n let offsetTop = 0\n let offsetBottom = 0\n const offset = 5 * themeSpacing\n const children = this.listFilesRef.current.children\n for (let i = 0; i < children.length; i++) {\n offsetBottom += children[i].clientHeight\n if (scrollTop >= offsetTop && scrollTop < offsetBottom) {\n if (scrollTop > offsetBottom - offset) {\n children[i].style = 'position: relative'\n children[i].children[0].style = 'top: ' + (children[i].clientHeight - offset) + 'px'\n } else {\n children[i].style = 'position: static'\n children[i].children[0].style = 'top: 0; width: ' + children[i].clientWidth + 'px'\n }\n } else {\n children[i].style = 'position: relative'\n children[i].children[0].style = 'top: 0'\n }\n\n offsetTop += children[i].clientHeight\n }\n }\n\n render () {\n const { treeView, classes } = this.props\n this.initChangeFiles()\n return (\n this.listFilesScroll(e)}>\n {treeView ? this.treeFiles('/', this.fileBrowser.treeFiles, 0) : this.listFiles()}\n \n \n )\n }\n}\n\nFileBrowser.propTypes = {\n changeFiles: PropTypes.array.isRequired,\n treeView: PropTypes.bool.isRequired,\n fileClick: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {}\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FileBrowser)\n )\n )\n)\n","// core component\nimport React, { Component } from 'react'\nimport { withRouter } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport PropTypes from 'prop-types'\n\nimport Grid from '@material-ui/core/Grid'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Typography from '@material-ui/core/Typography'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport FileDiffExpansionPanel from 'APPSRC/components/unit/FileDiffExpansionPanel'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport FileBrowser from 'APPSRC/components/unit/FileBrowser'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { injectIntl } from 'react-intl'\n\nconst styles = theme => ({\n add: {\n color: theme.palette.success.main,\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(2)\n },\n delete: {\n color: theme.palette.error.main,\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1)\n },\n changedFile: {\n color: theme.palette.primary.main,\n paddingBottom: theme.spacing(1),\n backgroundColor: 'transparent',\n fontSize: '1.25rem',\n '&:hover': {\n backgroundColor: 'transparent',\n boxShadow: 'none'\n }\n },\n typography: {\n padding: theme.spacing(2)\n },\n changedFileList: {\n width: '100%',\n maxWidth: theme.spacing(113),\n backgroundColor: theme.palette.background.paper\n },\n paper: {\n minWidth: theme.spacing(38),\n width: '100%'\n },\n expansionMargin0: {\n margin: 0\n },\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n content: {\n zIndex: theme.spacing(1),\n backgroundColor: theme.palette.background.light\n },\n stickyPosition: {\n position: 'sticky',\n top: theme.spacing(8),\n zIndex: theme.spacing(1),\n padding: theme.spacing(2) + 'px 0px',\n backgroundColor: theme.palette.background.light\n },\n fileTreeHide: {\n display: 'none'\n },\n fileTreeSticky: {\n position: 'sticky',\n top: theme.spacing(14.5),\n maxHeight: (window.innerHeight - 116) + 'px'\n },\n diffTitle: {\n lineHeight: theme.spacing(4) + 'px'\n },\n fileDiffPanel: {\n marginBottom: theme.spacing(3)\n }\n})\n\nclass FileDiffDetail extends Component {\n constructor (props) {\n super(props)\n this.mountedFlag = false\n this.observed = {\n currentRepositoryKey: null\n }\n this.state = {\n changedFilesInfo: [],\n diffViwerLayoutUpdateTimestamp: 0,\n fileTreeIsOpen: false,\n fileTreeGridNumber: 3,\n effectFileCount: 0,\n fileDiff: [],\n renderSideBySide: true,\n addLine: 0,\n deleteLine: 0,\n pending: true,\n large: false\n }\n }\n\n toggleDiffShow () {\n this.setState({\n renderSideBySide: !this.state.renderSideBySide,\n diffViwerLayoutUpdateTimestamp: new Date().getTime()\n })\n }\n\n toggleFileTree () {\n this.setState({\n fileTreeIsOpen: !this.state.fileTreeIsOpen,\n renderSideBySide: this.state.fileTreeIsOpen,\n diffViwerLayoutUpdateTimestamp: new Date().getTime()\n })\n }\n\n jumpToAnchor (hash) {\n window.location.href = window.location.href.split('#')[0] + '#' + hash\n }\n\n componentDidMount () {\n this.mountedFlag = true\n this.observed.currentRepositoryKey = this.props.currentRepositoryKey\n this.setState({ pending: true })\n this.getData(this.props)\n }\n\n getFileTreeInfo (data) {\n const fileChangedInfo = []\n for (let key = 0; key < data.length; key++) {\n const item = data[key]\n if (item.modified && item.modified.name) {\n fileChangedInfo.push({\n name: item.modified.name,\n add: item.diff.additions,\n delete: Math.abs(item.diff.deletions),\n hash: item.modified.sha\n })\n }\n }\n return fileChangedInfo\n }\n\n getData (props) {\n if (!props.currentRepositoryKey || !props.childHash || !props.parentHash.length) {\n return false\n }\n\n RepositoryData.fileChanges({\n repository: props.currentRepositoryKey,\n original: props.parentHash[0],\n modified: props.parentHash.length > 1 ? props.parentHash[1] : props.childHash\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (data.data.large) {\n this.setState({\n effectFileCount: data.data.count,\n large: true,\n pending: false\n })\n return false\n }\n\n const addtions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.additions, 0)\n const deletions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.deletions, 0)\n\n const changedFilesInfo = this.getFileTreeInfo(data.data.detail)\n\n this.setState({\n changedFilesInfo: changedFilesInfo,\n effectFileCount: data.data.count,\n fileDiff: data.data.detail,\n addLine: addtions,\n deleteLine: deletions,\n pending: false\n })\n })\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.setState({ pending: true })\n this.getData(nextProps)\n return false\n }\n if (this.props.childHash !== nextProps.childHash) {\n this.setState({ pending: true })\n this.getData(nextProps)\n return false\n }\n if (this.props.parentHash[0] !== nextProps.parentHash[0]) {\n this.setState({ pending: true })\n this.getData(nextProps)\n return false\n }\n return true\n }\n\n render () {\n const {\n effectFileCount,\n addLine,\n deleteLine,\n fileDiff,\n renderSideBySide,\n pending,\n fileTreeIsOpen,\n fileTreeGridNumber,\n changedFilesInfo,\n diffViwerLayoutUpdateTimestamp,\n large\n } = this.state\n const { classes, intl, childHash, parentHash, currentRepositoryKey } = this.props\n return (\n \n \n \n {intl.formatMessage({ id: 'label.fileModification' })}  \n {pending ? '' : '(' + effectFileCount + ')'}\n \n \n \n \n \n {intl.formatMessage({ id: 'label.allFiles' })} :  \n { !pending\n ? effectFileCount\n : \n }\n \n \n { !pending\n ? '+' + addLine\n : \n }\n \n \n { !pending\n ? deleteLine\n : \n }\n \n \n this.toggleDiffShow(e)}\n >\n {renderSideBySide ? 'inline' : 'side-by-side'}\n \n this.toggleFileTree(e)}\n >\n {fileTreeIsOpen ? intl.formatMessage({ id: 'label.closeFileTree' }) : intl.formatMessage({ id: 'label.openFileTree' })}\n \n \n \n \n \n \n \n this.jumpToAnchor(e)} />\n \n \n {!pending && fileDiff && fileDiff.length > 0 && \n {fileDiff.map((item, index) => \n )}\n }\n {!large && (pending || !fileDiff || !fileDiff.length) && \n \n }\n {large && \n {intl.formatMessage({ id: 'message.diffFileToMany' })}\n }\n \n \n \n )\n }\n}\n\nFileDiffDetail.propTypes = {\n dispatchEvent: PropTypes.func.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired,\n parentHash: PropTypes.array.isRequired,\n childHash: PropTypes.string.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(FileDiffDetail)\n )\n )\n )\n)\n","// core component\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Paper from '@material-ui/core/Paper'\nimport Button from '@material-ui/core/Button'\nimport Avatar from '@material-ui/core/Avatar'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { psCaretDown } from '@pgyer/icons'\nimport CommitContainRef from 'APPSRC/components/view/unit/CommitContainRef'\nimport FileDiffDetail from 'APPSRC/components/view/FileDiffDetail'\nimport CommitHashChip from 'APPSRC/components/unit/CommitHashChip'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink, getUserInfo } from 'APPSRC/helpers/VaribleHelper'\n\nconst styles = theme => ({\n oneline: {\n display: 'flex',\n alignItems: 'center'\n },\n ml16: {\n marginLeft: theme.spacing(2)\n },\n icon: {\n marginLeft: theme.spacing(1),\n fontSize: theme.spacing(1),\n color: theme.palette.text.main\n },\n transform: {\n transform: 'rotate(180deg)'\n }\n})\n\nconst CommiterAvatar = withStyles(theme => ({\n root: {\n width: theme.spacing(3),\n height: theme.spacing(3)\n }\n}))(Avatar)\n\nclass CommitDetail extends React.Component {\n constructor (props) {\n super(props)\n this.mountedFlag = false\n this.state = {\n currentGroup: props.match.params.groupName ? props.match.params.groupName : '',\n currentRepository: props.match.params.repositoryName ? props.match.params.repositoryName : '',\n commitDetail: {},\n commiterInfo: {\n name: ''\n },\n optionAnchorEl: null,\n parentHash: [],\n parentHashShow: false\n }\n\n this.mountedFlag = false\n }\n\n openOptionPopover (e) {\n this.setState({ optionAnchorEl: e.currentTarget })\n }\n\n closeOptionPopover () {\n this.setState({ optionAnchorEl: null })\n }\n\n componentDidMount () {\n this.mountedFlag = true\n const { closeDrawer } = this.props\n closeDrawer()\n this.getData(this.props, this.state)\n }\n\n componentWillUnmount () {\n this.mountedFlag = false\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // watch current hash\n if (this.props.match.params.hash !== nextProps.match.params.hash) {\n this.getData(nextProps, nextState)\n return false\n }\n // watch repository id\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getData(nextProps, nextState)\n return false\n }\n\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getData(nextProps, nextState)\n return false\n }\n\n return true\n }\n\n copyHash (hash) {\n const { intl } = this.props\n this.copySomething(hash)\n this.setState({ copyHash: intl.formatMessage({ id: 'label.copied' }) })\n }\n\n copySomething (data) {\n const dom = window.document.createElement('input')\n dom.setAttribute('value', data)\n dom.setAttribute('type', 'text')\n window.document.body.appendChild(dom)\n dom.select()\n document.execCommand('copy')\n window.document.body.removeChild(dom)\n }\n\n getData (props, state) {\n if (!props.match.params.hash || !props.currentRepositoryKey || !props.currentRepositoryConfig.repository) {\n return false\n }\n\n RepositoryData.commitDetail({\n repository: props.currentRepositoryKey,\n commitSHA: props.match.params.hash\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n const result = data.data\n if (!result) {\n return false\n }\n if (props.currentRepositoryConfig) {\n const commiterInfo = getUserInfo(props.currentRepositoryConfig.members, result.email)\n const parentHash = result.parent.split(' ')\n this.setState({\n commitDetail: result,\n commiterInfo: commiterInfo,\n parentHash: parentHash\n })\n }\n })\n }\n\n render () {\n const {\n commitDetail,\n commiterInfo,\n currentRepository,\n currentGroup,\n parentHash,\n parentHashShow\n } = this.state\n\n const { classes, currentRepositoryKey, history, intl, match } = this.props\n return (\n \n \n \n \n \n {commitDetail.commit}\n \n   \n \n {commiterInfo.name}  {intl.formatMessage({ id: 'label.editIn' })} \n \n { commitDetail.time && \n \n \n }\n \n \n \n \n {commitDetail.sha && }\n history.push(makeLink(currentGroup, currentRepository, 'files', match.params.hash, ''))}\n >\n {intl.formatMessage({ id: 'label.browserFile' })}\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nCommitDetail.propTypes = {\n match: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n closeDrawer: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n closeDrawer: () => {\n dispatch({ type: 'drawer.expandStatus.close' })\n },\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CommitDetail)\n )\n )\n )\n)\n","// core component\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Avatar from '@material-ui/core/Avatar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { psConfirm, psClock } from '@pgyer/icons'\nimport Constants from 'APPSRC/config/Constants'\n\n// helper\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nconst styles = theme => ({\n reviewer: {\n position: 'relative'\n },\n reviewerIcon: {\n marginLeft: '-8px',\n borderRadius: '50%',\n boxSizing: 'border-box',\n width: theme.spacing(4),\n height: theme.spacing(4),\n border: '2px solid ' + theme.palette.background.light + ' !important'\n },\n isReview: {\n right: 0,\n bottom: 0,\n zIndex: '1',\n fontSize: '12px',\n borderRadius: '50%',\n position: 'absolute',\n color: theme.palette.text.light,\n background: theme.palette.background.light,\n border: '2px solid ' + theme.palette.background.light\n },\n reviewed: {\n color: theme.palette.success.main\n }\n})\n\nclass MergeRequestReviewers extends React.Component {\n render () {\n const { repositoryInfo, reviewers, classes } = this.props\n\n return (\n {reviewers.length > 0 && reviewers.map((item, index) => {\n const reviewer = repositoryInfo.members.filter(FilterGenerator.id(item.user))[0]\n\n return (\n \n \n )\n })\n }\n )\n }\n}\n\nMergeRequestReviewers.propTypes = {\n repositoryInfo: PropTypes.object.isRequired,\n reviewers: PropTypes.array.isRequired,\n classes: PropTypes.object.isRequired\n}\n\nexport default withStyles(styles)(\n withRouter((MergeRequestReviewers))\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faArrowRight } from '@fortawesome/free-solid-svg-icons'\nimport { plMerge, plMerged, plForbid, plConfirm } from '@pgyer/icons'\nimport MergeRequestReviewers from 'APPSRC/components/unit/MergeRequestReviewers'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport SmartLink from 'APPSRC/components/unit/SmartLink'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport { makeLink, getUserInfo } from 'APPSRC/helpers/VaribleHelper'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\n// style\nconst styles = theme => ({\n item: {\n padding: theme.spacing(1.5) + 'px ' + theme.spacing(3) + 'px',\n borderTop: '1px solid ' + theme.palette.border\n },\n oneline: {\n lineHeight: theme.spacing(3.5) + 'px'\n },\n title: {\n '& a': {\n color: theme.palette.text.main + ' !important',\n fontWeight: 600\n }\n },\n textMain: {\n '& a': {\n color: theme.palette.text.main + ' !important'\n }\n },\n reviewers: {\n marginBottom: theme.spacing(0.5)\n }\n})\n\nclass MergeRequestItem extends React.Component {\n constructor (props) {\n super(props)\n this.dataDeal()\n }\n\n dataDeal () {\n const { data, repositoryList, history } = this.props\n if (!data && !repositoryList.length) {\n return false\n }\n\n const targetRepository = repositoryList.filter(FilterGenerator.id(data.targetRepository))\n if (targetRepository.length) {\n const repoData = targetRepository[0]\n data.targetRepository = repoData\n const targetLink = makeLink(repoData.group.name, repoData.name, 'commits', encodeURIComponent(data.targetBranch))\n data.targetLink = history.push(targetLink)}>{data.targetBranch}\n const titleLink = makeLink(repoData.group.name, repoData.name, 'mergerequests', data.number)\n data.titleLink = history.push(titleLink)}>{data.title}\n } else {\n data.targetLink = data.targetBranch\n data.titleLink = data.targetBranch\n }\n\n const sourceRepository = repositoryList.filter(FilterGenerator.id(data.sourceRepository))\n if (sourceRepository.length) {\n const repoData = sourceRepository[0]\n data.sourceRepository = repoData\n const sourceLink = makeLink(repoData.group.name, repoData.name, 'commits', encodeURIComponent(data.sourceBranch))\n data.sourceLink = history.push(sourceLink)}>{data.sourceBranch}\n\n data.updater = getUserInfo(repoData.members, data.commit.email).name\n } else {\n data.sourceLink = data.sourceBranch\n if (targetRepository.length) {\n const repoData = targetRepository[0]\n data.updater = getUserInfo(repoData.members, data.commit.email).name\n } else {\n data.updater = data.commit.email\n }\n }\n }\n\n render () {\n const { isRepository, data, classes, intl } = this.props\n const mergeRequestStatus = Constants.mergeRequestStatus\n\n return (\n \n \n {data.titleLink}    \n {data.status === mergeRequestStatus.open && }\n {data.status === mergeRequestStatus.merged && }\n {data.status === mergeRequestStatus.closed && }\n \n \n {!isRepository && data.targetRepository.name}\n !{data.number} · \n \n  \n {data.sourceLink} \n  \n {data.targetLink}\n  · \n \n {data.updater}  \n {intl.formatMessage({ id: 'label.editIn' })}:  \n \n \n \n \n \n \n {data.reviewers.length > 0\n ? \n :  \n }\n \n \n {intl.formatMessage({ id: 'label.updateTime' })}:  \n \n \n \n \n )\n }\n}\n\nMergeRequestItem.propTypes = {\n repositoryList: PropTypes.array.isRequired,\n isRepository: PropTypes.bool.isRequired,\n data: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MergeRequestItem)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport { plSearch, plSortDesc } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport EmptyListNotice from 'APPSRC/components/unit/EmptyListNotice'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport MergeRequestItem from 'APPSRC/components/unit/MergeRequestItem'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n list: {\n marginTop: theme.spacing(3)\n },\n button: {\n marginLeft: theme.spacing(4)\n },\n input: {\n width: theme.spacing(30),\n maxWidth: '100%'\n },\n icon: {\n color: theme.palette.text.light\n },\n transform: {\n transform: 'rotateX(180deg)'\n },\n more: {\n paddingTop: theme.spacing(2)\n }\n})\n\nclass MergeRequest extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n pending: true,\n isGlobal: !props.match.params.groupName,\n isRepository: null,\n tabValue: 0,\n keyword: '',\n sortDesc: true,\n page: 1,\n pagesize: 10,\n noMore: false,\n mrList: null,\n relatedRepository: []\n }\n\n this.observed = {\n keyword: ''\n }\n }\n\n componentDidMount () {\n this.getData(this.props, this.state, false)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (JSON.stringify(this.props.currentGroupConfig) !== JSON.stringify(nextProps.currentGroupConfig)) {\n this.getData(nextProps, nextState, false)\n return false\n }\n\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getData(nextProps, nextState, false)\n return false\n }\n\n if (this.state.page !== nextState.page && !nextState.pending) {\n this.setState({ pending: true })\n this.getData(nextProps, nextState, false)\n return false\n }\n\n if (this.state.sortDesc !== nextState.sortDesc) {\n this.getData(nextProps, nextState, true)\n return false\n }\n\n if (this.state.tabValue !== nextState.tabValue) {\n this.getData(nextProps, nextState, true)\n return false\n }\n\n return true\n }\n\n getData (props, state, reset) {\n if (reset) {\n this.observed.keyword = state.keyword\n this.setState({ pending: true, page: 1, mrList: null })\n }\n\n const data = {\n status: state.tabValue,\n keyword: state.keyword,\n sort: state.sortDesc ? 'desc' : 'asc',\n page: reset ? 1 : state.page,\n pagesize: state.pagesize\n }\n\n if (props.currentRepositoryConfig.repository) {\n data.repository = props.currentRepositoryConfig.repository.id\n RepositoryData.mergeRequests(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.getDataDeal(data, true)\n })\n } else if (props.currentGroupConfig.group) {\n data.group = props.currentGroupConfig.group.id\n GroupData.mergeRequests(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.getDataDeal(data, false)\n })\n } else if (state.isGlobal) {\n RepositoryData.relatedMergeRequests(data)\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.getDataDeal(data, false)\n })\n }\n }\n\n getDataDeal (data, isRepository) {\n if (!data.code) {\n this.setState({\n pending: false,\n isRepository: isRepository,\n mrList: [...(this.state.mrList ? this.state.mrList : []), ...(this.state.isGlobal ? data.data.mergeRequests : data.data)],\n noMore: (this.state.isGlobal ? data.data.mergeRequests.length : data.data.length) < this.state.pagesize,\n relatedRepository: data.data.relatedRepository\n })\n } else {\n this.setState({ mrList: [] })\n }\n }\n\n searchMergeRequests () {\n if (this.observed.keyword !== this.state.keyword) {\n this.getData(this.props, this.state, true)\n }\n }\n\n getTabs () {\n const { isRepository, isGlobal, relatedRepository } = this.state\n const { repositoryList, currentGroupConfig, currentRepositoryConfig, intl } = this.props\n const status = Constants.mergeRequestStatus\n const tabs = []\n tabs[0] = intl.formatMessage({ id: 'label.all' })\n tabs[status.open] = intl.formatMessage({ id: 'message.opened' })\n tabs[status.merged] = intl.formatMessage({ id: 'message.merged' })\n tabs[status.closed] = intl.formatMessage({ id: 'message.closed' })\n\n if (this.observed.keyword) {\n return tabs\n }\n\n const counts = []\n counts[0] = 0\n counts[status.open] = 0\n counts[status.merged] = 0\n counts[status.closed] = 0\n if (isRepository !== null) {\n if (isRepository) {\n counts[status.open] = currentRepositoryConfig.repository.mergeRequestCount.open\n counts[status.merged] = currentRepositoryConfig.repository.mergeRequestCount.merged\n counts[status.closed] = currentRepositoryConfig.repository.mergeRequestCount.closed\n } else {\n if (isGlobal) {\n repositoryList.map((item, index) => {\n relatedRepository.map((repositoryId) => {\n if (item.id === repositoryId) {\n counts[status.open] += item.mergeRequestCount.open\n counts[status.merged] += item.mergeRequestCount.merged\n counts[status.closed] += item.mergeRequestCount.closed\n }\n return true\n })\n return true\n })\n } else {\n repositoryList.map((item, index) => {\n if (item.group && currentGroupConfig.group && item.group.id === currentGroupConfig.group.id) {\n counts[status.open] += item.mergeRequestCount.open\n counts[status.merged] += item.mergeRequestCount.merged\n counts[status.closed] += item.mergeRequestCount.closed\n }\n return true\n })\n }\n }\n counts[0] = counts[status.open] + counts[status.merged] + counts[status.closed]\n }\n\n tabs[0] += '(' + counts[0] + ')'\n tabs[status.open] += '(' + counts[status.open] + ')'\n tabs[status.merged] += '(' + counts[status.merged] + ')'\n tabs[status.closed] += '(' + counts[status.closed] + ')'\n return tabs\n }\n\n render () {\n const { repositoryList, classes, history, intl } = this.props\n const { pending, isRepository, tabValue, sortDesc, page, noMore, mrList } = this.state\n\n return (\n !pending && this.setState({ tabValue: newValue })}\n currentTab={tabValue}\n >\n this.setState({ keyword: e.target.value })}\n onKeyDown={(e) => {\n if (e.keyCode === 13) {\n this.searchMergeRequests()\n }\n }}\n InputProps={{\n startAdornment: \n }}\n /> \n !pending && this.setState({ sortDesc: !sortDesc })} className={[classes.icon, sortDesc ? '' : classes.transform].join(' ')} icon={plSortDesc} />\n \n \n \n \n { mrList\n ? mrList && mrList.length\n ? \n {mrList.map((item, index) => {\n return ()\n })}\n \n \n \n { noMore\n ? \n : pending\n ? \n \n \n : \n }\n \n \n \n : \n : \n \n \n }\n \n \n \n )\n }\n}\n\nMergeRequest.propTypes = {\n repositoryList: PropTypes.array.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n currentGroupConfig: state.DataStore.currentGroupConfig,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MergeRequest)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plBranch } from '@pgyer/icons'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\n// helpers\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\n\n// style\nconst styles = theme => ({\n title: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(3),\n borderBottom: '1px solid ' + theme.palette.border\n },\n repositorySelect: {\n border: '1px solid ' + theme.palette.border,\n borderRadius: theme.spacing(0.5) + 'px',\n overflow: 'hidden'\n },\n branchTitle: {\n lineHeight: theme.spacing(5) + 'px',\n background: theme.palette.background.main,\n padding: '0px ' + theme.spacing(2) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n branchSelect: {\n padding: theme.spacing(2)\n },\n commit: {\n borderTop: '1px solid ' + theme.palette.border\n },\n icon: {\n color: theme.palette.text.light\n },\n errorInfo: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText\n },\n hideError: {\n display: 'none'\n }\n})\n\nclass CreateMergeRequest extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n name: '',\n originRepository: '',\n targetRepository: '',\n originBranch: '',\n targetBranch: '',\n originLastCommit: {},\n targetLastCommit: {},\n targetRepositoryList: [],\n targetRepositoryBranches: [],\n originRepositoryBranches: [],\n originRepositoryInfo: null,\n targetRepositoryInfo: null,\n error: false,\n groupName: props.match.params.groupName ? props.match.params.groupName : '',\n repositoryName: props.match.params.repositoryName ? props.match.params.repositoryName : ''\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.currentRepositoryConfig.repository !== undefined &&\n this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getTargetRepository()\n return false\n }\n\n if (JSON.stringify(this.props.currentRepositoryConfig) !== JSON.stringify(nextProps.currentRepositoryConfig)) {\n this.getTargetRepository()\n return false\n }\n\n if (this.props.repositoryList !== nextProps.repositoryList) {\n if (this.state.groupName && !this.state.repositoryName) {\n const groupRepository = nextProps.repositoryList.filter(FilterGenerator.groupName(this.state.groupName))\n if (groupRepository.length > 0) {\n this.getTargetRepository(groupRepository[0].id)\n }\n }\n if (!this.state.groupName && !this.state.repositoryName) {\n if (nextProps.repositoryList.length > 0) {\n this.getInitRepositoryBranches(nextProps.repositoryList[0].id)\n this.getTargetRepository(nextProps.repositoryList[0].id)\n }\n }\n return false\n }\n\n this.props.history.listen(location => {\n // 最新路由的 location 对象,可以通过比较 pathname 是否相同来判断路由的变化情况\n if (location.pathname === '/mergerequests/new') {\n this.setState({\n groupName: '',\n repositoryName: ''\n })\n return false\n }\n })\n\n if (this.state.originRepository !== nextState.originRepository && nextProps.repositoryList.length > 0) {\n if (this.state.groupName && !this.state.repositoryName) {\n const groupRepository = nextProps.repositoryList.filter(FilterGenerator.groupName(nextState.groupName))\n this.getInitRepositoryBranches(nextState.originRepository)\n if (groupRepository.length > 0) {\n this.getTargetRepository(nextState.originRepository)\n }\n } else if (!this.state.repositoryName && !this.state.groupName && !this.state.originRepository) {\n this.getInitRepositoryBranches(nextProps.repositoryList[0].id)\n this.getTargetRepository(nextState.originRepository)\n } else {\n this.getInitRepositoryBranches(nextState.originRepository)\n this.getTargetRepository(nextState.originRepository)\n }\n return false\n }\n\n if (!this.state.originRepository && !this.state.repositoryName && !this.state.groupName && nextProps.repositoryList.length > 0) {\n this.setState({ originRepository: nextProps.repositoryList[0].id })\n return true\n }\n\n if (!this.state.originRepository && !this.state.repositoryName && this.state.groupName && nextProps.repositoryList.length > 0) {\n const groupRepository = nextProps.repositoryList.filter(FilterGenerator.groupName(nextState.groupName))\n if (groupRepository.length) {\n this.getInitRepositoryBranches(groupRepository[0].id)\n }\n return false\n }\n\n return true\n }\n\n componentDidMount () {\n this.getTargetRepository()\n }\n\n getTargetRepository (repositoryKey = '') {\n const { currentRepositoryKey } = this.props\n\n if (!currentRepositoryKey && !repositoryKey) {\n return false\n }\n\n RepositoryData.targetRepository({\n repository: currentRepositoryKey || repositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n let targetRepositoryKey = ''\n const targetRepositoryList = data.data\n targetRepositoryList.map((item) => {\n if (item.forkFlag) {\n targetRepositoryKey = item.rKey\n }\n return true\n })\n if (!targetRepositoryKey) {\n targetRepositoryKey = currentRepositoryKey || repositoryKey\n }\n RepositoryData.branchList({\n repository: targetRepositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n originRepository: currentRepositoryKey || repositoryKey,\n targetRepository: targetRepositoryKey,\n targetRepositoryList: targetRepositoryList,\n targetRepositoryBranches: data.data\n })\n }\n })\n }\n })\n }\n\n getInitRepositoryBranches (repositoryKey) {\n RepositoryData.branchList({\n repository: repositoryKey\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n originRepository: repositoryKey,\n originRepositoryBranches: data.data,\n error: false\n })\n }\n })\n }\n\n getOriginRepositoryBranches (e) {\n RepositoryData.branchList({\n repository: e.target.value\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n originRepository: e.target.value,\n originRepositoryBranches: data.data,\n error: false,\n originLastCommit: false,\n targetLastCommit: false\n })\n }\n })\n }\n\n getTargetRepositoryBranches (e) {\n RepositoryData.branchList({\n repository: e.target.value\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n targetRepository: e.target.value,\n targetRepositoryBranches: data.data,\n error: false,\n targetLastCommit: false\n })\n }\n })\n }\n\n selectOriginBranch (e) {\n const { currentRepositoryKey, repositoryList } = this.props\n const { originRepository } = this.state\n RepositoryData.lastCommitLog({\n ref: e.target.value,\n repository: currentRepositoryKey || originRepository\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const originRepositoryInfo = originRepository ? repositoryList.filter(FilterGenerator.id(originRepository)) : null\n this.setState({\n originLastCommit: data.data,\n originBranch: e.target.value,\n originRepositoryInfo: originRepositoryInfo[0],\n error: false\n })\n }\n })\n }\n\n selectTargetBranch (e) {\n const { repositoryList } = this.props\n const { targetRepository } = this.state\n RepositoryData.lastCommitLog({\n ref: e.target.value,\n repository: targetRepository\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const targetRepositoryInfo = targetRepository ? repositoryList.filter(FilterGenerator.id(targetRepository)) : null\n this.setState({\n targetLastCommit: data.data,\n targetBranch: e.target.value,\n targetRepositoryInfo: targetRepositoryInfo[0],\n error: false\n })\n }\n })\n }\n\n GoMergeRequestDetail () {\n const { history } = this.props\n const { originRepository, targetRepository, originBranch, targetBranch, targetRepositoryInfo } = this.state\n if (originRepository === targetRepository && originBranch === targetBranch) {\n this.setState({\n error: true\n })\n } else {\n history.push(makeLink(targetRepositoryInfo.group.name,\n targetRepositoryInfo.name,\n 'mergerequests',\n 'detail',\n originRepository,\n encodeURIComponent(originBranch),\n targetRepository,\n encodeURIComponent(targetBranch)\n ))\n }\n }\n\n render () {\n const { currentRepositoryConfig, classes, intl, repositoryList } = this.props\n const {\n targetRepositoryList,\n targetRepositoryBranches,\n originLastCommit,\n targetLastCommit,\n originBranch,\n targetBranch,\n originRepository,\n targetRepository,\n error,\n repositoryName,\n groupName,\n originRepositoryBranches,\n originRepositoryInfo,\n targetRepositoryInfo\n } = this.state\n let groupRepository = []\n if (!repositoryName && groupName) {\n groupRepository = repositoryList.filter(FilterGenerator.groupName(groupName))\n }\n return (\n \n { intl.formatMessage({ id: 'label.createMergeRequest' }) }\n \n \n \n \n \n {intl.formatMessage({ id: 'label.sourceBranch' })}\n \n \n this.getOriginRepositoryBranches(e)}\n onClick={e => !originRepository && this.props.history.push(makeLink('repositories/new'))}\n >\n { repositoryName && currentRepositoryConfig.repository &&\n \n {currentRepositoryConfig.repository.group.name}/{currentRepositoryConfig.repository.name}\n \n }\n { !!groupRepository.length && groupName && groupRepository.map((item, index) => {\n if (item.group.name !== groupName) {\n return null\n }\n\n return (\n {item.group.displayName + '/' + item.displayName}\n )\n })\n }\n { groupRepository.length === 0 && originRepository.length === 0 && groupName && {intl.formatMessage({ id: 'label.createRepository' })} }\n {\n !groupName && !repositoryName && !!originRepository.length && !!repositoryList.length && repositoryList.map((item, index) => {\n return (\n {item.group.displayName + '/' + item.displayName}\n )\n })\n }\n {(!originRepository.length || !repositoryList.length) && {intl.formatMessage({ id: 'label.createRepository' })}}\n \n \n \n this.selectOriginBranch(e)}\n >\n {intl.formatMessage({ id: 'label.branch' })}\n { currentRepositoryConfig.branches && currentRepositoryConfig.branches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n {\n !currentRepositoryConfig.branches && originRepositoryBranches && originRepositoryBranches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n \n \n \n { (originRepositoryInfo || currentRepositoryConfig.repository) && originLastCommit && originBranch && \n \n \n }\n \n \n \n \n {intl.formatMessage({ id: 'label.targetBranch' })}\n \n \n this.getTargetRepositoryBranches(e)}\n >\n { targetRepositoryList && targetRepositoryList.map((item, index) => {\n return (\n {item.name}\n )\n })\n }\n {\n targetRepositoryList.length === 0 && {intl.formatMessage({ id: 'label.createRepository' })}\n }\n \n \n \n this.selectTargetBranch(e)}\n >\n {intl.formatMessage({ id: 'label.branch' })}\n { targetRepositoryBranches && targetRepositoryBranches.map((item, index) => {\n return (\n   \n {item.name}\n )\n })\n }\n \n \n \n { (targetRepositoryInfo || currentRepositoryConfig.repository) && targetLastCommit && targetBranch && \n \n \n }\n \n \n {error && \n \n \n \n {intl.formatMessage({ id: 'message.selectDifferentBranch' })}\n \n \n \n }\n \n this.GoMergeRequestDetail()}\n >\n {intl.formatMessage({ id: 'label.compareBranch' })}\n \n \n \n \n \n )\n }\n}\n\nCreateMergeRequest.propTypes = {\n repositoryList: PropTypes.array.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(CreateMergeRequest)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport FormControl from '@material-ui/core/FormControl'\nimport Select from '@material-ui/core/Select'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Typography from '@material-ui/core/Typography'\nimport FileDiffExpansionPanel from 'APPSRC/components/unit/FileDiffExpansionPanel'\nimport FileBrowser from 'APPSRC/components/unit/FileBrowser'\n\n// style\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n copyHash: {\n minWidth: theme.spacing(1),\n height: theme.spacing(4),\n width: theme.spacing(4),\n padding: theme.spacing(0),\n marginBottom: theme.spacing(0.5)\n },\n commitLog: {\n paddingRight: 0\n },\n changedFileList: {\n width: '100%',\n backgroundColor: theme.palette.background.paper\n },\n commitAvatar: {\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(0.5),\n marginRight: theme.spacing(1)\n },\n commiterName: {\n paddingTop: theme.spacing(0.5)\n },\n add: {\n color: theme.palette.success.main,\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(2)\n },\n delete: {\n color: theme.palette.error.main,\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1)\n },\n changedFile: {\n color: theme.palette.primary.main,\n paddingBottom: theme.spacing(1),\n backgroundColor: 'transparent',\n fontSize: '1.25rem',\n '&:hover': {\n backgroundColor: 'transparent',\n boxShadow: 'none'\n }\n },\n typography: {\n padding: theme.spacing(2)\n },\n paper: {\n minWidth: theme.spacing(38),\n width: '100%'\n },\n expansionMargin0: {\n margin: 0\n },\n content: {\n zIndex: theme.spacing(1),\n backgroundColor: theme.palette.background.light\n },\n stickyPosition: {\n position: 'sticky',\n top: theme.spacing(8),\n zIndex: theme.spacing(1),\n backgroundColor: theme.palette.background.light\n },\n diffInfoSticky: {\n top: '105px',\n position: 'sticky',\n marginTop: '-24px',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n height: theme.spacing(10) + 1 + 'px',\n zIndex: theme.spacing(1),\n backgroundColor: theme.palette.background.light\n },\n and: {\n lineHeight: theme.spacing(4) + 'px'\n },\n fileTreeHide: {\n display: 'none'\n },\n fileTreeSticky: {\n position: 'sticky',\n top: '174px',\n maxHeight: (window.innerHeight - 174) + 'px'\n },\n fileDiffPanel: {\n marginBottom: theme.spacing(3),\n '& > div > div:first-child': {\n top: '186px'\n }\n }\n})\n\nclass MergeRequestDiff extends React.Component {\n constructor (props) {\n super(props)\n const { latestVersion, baseVersion } = this.props\n this.state = {\n diffViwerLayoutUpdateTimestamp: 0,\n renderSideBySide: true,\n fileTreeIsOpen: false,\n fileTreeGridNumber: 3,\n startHash: latestVersion,\n endHash: baseVersion\n }\n }\n\n toggleDiffShow () {\n this.setState({\n renderSideBySide: !this.state.renderSideBySide,\n diffViwerLayoutUpdateTimestamp: new Date().getTime()\n })\n }\n\n componentDidMount () {\n const { latestVersion, baseVersion } = this.props\n this.setState({\n startHash: latestVersion,\n endHash: baseVersion\n })\n }\n\n toggleFileTree () {\n this.setState({\n fileTreeIsOpen: !this.state.fileTreeIsOpen,\n renderSideBySide: this.state.fileTreeIsOpen,\n diffViwerLayoutUpdateTimestamp: new Date().getTime()\n })\n }\n\n jumpToAnchor (hash) {\n window.location.href = window.location.href.split('#')[0] + '#' + hash\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.state.startHash !== nextState.startHash) {\n this.props.getVersionDiff(nextProps.sourceRepository, nextProps.targetRepository, nextState.startHash, this.state.endHash, nextProps)\n return false\n }\n\n if (this.state.endHash !== nextState.endHash) {\n this.props.getVersionDiff(nextProps.sourceRepository, nextProps.targetRepository, this.state.startHash, nextState.endHash, nextProps)\n return false\n }\n\n return true\n }\n\n changeHash (e, position) {\n const val = e.target.value\n if (position === 'start') {\n this.setState({\n startHash: val\n })\n } else {\n this.setState({\n endHash: val\n })\n }\n }\n\n render () {\n const {\n classes,\n intl,\n changedFilesInfo,\n fileDiff,\n pending,\n effectFileCount,\n addLine,\n deleteLine,\n showVersionCompare,\n versionList,\n baseVersionList,\n baseVersion,\n sourceRepository,\n latestVersion\n } = this.props\n const {\n renderSideBySide,\n fileTreeIsOpen,\n fileTreeGridNumber,\n diffViwerLayoutUpdateTimestamp,\n startHash,\n endHash\n } = this.state\n return (\n \n {showVersionCompare && \n \n \n \n this.changeHash(e, 'start')}\n >\n { versionList && versionList.map((item, index) => {\n return (\n \n {index === 0\n ? intl.formatMessage({ id: 'label.lastModified' })\n : intl.formatMessage(\n { id: 'label.lastModified_N' },\n { n: versionList.length - index }\n )\n }\n \n \n {'-' + item.sha.substr(0, 8)}\n \n )\n })\n }\n \n \n \n {intl.formatMessage({ id: 'label.and' })}\n \n \n this.changeHash(e, 'end')}\n >\n { baseVersionList && baseVersionList.map((item, index) => {\n return (\n \n {index === 0\n ? 'Base Line'\n : intl.formatMessage(\n { id: 'label.lastModified_N' },\n { n: baseVersionList.length - index }\n )\n }\n \n \n {'-' + item.sha.substr(0, 8)}\n \n )\n })\n }\n \n \n \n \n \n }\n \n \n {intl.formatMessage({ id: 'label.allFiles' })} :  \n { !pending\n ? effectFileCount\n : \n }\n \n \n { !pending\n ? '+' + addLine\n : \n }\n \n \n { !pending\n ? deleteLine\n : \n }\n \n \n this.toggleDiffShow(e)}\n >\n {renderSideBySide ? 'inline' : 'side-by-side'}\n \n this.toggleFileTree(e)}\n >\n {fileTreeIsOpen ? intl.formatMessage({ id: 'label.closeFileTree' }) : intl.formatMessage({ id: 'label.openFileTree' })}\n \n \n \n \n \n \n this.jumpToAnchor(e)} />\n \n \n \n {!pending && fileDiff\n ? fileDiff.map((item, index) => \n \n )\n : \n \n }\n \n \n \n \n )\n }\n}\n\nMergeRequestDiff.propTypes = {\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n changedFilesInfo: PropTypes.array.isRequired,\n fileDiff: PropTypes.array.isRequired,\n pending: PropTypes.bool.isRequired,\n effectFileCount: PropTypes.number.isRequired,\n addLine: PropTypes.number.isRequired,\n deleteLine: PropTypes.number.isRequired,\n showVersionCompare: PropTypes.bool.isRequired,\n versionList: PropTypes.array,\n latestVersion: PropTypes.string,\n baseVersion: PropTypes.string,\n baseVersionList: PropTypes.array,\n getVersionDiff: PropTypes.func,\n sourceRepository: PropTypes.string,\n targetRepository: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n // repositoryList: state.DataStore.repositoryList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MergeRequestDiff)\n )\n )\n)\n","// core component\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles, withTheme } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport Button from '@material-ui/core/Button'\nimport Avatar from '@material-ui/core/Avatar'\nimport Divider from '@material-ui/core/Divider'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport TextField from '@material-ui/core/TextField'\nimport Typography from '@material-ui/core/Typography'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plMerge, plCheck, plMerged, plForbid, plConfirm, plAddAlt, plTrash } from '@pgyer/icons'\nimport MergeRequestDiff from 'APPSRC/components/unit/MergeRequestDiff'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport InlineMarker from 'APPSRC/components/unit/InlineMarker'\nimport ActivityItem from 'APPSRC/components/unit/ActivityItem'\nimport ShowHelper from 'APPSRC/components/unit/ShowHelper'\nimport CommitItem from 'APPSRC/components/unit/CommitItem'\nimport TitleList from 'APPSRC/components/unit/TitleList'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport Member from 'APPSRC/components/unit/Member'\nimport Constants from 'APPSRC/config/Constants'\nimport UAC from 'APPSRC/config/UAC'\n\n// helper\nimport { makeLink } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport ValidatorGenerator from 'APPSRC/helpers/ValidatorGenerator'\n\nconst styles = theme => ({\n loading: {\n paddingTop: theme.spacing(16),\n paddingBottom: theme.spacing(16),\n justifyContent: 'center'\n },\n createMRTitle: {\n lineHeight: theme.spacing(5) + 'px',\n marginBottom: theme.spacing(2),\n borderBottom: '1px solid ' + theme.palette.border\n },\n activityItem: {\n display: 'flex',\n position: 'relative',\n alignItems: 'center',\n height: theme.spacing(8),\n padding: '0px ' + theme.spacing(2) + 'px',\n '& > svg:first-child': {\n padding: '12px',\n borderRadius: '50%',\n marginRight: theme.spacing(2),\n color: theme.palette.primary.main,\n border: '1px solid ' + theme.palette.border,\n width: theme.spacing(5),\n height: theme.spacing(5),\n boxSizing: 'border-box'\n },\n '& > div:first-child': {\n width: theme.spacing(5),\n height: theme.spacing(5),\n marginRight: theme.spacing(2)\n }\n },\n activityItemLine: {\n top: '-12px',\n position: 'absolute',\n left: theme.spacing(4.5),\n height: theme.spacing(3),\n borderLeft: '1px solid ' + theme.palette.border\n },\n hideInput: {\n display: 'none'\n },\n tab: {\n marginTop: theme.spacing(3)\n },\n tabHeader: {\n position: 'sticky',\n top: theme.spacing(8),\n zIndex: 9,\n borderBottom: '1px solid ' + theme.palette.border\n },\n mergeRequestInfo: {\n border: 0\n },\n description: {\n padding: theme.spacing(2) + 'px'\n },\n button: {\n margin: theme.spacing(2) + 'px 0px'\n },\n icon: {\n color: theme.palette.text.light\n },\n assigned: {\n color: theme.palette.primary.main\n },\n members: {\n overflowY: 'auto',\n borderRadius: '4px',\n boxSizing: 'border-box',\n maxHeight: theme.spacing(27.5),\n border: '1px solid ' + theme.palette.border\n },\n member: {\n cursor: 'pointer',\n borderBottom: '1px solid ' + theme.palette.border,\n padding: theme.spacing(1.5) + 'px ' + theme.spacing(2) + 'px',\n '&:last-child': {\n border: 'none'\n },\n '&:hover': {\n background: theme.palette.background.main\n }\n },\n reviewersTitle: {\n height: theme.spacing(5),\n boxSizing: 'content-box',\n padding: '0px ' + theme.spacing(2) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n activityTitle: {\n marginBottom: theme.spacing(2)\n },\n reviewersMenuItem: {\n justifyContent: 'space-between',\n height: theme.spacing(5)\n },\n divider: {\n margin: theme.spacing(1) + 'px 0px'\n },\n deleteReviewer: {\n color: theme.palette.error.main\n },\n reviewersMember: {\n padding: theme.spacing(3) + 'px ' + theme.spacing(2) + 'px',\n height: theme.spacing(10)\n },\n noReviewers: {\n fontSize: '14px',\n textAlign: 'center',\n lineHeight: theme.spacing(10) + 'px'\n },\n cancel: {\n marginRight: theme.spacing(2)\n }\n})\n\nconst CommiterAvatar = withStyles(theme => ({\n root: {\n width: theme.spacing(3),\n height: theme.spacing(3)\n }\n}))(Avatar)\n\nclass MergeRequestDetail extends React.Component {\n constructor (props) {\n super(props)\n\n const params = props.match.params\n this.state = {\n mid: params.mid ? params.mid : '',\n mergeRequestInfo: {\n id: '',\n sourceRepository: params.sourceRepository ? params.sourceRepository : '',\n sourceBranch: params.sourceBranch ? decodeURIComponent(params.sourceBranch) : '',\n targetRepository: params.targetRepository ? params.targetRepository : '',\n targetBranch: params.targetBranch ? decodeURIComponent(params.targetBranch) : ''\n },\n sourceRepositoryInfo: null,\n targetRepositoryInfo: null,\n requesterInfo: null,\n handlerInfo: null,\n title: params.sourceBranch ? decodeURIComponent(params.sourceBranch) : '',\n description: '',\n tabValue: 0,\n pending: true,\n changedFiles: [],\n fileDiff: [],\n effectFileCount: 0,\n addLine: 0,\n deleteLine: 0,\n commits: [],\n activities: [],\n showCommitInput: false,\n mergeMessage: '',\n usingSquash: false,\n error: {},\n hasMergeConflict: false,\n mergeStatus: 'open',\n versionList: [],\n latestVersion: '',\n baseVersion: '',\n submitMergeRequest: false,\n mergePending: false,\n\n reviewers: [],\n reviewersMenu: null,\n updateReviewersPending: false\n }\n\n this.checkInput = ValidatorGenerator.stateValidator(this, [\n {\n name: 'message',\n passPattern: /^.+$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error._S_empty' },\n { s: this.props.intl.formatMessage({ id: 'label.branchName' }) }\n )\n },\n {\n name: 'message',\n passPattern: /^.{1,30}$/,\n errorMessage: this.props.intl.formatMessage(\n { id: 'message.error.noMoreThan_N_characters' },\n { n: 30 }\n )\n }\n ])\n this.getVersionDiff = this.getVersionDiff.bind(this)\n }\n\n componentDidMount () {\n this.props.closeDrawer()\n this.state.mid ? this.getDetailData(this.props, this.state) : this.getChangeData(this.props, this.state)\n if (this.state.mid) {\n this.getVersionList(this.state)\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.repositoryList.length !== nextProps.repositoryList.length) {\n this.state.mid ? this.getDetailData(nextProps, nextState) : this.getChangeData(nextProps, nextState)\n this.getVersionList(nextState)\n return false\n }\n\n if (JSON.stringify(this.state.mergeRequestInfo) !== JSON.stringify(nextState.mergeRequestInfo)) {\n if (this.state.updateReviewersPending) {\n this.getActivities(this.state.mergeRequestInfo.targetRepository, this.state.mergeRequestInfo.id)\n return false\n }\n\n this.getChangeData(nextProps, nextState)\n this.getVersionList(nextState)\n return false\n }\n if (this.props.match.params.mid !== nextProps.match.params.mid) {\n this.setState({ mid: nextProps.match.params.mid })\n return false\n }\n if (this.state.mid !== nextState.mid) {\n this.getDetailData(nextProps, nextState)\n this.getVersionList(nextState)\n return false\n }\n if (this.state.mergeStatus !== nextState.mergeStatus) {\n this.getDetailData(nextProps, nextState)\n return false\n }\n if (this.props.currentRepositoryKey !== nextProps.currentRepositoryKey) {\n this.getDetailData(nextProps, nextState)\n return false\n }\n return true\n }\n\n getVersionDiff (sourceRepository, targetRepository, original, modified, props) {\n RepositoryData.fileChanges({\n versionCompare: true,\n repository: sourceRepository,\n original: original,\n targetRepository: targetRepository,\n modified: modified\n }).then(NetworkHelper.withEventdispatcher(props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const addtions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.additions, 0)\n const deletions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.deletions, 0)\n this.setState({\n pending: false,\n changedFiles: this.getFileTreeInfo(data.data.detail),\n fileDiff: data.data.detail,\n effectFileCount: data.data.count,\n addLine: addtions,\n deleteLine: deletions\n })\n }\n })\n }\n\n getChangeData (props, state) {\n const { repositoryList } = props\n const { id, sourceRepository, sourceBranch, targetRepository, targetBranch } = state.mergeRequestInfo\n if (!sourceRepository || !sourceBranch || !targetRepository || !targetBranch || !repositoryList.length) {\n return false\n }\n\n if (id) {\n this.getRepositories(props, state, false)\n } else {\n this.setState({\n submitMergeRequest: true\n })\n this.getRepositories(props, state, true)\n }\n RepositoryData.fileChanges({\n mergeRequest: id,\n repository: sourceRepository,\n original: sourceBranch,\n targetRepository: targetRepository,\n modified: targetBranch\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n const addtions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.additions, 0)\n const deletions = data.data.detail.reduce((accumulator, item) => accumulator + item.diff.deletions, 0)\n this.setState({\n pending: false,\n changedFiles: this.getFileTreeInfo(data.data.detail),\n fileDiff: data.data.detail,\n effectFileCount: data.data.count,\n addLine: addtions,\n deleteLine: deletions\n })\n }\n\n RepositoryData.mergeRequestCommits({\n mergeRequest: id,\n sourceRepository: sourceRepository,\n sourceBranch: sourceBranch,\n targetRepository: targetRepository,\n targetBranch: targetBranch\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n commits: data.data\n })\n }\n })\n\n if (this.state.mid) {\n this.getActivities(targetRepository, id)\n }\n })\n }\n\n getActivities (targetRepository, id) {\n RepositoryData.activities({\n repository: targetRepository,\n mergeRequest: id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n activities: data.data,\n updateReviewersPending: false\n })\n }\n })\n }\n\n getFileTreeInfo (data) {\n const fileChangedInfo = []\n for (let key = 0; key < data.length; key++) {\n const item = data[key]\n if (item.modified && item.modified.name) {\n fileChangedInfo.push({\n name: item.modified.name,\n add: item.diff.additions,\n delete: Math.abs(item.diff.deletions),\n hash: item.modified.sha\n })\n }\n }\n return fileChangedInfo\n }\n\n // if the user is creating the mr, then createMergeRequest = true\n getRepositories (props, state, createMergeRequest = false) {\n const { repositoryList } = props\n const { mergeRequestInfo } = state\n\n const target = repositoryList.filter(FilterGenerator.id(mergeRequestInfo.targetRepository))[0]\n this.setState({\n sourceRepositoryInfo: createMergeRequest ? repositoryList.filter(FilterGenerator.id(mergeRequestInfo.sourceRepository))[0] : state.mergeRequestInfo.sourceRepoInfo,\n targetRepositoryInfo: target,\n requesterInfo: mergeRequestInfo.submitter,\n handlerInfo: mergeRequestInfo.handler ? target.members.filter(FilterGenerator.id(mergeRequestInfo.handler))[0] : null\n })\n }\n\n createMergeRequest () {\n const { mergeRequestInfo, title, description, targetRepositoryInfo, reviewers, mergePending } = this.state\n const { history, intl } = this.props\n if (mergePending) {\n return false\n }\n\n this.setState({ mergePending: true })\n RepositoryData.createMergeRequest({\n sourceRepository: mergeRequestInfo.sourceRepository,\n sourceBranch: mergeRequestInfo.sourceBranch,\n targetRepository: mergeRequestInfo.targetRepository,\n targetBranch: mergeRequestInfo.targetBranch,\n title: title,\n description: description,\n reviewers: reviewers.join(',')\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ mergePending: false })\n if (!data.code) {\n this.setState({\n mid: data.data.id\n })\n\n history.push(makeLink(targetRepositoryInfo.group.name,\n targetRepositoryInfo.name,\n 'mergerequests',\n data.data.id\n ))\n } else if (data.code === 0x0406) {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.mergeRequestExists' }), 2\n )\n )\n } else if (data.code === 0x040F) {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.branchProteced' }), 2\n )\n )\n } else {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.createMergeRequestFail' }), 2\n )\n )\n }\n })\n }\n\n getDetailData (props, state) {\n const { currentRepositoryKey } = props\n const { mid } = state\n if (!mid || !currentRepositoryKey) {\n return false\n }\n\n RepositoryData.mergeRequestDetail({\n repository: currentRepositoryKey,\n mid: mid\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n mergeRequestInfo: data.data,\n reviewers: data.data.reviewers.map(item => item.user)\n })\n }\n })\n }\n\n getVersionList (state) {\n const { mergeRequestInfo } = state\n if (!mergeRequestInfo.id) {\n return false\n }\n\n RepositoryData.mergeRequestVersionList({\n mergeRequest: mergeRequestInfo.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n versionList: data.data.mergeVersionList || [],\n latestVersion: data.data.mergeVersionList.length > 0 ? data.data.mergeVersionList[0].sha : '',\n baseVersion: data.data.baseVersion,\n baseVersionList: data.data.baseVersionList\n })\n }\n })\n }\n\n checkMergeType () {\n const { mergeRequestInfo, mergeMessage, usingSquash, showCommitInput } = this.state\n const { intl } = this.props\n if (!mergeRequestInfo.id && (!this.checkInput() && showCommitInput)) {\n return false\n }\n\n this.setState({ mergePending: true })\n RepositoryData.checkMergeType({\n mergeRequest: mergeRequestInfo.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n if (data.data.canBeFastForward) {\n this.mergeBranch(this.props, this.state, '', false)\n } else {\n this.setState({\n showCommitInput: true\n })\n if (mergeMessage) {\n this.mergeBranch(this.props, this.state, mergeMessage, usingSquash)\n } else {\n this.setState({\n error: {\n mergeMessage: intl.formatMessage({ id: 'message.error._S_empty' }, { s: this.props.intl.formatMessage({ id: 'label.mergeMessage' }) })\n },\n mergePending: false\n })\n return false\n }\n }\n } else {\n this.setState({ mergePending: false })\n }\n })\n }\n\n mergeBranch (props, state, message, usingSquash) {\n const { mergeRequestInfo } = state\n const { intl } = this.props\n if (!mergeRequestInfo.id) {\n return false\n }\n\n RepositoryData.mergeBranch({\n message: message,\n mergeRequest: mergeRequestInfo.id,\n usingSquash: usingSquash\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n this.setState({ mergePending: false })\n if (!data.code) {\n if (data.data.conflict) {\n this.setState({\n hasMergeConflict: true,\n mergeStatus: 'conflict',\n showCommitInput: false\n })\n } else {\n this.setState({\n mergeStatus: 'merged',\n showCommitInput: false\n })\n }\n } else if (data.code === 0x0405) {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.userNotReview' }), 2\n )\n )\n } else if (data.code === 0x040F) {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.branchProteced' }), 2\n )\n )\n } else {\n this.props.dispatchEvent(\n EventGenerator.NewNotification(\n intl.formatMessage({ id: 'message.error.mergeFail' }), 2\n )\n )\n }\n })\n }\n\n closeMergeRequest () {\n const { intl } = this.props\n if (!this.state.mergeRequestInfo) {\n return false\n }\n\n RepositoryData.mergeRequestClose({\n mergeRequest: this.state.mergeRequestInfo.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({\n mergeStatus: 'closed',\n showCommitInput: false\n })\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.closed' }), 0))\n }\n })\n }\n\n assignReviewer (isCreateMR, reviewer) {\n const { updateReviewersPending, mergeRequestInfo, reviewers } = this.state\n const { intl } = this.props\n if (updateReviewersPending || !reviewer || (!isCreateMR && !mergeRequestInfo.id)) {\n return false\n }\n\n if (isCreateMR) {\n reviewers.includes(reviewer) ? this.deleteReviewer(isCreateMR, reviewer) : this.setState({ reviewers: [reviewer] })\n } else {\n if (reviewers.includes(reviewer)) {\n return false\n }\n\n if (reviewers.length && this.isReview(reviewers[0])) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.reviewedCanNotAssign' }), 1))\n return false\n }\n\n this.setState({ updateReviewersPending: true })\n RepositoryData.assignReviewer({\n id: mergeRequestInfo.id,\n reviewer: reviewer\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ reviewers: [reviewer] })\n this.getDetailData(this.props, this.state)\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.updated' }), 0))\n } else {\n this.setState({ updateReviewersPending: false })\n data.code === 0x0405 && this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.reviewedCanNotAssign' }), 1))\n }\n })\n }\n }\n\n deleteReviewer (isCreateMR, reviewer) {\n const { updateReviewersPending, mergeRequestInfo, reviewers } = this.state\n const { intl } = this.props\n if (updateReviewersPending || !reviewer || (!isCreateMR && !mergeRequestInfo.id)) {\n return false\n }\n\n if (isCreateMR) {\n this.setState({ reviewers: reviewers.filter(item => item !== reviewer) })\n } else {\n if (this.isReview(reviewer)) {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.reviewedCanNotDelete' }), 1))\n return false\n }\n\n this.setState({ updateReviewersPending: true })\n RepositoryData.deleteReviewer({\n id: mergeRequestInfo.id,\n reviewer: reviewer\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ reviewers: reviewers.filter(item => item !== reviewer) })\n this.getDetailData(this.props, this.state)\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.deleted' }), 0))\n } else {\n this.setState({ updateReviewersPending: false })\n data.code === 0x0405 && this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.reviewedCanNotDelete' }), 1))\n }\n })\n }\n }\n\n mergeRequestReview () {\n const { mergeRequestInfo, updateReviewersPending } = this.state\n const { intl } = this.props\n if (updateReviewersPending || !mergeRequestInfo.id) {\n return false\n }\n\n this.setState({ updateReviewersPending: true })\n RepositoryData.mergeRequestReview({\n id: mergeRequestInfo.id\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.setState({ updateReviewersPending: false })\n this.getDetailData(this.props, this.state)\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.approved' }), 0))\n }\n })\n }\n\n isReview (reviewer) {\n const { mergeRequestInfo } = this.state\n if (!mergeRequestInfo.id) {\n return false\n }\n\n reviewer = mergeRequestInfo.reviewers.filter(item => item.user === reviewer)\n return reviewer.length ? reviewer[0].isReview : false\n }\n\n getTabs () {\n const { intl } = this.props\n const { changedFiles, commits, activities } = this.state\n const tabs = []\n tabs.push(intl.formatMessage({ id: 'label.codeDiff' }) + '(' + changedFiles.length + ')')\n tabs.push(intl.formatMessage({ id: 'label.commitActivity' }) + '(' + commits.length + ')')\n if (this.state.mid) {\n tabs.push(intl.formatMessage({ id: 'label.mergeRequestActivity' }) + '(' + activities.length + ')')\n }\n\n return tabs\n }\n\n render () {\n const { currentUserInfo, history, classes, intl } = this.props\n const {\n mergeRequestInfo,\n sourceRepositoryInfo,\n targetRepositoryInfo,\n requesterInfo,\n handlerInfo,\n title,\n description,\n tabValue,\n pending,\n changedFiles,\n fileDiff,\n effectFileCount,\n addLine,\n deleteLine,\n commits,\n activities,\n showCommitInput,\n mergeMessage,\n usingSquash,\n hasMergeConflict,\n versionList,\n latestVersion,\n baseVersion,\n baseVersionList,\n submitMergeRequest,\n reviewers,\n reviewersMenu\n } = this.state\n return (\n {\n !this.state.mid && (sourceRepositoryInfo || submitMergeRequest) && \n \n \n { intl.formatMessage({ id: 'label.createMergeRequest' }) }\n \n \n {intl.formatMessage(\n { id: 'message.from_S_Merge_S' },\n {\n s1: sourceRepositoryInfo.group.name + '/' + sourceRepositoryInfo.name + ':' + mergeRequestInfo.sourceBranch,\n s2: targetRepositoryInfo.group.name + '/' + targetRepositoryInfo.name + ':' + mergeRequestInfo.targetBranch\n }\n )}\n \n \n \n \n \n \n {intl.formatMessage({ id: 'label.title' })}\n \n this.setState({ title: e.target.value })} />\n \n {intl.formatMessage({ id: 'label.description' })}\n \n this.setState({ description: e.target.value })} />\n \n \n \n \n \n {intl.formatMessage({ id: 'message.assignReviewerTitle' })}\n \n \n {targetRepositoryInfo.members.map((item, index) => {\n if (item.deleteFlag || item.role < UAC.Role.DEVELOPER) {\n return false\n }\n\n return this.assignReviewer(true, item.id)}>\n \n {reviewers.includes(item.id) && }\n \n })\n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n {\n this.state.mid && mergeRequestInfo.id && \n \n \n {mergeRequestInfo.title}    \n {mergeRequestInfo.status === Constants.mergeRequestStatus.open &&     }\n {mergeRequestInfo.status === Constants.mergeRequestStatus.merged &&     }\n {mergeRequestInfo.status === Constants.mergeRequestStatus.closed &&     }\n \n {mergeRequestInfo.description && {mergeRequestInfo.description}}\n \n {mergeRequestInfo.status === Constants.mergeRequestStatus.open && \n \n     \n {reviewers.includes(currentUserInfo.id) && !this.isReview(currentUserInfo.id)\n ? \n : \n }\n \n \n }\n \n \n \n this.setState({ mergeMessage: e.target.value })}\n />\n \n \n this.setState({ usingSquash: !this.state.usingSquash })}\n name='usingSquash'\n color='primary'\n />\n }\n label='使用Squash'\n />\n \n {\n hasMergeConflict && \n \n {intl.formatMessage({ id: 'message.mergeConflictTitle' })}  \n \n \n \n {intl.formatMessage({ id: 'message.mergeConflictTip1' })}\n \n git fetch origin\n \n \n git checkout -b {mergeRequestInfo.sourceBranch} origin/ {mergeRequestInfo.sourceBranch}\n \n \n \n {intl.formatMessage({ id: 'message.mergeConflictTip2' })}\n \n \n {intl.formatMessage({ id: 'message.mergeConflictTip3' })}\n \n git fetch origin\n \n \n git fetch origin\n \n \n git checkout origin/{mergeRequestInfo.targetBranch}\n \n \n git merge --no-ff {mergeRequestInfo.sourceBranch}\n \n \n \n {intl.formatMessage({ id: 'message.mergeConflictTip4' })}\n \n git push origin {mergeRequestInfo.targetBranch}\n \n \n \n }\n \n \n \n }\n { !pending\n ? \n \n \n this.setState({ tabValue: newValue })} currentTab={tabValue}> \n \n \n {\n tabValue === 0 && \n }\n {\n tabValue === 1 && \n {commits.map((item, index) => )\n }\n \n }\n {\n tabValue === 2 && activities.map((item, key) => {\n return \n })\n }\n \n \n {this.state.mid && mergeRequestInfo.id && \n \n \n {intl.formatMessage({ id: 'label.reviewer' })}\n {mergeRequestInfo.status === Constants.mergeRequestStatus.open && \n this.setState({ reviewersMenu: e.currentTarget })} icon={plAddAlt} />\n this.setState({ reviewersMenu: null })}\n >\n \n {intl.formatMessage({ id: 'message.selectReviewer' })}\n \n {targetRepositoryInfo.members && targetRepositoryInfo.members.map((item, index) => {\n if (item.deleteFlag || item.role < UAC.Role.DEVELOPER) {\n return false\n }\n\n return {\n this.setState({ reviewersMenu: null })\n this.assignReviewer(false, item.id)\n }}>\n   \n {reviewers.includes(item.id) && }\n \n })\n }\n \n {\n this.setState({ reviewersMenu: null })\n this.deleteReviewer(false, reviewers[0])\n }}>\n   \n {intl.formatMessage({ id: 'message.deleteReviewer' })}\n \n \n \n }\n \n \n {reviewers.length > 0\n ? reviewers.map((item, index) => {\n const isReview = this.isReview(item)\n return \n \n \n \n })\n : \n {intl.formatMessage({ id: 'message.notSelectReviewers' })}\n \n }\n \n \n {intl.formatMessage({ id: 'label.activity' })}\n \n \n \n \n {intl.formatMessage({ id: 'label.requestMerge' })}:  \n {sourceRepositoryInfo.group.displayName}/{sourceRepositoryInfo.displayName}/{mergeRequestInfo.sourceBranch} -> {targetRepositoryInfo.group.displayName}/{targetRepositoryInfo.displayName}/{mergeRequestInfo.targetBranch}\n \n \n \n {requesterInfo.name}  \n {intl.formatMessage({ id: 'label.requestCreated' })}:  \n \n
\n \n { mergeRequestInfo.status !== Constants.mergeRequestStatus.open && \n \n {handlerInfo.name}  \n {intl.formatMessage({ id: mergeRequestInfo.status === Constants.mergeRequestStatus.merged ? 'label.requestMerged' : 'label.requestClosed' })}:  \n \n
\n \n }\n \n \n \n }\n \n : \n \n \n }\n \n )\n }\n}\n\nMergeRequestDetail.propTypes = {\n currentUserInfo: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n currentRepositoryKey: PropTypes.string.isRequired,\n closeDrawer: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n repositoryList: state.DataStore.repositoryList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) },\n closeDrawer: () => dispatch({ type: 'drawer.expandStatus.close' })\n }\n}\n\nexport default injectIntl(\n withTheme(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MergeRequestDetail)\n )\n )\n )\n)\n","import React from 'react'\nimport { Switch, Route, withRouter } from 'react-router-dom'\n\n// components\nimport UserInfo from 'APPSRC/components/view/UserInfo'\n\nimport UserSettingSSHKey from 'APPSRC/components/view/UserSettingSSHKey'\nimport UserSettingEmail from 'APPSRC/components/view/UserSettingEmail'\nimport UserSettingGeneral from 'APPSRC/components/view/UserSettingGeneral'\nimport UserSettingNotification from 'APPSRC/components/view/UserSettingNotification'\n\nimport AdminDashboard from 'APPSRC/components/view/admin/Dashboard'\nimport AdminUsers from 'APPSRC/components/view/admin/Users'\nimport AdminGroups from 'APPSRC/components/view/admin/Groups'\nimport AdminRepositories from 'APPSRC/components/view/admin/Repositories'\nimport AdminSettings from 'APPSRC/components/view/admin/Settings'\n\nimport RepositoryList from 'APPSRC/components/view/RepositoryList'\nimport NewRepository from 'APPSRC/components/view/NewRepository'\nimport NewRepositoryFork from 'APPSRC/components/view/NewRepositoryFork'\nimport RepositorySettingGeneral from 'APPSRC/components/view/RepositorySettingGeneral'\nimport RepositorySettingBranch from 'APPSRC/components/view/RepositorySettingBranch'\nimport RepositorySettingWebhook from 'APPSRC/components/view/RepositorySettingWebhook'\nimport RepositorySettingMembers from 'APPSRC/components/view/RepositorySettingMembers'\nimport RepositorySettingAdvanced from 'APPSRC/components/view/RepositorySettingAdvanced'\n\nimport GroupList from 'APPSRC/components/view/GroupList'\nimport NewGroup from 'APPSRC/components/view/NewGroup'\nimport GroupSettingGeneral from 'APPSRC/components/view/GroupSettingGeneral'\nimport GroupSettingMembers from 'APPSRC/components/view/GroupSettingMembers'\nimport GroupSettingAdvanced from 'APPSRC/components/view/GroupSettingAdvanced'\n\nimport ActivityList from 'APPSRC/components/view/ActivityList'\n\nimport FileTree from 'APPSRC/components/view/FileTree'\nimport CommitList from 'APPSRC/components/view/CommitList'\nimport BranchList from 'APPSRC/components/view/BranchList'\nimport TagList from 'APPSRC/components/view/TagList'\nimport CreateTag from 'APPSRC/components/view/CreateTag'\nimport CreateBranch from 'APPSRC/components/view/CreateBranch'\nimport CommitDetail from 'APPSRC/components/view/CommitDetail'\nimport MergeRequest from 'APPSRC/components/view/MergeRequest'\nimport CreateMergeRequest from 'APPSRC/components/view/CreateMergeRequest'\nimport MergeRequestDetail from 'APPSRC/components/view/MergeRequestDetail'\n\nclass MainRoutes extends React.Component {\n render () {\n return \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n\n \n\n \n\n \n \n \n \n \n\n \n \n \n \n }\n}\n\nexport default withRouter(MainRoutes)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport MainRoutes from 'APPSRC/routes/MainRoutes'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport GroupData from 'APPSRC/data_providers/GroupData'\nimport RepositoryData from 'APPSRC/data_providers/RepositoryData'\n\n// helpers\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\n\nconst styles = theme => ({\n container: {\n backgroundColor: theme.palette.background.light\n },\n content: {\n padding: 0\n },\n toolbar: theme.mixins.toolbar,\n mainContainer: {\n padding: theme.spacing(3) + 'px ' + theme.spacing(6) + 'px'\n }\n})\n\nclass Main extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n groupListLoaded: false,\n repositoryListLoaded: false\n }\n }\n\n componentDidMount () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n\n RepositoryData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.repositoryList.update', data: data.data })\n this.setState({ repositoryListLoaded: true })\n }\n })\n\n GroupData.list()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then(data => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.groupList.update', data: data.data })\n this.setState({ groupListLoaded: true })\n }\n })\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n // load group config\n if (\n (nextState.groupListLoaded && this.state.groupListLoaded !== nextState.groupListLoaded) ||\n (this.props.match.params.groupName !== nextProps.match.params.groupName ||\n (this.props.match.params.repositoryName !== nextProps.match.params.repositoryName &&\n !nextProps.match.params.repositoryName\n )\n )\n ) {\n const currentGroup = nextProps.groupList.filter(FilterGenerator.name(nextProps.match.params.groupName))[0]\n\n if (currentGroup && currentGroup.id) {\n this.props.dispatchEvent({ type: 'data.currentGroupKey.update', data: currentGroup.id })\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: {} })\n if (nextProps.history.location.pathname.match(/^\\/groups/i)) {\n GroupData.config({ gKey: currentGroup.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: data.data })\n } else {\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: {} })\n }\n })\n }\n } else {\n this.props.dispatchEvent({ type: 'data.currentGroupKey.update', data: '' })\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: {} })\n }\n } else if (!nextProps.match.params.groupName) {\n this.props.dispatchEvent({ type: 'data.currentGroupKey.update', data: '' })\n this.props.dispatchEvent({ type: 'data.currentGroupConfig.update', data: {} })\n }\n\n // load repository config\n if ((nextState.repositoryListLoaded && this.state.repositoryListLoaded !== nextState.repositoryListLoaded) ||\n (this.props.match.params.groupName !== nextProps.match.params.groupName ||\n this.props.match.params.repositoryName !== nextProps.match.params.repositoryName\n )\n ) {\n const currentRepository = nextProps.repositoryList.filter(\n item =>\n item.group.name === nextProps.match.params.groupName &&\n item.name === nextProps.match.params.repositoryName\n )[0]\n\n if (currentRepository && currentRepository.id) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryKey.update', data: currentRepository.id })\n RepositoryData.config({ rKey: currentRepository.id })\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: data.data })\n this.setState({ repositoryListLoaded: true })\n } else {\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: {} })\n }\n })\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: {} })\n this.props.dispatchEvent({ type: 'data.currentRepositoryError.update', data: false })\n } else {\n this.props.dispatchEvent({ type: 'data.currentRepositoryKey.update', data: '' })\n this.props.dispatchEvent({ type: 'data.currentRepositoryConfig.update', data: {} })\n this.props.dispatchEvent({ type: 'data.currentRepositoryError.update', data: true })\n }\n }\n\n return true\n }\n\n render () {\n const { classes } = this.props\n return
\n
\n
\n
\n \n
\n
\n
\n }\n}\n\nMain.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n dispatchEvent: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n groupList: state.DataStore.groupList\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Main)\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// assets\n\n// components\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport Divider from '@material-ui/core/Divider'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plMemberAlt, plKey, plExit, psCaretDown, plDraft } from '@pgyer/icons'\nimport { withStyles } from '@material-ui/core/styles'\nimport Avatar from '@material-ui/core/Avatar'\nimport Typography from '@material-ui/core/Typography'\nimport Constants from 'APPSRC/config/Constants'\n\nimport { injectIntl } from 'react-intl'\n\n// style\nconst styles = theme => ({\n settings: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer'\n },\n menu: {\n width: theme.spacing(30),\n marginTop: theme.spacing(1),\n padding: 0\n },\n list: {\n '& > li': {\n height: theme.spacing(5)\n },\n '& > hr': {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n }\n },\n name: {\n opacity: '1 !important',\n display: 'block',\n height: 'auto !important'\n },\n icon: {\n width: theme.spacing(4),\n height: theme.spacing(4)\n },\n down: {\n marginLeft: theme.spacing(2),\n fontSize: theme.spacing(1)\n }\n})\n\nclass UserOption extends Component {\n constructor (props) {\n super(props)\n this.state = {\n anchorEl: null\n }\n\n this.handleUserMenuClick = this.handleUserMenuClick.bind(this)\n this.handleUserMenuClose = this.handleUserMenuClose.bind(this)\n this.logout = this.logout.bind(this)\n }\n\n handleUserMenuClick (event) {\n this.setState({ anchorEl: event.currentTarget })\n }\n\n handleUserMenuClose () {\n this.setState({ anchorEl: null })\n }\n\n logout () {\n this.setState({ anchorEl: null })\n window.location.href = '/user/logout'\n }\n\n goView (path) {\n this.setState({ anchorEl: null })\n this.props.history.push(path)\n }\n\n render () {\n const { currentUserInfo, classes, className, intl } = this.props\n\n return (\n \n
\n \n \n
\n \n \n \n { currentUserInfo.name }\n \n \n { currentUserInfo.email }\n \n \n \n { this.goView('/settings/profile') }}>\n \n \n \n \n \n { this.goView('/settings/email') }}>\n \n \n \n \n \n { this.goView('/settings/sshkey') }}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }\n}\n\nUserOption.propTypes = {\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n currentUserInfo: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(\n UserOption\n )\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport { injectIntl } from 'react-intl'\n// assets\n\n// components\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { plLocalization } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\n\n// style\nconst styles = theme => ({\n menu: {\n marginTop: theme.spacing(1),\n padding: 0\n }\n})\n\nclass LanguageSelect extends Component {\n constructor (props) {\n super(props)\n this.state = {\n anchorEl: null,\n userInfoLoadingStatus: false\n }\n\n this.handleUserMenuClick = this.handleUserMenuClick.bind(this)\n this.handleUserMenuClose = this.handleUserMenuClose.bind(this)\n }\n\n componentDidMount () {\n this.setState({ userInfoLoadingStatus: true })\n }\n\n handleUserMenuClick (event) {\n this.setState({ anchorEl: event.currentTarget })\n }\n\n handleUserMenuClose () {\n this.setState({ anchorEl: null })\n }\n\n changeLanguage (lang) {\n this.props.dispatchEvent({ type: 'data.currentLanguage.update', data: lang })\n this.setState({ anchorEl: null })\n }\n\n render () {\n const { anchorEl } = this.state\n const { intl, classes, currentLanguage } = this.props\n\n return (\n \n \n \n this.changeLanguage('zh-cn')}>\n \n \n this.changeLanguage('en-us')}>\n \n \n \n \n )\n }\n}\n\nLanguageSelect.propTypes = {\n intl: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n dispatchEvent: PropTypes.func.isRequired,\n currentLanguage: PropTypes.string.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(LanguageSelect)\n )\n )\n)\n","// core\nimport React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Typography from '@material-ui/core/Typography'\nimport Avatar from '@material-ui/core/Avatar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { plCheck } from '@pgyer/icons'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\nimport UAC from 'APPSRC/config/UAC'\nimport { injectIntl } from 'react-intl'\nimport Constants from 'APPSRC/config/Constants'\n\n// style\nconst styles = theme => ({\n menu: {\n top: theme.spacing(8) + 1 + 'px !important',\n width: theme.spacing(34) + 'px !important',\n height: theme.spacing(40),\n boxShadow: '0px 20px 40px 0px rgba(66, 72, 86, 0.1)'\n },\n button: {\n position: 'relative',\n maxWidth: '100%',\n paddingRight: theme.spacing(3),\n '& > span': {\n display: 'list-item',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n '& svg': {\n position: 'absolute',\n right: theme.spacing(1),\n top: '10px'\n }\n },\n listIcon: {\n width: theme.spacing(3),\n height: theme.spacing(3),\n fontSize: theme.spacing(2) + 'px'\n },\n title: {\n color: theme.palette.text.lighter,\n fontSize: theme.spacing(1.5) + 'px',\n padding: theme.spacing(1) + 'px ' + theme.spacing(2) + 'px'\n },\n checked: {\n color: theme.palette.primary.main\n }\n})\n\nclass GroupRepositoryMenu extends Component {\n constructor (props) {\n super(props)\n this.state = {\n anchorElement: null,\n repositoryList: this.props.repositoryList,\n groupList: this.props.groupList,\n enterMenu: false,\n enterButton: false\n }\n }\n\n componentDidMount () {}\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.repositoryList !== nextProps.repositoryList ||\n this.props.groupList !== nextProps.groupList\n ) {\n this.setState({\n repositoryList: nextProps.repositoryList,\n groupList: nextProps.groupList\n })\n }\n\n return true\n }\n\n getToRepository (repositoryInfo) {\n this.initAnchor()\n this.props.history.push('/' + repositoryInfo.group.name + '/' + repositoryInfo.name + '/')\n }\n\n getToGroup (groupInfo) {\n this.initAnchor()\n this.props.history.push('/groups/' + groupInfo.name + '/')\n }\n\n initAnchor () {\n this.setState({\n anchorElement: null,\n enterButton: false,\n enterMenu: false\n })\n }\n\n render () {\n const { classes, intl, history, type, currentRepositoryKey, currentGroupKey } = this.props\n const { repositoryList, groupList } = this.state\n\n const repositoryItems = repositoryList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.REPO_READ))\n .map((item, key) => (\n { this.getToRepository(item) }} >\n \n { item.icon\n ? \n : {item.name.substr(0, 1).toUpperCase()}\n }\n \n \n {item.id === currentRepositoryKey && }\n )\n )\n\n const GroupItems = groupList\n .filter(FilterGenerator.withPermission(UAC.PermissionCode.REPO_READ))\n .map((item, key) => (\n { this.getToGroup(item) }} >\n \n { item.icon\n ? \n : {item.name.substr(0, 1).toUpperCase()}\n }\n \n \n {item.id === currentGroupKey && !currentRepositoryKey && }\n )\n )\n\n return (\n \n {((type === 'repository' &&\n (repositoryList.length + groupList.length)) ||\n (type === 'group' &&\n groupList.length))\n ? {\n this.initAnchor()\n history.push(type === 'repository' ? '/repositories' : '/groups')\n }}\n onMouseEnter={(ev) => {\n this.setState({\n enterButton: true,\n anchorElement: ev.currentTarget\n })\n }}\n onMouseLeave={() => {\n this.setState({ enterButton: false })\n setTimeout(() => !this.state.enterMenu && this.initAnchor(), 100)\n }}\n >\n { type === 'repository' && intl.formatMessage({ id: 'menu.repository_pl' })}\n { type === 'group' && intl.formatMessage({ id: 'menu.group_pl' })}\n \n \n : { history.push(type === 'repository' ? '/repositories/new' : '/groups/new') }}\n >\n { type === 'repository' && intl.formatMessage({ id: 'label.newRepository' })}\n { type === 'group' && intl.formatMessage({ id: 'label.newGroup' })}\n }\n\n {((type === 'repository' &&\n (repositoryList.length + groupList.length) > 0) ||\n (type === 'group' &&\n groupList.length > 0)) &&\n { this.setState({ anchorElement: null }) }}\n PaperProps={{ className: classes.menu }}\n getContentAnchorEl={null}\n transitionDuration={0}\n onMouseEnter={() => { this.setState({ enterMenu: true }) }}\n onMouseLeave={() => this.initAnchor()}\n >\n \n \n { type === 'repository' && intl.formatMessage({ id: 'label.repository' })}\n { type === 'group' && intl.formatMessage({ id: 'label.group' })}\n \n \n { type === 'repository' && repositoryItems }\n { type === 'group' && GroupItems }\n }\n \n )\n }\n}\n\nGroupRepositoryMenu.propTypes = {\n classes: PropTypes.object.isRequired,\n // dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n currentRepositoryKey: PropTypes.string,\n currentGroupKey: PropTypes.string,\n intl: PropTypes.object.isRequired,\n type: PropTypes.string\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n repositoryList: state.DataStore.repositoryList,\n groupList: state.DataStore.groupList,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentGroupKey: state.DataStore.currentGroupKey\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n // dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(GroupRepositoryMenu)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withRouter } from 'react-router'\nimport { withStyles } from '@material-ui/core/styles'\n\n// components\nimport Grid from '@material-ui/core/Grid'\nimport Menu from '@material-ui/core/Menu'\nimport AppBar from '@material-ui/core/AppBar'\nimport Toolbar from '@material-ui/core/Toolbar'\nimport Divider from '@material-ui/core/Divider'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ListItemText from '@material-ui/core/ListItemText'\n\n// self components\nimport UserOption from 'APPSRC/components/unit/UserOption'\nimport withScrollTrigger from 'APPSRC/helpers/withScrollTrigger'\nimport LanguageSelect from 'APPSRC/components/unit/LanguageSelect'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport { psAddAlt, plMerge, plBell, plHelp, plRepair } from '@pgyer/icons'\nimport GroupRepositoryMenu from 'APPSRC/components/unit/GroupRepositoryMenu'\n\n// style\nconst styles = theme => ({\n appBar: {\n width: '100%',\n zIndex: theme.zIndex.drawer,\n borderBottom: '1px solid ' + theme.palette.border\n },\n img: {\n height: theme.spacing(4),\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(6),\n cursor: 'pointer'\n },\n placeholder: {\n display: 'inline-block',\n verticalAlign: 'middle',\n height: theme.spacing(4),\n marginRight: theme.spacing(2),\n transition: theme.transitions.create('width')\n },\n placeholderExpanded: {\n width: theme.spacing(37)\n },\n placeholderCollapsed: {\n width: theme.spacing(8)\n },\n options: {\n display: 'flex'\n },\n split: {\n marginTop: theme.spacing(1),\n height: theme.spacing(2)\n },\n optionItem: {\n marginRight: theme.spacing(2)\n },\n menu: {\n marginTop: theme.spacing(1),\n padding: 0\n }\n})\n\nconst scrollTriggerOptions = {\n threshold: 0,\n watching: '.app-content'\n}\n\nclass Header extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n newMenuAnchor: null,\n helpMenuAnchor: null\n }\n }\n\n render () {\n const { classes, currentUserInfo, scrollTrigger, history, intl, notificationOpenStatusToggle, currentLanguage } = this.props\n return (\n \n \n \n \n history.push('/repositories')}\n />\n \n \n \n \n \n \n {\n history.push('/mergerequests')\n }} icon={plMerge} className={classes.optionItem} />\n \n \n this.setState({ newMenuAnchor: e.currentTarget })} icon={psAddAlt} className={classes.optionItem} />\n \n this.setState({ newMenuAnchor: null })}\n >\n {\n history.push('/repositories/new')\n this.setState({ newMenuAnchor: null })\n }}>\n \n \n {\n history.push('/groups/new')\n this.setState({ newMenuAnchor: null })\n }}>\n \n \n {\n history.push('/mergerequests/new')\n this.setState({ newMenuAnchor: null })\n }}>\n \n \n \n notificationOpenStatusToggle()} />\n \n this.setState({ helpMenuAnchor: e.currentTarget })} icon={plHelp} className={classes.optionItem} />\n this.setState({ helpMenuAnchor: null })}\n >\n {\n this.setState({ helpMenuAnchor: null })\n window.open('/doc/' + (currentLanguage === 'en-us' ? 'en' : 'cn'), '_blank')\n }}>\n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://codefever.pgyer.com/community', '_blank')\n }}>\n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://github.com/PGYER/codefever/blob/master/doc/zh-cn/contribute/bug_fix_issue.md', '_blank')\n }}>\n \n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://github.com/PGYER/codefever', '_blank')\n }}>\n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://codefever.pgyer.com/', '_blank')\n }}>\n \n \n \n {currentUserInfo.admin && { history.push('/admin') }} icon={plRepair} className={classes.optionItem} />}\n \n \n \n \n \n )\n }\n}\n\nHeader.propTypes = {\n intl: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n scrollTrigger: PropTypes.bool.isRequired,\n currentUserInfo: PropTypes.object.isRequired,\n notificationOpenStatusToggle: PropTypes.func.isRequired,\n currentLanguage: PropTypes.string.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentUserInfo: state.DataStore.currentUserInfo,\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n notificationOpenStatusToggle: () => dispatch({ type: 'notification.notificationOpenStatus.toggle' })\n }\n}\n\nexport default injectIntl(\n withRouter(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n withScrollTrigger(scrollTriggerOptions)(Header)\n )\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\n// component\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport Avatar from '@material-ui/core/Avatar'\nimport Button from '@material-ui/core/Button'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport Collapse from '@material-ui/core/Collapse'\nimport Typography from '@material-ui/core/Typography'\nimport ExpandLess from '@material-ui/icons/ExpandLess'\nimport ExpandMore from '@material-ui/icons/ExpandMore'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { psHome } from '@pgyer/icons'\nimport Constants from 'APPSRC/config/Constants'\n\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nconst styles = (theme) => ({\n list: {\n marginTop: theme.spacing(3)\n },\n listItem: {\n overflow: 'hidden',\n width: theme.spacing(34),\n height: theme.spacing(5),\n borderRadius: theme.spacing(0.5),\n transition: [theme.transitions.create('width'), theme.transitions.create('padding')].join(','),\n cursor: 'pointer',\n '& svg, & span': {\n color: theme.palette.text.light\n },\n '&:hover': {\n '& > div > svg': {\n color: theme.palette.primary.main\n },\n '& span': {\n color: theme.palette.text.main\n }\n }\n },\n listItemExpand: {\n padding: '0px ' + theme.spacing(4) + 'px'\n },\n listItemCollapsed: {\n width: theme.spacing(5),\n minWidth: theme.spacing(5),\n padding: '0px ' + theme.spacing(1.5) + 'px'\n },\n listItemText: {\n margin: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height'),\n '& > span': {\n lineHeight: theme.spacing(5) + 'px'\n }\n },\n listItemTextExpand: {\n height: theme.spacing(5) + 'px'\n },\n listItemTextCollapsed: {\n height: 0\n },\n drawerHeader: {\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'center',\n height: theme.spacing(4),\n width: theme.spacing(28),\n background: theme.palette.background.main,\n padding: theme.spacing(1) + 'px ' + theme.spacing(3) + 'px',\n transition: [theme.transitions.create('width'), theme.transitions.create('padding')].join(',')\n },\n drawerHeaderExpand: {\n width: theme.spacing(28),\n padding: theme.spacing(1) + 'px ' + theme.spacing(3) + 'px'\n },\n drawerHeaderCollapsed: {\n width: theme.spacing(4),\n padding: theme.spacing(1) + 'px ' + theme.spacing(0.5) + 'px'\n },\n active: {\n backgroundColor: theme.palette.background.light,\n '& span': {\n color: theme.palette.text.main\n }\n },\n secondCollapse: {\n backgroundColor: theme.palette.background.light\n },\n morePadding: {\n width: theme.spacing(34),\n borderRadius: theme.spacing(0.5),\n paddingBottom: theme.spacing(2) + 'px',\n backgroundColor: theme.palette.background.light\n },\n secondActive: {\n borderRadius: theme.spacing(0.5),\n backgroundColor: theme.palette.background.main,\n '& span': {\n color: theme.palette.text.main\n }\n },\n home: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main\n },\n iconActive: {\n color: theme.palette.primary.main + ' !important'\n },\n avatar: {\n cursor: 'pointer',\n width: theme.spacing(4),\n height: theme.spacing(4)\n },\n title: {\n fontSize: '18px',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n height: theme.spacing(4),\n paddingLeft: theme.spacing(2),\n lineHeight: theme.spacing(4) + 'px',\n transition: theme.transitions.create('height')\n },\n titleExpand: {\n height: theme.spacing(4)\n },\n titleCollapsed: {\n height: 0\n },\n button: {\n '&:hover': {\n background: theme.palette.primary.main\n }\n }\n})\n\nclass DrawerList extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n open: {},\n itemSwitch: false,\n itemName: null,\n avatarHover: false\n }\n }\n\n openChildren (key) {\n const newOpen = { ...this.state.open }\n newOpen[key] = !newOpen[key]\n this.setState({ open: newOpen })\n }\n\n render () {\n const {\n classes, drawerExpandStatus, drawerConfig, location, intl, mode,\n repositoryList, currentRepositoryKey, groupList, currentGroupKey\n } = this.props\n\n const listItems = drawerConfig.map((item, key) => {\n let activeFlag = false\n item.activePattern.map((pattern) => {\n if (location.pathname && location.pathname.match(pattern)) {\n activeFlag = true\n }\n return true\n })\n const firstLevel = (\n {\n this.props.history.push(item.path)\n item.children && this.openChildren(key)\n }}\n >\n \n \n \n \n {item.count}\n {item.children ? (this.state.open[key] ? : ) : ''}\n \n )\n\n const secondLevel = item.children\n ? item.children.map((sitem, skey) => {\n let secondActiveFlag = false\n sitem.activePattern.map((pattern) => {\n if (location.pathname && location.pathname.match(pattern)) {\n secondActiveFlag = true\n }\n return true\n })\n const sListItem = (\n this.props.history.push(sitem.path)}\n className={activeFlag ? classes.secondCollapse : ''}\n key={skey}\n >\n \n \n \n \n \n \n )\n return sListItem\n })\n : ''\n\n return (\n
\n {firstLevel}\n {secondLevel}\n
\n )\n })\n\n const avatarProps = {}\n const currentProject = repositoryList.filter(FilterGenerator.id(currentRepositoryKey))[0]\n const currentGroup = groupList.filter(FilterGenerator.id(currentGroupKey))[0]\n if (['repository', 'group'].includes(mode)) {\n const icon = (currentProject && currentProject.icon) || (currentGroup && currentGroup.icon)\n const name = (currentProject && currentProject.name) || (currentGroup && currentGroup.name)\n if (icon) {\n avatarProps.src = Constants.HOSTS.STATIC_AVATAR_PREFIX + icon\n } else if (name) {\n avatarProps.children = name[0].toUpperCase()\n }\n\n if (mode === 'repository') {\n avatarProps.onClick = () => { this.props.history.push('/' + currentProject.group.name + '/' + currentProject.name + '/') }\n } else if (mode === 'group') {\n avatarProps.onClick = () => { this.props.history.push('/groups/' + currentGroup.name) }\n }\n\n avatarProps.onMouseEnter = () => { this.setState({ avatarHover: true }) }\n avatarProps.onMouseLeave = () => { this.setState({ avatarHover: false }) }\n\n if (this.state.avatarHover) {\n avatarProps.src = ''\n avatarProps.children = \n \n \n avatarProps.onClick = () => {\n this.props.history.push('/repositories')\n this.setState({ avatarHover: false })\n }\n }\n } else {\n avatarProps.src = '/static/00000000000000/images/logo-ico.png'\n avatarProps.onClick = () => {\n this.props.history.push('/repositories')\n this.setState({ avatarHover: false })\n }\n }\n\n return (\n \n
\n \n \n {mode === 'default' && 'CodeFever'}\n {mode === 'admin' && 'CodeFever Admin'}\n \n
\n {listItems}\n
\n )\n }\n}\n\nDrawerList.propTypes = {\n classes: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n location: PropTypes.object.isRequired,\n drawerExpandStatus: PropTypes.bool.isRequired,\n repositoryList: PropTypes.array.isRequired,\n groupList: PropTypes.array.isRequired,\n currentRepositoryKey: PropTypes.string,\n currentGroupKey: PropTypes.string,\n drawerConfig: PropTypes.array.isRequired,\n mode: PropTypes.string.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n drawerExpandStatus: state.DrawerStates.expandStatus,\n repositoryList: state.DataStore.repositoryList,\n groupList: state.DataStore.groupList,\n currentRepositoryKey: state.DataStore.currentRepositoryKey,\n currentGroupKey: state.DataStore.currentGroupKey\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n withRouter(DrawerList)\n )\n )\n)\n","// component\nimport {\n psRepository,\n psRepositoryGroup,\n psBranch,\n psCommit,\n psMerge,\n psLog,\n psMembers,\n psMemberAlt,\n psFile,\n psSetting,\n psTag,\n psEmail,\n psKey,\n psBell\n} from '@pgyer/icons'\nimport FilterGenerator from 'APPSRC/helpers/FilterGenerator'\n\nfunction makeDrawerConfig () {\n return [\n {\n path: '/settings/profile',\n name: 'menu.profile',\n icon: psMemberAlt,\n activePattern: [\n /^\\/settings$/i,\n /^\\/settings\\/profile/i\n ]\n },\n {\n path: '/settings/email',\n name: 'menu.mail',\n icon: psEmail,\n activePattern: [\n /^\\/settings\\/email/i\n ]\n },\n {\n path: '/settings/sshkey',\n name: 'menu.SSHKey_pl',\n icon: psKey,\n activePattern: [\n /^\\/settings\\/sshkey/i\n ]\n },\n {\n path: '/settings/notification',\n name: 'menu.notification',\n icon: psBell,\n activePattern: [\n /^\\/settings\\/notification/i\n ]\n }\n ]\n}\n\nfunction makeAdminDrawerConfig () {\n return [\n {\n path: '/admin/dashboard',\n name: 'menu.dashboard',\n icon: psLog,\n activePattern: [\n /^\\/admin(\\/)?$/i,\n /^\\/admin\\/dashboard\\/?.*$/i\n ]\n },\n {\n path: '/admin/users',\n name: 'menu.user_pl',\n icon: psMembers,\n activePattern: [\n /^\\/admin\\/users\\/?.*$/i\n ]\n },\n {\n path: '/admin/groups',\n name: 'menu.group_pl',\n icon: psRepositoryGroup,\n activePattern: [\n /^\\/admin\\/groups\\/?.*$/i\n ]\n },\n {\n path: '/admin/repositories',\n name: 'menu.repository_pl',\n icon: psRepository,\n activePattern: [\n /^\\/admin\\/repositories\\/?.*$/i\n ]\n },\n {\n path: '/admin/settings',\n name: 'menu.setting_pl',\n icon: psSetting,\n activePattern: [\n /^\\/admin\\/settings\\/?.*$/i\n ]\n }\n ]\n}\n\nfunction makeGroupDrawerConfig (groupConfig) {\n return (groupConfig && groupConfig.group)\n ? [\n {\n path: ['/groups', groupConfig.group.name, 'repositories'].join('/'),\n name: 'menu.repository_pl',\n icon: psRepository,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})(\\/)?$/i,\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/repositories/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'mergerequests'].join('/'),\n name: 'menu.mergeRequest_pl',\n icon: psMerge,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/mergerequests\\/?.*$/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'members'].join('/'),\n name: 'menu.member_pl',\n icon: psMembers,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/members(\\/)?$/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'activities'].join('/'),\n name: 'menu.activity_pl',\n icon: psLog,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/activities(\\/)?/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'settings'].join('/'),\n name: 'menu.setting_pl',\n icon: psSetting,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings(\\/)?$/i,\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings\\/.*$/i\n ],\n children: [\n {\n path: ['/groups', groupConfig.group.name, 'settings', 'general'].join('/'),\n name: 'menu.general',\n icon: psSetting,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings(\\/)?$/i,\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings\\/general(\\/)?$/i\n ]\n },\n {\n path: ['/groups', groupConfig.group.name, 'settings', 'advanced'].join('/'),\n name: 'menu.advanced',\n icon: psSetting,\n activePattern: [\n /\\/groups\\/([A-Za-z0-9_]{5,})\\/settings\\/advanced(\\/)?$/i\n ]\n }\n ]\n }\n ]\n : []\n}\n\nfunction makeRepositoryDrawerConfig (repositoryConfig) {\n return (repositoryConfig && repositoryConfig.repository)\n ? [\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'files'].join('/'),\n name: 'menu.file_pl',\n icon: psFile,\n activePattern: [\n /^\\/([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/files(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/files\\/.*$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/blame\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'commits'].join('/'),\n name: 'menu.commit_pl',\n count: repositoryConfig.count.commit,\n icon: psCommit,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/commits(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/commits\\/.*$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/commit\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'mergerequests'].join('/'),\n name: 'menu.mergeRequest_pl',\n count: repositoryConfig.count.mergeRequest.open,\n icon: psMerge,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/mergerequests(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/mergerequests\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'branches'].join('/'),\n name: 'menu.branch_pl',\n count: repositoryConfig.count.branch,\n icon: psBranch,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/branches(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/branches\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'tags'].join('/'),\n name: 'menu.tag_pl',\n count: repositoryConfig.count.tag,\n icon: psTag,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/tags(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/tags\\/.*$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'members'].join('/'),\n name: 'menu.member_pl',\n count: (repositoryConfig.members && repositoryConfig.members.filter(FilterGenerator.notDeleted()).length) || 0,\n icon: psMembers,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/members(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'activities'].join('/'),\n name: 'menu.activity_pl',\n icon: psLog,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/activities(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings'].join('/'),\n name: 'menu.setting_pl',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/.*$/i\n ],\n children: [\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings', 'general'].join('/'),\n name: 'menu.general',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings(\\/)?$/i,\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/general(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings', 'branch'].join('/'),\n name: 'menu.branch_pl',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/branch(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings', 'webhook'].join('/'),\n name: 'menu.webhook_pl',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/webhook(\\/)?$/i\n ]\n },\n {\n path: ['', repositoryConfig.group.name, repositoryConfig.repository.name, 'settings', 'advanced'].join('/'),\n name: 'menu.advanced',\n icon: psSetting,\n activePattern: [\n /([A-Za-z0-9_]{5,})\\/[A-Za-z0-9_]+\\/settings\\/advanced(\\/)?$/i\n ]\n }\n ]\n }\n ]\n : []\n}\n\nexport default { makeDrawerConfig, makeAdminDrawerConfig, makeGroupDrawerConfig, makeRepositoryDrawerConfig }\n","// vendor package\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { Switch, Route, withRouter } from 'react-router-dom'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { plMenuCollapse } from '@pgyer/icons'\n\n// component\nimport Drawer from '@material-ui/core/Drawer'\nimport DrawerList from 'APPSRC/components/DrawerList'\n\nimport DrawerConfig from 'APPSRC/config/DrawerConfig.js'\n\n// style\nconst styles = theme => ({\n drawerContainer: {\n position: 'relative'\n },\n container: {\n height: '100vh',\n transition: theme.transitions.create('width')\n },\n containerExpanded: {\n width: theme.spacing(40)\n },\n containerCollapsed: {\n width: theme.spacing(11)\n },\n drawerPaper: {\n position: 'relative',\n boxSizing: 'border-box',\n width: '100%',\n overflowX: 'hidden'\n },\n drawerExpandControl: {\n position: 'absolute',\n top: theme.spacing(12),\n right: '-12px',\n fontSize: '14px',\n color: '#64728C',\n cursor: 'pointer',\n textAlign: 'center',\n borderRadius: '50%',\n width: theme.spacing(3),\n height: theme.spacing(3),\n zIndex: theme.zIndex.drawer + 1,\n lineHeight: theme.spacing(3) + 'px',\n background: theme.palette.background.light,\n border: '1px solid ' + theme.palette.border\n },\n transform: {\n transform: 'rotate(180deg)'\n },\n toolbar: theme.mixins.toolbar\n})\n\nclass Side extends React.Component {\n drawer (drawerConfig, mode) {\n const { classes, expandStatus, toggleDrawer } = this.props\n\n return
\n \n \n
\n \n \n \n
\n }\n\n render () {\n const { currentGroupConfig, currentRepositoryConfig } = this.props\n\n return \n \n {this.drawer(DrawerConfig.makeDrawerConfig(), 'default')}\n \n \n \n \n \n {this.drawer(DrawerConfig.makeAdminDrawerConfig(), 'admin')}\n \n \n {this.drawer(DrawerConfig.makeGroupDrawerConfig(currentGroupConfig), 'group')}\n \n \n {this.drawer(DrawerConfig.makeRepositoryDrawerConfig(currentRepositoryConfig), 'repository')}\n \n \n }\n}\n\nSide.propTypes = {\n expandStatus: PropTypes.bool.isRequired,\n currentGroupConfig: PropTypes.object.isRequired,\n currentRepositoryConfig: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n toggleDrawer: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state) => {\n return {\n expandStatus: state.DrawerStates.expandStatus,\n currentGroupConfig: state.DataStore.currentGroupConfig,\n currentRepositoryConfig: state.DataStore.currentRepositoryConfig\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n toggleDrawer: () => {\n dispatch({ type: 'drawer.expandStatus.toggle' })\n }\n }\n}\n\nexport default withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n withRouter(Side)\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { injectIntl } from 'react-intl'\nimport { withRouter } from 'react-router-dom'\n\n// components\nimport Button from '@material-ui/core/Button'\nimport Dialog from '@material-ui/core/Dialog'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogContentText from '@material-ui/core/DialogContentText'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\nclass Comformation extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n loading: false\n }\n this.observed = {\n openStatus: false\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.observed.openStatus !== nextProps.openStatus) {\n this.observed.openStatus = nextProps.openStatus\n this.setState({ loading: false })\n this.props.dispatchEvent(EventGenerator.consumeComformation())\n }\n if (this.observed.eventCount !== nextProps.eventCount) {\n this.props.dispatchEvent(EventGenerator.consumeComformation())\n }\n return true\n }\n\n onCancel (ev) {\n this.props.rejectFn && this.props.rejectFn()\n this.props.dispatchEvent(EventGenerator.cancelComformation())\n }\n\n onAccept (ev) {\n this.setState({ loading: true })\n this.props.acceptFn && this.props.acceptFn()\n }\n\n render () {\n const { openStatus, title, description, intl } = this.props\n return (\n this.onCancel(ev)}\n aria-labelledby='alert-dialog-title'\n aria-describedby='alert-dialog-description'\n >\n {title}\n \n {description}\n \n \n \n \n \n \n )\n }\n}\n\nComformation.propTypes = {\n openStatus: PropTypes.bool.isRequired,\n eventCount: PropTypes.number.isRequired,\n title: PropTypes.any,\n description: PropTypes.any,\n acceptFn: PropTypes.func,\n rejectFn: PropTypes.func,\n dispatchEvent: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n openStatus: state.NotificationStates.confirmation.open,\n eventCount: state.NotificationStates.confirmation.eventCount,\n title: state.NotificationStates.confirmation.title,\n description: state.NotificationStates.confirmation.description,\n acceptFn: state.NotificationStates.confirmation.accept,\n rejectFn: state.NotificationStates.confirmation.reject\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default injectIntl(\n withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Comformation)\n )\n)\n","// vendor package\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { withStyles } from '@material-ui/core/styles'\nimport { withRouter } from 'react-router-dom'\nimport { injectIntl } from 'react-intl'\n\n// component\nimport Grid from '@material-ui/core/Grid'\nimport Drawer from '@material-ui/core/Drawer'\nimport Button from '@material-ui/core/Button'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Typography from '@material-ui/core/Typography'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { psSetting, plClose, psMore, plCheck, psTrash } from '@pgyer/icons'\nimport SquareIconButton from 'APPSRC/components/unit/SquareIconButton'\nimport FormattedTime from 'APPSRC/components/unit/FormattedTime'\nimport TabHeader from 'APPSRC/components/unit/TabHeader'\nimport UserData from 'APPSRC/data_providers/UserData'\nimport Constants from 'APPSRC/config/Constants'\n\n// helpers\nimport { makeLink, notificationParser } from 'APPSRC/helpers/VaribleHelper'\nimport NetworkHelper from 'APPSRC/helpers/NetworkHelper'\nimport EventGenerator from 'APPSRC/helpers/EventGenerator'\n\n// style\nconst styles = theme => ({\n notification: {\n '& > div:first-child': {\n background: 'transparent'\n }\n },\n paper: {\n padding: 0,\n top: theme.spacing(8),\n boxSizing: 'border-box',\n width: theme.spacing(50),\n height: 'calc(100% - 64px)',\n background: theme.palette.background.light,\n border: '1px solid ' + theme.palette.border\n },\n header: {\n top: 0,\n zIndex: 1,\n position: 'sticky',\n background: theme.palette.background.light\n },\n headerTitle: {\n display: 'flex',\n alignItems: 'center',\n height: theme.spacing(6) + 'px',\n padding: '0px ' + theme.spacing(3) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n close: {\n '& svg': {\n width: '14px !important',\n height: '14px !important',\n padding: '2px'\n }\n },\n icon: {\n color: theme.palette.text.light\n },\n more: {\n marginTop: theme.spacing(0.5)\n },\n menu: {\n padding: '0px ' + theme.spacing(3) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n notifySetting: {\n display: 'none'\n },\n notify: {\n '&:hover': {\n background: theme.palette.background.main,\n '& > div:first-child > div:nth-of-type(2)': {\n display: 'block'\n }\n },\n padding: theme.spacing(2) + 'px ' + theme.spacing(3) + 'px',\n borderBottom: '1px solid ' + theme.palette.border\n },\n notifiTitle: {\n lineHeight: theme.spacing(4) + 'px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n '& > span': {\n fontSize: '12px'\n }\n },\n readed: {\n '& div, & span': {\n color: theme.palette.text.lighter + '!important'\n }\n },\n notifiContent: {\n cursor: 'pointer',\n lineHeight: theme.spacing(2.5) + 'px',\n maxHeight: theme.spacing(5),\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n '-webkit-line-clamp': 2,\n '-webkit-box-orient': 'vertical'\n },\n loading: {\n justifyContent: 'center',\n padding: theme.spacing(4) + 'px'\n }\n})\n\nclass Notification extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n pending: false,\n menuAnchor: null,\n category: Constants.notificationCategory.unRead,\n list: [],\n pagesize: 20,\n page: 1,\n loadMore: true\n }\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (this.props.notificationOpenStatus !== nextProps.notificationOpenStatus &&\n nextProps.notificationOpenStatus === true) {\n this.getData(nextState, true)\n return false\n }\n\n if (this.state.category !== nextState.category) {\n this.getData(nextState, true)\n return false\n }\n\n if (this.state.page !== nextState.page) {\n this.getData(nextState, false)\n return false\n }\n\n return true\n }\n\n getData (state, reset) {\n const { pending, category, list, pagesize, page, loadMore } = state\n if (pending) {\n return false\n }\n\n this.setState({\n pending: true,\n list: reset ? [] : list,\n page: reset ? 1 : page,\n loadMore: reset ? true : loadMore\n })\n\n UserData.notifications({\n category: category,\n page: reset ? 1 : page\n }).then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n data.data.map(item => notificationParser(item, this.props.intl))\n\n this.setState({\n pending: false,\n list: [...this.state.list, ...data.data],\n loadMore: data.data.length === pagesize\n })\n }\n })\n }\n\n reloadUserData () {\n UserData.getUserInfo()\n .then(NetworkHelper.withEventdispatcher(this.props.dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n if (!data.code) {\n this.props.dispatchEvent({ type: 'data.currentUserInfo.update', data: data.data })\n }\n })\n }\n\n setNotificationRead (id) {\n const { dispatchEvent, intl } = this.props\n const { list } = this.state\n if (this.state.pending) {\n return false\n }\n\n this.setState({\n menuAnchor: null,\n pending: true\n })\n UserData.setNotificationRead({\n id: id,\n all: id ? '' : '1'\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n list.map((item, index) => {\n if (!id) {\n item.isRead = true\n } else if (id && item.id === id) {\n item.isRead = true\n }\n return true\n })\n this.setState({\n pending: false,\n list: list\n })\n this.reloadUserData()\n data.code && dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.updateFail' }), 2))\n })\n }\n\n deleteNotification (id) {\n const { dispatchEvent, intl } = this.props\n let { list } = this.state\n if (this.state.pending) {\n return false\n }\n\n this.setState({\n menuAnchor: null,\n pending: true\n })\n UserData.deleteNotification({\n id: id,\n all: id ? '' : '1'\n }).then(NetworkHelper.withEventdispatcher(dispatchEvent)(NetworkHelper.getJSONData))\n .then((data) => {\n list = list.filter((item, index) => {\n if (!id) {\n return !item.isRead\n } else {\n item.id === id && !item.isRead && this.reloadUserData()\n return item.id !== id\n }\n })\n this.setState({\n pending: false,\n list: list\n })\n data.code && dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.deleteFail' }), 2))\n })\n }\n\n aLink (item) {\n const { history } = this.props\n this.props.notificationOpenStatusClose()\n !item.isRead && this.setNotificationRead(item.id)\n\n history.push(makeLink(item.url))\n }\n\n notificationSetting () {\n this.props.notificationOpenStatusClose()\n this.props.history.push(makeLink('settings/notification'))\n }\n\n render () {\n const { notificationOpenStatus, notificationOpenStatusClose, classes, intl } = this.props\n const { pending, menuAnchor, category, list, page, loadMore } = this.state\n\n const notificationCategory = []\n notificationCategory[Constants.notificationCategory.all] = intl.formatMessage({ id: 'label.all' })\n notificationCategory[Constants.notificationCategory.unRead] = intl.formatMessage({ id: 'label.unread' })\n\n return ( !pending && notificationOpenStatusClose()}\n className={classes.notification}\n elevation={8}\n PaperProps={{\n className: classes.paper,\n onScroll: e => !pending && loadMore && ((e.target.offsetHeight - 2 + e.target.scrollTop) === e.target.scrollHeight) && this.setState({ page: page + 1 })\n }}\n >\n \n \n \n {intl.formatMessage({ id: 'label.notificationCenter' })}\n \n \n this.notificationSetting()} />\n !pending && notificationOpenStatusClose()} />\n \n \n \n !pending && this.setState({ category: value })}\n tabs={notificationCategory}\n >\n this.setState({ menuAnchor: e.target })} />\n this.setState({ menuAnchor: null })}\n transitionDuration={0}\n >\n this.setNotificationRead('')}>{intl.formatMessage({ id: 'message.tagAllRead' })}\n this.deleteNotification('')}>{intl.formatMessage({ id: 'message.deleteAllReaded' })}\n \n \n \n \n \n {list.map((item, index) => {\n return ( !item.isRead && this.setNotificationRead(item.id)}\n >\n \n \n \n  · {item.data.group && item.data.group + ' / '}{item.data.repository}\n \n \n \n {!item.isRead && }\n {\n this.deleteNotification(item.id)\n e.stopPropagation()\n }}\n />\n \n \n {\n this.aLink(item)\n e.stopPropagation()\n }}\n >{item.text}\n \n )\n })}\n { loadMore\n ? \n {pending && }\n \n : \n \n \n }\n \n \n )\n }\n}\n\nNotification.propTypes = {\n notificationOpenStatus: PropTypes.bool.isRequired,\n notificationOpenStatusClose: PropTypes.func.isRequired,\n dispatchEvent: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nconst mapStateToProps = (state) => {\n return {\n notificationOpenStatus: state.NotificationStates.notificationOpenStatus\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) },\n notificationOpenStatusClose: () => dispatch({ type: 'notification.notificationOpenStatus.close' })\n }\n}\n\nexport default injectIntl(\n withStyles(styles)(\n connect(mapStateToProps, mapDispatchToProps)(\n withRouter(Notification)\n )\n )\n)\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\n\nimport NotificationBar from '@pgyer/essential-component/NotificationBar'\n\nclass NotificationBars extends React.Component {\n constructor () {\n super()\n this.messageLists = []\n }\n\n componentDidMount () {\n this.messageLists = []\n }\n\n addMessage (message) {\n if (message.message) {\n const currentIndex = this.messageLists.length\n this.messageLists.push({ ...message, openStatus: true })\n setTimeout(() => { this.closeMessage(currentIndex) }, 5000)\n }\n }\n\n closeMessage (index) {\n this.messageLists[index].openStatus = false\n this.props.dispatchEvent({ type: 'notification.message.change' })\n setTimeout(() => {\n if (!this.messageLists.reduce((result, message) => (result || message.openStatus), false)) {\n this.messageLists = []\n }\n }, 200)\n }\n\n shouldComponentUpdate (nextProps, nextState) {\n if (nextProps.notificationBody === this.props.notificationBody) {\n return false\n }\n return true\n }\n\n render () {\n const { notificationBody } = this.props\n this.addMessage(notificationBody)\n\n let offset = 0\n return this.messageLists.map(\n (message, index) => {\n offset += message.openStatus ? 1 : 0\n return ( 0 ? offset - 1 : 0}\n open={message.openStatus}\n onClose={(ev, reason) => (reason === 'timeout' && this.closeMessage(index))}\n action={message.action}\n message={message.message}\n />)\n }\n )\n }\n}\n\nNotificationBars.propTypes = {\n notificationBody: PropTypes.object.isRequired,\n dispatchEvent: PropTypes.func.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n notificationBody: state.NotificationStates.notificationBody\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n dispatchEvent: (event) => { dispatch(event) }\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(NotificationBars)\n","const data = {\n chinese: '简体中文',\n english: 'English'\n}\n\nexport default { __namespace__: 'lang', ...data }\n","const data = {\n Added: '已添加',\n created: '已创建',\n updated: '已更新',\n removed: '已移除',\n deleted: '已删除',\n copied: '已拷贝',\n merged: '已合并',\n opened: '已打开',\n closed: '已关闭',\n binded: '已绑定',\n unbinded: '已解绑',\n verified: '已验证',\n approved: '已评审',\n enabled: '已恢复',\n disabled: '已禁用',\n reseted: '已重置',\n createPersonalGroupNotice: '至少需要创建一个仓库组作为个人仓库组',\n\n emailCodeHasSendNewEmail: '验证码已经发送至新的邮箱',\n phoneCodeHasSendNewPhone: '验证码已经发送至新的手机',\n finishIdentityVerify: '前请输入您的账号密码以完成身份验证',\n unbindEnterCodeFeverPassword: '若确认,请输入您的CodeFever账号密码以验证身份',\n scanQrcodeBind: '请使用微信扫描二维码完成绑定',\n theAccountUsedWechat_N: '该账号曾使用微信\"{n}\"与蒲公英旗下产品小程序绑定,确认使用当前微信账号替换\"{n}\"的绑定吗?',\n rebindWechat: '取消,更换微信后重新绑定',\n unbindAllProduct: '解除绑定,您将同时解绑蒲公英旗下所有产品',\n mfaGuide: '打开具有 MFA 功能的 App 并扫描下方二维码,输入 App 上的显示的两组不同的 MFA 密码并点击 保存 按钮完成 MFA 设备设置。你可以在任何手机应用市场搜索 MFA 下载你信任的 App。',\n\n inputEmailToAddMemeber: '输入用户的注册邮箱以添加为成员',\n groupMemberCanControlRepositoryNotice: '此仓库所在仓库组的成员对于此仓库的控制权由其仓库组角色决定',\n\n repositoryChangeCreatorNotice: '您确定需要更换此仓库创建者吗 ? 新的创建着将拥有仓库所有管理权限, 且曾经的创建者将会拥有 所有者 角色',\n repositoryChangeURLNotice: '您确定需要更改此仓库 URL 吗 ? URL 更改后,不能再使用原 URL 管理仓库, git 客户端使用的仓库地址也会同步变更, 您需要使用 git remote 命令重新设置仓库地址',\n repositoryDeleteRepositoryNotice: '您确定要删除此仓库吗 ? 仓库删除后此仓库不再可用, 仓库内的 文件 和 相关记录 都会不可逆的被删除, 请确认需要保留的文件已经备份完成, 点击 取消 按钮可以取消操作。',\n repositoryDeleteRepositoryConfirmNotice: '需要您再次确认删除此仓库 ? 此仓库删除后, 所有信息和文件都会被不可逆删除, 此操作造成的后果不可恢复, 请确认需要保留的文件已经备份完成, 点击 取消 按钮可以取消此操作。',\n\n groupChangeCreatorNotice: '您确定需要更换此仓库组创建者吗 ? 新的创建着将拥有仓库组所有管理权限, 且曾经的创建者将会拥有 所有者 角色, 注意个人默认仓库组不能更改创建者',\n groupChangeURLNotice: '您确定需要更改此仓库组 URL 吗 ? URL 更改后,不能再使用原 URL 管理仓库组, git 客户端使用的组内仓库地址也会同步变更, 您需要使用 git remote 命令重新设置仓库地址',\n groupDeleteRepositoryNotice: '您确定要删除此仓库组吗 ? 仓库组删除后不再可用, 仓库组内的 相关记录 都会不可逆的被删除, 在删除此仓库组前请手动删除组内所有仓库, 点击 取消 按钮可以取消操作。',\n groupDeleteRepositoryConfirmNotice: '需要您再次确认删除此仓库组 ? 此仓库组删除后, 所有信息都会被不可逆删除, 此操作造成的后果不可恢复, 在删除此仓库组前请手动删除组内所有仓库, 点击 取消 按钮可以取消此操作。',\n\n inputCommitFilter: '输入提交信息过滤',\n repositoryEmpty: '仓库为空',\n displaySource: '展示源码',\n displayRendereFile: '展示渲染内容',\n fileContentEmpty: '文件内容为空',\n fileContentOversize: '文件大小超过允许展示的最大限度, 请在本地查看',\n fileTypeNotSupport: '暂不支持二进制文件的展示',\n diffFileToMany: '超过允许展示的最大文件数量, 请在本地查看',\n createNewRepository: '在命令行创建一个新仓库',\n pushRepository: '在命令行 push 一个已存在的仓库',\n\n _S_empty: '请输入{s}',\n repository_S_empty: '仓库内还没有{s}',\n repositoryBranchEmpty: 'Git分支,本质上是指向提交对象的可变指针。使用 git 命令创建分支: \\'git branch 新分支名称 旧分支名称\\'',\n repositoryTagEmpty: '标签是某一时间点上的版本,通常使用标签标识代码库的重要版本,如在项目的里程碑创建标签。也可以使用 git 命令创建标签:git tag -a v1.0 -m \\'版本 1.0\\'',\n mergeRequestEmpty: '未找到相关合并请求记录',\n addNewCommit: '新增一个提交',\n alreadyMergeRequest: '已经合并请求',\n alreadyCloseRequest: '已经关闭请求',\n assignReviewerTitle: '指定评审员(只能指定1人)',\n selectReviewer: '选择评审员',\n notSelectReviewers: '未指定评审员',\n deleteReviewer: '清除评审员',\n notApprove: '未评审',\n assign_N_M_Reviewer: '指定 {n} 为和并请求 {m} 的评审员',\n delete_M_N_Reviewer: '删除了和并请求 {m} 的评审员 {n}',\n review_M_Reviewer: '评审了和并请求 {m} 的代码',\n\n _S_listEmpty: '{s}列表为空',\n repositoryListEmptyNotice: '创建一个仓库, 开始体验吧',\n groupListEmptyNotice: '创建一个仓库组, 组织并管理组内仓库',\n\n input_S_name: '输入{s}名过滤',\n confirmDelete: '确认删除{s}?',\n\n jumpWithLink: '跳转链接',\n noRepositoryFind: '没有查看权限',\n noCommitRecord: '暂无提交记录',\n plsInputInvitedEmail: '请输入被邀请人邮箱',\n repositoryDeleteTipFirst: '删除项目将删除其存储库和所有相关资源,包括问题、合并请求等',\n repositoryDeleteTipSecond: '无法还原已删除的项目!',\n inputMergeCommit: '请输入合并的提交信息, 并根据情况勾选是否使用squash功能',\n selectDifferentBranch: '必须选择不同的分支进行合并',\n mergeConflictTitle: '你要合并的两个分支有代码冲突,请根据下面的命令在本地进行合并',\n mergeConflictTip1: '第一步:拉取代码并新建合并请求的分支',\n mergeConflictTip2: '第二步:本地检查代码更改',\n mergeConflictTip3: '第三步:合并分支并解决冲突',\n mergeConflictTip4: '第四步:将代码推送到codeForge平台',\n from_S_Merge_S: '从 {s1} 请求合并到 {s2}',\n\n defaultGroupReqiured: '需要默认仓库组',\n defaultGroupReqiuredDescription: '您需要至少创建一个仓库组用于存放仓库',\n\n someVersion: '相关版本',\n backHome: '回到首页',\n inputSSHKEYContent: '请输入 SSH Key 内容',\n inputSSHKEYName: '请输入 SSH Key 名称',\n defaultBranchDescription: '默认分支被视为代码库中的基本分支, 是所有克隆、代码提交和合并请求的目标分支',\n settingToDefaultBranch: '设置为默认分支',\n updateDefaultBranch: '修改默认分支',\n settingDefaultBranch: '请设置默认分支',\n protectedBranchDescription: '保护分支会保障分支安全性, 不允许除所有者以外角色进行强制推送及删除',\n protectedBranchRuleEmpty: '目前无保护分支规则, 请新建保护分支规则, 保护分支安全',\n inputBranchOrRegexp: '请输入分支名称或通用符规则',\n createProtectedBranchRule: '新建保护分支规则',\n updateProtectedBranchRule: '修改保护分支规则',\n deleteProtectedBranchRule: '删除保护分支规则',\n noBodyAllow: '不允许任何人',\n\n primaryEmail: '主邮箱地址',\n primaryEmailDescription: '当前 CodeFever 账号的邮箱地址, 用于接收相关通知, 密码重置, 登录等操作',\n updatePrimaryEmail: '更改主邮箱地址',\n myEmail: '我的邮箱地址',\n myEmailDescription: '多邮箱功能用于同一用户有多个不同邮箱用于提交代码, 系统可识别并创建关联关系',\n addEmail: '新建邮箱地址',\n contactedEmail: '已关联邮箱',\n shouldValidation: '待验证',\n resendEmail: '重发邮件',\n\n differenceBetweenHTTPSAndSSH: 'HTTPS 与 SSH 有什么区别 ?',\n generateAndSetSSHKey: '请确认客户端的 SSH Key 已经生成并且在 CodeFever 上正确设置。',\n itsMyEmail: '这是我的邮箱',\n\n notificationSystem: '系统消息',\n notificationMention: '提到我的',\n tagRead: '标记为已读',\n tagAllRead: '标记所有为已读',\n deleteAllReaded: '删除所有已读用户消息',\n mergeRequestNotification: '合并请求通知',\n mergeRequestNotificationDesc: '可接收仓库成员发布的和并请求通知, 开发者及以上成员可接收',\n emailNotification: '邮件通知',\n emailNotificationDesc: '通知设置中的消息将发送到您的注册邮箱中。',\n\n searchByName: '查找姓名或邮箱',\n userStatusEnabled: '恢复确认',\n userStatusDisabled: '禁用确认',\n userStatusEnabled_N: '确认恢复用户 \"{n}\" ?',\n userStatusDisabled_N: '确认禁用用户 \"{n}\" ?',\n closeMFA: '关闭2FA认证',\n closeMFAConfirm: '关闭2FA认证确认',\n closeMFA_N: '确认关闭用户 \"{n}\" 2FA认证?',\n resetPassword: '重置密码',\n reset_N_Password: '重置用户 \"{n}\" 密码',\n searchRepository: '查找仓库',\n searchGroup: '查找仓库组',\n roleToOwner: '指定为所有者',\n setGroupOwner_S: '确定指定 {s} 为仓库组的所有者?',\n setAdministrator: '设置为管理员',\n cancelAdministrator: '取消管理员',\n memberRemoveConfirm: '成员删除确认',\n successAddUser: '添加用户成功',\n\n webhookEventsNeed: '请选择推送事件',\n webhookListEmpty: '还没有创建Webhook',\n useTime_n: '用时 {n} s',\n show_n_record: '显示最新{n}条记录'\n}\n\nexport default { ...data, __namespace__: 'message' }\n","const data = {\n _S_empty: '请输入{s}',\n _S_retype: '请再次输入{s}',\n _S_has_illegal_character: '{s}含有非法字符(只支持字母、数字、下划线(_)、中划线(-)和点(.)的组合)',\n _S_notChoose: '请选择{s}',\n _S_duplicate: '{s}重复',\n _S_invalid: '{s}不正确',\n _S_notFound: '没有找到此{s}',\n noMoreThan_N_characters: '不能超过{n}个字符',\n within_N1_to_N2_characters: '需要在{n1}至{n2}个字符之间',\n only_N1_or_N2_characters: '只能包含{n1}或{n2}个字符',\n requireCombinationOfCharactersNumbersAndUnderscore: '只能是字母、数字和下划线的组合',\n input_S_placeholder: '请输入{s},只支持字母、数字、下划线(_)、中划线(-)和点(.)的组合',\n inputNotSame: '两次输入不一致',\n inputSame: '两次输入一致',\n canNotAddCreatorAsMember: '创建者不能当作成员添加',\n\n createRepositoryFail: '创建仓库失败,请稍后重试',\n createGroupFail: '创建仓库组失败,请稍后重试',\n createBranchFail: '创建分支失败,请稍后重试',\n createTagFail: '创建标签失败,请稍后重试',\n createMergeRequestFail: '创建合并请求失败,请稍后重试',\n createProtectedBrancheRuleFail: '创建保护分支规则失败,请稍后重试',\n AddFail: '添加失败,请稍后重试',\n updateFail: '更新失败,请稍后重试',\n removeFail: '移除失败,请稍后重试',\n deleteFail: '删除失败,请稍后重试',\n verifyFail: '验证失败,请稍后重试',\n forkRepositoryFail: 'Fork仓库失败,请稍后重试',\n getFileFail: '获取完整文件失败,请稍后重试',\n getEmailCodeFail: '获取邮箱验证码失败,请稍后重试',\n getPhoneCodeFail: '获取手机验证码失败,请稍后重试',\n change_S_Fail: '修改{s}失败,请稍后重试',\n waitToRetry: '网络错误,请稍后重试',\n\n canNotChangeOwnerOfUserGroup: '不能更改个人默认仓库组的创建者',\n canNotDeleteUserGroup: '不能删除个人默认仓库组',\n canNotDeleteNonEmptyGroup: '仓库组内含有未删除的仓库, 请手动删除组内仓库后再试',\n mergeRequestExists: '存在已打开的合并请求',\n mergeFail: '合并失败,请稍后再试',\n reviewedCanNotAssign: '不能替换评审过的评审员',\n reviewedCanNotDelete: '不能删除评审过的评审员',\n branchProteced: '不能在保护分支上合并',\n userNotReview: '不能合并,还有评审员未评审',\n\n inputNewEmail: '请输入新的邮箱',\n bindEmailFirst: '你需要绑定邮箱才可以绑定第三方平台',\n wechatHasbound: '该微信号已经被绑定,请扫码登录后解绑重试',\n sshKeyDuplicate: '此 SSH Key 已经添加, 或在其他用户中'\n}\n\nexport default { ...data, __namespace__: 'message.error' }\n","const data = {\n createdGroup: '创建仓库组',\n updateGroup_S_Avator: '更新了仓库组 {s} 的头像',\n updateGroup_S_Name: '更新了仓库组 {s} 的名称',\n updateGroup_S_Description: '更新了仓库组 {s} 的描述',\n\n addGroup_S_Memeber: '向仓库组 {s} 添加了成员',\n changeGroup_S_MemebrRole: '设置了仓库组 {s} 内成员角色',\n removeGroup_S_Memebr: '移除了仓库组 {s} 的成员',\n setGroup_S_Creator: '设置了仓库组 {s} 的创建者',\n setGroup_S_URL: '修改了仓库组 {s} 的访问地址',\n\n createdRepository: '创建仓库',\n deleteRepository: '删除仓库',\n forkRepository: 'fork 并创建仓库',\n updateRepository_S_Avator: '更新了仓库 {s} 的头像',\n updateRepository_S_Name: '更新了仓库 {s} 的名称',\n updateRepository_S_Description: '更新了仓库 {s} 的描述',\n\n pushTo_S_Branch: '推送提交到仓库 {s} 的分支',\n pushTo_S_NewBranch: '推送分支到仓库 {s}',\n created_S_NewBranch: '在仓库 {s} 创建新分支',\n delete_S_Branch: '在仓库 {s} 删除了分支',\n update_S_DefaultBranch: '修改了仓库 {s} 的默认分支',\n created_S_ProtectedBranchRule: '在仓库 {s} 创建保护分支规则',\n update_S_ProtectedBranchRule: '修改了仓库 {s} 的保护分支规则',\n delete_S_ProtectedBranchRule: '删除了仓库 {s} 的保护分支规则',\n\n pushTo_S_Tag: '推送提交到仓库 {s} 的标签',\n pushTo_S_NewTag: '推送标签到仓库 {s}',\n created_S_NewTag: '在仓库 {s} 创建新标签',\n delete_S_Tag: '在仓库 {s} 删除了标签',\n\n addRepository_S_Memeber: '向仓库 {s} 添加了成员',\n changeRepository_S_MemebrRole: '设置了仓库 {s} 内成员角色',\n removeRepository_S_Memebr: '移除了仓库 {s} 的成员',\n setRepository_S_Creator: '设置了仓库 {s} 的创建者',\n setRepository_S_URL: '修改了仓库 {s} 的访问地址',\n\n open_S_MergeRquest: '在仓库 {s} 打开合并请求',\n close_S_MergeRquest: '在仓库 {s} 关闭合并请求',\n merge_S_MergeRquest: '在仓库 {s} 合并请求',\n assign_S_Reviewer: '在仓库 {s} 指定评审员',\n delete_S_Reviewer: '在仓库 {s} 删除评审员',\n review_S_Reviewer: '在仓库 {s} 评审了代码',\n\n create_S_Webhook: '在仓库 {s} 创建了webhook',\n update_S_Webhook: '在仓库 {s} 更新了webhook',\n delete_S_Webhook: '在仓库 {s} 删除了webhook'\n}\n\nexport default { ...data, __namespace__: 'message.activity' }\n","const data = {\n repository: '仓库',\n repository_pl: '仓库',\n\n group: '仓库组',\n group_pl: '仓库组',\n\n file: '文件',\n file_pl: '文件',\n\n commit: '提交',\n commit_pl: '提交',\n\n mergeRequest: '合并请求',\n mergeRequest_pl: '合并请求',\n\n branch: '分支',\n branch_pl: '分支',\n\n webhook: 'Webhook',\n webhook_pl: 'Webhooks',\n\n tag: '标签',\n tag_pl: '标签',\n\n member: '成员',\n member_pl: '成员',\n\n activity: '动态',\n activity_pl: '动态',\n\n setting: '设置',\n setting_pl: '设置',\n\n SSHKey: 'SSH Key',\n SSHKey_pl: 'SSH Keys',\n\n user: '用户',\n user_pl: '用户',\n\n fileTree: '文件树',\n merge: '合并',\n data: '数据',\n clone: '克隆',\n fork: 'Fork',\n limitation: '限制',\n role: '角色',\n team: '团队',\n code: '源码',\n hash: '哈希值',\n time: '时间',\n number: '数量',\n line: '行',\n\n guest: '访客',\n reporter: '监督者',\n developer: '开发者',\n maintianer: '维护者',\n owner: '所有者',\n\n parentNode: '父节点'\n}\n\nexport default { ...data, __namespace__: 'term' }\n","import Term from 'APPSRC/lang/zh-cn/Term'\n\nconst data = {\n ...Term,\n\n CodeFever: 'CodeFever',\n ID: 'ID',\n\n user: '用户',\n name: '名称',\n creator: '创建者',\n reviewer: '评审员',\n administrator: '管理员',\n title: '标题',\n description: '描述',\n origin: '来源',\n source: '源',\n target: '目标',\n url: 'URL',\n ssh: 'SSH',\n slug: '标识串',\n prefix: '前缀',\n avatar: '头像',\n icon: '图标',\n joinedAt: '加入时间',\n unknown: '未知',\n all: '所有',\n detail: '详情',\n language: '语言',\n webhook: 'Webhook',\n log: '日志',\n httpHeaders: '头部',\n httpBody: '响应数据',\n httpPayload: '请求数据',\n\n browser: '浏览',\n expand: '展开',\n times: '次',\n full: '完整',\n invite: '邀请',\n before: '前',\n\n new: '新建',\n add: '新增',\n open: '打开',\n close: '关闭',\n save: '保存',\n create: '创建',\n update: '更新',\n remove: '移除',\n modification: '修改',\n delete: '删除',\n and: '和',\n ok: '确定',\n cancel: '取消',\n copy: '拷贝',\n push: '推送',\n merge: '合并',\n chose: '选择',\n show: '显示',\n list: '列表',\n copied: '已复制',\n contain: '包含',\n request: '请求',\n response: '响应',\n bind: '绑定',\n unbind: '解绑',\n replace: '替换',\n sort: '排序',\n manage: '管理',\n protected: '保护',\n operating: '操作',\n approve: '评审',\n enable: '启用',\n disable: '禁用',\n\n last: '最近',\n default: '默认',\n active: '活跃',\n inactive: '非活跃',\n\n path: '路径',\n email: '电子邮件地址',\n password: '密码',\n oldPassword: '旧密码',\n newPassword: '新密码',\n mfaCode: 'MFA 密码',\n twoFactorAuthentication: '二因素认证',\n emailCode: '验证码',\n phoneCode: '验证码',\n phone: '手机',\n china: '中国',\n company: '公司',\n job: '职位',\n wechat: '微信',\n credential: '凭据',\n\n login: '登录',\n logout: '退出登录',\n\n next: '下一页',\n prev: '上一页',\n\n mergeMessage: '合并信息',\n submit: '提交',\n rule: '规则',\n allow: '允许',\n status: '状态',\n history: '历史',\n notification: '通知',\n\n learnMore: '了解更多',\n myServiceTicket: '我的工单',\n getHelp: '获取帮助',\n help: '帮助',\n result: '结果',\n success: '成功',\n failure: '失败',\n doc: '文档',\n adminArea: '管理后台',\n\n edit: '编辑',\n confirm: '确认'\n}\n\nexport default { ...data, __namespace__: 'phrase' }\n","import Term from 'APPSRC/lang/zh-cn/Term'\nimport Phrase from 'APPSRC/lang/zh-cn/Phrase'\n\n// let phraseSeperator = ''\n\nconst data = {\n ...Term,\n ...Phrase,\n\n dashboard: '概览',\n general: '常规',\n advanced: '高级',\n profile: '个人信息',\n mail: '多邮箱'\n}\n\nexport default { ...data, __namespace__: 'menu' }\n","import Term from 'APPSRC/lang/zh-cn/Term'\n// import Time from 'APPSRC/lang/zh-cn/Time'\nimport Phrase from 'APPSRC/lang/zh-cn/Phrase'\n\nconst phraseSeperator = ''\n\nconst data = {\n ...Phrase,\n ...Term,\n\n update_S_: '修改{s}',\n retryAfter_N_seconds: '{n} 秒后重试',\n userAvatar: [Phrase.user, Phrase.avatar].join(phraseSeperator),\n userName: [Phrase.user, Phrase.name].join(phraseSeperator),\n getEmailCode: ['获取', Phrase.emailCode].join(phraseSeperator),\n getPhoneCode: ['获取', Phrase.phoneCode].join(phraseSeperator),\n mostSeen: '常见',\n loginCredential: [Phrase.login, Phrase.credential].join(phraseSeperator),\n CodeFeverPassword: [Phrase.CodeFever, Phrase.password].join(phraseSeperator),\n wechatBind: [Phrase.wechat, Phrase.bind].join(phraseSeperator),\n unbind_P: '解除{p}绑定',\n\n repositoryID: [Term.repository, Phrase.ID].join(phraseSeperator),\n repositoryName: [Term.repository, Phrase.name].join(phraseSeperator),\n repositoryDescription: [Term.repository, Phrase.description].join(phraseSeperator),\n repositoryURL: [Term.repository, Phrase.url].join(phraseSeperator),\n repositorySlug: [Term.repository, Phrase.slug].join(phraseSeperator),\n repositoryMember: [Term.repository, Term.member].join(phraseSeperator),\n newRepository: [Phrase.new, Term.repository].join(phraseSeperator),\n forkRepository: [Term.fork, Term.repository].join(phraseSeperator),\n unknownRepository: [Phrase.unknown, Term.repository].join(phraseSeperator),\n allRepository: [Phrase.all, Term.repository].join(phraseSeperator),\n deleteRepository: [Phrase.delete, Term.repository].join(phraseSeperator),\n\n groupID: [Term.group, Phrase.ID].join(phraseSeperator),\n groupName: [Term.group, Phrase.name].join(phraseSeperator),\n groupDescription: [Term.group, Phrase.description].join(phraseSeperator),\n groupURL: [Term.group, Phrase.url].join(phraseSeperator),\n groupSlug: [Term.repository, Phrase.slug].join(phraseSeperator),\n groupMember: [Term.group, Term.member].join(phraseSeperator),\n newGroup: [Phrase.new, Term.group].join(phraseSeperator),\n unknownGroup: [Phrase.unknown, Term.group].join(phraseSeperator),\n deleteGroup: [Phrase.delete, Term.group].join(phraseSeperator),\n\n inviteMember: [Phrase.invite, Term.member].join(phraseSeperator),\n removeMember: [Phrase.remove, Term.member].join(phraseSeperator),\n\n forkFrom_S: [Term.fork, '自: {s}'].join(phraseSeperator),\n updateFrom_S1_To_S2: ['从 {s1} 更新为 {s2}'].join(phraseSeperator),\n\n repositoryAvatar: [Term.repository, Phrase.icon].join(phraseSeperator),\n groupAvatar: [Term.group, Phrase.icon].join(phraseSeperator),\n basicInfo: '基本信息',\n newPasswordConfirm: [Phrase.confirm, Phrase.newPassword].join(phraseSeperator),\n security: '安全性',\n setupNewMFADevice: '设置 MFA 设备',\n changeMFADevice: '更换 MFA 设备',\n removeMFADevice: '移除 MFA 设备',\n mfaCode1: ['第一组 ', Phrase.mfaCode].join(phraseSeperator),\n mfaCode2: ['第二组 ', Phrase.mfaCode].join(phraseSeperator),\n commitTime: [Phrase.commit, Phrase.time].join(phraseSeperator),\n copyPath: [Phrase.copy, Phrase.path].join(phraseSeperator),\n copyHash: [Phrase.copy, Term.hash].join(phraseSeperator),\n copyCode: [Phrase.copy, Term.code].join(phraseSeperator),\n lastCommit: [Phrase.last, Term.commit].join(phraseSeperator),\n lastUpdate: [Phrase.last, Phrase.update].join(phraseSeperator),\n\n updateCreator: [Phrase.update, Phrase.creator].join(phraseSeperator),\n updateRepositoryURL: [Phrase.update, Term.repository, Phrase.url].join(phraseSeperator),\n updateGroupURL: [Phrase.update, Term.group, Phrase.url].join(phraseSeperator),\n\n webhookSetting: [Term.webhook, Term.setting].join(phraseSeperator),\n createWebhook: [Phrase.create, Term.webhook].join(phraseSeperator),\n updateWebhook: [Phrase.update, Term.webhook].join(phraseSeperator),\n deleteWebhook: [Phrase.delete, Term.webhook].join(phraseSeperator),\n contentType: '数据格式',\n webhookSecret: '校验秘钥',\n webhookTrigger: '触发事件',\n pushTrigger: '仅推送事件',\n customeTrigger: '自定义',\n webhookList: 'Webhook列表',\n webhookLog: [Phrase.webhook, Phrase.log].join(phraseSeperator),\n\n createOrigin: [Phrase.create, Phrase.origin].join(phraseSeperator),\n choseCreateOrigin: [Phrase.chose, Phrase.create, Phrase.origin].join(phraseSeperator),\n tagDescription: [Term.tag, Phrase.description].join(phraseSeperator),\n tagName: [Term.tag, Phrase.name].join(phraseSeperator),\n branchName: [Term.branch, Phrase.name].join(phraseSeperator),\n defaultBranch: [Phrase.default, Term.branch].join(phraseSeperator),\n protectedBranch: [Phrase.protected, Term.branch].join(phraseSeperator),\n branchRule: [Phrase.branch, Phrase.rule].join(phraseSeperator),\n allowPush: [Phrase.allow, Phrase.push].join(phraseSeperator),\n allowMerge: [Phrase.allow, Phrase.merge].join(phraseSeperator),\n noData: ['没有', Term.data].join(phraseSeperator),\n newBranch: [Phrase.new, Term.branch].join(phraseSeperator),\n newTag: [Phrase.new, Term.tag].join(phraseSeperator),\n deleteBranch: [Phrase.delete, Term.branch].join(phraseSeperator),\n deleteTag: [Phrase.delete, Term.tag].join(phraseSeperator),\n updateTime: [Phrase.update, Term.time].join(phraseSeperator),\n updatedIn: '更新于',\n editIn: '编辑于',\n expandFullFile: [Phrase.expand, Phrase.full, Phrase.file].join(phraseSeperator),\n showDiffOnly: '仅展示修改行',\n codeDiff: '代码差异',\n requestCreated: '创建于',\n requestClosed: '关闭于',\n requestMerged: '合并于',\n createRepository: ['请', Phrase.create, Term.repository].join(phraseSeperator),\n\n commitActivity: [Term.commit, Phrase.activity].join(phraseSeperator),\n mergeRequestActivity: [Term.mergeRequest, Phrase.activity].join(phraseSeperator),\n memberActivity: [Term.member, Phrase.activity].join(phraseSeperator),\n\n addSSHKey: [Phrase.add, Term.SSHKey].join(phraseSeperator),\n emailManage: ['邮箱', Phrase.manage].join(phraseSeperator),\n memberManage: [Term.member, Phrase.manage].join(phraseSeperator),\n primaryEmail: '主邮箱',\n contactEmail: '关联邮箱列表',\n SSHKeyManage: [Term.SSHKey_pl, ' ', Phrase.manage].join(phraseSeperator),\n notificationCenter: '通知中心',\n notificationReceiveStatus: '接收通知状态',\n unread: '未读',\n\n fileModification: [Term.file, Phrase.modification].join(phraseSeperator),\n fileModificationList: [Phrase.modification, Term.file, Phrase.list].join(phraseSeperator),\n lineAdd: [Term.line, Phrase.add].join(phraseSeperator),\n lineDelete: [Term.line, Phrase.delete].join(phraseSeperator),\n browserFile: [Phrase.browser, Phrase.file].join(phraseSeperator),\n browserUnchangedFIle: [Phrase.browser, Phrase.modification, Phrase.before, Phrase.file].join(phraseSeperator),\n commitHash: [Term.commit, Term.hash].join(phraseSeperator),\n allFiles: [Phrase.all, Phrase.file].join(phraseSeperator),\n openFileTree: [Phrase.open, Term.fileTree].join(phraseSeperator),\n closeFileTree: [Phrase.close, Term.fileTree].join(phraseSeperator),\n\n requestMerge: [Phrase.request, Phrase.merge].join(phraseSeperator),\n createMergeRequest: [Phrase.create, Term.mergeRequest].join(phraseSeperator),\n closeMergeRequest: [Phrase.close, Term.mergeRequest].join(phraseSeperator),\n\n more: '查看更多',\n noMore: '没有更多',\n processing: '处理中',\n\n IJoined: '我参与的',\n ICreated: '我创建的',\n\n dangerOperation: '危险操作',\n dangerOperationConfirm: '最后确认危险操作',\n compareBranch: '对比分支并继续',\n lastModified: '最近修改',\n lastModified_N: ['第', '{n}', '次修改'].join(phraseSeperator),\n\n openMergeRequest: [Phrase.open, Term.mergeRequest].join(phraseSeperator),\n modificationBranch: [Phrase.modification, Term.branch].join(phraseSeperator),\n sourceBranch: [Phrase.source, Term.branch].join(phraseSeperator),\n targetBranch: [Phrase.target, Term.branch].join(phraseSeperator),\n repositoryAdvancedSetting: '仓库高级设置',\n branchSetting: '分支设置',\n groupAdvancedSetting: '仓库组高级设置',\n memberLimitation: [Term.member, Term.limitation].join(phraseSeperator),\n modificationLimitation: [Phrase.modification, Term.limitation].join(phraseSeperator),\n roleID_1: Term.guest,\n roleID_2: Term.reporter,\n roleID_3: Term.developer,\n roleID_4: Term.maintianer,\n roleID_5: Term.owner,\n yourself: '你自己',\n\n enabledMFA: '开启了2FA',\n disabledMFA: '未开启2FA',\n blocked: '禁用',\n createTime: '创建时间',\n addUser: '添加用户',\n\n statistic: '统计',\n systemResources: '系统资源',\n diskUsgae: '磁盘使用量',\n serviceStatus: '服务状态',\n\n host: '主机',\n senderName: '发件人名称',\n senderAddress: '发件人地址',\n register: '注册',\n allowRegister: '开放注册',\n urlPrefix: [Phrase.url, ' ', Phrase.prefix].join(phraseSeperator),\n sshPrefix: [Phrase.ssh, ' ', Phrase.prefix].join(phraseSeperator),\n\n support: '技术支持',\n feedback: '提交反馈',\n contribute: '为 CodeFever Community 贡献代码',\n about: '关于 CodeFever Community',\n\n pushEvent: '推送事件',\n changeMemberRole: [Phrase.modification, Term.member, Term.role].join(phraseSeperator),\n createProtectedBranchRule: '创建受保护分支规则',\n changeProtectedBranchRule: '修改受保护分支规则',\n removeProtectedBranchRule: '删除受保护分支规则',\n reviewReviewer: '评审代码',\n\n _N_repository: '{n} {n, plural, =0 {' + Term.repository + '}\\n=1 {' + Term.repository + '}\\nother {' + Term.repository_pl + '}}',\n _N_commit: '{n} {n, plural, =0 {' + Term.commit + '}\\n=1 {' + Term.commit + '}\\nother {' + Term.commit_pl + '}}',\n _N_branch: '{n} {n, plural, =0 {' + Term.branch + '}\\n=1 {' + Term.branch + '}\\nother {' + Term.branch_pl + '}}',\n _N_tag: '{n} {n, plural, =0 {' + Term.tag + '}\\n=1 {' + Term.tag + '}\\nother {' + Term.tag_pl + '}}',\n _N_byte: '{n} {n, plural, =0 {Byte}\\n=1 {Byte}\\nother {Bytes}}',\n _N_mergeRequest: '{n} {n, plural, =0 {' + Term.mergeRequest + '}\\n=1 {' + Term.mergeRequest + '}\\nother {' + Term.mergeRequest_pl + '}}',\n _N_member: '{n} {n, plural, =0 {' + Term.member + '}\\n=1 {' + Term.member + '}\\nother {' + Term.member_pl + '}}'\n}\n\nexport default { ...data, __namespace__: 'label' }\n","const data = {\n 'mergeRequest:create': '{user} 打开了和并请求: !{number} {title}',\n 'mergeRequest:close': '{user} 关闭了和并请求: !{number} {title}',\n 'mergeRequest:merge': '{user} 合并了和并请求: !{number} {title}',\n 'mergeRequestReviewer:create': '{user} 指定你为合并请求 !{number} {title} 的评审员',\n 'mergeRequestReviewer:review': '{user} 通过了和并请求 !{number} {title} 的评审'\n}\n\nexport default { ...data, __namespace__: 'notification' }\n","const data = {\n Added: 'Added',\n created: 'Created',\n updated: 'Updated',\n removed: 'Removed',\n deleted: 'Deleted',\n copied: 'Copied',\n merged: 'Merged',\n opened: 'Opened',\n closed: 'Closed',\n binded: 'Binded',\n unbinded: 'Unbinded',\n verified: 'Verified',\n approved: 'Approved',\n enabled: 'Enabled',\n disabled: 'Disabled',\n reseted: 'reseted',\n createPersonalGroupNotice: 'At Least One Group is Required',\n\n emailCodeHasSendNewEmail: 'A E-mail Contains Validation Code Has Sent To Your E-mail Box',\n phoneCodeHasSendNewPhone: 'A Text Message Contains Validation Code Has Sent To Your Cellphone',\n finishIdentityVerify: 'Input Password To Verify Your Identity',\n unbindEnterCodeFeverPassword: 'Input Password To Confirm',\n scanQrcodeBind: 'Scan QR Code To Bind Your Account By Using WeChat App',\n theAccountUsedWechat_N: 'This Account Has Binded Account Named \"{n}\", Are Your Confirm To Substitute It?',\n rebindWechat: 'Cancel',\n unbindAllProduct: 'Unbind All Pgyer\\'s Products',\n mfaGuide: 'Use Apps with MFA Feature to Scan the Following QRCode, Input Two Different MFA Code And Press Save Button to Setup a New MFA Device. You Can Search MFA in Any App Merket to Download a MFA App You Trusted in.',\n\n inputEmailToAddMemeber: 'Input Email To Add A Member',\n groupMemberCanControlRepositoryNotice: 'Members In Group Can Also Access This Repositoy Using Same Role Privilige In Group',\n\n repositoryChangeCreatorNotice: 'Sure To Change Creator ? Both New And Old Creator Will Be Owner Of This Repository',\n repositoryChangeURLNotice: 'Sure To Change URL ? Both Git Client And Web Wiil Not Respond For Old URL, You May Wish To Reset Remote Via git remote Command',\n repositoryDeleteRepositoryNotice: 'Sure To Delete This Repositoy ? Your Repository Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.',\n repositoryDeleteRepositoryConfirmNotice: 'This Repository Will Be Deleted, Are You Sure About This ? Your Repository Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.',\n\n groupChangeCreatorNotice: 'Sure To Change Creator ? Both New And Old Creator Will Be Owner Of This Repository, Notice That You Can Not Change Creator Of Default Group',\n groupChangeURLNotice: 'Sure To Change URL ? Both Git Client And Web Wiil Not Respond For Old URL, You May Wish To Reset Remote Via git remote Command',\n groupDeleteRepositoryNotice: 'Sure To Delete This Group ? Your Group And Related Repositoies Will NOT BE AVAILABLE Any More, All Record Related To This Group Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.',\n groupDeleteRepositoryConfirmNotice: 'This Group Will Be Deleted, Are You Sure About This ? Your Group And Related Repositoies Will NOT BE AVAILABLE Any More, All Record Related To This Repositoy Will Also Be DELETED. Please Make Sure ALL IMPORTANT DATA BACKUPED. You Can Click CANCEL Button To Cancel It.',\n\n inputCommitFilter: 'Input To Filter',\n repositoryEmpty: 'Empty Repository',\n displaySource: 'View Source',\n displayRendereFile: 'View Rendered',\n fileContentEmpty: 'Empty File',\n fileContentOversize: 'File Size Exceed limitation, Check It Out Localy',\n fileTypeNotSupport: 'Binary File Can Not Shown',\n diffFileToMany: ' The maximum number of files allowed to be displayed is exceeded, please check locally',\n createNewRepository: 'create a new repository on the command line',\n pushRepository: 'push an existing repository from the command line',\n\n _S_empty: 'Please Input {s}',\n repository_S_empty: 'No {s} In Repository',\n repositoryBranchEmpty: 'Branch List Empty',\n repositoryTagEmpty: 'Tag List Empty',\n mergeRequestEmpty: 'Empty Merge Request List',\n addNewCommit: 'Add New Commit',\n alreadyMergeRequest: 'Merged',\n alreadyCloseRequest: 'Close',\n assignReviewerTitle: 'Assigne Reviewer(Only One Person Can Be Assigned)',\n selectReviewer: 'Select Reviewer',\n notSelectReviewers: 'No Assign Reviewer',\n deleteReviewer: 'Delete Reviewer',\n notApprove: 'Not Approve',\n assign_N_M_Reviewer: 'Assign {n} As A Reviewer For Merge Request {m}',\n delete_M_N_Reviewer: 'Removed Reviewer {n} Of Merge Request {m}',\n review_M_Reviewer: 'Approve Changes Of Merge Request {m}',\n\n _S_listEmpty: 'Empty {s} List',\n repositoryListEmptyNotice: 'Create A Repositoy To Explore',\n groupListEmptyNotice: 'Create A Group To Manage Your Repositories',\n\n input_S_name: 'Input {s} To Filter',\n confirmDelete: 'Delteing {s}?',\n\n jumpWithLink: 'Go To This Link',\n noRepositoryFind: 'No view permission',\n noCommitRecord: 'No Commit Record',\n plsInputInvitedEmail: 'Input E-mail to Invite',\n repositoryDeleteTipFirst: 'All Recored Related To This Repositoy Will Also Be DELTED, Include Source, Merge Request Record etc.',\n repositoryDeleteTipSecond: 'A Delted Repository CAN NOT Recover!',\n inputMergeCommit: 'Input Commit Message, Check Squash When Needed.',\n selectDifferentBranch: 'Can Not Merge INTO Source Itself',\n mergeConflictTitle: 'Conflict Found In Merge Progeress, Follows Instructions Below To Resolve Conflict Localy ',\n mergeConflictTip1: '1: Pull Target Branch To Local',\n mergeConflictTip2: '2: Check File Diff',\n mergeConflictTip3: '3: Resolve Conflicts And Merge',\n mergeConflictTip4: '4 : Push Changes To Remote',\n from_S_Merge_S: 'Request Merge From {s1} To {s2}',\n\n defaultGroupReqiured: 'A Group Is Required',\n defaultGroupReqiuredDescription: 'At Least One Group Is Required To Create Repository',\n\n someVersion: 'Related Version',\n backHome: 'Homepage',\n inputSSHKEYContent: 'Please Enter The SSH Key',\n inputSSHKEYName: 'Please Enter SSH Key Name',\n defaultBranchDescription: 'The Default Branch Is Regarded As The Basic Branch In The Code Base And Is The Target Branch For All Clones, Code Submissions, And Merge Requests',\n settingToDefaultBranch: 'Set As Default Branch',\n updateDefaultBranch: 'Modify The Default Branch',\n settingDefaultBranch: 'Please Set The Default Branch',\n protectedBranchDescription: 'Protecting Branches Will Ensure Branch Security, And Roles Other Than Owner Are Not Allowed To Be Pushed And Deleted Forcibly',\n protectedBranchRuleEmpty: 'There Are No Protection Branch Rules At Present, Please Create A New Protection Branch Rule To Protect Branch Safety',\n inputBranchOrRegexp: 'Please Enter The Branch Name or Universal Rules',\n createProtectedBranchRule: 'New Protection Branch Rule',\n updateProtectedBranchRule: 'Modify Protection Branch Rule',\n deleteProtectedBranchRule: 'Delete Protection Branch Rule',\n noBodyAllow: 'Nobody',\n\n primaryEmail: 'Primary E-mail',\n primaryEmailDescription: 'The Email Address Of The Current CodeFever Account, Used To Receive Relevant Notifications, Password Reset, Login And Other Operations',\n updatePrimaryEmail: 'Change Primary E-mail',\n myEmail: 'My E-mail',\n myEmailDescription: 'Multi-mailbox Function Is Used For The Same User To Have Multiple Different Mailboxes For Code Submission, The System Can Identify And Create An Association Relationship',\n addEmail: 'Add E-mail',\n contactedEmail: 'Mailbox Linked',\n shouldValidation: 'To Be Verified',\n resendEmail: 'Resend Mail',\n\n differenceBetweenHTTPSAndSSH: 'HTTPS or SSH, Which one should I choose ?',\n generateAndSetSSHKey: 'Please Confirm The SSH Key Has Been Generated And Set Porperly On CodeFever.',\n itsMyEmail: 'It\\'s My Email',\n\n notificationSystem: 'System Message',\n notificationMention: 'Mentioned Me',\n tagRead: 'Mark As Read',\n tagAllRead: 'Mark All As Read',\n deleteAllReaded: 'Delete All Read User Messages',\n mergeRequestNotification: 'Notification Of Merge Request',\n mergeRequestNotificationDesc: 'Can Receive And Request Notifications Issued By Warehouse Members, Developers And Above Members Can Receive',\n emailNotification: 'E-mail notification',\n emailNotificationDesc: 'The Message In The Notification Settings Will Be Sent To Your Registered Mailbox.',\n\n searchByName: 'Search by name or email',\n userStatusEnabled: 'Enable confirmation',\n userStatusDisabled: 'Disable confirmation',\n userStatusEnabled_N: 'Confirm to enable user \"{n}\"?',\n userStatusDisabled_N: 'Confirm to disable user \"{n}\"?',\n closeMFA: 'Turn off 2FA certification',\n closeMFAConfirm: 'Close 2FA authentication confirmation',\n closeMFA_N: 'Are you sure to turn off 2FA authentication for user \"{n}\"?',\n resetPassword: 'Reset Password',\n reset_N_Password: 'Reset user \"{n}\" password',\n searchRepository: 'Search repository',\n searchGroup: 'Sreach group',\n roleToOwner: 'Designated as owner',\n setGroupOwner_S: 'Are you sure to specify {s} as the owner of the group?',\n setAdministrator: 'Set as administrator',\n cancelAdministrator: 'Cancel an administrator',\n memberRemoveConfirm: 'Member delete confirmation',\n successAddUser: 'User added successfully',\n\n webhookEventsNeed: 'Please select events',\n webhookListEmpty: 'Webhook List Empty',\n useTime_n: 'Completed in {n} seconds',\n show_n_record: 'Show latest {n} records'\n}\n\nexport default { ...data, __namespace__: 'message' }\n","const data = {\n _S_empty: 'Please Input {s}',\n _S_retype: 'Please Retype {s}',\n _S_has_illegal_character: 'Only Combination of Alphanumeric \\'_\\' \\'-\\' \\'.\\' Allowed in {s}',\n _S_notChoose: 'Please Choose {s}',\n _S_duplicate: '{s} Duplicated',\n _S_invalid: '{s} Invalid',\n _S_notFound: '{s} Not Found',\n noMoreThan_N_characters: 'No More{n} Characters',\n within_N1_to_N2_characters: 'Between {n1} to {n2} Characters',\n only_N1_or_N2_characters: 'Only {n1} Or {n2} Characters Allowed',\n requireCombinationOfCharactersNumbersAndUnderscore: 'Only Combination Of Numberic, Underscore And Character Allowd',\n input_S_placeholder: 'Please Input {s}, Only Numberic, Underscore, strike, dot And Character Allowed',\n inputNotSame: 'Doesn\\'t Match The Retype Field',\n inputSame: 'Same Input',\n canNotAddCreatorAsMember: 'Can Not Add Creator As Member',\n\n createRepositoryFail: 'Create Repository Fail, Please Retry Later',\n createGroupFail: 'Create Group Fail, Please Retry Later',\n createBranchFail: 'Create Branch Fail, Please Retry Later',\n createTagFail: 'Create Tags Fail, Please Retry Later',\n createMergeRequestFail: 'Create Merge Request Fail, Please Retry Later',\n createProtectedBrancheRuleFail: 'Failed To Create Protection Branch Rule, Please Retry Later',\n AddFail: 'Fail To Add, Please Retry Later',\n updateFail: 'Fail To Update, Please Retry Later',\n removeFail: 'Fail To Remove, Please Retry Later',\n deleteFail: 'Fail To Delete, Please Retry Later',\n verifyFail: 'Fail To Verify, Please Retry Later',\n forkRepositoryFail: 'Fail To Fork, Please Retry Later',\n getFileFail: 'Fail To Get File Content, Please Retry Later',\n getEmailCodeFail: 'Fail To Get Email Validation Code, Please Retry Later',\n getPhoneCodeFail: 'Fail To Get Phone Number Validation Code, Please Retry Later',\n change_S_Fail: 'Fail To Update {s}, Please Retry Later',\n waitToRetry: 'Connection Down, Please Retry Later',\n\n canNotChangeOwnerOfUserGroup: 'Creator Of Default Group CAN NOT Be Modified',\n canNotDeleteUserGroup: 'Default Group CAN NOT Be Deleted',\n canNotDeleteNonEmptyGroup: 'Group CAN NOT Be Deleted When Contains Repository',\n mergeRequestExists: 'Same Merge Request Exsits',\n mergeFail: 'Fail To Merge, Please Retry Later',\n reviewedCanNotAssign: 'Can’t Replace The Reviewer',\n reviewedCanNotDelete: 'Cannot Delete Reviewers Who Have Reviewed The Code',\n branchProteced: 'Can Not Perform Merge On Proteced Branch',\n userNotReview: 'Cannot Be Merged, And The Reviewers Have Not Reviewed',\n\n inputNewEmail: 'Input New Email',\n bindEmailFirst: 'An Login Email Is Required When Bind Account Of Other Platform',\n wechatHasbound: 'This Account Has Been Used, Please Select Another Account And Retry',\n sshKeyDuplicate: 'This SSH Key has already been added, or in another user'\n}\n\nexport default { ...data, __namespace__: 'message.error' }\n","const data = {\n createdGroup: 'Create A Group',\n updateGroup_S_Avator: 'Update Avatar Of Group {s}',\n updateGroup_S_Name: 'Update Name Of Group {s}',\n updateGroup_S_Description: 'Update Description Of Group {s}',\n\n addGroup_S_Memeber: 'Add New Member To Group {s}',\n changeGroup_S_MemebrRole: 'Update Role Of A Member In Group {s}',\n removeGroup_S_Memebr: 'Remove A Member In Group {s}',\n setGroup_S_Creator: 'Set A Member As Creator Of Group {s}',\n setGroup_S_URL: 'Change URL Of Group {s}',\n\n createdRepository: 'Create A Repository',\n deleteRepository: 'Delete A Repository',\n forkRepository: 'Frok And Create A Repository',\n updateRepository_S_Avator: 'Update Avatar Of Repository {s}',\n updateRepository_S_Name: 'Update Name Of Repository {s}',\n updateRepository_S_Description: 'Update Description Of Repository {s}',\n\n pushTo_S_Branch: 'Push Commits To Repository {s}',\n pushTo_S_NewBranch: 'Push Branches To Repository {s}',\n created_S_NewBranch: 'Add Branch In Repository {s}',\n delete_S_Branch: 'Delete Branche In Repository {s}',\n update_S_DefaultBranch: 'Modified The Default Branch Of Repository {s}',\n created_S_ProtectedBranchRule: 'Create Protection Branch Rule in Repository {s}',\n update_S_ProtectedBranchRule: 'Modified The Protection Branch Rule Of Repository {s}',\n delete_S_ProtectedBranchRule: 'Removed Protection Branch Rule For Repository {s}',\n\n pushTo_S_Tag: 'Push Commits To A Tag Of Repository {s}',\n pushTo_S_NewTag: 'Push Tags To Repository {s}',\n created_S_NewTag: 'Create A Tag In Repository {s}',\n delete_S_Tag: 'Delete A Tag In Repository {s}',\n\n addRepository_S_Memeber: 'Add A Member To Repository {s}',\n changeRepository_S_MemebrRole: 'Set Role To A Memebre In Repository {s}',\n removeRepository_S_Memebr: 'Remove Members in Repository {s}',\n setRepository_S_Creator: 'Set A Member As Creator Of Repository {s}',\n setRepository_S_URL: 'Change URL Of Repository {s}',\n\n open_S_MergeRquest: 'Open A Merge Request In Repository {s}',\n close_S_MergeRquest: 'Close A Merge Request In Repository {s}',\n merge_S_MergeRquest: 'Merged A Merge Request In Repository {s}',\n assign_S_Reviewer: 'Assign Reviewer In Repository {s}',\n delete_S_Reviewer: 'Delete Reviewer In Repository {s}',\n review_S_Reviewer: 'Approve Changes In Repository {s}',\n\n create_S_Webhook: 'Create Webhook In Repository {s}',\n update_S_Webhook: 'Update Webhook In Repository {s}',\n delete_S_Webhook: 'Delete Webhook In Repository {s}'\n}\n\nexport default { ...data, __namespace__: 'message.activity' }\n","const data = {\n repository: 'Repository',\n repository_pl: 'Repositories',\n\n group: 'Group',\n group_pl: 'Groups',\n\n file: 'File',\n file_pl: 'Files',\n\n commit: 'Commit',\n commit_pl: 'Commits',\n\n mergeRequest: 'Merge Request',\n mergeRequest_pl: 'Merge Requests',\n\n branch: 'Branch',\n branch_pl: 'Branches',\n\n webhook: 'Webhook',\n webhook_pl: 'Webhooks',\n\n tag: 'Tag',\n tag_pl: 'Tags',\n\n member: 'Member',\n member_pl: 'Members',\n\n activity: 'Activity',\n activity_pl: 'Activities',\n\n setting: 'Setting',\n setting_pl: 'Settings',\n\n SSHKey: 'SSH Key',\n SSHKey_pl: 'SSH Keys',\n\n user: 'User',\n user_pl: 'Users',\n\n fileTree: 'File Tree',\n merge: 'Merge',\n data: 'Data',\n clone: 'Clone',\n fork: 'Fork',\n limitation: 'Limitation',\n role: 'Role',\n team: 'Team',\n code: 'Source',\n hash: 'Hash',\n time: 'Time',\n number: 'Count',\n line: 'Line',\n\n guest: 'Guest',\n reporter: 'Reporter',\n developer: 'Developer',\n maintianer: 'Maintainer',\n owner: 'Owner',\n\n parentNode: 'Parent Node'\n}\n\nexport default { ...data, __namespace__: 'term' }\n","import Term from 'APPSRC/lang/en-us/Term'\n\nconst data = {\n ...Term,\n\n CodeFever: 'CodeFever',\n ID: 'ID',\n\n user: 'User',\n name: 'Name',\n creator: 'Creator',\n reviewer: 'Reviewer',\n administrator: 'Administrator',\n title: 'Title',\n description: 'Description',\n origin: 'Origin',\n source: 'Source',\n target: 'Target',\n url: 'URL',\n ssh: 'SSH',\n slug: 'Slug',\n prefix: 'Prefix',\n avatar: 'Avatar',\n icon: 'Icon',\n joinedAt: 'Joined In',\n unknown: 'Unknown',\n all: 'All',\n detail: 'Detail',\n language: 'Language',\n webhook: 'Webhook',\n log: 'Log',\n httpHeaders: 'Headers',\n httpBody: 'Body',\n httpPayload: 'Payload',\n\n browser: 'View',\n expand: 'Expand',\n full: 'Full',\n invite: 'Invite',\n times: 'Times',\n before: 'Before',\n\n new: 'New',\n add: 'Add',\n open: 'Open',\n close: 'Close',\n save: 'Save',\n create: 'Create',\n update: 'Update',\n remove: 'Remove',\n modification: 'Modify',\n delete: 'Delete',\n and: 'And',\n ok: 'OK',\n cancel: 'Cancel',\n copy: 'Copy',\n push: 'Push',\n merge: 'Merge',\n chose: 'Choose',\n show: 'Show',\n list: 'List',\n copied: 'Copied',\n contain: 'Contain',\n request: 'Request',\n response: 'Response',\n bind: 'Bind',\n unbind: 'Unbind',\n replace: 'Replace',\n sort: 'Sort',\n manage: 'Manage',\n protected: 'Protected',\n operating: 'Operating',\n approve: 'Approve',\n enable: 'Enable',\n disable: 'Disable',\n\n last: 'Latest',\n default: 'Default',\n active: 'Active',\n inactive: 'Inactive',\n\n path: 'Path',\n email: 'E-mail',\n password: 'Password',\n oldPassword: 'Current Password',\n newPassword: 'New Password',\n mfaCode: 'MFA Code',\n twoFactorAuthentication: 'Two-Factor Authentication',\n emailCode: 'Validation Code',\n phoneCode: 'Validation Code',\n phone: 'Cellphone',\n china: 'China',\n company: 'Company',\n job: 'Job',\n wechat: 'Wechat',\n credential: 'Credential',\n\n login: 'Sign In',\n logout: 'Sign Out',\n\n next: 'Next',\n prev: 'Previous',\n\n mergeMessage: 'Merge Message',\n submit: 'Submit',\n rule: 'Rule',\n allow: 'Allow',\n status: 'Status',\n history: 'History',\n notification: 'Notification',\n\n learnMore: 'Learn More',\n myServiceTicket: 'My Service Tickets',\n getHelp: 'Get Help',\n help: 'Help',\n result: 'Result',\n success: 'Success',\n failure: 'Failure',\n doc: 'DOC',\n adminArea: 'Admin Area',\n\n edit: 'Edit',\n confirm: 'Confirm'\n}\n\nexport default { ...data, __namespace__: 'phrase' }\n","import Term from 'APPSRC/lang/en-us/Term'\nimport Phrase from 'APPSRC/lang/en-us/Phrase'\n\n// let phraseSeperator = ''\n\nconst data = {\n ...Term,\n ...Phrase,\n\n dashboard: 'Dashboard',\n general: 'General',\n advanced: 'Advanced',\n profile: 'Profile',\n mail: 'E-mails'\n}\n\nexport default { ...data, __namespace__: 'menu' }\n","import Term from 'APPSRC/lang/en-us/Term'\n// import Time from 'APPSRC/lang/zh-cn/Time'\nimport Phrase from 'APPSRC/lang/en-us/Phrase'\n\nconst phraseSeperator = ' '\n\nconst data = {\n ...Phrase,\n ...Term,\n\n update_S_: 'Modify {s}',\n retryAfter_N_seconds: 'Retry After {n} Seconds',\n userAvatar: [Phrase.user, Phrase.avatar].join(phraseSeperator),\n userName: [Phrase.user, Phrase.name].join(phraseSeperator),\n getEmailCode: ['Get', Phrase.emailCode].join(phraseSeperator),\n getPhoneCode: ['Get', Phrase.phoneCode].join(phraseSeperator),\n mostSeen: 'Most Seen',\n loginCredential: [Phrase.login, Phrase.credential].join(phraseSeperator),\n CodeFeverPassword: [Phrase.CodeFever, Phrase.password].join(phraseSeperator),\n wechatBind: [Phrase.wechat, Phrase.bind].join(phraseSeperator),\n unbind_P: 'Unbind {p}',\n\n repositoryID: [Term.repository, Phrase.ID].join(phraseSeperator),\n repositoryName: [Term.repository, Phrase.name].join(phraseSeperator),\n repositoryDescription: [Term.repository, Phrase.description].join(phraseSeperator),\n repositoryURL: [Term.repository, Phrase.url].join(phraseSeperator),\n repositorySlug: [Term.repository, Phrase.slug].join(phraseSeperator),\n repositoryMember: [Term.repository, Term.member].join(phraseSeperator),\n newRepository: [Phrase.new, Term.repository].join(phraseSeperator),\n forkRepository: [Term.fork, Term.repository].join(phraseSeperator),\n unknownRepository: [Phrase.unknown, Term.repository].join(phraseSeperator),\n allRepository: [Phrase.all, Term.repository].join(phraseSeperator),\n deleteRepository: [Phrase.delete, Term.repository].join(phraseSeperator),\n\n groupID: [Term.group, Phrase.ID].join(phraseSeperator),\n groupName: [Term.group, Phrase.name].join(phraseSeperator),\n groupDescription: [Term.group, Phrase.description].join(phraseSeperator),\n groupURL: [Term.group, Phrase.url].join(phraseSeperator),\n groupSlug: [Term.repository, Phrase.slug].join(phraseSeperator),\n groupMember: [Term.group, Term.member].join(phraseSeperator),\n newGroup: [Phrase.new, Term.group].join(phraseSeperator),\n unknownGroup: [Phrase.unknown, Term.group].join(phraseSeperator),\n deleteGroup: [Phrase.delete, Term.group].join(phraseSeperator),\n\n inviteMember: [Phrase.invite, Term.member].join(phraseSeperator),\n removeMember: [Phrase.remove, Term.member].join(phraseSeperator),\n\n forkFrom_S: [Term.fork, 'From: {s}'].join(phraseSeperator),\n updateFrom_S1_To_S2: ['Update From {s1} To {s2}'].join(phraseSeperator),\n\n repositoryAvatar: [Term.repository, Phrase.icon].join(phraseSeperator),\n groupAvatar: [Term.group, Phrase.icon].join(phraseSeperator),\n basicInfo: 'Basic Info',\n newPasswordConfirm: [Phrase.confirm, Phrase.newPassword].join(phraseSeperator),\n security: 'Security',\n setupNewMFADevice: 'Setup New MFA Device',\n changeMFADevice: 'Change MFA Device',\n removeMFADevice: 'Remove MFA Device',\n mfaCode1: ['First', Phrase.mfaCode].join(phraseSeperator),\n mfaCode2: ['Second', Phrase.mfaCode].join(phraseSeperator),\n commitTime: [Phrase.commit, Phrase.time].join(phraseSeperator),\n copyPath: [Phrase.copy, Phrase.path].join(phraseSeperator),\n copyHash: [Phrase.copy, Term.hash].join(phraseSeperator),\n copyCode: [Phrase.copy, Term.code].join(phraseSeperator),\n lastCommit: [Phrase.last, Term.commit].join(phraseSeperator),\n lastUpdate: [Phrase.last, Phrase.update].join(phraseSeperator),\n\n updateCreator: [Phrase.update, Phrase.creator].join(phraseSeperator),\n updateRepositoryURL: [Phrase.update, Term.repository, Phrase.url].join(phraseSeperator),\n updateGroupURL: [Phrase.update, Term.group, Phrase.url].join(phraseSeperator),\n\n webhookSetting: [Term.webhook, Term.setting].join(phraseSeperator),\n createWebhook: [Phrase.create, Term.webhook].join(phraseSeperator),\n updateWebhook: [Phrase.update, Term.webhook].join(phraseSeperator),\n deleteWebhook: [Phrase.delete, Term.webhook].join(phraseSeperator),\n contentType: 'Content Type',\n webhookSecret: 'Secret Key',\n webhookTrigger: 'Trigger Event',\n pushTrigger: 'Just the push event',\n customeTrigger: 'Customized',\n webhookList: 'Webhook List',\n webhookLog: [Phrase.webhook, Phrase.log].join(phraseSeperator),\n\n createOrigin: [Phrase.create, Phrase.origin].join(phraseSeperator),\n choseCreateOrigin: [Phrase.chose, Phrase.create, Phrase.origin].join(phraseSeperator),\n tagDescription: [Term.tag, Phrase.description].join(phraseSeperator),\n tagName: [Term.tag, Phrase.name].join(phraseSeperator),\n branchName: [Term.branch, Phrase.name].join(phraseSeperator),\n defaultBranch: [Phrase.default, Term.branch].join(phraseSeperator),\n protectedBranch: [Phrase.protected, Term.branch].join(phraseSeperator),\n branchRule: [Phrase.branch, Phrase.rule].join(phraseSeperator),\n allowPush: [Phrase.allow, Phrase.push].join(phraseSeperator),\n allowMerge: [Phrase.allow, Phrase.merge].join(phraseSeperator),\n noData: ['No', Term.data].join(phraseSeperator),\n newBranch: [Phrase.new, Term.branch].join(phraseSeperator),\n newTag: [Phrase.new, Term.tag].join(phraseSeperator),\n deleteBranch: [Phrase.delete, Term.branch].join(phraseSeperator),\n deleteTag: [Phrase.delete, Term.tag].join(phraseSeperator),\n updateTime: [Phrase.update, Term.time].join(phraseSeperator),\n updatedIn: 'Updated At',\n editIn: 'Edited At',\n expandFullFile: [Phrase.expand, Phrase.full, Phrase.file].join(phraseSeperator),\n showDiffOnly: 'Show Diff',\n codeDiff: 'Diff',\n requestCreated: 'Created At',\n requestClosed: 'Closed At',\n requestMerged: 'Merged At',\n createRepository: ['Please', Phrase.create, Term.repository].join(phraseSeperator),\n\n commitActivity: [Term.commit, Phrase.activity].join(phraseSeperator),\n mergeRequestActivity: [Term.mergeRequest, Phrase.activity].join(phraseSeperator),\n memberActivity: [Term.member, Phrase.activity].join(phraseSeperator),\n\n addSSHKey: [Phrase.add, Term.SSHKey].join(phraseSeperator),\n emailManage: [Phrase.email, Phrase.manage].join(phraseSeperator),\n memberManage: [Term.member, Phrase.manage].join(phraseSeperator),\n primaryEmail: 'Primary E-mail',\n contactEmail: 'List Of Associated Mailboxes',\n SSHKeyManage: [Term.SSHKey_pl, Phrase.manage].join(phraseSeperator),\n notificationCenter: 'Notification Center',\n notificationReceiveStatus: 'Receive Notification Status',\n unread: 'Unread',\n\n fileModification: [Term.file, Phrase.modification].join(phraseSeperator),\n fileModificationList: [Phrase.modification, Term.file, Phrase.list].join(phraseSeperator),\n lineAdd: [Term.line, Phrase.add].join(phraseSeperator),\n lineDelete: [Term.line, Phrase.delete].join(phraseSeperator),\n browserFile: [Phrase.browser, Phrase.file].join(phraseSeperator),\n browserUnchangedFIle: [Phrase.browser, Phrase.modification, Phrase.before, Phrase.file].join(phraseSeperator),\n commitHash: [Term.commit, Term.hash].join(phraseSeperator),\n allFiles: [Phrase.all, Phrase.file].join(phraseSeperator),\n openFileTree: [Phrase.open, Term.fileTree].join(phraseSeperator),\n closeFileTree: [Phrase.close, Term.fileTree].join(phraseSeperator),\n\n requestMerge: [Phrase.request, Phrase.merge].join(phraseSeperator),\n createMergeRequest: [Phrase.create, Term.mergeRequest].join(phraseSeperator),\n closeMergeRequest: [Phrase.close, Term.mergeRequest].join(phraseSeperator),\n\n more: 'More',\n noMore: 'No More',\n processing: 'Processing',\n\n IJoined: 'Joined',\n ICreated: 'Created By Me',\n\n dangerOperation: 'Dangerous Action',\n dangerOperationConfirm: 'Confirm Dangerous Action',\n compareBranch: 'Compare and Continue',\n lastModified: 'Last Modified',\n lastModified_N: '{n}{n, plural, =1 {st}\\n=2 {nd}\\n=3 {rd}\\nother {th}} Revision',\n\n openMergeRequest: [Phrase.open, Term.mergeRequest].join(phraseSeperator),\n modificationBranch: [Phrase.modification, Term.branch].join(phraseSeperator),\n sourceBranch: [Phrase.source, Term.branch].join(phraseSeperator),\n targetBranch: [Phrase.target, Term.branch].join(phraseSeperator),\n repositoryAdvancedSetting: 'Repository Advanced Settings',\n branchSetting: 'Branch Settings',\n groupAdvancedSetting: 'Group Advanced Settings',\n memberLimitation: [Term.member, Term.limitation].join(phraseSeperator),\n modificationLimitation: [Phrase.modification, Term.limitation].join(phraseSeperator),\n roleID_1: Term.guest,\n roleID_2: Term.reporter,\n roleID_3: Term.developer,\n roleID_4: Term.maintianer,\n roleID_5: Term.owner,\n yourself: 'It\\'s you',\n\n enabledMFA: '2FA Enabled',\n disabledMFA: '2FA Disabled',\n blocked: 'Blocked',\n createTime: 'Created Time',\n addUser: 'Add user',\n\n statistic: 'Statistic',\n systemResources: 'System Resources',\n diskUsgae: 'Disk Usgae',\n serviceStatus: 'Service Status',\n\n host: 'Host',\n senderName: 'Sender Name',\n senderAddress: 'Sender Email Address',\n register: 'Register',\n allowRegister: 'Allow Register',\n urlPrefix: [Phrase.url, Phrase.prefix].join(phraseSeperator),\n sshPrefix: [Phrase.ssh, Phrase.prefix].join(phraseSeperator),\n\n support: 'Technical Support',\n feedback: 'Submit Feedback',\n contribute: 'Contribute to CodeFever Community',\n about: 'About CodeFever Community',\n\n pushEvent: 'Push Event',\n changeMemberRole: [Phrase.modification, Term.member, Term.role].join(phraseSeperator),\n createProtectedBranchRule: 'Create protected branch rule',\n changeProtectedBranchRule: 'Update protected branch rule',\n removeProtectedBranchRule: 'remove protected branch rule',\n reviewReviewer: 'Review Code',\n\n _N_repository: '{n} {n, plural, =0 {' + Term.repository + '}\\n=1 {' + Term.repository + '}\\nother {' + Term.repository_pl + '}}',\n _N_commit: '{n} {n, plural, =0 {' + Term.commit + '}\\n=1 {' + Term.commit + '}\\nother {' + Term.commit_pl + '}}',\n _N_branch: '{n} {n, plural, =0 {' + Term.branch + '}\\n=1 {' + Term.branch + '}\\nother {' + Term.branch_pl + '}}',\n _N_tag: '{n} {n, plural, =0 {' + Term.tag + '}\\n=1 {' + Term.tag + '}\\nother {' + Term.tag_pl + '}}',\n _N_byte: '{n} {n, plural, =0 {Byte}\\n=1 {Byte}\\nother {Bytes}}',\n _N_mergeRequest: '{n} {n, plural, =0 {' + Term.mergeRequest + '}\\n=1 {' + Term.mergeRequest + '}\\nother {' + Term.mergeRequest_pl + '}}',\n _N_member: '{n} {n, plural, =0 {' + Term.member + '}\\n=1 {' + Term.member + '}\\nother {' + Term.member_pl + '}}'\n}\n\nexport default { ...data, __namespace__: 'label' }\n","const data = {\n 'mergeRequest:create': '{user} Open Merge Request: !{number} {title}',\n 'mergeRequest:close': '{user} Close Merge Request: !{number} {title}',\n 'mergeRequest:merge': '{user} Merge The Merge Request: !{number} {title}',\n 'mergeRequestReviewer:create': '{user} Assign You As The Reviewer For The Merge Request !{number} {title}',\n 'mergeRequestReviewer:review': '{user} Approve Changes Of Merge Request !{number} {title} '\n}\n\nexport default { ...data, __namespace__: 'notification' }\n","import { composeNamespacedData } from 'APPSRC/helpers/VaribleHelper'\n\nimport Lang from 'APPSRC/lang/Lang'\n\nimport CNMessage from 'APPSRC/lang/zh-cn/Message'\nimport CNErrorMessage from 'APPSRC/lang/zh-cn/ErrorMessage'\nimport CNActivityMessage from 'APPSRC/lang/zh-cn/ActivityMessage'\nimport CNTerm from 'APPSRC/lang/zh-cn/Term'\nimport CNPhrase from 'APPSRC/lang/zh-cn/Phrase'\nimport CNMenu from 'APPSRC/lang/zh-cn/Menu'\nimport CNLabel from 'APPSRC/lang/zh-cn/Label'\nimport CNNotification from 'APPSRC/lang/zh-cn/Notification'\n\nimport USMessage from 'APPSRC/lang/en-us/Message'\nimport USErrorMessage from 'APPSRC/lang/en-us/ErrorMessage'\nimport USActivityMessage from 'APPSRC/lang/en-us/ActivityMessage'\nimport USTerm from 'APPSRC/lang/en-us/Term'\nimport USPhrase from 'APPSRC/lang/en-us/Phrase'\nimport USMenu from 'APPSRC/lang/en-us/Menu'\nimport USLabel from 'APPSRC/lang/en-us/Label'\nimport USNotification from 'APPSRC/lang/en-us/Notification'\n\nfunction localeSelector (locale) {\n switch (locale) {\n case 'zh-cn':\n return composeNamespacedData(\n Lang,\n CNMessage,\n CNActivityMessage,\n CNErrorMessage,\n CNTerm,\n CNPhrase,\n CNMenu,\n CNLabel,\n CNNotification\n )\n case 'en-us':\n return composeNamespacedData(\n Lang,\n USMessage,\n USActivityMessage,\n USErrorMessage,\n USTerm,\n USPhrase,\n USMenu,\n USLabel,\n USNotification\n )\n }\n}\n\nexport { localeSelector }\n","// core\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { IntlProvider } from 'react-intl'\nimport { MuiThemeProvider, createTheme } from '@material-ui/core/styles'\n\n// components\nimport DateFnsUtils from '@date-io/date-fns'\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers'\nimport localeCN from 'date-fns/locale/zh-CN'\nimport localTheme from 'APPSRC/config/colors/theme1'\n\nimport Main from 'APPSRC/components/Main'\nimport Header from 'APPSRC/components/Header'\nimport Drawer from 'APPSRC/components/Drawer'\nimport Comformation from 'APPSRC/components/Comformation'\nimport Notification from 'APPSRC/components/Notification'\nimport NotificationBars from 'APPSRC/components/NotificationBars'\n\n// helpers\nimport { localeSelector } from 'APPSRC/helpers/LocaleSelector'\n\nclass App extends React.Component {\n render () {\n const { currentLanguage } = this.props\n const originTheme = createTheme({})\n const theme = createTheme(localTheme(originTheme))\n\n return \n \n \n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n }\n}\n\nApp.propTypes = {\n currentLanguage: PropTypes.string.isRequired\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n currentLanguage: state.DataStore.currentLanguage\n }\n}\n\nexport default connect(mapStateToProps)(App)\n","import React from 'react'\nimport { Switch, Route, withRouter } from 'react-router-dom'\n\nimport App from 'APPSRC/components/App'\n\nclass BaseRoutes extends React.Component {\n render () {\n return (\n \n \n \n \n\n \n \n \n \n \n \n \n \n )\n }\n}\n\nexport default withRouter(BaseRoutes)\n","// import helper\nimport { initailizer } from 'APPSRC/helpers/VaribleHelper'\n\nfunction DataStore (state = {}, event) {\n // initialize status\n state.repositoryList = initailizer(state.repositoryList, [])\n state.repositoryListPending = initailizer(state.repositoryListPending, true)\n state.groupList = initailizer(state.groupList, [])\n state.groupListPending = initailizer(state.groupListPending, true)\n state.currentRepositoryKey = initailizer(state.currentRepositoryKey, '')\n state.currentRepositoryError = initailizer(state.currentRepositoryError, false)\n state.currentRepositoryConfig = initailizer(state.currentRepositoryConfig, {})\n state.currentGroupKey = initailizer(state.currentGroupKey, '')\n state.currentGroupConfig = initailizer(state.currentGroupConfig, {})\n state.currentUserInfo = initailizer(state.currentUserInfo, {})\n\n let localLanguage = window.localStorage.getItem('lang')\n if (!localLanguage) {\n localLanguage = navigator.language.toLowerCase() || navigator.userLanguage.toLowerCase()\n\n if (['zh-cn', 'en-us'].indexOf(localLanguage) < 0) {\n localLanguage = 'zh-cn'\n }\n\n window.localStorage.setItem('lang', localLanguage)\n state.currentLanguage = localLanguage\n }\n state.currentLanguage = initailizer(state.currentLanguage, localLanguage)\n\n // check event\n if (!event.type.match(/^data\\./)) {\n return { ...state }\n }\n\n if (event.type === 'data.repositoryList.update') {\n state.repositoryList = event.data\n state.repositoryListPending = false\n } else if (event.type === 'data.groupList.update') {\n state.groupList = event.data\n state.groupListPending = false\n } else if (event.type === 'data.currentRepositoryKey.update') {\n state.currentRepositoryKey = event.data\n } else if (event.type === 'data.currentRepositoryError.update') {\n state.currentRepositoryError = event.data\n } else if (event.type === 'data.currentRepositoryConfig.update') {\n state.currentRepositoryConfig = event.data\n } else if (event.type === 'data.currentGroupKey.update') {\n state.currentGroupKey = event.data\n } else if (event.type === 'data.currentGroupConfig.update') {\n state.currentGroupConfig = event.data\n } else if (event.type === 'data.currentUserInfo.update') {\n state.currentUserInfo = event.data\n } else if (event.type === 'data.currentLanguage.update') {\n state.currentLanguage = event.data\n window.localStorage.setItem('lang', event.data)\n }\n\n return { ...state }\n}\n\nexport default DataStore\n","// import helper\nimport { initailizer } from 'APPSRC/helpers/VaribleHelper'\n\nfunction DrawerReducer (state = {}, event) {\n // initialize status\n state.expandStatus = initailizer(state.expandStatus, true)\n\n // check event\n if (!event.type.match(/^drawer\\./)) {\n return { ...state }\n }\n\n if (event.type === 'drawer.expandStatus.toggle') {\n state.expandStatus = !state.expandStatus\n } else if (event.type === 'drawer.expandStatus.close') {\n state.expandStatus = false\n } else if (event.type === 'drawer.expandStatus.open') {\n state.expandStatus = true\n }\n\n return { ...state }\n}\n\nexport default DrawerReducer\n","// import helper\nimport { initailizer, getObjectByProperty } from 'APPSRC/helpers/VaribleHelper'\n\nfunction NotificationReducer (state = {}, event) {\n // initialize status\n state.notificationCount = initailizer(state.notificationCount, 0)\n state.notificationBody = initailizer(state.notificationBody, {})\n state.askHandleStatus = initailizer(state.askHandleStatus, false)\n state.confirmation = initailizer(state.confirmation, {\n open: false,\n title: '',\n description: '',\n accept: function () {},\n reject: function () {},\n queueList: [],\n eventCount: 0\n })\n state.notificationOpenStatus = initailizer(state.notificationOpenStatus, false)\n\n // check event\n if (!event.type.match(/^notification\\./)) {\n return { ...state }\n }\n\n // network status\n if (event.type === 'notification.message.add') {\n state.notificationCount++\n state.notificationBody = event.data\n } else if (event.type === 'notification.message.change') {\n state.notificationBody = event.data = {}\n } else if (event.type === 'notification.askhandle.status') {\n state.askHandleStatus = event.data\n }\n\n // confirm dialog\n if (event.type === 'notification.confirmation.popup') {\n state.confirmation.open = true\n state.confirmation.title = event.data.title\n state.confirmation.description = event.data.description\n state.confirmation.accept = event.data.accept || function () { return true }\n state.confirmation.reject = event.data.reject || function () { return true }\n } else if (event.type === 'notification.confirmation.close') {\n state.confirmation.eventCount++\n state.confirmation.open = false\n state.confirmation.accept = function () { return true }\n state.confirmation.reject = function () { return true }\n }\n\n // confirm dialog queue management\n if (event.type === 'notification.confirmation.add') {\n state.confirmation.eventCount++\n state.confirmation.queueList.push(event.data)\n } else if (event.type === 'notification.confirmation.remove') {\n state.confirmation.eventCount++\n const id = getObjectByProperty(state.confirmation.queueList, 'key', event.data.key)\n typeof id === 'number' && delete state.confirmation.queueList[id]\n } else if (event.type === 'notification.confirmation.consume') {\n if (state.confirmation.queueList.length && !state.confirmation.open) {\n state.confirmation.eventCount++\n const newItem = state.confirmation.queueList.shift()\n state.confirmation.open = true\n state.confirmation.title = newItem.data.title\n state.confirmation.description = newItem.data.description\n state.confirmation.accept = newItem.data.accept || function () { return true }\n state.confirmation.reject = newItem.data.reject || function () { return true }\n }\n }\n\n // notification open/close\n if (event.type === 'notification.notificationOpenStatus.toggle') {\n state.notificationOpenStatus = !state.notificationOpenStatus\n } else if (event.type === 'notification.notificationOpenStatus.open') {\n state.notificationOpenStatus = true\n } else if (event.type === 'notification.notificationOpenStatus.close') {\n state.notificationOpenStatus = false\n }\n\n return { ...state, confirmation: { ...state.confirmation, queueList: [...state.confirmation.queueList] } }\n}\n\nexport default NotificationReducer\n","// import combineReducers\nimport { combineReducers } from 'redux'\n\n// import reducer settings\nimport DataStore from 'APPSRC/reducers/DataStore'\nimport DrawerStates from 'APPSRC/reducers/DrawerStates'\nimport NotificationStates from 'APPSRC/reducers/NotificationStates'\n\n// combine reducers\nexport default combineReducers({\n DataStore,\n DrawerStates,\n NotificationStates\n})\n","// dynamic path settings\nimport './env'\n\n// core\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport { BrowserRouter } from 'react-router-dom'\nimport { createStore } from 'redux'\nimport { Provider } from 'react-redux'\n\n// import assets\nimport 'APPSRC/assets/styles/App.styl'\n\n// import pollyfile\nimport '@formatjs/intl-pluralrules/polyfill'\nimport '@formatjs/intl-relativetimeformat/polyfill'\n\n// import Components\nimport BaseRoutes from 'APPSRC/routes/BaseRoutes'\nimport Reducer from 'APPSRC/reducers/main'\n\nconst Store = createStore(Reducer)\nconst routeBaseName = '/'\n\n// render app with router\nReactDOM.render((\n \n \n \n \n \n), document.getElementById('root'))\n"],"sourceRoot":""} \ No newline at end of file