From d891adf9ad9922fa065e621852ea50ab81147f29 Mon Sep 17 00:00:00 2001 From: cubic Date: Wed, 16 Feb 2022 10:38:00 +0800 Subject: [PATCH 1/2] fix(Webhook): fix service cannot start --- application/controllers/backend/codefever_schedule.php | 2 +- application/libraries/service/Utility/Logger.php | 8 +++----- doc/zh-cn/installation/install_from_scratch.md | 3 ++- misc/install.sh | 1 + misc/update.sh | 4 ++++ www/view/src/lang/zh-cn/Phrase.js | 2 +- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/application/controllers/backend/codefever_schedule.php b/application/controllers/backend/codefever_schedule.php index c8eb3c6..7b96611 100755 --- a/application/controllers/backend/codefever_schedule.php +++ b/application/controllers/backend/codefever_schedule.php @@ -28,7 +28,7 @@ class Codefever_schedule extends CI_Controller { } if ($schedule[1] == 'backend') { - $command = "/usr/local/php7/bin/php {$ciIndex} backend/{$schedule[2]}"; + $command = "/usr/local/php/bin/php {$ciIndex} backend/{$schedule[2]}"; } else if ($schedule[1] == 'customize') { $command = $schedule[2]; } diff --git a/application/libraries/service/Utility/Logger.php b/application/libraries/service/Utility/Logger.php index 4786231..09ec99e 100755 --- a/application/libraries/service/Utility/Logger.php +++ b/application/libraries/service/Utility/Logger.php @@ -26,7 +26,7 @@ class Logger { static function Log(string $log = '', string $scope) { $path = self::getLogPath($scope); - $log = '[' . date('Y-m-d H:i:s ms') . '] : ' . $log; + $log = '[' . date('Y-m-d H:i:s ms') . '] : ' . $log . PHP_EOL; file_put_contents($path, $log, FILE_APPEND); return TRUE; } @@ -39,8 +39,7 @@ class Logger { implode(' ', [$request::parse()->method, $request::parse()->uri]), implode(' ', [substr($request::parse()->content, 0, 1024), '[First KB Only]']), 'Response: ' . $statusCode . ' (' . $errorCode . ')', - implode(' ', [substr($response, 0, 1024), ' [First KB Only]']), - PHP_EOL + implode(' ', [substr($response, 0, 1024), ' [First KB Only]']) ]); } @@ -50,8 +49,7 @@ class Logger { 'Time Point: From ' . $startTime . ' To ' . microtime(), 'ID: ' . $event->id, 'Handler: ' . implode('|', $handler), - implode(' ', [substr($event->getContent(), 0, 1024), ' [First KB Only]']), - PHP_EOL + implode(' ', [substr($event->getContent(), 0, 1024), ' [First KB Only]']) ]); } } diff --git a/doc/zh-cn/installation/install_from_scratch.md b/doc/zh-cn/installation/install_from_scratch.md index 53d2016..812f3f7 100644 --- a/doc/zh-cn/installation/install_from_scratch.md +++ b/doc/zh-cn/installation/install_from_scratch.md @@ -38,7 +38,7 @@ swapon /root/swap ```shell # 安装基础软件包 -yum install -y sudo tcl tk gettext autoconf gcc cmake3 wget initscripts openssh-server pcre pcre-devel libcurl libcurl-devel libxml2 libxml2-devel openssl openssl-devel sqlite sqlite-devel libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libXpm libXpm-devel freetype freetype-devel oniguruma oniguruma-devel libyaml libyaml-devel +yum install -y sudo tcl tk gettext autoconf gcc cmake3 wget initscripts openssh-server crontabs pcre pcre-devel libcurl libcurl-devel libxml2 libxml2-devel openssl openssl-devel sqlite sqlite-devel libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libXpm libXpm-devel freetype freetype-devel oniguruma oniguruma-devel libyaml libyaml-devel ``` 除此之外,你还需要安装 `libzip 1.7+` 库,需要去官网下载源码包解压后安装。 @@ -237,6 +237,7 @@ chkconfig mariadb on # 或 chkconfig mysql on (根据安装的数据库类型, chkconfig nginx on chkconfig php-fpm on chkconfig codefever on +chkconfig crond on ``` 尝试访问 `http://127.0.0.1` 或 `http://` 来登录 diff --git a/misc/install.sh b/misc/install.sh index a510bd5..23b0367 100644 --- a/misc/install.sh +++ b/misc/install.sh @@ -61,6 +61,7 @@ echo 'Composer libraries loaded!' service codefever start service php-fpm start service nginx start +service crond start echo 'Services Started!' diff --git a/misc/update.sh b/misc/update.sh index 9b36763..df39b40 100644 --- a/misc/update.sh +++ b/misc/update.sh @@ -10,6 +10,9 @@ service codefever stop service php-fpm stop service nginx stop +yum install -y crontabs +service crond stop + echo 'service stopped!' cp nginx.conf-template /usr/local/nginx/conf/nginx.conf @@ -39,6 +42,7 @@ echo 'Composer libraries loaded!' service codefever start service php-fpm start service nginx start +service crond start echo 'services started!' diff --git a/www/view/src/lang/zh-cn/Phrase.js b/www/view/src/lang/zh-cn/Phrase.js index 2eeec5d..8f71a5a 100755 --- a/www/view/src/lang/zh-cn/Phrase.js +++ b/www/view/src/lang/zh-cn/Phrase.js @@ -69,7 +69,7 @@ const data = { protected: '保护', operating: '操作', approve: '评审', - enable: '恢复', + enable: '启用', disable: '禁用', last: '最近', From b96db9fdd37ab14f5f83b360abce3e8fb0fc63ad Mon Sep 17 00:00:00 2001 From: cubic Date: Wed, 16 Feb 2022 10:41:40 +0800 Subject: [PATCH 2/2] build(Build): --- www/view/build/asset-manifest.json | 6 +++--- www/view/build/index.html | 2 +- .../build/static/js/{main.2527a024.js => main.d50b5fa5.js} | 4 ++-- .../js/{main.2527a024.js.map => main.d50b5fa5.js.map} | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename www/view/build/static/js/{main.2527a024.js => main.d50b5fa5.js} (99%) rename www/view/build/static/js/{main.2527a024.js.map => main.d50b5fa5.js.map} (99%) diff --git a/www/view/build/asset-manifest.json b/www/view/build/asset-manifest.json index 36fade2..733994d 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.2527a024.js", - "main.js.map": "/static/js/main.2527a024.js.map", + "main.js": "/static/js/main.d50b5fa5.js", + "main.js.map": "/static/js/main.d50b5fa5.js.map", "static/css/1.75563d44.chunk.css": "/static/css/1.75563d44.chunk.css", "static/js/1.21a642aa.chunk.js": "/static/js/1.21a642aa.chunk.js", "static/js/1.21a642aa.chunk.js.map": "/static/js/1.21a642aa.chunk.js.map", @@ -12,6 +12,6 @@ "entrypoints": [ "static/css/1.75563d44.chunk.css", "static/js/1.21a642aa.chunk.js", - "static/js/main.2527a024.js" + "static/js/main.d50b5fa5.js" ] } \ No newline at end of file diff --git a/www/view/build/index.html b/www/view/build/index.html index 135bbd0..f047ee9 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.2527a024.js b/www/view/build/static/js/main.d50b5fa5.js similarity index 99% rename from www/view/build/static/js/main.2527a024.js rename to www/view/build/static/js/main.d50b5fa5.js index 1767c53..95c18d6 100644 --- a/www/view/build/static/js/main.2527a024.js +++ b/www/view/build/static/js/main.d50b5fa5.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&&"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(546),ge=a(580),be=a(582),fe=a(14),je=a(3),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(541),Ce=a(545),Ne=a(544),Re=a(542),Me=a(543),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:/^.+$/,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(5),Ae=["icon","className","label","badge","intl","classes"],De=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(Te.a)(e,Ae),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),Ie=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}}}))(De)),Pe=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:!1,count:61};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:/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,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;if(this.state.codeDisabled)return!1;this.cancelForm(),te.resentCommitEmailCode({email:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.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())}))}},{key:"countDown",value:function(){var e=this,t=this.state.count;t?(this.setState({codeDisabled:!0,count:--t}),window.setTimeout((function(){return e.countDown()}),1e3)):this.setState({codeDisabled:!1,count:61})}},{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,className:[a.btn,l?a.disabled:""].join(" "),onClick:function(a){return e.resentCommitEmailCode(t.email)},children:[r.formatMessage({id:"message.resendEmail"}),"?",l&&"("+p+")"]})]}),t.email!==s&&Object(oe.jsxs)(i.a.Fragment,{children:[!t.isCheck&&Object(oe.jsx)(Ie,{label:"message.shouldValidation",className:a.icon,onClick:function(a){return e.createValidationForm(t.email)},icon:je.m}),Object(oe.jsx)(Ie,{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)(Ie,{label:"label.ok",icon:je.e,onClick:function(t){return e.addCommitEmail()},className:a.ok}),Object(oe.jsx)(Ie,{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)(Ie,{label:"label.ok",icon:je.e,onClick:function(a){return t.validationCommitEmailCode(e)},className:r.ok}),Object(oe.jsx)(Ie,{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),Fe=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)}}}))(Pe)))),Le=a(583),Be=a(180),Ue=a.n(Be),Ge=a(34),He=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)(Le.a,{variant:"circular",src:r,className:Ue()(a.circleUserInfoAvatar)}):Object(oe.jsx)(Le.a,{variant:"rounded",src:r.length>1?r:"",className:Ue()(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:Ge.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),qe=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)}}}))(He))),ze=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:/^[^@]+@[^@]+\.[^@]+$/,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)(qe,{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.mfaCode"}),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.mfaCode"}),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),We=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)}}}))(ze)))),Ve=a(547),Je=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),Ke=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"}}}))(Je)),$e=["classes"],Ze=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(Te.a)(e,$e);return Object(oe.jsx)(Ve.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))})),Ye=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),Xe=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)}}}))(Ye))));var Qe={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)}},et=a(40),tt=a(548),at=a(549),rt=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(et.a)(b,2);h=f[0],g=f[1]}return Object(oe.jsx)(tt.a,{className:[t.card,p&&t.clickable].join(" "),style:{backgroundColor:m&&m.main},onClick:function(){p&&u.push(p)},children:Object(oe.jsx)(at.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),it=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{}}))(rt))))),nt=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}),Qe.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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{title:"PHP-FPM",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.php?"Running":"Stopped"})})]})}}]),a}(i.a.Component),st=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)}}}))(nt)))),ot=a(300),ct=a(553),lt=a(551),pt=a(574),dt=a(554),ut=a(552),mt=a(555),ht=a(573),gt=a(550),bt=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)(ht.a,{value:r||0,indicatorColor:"primary",textColor:"primary",onChange:a,children:t.map((function(e,t){return Object(oe.jsx)(gt.a,{value:t,label:e},t)}))})}),Object(oe.jsx)(k.a,{item:!0,children:i})]})}}]),a}(i.a.Component),ft=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{}}))(bt))))),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:!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}),Qe.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)(Le.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)(Ke,{color:"success",text:"2FA"}),t.admin&&Object(oe.jsx)(Ke,{color:"info",text:r.formatMessage({id:"label.administrator"})}),!t.status&&Object(oe.jsx)(Ke,{color:"error",text:r.formatMessage({id:"message.disabled"})})]}),Object(oe.jsx)(Ie,{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;Qe.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;Qe.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 Qe.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;Qe.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}),Qe.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;Qe.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)(ft,{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)(lt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(lt.a,{value:"email",children:r.formatMessage({id:"label.email"})}),Object(oe.jsx)(lt.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)(pt.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)(ot.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)(lt.a,{onClick:function(t){return e.updateUserStatusConfirm()},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:m.status?"label.disable":"label.enable"})})}),m.status&&Object(oe.jsx)(lt.a,{onClick:function(t){return e.setState({resetPassword:!0,settingAnchor:null})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"message.resetPassword"})})}),m.status&&m.mfaEnabled&&Object(oe.jsx)(lt.a,{onClick:function(t){return e.closeUserMFAConfirm()},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"message.closeMFA"})})}),m.status&&Object(oe.jsx)(lt.a,{onClick:function(t){return e.setState({settingAdmin:!0,settingAnchor:null,password:""})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:m.admin?"message.cancelAdministrator":"message.setAdministrator"})})})]}),Object(oe.jsxs)(ct.a,{maxWidth:"sm",open:h,fullWidth:Boolean(!0),onClose:function(t){return e.setState({resetPassword:!1})},children:[Object(oe.jsx)(dt.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)(mt.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)(ct.a,{maxWidth:"sm",open:j,fullWidth:Boolean(!0),onClose:function(t){return e.setState({settingAdmin:!1})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:m.admin?"message.cancelAdministrator":"message.setAdministrator"})})}),Object(oe.jsx)(mt.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)(ct.a,{maxWidth:"sm",open:O,fullWidth:Boolean(!0),onClose:function(t){return e.setState({addUser:!1})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.addUser"})})}),Object(oe.jsx)(mt.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)(ct.a,{maxWidth:"sm",open:!!S,fullWidth:Boolean(!0),onClose:function(t){return e.setState({newPassword:""})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"message.successAddUser"})})}),Object(oe.jsx)(mt.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)(Ie,{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),vt=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)}}}))(jt))),Ot=a(25),yt=a(158),xt=a(584),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}),Qe.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)(Le.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.icon,className:a.icon}):Object(oe.jsx)(Le.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)(Ie,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingGroup:t})},icon:je.gb}):Object(oe.jsx)(Ke,{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;Qe.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(Ot.a)(e,L.Role.GUEST,"label.guest"),Object(Ot.a)(e,L.Role.REPORTER,"label.reporter"),Object(Ot.a)(e,L.Role.DEVELOPER,"label.developer"),Object(Ot.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(Ot.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)(Le.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)(Ke,{color:"info",text:i.formatMessage({id:o[e.role]})}),e.creatorFlag&&Object(oe.jsx)(Ke,{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)(Ke,{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;Qe.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)(lt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(lt.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)(pt.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)(ot.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)(lt.a,{onClick:function(t){return e.openMemberManage()},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"label.memberManage"})})})}),Object(oe.jsxs)(ct.a,{maxWidth:"md",open:u,fullWidth:Boolean(!0),onClose:function(t){return e.setState({memberManage:!1})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.memberManage"})})}),Object(oe.jsx)(mt.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}),Qe.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)(Le.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.icon,className:a.icon}):Object(oe.jsx)(Le.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)(Ie,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingRepository:t})},icon:je.gb}):Object(oe.jsx)(Ke,{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;Qe.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(Ot.a)(e,L.Role.GUEST,"label.guest"),Object(Ot.a)(e,L.Role.REPORTER,"label.reporter"),Object(Ot.a)(e,L.Role.DEVELOPER,"label.developer"),Object(Ot.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(Ot.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)(Le.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)(Ke,{color:"info",text:i.formatMessage({id:o[e.role]})}),Object(oe.jsxs)(k.a,{children:[e.creatorFlag&&Object(oe.jsx)(Ke,{color:"success",text:i.formatMessage({id:"label.creator"})}),e.groupMember&&Object(oe.jsx)(Ke,{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)(Ke,{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)(lt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(lt.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)(pt.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)(ot.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)(lt.a,{onClick:function(t){return e.openMemberManage()},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"label.memberManage"})})})}),Object(oe.jsxs)(ct.a,{maxWidth:"md",open:u,fullWidth:Boolean(!0),onClose:function(t){return e.setState({memberManage:!1})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.memberManage"})})}),Object(oe.jsx)(mt.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:"",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.url"})})},{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}),Qe.getConfig().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.setState({pending:!1,host:t.data.host,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,allowRegister:this.state.allowRegister,email:{name:this.state.email_name,from:this.state.email_from}},a={data:JSON.stringify(t)};this.setState({pending:!0}),Qe.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())}))}},{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.url"})," "]})}),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.url"}),onChange:function(t){return e.setState({host: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)(Ve.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(576),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)(Le.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+r.icon}):Object(oe.jsx)(Le.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)(Ke,{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)(Ie,{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)(Le.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+a.group.icon}):Object(oe.jsx)(Le.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)(ft,{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(556);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)(lt.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)(lt.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:Ge.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:Ge.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)(qe,{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)(Ie,{label:"label.modification",icon:je.m,className:t.icon,onClick:function(t){return e.editRule(a)}}),Object(oe.jsx)(Ie,{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)(lt.a,{value:L.Role.OWNER,children:this.getAllowRoler(L.Role.OWNER)}),Object(oe.jsx)(lt.a,{value:L.Role.MAINTAINER,children:this.getAllowRoler(L.Role.MAINTAINER)}),Object(oe.jsx)(lt.a,{value:L.Role.DEVELOPER,children:this.getAllowRoler(L.Role.DEVELOPER)}),Object(oe.jsx)(lt.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)(lt.a,{value:L.Role.OWNER,children:this.getAllowRoler(L.Role.OWNER)}),Object(oe.jsx)(lt.a,{value:L.Role.MAINTAINER,children:this.getAllowRoler(L.Role.MAINTAINER)}),Object(oe.jsx)(lt.a,{value:L.Role.NOBODY,children:this.getAllowRoler(L.Role.NOBODY)})]}),Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Ie,{label:"label.ok",icon:je.e,onClick:function(t){return e.createProtectedBranchRule()},className:a.ok}),Object(oe.jsx)(Ie,{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)(lt.a,{value:0,children:i.formatMessage({id:"message.settingDefaultBranch"})}),a.branches.map((function(e,t){return Object(oe.jsx)(lt.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(577),Xt=a(586),Qt=a(557),ea=a(579),ta=[{event:"hook:postReceive",title:"label.pushEvent",checked:!0},{event:"repo:fork",title:"label.forkRepository",checked:!1},{event:"repo:updateAvator",title:["label.update_S_","label.repositoryAvatar"],checked:!1},{event:"repo:updateName",title:["label.update_S_","label.repositoryName"],checked:!1},{event:"repo:updateDescription",title:["label.update_S_","label.repositoryDescription"],checked:!1},{event:"repo:addMember",title:"label.inviteMember",checked:!1},{event:"repo:changeMemberRole",title:"label.changeMemberRole",checked:!1},{event:"repo:removeMember",title:"label.removeMember",checked:!1},{event:"repo:changeOwner",title:["label.update_S_","label.owner"],checked:!1},{event:"repo:changeURL",title:["label.update_S_","label.repositoryURL"],checked:!1},{event:"repo:remove",title:"label.deleteRepository",checked:!1},{event:"branch:create",title:"label.newBranch",checked:!1},{event:"branch:remove",title:"label.deleteBranch",checked:!1},{event:"branch:changeDefaultBranch",title:["label.update_S_","label.defaultBranch"],checked:!1},{event:"branch:createProtectedBranchRule",title:"label.createProtectedBranchRule",checked:!1},{event:"branch:changeProtectedBranchRule",title:"label.changeProtectedBranchRule",checked:!1},{event:"branch:removeProtectedBranchRule",title:"label.removeProtectedBranchRule",checked:!1},{event:"tag:create",title:"label.newTag",checked:!1},{event:"tag:remove",title:"label.deleteTag",checked:!1},{event:"mergeRequest:create",title:"label.createMergeRequest",checked:!1},{event:"mergeRequest:close",title:"label.closeMergeRequest",checked:!1},{event:"mergeRequest:merge",title:"label.mergeRequest",checked:!1},{event:"mergeRequestReviewer:create",title:"message.selectReviewer",checked:!1},{event:"mergeRequestReviewer:delete",title:"message.deleteReviewer",checked:!1},{event:"mergeRequestReviewer:review",title:"label.reviewReviewer",checked:!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)(Ie,{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)(Ie,{label:"label.close",onClick:function(t){return e.setState({webhookId:""})},icon:je.g,className:r.more}):Object(oe.jsx)(Ie,{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)(ft,{tabs:[i.formatMessage({id:"label.request"}),Object(oe.jsxs)(k.a,{children:[i.formatMessage({id:"label.response"}),"\u2003",Object(oe.jsx)(Ke,{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)(Ie,{label:"label.update",icon:je.m,className:a.icon,onClick:function(a){return e.updateWebhook(t)}}),Object(oe.jsx)(Ie,{label:"label.delete",icon:je.H,className:a.icon,onClick:function(a){return e.deleteWebhook(t)}}),Object(oe.jsx)(Ie,{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.jsx)(k.a,{item:!0,xs:12,children:m.map((function(t,a){return 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(560),la=a(558),pa=a(559),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)(Le.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)(Ke,{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;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)(lt.a,{value:L.Role.GUEST,children:r.formatMessage({id:"label.guest"})},L.Role.GUEST),Object(oe.jsx)(lt.a,{value:L.Role.REPORTER,children:r.formatMessage({id:"label.reporter"})},L.Role.REPORTER),Object(oe.jsx)(lt.a,{value:L.Role.DEVELOPER,children:r.formatMessage({id:"label.developer"})},L.Role.DEVELOPER),Object(oe.jsx)(lt.a,{value:L.Role.MAINTAINER,children:r.formatMessage({id:"label.maintianer"})},L.Role.MAINTAINER),Object(oe.jsx)(lt.a,{value:L.Role.OWNER,children:r.formatMessage({id:"label.owner"})},L.Role.OWNER),Object(oe.jsx)(pa.a,{className:s.split}),Object(oe.jsxs)(lt.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)}}}))(lt.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:Ge.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)(tt.a,{className:t.card,onClick:function(){r.push(W("groups",i.name))},children:Object(oe.jsx)(at.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)(Le.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+i.icon}):Object(oe.jsx)(Le.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)(Ke,{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)(Ie,{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)(Le.a,{className:t.avatar,src:D.HOSTS.PGYER_AVATAR_HOST+e.icon},a):Object(oe.jsx)(Le.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)(ft,{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:/^.{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:Ge.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:Ge.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)(qe,{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)}}}))(lt.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:/^.{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: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:Ge.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:Ge.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)(Le.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)(ft,{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:Ge.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(561),qa=a(538),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)(Le.a,{variant:"square",className:a.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+r.repository.icon}):Object(oe.jsx)(Le.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)(ft,{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)(Ie,{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)(Ie,{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)(lt.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)(lt.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)(lt.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(295),$a=a.n(Ka),Za=a(98),Ya=a.n(Za),Xa=(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(251),a(252),a(253),a(254),a(255),a(256),a(257),a(258),a(259),a(260),a(261),a(262),a(263),a(264),a(265),a(266),a(267),a(268),a(269),a(270),a(271),a(272),a(273),a(274),a(275),a(276),a(277),a(278),a(279),a(280),a(281),a(282),a(283),a(284),a(285),a(286),a(287),a(181)),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(487),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)(Ie,{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)(ut.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)(Le.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)(Ie,{label:"label.copy",icon:je.k,onClick:function(t){return e.setState({copyAnchor:t.target})},className:s.icon2}),Object(oe.jsxs)(ot.a,{anchorEl:this.state.copyAnchor,transitionDuration:0,open:!!this.state.copyAnchor,onClose:function(t){return e.setState({copyAnchor:null})},children:[Object(oe.jsx)(lt.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)(lt.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)(Ie,{label:"message.displayRendereFile",icon:je.p,onClick:function(){return e.setState({mdSourceShow:!1})}}):Object(oe.jsx)(Ie,{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)($a.a,{children:r.object.raw})]})]}),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)(Ie,{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)(Ie,{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:[Object(oe.jsx)(fe.a,{icon:"blob"===e.type?je.p: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})]}),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:Ge.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)(ft,{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)(Ie,{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)(Ke,{color:"secondary",text:d.formatMessage({id:"label.default"})})," \xa0\xa0\xa0"]}),"branch"===o&&t.name!==g&&!!t.isMerge&&Object(oe.jsx)(Ke,{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)(Ie,{label:"label.more",onClick:function(t){return r.openRefItemMenu(e+a,t)},icon:je.cb}),Object(oe.jsx)(ot.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)(lt.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)(Ie,{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:Ge.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(123),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)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(lt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),Object(oe.jsx)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.tag"})}),a.tags&&a.tags.map((function(e,t){return Object(oe.jsxs)(lt.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)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(lt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),Object(oe.jsx)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.tag"})}),a.tags&&a.tags.map((function(e,t){return Object(oe.jsxs)(lt.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(587),Dr=a(563),Ir=a(564),Pr=a(155),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)(Ie,{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?Ge.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"]?Ge.f:Ge.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:Ge.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:Ge.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)}}}))(Le.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)(Le.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)(Ke,{color:"success",background:!1,icon:je.j,text:i.formatMessage({id:"message.opened"})}),a.status===n.merged&&Object(oe.jsx)(Ke,{color:"info",background:!1,icon:je.z,text:i.formatMessage({id:"message.merged"})}),a.status===n.closed&&Object(oe.jsx)(Ke,{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:Ge.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)(lt.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)(lt.a,{value:e.id,children:e.group.displayName+"/"+e.displayName},e.id)})),0===x.length&&0===h.length&&j&&Object(oe.jsx)(lt.a,{value:"empty",children:n.formatMessage({id:"label.createRepository"})}),!j&&!f&&!!h.length&&!!s.length&&s.map((function(e,t){return Object(oe.jsx)(lt.a,{value:e.id,children:e.group.displayName+"/"+e.displayName},e.id)})),(!h.length||!s.length)&&Object(oe.jsx)(lt.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)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(lt.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)(lt.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)(lt.a,{value:e.rKey,children:e.name},e.rKey)})),0===c.length&&Object(oe.jsx)(lt.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)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),l&&l.map((function(e,t){return Object(oe.jsxs)(lt.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(537),oi=a(575),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)(lt.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)(lt.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)}}}))(Le.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)(Ke,{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:We}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/sshkey",component:Ee}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/notification",component:Xe}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/email",component:Fe}),Object(oe.jsx)(h.a,{path:"/settings",component:We})]})}),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:vt}),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:st})]})}),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(566),ji=a(567),vi=a(565),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)(Le.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)(ot.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)(lt.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)(lt.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)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.profile"})})]}),Object(oe.jsxs)(lt.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)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.mail"})})]}),Object(oe.jsxs)(lt.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)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.SSHKey_pl"})})]}),Object(oe.jsx)(pa.a,{}),Object(oe.jsxs)(lt.a,{onClick:this.logout,children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.n})}),Object(oe.jsx)(ut.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)(Ie,{label:"label.language",onClick:this.handleUserMenuClick,icon:je.u,className:this.props.className}),Object(oe.jsxs)(ot.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)(lt.a,{selected:"zh-cn"===s,onClick:function(t){return e.changeLanguage("zh-cn")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"lang.chinese"})})}),Object(oe.jsx)(lt.a,{selected:"en-us"===s,onClick:function(t){return e.changeLanguage("en-us")},children:Object(oe.jsx)(ut.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)(lt.a,{onClick:function(a){e.getToRepository(t)},children:[Object(oe.jsx)(vi.a,{children:t.icon?Object(oe.jsx)(Le.a,{variant:"square",className:a.listIcon,src:D.HOSTS.STATIC_AVATAR_PREFIX+t.icon}):Object(oe.jsx)(Le.a,{variant:"square",className:a.listIcon,children:t.name.substr(0,1).toUpperCase()})}),Object(oe.jsx)(ut.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)(lt.a,{onClick:function(a){e.getToGroup(t)},children:[Object(oe.jsx)(vi.a,{children:t.icon?Object(oe.jsx)(Le.a,{variant:"square",className:a.listIcon,src:D.HOSTS.STATIC_AVATAR_PREFIX+t.icon}):Object(oe.jsx)(Le.a,{variant:"square",className:a.listIcon,children:t.name.substr(0,1).toUpperCase()})}),Object(oe.jsx)(ut.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:Ge.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)(ot.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)(Ie,{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)(Ie,{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)(ot.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)(lt.a,{onClick:function(t){n.push("/repositories/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.newRepository"})})}),Object(oe.jsx)(lt.a,{onClick:function(t){n.push("/groups/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.newGroup"})})}),Object(oe.jsx)(lt.a,{onClick:function(t){n.push("/mergerequests/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.createMergeRequest"})})})]}),Object(oe.jsx)(Ie,{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)(Ie,{label:"label.help",onClick:function(t){return e.setState({helpMenuAnchor:t.currentTarget})},icon:je.s,className:a.optionItem}),Object(oe.jsxs)(ot.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)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("/doc/"+("en-us"===c?"en":"cn"),"_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.help"})})}),Object(oe.jsx)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://codefever.pgyer.com/community","_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.support"})})}),Object(oe.jsx)(lt.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)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.feedback"})})}),Object(oe.jsx)(pa.a,{}),Object(oe.jsx)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://github.com/PGYER/codefever","_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.contribute"})})}),Object(oe.jsx)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://codefever.pgyer.com/","_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.about"})})})]}),r.admin&&Object(oe.jsx)(Ie,{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(581),ki=a(540),_i=a(562),Ei=a(296),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)(ut.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)(ut.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)(Le.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%"},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(569),Bi=a(568),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)(ct.a,{open:a,onClose:function(t){return e.onCancel(t)},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[Object(oe.jsx)(dt.a,{id:"alert-dialog-title",children:r}),Object(oe.jsx)(mt.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)(Ie,{label:"label.setting",icon:je.gb,className:i.icon,onClick:function(t){return e.notificationSetting()}}),Object(oe.jsx)(Ie,{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)(ft,{currentTab:l,onChange:function(t,a){return!o&&e.setState({category:a})},tabs:m,children:[Object(oe.jsx)(Ie,{label:"label.more",icon:je.cb,className:[i.icon,i.more].join(" "),onClick:function(t){return e.setState({menuAnchor:t.target})}}),Object(oe.jsxs)(ot.a,{anchorEl:c,open:!!c,onClose:function(t){return e.setState({menuAnchor:null})},transitionDuration:0,children:[Object(oe.jsx)(lt.a,{onClick:function(t){return e.setNotificationRead("")},children:n.formatMessage({id:"message.tagAllRead"})}),Object(oe.jsx)(lt.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)(Ie,{label:"message.tagRead",icon:je.e,className:i.icon}),Object(oe.jsx)(Ie,{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(299),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",slug:"\u6807\u8bc6\u4e32",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:"\u6062\u590d",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",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",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",slug:"Slug",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",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:"Comoare 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",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.2527a024.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&&"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(546),ge=a(580),be=a(582),fe=a(14),je=a(3),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(541),Ce=a(545),Ne=a(544),Re=a(542),Me=a(543),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:/^.+$/,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(5),Ae=["icon","className","label","badge","intl","classes"],De=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(Te.a)(e,Ae),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),Ie=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}}}))(De)),Pe=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:!1,count:61};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:/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/,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;if(this.state.codeDisabled)return!1;this.cancelForm(),te.resentCommitEmailCode({email:e}).then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(e){e.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())}))}},{key:"countDown",value:function(){var e=this,t=this.state.count;t?(this.setState({codeDisabled:!0,count:--t}),window.setTimeout((function(){return e.countDown()}),1e3)):this.setState({codeDisabled:!1,count:61})}},{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,className:[a.btn,l?a.disabled:""].join(" "),onClick:function(a){return e.resentCommitEmailCode(t.email)},children:[r.formatMessage({id:"message.resendEmail"}),"?",l&&"("+p+")"]})]}),t.email!==s&&Object(oe.jsxs)(i.a.Fragment,{children:[!t.isCheck&&Object(oe.jsx)(Ie,{label:"message.shouldValidation",className:a.icon,onClick:function(a){return e.createValidationForm(t.email)},icon:je.m}),Object(oe.jsx)(Ie,{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)(Ie,{label:"label.ok",icon:je.e,onClick:function(t){return e.addCommitEmail()},className:a.ok}),Object(oe.jsx)(Ie,{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)(Ie,{label:"label.ok",icon:je.e,onClick:function(a){return t.validationCommitEmailCode(e)},className:r.ok}),Object(oe.jsx)(Ie,{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),Fe=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)}}}))(Pe)))),Le=a(583),Be=a(180),Ue=a.n(Be),Ge=a(34),He=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)(Le.a,{variant:"circular",src:r,className:Ue()(a.circleUserInfoAvatar)}):Object(oe.jsx)(Le.a,{variant:"rounded",src:r.length>1?r:"",className:Ue()(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:Ge.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),qe=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)}}}))(He))),ze=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:/^[^@]+@[^@]+\.[^@]+$/,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)(qe,{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.mfaCode"}),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.mfaCode"}),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),We=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)}}}))(ze)))),Ve=a(547),Je=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),Ke=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"}}}))(Je)),$e=["classes"],Ze=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(Te.a)(e,$e);return Object(oe.jsx)(Ve.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))})),Ye=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),Xe=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)}}}))(Ye))));var Qe={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)}},et=a(40),tt=a(548),at=a(549),rt=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(et.a)(b,2);h=f[0],g=f[1]}return Object(oe.jsx)(tt.a,{className:[t.card,p&&t.clickable].join(" "),style:{backgroundColor:m&&m.main},onClick:function(){p&&u.push(p)},children:Object(oe.jsx)(at.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),it=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{}}))(rt))))),nt=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}),Qe.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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{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)(it,{title:"PHP-FPM",paletteName:"fromValue",icon:je.db,numbericValue:t?null:this.state.data.service.php?"Running":"Stopped"})})]})}}]),a}(i.a.Component),st=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)}}}))(nt)))),ot=a(300),ct=a(553),lt=a(551),pt=a(574),dt=a(554),ut=a(552),mt=a(555),ht=a(573),gt=a(550),bt=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)(ht.a,{value:r||0,indicatorColor:"primary",textColor:"primary",onChange:a,children:t.map((function(e,t){return Object(oe.jsx)(gt.a,{value:t,label:e},t)}))})}),Object(oe.jsx)(k.a,{item:!0,children:i})]})}}]),a}(i.a.Component),ft=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{}}))(bt))))),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:!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}),Qe.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)(Le.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)(Ke,{color:"success",text:"2FA"}),t.admin&&Object(oe.jsx)(Ke,{color:"info",text:r.formatMessage({id:"label.administrator"})}),!t.status&&Object(oe.jsx)(Ke,{color:"error",text:r.formatMessage({id:"message.disabled"})})]}),Object(oe.jsx)(Ie,{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;Qe.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;Qe.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 Qe.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;Qe.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}),Qe.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;Qe.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)(ft,{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)(lt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(lt.a,{value:"email",children:r.formatMessage({id:"label.email"})}),Object(oe.jsx)(lt.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)(pt.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)(ot.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)(lt.a,{onClick:function(t){return e.updateUserStatusConfirm()},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:m.status?"label.disable":"label.enable"})})}),m.status&&Object(oe.jsx)(lt.a,{onClick:function(t){return e.setState({resetPassword:!0,settingAnchor:null})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"message.resetPassword"})})}),m.status&&m.mfaEnabled&&Object(oe.jsx)(lt.a,{onClick:function(t){return e.closeUserMFAConfirm()},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"message.closeMFA"})})}),m.status&&Object(oe.jsx)(lt.a,{onClick:function(t){return e.setState({settingAdmin:!0,settingAnchor:null,password:""})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:m.admin?"message.cancelAdministrator":"message.setAdministrator"})})})]}),Object(oe.jsxs)(ct.a,{maxWidth:"sm",open:h,fullWidth:Boolean(!0),onClose:function(t){return e.setState({resetPassword:!1})},children:[Object(oe.jsx)(dt.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)(mt.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)(ct.a,{maxWidth:"sm",open:j,fullWidth:Boolean(!0),onClose:function(t){return e.setState({settingAdmin:!1})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:m.admin?"message.cancelAdministrator":"message.setAdministrator"})})}),Object(oe.jsx)(mt.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)(ct.a,{maxWidth:"sm",open:O,fullWidth:Boolean(!0),onClose:function(t){return e.setState({addUser:!1})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.addUser"})})}),Object(oe.jsx)(mt.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)(ct.a,{maxWidth:"sm",open:!!S,fullWidth:Boolean(!0),onClose:function(t){return e.setState({newPassword:""})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"message.successAddUser"})})}),Object(oe.jsx)(mt.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)(Ie,{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),vt=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)}}}))(jt))),Ot=a(25),yt=a(158),xt=a(584),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}),Qe.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)(Le.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.icon,className:a.icon}):Object(oe.jsx)(Le.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)(Ie,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingGroup:t})},icon:je.gb}):Object(oe.jsx)(Ke,{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;Qe.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(Ot.a)(e,L.Role.GUEST,"label.guest"),Object(Ot.a)(e,L.Role.REPORTER,"label.reporter"),Object(Ot.a)(e,L.Role.DEVELOPER,"label.developer"),Object(Ot.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(Ot.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)(Le.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)(Ke,{color:"info",text:i.formatMessage({id:o[e.role]})}),e.creatorFlag&&Object(oe.jsx)(Ke,{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)(Ke,{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;Qe.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)(lt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(lt.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)(pt.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)(ot.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)(lt.a,{onClick:function(t){return e.openMemberManage()},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"label.memberManage"})})})}),Object(oe.jsxs)(ct.a,{maxWidth:"md",open:u,fullWidth:Boolean(!0),onClose:function(t){return e.setState({memberManage:!1})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.memberManage"})})}),Object(oe.jsx)(mt.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}),Qe.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)(Le.a,{src:D.HOSTS.PGYER_AVATAR_HOST+t.icon,className:a.icon}):Object(oe.jsx)(Le.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)(Ie,{label:"label.setting",onClick:function(a){return e.setState({settingAnchor:a.target,settingRepository:t})},icon:je.gb}):Object(oe.jsx)(Ke,{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;Qe.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(Ot.a)(e,L.Role.GUEST,"label.guest"),Object(Ot.a)(e,L.Role.REPORTER,"label.reporter"),Object(Ot.a)(e,L.Role.DEVELOPER,"label.developer"),Object(Ot.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(Ot.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)(Le.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)(Ke,{color:"info",text:i.formatMessage({id:o[e.role]})}),Object(oe.jsxs)(k.a,{children:[e.creatorFlag&&Object(oe.jsx)(Ke,{color:"success",text:i.formatMessage({id:"label.creator"})}),e.groupMember&&Object(oe.jsx)(Ke,{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)(Ke,{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)(lt.a,{value:"name",children:r.formatMessage({id:"label.name"})}),Object(oe.jsx)(lt.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)(pt.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)(ot.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)(lt.a,{onClick:function(t){return e.openMemberManage()},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"label.memberManage"})})})}),Object(oe.jsxs)(ct.a,{maxWidth:"md",open:u,fullWidth:Boolean(!0),onClose:function(t){return e.setState({memberManage:!1})},children:[Object(oe.jsx)(dt.a,{children:Object(oe.jsx)(w.a,{variant:"h6",component:"div",children:r.formatMessage({id:"label.memberManage"})})}),Object(oe.jsx)(mt.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:"",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.url"})})},{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}),Qe.getConfig().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.setState({pending:!1,host:t.data.host,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,allowRegister:this.state.allowRegister,email:{name:this.state.email_name,from:this.state.email_from}},a={data:JSON.stringify(t)};this.setState({pending:!0}),Qe.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())}))}},{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.url"})," "]})}),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.url"}),onChange:function(t){return e.setState({host: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)(Ve.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(576),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)(Le.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+r.icon}):Object(oe.jsx)(Le.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)(Ke,{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)(Ie,{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)(Le.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+a.group.icon}):Object(oe.jsx)(Le.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)(ft,{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(556);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)(lt.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)(lt.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:Ge.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:Ge.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)(qe,{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)(Ie,{label:"label.modification",icon:je.m,className:t.icon,onClick:function(t){return e.editRule(a)}}),Object(oe.jsx)(Ie,{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)(lt.a,{value:L.Role.OWNER,children:this.getAllowRoler(L.Role.OWNER)}),Object(oe.jsx)(lt.a,{value:L.Role.MAINTAINER,children:this.getAllowRoler(L.Role.MAINTAINER)}),Object(oe.jsx)(lt.a,{value:L.Role.DEVELOPER,children:this.getAllowRoler(L.Role.DEVELOPER)}),Object(oe.jsx)(lt.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)(lt.a,{value:L.Role.OWNER,children:this.getAllowRoler(L.Role.OWNER)}),Object(oe.jsx)(lt.a,{value:L.Role.MAINTAINER,children:this.getAllowRoler(L.Role.MAINTAINER)}),Object(oe.jsx)(lt.a,{value:L.Role.NOBODY,children:this.getAllowRoler(L.Role.NOBODY)})]}),Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Ie,{label:"label.ok",icon:je.e,onClick:function(t){return e.createProtectedBranchRule()},className:a.ok}),Object(oe.jsx)(Ie,{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)(lt.a,{value:0,children:i.formatMessage({id:"message.settingDefaultBranch"})}),a.branches.map((function(e,t){return Object(oe.jsx)(lt.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(577),Xt=a(586),Qt=a(557),ea=a(579),ta=[{event:"hook:postReceive",title:"label.pushEvent",checked:!0},{event:"repo:fork",title:"label.forkRepository",checked:!1},{event:"repo:updateAvator",title:["label.update_S_","label.repositoryAvatar"],checked:!1},{event:"repo:updateName",title:["label.update_S_","label.repositoryName"],checked:!1},{event:"repo:updateDescription",title:["label.update_S_","label.repositoryDescription"],checked:!1},{event:"repo:addMember",title:"label.inviteMember",checked:!1},{event:"repo:changeMemberRole",title:"label.changeMemberRole",checked:!1},{event:"repo:removeMember",title:"label.removeMember",checked:!1},{event:"repo:changeOwner",title:["label.update_S_","label.owner"],checked:!1},{event:"repo:changeURL",title:["label.update_S_","label.repositoryURL"],checked:!1},{event:"repo:remove",title:"label.deleteRepository",checked:!1},{event:"branch:create",title:"label.newBranch",checked:!1},{event:"branch:remove",title:"label.deleteBranch",checked:!1},{event:"branch:changeDefaultBranch",title:["label.update_S_","label.defaultBranch"],checked:!1},{event:"branch:createProtectedBranchRule",title:"label.createProtectedBranchRule",checked:!1},{event:"branch:changeProtectedBranchRule",title:"label.changeProtectedBranchRule",checked:!1},{event:"branch:removeProtectedBranchRule",title:"label.removeProtectedBranchRule",checked:!1},{event:"tag:create",title:"label.newTag",checked:!1},{event:"tag:remove",title:"label.deleteTag",checked:!1},{event:"mergeRequest:create",title:"label.createMergeRequest",checked:!1},{event:"mergeRequest:close",title:"label.closeMergeRequest",checked:!1},{event:"mergeRequest:merge",title:"label.mergeRequest",checked:!1},{event:"mergeRequestReviewer:create",title:"message.selectReviewer",checked:!1},{event:"mergeRequestReviewer:delete",title:"message.deleteReviewer",checked:!1},{event:"mergeRequestReviewer:review",title:"label.reviewReviewer",checked:!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)(Ie,{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)(Ie,{label:"label.close",onClick:function(t){return e.setState({webhookId:""})},icon:je.g,className:r.more}):Object(oe.jsx)(Ie,{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)(ft,{tabs:[i.formatMessage({id:"label.request"}),Object(oe.jsxs)(k.a,{children:[i.formatMessage({id:"label.response"}),"\u2003",Object(oe.jsx)(Ke,{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)(Ie,{label:"label.update",icon:je.m,className:a.icon,onClick:function(a){return e.updateWebhook(t)}}),Object(oe.jsx)(Ie,{label:"label.delete",icon:je.H,className:a.icon,onClick:function(a){return e.deleteWebhook(t)}}),Object(oe.jsx)(Ie,{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.jsx)(k.a,{item:!0,xs:12,children:m.map((function(t,a){return 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(560),la=a(558),pa=a(559),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)(Le.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)(Ke,{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;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)(lt.a,{value:L.Role.GUEST,children:r.formatMessage({id:"label.guest"})},L.Role.GUEST),Object(oe.jsx)(lt.a,{value:L.Role.REPORTER,children:r.formatMessage({id:"label.reporter"})},L.Role.REPORTER),Object(oe.jsx)(lt.a,{value:L.Role.DEVELOPER,children:r.formatMessage({id:"label.developer"})},L.Role.DEVELOPER),Object(oe.jsx)(lt.a,{value:L.Role.MAINTAINER,children:r.formatMessage({id:"label.maintianer"})},L.Role.MAINTAINER),Object(oe.jsx)(lt.a,{value:L.Role.OWNER,children:r.formatMessage({id:"label.owner"})},L.Role.OWNER),Object(oe.jsx)(pa.a,{className:s.split}),Object(oe.jsxs)(lt.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)}}}))(lt.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:Ge.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)(tt.a,{className:t.card,onClick:function(){r.push(W("groups",i.name))},children:Object(oe.jsx)(at.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)(Le.a,{variant:"square",className:t.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+i.icon}):Object(oe.jsx)(Le.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)(Ke,{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)(Ie,{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)(Le.a,{className:t.avatar,src:D.HOSTS.PGYER_AVATAR_HOST+e.icon},a):Object(oe.jsx)(Le.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)(ft,{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:/^.{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:Ge.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:Ge.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)(qe,{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)}}}))(lt.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:/^.{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: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:Ge.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:Ge.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)(Le.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)(ft,{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:Ge.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(561),qa=a(538),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)(Le.a,{variant:"square",className:a.icon,src:D.HOSTS.STATIC_AVATAR_PREFIX+r.repository.icon}):Object(oe.jsx)(Le.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)(ft,{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)(Ie,{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)(Ie,{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)(lt.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)(lt.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)(lt.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(295),$a=a.n(Ka),Za=a(98),Ya=a.n(Za),Xa=(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(251),a(252),a(253),a(254),a(255),a(256),a(257),a(258),a(259),a(260),a(261),a(262),a(263),a(264),a(265),a(266),a(267),a(268),a(269),a(270),a(271),a(272),a(273),a(274),a(275),a(276),a(277),a(278),a(279),a(280),a(281),a(282),a(283),a(284),a(285),a(286),a(287),a(181)),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(487),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)(Ie,{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)(ut.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)(Le.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)(Ie,{label:"label.copy",icon:je.k,onClick:function(t){return e.setState({copyAnchor:t.target})},className:s.icon2}),Object(oe.jsxs)(ot.a,{anchorEl:this.state.copyAnchor,transitionDuration:0,open:!!this.state.copyAnchor,onClose:function(t){return e.setState({copyAnchor:null})},children:[Object(oe.jsx)(lt.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)(lt.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)(Ie,{label:"message.displayRendereFile",icon:je.p,onClick:function(){return e.setState({mdSourceShow:!1})}}):Object(oe.jsx)(Ie,{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)($a.a,{children:r.object.raw})]})]}),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)(Ie,{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)(Ie,{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:[Object(oe.jsx)(fe.a,{icon:"blob"===e.type?je.p: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})]}),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:Ge.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)(ft,{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)(Ie,{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)(Ke,{color:"secondary",text:d.formatMessage({id:"label.default"})})," \xa0\xa0\xa0"]}),"branch"===o&&t.name!==g&&!!t.isMerge&&Object(oe.jsx)(Ke,{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)(Ie,{label:"label.more",onClick:function(t){return r.openRefItemMenu(e+a,t)},icon:je.cb}),Object(oe.jsx)(ot.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)(lt.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)(Ie,{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:Ge.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(123),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)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(lt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),Object(oe.jsx)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.tag"})}),a.tags&&a.tags.map((function(e,t){return Object(oe.jsxs)(lt.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)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(lt.a,{value:e.name,children:[Object(oe.jsx)(fe.a,{className:i.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),Object(oe.jsx)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.tag"})}),a.tags&&a.tags.map((function(e,t){return Object(oe.jsxs)(lt.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(587),Dr=a(563),Ir=a(564),Pr=a(155),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)(Ie,{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?Ge.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"]?Ge.f:Ge.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:Ge.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:Ge.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)}}}))(Le.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)(Le.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)(Ke,{color:"success",background:!1,icon:je.j,text:i.formatMessage({id:"message.opened"})}),a.status===n.merged&&Object(oe.jsx)(Ke,{color:"info",background:!1,icon:je.z,text:i.formatMessage({id:"message.merged"})}),a.status===n.closed&&Object(oe.jsx)(Ke,{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:Ge.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)(lt.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)(lt.a,{value:e.id,children:e.group.displayName+"/"+e.displayName},e.id)})),0===x.length&&0===h.length&&j&&Object(oe.jsx)(lt.a,{value:"empty",children:n.formatMessage({id:"label.createRepository"})}),!j&&!f&&!!h.length&&!!s.length&&s.map((function(e,t){return Object(oe.jsx)(lt.a,{value:e.id,children:e.group.displayName+"/"+e.displayName},e.id)})),(!h.length||!s.length)&&Object(oe.jsx)(lt.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)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),a.branches&&a.branches.map((function(e,t){return Object(oe.jsxs)(lt.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)(lt.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)(lt.a,{value:e.rKey,children:e.name},e.rKey)})),0===c.length&&Object(oe.jsx)(lt.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)(lt.a,{disabled:!0,children:n.formatMessage({id:"label.branch"})}),l&&l.map((function(e,t){return Object(oe.jsxs)(lt.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(537),oi=a(575),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)(lt.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)(lt.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)}}}))(Le.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)(Ke,{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:We}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/sshkey",component:Ee}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/notification",component:Xe}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/email",component:Fe}),Object(oe.jsx)(h.a,{path:"/settings",component:We})]})}),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:vt}),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:st})]})}),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(566),ji=a(567),vi=a(565),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)(Le.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)(ot.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)(lt.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)(lt.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)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.profile"})})]}),Object(oe.jsxs)(lt.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)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.mail"})})]}),Object(oe.jsxs)(lt.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)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.SSHKey_pl"})})]}),Object(oe.jsx)(pa.a,{}),Object(oe.jsxs)(lt.a,{onClick:this.logout,children:[Object(oe.jsx)(vi.a,{children:Object(oe.jsx)(fe.a,{icon:je.n})}),Object(oe.jsx)(ut.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)(Ie,{label:"label.language",onClick:this.handleUserMenuClick,icon:je.u,className:this.props.className}),Object(oe.jsxs)(ot.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)(lt.a,{selected:"zh-cn"===s,onClick:function(t){return e.changeLanguage("zh-cn")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:r.formatMessage({id:"lang.chinese"})})}),Object(oe.jsx)(lt.a,{selected:"en-us"===s,onClick:function(t){return e.changeLanguage("en-us")},children:Object(oe.jsx)(ut.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)(lt.a,{onClick:function(a){e.getToRepository(t)},children:[Object(oe.jsx)(vi.a,{children:t.icon?Object(oe.jsx)(Le.a,{variant:"square",className:a.listIcon,src:D.HOSTS.STATIC_AVATAR_PREFIX+t.icon}):Object(oe.jsx)(Le.a,{variant:"square",className:a.listIcon,children:t.name.substr(0,1).toUpperCase()})}),Object(oe.jsx)(ut.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)(lt.a,{onClick:function(a){e.getToGroup(t)},children:[Object(oe.jsx)(vi.a,{children:t.icon?Object(oe.jsx)(Le.a,{variant:"square",className:a.listIcon,src:D.HOSTS.STATIC_AVATAR_PREFIX+t.icon}):Object(oe.jsx)(Le.a,{variant:"square",className:a.listIcon,children:t.name.substr(0,1).toUpperCase()})}),Object(oe.jsx)(ut.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:Ge.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)(ot.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)(Ie,{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)(Ie,{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)(ot.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)(lt.a,{onClick:function(t){n.push("/repositories/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.newRepository"})})}),Object(oe.jsx)(lt.a,{onClick:function(t){n.push("/groups/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.newGroup"})})}),Object(oe.jsx)(lt.a,{onClick:function(t){n.push("/mergerequests/new"),e.setState({newMenuAnchor:null})},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.createMergeRequest"})})})]}),Object(oe.jsx)(Ie,{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)(Ie,{label:"label.help",onClick:function(t){return e.setState({helpMenuAnchor:t.currentTarget})},icon:je.s,className:a.optionItem}),Object(oe.jsxs)(ot.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)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("/doc/"+("en-us"===c?"en":"cn"),"_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.help"})})}),Object(oe.jsx)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://codefever.pgyer.com/community","_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.support"})})}),Object(oe.jsx)(lt.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)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.feedback"})})}),Object(oe.jsx)(pa.a,{}),Object(oe.jsx)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://github.com/PGYER/codefever","_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.contribute"})})}),Object(oe.jsx)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://codefever.pgyer.com/","_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.about"})})})]}),r.admin&&Object(oe.jsx)(Ie,{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(581),ki=a(540),_i=a(562),Ei=a(296),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)(ut.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)(ut.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)(Le.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%"},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(569),Bi=a(568),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)(ct.a,{open:a,onClose:function(t){return e.onCancel(t)},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[Object(oe.jsx)(dt.a,{id:"alert-dialog-title",children:r}),Object(oe.jsx)(mt.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)(Ie,{label:"label.setting",icon:je.gb,className:i.icon,onClick:function(t){return e.notificationSetting()}}),Object(oe.jsx)(Ie,{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)(ft,{currentTab:l,onChange:function(t,a){return!o&&e.setState({category:a})},tabs:m,children:[Object(oe.jsx)(Ie,{label:"label.more",icon:je.cb,className:[i.icon,i.more].join(" "),onClick:function(t){return e.setState({menuAnchor:t.target})}}),Object(oe.jsxs)(ot.a,{anchorEl:c,open:!!c,onClose:function(t){return e.setState({menuAnchor:null})},transitionDuration:0,children:[Object(oe.jsx)(lt.a,{onClick:function(t){return e.setNotificationRead("")},children:n.formatMessage({id:"message.tagAllRead"})}),Object(oe.jsx)(lt.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)(Ie,{label:"message.tagRead",icon:je.e,className:i.icon}),Object(oe.jsx)(Ie,{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(299),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",slug:"\u6807\u8bc6\u4e32",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",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",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",slug:"Slug",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",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:"Comoare 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",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.d50b5fa5.js.map \ No newline at end of file diff --git a/www/view/build/static/js/main.2527a024.js.map b/www/view/build/static/js/main.d50b5fa5.js.map similarity index 99% rename from www/view/build/static/js/main.2527a024.js.map rename to www/view/build/static/js/main.d50b5fa5.js.map index 12c03f5..4a75ba4 100644 --- a/www/view/build/static/js/main.2527a024.js.map +++ b/www/view/build/static/js/main.d50b5fa5.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","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","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","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","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","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","divider","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","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","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.2527a024.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([483,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 && '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: /^.+$/,\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: false,\n count: 61\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: /^[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.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 if (codeDisabled) {\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()\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.getEmailCodeFail' }), 2))\n }\n })\n }\n\n countDown () {\n let { count } = this.state\n if (count) {\n this.setState({ codeDisabled: true, count: --count })\n window.setTimeout(() => this.countDown(), 1000)\n } else {\n this.setState({ codeDisabled: false, count: 61 })\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 && '(' + count + ')'}\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: /^[^@]+@[^@]+\\.[^@]+$/,\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\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'\n// import 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 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.url' }) }\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 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 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 }\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.url' })} \n \n \n this.setState({ host: 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: 'hook:postReceive',\n title: 'label.pushEvent',\n checked: true\n },\n {\n event: 'repo:fork',\n title: 'label.forkRepository',\n checked: false\n },\n {\n event: 'repo:updateAvator',\n title: ['label.update_S_', 'label.repositoryAvatar'],\n checked: false\n },\n {\n event: 'repo:updateName',\n title: ['label.update_S_', 'label.repositoryName'],\n checked: false\n },\n {\n event: 'repo:updateDescription',\n title: ['label.update_S_', 'label.repositoryDescription'],\n checked: false\n },\n {\n event: 'repo:addMember',\n title: 'label.inviteMember',\n checked: false\n },\n {\n event: 'repo:changeMemberRole',\n title: 'label.changeMemberRole',\n checked: false\n },\n {\n event: 'repo:removeMember',\n title: 'label.removeMember',\n checked: false\n },\n {\n event: 'repo:changeOwner',\n title: ['label.update_S_', 'label.owner'],\n checked: false\n },\n {\n event: 'repo:changeURL',\n title: ['label.update_S_', 'label.repositoryURL'],\n checked: false\n },\n {\n event: 'repo:remove',\n title: 'label.deleteRepository',\n checked: false\n },\n {\n event: 'branch:create',\n title: 'label.newBranch',\n checked: false\n },\n {\n event: 'branch:remove',\n title: 'label.deleteBranch',\n checked: false\n },\n {\n event: 'branch:changeDefaultBranch',\n title: ['label.update_S_', 'label.defaultBranch'],\n checked: false\n },\n {\n event: 'branch:createProtectedBranchRule',\n title: 'label.createProtectedBranchRule',\n checked: false\n },\n {\n event: 'branch:changeProtectedBranchRule',\n title: 'label.changeProtectedBranchRule',\n checked: false\n },\n {\n event: 'branch:removeProtectedBranchRule',\n title: 'label.removeProtectedBranchRule',\n checked: false\n },\n {\n event: 'tag:create',\n title: 'label.newTag',\n checked: false\n },\n {\n event: 'tag:remove',\n title: 'label.deleteTag',\n checked: false\n },\n {\n event: 'mergeRequest:create',\n title: 'label.createMergeRequest',\n checked: false\n },\n {\n event: 'mergeRequest:close',\n title: 'label.closeMergeRequest',\n checked: false\n },\n {\n event: 'mergeRequest:merge',\n title: 'label.mergeRequest',\n checked: false\n },\n {\n event: 'mergeRequestReviewer:create',\n title: 'message.selectReviewer',\n checked: false\n },\n {\n event: 'mergeRequestReviewer:delete',\n title: 'message.deleteReviewer',\n checked: false\n },\n {\n event: 'mergeRequestReviewer:review',\n title: 'label.reviewReviewer',\n checked: 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 {events.map((item, index) => {\n return 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 {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 } = 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 \n \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 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 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: /^.{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: /^.{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: 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 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 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 } 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   \n {item.name}\n ,\n {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 },\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 slug: '标识串',\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 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\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 slug: 'Slug',\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 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: 'Comoare 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\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","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","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","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","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","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","divider","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","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","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.d50b5fa5.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([483,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 && '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: /^.+$/,\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: false,\n count: 61\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: /^[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.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 if (codeDisabled) {\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()\n } else {\n this.props.dispatchEvent(EventGenerator.NewNotification(intl.formatMessage({ id: 'message.error.getEmailCodeFail' }), 2))\n }\n })\n }\n\n countDown () {\n let { count } = this.state\n if (count) {\n this.setState({ codeDisabled: true, count: --count })\n window.setTimeout(() => this.countDown(), 1000)\n } else {\n this.setState({ codeDisabled: false, count: 61 })\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 && '(' + count + ')'}\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: /^[^@]+@[^@]+\\.[^@]+$/,\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\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'\n// import 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 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.url' }) }\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 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 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 }\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.url' })} \n \n \n this.setState({ host: 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: 'hook:postReceive',\n title: 'label.pushEvent',\n checked: true\n },\n {\n event: 'repo:fork',\n title: 'label.forkRepository',\n checked: false\n },\n {\n event: 'repo:updateAvator',\n title: ['label.update_S_', 'label.repositoryAvatar'],\n checked: false\n },\n {\n event: 'repo:updateName',\n title: ['label.update_S_', 'label.repositoryName'],\n checked: false\n },\n {\n event: 'repo:updateDescription',\n title: ['label.update_S_', 'label.repositoryDescription'],\n checked: false\n },\n {\n event: 'repo:addMember',\n title: 'label.inviteMember',\n checked: false\n },\n {\n event: 'repo:changeMemberRole',\n title: 'label.changeMemberRole',\n checked: false\n },\n {\n event: 'repo:removeMember',\n title: 'label.removeMember',\n checked: false\n },\n {\n event: 'repo:changeOwner',\n title: ['label.update_S_', 'label.owner'],\n checked: false\n },\n {\n event: 'repo:changeURL',\n title: ['label.update_S_', 'label.repositoryURL'],\n checked: false\n },\n {\n event: 'repo:remove',\n title: 'label.deleteRepository',\n checked: false\n },\n {\n event: 'branch:create',\n title: 'label.newBranch',\n checked: false\n },\n {\n event: 'branch:remove',\n title: 'label.deleteBranch',\n checked: false\n },\n {\n event: 'branch:changeDefaultBranch',\n title: ['label.update_S_', 'label.defaultBranch'],\n checked: false\n },\n {\n event: 'branch:createProtectedBranchRule',\n title: 'label.createProtectedBranchRule',\n checked: false\n },\n {\n event: 'branch:changeProtectedBranchRule',\n title: 'label.changeProtectedBranchRule',\n checked: false\n },\n {\n event: 'branch:removeProtectedBranchRule',\n title: 'label.removeProtectedBranchRule',\n checked: false\n },\n {\n event: 'tag:create',\n title: 'label.newTag',\n checked: false\n },\n {\n event: 'tag:remove',\n title: 'label.deleteTag',\n checked: false\n },\n {\n event: 'mergeRequest:create',\n title: 'label.createMergeRequest',\n checked: false\n },\n {\n event: 'mergeRequest:close',\n title: 'label.closeMergeRequest',\n checked: false\n },\n {\n event: 'mergeRequest:merge',\n title: 'label.mergeRequest',\n checked: false\n },\n {\n event: 'mergeRequestReviewer:create',\n title: 'message.selectReviewer',\n checked: false\n },\n {\n event: 'mergeRequestReviewer:delete',\n title: 'message.deleteReviewer',\n checked: false\n },\n {\n event: 'mergeRequestReviewer:review',\n title: 'label.reviewReviewer',\n checked: 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 {events.map((item, index) => {\n return 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 {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 } = 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 \n \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 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 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: /^.{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: /^.{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: 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 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 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 } 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   \n {item.name}\n ,\n {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 },\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 slug: '标识串',\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 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\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 slug: 'Slug',\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 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: 'Comoare 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\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