diff --git a/README.md b/README.md index b9282b5..40100a1 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,72 @@ -# 欢迎使用 CodeFever Community 版本 +
+

+ + Logo + +
+

+

+ + CodeFever Community + +

+

+

+ + 完全开源的 Git 代码托管服务 + +

+

+ +[![contributions welcome](https://pgyer-download.oss-cn-shenzhen.aliyuncs.com/contributions.svg)](CODE_OF_CONDUCT.md) [![Website](https://pgyer-download.oss-cn-shenzhen.aliyuncs.com/website.svg)](https://codefever.cn) [![Docker](https://pgyer-download.oss-cn-shenzhen.aliyuncs.com/docker.svg)](https://github.com/PGYER/codefever/) + +

+

+ + Built with ❤︎ by + + CodeFever + + +

+
+

+ + Screenshot + +

+
+ 目录 + +--- + +- [关于](#关于) +- [功能特性](#功能特性) +- [如何安装](#如何安装) +- [使用](#使用) +- [问题反馈](#问题反馈) +- [贡献代码](#贡献代码) +- [贡献文档](#贡献文档) + +--- + + + +### **关于** `CodeFever` 项目起初由 蒲公英开发者服务平台 开发和维护,项目于 2020 年 6 月上线 [https://codefever.pgyer.com/](https://codefever.pgyer.com/) 。 经过将近两年时间打磨和稳定性验证,于 2022 年 2 月开源,接受社区的考验。 @@ -14,7 +76,21 @@ `CodeFever Community` 保留了 `CodeFever` 的大部分功能,并且进行了更适合单机部署的优化。`CodeFever Community` 也会随 `CodeFever` 更新的同时接受来自社区的提交。 -### 如何安装 +### **功能特性** + +- 🆓 **永久免费:** 永久免费提供给大家使用,您无需担心付费 +- ❤️ **完整开源:** 毫无保留的完整开源,无任何编译或加密代码 +- 🥬 **轻量安装:** 极简设计风格,排除重度冗余的多余功能 +- ⚡️ **性能高效** 速度极快,对服务器资源要求极低,1核CPU/1G内存即可运行 +- ♾️ **无限仓库** 没有任何仓库数量、使用数量的限制 +- ⌨️ **代码对比** 支持提交代码的不同版本支持高亮显示对比 +- 🛤️ **分支和标签** 完整支持 Git 原生功能,帮助更清晰的管理代码 +- 🙋‍♂️ **合并请求(Merge Request)** 支持多人协作,让代码版本控制更顺畅 +- 🙅🏻‍♀️ **分支保护** 分支保护功能让代码提交安全可控,代码 Review 更容易清晰 +- 👥 **多人协作** 支持多人团队协作,并可以设置每个成员的角色和权限 +- 🖥️ **管理后台** 支持超级管理员后台,可以让团队leader管理所有项目和用户信息 + +### **如何安装** `CodeFever` 提供 `从头开始安装` 和 `Docker 镜像安装` 两种安装方式, 可以根据自己的实际需要选择安装方式。 @@ -31,39 +107,25 @@ 参照: [Docker 镜像安装](doc/zh-cn/installation/install_via_docker.md) -### 使用 +### **使用** -[仓库](doc/zh-cn/reposiotry) +- [仓库](doc/zh-cn/reposiotry) +- [仓库组](doc/zh-cn/reposiotry_group) +- [管理员设置](doc/zh-cn/admin) +- [Git](doc/zh-cn/git) +- [常见问题](doc/zh-cn/common) -[仓库组](doc/zh-cn/reposiotry_group) +### **问题反馈** -[管理员设置](doc/zh-cn/admin) +- 如果你在使用过程中遇到期望外的结果,欢迎提交 `Issue`。参照: [提交问题](doc/zh-cn/contribute/bug_fix_issue.md) +- 如果你希望在 `CodeFever Community` 添加一些特性,也欢迎提交 `Issue`。参照: [提交特性请求](doc/zh-cn/contribute/request_feature_issue.md) -[Git](doc/zh-cn/git) - -[常见问题](doc/zh-cn/common) - -### 问题反馈 - -如果你在使用过程中遇到期望外的结果,欢迎提交 `Issue`。 - -参照: [提交问题](doc/zh-cn/contribute/bug_fix_issue.md) - -如果你希望在 `CodeFever Community` 添加一些特性,也欢迎提交 `Issue`。 - -参照: [提交特性请求](doc/zh-cn/contribute/request_feature_issue.md) - -### 贡献代码 +### **贡献代码** 欢迎提交 `PR`, 请确定修复 `Bug` 后或者新增 `Feature` 后进行适当的测试。 -如果 `PR` 内容是问题,请先提交 `Issue` 并在提交 PR 时引用该 `Issue`。 - -参照: [提交问题修复](doc/zh-cn/contribute/bug_fix_pr.md) - -如果 `PR` 内容是新特性,请在 `PR` 中请尽量详细描述此特性的内容,如果此 PR 是针对某个特性请求的提交,在提交 PR 时引用该 `Issue`。 - -参照: [提交新特性](doc/zh-cn/contribute/new_feature_pr.md) +- 如果 `PR` 内容是问题,请先提交 `Issue` 并在提交 PR 时引用该 `Issue`。参照: [提交问题修复](doc/zh-cn/contribute/bug_fix_pr.md) +- 如果 `PR` 内容是新特性,请在 `PR` 中请尽量详细描述此特性的内容,如果此 PR 是针对某个特性请求的提交,在提交 PR 时引用该 `Issue`。参照: [提交新特性](doc/zh-cn/contribute/new_feature_pr.md) ### 贡献文档 diff --git a/application/config/constants.php b/application/config/constants.php index 35e83e3..32392fc 100755 --- a/application/config/constants.php +++ b/application/config/constants.php @@ -126,7 +126,7 @@ define('GROUP_TYPE_USER', 2); // 用户个人默认分组 // preserve url segment define('PRESERVE_URI', [ - '/^(feature|doc|lang|service|about|pricing|user|users|file|avatar|boss|captcha)$/i', + '/^(feature|doc|community|lang|service|about|pricing|user|users|file|avatar|boss|captcha)$/i', '/^(static|static-\d+)$/i', '/^(api|apiv\d+|apis)$/i', '/^(userInfo|userInfos)$/i', diff --git a/application/models/repository_model.php b/application/models/repository_model.php index 381f6bb..d33f8af 100755 --- a/application/models/repository_model.php +++ b/application/models/repository_model.php @@ -186,7 +186,7 @@ class Repository_model extends CI_Model $data['create'] = strtotime($item['mr_created']); $data['update'] = strtotime($item['mr_updated']); $data['reviewers'] = $this->getMergeRequestReviewers($item['mr_key']); - $data['commit'] = $this->getLastCommit($item['mr_source_r_key'], $item['u_key'], $item['mr_source_branch'], '', $item['mr_source_merged_hash']); + $data['commit'] = $this->getLastCommit($item['mr_source_r_key'], $item['u_key'], $item['mr_source_branch'], '', $item['mr_source_merged_hash'] ? $item['mr_source_merged_hash'] : ''); array_push($output, $data); } diff --git a/doc/zh-cn/installation/install_from_scratch.md b/doc/zh-cn/installation/install_from_scratch.md index 955b925..ee5f1bd 100644 --- a/doc/zh-cn/installation/install_from_scratch.md +++ b/doc/zh-cn/installation/install_from_scratch.md @@ -2,7 +2,7 @@ ## 此文档适用条件 -> 如果你的情况符合以下条件, 你可以使用 `从零开始安装` 的方式安装 `CodeFever` 否则请使用 `Docker 镜像安装` 方式安装。 +> 如果你的情况符合以下条件, 你可以使用 `从零开始安装` 的方式安装 `CodeFever` 否则请使用 [Docker 镜像安装](install_via_docker.md) 方式安装。 - 学习和技术交流 - 需要做定制化修改 @@ -38,7 +38,7 @@ swapon /root/swap ```shell # 安装基础软件包 -yum install -y autoconf cmake3 yaml pcre pcre-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 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+` 库,需要去官网下载源码包解压后安装。 @@ -158,7 +158,7 @@ corepack enable MySQL 不需要单独安装,直接使用系统自带软件工具安装软件包即可。需要安装于 `MySQL 5.7` 以上的相当版本。 -去官网按照指导使用镜像源安装二进制版本 (https://mariadb.org/download/?t=repo-config),如果你使用使用云数据库,你可以跳过此步骤。 +去官网按照指导使用镜像源安装二进制版本 (https://mariadb.org/download/?t=repo-config 选择 `xTom GmbH - San Jose` 镜像),如果你使用使用云数据库,你可以跳过此步骤。 启动服务后使用 `mysql_secure_installation` 或 `mariadb-secure-installation` 初始化数据库 @@ -175,10 +175,10 @@ set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_B 去 `Github` 上下载源码并安装 `/data/www/codefever-comminuty` 目录下 ```shell - mkdir /data/www - cd /data/www - git clone https://github.com/PGYER/codefever.git codefever-community - cd codefever-community +mkdir -p /data/www +cd /data/www +git clone https://github.com/PGYER/codefever.git codefever-community +cd codefever-community ``` * 如果 `Github` 的 `HTTP` 服务访问速度较慢,可以尝试使用 `SSH` 服务(需要提前设置 `SSH Key`) @@ -222,7 +222,20 @@ sh ./install.sh cd /data/www/codefever-community/misc sh ./create_db.sh ``` - + +为服务开启 `chkconfig` 以开机自动运行 + +```shell +chkconfig mariadb on # 或 chkconfig mysql on (根据安装的数据库类型, 如果使用云服务忽略此项目) +chkconfig nginx on +chkconfig php-fpm on +chkconfig codefever on +``` + 尝试访问 `http://127.0.0.1` 或 `http://` 来登录 -默认管理员用户: `root@codefever.cn`, 密码: `123456`。登录后请修改密码并绑定 MFA 设备。 \ No newline at end of file +默认管理员用户: `root@codefever.cn`, 密码: `123456`。登录后请修改密码并绑定 MFA 设备。 + +### 10. 服务维护 + +服务维护请参见 [管理员设置/概览和系统服务](../admin/dashboard.md) 中的 `系统服务状态及维护` 一节 diff --git a/doc/zh-cn/installation/install_via_docker.md b/doc/zh-cn/installation/install_via_docker.md index e417c91..98a05d6 100644 --- a/doc/zh-cn/installation/install_via_docker.md +++ b/doc/zh-cn/installation/install_via_docker.md @@ -1,3 +1,41 @@ # Docker 镜像安装 -> 文档正在准备中 \ No newline at end of file +## 此文档适用条件 + +> 如果你的情况符合以下条件, 你需要使用 [从零开始安装](install_from_scratch.md) 的方式安装 `CodeFever` 否则请跳过本章节继续使用 `Docker 镜像安装` 方式安装。 + +- 学习和技术交流 +- 需要做定制化修改 +- `Docker 镜像安装` 不能满足处理 `Bug` 和提交 `PR` 的需求 +- Docker 镜像不能在当前 `操作系统` 或 `硬件架构` 上使用 + +参见: [从零开始安装](install_from_scratch.md) + +## 安装步骤 + +### 0. Docker 镜像说明 + +`CodeFever Community 版本` 的 `Docker 镜像` 是从 `dockerhub` 上的 `centos:centos7.9.2009` 镜像开始按照 [从零开始安装](install_from_scratch.md) 中的步骤进行构建, 构建架构是 `x86_64 (amd64)` 如果有其他需求请自行构建镜像。 + +### 1. 获取镜像 + +从 `dockerhub` 上获取到 `CodeFever Community 版本` 镜像。 + +```shell +docker pull pgyer/codefever-community:latest +``` + +### 2. 启动 + +在本地启动 `CodeFever Communiy 版本` 的 `Docker 镜像` + +```shell +docker container run -d --privileged=true --name codefever -p 80:80 -p 22:22 -it pgyer/codefever-community:latest /usr/sbin/init +``` + +> - 如果你希望使用 `22` 端口作为 `Git` 的 `SSH 协议`端口。 你需要在启动镜像前将宿主系统的 `SSH 服务` `端口` 先修改成其他端口 +> - 如果服务异常你可以登录 Shell 去人工维护, 也可以直接重启容器重启服务。 + +### 3. 服务维护 + +服务维护请参见 [管理员设置/概览和系统服务](../admin/dashboard.md) 中的 `系统服务状态及维护` 一节 diff --git a/misc/nginx.conf-template b/misc/nginx.conf-template index 76fd232..d9b969f 100644 --- a/misc/nginx.conf-template +++ b/misc/nginx.conf-template @@ -59,7 +59,7 @@ http { try_files $uri /app$uri 404; } - location ~* ^/(user|file|feature|doc|lang|captcha|service|api(v\d+)?)?(\/.*)?$ { + location ~* ^/(user|file|feature|doc|community|lang|captcha|boss|service|pricing|api(v\d+)?)?(\/.*)?$ { try_files $uri $uri/ /index.php; } @@ -115,7 +115,7 @@ http { proxy_pass http://localhost; } - location ~* ^/(user|file|feature|doc|lang|captcha|boss|service|pricing|api(v\d+)?)?(\/.*)?$ { + location ~* ^/(user|file|feature|doc|community|lang|captcha|boss|service|pricing|api(v\d+)?)?(\/.*)?$ { proxy_pass http://localhost; } diff --git a/www/view/build/asset-manifest.json b/www/view/build/asset-manifest.json index c578e3c..55db32e 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.04c34ef2.js", - "main.js.map": "/static/js/main.04c34ef2.js.map", + "main.js": "/static/js/main.f834e978.js", + "main.js.map": "/static/js/main.f834e978.js.map", "static/css/1.75563d44.chunk.css": "/static/css/1.75563d44.chunk.css", "static/js/1.18365ff4.chunk.js": "/static/js/1.18365ff4.chunk.js", "static/js/1.18365ff4.chunk.js.map": "/static/js/1.18365ff4.chunk.js.map", @@ -12,6 +12,6 @@ "entrypoints": [ "static/css/1.75563d44.chunk.css", "static/js/1.18365ff4.chunk.js", - "static/js/main.04c34ef2.js" + "static/js/main.f834e978.js" ] } \ No newline at end of file diff --git a/www/view/build/index.html b/www/view/build/index.html index 2efdfc5..9459979 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.04c34ef2.js b/www/view/build/static/js/main.f834e978.js similarity index 83% rename from www/view/build/static/js/main.04c34ef2.js rename to www/view/build/static/js/main.f834e978.js index 6702862..e230df1 100644 --- a/www/view/build/static/js/main.04c34ef2.js +++ b/www/view/build/static/js/main.f834e978.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 J(t.role,e)}},withPermissions:function(e){return function(t){return e.some((function(e){return J(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 V(){return"/"+[].slice.call(arguments).join("/")}function W(){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(542),ge=a(575),fe=a(577),be=a(15),je=a(3),Oe=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)(be.a,{icon:je.r}),"\xa0\xa0",r||n.formatMessage({id:"label.learnMore"})]}):"icon"===i?Object(oe.jsx)(fe.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)(be.a,{icon:je.r})})})}):Object(oe.jsx)(fe.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)(be.a,{icon:je.r})]})})})}}]),a}(i.a.Component),ve=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{}}))(Oe)))),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)(be.a,{icon:je.G,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(537),Ce=a(541),Ne=a(540),Re=a(538),Me=a(539),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=K(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)(ve,{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(A.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))),Ae=a(5),Te=["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(Ae.a)(e,Te),c=Object(oe.jsxs)(_.a,Object(y.a)(Object(y.a)({},o),{},{className:[s.button,a].join(" "),children:[Object(oe.jsx)(be.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)(fe.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)),Fe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,primaryEmail:e.currentUserInfo.id?e.currentUserInfo.email:"",emails:e.currentUserInfo.id?e.currentUserInfo.emails:null,email:"",error:{},validationEmail:null,code:"",codeDisabled:!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.l}),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.G})]})]),!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.f,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.f,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(A.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(V("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)(ve,{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),Pe=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},title:{lineHeight:e.spacing(3)+"px",paddingBottom:e.spacing(2)},content:{paddingTop:e.spacing(3),paddingBottom:e.spacing(5),borderBottom:"1px solid "+e.palette.border,marginBottom:e.spacing(3)},create:{marginTop:e.spacing(1)},size:{fontSize:"12px"},btn:{textDecoration:"none !important",marginLeft:e.spacing(3)},icon:{color:e.palette.text.light},disabled:{opacity:.5,cursor:"not-allowed"},ok:{"& svg":{color:e.palette.success.main+" !important"}},cancel:{marginLeft:e.spacing(3),"& svg":{width:"14px !important",height:"14px !important",padding:"2px",color:e.palette.error.main+" !important"}},table:{marginTop:e.spacing(3),"& tbody tr":{"&:hover":{background:e.palette.background.light+" !important"}},"& td":{height:e.spacing(6)+"px","& > div":{verticalAlign:"middle"}}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Fe)))),Le=a(578),Be=a(179),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)(be.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),Ve=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",borderBottom:"1px solid "+e.palette.border,fontSize:"18px",marginTop:e.spacing(4)},mainMarginTop:{marginTop:e.spacing(3)},mainMarginBottom:{marginBottom:e.spacing(1)},noMarginTop:{marginTop:"unset"},title:{marginTop:e.spacing(3),marginBottom:e.spacing(1)},pl:{paddingLeft:e.spacing(4)+"px !important"},btn:{color:e.palette.primary.main,cursor:"pointer"},paper:{paddingBottom:e.spacing(10)},fold:{fontWeight:500},flexRow:{display:"flex",flexFlow:"row nowrap",justifyContent:"flex-start",alignItems:"center"},flexRowCenter:{display:"flex",flexFlow:"row nowrap",alignItems:"center",padding:e.spacing(1.5)+"px "+e.spacing(1)+"px",marginLeft:e.spacing(4)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ze)))),We=a(543),Ke=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.theme,r=e.icon,i=e.text,n=e.color,s=e.background,o={containedInfo:{main:a.palette.primary.contrastText,lighter:a.palette.secondary.main}},c=void 0===s||s,l=n?(a.palette[n]?a.palette:o)[n]:a.palette.primary;return r?Object(oe.jsxs)("span",{className:[t.root,t.iconPadding].join(" "),style:{backgroundColor:c?l.lighter:"",color:l.main},children:[Object(oe.jsx)("div",{className:t.icon,children:Object(oe.jsx)(be.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),Je=Object(ge.a)(Object(C.a)((function(e){return{root:{padding:e.spacing(.5)+"px",lineHeight:1.5,fontSize:e.spacing(1.5)+"px",fontWeight:"normal",display:"inline",borderRadius:e.spacing(.5)},iconPadding:{paddingLeft:e.spacing(1)+"px"},icon:{width:0,left:"-14px",position:"relative",display:"inline-block",verticalAlign:"middle"}}}))(Ke)),$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(Ae.a)(e,$e);return Object(oe.jsx)(We.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(45),tt=a(544),at=a(545),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 f=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),b=Object(et.a)(f,2);h=b[0],g=b[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)(be.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.X,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.db,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.cb,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.Z,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.Z,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.S,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.bb,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.bb,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.bb,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(299),ct=a(549),lt=a(547),pt=a(570),dt=a(550),ut=a(548),mt=a(551),ht=a(569),gt=a(546),ft=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.tabs,a=e.onChange,r=e.currentTab,i=e.children,n=e.classes;return Object(oe.jsxs)(k.a,{container:!0,className:n.background,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(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),bt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{background:{backgroundColor:e.palette.background.light}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ft))))),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)(Je,{color:"success",text:"2FA"}),t.admin&&Object(oe.jsx)(Je,{color:"info",text:r.formatMessage({id:"label.administrator"})}),!t.status&&Object(oe.jsx)(Je,{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.eb})]),!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,f=i.password2,b=i.error,j=i.settingAdmin,O=i.password,v=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)(bt,{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:!!b.password1,helperText:b.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:f,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:O,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:v,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:!!b.name,helperText:b.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:!!b.email,helperText:b.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.j})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.setState({newPassword:""})},children:r.formatMessage({id:"label.ok"})})})]})})]})]})}}]),a}(i.a.Component),Ot=Object(R.b)(Object(C.a)((function(e){return{search:{display:"flex"},keyword:{flexGrow:1},sortLabel:{lineHeight:e.spacing(4)+"px",padding:"0px "+e.spacing(2)+"px"},name:{display:"flex",textAlign:"left",alignItems:"center",margin:e.spacing(1)+"px 0px"},icon:{margin:e.spacing(1)},tag:{"& > *":{marginRight:e.spacing(1)}},page:{display:"flex",justifyContent:"flex-end"}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(jt))),vt=a(25),yt=a(156),xt=a(579),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?v.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.eb}):Object(oe.jsx)(Je,{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(vt.a)(e,L.Role.GUEST,"label.guest"),Object(vt.a)(e,L.Role.REPORTER,"label.reporter"),Object(vt.a)(e,L.Role.DEVELOPER,"label.developer"),Object(vt.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(vt.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)(Je,{color:"info",text:i.formatMessage({id:o[e.role]})}),e.creatorFlag&&Object(oe.jsx)(Je,{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)(Je,{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.eb}):Object(oe.jsx)(Je,{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(vt.a)(e,L.Role.GUEST,"label.guest"),Object(vt.a)(e,L.Role.REPORTER,"label.reporter"),Object(vt.a)(e,L.Role.DEVELOPER,"label.developer"),Object(vt.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(vt.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)(Je,{color:"info",text:i.formatMessage({id:o[e.role]})}),Object(oe.jsxs)(k.a,{children:[e.creatorFlag&&Object(oe.jsx)(Je,{color:"success",text:i.formatMessage({id:"label.creator"})}),e.groupMember&&Object(oe.jsx)(Je,{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)(Je,{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)(We.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)))),At=a(572),Tt=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(V(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)(Je,{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)(be.a,{icon:je.q}),"\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)(be.a,{icon:je.x}),"\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)(be.a,{icon:je.u}),"\xa0\xa0",r.members.length]})})]}),Object(oe.jsx)(At.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.D,onClick:function(e){e.stopPropagation(),a.push(V(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{}}))(Tt))))),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),Ft=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))))),Pt=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(V("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)(be.a,{icon:je.A}),"\xa0 ",i.formatMessage({id:"label._N_repository"},{n:r.filter(U.group(a.group.id)).length})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.x}),"\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)(be.a,{icon:je.u}),"\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{}}))(Pt))))),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)(bt,{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?V("groups",i.group.name,"repositories","new"):V("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)(Ft,{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?V("groups",i.group.name,"repositories","new"):V("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(552);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)}},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(V(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)))),Vt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,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(V(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)+V(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)(be.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)(be.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),Wt=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)}}}))(Vt)))),Kt=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),Jt=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)}}}))(Kt)))),$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.l,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.G})]})]),!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.f,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(A.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)(Ft,{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(555),Xt=a(553),Qt=a(554),ea=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)(Je,{text:i.formatMessage({id:"label.yourself"})})]})})]})}}]),a}(i.a.Component),ta=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{}}))(ea))))),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:"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)(ta,{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)(Xt.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)(Qt.a,{className:s.split}),Object(oe.jsxs)(lt.a,{value:a.id,className:s.deleteMember,children:[Object(oe.jsx)(be.a,{icon:je.G}),"\xa0\xa0",r.formatMessage({id:"label.removeMember"})]},a.id)]})})]})}}]),a}(i.a.Component),ra=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{}}))(aa))))),ia=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)(Yt.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)(ve,{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)(ra,{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)(na,{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)(na,{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),oa=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)}}}))(sa))));var ca={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)}},la=Object(C.a)((function(e){return{root:{minHeight:e.spacing(6)}}}))(lt.a),pa=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(V("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(V("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})})),ca.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)(la,{value:e.id,children:Object(oe.jsx)(ta,{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)(be.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)(be.a,{icon:je.G}),"\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),da=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)}}}))(pa)))),ua=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(V("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)(Je,{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.D,onClick:function(e){e.stopPropagation(),r.push(V("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)(be.a,{icon:je.A,className:t.listIcon})," \xa0",n.filter(U.group(i.id)).length," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.u,className:t.listIcon})," \xa0",i.members.length]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Qt.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),ma=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{}}))(ua))))),ha=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)(bt,{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(V("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)(ma,{groupInfo:e},t)},t)})),0===c.length&&Object(oe.jsx)(Ft,{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(V("groups","new"))},children:n.formatMessage({id:"label.newGroup"})})})]})}}]),a}(i.a.Component),ga=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{}}))(ha))),fa=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,ca.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}),ca.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;ca.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(V("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)(be.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)(be.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),ba=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)}}}))(fa)))),ja=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}),ca.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})})),ca.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.groupList.update",data:t.data})})),ca.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:ca.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),Oa=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)}}}))(ja)))),va=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}),ca.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};ca.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};ca.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})})),ca.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)(na,{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),ya=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)}}}))(va)))),xa=Object(C.a)((function(e){return{root:{minHeight:e.spacing(6)}}}))(lt.a),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,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}),ca.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(V("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}),ca.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(V("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}),ca.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;ca.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})})),ca.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)(xa,{value:e.id,children:Object(oe.jsx)(ta,{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)(be.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)(be.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),Ca=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)}}}))(Sa))));var Na,Ra={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:V("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:V("groups",e.item.content.from),s2:V("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:V(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:V(e.relatedGroup.name,e.relatedRepository.name),children:[e.relatedGroup.displayName,"/",e.relatedRepository.displayName]}):e.item.content.name,f=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:f}}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 b=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:b}}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 O=a.filter(U.id(e.item.content.uid))[0],v=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:(O?O.name+" <"+O.email+">":e.item.content.name+" <"+e.item.content.email+">")+": "+v}}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:V(e.relatedGroup.name,e.item.content.from),s2:V(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:V(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:V(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:V(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:V(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:V(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:V(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.name),""),children:e.item.content.name}):e.item.content.name,A=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:A}}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:V(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.from)),children:e.item.content.from})," ->\xa0"]}),Object(oe.jsx)(o.b,{to:V(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:V(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:V(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 T=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:V(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:V(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:V(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),F=Object(oe.jsxs)(i.a.Fragment,{children:[D," .. ",I," -> ",T]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_Tag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:F}}if(1282===t){var P=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:V(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:V(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," -> ",P]});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:V(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:V(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 W=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:V(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id,K=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.closeMergeRequest"})," ",W]});return{user:r,action:e.formatter({id:"message.activity.close_S_MergeRquest"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:K}}if(1795===t){var J=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:V(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"})," ",J]});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:V(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:V(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:V(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{user:r,action:"",detail:""}}},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:"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=Ra.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),wa=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{}}))(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={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(A.a)(a.state.activityList),Object(A.a)(e.data)),listFinshed:t})}})):e.currentGroupConfig.group&&ca.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(A.a)(a.state.activityList),Object(A.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)(bt,{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)(be.a,{icon:je.C})})}})})}),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)(wa,{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)(be.a,{icon:Ge.a})]})})})]})]})}}]),a}(i.a.Component),_a=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)}}}))(ka))),Ea=a(556),Aa=a(534),Ta=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:V(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)(Ea.a,{variant:"outlined",className:a.border,children:[Object(oe.jsxs)(_.a,{onClick:function(e){return n.push(V("repositories/fork",r.repository.id))},children:[Object(oe.jsx)(be.a,{icon:je.q}),"\xa0 ",i.formatMessage({id:"label.fork"})]}),Object(oe.jsx)(_.a,{disabled:!r.repository.forkCount,onClick:function(e){return n.push(V("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)(Aa.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)(bt,{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)(ve,{doc:"/common/clone_method.md"})]}),Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:ne.getHost(c)+V(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.j,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)(ve,{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.j,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)(be.a,{icon:je.h}),"\xa0 ",i.formatMessage({id:"label._N_commit"},{n:r.count.commit})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.d}),"\xa0 ",i.formatMessage({id:"label._N_branch"},{n:r.count.branch})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.F}),"\xa0 ",i.formatMessage({id:"label._N_tag"},{n:r.count.tag})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.o}),"\xa0 ",i.formatMessage({id:"label._N_byte"},{n:z(r.count.file)})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.x}),"\xa0 ",i.formatMessage({id:"label._N_mergeRequest"},{n:r.repository.mergeRequestCount.open})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.u}),"\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),Da=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{}}))(Ta))))),Ia=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)(Xt.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)(be.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)(Xt.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)(be.a,{icon:je.F,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)(Xt.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)(be.a,{icon:je.h,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),Fa=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{}}))(Ia)))),Pa=a(294),La=a.n(Pa),Ba=a(98),Ua=a.n(Ba),Ga=(a(225),a(226),a(227),a(228),a(229),a(230),a(231),a(232),a(233),a(234),a(235),a(236),a(237),a(238),a(239),a(240),a(241),a(242),a(243),a(244),a(245),a(246),a(247),a(248),a(249),a(250),a(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(180)),Ha=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(Ga.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),qa=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)}}}))(Ha)))),za=a(484),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:"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),Wa=Va,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={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)(Ea.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.j,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),Ja=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"}}}))(Ka)),$a=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)(za.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)(Wa,{to:n+"/"+d.hash.substr(0,8)+(l||""),children:d.commitContent?d.commitContent:""}),c&&Object(oe.jsx)(Wa,{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)(ve,{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)(Ja,{hash:d.hash.substr(0,8)})]},d.hash)}}]),a}(r.Component),Za=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{}}))($a))))),Ya=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=Ua.a.highlight(p.join("\n"),Ua.a.languages[l]||Ua.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)(Za,{data:o[0].commit,linkPathBase:V(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)(qa,{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)(qa,{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)(qa,{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),Xa=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)}}}))(Ya)))),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)).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.o}},{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)(be.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.j,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.o,onClick:function(){return e.setState({mdSourceShow:!1})}}):Object(oe.jsx)(Ie,{label:"message.displaySource",icon:je.g,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)(Ea.a,{size:"small","aria-label":"small outlined button group",children:[Object(oe.jsx)(_.a,{onClick:function(e){return c.push(V(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(V(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)(Xa,{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)(Xa,{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)(La.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),er=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{}}))(Qa)))),tr=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.j}),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.j}),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),ar=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{}}))(tr))),rr=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)(be.a,{icon:"blob"===e.type?je.o:je.S})," \xa0\xa0",Object(oe.jsx)(o.b,{className:t.props.classes.linkObjectName,to:V(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:V(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(A.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:V.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)}}}))(rr)))),nr=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),sr=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{}}))(nr))),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={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(A.a)(a.list),Object(A.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(A.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=V(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)(Fa,{currentRevision:i.params.rev&&decodeURIComponent(i.params.rev)||Y(r),revisionList:{branches:r.branches,tags:r.tags},onChange:function(e){return n.push(V(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)(be.a,{icon:je.C})})}})})]})}),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)(sr,{title:a,children:e.list.map((function(e,t){return Object(oe.jsx)(Za,{showBorder:!0,path:i.params.path,data:e,linkPathBase:V(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)(be.a,{icon:Ge.a})]})})}),0===this.state.commitList.length&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Ft,{imageName:"commits-empty.png",notice:o.formatMessage({id:"message.noCommitRecord"}),pending:this.state.pending})})]})}}]),a}(i.a.Component),cr=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)}}}))(or))))),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={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)(bt,{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)(be.a,{icon:je.C})})}}),"\xa0",Object(oe.jsx)(Ie,{label:"label.sort",onClick:n,className:[d.icon,i?"":d.transform].join(" "),icon:je.E}),l.branches&&l.branches.length>0&&Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:d.button,disabled:a,onClick:function(){return p.push(V(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),pr=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{}}))(lr)))),dr=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=V(a.repository.group.name,a.repository.name,"files",encodeURIComponent(e.name),"");if(e.nameA=Object(oe.jsx)(Wa,{to:i,onClick:function(){return r.push(i)},children:e.name}),e.commit.sha){var n=V(a.repository.group.name,a.repository.name,"commit",e.commit.sha.substring(0,8));e.shaA=Object(oe.jsx)(Wa,{to:n,onClick:function(){return r.push(n)},children:e.commit.sha.substring(0,8)}),e.logA=Object(oe.jsx)(Wa,{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)(sr,{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)(be.a,{className:p.icon,icon:"tag"===o?je.F: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)(be.a,{className:p.icon2,icon:je.B}),"branch"===o&&t.name===g&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Je,{color:"secondary",text:d.formatMessage({id:"label.default"})})," \xa0\xa0\xa0"]}),"branch"===o&&t.name!==g&&!!t.isMerge&&Object(oe.jsx)(Je,{color:"success",icon:je.O,text:d.formatMessage({id:"message.merged"})})]}),Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:p.oneline,children:[Object(oe.jsx)(be.a,{className:p.icon,icon:je.h}),"\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.ab}),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)(be.a,{className:p.icon,icon:je.G}),"\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.G})]})]},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)(be.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)(Ft,{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(V(c.repository.group.name,c.repository.name,"tags","new"))},children:d.formatMessage({id:"label.newTag"})}):Object(oe.jsx)(ve,{type:"button",doc:"/git/create_branch.md",title:d.formatMessage({id:"label.newBranch"})})})})})}}]),a}(i.a.Component),ur=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{}}))(dr)))),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)).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)(pr,{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)(ur,{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),hr=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)}}}))(mr)))),gr=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)(pr,{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)(ur,{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),fr=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)}}}))(gr)))),br=a(121),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={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(br.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(f){d.e(f)}finally{d.f()}var m,h=Object(br.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(f){h.e(f)}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(V(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)(be.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)(be.a,{className:i.icon,icon:je.F}),"\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(V(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),Or=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)}}}))(jr)))),vr=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(br.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(br.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(V(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)(be.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)(be.a,{className:i.icon,icon:je.F}),"\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(V(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),yr=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)}}}))(vr)))),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)).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:V(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=V(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)(be.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=V(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)(be.a,{icon:je.F}),"\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),Sr=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)}}}))(xr))))),Cr=a(581),Nr=a(558),Rr=a(559),Mr=a(153),wr=a.n(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={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=Ua.a.highlight(e.join("\n"),Ua.a.languages[t]||Ua.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;f--)h.unshift([g,f,""]),g--;return r.splice.apply(r,[t+1,0].concat(h)),this.setState({diffContent:r}),!0}if("tail"===e){var b=this.state.diffContent[t-1],j=this.state.diffContent[t+1];if(!i&&b[0]+21>this.state.fullfileContent.length){for(var O=[],v=b[1]+1,y=b[0]+1;y<=this.state.fullfileContent.length;y++)O.push([y,v,""]),v++;return r.splice.apply(r,[t,1].concat(O)),this.setState({diffContent:r}),!0}if(i&&j&&j[1]&&b[1]+21>=j[1]){for(var x=[],S=b[0]+1,C=b[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:O,icon:je.j,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)(fe.a,{title:x,disableFocusListener:!0,placement:"top",children:Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleFullFile(t)},children:Object(oe.jsx)(be.a,{icon:y?Ge.c:je.n})})}),i===n&&m&&Object(oe.jsx)(fe.a,{title:v+"@"+m,disableFocusListener:!0,placement:"top",children:Object(oe.jsx)(_.a,{onClick:function(t){return e.viewFileDetail(C)},children:Object(oe.jsx)(be.a,{icon:je.o})})})]}),N===f&&i===n&&u&&m&&Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(fe.a,{title:v+"@"+u,disableFocusListener:!0,placement:"top",children:Object(oe.jsxs)(_.a,{className:s.viewOldFileBtn,onClick:function(t){return e.viewFileDetail(S)},children:[Object(oe.jsx)(be.a,{icon:je.o}),"\xa0\xa0",o.formatMessage({id:"label.browserUnchangedFIle"})," \xa0","@"+u]})}),Object(oe.jsx)(fe.a,{title:v+"@"+m,disableFocusListener:!0,placement:"top",children:Object(oe.jsxs)(_.a,{className:s.viewFileBtn,onClick:function(t){return e.viewFileDetail(C)},children:[Object(oe.jsx)(be.a,{icon:je.o}),"\xa0\xa0",o.formatMessage({id:"label.browserFile"}),"\xa0","@"+m]})})]})]})}),Object(oe.jsx)(Rr.a,{className:s.panelDetail,children:Object(oe.jsx)(Ar,{fileDiffInfo:a,repository:i,renderSideBySide:r,layoutUpdateTimeStamp:l,showFullFile:y})})]})}}]),a}(r.Component),Dr=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)}}}))(Tr)))),Ir=0,Fr=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(A.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)(be.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)(be.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))*Ir+"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)(be.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*Ir,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),Pr=Object(R.b)(Object(C.a)((function(e){return Ir=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{}}))(Fr)))),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)).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,f=h.intl,b=h.childHash,j=h.parentHash,O=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:[f.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:[f.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)(Ea.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?f.formatMessage({id:"label.closeFileTree"}):f.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)(Pr,{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)(Dr,{modifiedRepositoryKey:O,fileDiffInfo:e,renderSideBySide:o,hash:b,parentHash:j,layoutUpdateTimeStamp:u,fileTreeIsOpen:l},t)},t)}))}),!m&&(c||!s||!s.length)&&Object(oe.jsx)(k.a,{container:!0,children:Object(oe.jsx)(Ft,{imageName:"branches-empty.png",title:f.formatMessage({id:"message._S_listEmpty"},{s:f.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:f.formatMessage({id:"message.diffFileToMany"})})})]})]})]})}}]),a}(r.Component),Br=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)}}}))(Lr))))),Ur=Object(C.a)((function(e){return{root:{width:e.spacing(3),height:e.spacing(3)}}}))(Le.a),Gr=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)(Ur,{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)(be.a,{icon:je.K,className:[p.icon,c?p.transform:""].join(" ")})]}),a.sha&&Object(oe.jsx)(k.a,{className:p.ml16,children:Object(oe.jsx)(Ja,{hash:a.sha.substr(0,8)})}),Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:p.ml16,onClick:function(){return u.push(V(s,n,"files",h.params.hash,""))},children:m.formatMessage({id:"label.browserFile"})})]})]}),Object(oe.jsx)(Sr,{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)(Br,{id:"FileDiffDetail",parentHash:o,childHash:h.params.hash,rKey:d})})})]})})})})}}]),a}(i.a.Component),Hr=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)}}}))(Gr))))),qr=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)(be.a,{icon:e.isReview?je.O:je.L,className:[r.isReview,e.isReview?r.reviewed:""].join(" ")})]},a)}))})}}]),a}(i.a.Component),zr=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)(qr)),Vr=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=V(n.group.name,n.name,"commits",encodeURIComponent(t.targetBranch));t.targetLink=Object(oe.jsx)(Wa,{to:s,onClick:function(e){return r.push(s)},children:t.targetBranch});var o=V(n.group.name,n.name,"mergerequests",t.number);t.titleLink=Object(oe.jsx)(Wa,{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=V(l.group.name,l.name,"commits",encodeURIComponent(t.sourceBranch));t.sourceLink=Object(oe.jsx)(Wa,{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)(Je,{color:"success",background:!1,icon:je.i,text:i.formatMessage({id:"message.opened"})}),a.status===n.merged&&Object(oe.jsx)(Je,{color:"info",background:!1,icon:je.y,text:i.formatMessage({id:"message.merged"})}),a.status===n.closed&&Object(oe.jsx)(Je,{color:"warning",background:!1,icon:je.p,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)(be.a,{icon:je.x}),"\xa0",a.sourceLink,"\xa0",Object(oe.jsx)(be.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)(zr,{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),Wr=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{}}))(Vr)))),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,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,ca.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(A.a)(this.state.mrList?this.state.mrList:[]),Object(A.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(V(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,f=o.error,b=o.repositoryName,j=o.groupName,O=o.originRepositoryBranches,v=o.originRepositoryInfo,y=o.targetRepositoryInfo,x=[];return!b&&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(V("repositories/new"))},children:[b&&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&&!b&&!!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)(be.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),!a.branches&&O&&O.map((function(e,t){return Object(oe.jsxs)(lt.a,{value:e.name,children:[Object(oe.jsx)(be.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)}))]})})]}),(v||a.repository)&&p&&u&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.commit,children:Object(oe.jsx)(Za,{showBorder:Boolean(!1),data:p,current:u,currentRefType:"branch",currentGroup:v.group.name||a.repository.group.name,currentRepositoryConfig:a.repository?a:v,currentRepository:a.repository?a.repository.name:v.name,linkPathBase:V(v.group.name||a.repository.group.name,a.repository?a.repository.name:v.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)(be.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)(Za,{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:V(y.group.name||a.repository.group.name,a.repository?a.repository.name:y.name,"commit")})})]})}),f&&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:f?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||f,onClick:function(){return e.GoMergeRequestDetail()},children:n.formatMessage({id:"label.compareBranch"})})})]})})]})}}]),a}(i.a.Component),Zr=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)}}}))($r)))),Yr=a(574),Xr=a(560),Qr=a(533),ei=a(571),ti=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,f=t.latestVersion,b=this.state,j=b.renderSideBySide,O=b.fileTreeIsOpen,v=b.fileTreeGridNumber,y=b.diffViwerLayoutUpdateTimestamp,x=b.startHash,S=b.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)(Qr.a,{className:a.margin,children:Object(oe.jsx)(ei.a,{variant:"outlined",value:x||f,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)(Qr.a,{className:a.margin,children:Object(oe.jsx)(ei.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)(Ea.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:O?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:O?v:12,className:O?a.fileTreeSticky:a.fileTreeHide,children:Object(oe.jsx)(Pr,{changeFiles:n,treeView:Boolean(!1),fileClick:function(t){return e.jumpToAnchor(t)}})}),Object(oe.jsx)(k.a,{item:!0,xs:O?12-v: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)(Dr,{modifiedRepositoryKey:g,fileDiffInfo:e,renderSideBySide:j,layoutUpdateTimeStamp:y,fileTreeIsOpen:O},t)},t)})):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:a.loading,children:Object(oe.jsx)(he.a,{})})})})]})]})}}]),a}(i.a.Component),ai=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)}}}))(ti)))),ri=Object(C.a)((function(e){return{root:{width:e.spacing(3),height:e.spacing(3)}}}))(Le.a),ii=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(V(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,f=o.pending,b=o.changedFiles,j=o.fileDiff,O=o.effectFileCount,v=o.addLine,y=o.deleteLine,x=o.commits,S=o.activities,C=o.showCommitInput,N=o.mergeMessage,R=o.usingSquash,M=o.hasMergeConflict,A=o.versionList,T=o.latestVersion,I=o.baseVersion,F=o.baseVersionList,P=o.submitMergeRequest,B=o.reviewers,G=o.reviewersMenu;return Object(oe.jsxs)(k.a,{container:!0,children:[!this.state.mid&&(l||P)&&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(V(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)(ta,{item:p.members.filter(U.id(t))[0]},a)}),Object(oe.jsx)(k.a,{children:Object(oe.jsx)(Je,{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)(be.a,{icon:je.x}),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)(ri,{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)(ri,{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),ni=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"})}}}))(ii))))),si=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){return Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{path:"/userInfo",component:me}),Object(oe.jsx)(h.a,{path:"/settings",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/settings/profile",component:Ve}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/sshkey",component:Ee}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/notification",component:Xe}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/email",component:Pe}),Object(oe.jsx)(h.a,{path:"/settings",component:Ve})]})}),Object(oe.jsx)(h.a,{path:"/admin",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/admin/users",component:Ot}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/groups",component:Mt}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/repositories",component:kt}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/settings",component:Et}),Object(oe.jsx)(h.a,{path:"/admin",component: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:Jr}),Object(oe.jsx)(h.a,{exact:!0,path:"/mergerequests/new",component:Zr})]})}),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:Wt}),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:ba}),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:ya}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/activities",component:_a}),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:Jr}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/mergerequests/new",component:Zr}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings",component:Oa}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings/general",component:Oa}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings/advanced",component:Ca}),Object(oe.jsx)(h.a,{path:"/groups",component:ga})]})}),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:ir}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/files/:rev([\\w\\-\\.%]+)",component:ir}),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:ir}),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:Hr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits",component:cr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits/:rev([\\w\\-\\.%]+)",component:cr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits/:rev([\\w\\-\\.%]+):path(/.*)",component:cr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests",component:Jr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/new",component:Zr}),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:ni}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/:mid(\\d+)",component:ni}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/branches",component:hr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/branches/new",component:yr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/tags",component:fr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/tags/new",component:Or}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/members",component:oa}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/activities",component:_a}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings",component:Jt}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/general",component:Jt}),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/advanced",component:da}),Object(oe.jsx)(h.a,{component:ir})]})})]})}}]),a}(i.a.Component),oi=Object(h.f)(si),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={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}))})),ca.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)&&ca.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)(oi,{})})]})})}}]),a}(i.a.Component),li=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)}}}))(ci))),pi=a(562),di=a(563),ui=a(561),mi=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)(be.a,{icon:je.K,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)(Qt.a,{}),Object(oe.jsxs)(lt.a,{onClick:function(t){e.goView("/settings/profile")},children:[Object(oe.jsx)(ui.a,{children:Object(oe.jsx)(be.a,{icon:je.v})}),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)(ui.a,{children:Object(oe.jsx)(be.a,{icon:je.k})}),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)(ui.a,{children:Object(oe.jsx)(be.a,{icon:je.s})}),Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.SSHKey_pl"})})]}),Object(oe.jsx)(Qt.a,{}),Object(oe.jsxs)(lt.a,{onClick:this.logout,children:[Object(oe.jsx)(ui.a,{children:Object(oe.jsx)(be.a,{icon:je.m})}),Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.logout"})})]})]})]})}}]),a}(r.Component),hi=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)}}}))(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={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.t,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),fi=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)}}}))(gi)))),bi=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)(ui.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)(be.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)(ui.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)(be.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)(be.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),ji=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{}}))(bi)))),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={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)(pi.a,{position:"fixed",color:"default",className:a.appBar,elevation:i?2:0,children:Object(oe.jsx)(di.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)(ji,{type:"repository"})}),Object(oe.jsx)(k.a,{item:!0,className:a.optionItem,children:Object(oe.jsx)(ji,{type:"group"})}),Object(oe.jsx)(Ie,{label:"label.mergeRequest",onClick:function(){n.push("/mergerequests")},icon:je.x,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.H,className:a.optionItem}),Object(oe.jsx)(Qt.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)(fi,{className:a.optionItem}),Object(oe.jsx)(Ie,{label:"label.help",onClick:function(t){return e.setState({helpMenuAnchor:t.currentTarget})},icon:je.r,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/","_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/","_blank")},children:Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"label.feedback"})})}),Object(oe.jsx)(Qt.a,{}),Object(oe.jsx)(lt.a,{onClick:function(){e.setState({helpMenuAnchor:null}),window.open("https://github.com/","_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.z,className:a.optionItem}),Object(oe.jsx)(hi,{className:a.optionItem})]})]})})})}}]),a}(i.a.Component),vi=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"})}}}))((Na={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(){Na.watching&&(this.cancel&&this.cancel(),this.target=document.querySelector(Na.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>Na.threshold&&!this.state.scrollTrigger?this.setState({scrollTrigger:!0}):t<=Na.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)})(Oi))))),yi=a(576),xi=a(536),Si=a(557),Ci=a(295),Ni=a.n(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={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)(za.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)(ui.a,{children:Object(oe.jsx)(be.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)(Ni.a,{}):Object(oe.jsx)(wr.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)(Si.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)(xi.a,{component:"div",disablePadding:!0,children:Object(oe.jsx)(za.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],f=d.filter(U.id(u))[0];if(["repository","group"].includes(c)){var b=g&&g.icon||f&&f.icon,j=g&&g.name||f&&f.name;b?h.src=D.HOSTS.STATIC_AVATAR_PREFIX+b: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/"+f.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)(fe.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)(be.a,{icon:je.T,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)(xi.a,{className:a.list,component:"nav",children:m})]})}}]),a}(i.a.Component),Mi=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)(Ri))));var wi={makeDrawerConfig:function(){return[{path:"/settings/profile",name:"menu.profile",icon:je.W,activePattern:[/^\/settings$/i,/^\/settings\/profile/i]},{path:"/settings/email",name:"menu.mail",icon:je.P,activePattern:[/^\/settings\/email/i]},{path:"/settings/sshkey",name:"menu.SSHKey_pl",icon:je.U,activePattern:[/^\/settings\/sshkey/i]},{path:"/settings/notification",name:"menu.notification",icon:je.I,activePattern:[/^\/settings\/notification/i]}]},makeAdminDrawerConfig:function(){return[{path:"/admin/dashboard",name:"menu.dashboard",icon:je.V,activePattern:[/^\/admin(\/)?$/i,/^\/admin\/dashboard\/?.*$/i]},{path:"/admin/users",name:"menu.user_pl",icon:je.X,activePattern:[/^\/admin\/users\/?.*$/i]},{path:"/admin/groups",name:"menu.group_pl",icon:je.db,activePattern:[/^\/admin\/groups\/?.*$/i]},{path:"/admin/repositories",name:"menu.repository_pl",icon:je.cb,activePattern:[/^\/admin\/repositories\/?.*$/i]},{path:"/admin/settings",name:"menu.setting_pl",icon:je.eb,activePattern:[/^\/admin\/settings\/?.*$/i]}]},makeGroupDrawerConfig:function(e){return e&&e.group?[{path:["/groups",e.group.name,"repositories"].join("/"),name:"menu.repository_pl",icon:je.cb,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.Y,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/mergerequests\/?.*$/i]},{path:["/groups",e.group.name,"members"].join("/"),name:"menu.member_pl",icon:je.X,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/members(\/)?$/i]},{path:["/groups",e.group.name,"activities"].join("/"),name:"menu.activity_pl",icon:je.V,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/activities(\/)?/i]},{path:["/groups",e.group.name,"settings"].join("/"),name:"menu.setting_pl",icon:je.eb,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.eb,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.eb,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.R,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.N,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.Y,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.J,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.fb,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.X,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.V,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.eb,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.eb,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.eb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/branch(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings","advanced"].join("/"),name:"menu.advanced",icon:je.eb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/advanced(\/)?$/i]}]}]:[]}},ki=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)(be.a,{icon:je.w,className:i?"":r.transform})}),Object(oe.jsx)(yi.a,{open:!0,variant:"permanent",classes:{paper:r.drawerPaper},className:[r.container,i?r.containerExpanded:r.containerCollapsed].join(" "),children:Object(oe.jsx)(Mi,{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(wi.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(wi.makeAdminDrawerConfig(),"admin")}),Object(oe.jsx)(h.a,{path:"/groups/:groupName([A-Za-z0-9_]{5,})",children:this.drawer(wi.makeGroupDrawerConfig(t),"group")}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",children:this.drawer(wi.makeRepositoryDrawerConfig(a),"repository")})]})}}]),a}(i.a.Component),_i=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)(ki))),Ei=a(565),Ai=a(564),Ti=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)(Ai.a,{id:"alert-dialog-description",children:i})}),Object(oe.jsxs)(Ei.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),Di=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)}}}))(Ti))),Ii=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(A.a)(a.state.list),Object(A.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(V(e.url))}},{key:"notificationSetting",value:function(){this.props.notificationOpenStatusClose(),this.props.history.push(V("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)(yi.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.eb,className:i.icon,onClick:function(t){return e.notificationSetting()}}),Object(oe.jsx)(Ie,{label:"label.close",icon:je.f,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)(bt,{currentTab:l,onChange:function(t,a){return!o&&e.setState({category:a})},tabs:m,children:[Object(oe.jsx)(Ie,{label:"label.more",icon:je.ab,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.gb,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),Fi=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)(Ii)))),Pi=a(298),Li=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)(Pi.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),Bi=Object(l.b)((function(e,t){return{notificationBody:e.NotificationStates.notificationBody}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Li),Ui=Object(y.a)({__namespace__:"lang"},{chinese:"\u7b80\u4f53\u4e2d\u6587",english:"English"}),Gi=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"}),{},{__namespace__:"message"}),Hi=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"}),qi=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"}),{},{__namespace__:"message.activity"}),zi=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",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"}),Vi=Object(y.a)(Object(y.a)({},zi),{},{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",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",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"}),Wi=Object(y.a)(Object(y.a)({},Vi),{},{__namespace__:"phrase"}),Ki=Object(y.a)(Object(y.a)(Object(y.a)({},zi),Wi),{},{dashboard:"\u6982\u89c8",general:"\u5e38\u89c4",advanced:"\u9ad8\u7ea7",profile:"\u4e2a\u4eba\u4fe1\u606f",mail:"\u591a\u90ae\u7bb1"}),Ji=Object(y.a)(Object(y.a)({},Ki),{},{__namespace__:"menu"}),$i="",Zi=Object(y.a)(Object(y.a)(Object(y.a)({},Wi),zi),{},{retryAfter_N_seconds:"{n} \u79d2\u540e\u91cd\u8bd5",userAvatar:[Wi.user,Wi.avatar].join($i),userName:[Wi.user,Wi.name].join($i),getEmailCode:["\u83b7\u53d6",Wi.emailCode].join($i),getPhoneCode:["\u83b7\u53d6",Wi.phoneCode].join($i),mostSeen:"\u5e38\u89c1",loginCredential:[Wi.login,Wi.credential].join($i),CodeFeverPassword:[Wi.CodeFever,Wi.password].join($i),wechatBind:[Wi.wechat,Wi.bind].join($i),unbind_P:"\u89e3\u9664{p}\u7ed1\u5b9a",repositoryID:[zi.repository,Wi.ID].join($i),repositoryName:[zi.repository,Wi.name].join($i),repositoryDescription:[zi.repository,Wi.description].join($i),repositoryURL:[zi.repository,Wi.url].join($i),repositorySlug:[zi.repository,Wi.slug].join($i),repositoryMember:[zi.repository,zi.member].join($i),newRepository:[Wi.new,zi.repository].join($i),forkRepository:[zi.fork,zi.repository].join($i),unknownRepository:[Wi.unknown,zi.repository].join($i),allRepository:[Wi.all,zi.repository].join($i),deleteRepository:[Wi.delete,zi.repository].join($i),groupID:[zi.group,Wi.ID].join($i),groupName:[zi.group,Wi.name].join($i),groupDescription:[zi.group,Wi.description].join($i),groupURL:[zi.group,Wi.url].join($i),groupSlug:[zi.repository,Wi.slug].join($i),groupMember:[zi.group,zi.member].join($i),newGroup:[Wi.new,zi.group].join($i),unknownGroup:[Wi.unknown,zi.group].join($i),deleteGroup:[Wi.delete,zi.group].join($i),inviteMember:[Wi.invite,zi.member].join($i),removeMember:[Wi.remove,zi.member].join($i),forkFrom_S:[zi.fork,"\u81ea: {s}"].join($i),updateFrom_S1_To_S2:["\u4ece {s1} \u66f4\u65b0\u4e3a {s2}"].join($i),repositoryAvatar:[zi.repository,Wi.icon].join($i),groupAvatar:[zi.group,Wi.icon].join($i),basicInfo:"\u57fa\u672c\u4fe1\u606f",newPasswordConfirm:[Wi.confirm,Wi.newPassword].join($i),security:"\u5b89\u5168\u6027",setupNewMFADevice:"\u8bbe\u7f6e MFA \u8bbe\u5907",changeMFADevice:"\u66f4\u6362 MFA \u8bbe\u5907",removeMFADevice:"\u79fb\u9664 MFA \u8bbe\u5907",commitTime:[Wi.commit,Wi.time].join($i),copyPath:[Wi.copy,Wi.path].join($i),copyHash:[Wi.copy,zi.hash].join($i),copyCode:[Wi.copy,zi.code].join($i),lastCommit:[Wi.last,zi.commit].join($i),lastUpdate:[Wi.last,Wi.update].join($i),updateCreator:[Wi.update,Wi.creator].join($i),updateRepositoryURL:[Wi.update,zi.repository,Wi.url].join($i),updateGroupURL:[Wi.update,zi.group,Wi.url].join($i),createOrigin:[Wi.create,Wi.origin].join($i),choseCreateOrigin:[Wi.chose,Wi.create,Wi.origin].join($i),tagDescription:[zi.tag,Wi.description].join($i),tagName:[zi.tag,Wi.name].join($i),branchName:[zi.branch,Wi.name].join($i),defaultBranch:[Wi.default,zi.branch].join($i),protectedBranch:[Wi.protected,zi.branch].join($i),branchRule:[Wi.branch,Wi.rule].join($i),allowPush:[Wi.allow,Wi.push].join($i),allowMerge:[Wi.allow,Wi.merge].join($i),noData:["\u6ca1\u6709",zi.data].join($i),newBranch:[Wi.new,zi.branch].join($i),newTag:[Wi.new,zi.tag].join($i),deleteBranch:[Wi.delete,zi.branch].join($i),deleteTag:[Wi.delete,zi.tag].join($i),updateTime:[Wi.update,zi.time].join($i),updatedIn:"\u66f4\u65b0\u4e8e",editIn:"\u7f16\u8f91\u4e8e",expandFullFile:[Wi.expand,Wi.full,Wi.file].join($i),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",Wi.create,zi.repository].join($i),commitActivity:[zi.commit,Wi.activity].join($i),mergeRequestActivity:[zi.mergeRequest,Wi.activity].join($i),memberActivity:[zi.member,Wi.activity].join($i),addSSHKey:[Wi.add,zi.SSHKey].join($i),emailManage:["\u90ae\u7bb1",Wi.manage].join($i),memberManage:[zi.member,Wi.manage].join($i),primaryEmail:"\u4e3b\u90ae\u7bb1",contactEmail:"\u5173\u8054\u90ae\u7bb1\u5217\u8868",SSHKeyManage:[zi.SSHKey_pl," ",Wi.manage].join($i),notificationCenter:"\u901a\u77e5\u4e2d\u5fc3",notificationReceiveStatus:"\u63a5\u6536\u901a\u77e5\u72b6\u6001",unread:"\u672a\u8bfb",fileModification:[zi.file,Wi.modification].join($i),fileModificationList:[Wi.modification,zi.file,Wi.list].join($i),lineAdd:[zi.line,Wi.add].join($i),lineDelete:[zi.line,Wi.delete].join($i),browserFile:[Wi.browser,Wi.file].join($i),browserUnchangedFIle:[Wi.browser,Wi.modification,Wi.before,Wi.file].join($i),commitHash:[zi.commit,zi.hash].join($i),allFiles:[Wi.all,Wi.file].join($i),openFileTree:[Wi.open,zi.fileTree].join($i),closeFileTree:[Wi.close,zi.fileTree].join($i),requestMerge:[Wi.request,Wi.merge].join($i),createMergeRequest:[Wi.create,zi.mergeRequest].join($i),closeMergeRequest:[Wi.close,zi.mergeRequest].join($i),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($i),openMergeRequest:[Wi.open,zi.mergeRequest].join($i),modificationBranch:[Wi.modification,zi.branch].join($i),sourceBranch:[Wi.source,zi.branch].join($i),targetBranch:[Wi.target,zi.branch].join($i),repositoryAdvancedSetting:"\u4ed3\u5e93\u9ad8\u7ea7\u8bbe\u7f6e",branchSetting:"\u5206\u652f\u8bbe\u7f6e",groupAdvancedSetting:"\u4ed3\u5e93\u7ec4\u9ad8\u7ea7\u8bbe\u7f6e",memberLimitation:[zi.member,zi.limitation].join($i),modificationLimitation:[Wi.modification,zi.limitation].join($i),roleID_1:zi.guest,roleID_2:zi.reporter,roleID_3:zi.developer,roleID_4:zi.maintianer,roleID_5:zi.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",_N_repository:"{n} {n, plural, =0 {"+zi.repository+"}\n=1 {"+zi.repository+"}\nother {"+zi.repository_pl+"}}",_N_commit:"{n} {n, plural, =0 {"+zi.commit+"}\n=1 {"+zi.commit+"}\nother {"+zi.commit_pl+"}}",_N_branch:"{n} {n, plural, =0 {"+zi.branch+"}\n=1 {"+zi.branch+"}\nother {"+zi.branch_pl+"}}",_N_tag:"{n} {n, plural, =0 {"+zi.tag+"}\n=1 {"+zi.tag+"}\nother {"+zi.tag_pl+"}}",_N_byte:"{n} {n, plural, =0 {Byte}\n=1 {Byte}\nother {Bytes}}",_N_mergeRequest:"{n} {n, plural, =0 {"+zi.mergeRequest+"}\n=1 {"+zi.mergeRequest+"}\nother {"+zi.mergeRequest_pl+"}}",_N_member:"{n} {n, plural, =0 {"+zi.member+"}\n=1 {"+zi.member+"}\nother {"+zi.member_pl+"}}"}),Yi=Object(y.a)(Object(y.a)({},Zi),{},{__namespace__:"label"}),Xi=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"}),Qi=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"}),{},{__namespace__:"message"}),en=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"}),tn=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}"}),{},{__namespace__:"message.activity"}),an=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",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"}),rn=Object(y.a)(Object(y.a)({},an),{},{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",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",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"}),nn=Object(y.a)(Object(y.a)({},rn),{},{__namespace__:"phrase"}),sn=Object(y.a)(Object(y.a)(Object(y.a)({},an),nn),{},{dashboard:"Dashboard",general:"General",advanced:"Advanced",profile:"Profile",mail:"E-mails"}),on=Object(y.a)(Object(y.a)({},sn),{},{__namespace__:"menu"}),cn=" ",ln=Object(y.a)(Object(y.a)(Object(y.a)({},nn),an),{},{retryAfter_N_seconds:"Retry After {n} Seconds",userAvatar:[nn.user,nn.avatar].join(cn),userName:[nn.user,nn.name].join(cn),getEmailCode:["Get",nn.emailCode].join(cn),getPhoneCode:["Get",nn.phoneCode].join(cn),mostSeen:"Most Seen",loginCredential:[nn.login,nn.credential].join(cn),CodeFeverPassword:[nn.CodeFever,nn.password].join(cn),wechatBind:[nn.wechat,nn.bind].join(cn),unbind_P:"Unbind {p}",repositoryID:[an.repository,nn.ID].join(cn),repositoryName:[an.repository,nn.name].join(cn),repositoryDescription:[an.repository,nn.description].join(cn),repositoryURL:[an.repository,nn.url].join(cn),repositorySlug:[an.repository,nn.slug].join(cn),repositoryMember:[an.repository,an.member].join(cn),newRepository:[nn.new,an.repository].join(cn),forkRepository:[an.fork,an.repository].join(cn),unknownRepository:[nn.unknown,an.repository].join(cn),allRepository:[nn.all,an.repository].join(cn),deleteRepository:[nn.delete,an.repository].join(cn),groupID:[an.group,nn.ID].join(cn),groupName:[an.group,nn.name].join(cn),groupDescription:[an.group,nn.description].join(cn),groupURL:[an.group,nn.url].join(cn),groupSlug:[an.repository,nn.slug].join(cn),groupMember:[an.group,an.member].join(cn),newGroup:[nn.new,an.group].join(cn),unknownGroup:[nn.unknown,an.group].join(cn),deleteGroup:[nn.delete,an.group].join(cn),inviteMember:[nn.invite,an.member].join(cn),removeMember:[nn.remove,an.member].join(cn),forkFrom_S:[an.fork,"From: {s}"].join(cn),updateFrom_S1_To_S2:["Update From {s1} To {s2}"].join(cn),repositoryAvatar:[an.repository,nn.icon].join(cn),groupAvatar:[an.group,nn.icon].join(cn),basicInfo:"Basic Info",newPasswordConfirm:[nn.confirm,nn.newPassword].join(cn),security:"Security",setupNewMFADevice:"Setup New MFA Device",changeMFADevice:"Change MFA Device",removeMFADevice:"Remove MFA Device",commitTime:[nn.commit,nn.time].join(cn),copyPath:[nn.copy,nn.path].join(cn),copyHash:[nn.copy,an.hash].join(cn),copyCode:[nn.copy,an.code].join(cn),lastCommit:[nn.last,an.commit].join(cn),lastUpdate:[nn.last,nn.update].join(cn),updateCreator:[nn.update,nn.creator].join(cn),updateRepositoryURL:[nn.update,an.repository,nn.url].join(cn),updateGroupURL:[nn.update,an.group,nn.url].join(cn),createOrigin:[nn.create,nn.origin].join(cn),choseCreateOrigin:[nn.chose,nn.create,nn.origin].join(cn),tagDescription:[an.tag,nn.description].join(cn),tagName:[an.tag,nn.name].join(cn),branchName:[an.branch,nn.name].join(cn),defaultBranch:[nn.default,an.branch].join(cn),protectedBranch:[nn.protected,an.branch].join(cn),branchRule:[nn.branch,nn.rule].join(cn),allowPush:[nn.allow,nn.push].join(cn),allowMerge:[nn.allow,nn.merge].join(cn),noData:["No",an.data].join(cn),newBranch:[nn.new,an.branch].join(cn),newTag:[nn.new,an.tag].join(cn),deleteBranch:[nn.delete,an.branch].join(cn),deleteTag:[nn.delete,an.tag].join(cn),updateTime:[nn.update,an.time].join(cn),updatedIn:"Updated At",editIn:"Edited At",expandFullFile:[nn.expand,nn.full,nn.file].join(cn),showDiffOnly:"Show Diff",codeDiff:"Diff",requestCreated:"Created At",requestClosed:"Closed At",requestMerged:"Merged At",createRepository:["Please",nn.create,an.repository].join(cn),commitActivity:[an.commit,nn.activity].join(cn),mergeRequestActivity:[an.mergeRequest,nn.activity].join(cn),memberActivity:[an.member,nn.activity].join(cn),addSSHKey:[nn.add,an.SSHKey].join(cn),emailManage:[nn.email,nn.manage].join(cn),memberManage:[an.member,nn.manage].join(cn),primaryEmail:"Primary E-mail",contactEmail:"List Of Associated Mailboxes",SSHKeyManage:[an.SSHKey_pl,nn.manage].join(cn),notificationCenter:"Notification Center",notificationReceiveStatus:"Receive Notification Status",unread:"Unread",fileModification:[an.file,nn.modification].join(cn),fileModificationList:[nn.modification,an.file,nn.list].join(cn),lineAdd:[an.line,nn.add].join(cn),lineDelete:[an.line,nn.delete].join(cn),browserFile:[nn.browser,nn.file].join(cn),browserUnchangedFIle:[nn.browser,nn.modification,nn.before,nn.file].join(cn),commitHash:[an.commit,an.hash].join(cn),allFiles:[nn.all,nn.file].join(cn),openFileTree:[nn.open,an.fileTree].join(cn),closeFileTree:[nn.close,an.fileTree].join(cn),requestMerge:[nn.request,nn.merge].join(cn),createMergeRequest:[nn.create,an.mergeRequest].join(cn),closeMergeRequest:[nn.close,an.mergeRequest].join(cn),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:[nn.open,an.mergeRequest].join(cn),modificationBranch:[nn.modification,an.branch].join(cn),sourceBranch:[nn.source,an.branch].join(cn),targetBranch:[nn.target,an.branch].join(cn),repositoryAdvancedSetting:"Repository Advanced Settings",branchSetting:"Branch Settings",groupAdvancedSetting:"Group Advanced Settings",memberLimitation:[an.member,an.limitation].join(cn),modificationLimitation:[nn.modification,an.limitation].join(cn),roleID_1:an.guest,roleID_2:an.reporter,roleID_3:an.developer,roleID_4:an.maintianer,roleID_5:an.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",_N_repository:"{n} {n, plural, =0 {"+an.repository+"}\n=1 {"+an.repository+"}\nother {"+an.repository_pl+"}}",_N_commit:"{n} {n, plural, =0 {"+an.commit+"}\n=1 {"+an.commit+"}\nother {"+an.commit_pl+"}}",_N_branch:"{n} {n, plural, =0 {"+an.branch+"}\n=1 {"+an.branch+"}\nother {"+an.branch_pl+"}}",_N_tag:"{n} {n, plural, =0 {"+an.tag+"}\n=1 {"+an.tag+"}\nother {"+an.tag_pl+"}}",_N_byte:"{n} {n, plural, =0 {Byte}\n=1 {Byte}\nother {Bytes}}",_N_mergeRequest:"{n} {n, plural, =0 {"+an.mergeRequest+"}\n=1 {"+an.mergeRequest+"}\nother {"+an.mergeRequest_pl+"}}",_N_member:"{n} {n, plural, =0 {"+an.member+"}\n=1 {"+an.member+"}\nother {"+an.member_pl+"}}"}),pn=Object(y.a)(Object(y.a)({},ln),{},{__namespace__:"label"}),dn=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 un(e){switch(e){case"zh-cn":return W(Ui,Gi,qi,Hi,zi,Wi,Ji,Yi,Xi);case"en-us":return W(Ui,Qi,tn,en,an,nn,on,pn,dn)}}var mn=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(f.a)({}),a=Object(f.a)(S(t));return Object(oe.jsx)(b.a,{theme:a,children:Object(oe.jsx)(O.a,{utils:j.a,locale:v.a,children:Object(oe.jsx)(g.a,{locale:e,messages:un(e),children:Object(oe.jsxs)("div",{className:"app-root",children:[Object(oe.jsx)(_i,{}),Object(oe.jsxs)("div",{className:"app-content",ref:this.appContent,children:[Object(oe.jsx)(vi,{}),Object(oe.jsx)(li,{}),Object(oe.jsx)(Fi,{}),Object(oe.jsx)(Bi,{}),Object(oe.jsx)(Di,{})]})]})})})})}}]),a}(i.a.Component),hn=Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}))(mn),gn=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:hn}),Object(oe.jsx)(h.a,{exact:!0,path:"/userInfo",component:hn}),Object(oe.jsx)(h.a,{exact:!0,path:"/createApp",component:hn}),Object(oe.jsx)(h.a,{path:"/groups/:groupName([A-Za-z0-9_]{5,})",component:hn}),Object(oe.jsx)(h.a,{path:"/groups",component:hn}),Object(oe.jsx)(h.a,{path:"/repositories",component:hn}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",component:hn}),Object(oe.jsx)(h.a,{path:"/mergerequests",component:hn}),Object(oe.jsx)(h.a,{path:"/settings",component:hn}),Object(oe.jsx)(h.a,{path:"/admin",component:hn})]})}}]),a}(i.a.Component),fn=Object(h.f)(gn);var bn=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 jn=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 On=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(A.a)(e.confirmation.queueList)})})},vn=Object(c.a)({DataStore:bn,DrawerStates:jn,NotificationStates:On}),yn=Object(c.b)(vn);s.a.render(Object(oe.jsx)(l.a,{store:yn,children:Object(oe.jsx)(o.a,{basename:"/",children:Object(oe.jsx)(fn,{})})}),document.getElementById("root"))}})); -//# sourceMappingURL=main.04c34ef2.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 J(t.role,e)}},withPermissions:function(e){return function(t){return e.some((function(e){return J(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 V(){return"/"+[].slice.call(arguments).join("/")}function W(){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(542),ge=a(575),fe=a(577),be=a(15),je=a(3),Oe=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)(be.a,{icon:je.r}),"\xa0\xa0",r||n.formatMessage({id:"label.learnMore"})]}):"icon"===i?Object(oe.jsx)(fe.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)(be.a,{icon:je.r})})})}):Object(oe.jsx)(fe.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)(be.a,{icon:je.r})]})})})}}]),a}(i.a.Component),ve=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{}}))(Oe)))),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)(be.a,{icon:je.G,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(537),Ce=a(541),Ne=a(540),Re=a(538),Me=a(539),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=K(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)(ve,{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(A.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))),Ae=a(5),Te=["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(Ae.a)(e,Te),c=Object(oe.jsxs)(_.a,Object(y.a)(Object(y.a)({},o),{},{className:[s.button,a].join(" "),children:[Object(oe.jsx)(be.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)(fe.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)),Fe=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!1,primaryEmail:e.currentUserInfo.id?e.currentUserInfo.email:"",emails:e.currentUserInfo.id?e.currentUserInfo.emails:null,email:"",error:{},validationEmail:null,code:"",codeDisabled:!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.l}),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.G})]})]),!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.f,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.f,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(A.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(V("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)(ve,{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),Pe=Object(R.b)(Object(C.a)((function(e){return{loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"},header:{lineHeight:e.spacing(5)+"px",marginBottom:e.spacing(4),borderBottom:"1px solid "+e.palette.border,fontSize:"18px"},title:{lineHeight:e.spacing(3)+"px",paddingBottom:e.spacing(2)},content:{paddingTop:e.spacing(3),paddingBottom:e.spacing(5),borderBottom:"1px solid "+e.palette.border,marginBottom:e.spacing(3)},create:{marginTop:e.spacing(1)},size:{fontSize:"12px"},btn:{textDecoration:"none !important",marginLeft:e.spacing(3)},icon:{color:e.palette.text.light},disabled:{opacity:.5,cursor:"not-allowed"},ok:{"& svg":{color:e.palette.success.main+" !important"}},cancel:{marginLeft:e.spacing(3),"& svg":{width:"14px !important",height:"14px !important",padding:"2px",color:e.palette.error.main+" !important"}},table:{marginTop:e.spacing(3),"& tbody tr":{"&:hover":{background:e.palette.background.light+" !important"}},"& td":{height:e.spacing(6)+"px","& > div":{verticalAlign:"middle"}}}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Fe)))),Le=a(578),Be=a(179),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)(be.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),Ve=Object(R.b)(Object(C.a)((function(e){return{header:{lineHeight:e.spacing(5)+"px",borderBottom:"1px solid "+e.palette.border,fontSize:"18px",marginTop:e.spacing(4)},mainMarginTop:{marginTop:e.spacing(3)},mainMarginBottom:{marginBottom:e.spacing(1)},noMarginTop:{marginTop:"unset"},title:{marginTop:e.spacing(3),marginBottom:e.spacing(1)},pl:{paddingLeft:e.spacing(4)+"px !important"},btn:{color:e.palette.primary.main,cursor:"pointer"},paper:{paddingBottom:e.spacing(10)},fold:{fontWeight:500},flexRow:{display:"flex",flexFlow:"row nowrap",justifyContent:"flex-start",alignItems:"center"},flexRowCenter:{display:"flex",flexFlow:"row nowrap",alignItems:"center",padding:e.spacing(1.5)+"px "+e.spacing(1)+"px",marginLeft:e.spacing(4)},loading:{paddingTop:e.spacing(16),paddingBottom:e.spacing(16),justifyContent:"center"}}}))(Object(h.f)(Object(l.b)((function(e,t){return{currentUserInfo:e.DataStore.currentUserInfo}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(ze)))),We=a(543),Ke=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.classes,a=e.theme,r=e.icon,i=e.text,n=e.color,s=e.background,o={containedInfo:{main:a.palette.primary.contrastText,lighter:a.palette.secondary.main}},c=void 0===s||s,l=n?(a.palette[n]?a.palette:o)[n]:a.palette.primary;return r?Object(oe.jsxs)("span",{className:[t.root,t.iconPadding].join(" "),style:{backgroundColor:c?l.lighter:"",color:l.main},children:[Object(oe.jsx)("div",{className:t.icon,children:Object(oe.jsx)(be.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),Je=Object(ge.a)(Object(C.a)((function(e){return{root:{padding:e.spacing(.5)+"px",lineHeight:1.5,fontSize:e.spacing(1.5)+"px",fontWeight:"normal",display:"inline",borderRadius:e.spacing(.5)},iconPadding:{paddingLeft:e.spacing(1)+"px"},icon:{width:0,left:"-14px",position:"relative",display:"inline-block",verticalAlign:"middle"}}}))(Ke)),$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(Ae.a)(e,$e);return Object(oe.jsx)(We.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(45),tt=a(544),at=a(545),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 f=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),b=Object(et.a)(f,2);h=b[0],g=b[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)(be.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.X,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.db,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.cb,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.Z,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.Z,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.S,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.bb,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.bb,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.bb,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(299),ct=a(549),lt=a(547),pt=a(570),dt=a(550),ut=a(548),mt=a(551),ht=a(569),gt=a(546),ft=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){var e=this.props,t=e.tabs,a=e.onChange,r=e.currentTab,i=e.children,n=e.classes;return Object(oe.jsxs)(k.a,{container:!0,className:n.background,justifyContent:"space-between",children:[Object(oe.jsx)(k.a,{item:!0,children:Object(oe.jsx)(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),bt=Object(R.b)(Object(ge.a)(Object(C.a)((function(e){return{background:{backgroundColor:e.palette.background.light}}}))(Object(h.f)(Object(l.b)((function(e,t){return{}}),(function(e,t){return{}}))(ft))))),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)(Je,{color:"success",text:"2FA"}),t.admin&&Object(oe.jsx)(Je,{color:"info",text:r.formatMessage({id:"label.administrator"})}),!t.status&&Object(oe.jsx)(Je,{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.eb})]),!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,f=i.password2,b=i.error,j=i.settingAdmin,O=i.password,v=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)(bt,{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:!!b.password1,helperText:b.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:f,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:O,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:v,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:!!b.name,helperText:b.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:!!b.email,helperText:b.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.j})]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,align:"right",children:Object(oe.jsx)(_.a,{variant:"contained",color:"primary",onClick:function(t){return e.setState({newPassword:""})},children:r.formatMessage({id:"label.ok"})})})]})})]})]})}}]),a}(i.a.Component),Ot=Object(R.b)(Object(C.a)((function(e){return{search:{display:"flex"},keyword:{flexGrow:1},sortLabel:{lineHeight:e.spacing(4)+"px",padding:"0px "+e.spacing(2)+"px"},name:{display:"flex",textAlign:"left",alignItems:"center",margin:e.spacing(1)+"px 0px"},icon:{margin:e.spacing(1)},tag:{"& > *":{marginRight:e.spacing(1)}},page:{display:"flex",justifyContent:"flex-end"}}}))(Object(l.b)((function(e,t){return{}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(jt))),vt=a(25),yt=a(156),xt=a(579),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?v.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.eb}):Object(oe.jsx)(Je,{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(vt.a)(e,L.Role.GUEST,"label.guest"),Object(vt.a)(e,L.Role.REPORTER,"label.reporter"),Object(vt.a)(e,L.Role.DEVELOPER,"label.developer"),Object(vt.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(vt.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)(Je,{color:"info",text:i.formatMessage({id:o[e.role]})}),e.creatorFlag&&Object(oe.jsx)(Je,{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)(Je,{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.eb}):Object(oe.jsx)(Je,{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(vt.a)(e,L.Role.GUEST,"label.guest"),Object(vt.a)(e,L.Role.REPORTER,"label.reporter"),Object(vt.a)(e,L.Role.DEVELOPER,"label.developer"),Object(vt.a)(e,L.Role.MAINTAINER,"label.maintianer"),Object(vt.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)(Je,{color:"info",text:i.formatMessage({id:o[e.role]})}),Object(oe.jsxs)(k.a,{children:[e.creatorFlag&&Object(oe.jsx)(Je,{color:"success",text:i.formatMessage({id:"label.creator"})}),e.groupMember&&Object(oe.jsx)(Je,{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)(Je,{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)(We.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)))),At=a(572),Tt=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(V(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)(Je,{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)(be.a,{icon:je.q}),"\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)(be.a,{icon:je.x}),"\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)(be.a,{icon:je.u}),"\xa0\xa0",r.members.length]})})]}),Object(oe.jsx)(At.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.D,onClick:function(e){e.stopPropagation(),a.push(V(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{}}))(Tt))))),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),Ft=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))))),Pt=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(V("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)(be.a,{icon:je.A}),"\xa0 ",i.formatMessage({id:"label._N_repository"},{n:r.filter(U.group(a.group.id)).length})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.x}),"\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)(be.a,{icon:je.u}),"\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{}}))(Pt))))),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)(bt,{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?V("groups",i.group.name,"repositories","new"):V("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)(Ft,{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?V("groups",i.group.name,"repositories","new"):V("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(552);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)}},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(V(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)))),Vt=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(e){var r;return Object(p.a)(this,a),(r=t.call(this,e)).state={pending:!0,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(V(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)+V(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)(be.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)(be.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),Wt=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)}}}))(Vt)))),Kt=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),Jt=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)}}}))(Kt)))),$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.l,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.G})]})]),!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.f,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(A.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)(Ft,{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(555),Xt=a(553),Qt=a(554),ea=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)(Je,{text:i.formatMessage({id:"label.yourself"})})]})})]})}}]),a}(i.a.Component),ta=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{}}))(ea))))),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:"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)(ta,{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)(Xt.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)(Qt.a,{className:s.split}),Object(oe.jsxs)(lt.a,{value:a.id,className:s.deleteMember,children:[Object(oe.jsx)(be.a,{icon:je.G}),"\xa0\xa0",r.formatMessage({id:"label.removeMember"})]},a.id)]})})]})}}]),a}(i.a.Component),ra=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{}}))(aa))))),ia=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)(Yt.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)(ve,{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)(ra,{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)(na,{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)(na,{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),oa=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)}}}))(sa))));var ca={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)}},la=Object(C.a)((function(e){return{root:{minHeight:e.spacing(6)}}}))(lt.a),pa=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(V("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(V("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})})),ca.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)(la,{value:e.id,children:Object(oe.jsx)(ta,{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)(be.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)(be.a,{icon:je.G}),"\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),da=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)}}}))(pa)))),ua=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(V("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)(Je,{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.D,onClick:function(e){e.stopPropagation(),r.push(V("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)(be.a,{icon:je.A,className:t.listIcon})," \xa0",n.filter(U.group(i.id)).length," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.u,className:t.listIcon})," \xa0",i.members.length]})}),Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Qt.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),ma=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{}}))(ua))))),ha=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)(bt,{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(V("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)(ma,{groupInfo:e},t)},t)})),0===c.length&&Object(oe.jsx)(Ft,{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(V("groups","new"))},children:n.formatMessage({id:"label.newGroup"})})})]})}}]),a}(i.a.Component),ga=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{}}))(ha))),fa=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,ca.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}),ca.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;ca.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(V("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)(be.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)(be.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),ba=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)}}}))(fa)))),ja=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}),ca.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})})),ca.list().then(ne.withEventdispatcher(this.props.dispatchEvent)(ne.getJSONData)).then((function(t){t.code||e.props.dispatchEvent({type:"data.groupList.update",data:t.data})})),ca.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:ca.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),Oa=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)}}}))(ja)))),va=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}),ca.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};ca.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};ca.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})})),ca.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)(na,{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),ya=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)}}}))(va)))),xa=Object(C.a)((function(e){return{root:{minHeight:e.spacing(6)}}}))(lt.a),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,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}),ca.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(V("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}),ca.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(V("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}),ca.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;ca.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})})),ca.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)(xa,{value:e.id,children:Object(oe.jsx)(ta,{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)(be.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)(be.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),Ca=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)}}}))(Sa))));var Na,Ra={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:V("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:V("groups",e.item.content.from),s2:V("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:V(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:V(e.relatedGroup.name,e.relatedRepository.name),children:[e.relatedGroup.displayName,"/",e.relatedRepository.displayName]}):e.item.content.name,f=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:f}}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 b=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:b}}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 O=a.filter(U.id(e.item.content.uid))[0],v=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:(O?O.name+" <"+O.email+">":e.item.content.name+" <"+e.item.content.email+">")+": "+v}}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:V(e.relatedGroup.name,e.item.content.from),s2:V(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:V(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:V(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:V(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:V(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:V(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:V(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.name),""),children:e.item.content.name}):e.item.content.name,A=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:A}}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:V(e.relatedGroup.name,e.relatedRepository.name,"files",encodeURIComponent(e.item.content.from)),children:e.item.content.from})," ->\xa0"]}),Object(oe.jsx)(o.b,{to:V(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:V(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:V(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 T=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:V(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:V(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:V(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),F=Object(oe.jsxs)(i.a.Fragment,{children:[D," .. ",I," -> ",T]});return{user:r,action:e.formatter({id:"message.activity.pushTo_S_Tag"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:F}}if(1282===t){var P=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsx)(o.b,{to:V(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:V(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," -> ",P]});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:V(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:V(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 W=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:V(e.relatedGroup.name,e.relatedRepository.name,"mergerequests",e.item.content.id),children:["!",e.item.content.id]}):e.item.content.id,K=Object(oe.jsxs)(i.a.Fragment,{children:[e.formatter({id:"label.closeMergeRequest"})," ",W]});return{user:r,action:e.formatter({id:"message.activity.close_S_MergeRquest"},{s:e.relatedGroup.displayName+"/"+e.relatedRepository.displayName}),detail:K}}if(1795===t){var J=e.relatedRepository.name&&e.relatedGroup.name?Object(oe.jsxs)(o.b,{to:V(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"})," ",J]});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:V(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:V(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:V(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{user:r,action:"",detail:""}}},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:"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=Ra.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),wa=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{}}))(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={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(A.a)(a.state.activityList),Object(A.a)(e.data)),listFinshed:t})}})):e.currentGroupConfig.group&&ca.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(A.a)(a.state.activityList),Object(A.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)(bt,{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)(be.a,{icon:je.C})})}})})}),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)(wa,{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)(be.a,{icon:Ge.a})]})})})]})]})}}]),a}(i.a.Component),_a=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)}}}))(ka))),Ea=a(556),Aa=a(534),Ta=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:V(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)(Ea.a,{variant:"outlined",className:a.border,children:[Object(oe.jsxs)(_.a,{onClick:function(e){return n.push(V("repositories/fork",r.repository.id))},children:[Object(oe.jsx)(be.a,{icon:je.q}),"\xa0 ",i.formatMessage({id:"label.fork"})]}),Object(oe.jsx)(_.a,{disabled:!r.repository.forkCount,onClick:function(e){return n.push(V("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)(Aa.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)(bt,{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)(ve,{doc:"/common/clone_method.md"})]}),Object(oe.jsx)(E.a,{fullWidth:!0,variant:"outlined",value:ne.getHost(c)+V(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.j,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)(ve,{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.j,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)(be.a,{icon:je.h}),"\xa0 ",i.formatMessage({id:"label._N_commit"},{n:r.count.commit})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.d}),"\xa0 ",i.formatMessage({id:"label._N_branch"},{n:r.count.branch})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.F}),"\xa0 ",i.formatMessage({id:"label._N_tag"},{n:r.count.tag})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.o}),"\xa0 ",i.formatMessage({id:"label._N_byte"},{n:z(r.count.file)})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.x}),"\xa0 ",i.formatMessage({id:"label._N_mergeRequest"},{n:r.repository.mergeRequestCount.open})," \xa0\xa0\xa0\xa0",Object(oe.jsx)(be.a,{icon:je.u}),"\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),Da=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{}}))(Ta))))),Ia=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)(Xt.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)(be.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)(Xt.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)(be.a,{icon:je.F,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)(Xt.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)(be.a,{icon:je.h,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),Fa=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{}}))(Ia)))),Pa=a(294),La=a.n(Pa),Ba=a(98),Ua=a.n(Ba),Ga=(a(225),a(226),a(227),a(228),a(229),a(230),a(231),a(232),a(233),a(234),a(235),a(236),a(237),a(238),a(239),a(240),a(241),a(242),a(243),a(244),a(245),a(246),a(247),a(248),a(249),a(250),a(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(180)),Ha=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(Ga.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),qa=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)}}}))(Ha)))),za=a(484),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:"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),Wa=Va,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={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)(Ea.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.j,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),Ja=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"}}}))(Ka)),$a=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)(za.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)(Wa,{to:n+"/"+d.hash.substr(0,8)+(l||""),children:d.commitContent?d.commitContent:""}),c&&Object(oe.jsx)(Wa,{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)(ve,{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)(Ja,{hash:d.hash.substr(0,8)})]},d.hash)}}]),a}(r.Component),Za=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{}}))($a))))),Ya=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=Ua.a.highlight(p.join("\n"),Ua.a.languages[l]||Ua.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)(Za,{data:o[0].commit,linkPathBase:V(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)(qa,{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)(qa,{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)(qa,{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),Xa=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)}}}))(Ya)))),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)).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.o}},{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)(be.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.j,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.o,onClick:function(){return e.setState({mdSourceShow:!1})}}):Object(oe.jsx)(Ie,{label:"message.displaySource",icon:je.g,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)(Ea.a,{size:"small","aria-label":"small outlined button group",children:[Object(oe.jsx)(_.a,{onClick:function(e){return c.push(V(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(V(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)(Xa,{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)(Xa,{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)(La.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),er=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{}}))(Qa)))),tr=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.j}),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.j}),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),ar=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{}}))(tr))),rr=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)(be.a,{icon:"blob"===e.type?je.o:je.S})," \xa0\xa0",Object(oe.jsx)(o.b,{className:t.props.classes.linkObjectName,to:V(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:V(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(A.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:V.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)}}}))(rr)))),nr=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),sr=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{}}))(nr))),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={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(A.a)(a.list),Object(A.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(A.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=V(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)(Fa,{currentRevision:i.params.rev&&decodeURIComponent(i.params.rev)||Y(r),revisionList:{branches:r.branches,tags:r.tags},onChange:function(e){return n.push(V(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)(be.a,{icon:je.C})})}})})]})}),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)(sr,{title:a,children:e.list.map((function(e,t){return Object(oe.jsx)(Za,{showBorder:!0,path:i.params.path,data:e,linkPathBase:V(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)(be.a,{icon:Ge.a})]})})}),0===this.state.commitList.length&&Object(oe.jsx)(k.a,{item:!0,xs:12,children:Object(oe.jsx)(Ft,{imageName:"commits-empty.png",notice:o.formatMessage({id:"message.noCommitRecord"}),pending:this.state.pending})})]})}}]),a}(i.a.Component),cr=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)}}}))(or))))),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={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)(bt,{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)(be.a,{icon:je.C})})}}),"\xa0",Object(oe.jsx)(Ie,{label:"label.sort",onClick:n,className:[d.icon,i?"":d.transform].join(" "),icon:je.E}),l.branches&&l.branches.length>0&&Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:d.button,disabled:a,onClick:function(){return p.push(V(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),pr=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{}}))(lr)))),dr=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=V(a.repository.group.name,a.repository.name,"files",encodeURIComponent(e.name),"");if(e.nameA=Object(oe.jsx)(Wa,{to:i,onClick:function(){return r.push(i)},children:e.name}),e.commit.sha){var n=V(a.repository.group.name,a.repository.name,"commit",e.commit.sha.substring(0,8));e.shaA=Object(oe.jsx)(Wa,{to:n,onClick:function(){return r.push(n)},children:e.commit.sha.substring(0,8)}),e.logA=Object(oe.jsx)(Wa,{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)(sr,{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)(be.a,{className:p.icon,icon:"tag"===o?je.F: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)(be.a,{className:p.icon2,icon:je.B}),"branch"===o&&t.name===g&&Object(oe.jsxs)(i.a.Fragment,{children:[Object(oe.jsx)(Je,{color:"secondary",text:d.formatMessage({id:"label.default"})})," \xa0\xa0\xa0"]}),"branch"===o&&t.name!==g&&!!t.isMerge&&Object(oe.jsx)(Je,{color:"success",icon:je.O,text:d.formatMessage({id:"message.merged"})})]}),Object(oe.jsxs)(w.a,{variant:"body1",component:"div",className:p.oneline,children:[Object(oe.jsx)(be.a,{className:p.icon,icon:je.h}),"\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.ab}),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)(be.a,{className:p.icon,icon:je.G}),"\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.G})]})]},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)(be.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)(Ft,{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(V(c.repository.group.name,c.repository.name,"tags","new"))},children:d.formatMessage({id:"label.newTag"})}):Object(oe.jsx)(ve,{type:"button",doc:"/git/create_branch.md",title:d.formatMessage({id:"label.newBranch"})})})})})}}]),a}(i.a.Component),ur=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{}}))(dr)))),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)).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)(pr,{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)(ur,{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),hr=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)}}}))(mr)))),gr=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)(pr,{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)(ur,{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),fr=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)}}}))(gr)))),br=a(121),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={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(br.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(f){d.e(f)}finally{d.f()}var m,h=Object(br.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(f){h.e(f)}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(V(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)(be.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)(be.a,{className:i.icon,icon:je.F}),"\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(V(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),Or=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)}}}))(jr)))),vr=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(br.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(br.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(V(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)(be.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)(be.a,{className:i.icon,icon:je.F}),"\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(V(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),yr=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)}}}))(vr)))),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)).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:V(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=V(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)(be.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=V(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)(be.a,{icon:je.F}),"\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),Sr=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)}}}))(xr))))),Cr=a(581),Nr=a(558),Rr=a(559),Mr=a(153),wr=a.n(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={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=Ua.a.highlight(e.join("\n"),Ua.a.languages[t]||Ua.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;f--)h.unshift([g,f,""]),g--;return r.splice.apply(r,[t+1,0].concat(h)),this.setState({diffContent:r}),!0}if("tail"===e){var b=this.state.diffContent[t-1],j=this.state.diffContent[t+1];if(!i&&b[0]+21>this.state.fullfileContent.length){for(var O=[],v=b[1]+1,y=b[0]+1;y<=this.state.fullfileContent.length;y++)O.push([y,v,""]),v++;return r.splice.apply(r,[t,1].concat(O)),this.setState({diffContent:r}),!0}if(i&&j&&j[1]&&b[1]+21>=j[1]){for(var x=[],S=b[0]+1,C=b[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:O,icon:je.j,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)(fe.a,{title:x,disableFocusListener:!0,placement:"top",children:Object(oe.jsx)(_.a,{onClick:function(t){return e.toggleFullFile(t)},children:Object(oe.jsx)(be.a,{icon:y?Ge.c:je.n})})}),i===n&&m&&Object(oe.jsx)(fe.a,{title:v+"@"+m,disableFocusListener:!0,placement:"top",children:Object(oe.jsx)(_.a,{onClick:function(t){return e.viewFileDetail(C)},children:Object(oe.jsx)(be.a,{icon:je.o})})})]}),N===f&&i===n&&u&&m&&Object(oe.jsxs)(k.a,{item:!0,children:[Object(oe.jsx)(fe.a,{title:v+"@"+u,disableFocusListener:!0,placement:"top",children:Object(oe.jsxs)(_.a,{className:s.viewOldFileBtn,onClick:function(t){return e.viewFileDetail(S)},children:[Object(oe.jsx)(be.a,{icon:je.o}),"\xa0\xa0",o.formatMessage({id:"label.browserUnchangedFIle"})," \xa0","@"+u]})}),Object(oe.jsx)(fe.a,{title:v+"@"+m,disableFocusListener:!0,placement:"top",children:Object(oe.jsxs)(_.a,{className:s.viewFileBtn,onClick:function(t){return e.viewFileDetail(C)},children:[Object(oe.jsx)(be.a,{icon:je.o}),"\xa0\xa0",o.formatMessage({id:"label.browserFile"}),"\xa0","@"+m]})})]})]})}),Object(oe.jsx)(Rr.a,{className:s.panelDetail,children:Object(oe.jsx)(Ar,{fileDiffInfo:a,repository:i,renderSideBySide:r,layoutUpdateTimeStamp:l,showFullFile:y})})]})}}]),a}(r.Component),Dr=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)}}}))(Tr)))),Ir=0,Fr=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(A.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)(be.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)(be.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))*Ir+"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)(be.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*Ir,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),Pr=Object(R.b)(Object(C.a)((function(e){return Ir=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{}}))(Fr)))),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)).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,f=h.intl,b=h.childHash,j=h.parentHash,O=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:[f.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:[f.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)(Ea.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?f.formatMessage({id:"label.closeFileTree"}):f.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)(Pr,{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)(Dr,{modifiedRepositoryKey:O,fileDiffInfo:e,renderSideBySide:o,hash:b,parentHash:j,layoutUpdateTimeStamp:u,fileTreeIsOpen:l},t)},t)}))}),!m&&(c||!s||!s.length)&&Object(oe.jsx)(k.a,{container:!0,children:Object(oe.jsx)(Ft,{imageName:"branches-empty.png",title:f.formatMessage({id:"message._S_listEmpty"},{s:f.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:f.formatMessage({id:"message.diffFileToMany"})})})]})]})]})}}]),a}(r.Component),Br=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)}}}))(Lr))))),Ur=Object(C.a)((function(e){return{root:{width:e.spacing(3),height:e.spacing(3)}}}))(Le.a),Gr=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)(Ur,{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)(be.a,{icon:je.K,className:[p.icon,c?p.transform:""].join(" ")})]}),a.sha&&Object(oe.jsx)(k.a,{className:p.ml16,children:Object(oe.jsx)(Ja,{hash:a.sha.substr(0,8)})}),Object(oe.jsx)(_.a,{variant:"contained",color:"primary",className:p.ml16,onClick:function(){return u.push(V(s,n,"files",h.params.hash,""))},children:m.formatMessage({id:"label.browserFile"})})]})]}),Object(oe.jsx)(Sr,{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)(Br,{id:"FileDiffDetail",parentHash:o,childHash:h.params.hash,rKey:d})})})]})})})})}}]),a}(i.a.Component),Hr=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)}}}))(Gr))))),qr=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)(be.a,{icon:e.isReview?je.O:je.L,className:[r.isReview,e.isReview?r.reviewed:""].join(" ")})]},a)}))})}}]),a}(i.a.Component),zr=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)(qr)),Vr=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=V(n.group.name,n.name,"commits",encodeURIComponent(t.targetBranch));t.targetLink=Object(oe.jsx)(Wa,{to:s,onClick:function(e){return r.push(s)},children:t.targetBranch});var o=V(n.group.name,n.name,"mergerequests",t.number);t.titleLink=Object(oe.jsx)(Wa,{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=V(l.group.name,l.name,"commits",encodeURIComponent(t.sourceBranch));t.sourceLink=Object(oe.jsx)(Wa,{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)(Je,{color:"success",background:!1,icon:je.i,text:i.formatMessage({id:"message.opened"})}),a.status===n.merged&&Object(oe.jsx)(Je,{color:"info",background:!1,icon:je.y,text:i.formatMessage({id:"message.merged"})}),a.status===n.closed&&Object(oe.jsx)(Je,{color:"warning",background:!1,icon:je.p,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)(be.a,{icon:je.x}),"\xa0",a.sourceLink,"\xa0",Object(oe.jsx)(be.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)(zr,{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),Wr=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{}}))(Vr)))),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,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,ca.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(A.a)(this.state.mrList?this.state.mrList:[]),Object(A.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(V(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,f=o.error,b=o.repositoryName,j=o.groupName,O=o.originRepositoryBranches,v=o.originRepositoryInfo,y=o.targetRepositoryInfo,x=[];return!b&&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(V("repositories/new"))},children:[b&&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&&!b&&!!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)(be.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)})),!a.branches&&O&&O.map((function(e,t){return Object(oe.jsxs)(lt.a,{value:e.name,children:[Object(oe.jsx)(be.a,{className:r.icon,icon:je.d}),"\xa0\xa0",e.name]},t)}))]})})]}),(v||a.repository)&&p&&u&&Object(oe.jsx)(k.a,{item:!0,xs:12,className:r.commit,children:Object(oe.jsx)(Za,{showBorder:Boolean(!1),data:p,current:u,currentRefType:"branch",currentGroup:v.group.name||a.repository.group.name,currentRepositoryConfig:a.repository?a:v,currentRepository:a.repository?a.repository.name:v.name,linkPathBase:V(v.group.name||a.repository.group.name,a.repository?a.repository.name:v.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)(be.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)(Za,{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:V(y.group.name||a.repository.group.name,a.repository?a.repository.name:y.name,"commit")})})]})}),f&&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:f?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||f,onClick:function(){return e.GoMergeRequestDetail()},children:n.formatMessage({id:"label.compareBranch"})})})]})})]})}}]),a}(i.a.Component),Zr=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)}}}))($r)))),Yr=a(574),Xr=a(560),Qr=a(533),ei=a(571),ti=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,f=t.latestVersion,b=this.state,j=b.renderSideBySide,O=b.fileTreeIsOpen,v=b.fileTreeGridNumber,y=b.diffViwerLayoutUpdateTimestamp,x=b.startHash,S=b.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)(Qr.a,{className:a.margin,children:Object(oe.jsx)(ei.a,{variant:"outlined",value:x||f,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)(Qr.a,{className:a.margin,children:Object(oe.jsx)(ei.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)(Ea.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:O?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:O?v:12,className:O?a.fileTreeSticky:a.fileTreeHide,children:Object(oe.jsx)(Pr,{changeFiles:n,treeView:Boolean(!1),fileClick:function(t){return e.jumpToAnchor(t)}})}),Object(oe.jsx)(k.a,{item:!0,xs:O?12-v: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)(Dr,{modifiedRepositoryKey:g,fileDiffInfo:e,renderSideBySide:j,layoutUpdateTimeStamp:y,fileTreeIsOpen:O},t)},t)})):Object(oe.jsx)(k.a,{container:!0,spacing:2,className:a.loading,children:Object(oe.jsx)(he.a,{})})})})]})]})}}]),a}(i.a.Component),ai=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)}}}))(ti)))),ri=Object(C.a)((function(e){return{root:{width:e.spacing(3),height:e.spacing(3)}}}))(Le.a),ii=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(V(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,f=o.pending,b=o.changedFiles,j=o.fileDiff,O=o.effectFileCount,v=o.addLine,y=o.deleteLine,x=o.commits,S=o.activities,C=o.showCommitInput,N=o.mergeMessage,R=o.usingSquash,M=o.hasMergeConflict,A=o.versionList,T=o.latestVersion,I=o.baseVersion,F=o.baseVersionList,P=o.submitMergeRequest,B=o.reviewers,G=o.reviewersMenu;return Object(oe.jsxs)(k.a,{container:!0,children:[!this.state.mid&&(l||P)&&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(V(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)(ta,{item:p.members.filter(U.id(t))[0]},a)}),Object(oe.jsx)(k.a,{children:Object(oe.jsx)(Je,{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)(be.a,{icon:je.x}),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)(ri,{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)(ri,{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),ni=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"})}}}))(ii))))),si=function(e){Object(u.a)(a,e);var t=Object(m.a)(a);function a(){return Object(p.a)(this,a),t.apply(this,arguments)}return Object(d.a)(a,[{key:"render",value:function(){return Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{path:"/userInfo",component:me}),Object(oe.jsx)(h.a,{path:"/settings",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/settings/profile",component:Ve}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/sshkey",component:Ee}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/notification",component:Xe}),Object(oe.jsx)(h.a,{exact:!0,path:"/settings/email",component:Pe}),Object(oe.jsx)(h.a,{path:"/settings",component:Ve})]})}),Object(oe.jsx)(h.a,{path:"/admin",children:Object(oe.jsxs)(h.c,{children:[Object(oe.jsx)(h.a,{exact:!0,path:"/admin/users",component:Ot}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/groups",component:Mt}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/repositories",component:kt}),Object(oe.jsx)(h.a,{exact:!0,path:"/admin/settings",component:Et}),Object(oe.jsx)(h.a,{path:"/admin",component: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:Jr}),Object(oe.jsx)(h.a,{exact:!0,path:"/mergerequests/new",component:Zr})]})}),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:Wt}),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:ba}),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:ya}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/activities",component:_a}),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:Jr}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/mergerequests/new",component:Zr}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings",component:Oa}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings/general",component:Oa}),Object(oe.jsx)(h.a,{exact:!0,path:"/groups/:groupName([A-Za-z0-9_]{5,})/settings/advanced",component:Ca}),Object(oe.jsx)(h.a,{path:"/groups",component:ga})]})}),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:ir}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/files/:rev([\\w\\-\\.%]+)",component:ir}),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:ir}),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:Hr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits",component:cr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits/:rev([\\w\\-\\.%]+)",component:cr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/commits/:rev([\\w\\-\\.%]+):path(/.*)",component:cr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests",component:Jr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/new",component:Zr}),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:ni}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/mergerequests/:mid(\\d+)",component:ni}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/branches",component:hr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/branches/new",component:yr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/tags",component:fr}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/tags/new",component:Or}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/members",component:oa}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/activities",component:_a}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings",component:Jt}),Object(oe.jsx)(h.a,{exact:!0,path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)/settings/general",component:Jt}),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/advanced",component:da}),Object(oe.jsx)(h.a,{component:ir})]})})]})}}]),a}(i.a.Component),oi=Object(h.f)(si),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={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}))})),ca.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)&&ca.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)(oi,{})})]})})}}]),a}(i.a.Component),li=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)}}}))(ci))),pi=a(562),di=a(563),ui=a(561),mi=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)(be.a,{icon:je.K,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)(Qt.a,{}),Object(oe.jsxs)(lt.a,{onClick:function(t){e.goView("/settings/profile")},children:[Object(oe.jsx)(ui.a,{children:Object(oe.jsx)(be.a,{icon:je.v})}),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)(ui.a,{children:Object(oe.jsx)(be.a,{icon:je.k})}),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)(ui.a,{children:Object(oe.jsx)(be.a,{icon:je.s})}),Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.SSHKey_pl"})})]}),Object(oe.jsx)(Qt.a,{}),Object(oe.jsxs)(lt.a,{onClick:this.logout,children:[Object(oe.jsx)(ui.a,{children:Object(oe.jsx)(be.a,{icon:je.m})}),Object(oe.jsx)(ut.a,{disableTypography:!0,primary:s.formatMessage({id:"menu.logout"})})]})]})]})}}]),a}(r.Component),hi=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)}}}))(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={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.t,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),fi=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)}}}))(gi)))),bi=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)(ui.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)(be.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)(ui.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)(be.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)(be.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),ji=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{}}))(bi)))),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={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)(pi.a,{position:"fixed",color:"default",className:a.appBar,elevation:i?2:0,children:Object(oe.jsx)(di.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)(ji,{type:"repository"})}),Object(oe.jsx)(k.a,{item:!0,className:a.optionItem,children:Object(oe.jsx)(ji,{type:"group"})}),Object(oe.jsx)(Ie,{label:"label.mergeRequest",onClick:function(){n.push("/mergerequests")},icon:je.x,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.H,className:a.optionItem}),Object(oe.jsx)(Qt.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)(fi,{className:a.optionItem}),Object(oe.jsx)(Ie,{label:"label.help",onClick:function(t){return e.setState({helpMenuAnchor:t.currentTarget})},icon:je.r,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/","_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)(Qt.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.z,className:a.optionItem}),Object(oe.jsx)(hi,{className:a.optionItem})]})]})})})}}]),a}(i.a.Component),vi=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"})}}}))((Na={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(){Na.watching&&(this.cancel&&this.cancel(),this.target=document.querySelector(Na.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>Na.threshold&&!this.state.scrollTrigger?this.setState({scrollTrigger:!0}):t<=Na.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)})(Oi))))),yi=a(576),xi=a(536),Si=a(557),Ci=a(295),Ni=a.n(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={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)(za.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)(ui.a,{children:Object(oe.jsx)(be.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)(Ni.a,{}):Object(oe.jsx)(wr.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)(Si.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)(xi.a,{component:"div",disablePadding:!0,children:Object(oe.jsx)(za.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],f=d.filter(U.id(u))[0];if(["repository","group"].includes(c)){var b=g&&g.icon||f&&f.icon,j=g&&g.name||f&&f.name;b?h.src=D.HOSTS.STATIC_AVATAR_PREFIX+b: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/"+f.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)(fe.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)(be.a,{icon:je.T,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)(xi.a,{className:a.list,component:"nav",children:m})]})}}]),a}(i.a.Component),Mi=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)(Ri))));var wi={makeDrawerConfig:function(){return[{path:"/settings/profile",name:"menu.profile",icon:je.W,activePattern:[/^\/settings$/i,/^\/settings\/profile/i]},{path:"/settings/email",name:"menu.mail",icon:je.P,activePattern:[/^\/settings\/email/i]},{path:"/settings/sshkey",name:"menu.SSHKey_pl",icon:je.U,activePattern:[/^\/settings\/sshkey/i]},{path:"/settings/notification",name:"menu.notification",icon:je.I,activePattern:[/^\/settings\/notification/i]}]},makeAdminDrawerConfig:function(){return[{path:"/admin/dashboard",name:"menu.dashboard",icon:je.V,activePattern:[/^\/admin(\/)?$/i,/^\/admin\/dashboard\/?.*$/i]},{path:"/admin/users",name:"menu.user_pl",icon:je.X,activePattern:[/^\/admin\/users\/?.*$/i]},{path:"/admin/groups",name:"menu.group_pl",icon:je.db,activePattern:[/^\/admin\/groups\/?.*$/i]},{path:"/admin/repositories",name:"menu.repository_pl",icon:je.cb,activePattern:[/^\/admin\/repositories\/?.*$/i]},{path:"/admin/settings",name:"menu.setting_pl",icon:je.eb,activePattern:[/^\/admin\/settings\/?.*$/i]}]},makeGroupDrawerConfig:function(e){return e&&e.group?[{path:["/groups",e.group.name,"repositories"].join("/"),name:"menu.repository_pl",icon:je.cb,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.Y,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/mergerequests\/?.*$/i]},{path:["/groups",e.group.name,"members"].join("/"),name:"menu.member_pl",icon:je.X,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/members(\/)?$/i]},{path:["/groups",e.group.name,"activities"].join("/"),name:"menu.activity_pl",icon:je.V,activePattern:[/\/groups\/([A-Za-z0-9_]{5,})\/activities(\/)?/i]},{path:["/groups",e.group.name,"settings"].join("/"),name:"menu.setting_pl",icon:je.eb,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.eb,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.eb,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.R,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.N,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.Y,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.J,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.fb,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.X,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.V,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.eb,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.eb,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.eb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/branch(\/)?$/i]},{path:["",e.group.name,e.repository.name,"settings","advanced"].join("/"),name:"menu.advanced",icon:je.eb,activePattern:[/([A-Za-z0-9_]{5,})\/[A-Za-z0-9_]+\/settings\/advanced(\/)?$/i]}]}]:[]}},ki=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)(be.a,{icon:je.w,className:i?"":r.transform})}),Object(oe.jsx)(yi.a,{open:!0,variant:"permanent",classes:{paper:r.drawerPaper},className:[r.container,i?r.containerExpanded:r.containerCollapsed].join(" "),children:Object(oe.jsx)(Mi,{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(wi.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(wi.makeAdminDrawerConfig(),"admin")}),Object(oe.jsx)(h.a,{path:"/groups/:groupName([A-Za-z0-9_]{5,})",children:this.drawer(wi.makeGroupDrawerConfig(t),"group")}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",children:this.drawer(wi.makeRepositoryDrawerConfig(a),"repository")})]})}}]),a}(i.a.Component),_i=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)(ki))),Ei=a(565),Ai=a(564),Ti=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)(Ai.a,{id:"alert-dialog-description",children:i})}),Object(oe.jsxs)(Ei.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),Di=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)}}}))(Ti))),Ii=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(A.a)(a.state.list),Object(A.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(V(e.url))}},{key:"notificationSetting",value:function(){this.props.notificationOpenStatusClose(),this.props.history.push(V("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)(yi.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.eb,className:i.icon,onClick:function(t){return e.notificationSetting()}}),Object(oe.jsx)(Ie,{label:"label.close",icon:je.f,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)(bt,{currentTab:l,onChange:function(t,a){return!o&&e.setState({category:a})},tabs:m,children:[Object(oe.jsx)(Ie,{label:"label.more",icon:je.ab,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.gb,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),Fi=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)(Ii)))),Pi=a(298),Li=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)(Pi.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),Bi=Object(l.b)((function(e,t){return{notificationBody:e.NotificationStates.notificationBody}}),(function(e,t){return{dispatchEvent:function(t){e(t)}}}))(Li),Ui=Object(y.a)({__namespace__:"lang"},{chinese:"\u7b80\u4f53\u4e2d\u6587",english:"English"}),Gi=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"}),{},{__namespace__:"message"}),Hi=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"}),qi=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"}),{},{__namespace__:"message.activity"}),zi=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",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"}),Vi=Object(y.a)(Object(y.a)({},zi),{},{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",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",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"}),Wi=Object(y.a)(Object(y.a)({},Vi),{},{__namespace__:"phrase"}),Ki=Object(y.a)(Object(y.a)(Object(y.a)({},zi),Wi),{},{dashboard:"\u6982\u89c8",general:"\u5e38\u89c4",advanced:"\u9ad8\u7ea7",profile:"\u4e2a\u4eba\u4fe1\u606f",mail:"\u591a\u90ae\u7bb1"}),Ji=Object(y.a)(Object(y.a)({},Ki),{},{__namespace__:"menu"}),$i="",Zi=Object(y.a)(Object(y.a)(Object(y.a)({},Wi),zi),{},{retryAfter_N_seconds:"{n} \u79d2\u540e\u91cd\u8bd5",userAvatar:[Wi.user,Wi.avatar].join($i),userName:[Wi.user,Wi.name].join($i),getEmailCode:["\u83b7\u53d6",Wi.emailCode].join($i),getPhoneCode:["\u83b7\u53d6",Wi.phoneCode].join($i),mostSeen:"\u5e38\u89c1",loginCredential:[Wi.login,Wi.credential].join($i),CodeFeverPassword:[Wi.CodeFever,Wi.password].join($i),wechatBind:[Wi.wechat,Wi.bind].join($i),unbind_P:"\u89e3\u9664{p}\u7ed1\u5b9a",repositoryID:[zi.repository,Wi.ID].join($i),repositoryName:[zi.repository,Wi.name].join($i),repositoryDescription:[zi.repository,Wi.description].join($i),repositoryURL:[zi.repository,Wi.url].join($i),repositorySlug:[zi.repository,Wi.slug].join($i),repositoryMember:[zi.repository,zi.member].join($i),newRepository:[Wi.new,zi.repository].join($i),forkRepository:[zi.fork,zi.repository].join($i),unknownRepository:[Wi.unknown,zi.repository].join($i),allRepository:[Wi.all,zi.repository].join($i),deleteRepository:[Wi.delete,zi.repository].join($i),groupID:[zi.group,Wi.ID].join($i),groupName:[zi.group,Wi.name].join($i),groupDescription:[zi.group,Wi.description].join($i),groupURL:[zi.group,Wi.url].join($i),groupSlug:[zi.repository,Wi.slug].join($i),groupMember:[zi.group,zi.member].join($i),newGroup:[Wi.new,zi.group].join($i),unknownGroup:[Wi.unknown,zi.group].join($i),deleteGroup:[Wi.delete,zi.group].join($i),inviteMember:[Wi.invite,zi.member].join($i),removeMember:[Wi.remove,zi.member].join($i),forkFrom_S:[zi.fork,"\u81ea: {s}"].join($i),updateFrom_S1_To_S2:["\u4ece {s1} \u66f4\u65b0\u4e3a {s2}"].join($i),repositoryAvatar:[zi.repository,Wi.icon].join($i),groupAvatar:[zi.group,Wi.icon].join($i),basicInfo:"\u57fa\u672c\u4fe1\u606f",newPasswordConfirm:[Wi.confirm,Wi.newPassword].join($i),security:"\u5b89\u5168\u6027",setupNewMFADevice:"\u8bbe\u7f6e MFA \u8bbe\u5907",changeMFADevice:"\u66f4\u6362 MFA \u8bbe\u5907",removeMFADevice:"\u79fb\u9664 MFA \u8bbe\u5907",commitTime:[Wi.commit,Wi.time].join($i),copyPath:[Wi.copy,Wi.path].join($i),copyHash:[Wi.copy,zi.hash].join($i),copyCode:[Wi.copy,zi.code].join($i),lastCommit:[Wi.last,zi.commit].join($i),lastUpdate:[Wi.last,Wi.update].join($i),updateCreator:[Wi.update,Wi.creator].join($i),updateRepositoryURL:[Wi.update,zi.repository,Wi.url].join($i),updateGroupURL:[Wi.update,zi.group,Wi.url].join($i),createOrigin:[Wi.create,Wi.origin].join($i),choseCreateOrigin:[Wi.chose,Wi.create,Wi.origin].join($i),tagDescription:[zi.tag,Wi.description].join($i),tagName:[zi.tag,Wi.name].join($i),branchName:[zi.branch,Wi.name].join($i),defaultBranch:[Wi.default,zi.branch].join($i),protectedBranch:[Wi.protected,zi.branch].join($i),branchRule:[Wi.branch,Wi.rule].join($i),allowPush:[Wi.allow,Wi.push].join($i),allowMerge:[Wi.allow,Wi.merge].join($i),noData:["\u6ca1\u6709",zi.data].join($i),newBranch:[Wi.new,zi.branch].join($i),newTag:[Wi.new,zi.tag].join($i),deleteBranch:[Wi.delete,zi.branch].join($i),deleteTag:[Wi.delete,zi.tag].join($i),updateTime:[Wi.update,zi.time].join($i),updatedIn:"\u66f4\u65b0\u4e8e",editIn:"\u7f16\u8f91\u4e8e",expandFullFile:[Wi.expand,Wi.full,Wi.file].join($i),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",Wi.create,zi.repository].join($i),commitActivity:[zi.commit,Wi.activity].join($i),mergeRequestActivity:[zi.mergeRequest,Wi.activity].join($i),memberActivity:[zi.member,Wi.activity].join($i),addSSHKey:[Wi.add,zi.SSHKey].join($i),emailManage:["\u90ae\u7bb1",Wi.manage].join($i),memberManage:[zi.member,Wi.manage].join($i),primaryEmail:"\u4e3b\u90ae\u7bb1",contactEmail:"\u5173\u8054\u90ae\u7bb1\u5217\u8868",SSHKeyManage:[zi.SSHKey_pl," ",Wi.manage].join($i),notificationCenter:"\u901a\u77e5\u4e2d\u5fc3",notificationReceiveStatus:"\u63a5\u6536\u901a\u77e5\u72b6\u6001",unread:"\u672a\u8bfb",fileModification:[zi.file,Wi.modification].join($i),fileModificationList:[Wi.modification,zi.file,Wi.list].join($i),lineAdd:[zi.line,Wi.add].join($i),lineDelete:[zi.line,Wi.delete].join($i),browserFile:[Wi.browser,Wi.file].join($i),browserUnchangedFIle:[Wi.browser,Wi.modification,Wi.before,Wi.file].join($i),commitHash:[zi.commit,zi.hash].join($i),allFiles:[Wi.all,Wi.file].join($i),openFileTree:[Wi.open,zi.fileTree].join($i),closeFileTree:[Wi.close,zi.fileTree].join($i),requestMerge:[Wi.request,Wi.merge].join($i),createMergeRequest:[Wi.create,zi.mergeRequest].join($i),closeMergeRequest:[Wi.close,zi.mergeRequest].join($i),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($i),openMergeRequest:[Wi.open,zi.mergeRequest].join($i),modificationBranch:[Wi.modification,zi.branch].join($i),sourceBranch:[Wi.source,zi.branch].join($i),targetBranch:[Wi.target,zi.branch].join($i),repositoryAdvancedSetting:"\u4ed3\u5e93\u9ad8\u7ea7\u8bbe\u7f6e",branchSetting:"\u5206\u652f\u8bbe\u7f6e",groupAdvancedSetting:"\u4ed3\u5e93\u7ec4\u9ad8\u7ea7\u8bbe\u7f6e",memberLimitation:[zi.member,zi.limitation].join($i),modificationLimitation:[Wi.modification,zi.limitation].join($i),roleID_1:zi.guest,roleID_2:zi.reporter,roleID_3:zi.developer,roleID_4:zi.maintianer,roleID_5:zi.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",_N_repository:"{n} {n, plural, =0 {"+zi.repository+"}\n=1 {"+zi.repository+"}\nother {"+zi.repository_pl+"}}",_N_commit:"{n} {n, plural, =0 {"+zi.commit+"}\n=1 {"+zi.commit+"}\nother {"+zi.commit_pl+"}}",_N_branch:"{n} {n, plural, =0 {"+zi.branch+"}\n=1 {"+zi.branch+"}\nother {"+zi.branch_pl+"}}",_N_tag:"{n} {n, plural, =0 {"+zi.tag+"}\n=1 {"+zi.tag+"}\nother {"+zi.tag_pl+"}}",_N_byte:"{n} {n, plural, =0 {Byte}\n=1 {Byte}\nother {Bytes}}",_N_mergeRequest:"{n} {n, plural, =0 {"+zi.mergeRequest+"}\n=1 {"+zi.mergeRequest+"}\nother {"+zi.mergeRequest_pl+"}}",_N_member:"{n} {n, plural, =0 {"+zi.member+"}\n=1 {"+zi.member+"}\nother {"+zi.member_pl+"}}"}),Yi=Object(y.a)(Object(y.a)({},Zi),{},{__namespace__:"label"}),Xi=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"}),Qi=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"}),{},{__namespace__:"message"}),en=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"}),tn=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}"}),{},{__namespace__:"message.activity"}),an=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",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"}),rn=Object(y.a)(Object(y.a)({},an),{},{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",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",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"}),nn=Object(y.a)(Object(y.a)({},rn),{},{__namespace__:"phrase"}),sn=Object(y.a)(Object(y.a)(Object(y.a)({},an),nn),{},{dashboard:"Dashboard",general:"General",advanced:"Advanced",profile:"Profile",mail:"E-mails"}),on=Object(y.a)(Object(y.a)({},sn),{},{__namespace__:"menu"}),cn=" ",ln=Object(y.a)(Object(y.a)(Object(y.a)({},nn),an),{},{retryAfter_N_seconds:"Retry After {n} Seconds",userAvatar:[nn.user,nn.avatar].join(cn),userName:[nn.user,nn.name].join(cn),getEmailCode:["Get",nn.emailCode].join(cn),getPhoneCode:["Get",nn.phoneCode].join(cn),mostSeen:"Most Seen",loginCredential:[nn.login,nn.credential].join(cn),CodeFeverPassword:[nn.CodeFever,nn.password].join(cn),wechatBind:[nn.wechat,nn.bind].join(cn),unbind_P:"Unbind {p}",repositoryID:[an.repository,nn.ID].join(cn),repositoryName:[an.repository,nn.name].join(cn),repositoryDescription:[an.repository,nn.description].join(cn),repositoryURL:[an.repository,nn.url].join(cn),repositorySlug:[an.repository,nn.slug].join(cn),repositoryMember:[an.repository,an.member].join(cn),newRepository:[nn.new,an.repository].join(cn),forkRepository:[an.fork,an.repository].join(cn),unknownRepository:[nn.unknown,an.repository].join(cn),allRepository:[nn.all,an.repository].join(cn),deleteRepository:[nn.delete,an.repository].join(cn),groupID:[an.group,nn.ID].join(cn),groupName:[an.group,nn.name].join(cn),groupDescription:[an.group,nn.description].join(cn),groupURL:[an.group,nn.url].join(cn),groupSlug:[an.repository,nn.slug].join(cn),groupMember:[an.group,an.member].join(cn),newGroup:[nn.new,an.group].join(cn),unknownGroup:[nn.unknown,an.group].join(cn),deleteGroup:[nn.delete,an.group].join(cn),inviteMember:[nn.invite,an.member].join(cn),removeMember:[nn.remove,an.member].join(cn),forkFrom_S:[an.fork,"From: {s}"].join(cn),updateFrom_S1_To_S2:["Update From {s1} To {s2}"].join(cn),repositoryAvatar:[an.repository,nn.icon].join(cn),groupAvatar:[an.group,nn.icon].join(cn),basicInfo:"Basic Info",newPasswordConfirm:[nn.confirm,nn.newPassword].join(cn),security:"Security",setupNewMFADevice:"Setup New MFA Device",changeMFADevice:"Change MFA Device",removeMFADevice:"Remove MFA Device",commitTime:[nn.commit,nn.time].join(cn),copyPath:[nn.copy,nn.path].join(cn),copyHash:[nn.copy,an.hash].join(cn),copyCode:[nn.copy,an.code].join(cn),lastCommit:[nn.last,an.commit].join(cn),lastUpdate:[nn.last,nn.update].join(cn),updateCreator:[nn.update,nn.creator].join(cn),updateRepositoryURL:[nn.update,an.repository,nn.url].join(cn),updateGroupURL:[nn.update,an.group,nn.url].join(cn),createOrigin:[nn.create,nn.origin].join(cn),choseCreateOrigin:[nn.chose,nn.create,nn.origin].join(cn),tagDescription:[an.tag,nn.description].join(cn),tagName:[an.tag,nn.name].join(cn),branchName:[an.branch,nn.name].join(cn),defaultBranch:[nn.default,an.branch].join(cn),protectedBranch:[nn.protected,an.branch].join(cn),branchRule:[nn.branch,nn.rule].join(cn),allowPush:[nn.allow,nn.push].join(cn),allowMerge:[nn.allow,nn.merge].join(cn),noData:["No",an.data].join(cn),newBranch:[nn.new,an.branch].join(cn),newTag:[nn.new,an.tag].join(cn),deleteBranch:[nn.delete,an.branch].join(cn),deleteTag:[nn.delete,an.tag].join(cn),updateTime:[nn.update,an.time].join(cn),updatedIn:"Updated At",editIn:"Edited At",expandFullFile:[nn.expand,nn.full,nn.file].join(cn),showDiffOnly:"Show Diff",codeDiff:"Diff",requestCreated:"Created At",requestClosed:"Closed At",requestMerged:"Merged At",createRepository:["Please",nn.create,an.repository].join(cn),commitActivity:[an.commit,nn.activity].join(cn),mergeRequestActivity:[an.mergeRequest,nn.activity].join(cn),memberActivity:[an.member,nn.activity].join(cn),addSSHKey:[nn.add,an.SSHKey].join(cn),emailManage:[nn.email,nn.manage].join(cn),memberManage:[an.member,nn.manage].join(cn),primaryEmail:"Primary E-mail",contactEmail:"List Of Associated Mailboxes",SSHKeyManage:[an.SSHKey_pl,nn.manage].join(cn),notificationCenter:"Notification Center",notificationReceiveStatus:"Receive Notification Status",unread:"Unread",fileModification:[an.file,nn.modification].join(cn),fileModificationList:[nn.modification,an.file,nn.list].join(cn),lineAdd:[an.line,nn.add].join(cn),lineDelete:[an.line,nn.delete].join(cn),browserFile:[nn.browser,nn.file].join(cn),browserUnchangedFIle:[nn.browser,nn.modification,nn.before,nn.file].join(cn),commitHash:[an.commit,an.hash].join(cn),allFiles:[nn.all,nn.file].join(cn),openFileTree:[nn.open,an.fileTree].join(cn),closeFileTree:[nn.close,an.fileTree].join(cn),requestMerge:[nn.request,nn.merge].join(cn),createMergeRequest:[nn.create,an.mergeRequest].join(cn),closeMergeRequest:[nn.close,an.mergeRequest].join(cn),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:[nn.open,an.mergeRequest].join(cn),modificationBranch:[nn.modification,an.branch].join(cn),sourceBranch:[nn.source,an.branch].join(cn),targetBranch:[nn.target,an.branch].join(cn),repositoryAdvancedSetting:"Repository Advanced Settings",branchSetting:"Branch Settings",groupAdvancedSetting:"Group Advanced Settings",memberLimitation:[an.member,an.limitation].join(cn),modificationLimitation:[nn.modification,an.limitation].join(cn),roleID_1:an.guest,roleID_2:an.reporter,roleID_3:an.developer,roleID_4:an.maintianer,roleID_5:an.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",_N_repository:"{n} {n, plural, =0 {"+an.repository+"}\n=1 {"+an.repository+"}\nother {"+an.repository_pl+"}}",_N_commit:"{n} {n, plural, =0 {"+an.commit+"}\n=1 {"+an.commit+"}\nother {"+an.commit_pl+"}}",_N_branch:"{n} {n, plural, =0 {"+an.branch+"}\n=1 {"+an.branch+"}\nother {"+an.branch_pl+"}}",_N_tag:"{n} {n, plural, =0 {"+an.tag+"}\n=1 {"+an.tag+"}\nother {"+an.tag_pl+"}}",_N_byte:"{n} {n, plural, =0 {Byte}\n=1 {Byte}\nother {Bytes}}",_N_mergeRequest:"{n} {n, plural, =0 {"+an.mergeRequest+"}\n=1 {"+an.mergeRequest+"}\nother {"+an.mergeRequest_pl+"}}",_N_member:"{n} {n, plural, =0 {"+an.member+"}\n=1 {"+an.member+"}\nother {"+an.member_pl+"}}"}),pn=Object(y.a)(Object(y.a)({},ln),{},{__namespace__:"label"}),dn=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 un(e){switch(e){case"zh-cn":return W(Ui,Gi,qi,Hi,zi,Wi,Ji,Yi,Xi);case"en-us":return W(Ui,Qi,tn,en,an,nn,on,pn,dn)}}var mn=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(f.a)({}),a=Object(f.a)(S(t));return Object(oe.jsx)(b.a,{theme:a,children:Object(oe.jsx)(O.a,{utils:j.a,locale:v.a,children:Object(oe.jsx)(g.a,{locale:e,messages:un(e),children:Object(oe.jsxs)("div",{className:"app-root",children:[Object(oe.jsx)(_i,{}),Object(oe.jsxs)("div",{className:"app-content",ref:this.appContent,children:[Object(oe.jsx)(vi,{}),Object(oe.jsx)(li,{}),Object(oe.jsx)(Fi,{}),Object(oe.jsx)(Bi,{}),Object(oe.jsx)(Di,{})]})]})})})})}}]),a}(i.a.Component),hn=Object(l.b)((function(e,t){return{currentLanguage:e.DataStore.currentLanguage}}))(mn),gn=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:hn}),Object(oe.jsx)(h.a,{exact:!0,path:"/userInfo",component:hn}),Object(oe.jsx)(h.a,{exact:!0,path:"/createApp",component:hn}),Object(oe.jsx)(h.a,{path:"/groups/:groupName([A-Za-z0-9_]{5,})",component:hn}),Object(oe.jsx)(h.a,{path:"/groups",component:hn}),Object(oe.jsx)(h.a,{path:"/repositories",component:hn}),Object(oe.jsx)(h.a,{path:"/:groupName([A-Za-z0-9_]{5,})/:repositoryName([A-Za-z0-9_]+)",component:hn}),Object(oe.jsx)(h.a,{path:"/mergerequests",component:hn}),Object(oe.jsx)(h.a,{path:"/settings",component:hn}),Object(oe.jsx)(h.a,{path:"/admin",component:hn})]})}}]),a}(i.a.Component),fn=Object(h.f)(gn);var bn=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 jn=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 On=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(A.a)(e.confirmation.queueList)})})},vn=Object(c.a)({DataStore:bn,DrawerStates:jn,NotificationStates:On}),yn=Object(c.b)(vn);s.a.render(Object(oe.jsx)(l.a,{store:yn,children:Object(oe.jsx)(o.a,{basename:"/",children:Object(oe.jsx)(fn,{})})}),document.getElementById("root"))}})); +//# sourceMappingURL=main.f834e978.js.map \ No newline at end of file diff --git a/www/view/build/static/js/main.04c34ef2.js.map b/www/view/build/static/js/main.f834e978.js.map similarity index 92% rename from www/view/build/static/js/main.04c34ef2.js.map rename to www/view/build/static/js/main.f834e978.js.map index 1ae1a6d..fbbb7ce 100644 --- a/www/view/build/static/js/main.04c34ef2.js.map +++ b/www/view/build/static/js/main.f834e978.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","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/unit/TitleList.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","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","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","detail","formatter","s1","s2","memberInfo","uid","roleName","repositoryLink","sourceName","branchLink","startHash","endHash","tagLink","mergeRequestLink","reviewer","ActivityItem","parsedData","Activity","paddingRight2","ActivityList","activityList","listFinshed","currentRepositoryKey","newValue","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","start","end","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","borderTop","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","overflowX","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","TitleList","list2","CommitList","searchInput","pageSize","currentDate","date","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","psConfirm","refSha","refUpdate","openRefItemMenu","psMore","closeRefItemMenu","more","refTitles","refListsDeal","listCount","whiteSpace","textOverflow","BranchList","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","keys","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","FormControlLabel","control","Checkbox","tabHeader","reviewersTitle","plAddAlt","reviewersMenuItem","divider","reviewersMember","noReviewers","activityTitle","activityItem","activityItemLine","merge","close","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","active","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","psLog","makeGroupDrawerConfig","psMerge","makeRepositoryDrawerConfig","psFile","psCommit","psBranch","psTag","Side","toggleDrawer","drawerContainer","drawerExpandControl","plMenuCollapse","Drawer","drawerPaper","containerExpanded","containerCollapsed","DrawerConfig","Comformation","openStatus","eventCount","rejectFn","acceptFn","onCancel","DialogContentText","DialogActions","onAccept","NotificationStates","confirmation","Notification","menuAnchor","loadMore","notificationOpenStatus","parse","url","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","_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","repository_pl","group_pl","file_pl","commit_pl","mergeRequest_pl","branch_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","browser","expand","times","full","invite","before","save","remove","modification","chose","contain","request","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","edit","confirm","Phrase","dashboard","general","advanced","profile","mail","phraseSeperator","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","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","_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.04c34ef2.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([480,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\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}\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","// 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 }\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 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 { 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 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\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.isRequired\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/', '_blank')\n }}>\n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://github.com/', '_blank')\n }}>\n \n \n \n {\n this.setState({ helpMenuAnchor: null })\n window.open('https://github.com/', '_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', '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\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\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 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\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 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 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 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 _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\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\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 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\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 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 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 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 _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","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/unit/TitleList.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","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","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","detail","formatter","s1","s2","memberInfo","uid","roleName","repositoryLink","sourceName","branchLink","startHash","endHash","tagLink","mergeRequestLink","reviewer","ActivityItem","parsedData","Activity","paddingRight2","ActivityList","activityList","listFinshed","currentRepositoryKey","newValue","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","start","end","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","borderTop","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","overflowX","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","TitleList","list2","CommitList","searchInput","pageSize","currentDate","date","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","psConfirm","refSha","refUpdate","openRefItemMenu","psMore","closeRefItemMenu","more","refTitles","refListsDeal","listCount","whiteSpace","textOverflow","BranchList","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","keys","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","FormControlLabel","control","Checkbox","tabHeader","reviewersTitle","plAddAlt","reviewersMenuItem","divider","reviewersMember","noReviewers","activityTitle","activityItem","activityItemLine","merge","close","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","active","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","psLog","makeGroupDrawerConfig","psMerge","makeRepositoryDrawerConfig","psFile","psCommit","psBranch","psTag","Side","toggleDrawer","drawerContainer","drawerExpandControl","plMenuCollapse","Drawer","drawerPaper","containerExpanded","containerCollapsed","DrawerConfig","Comformation","openStatus","eventCount","rejectFn","acceptFn","onCancel","DialogContentText","DialogActions","onAccept","NotificationStates","confirmation","Notification","menuAnchor","loadMore","notificationOpenStatus","parse","url","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","_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","repository_pl","group_pl","file_pl","commit_pl","mergeRequest_pl","branch_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","browser","expand","times","full","invite","before","save","remove","modification","chose","contain","request","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","edit","confirm","Phrase","dashboard","general","advanced","profile","mail","phraseSeperator","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","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","_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.f834e978.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([480,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\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}\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","// 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 }\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 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 { 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 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\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.isRequired\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/', '_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', '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\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\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 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\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 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 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 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 _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\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\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 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\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 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 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 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 _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 diff --git a/www/view/src/components/Header.js b/www/view/src/components/Header.js index 11178a2..fceab2f 100755 --- a/www/view/src/components/Header.js +++ b/www/view/src/components/Header.js @@ -161,14 +161,14 @@ class Header extends React.Component { { this.setState({ helpMenuAnchor: null }) - window.open('https://github.com/', '_blank') + window.open('https://github.com/PGYER/codefever/blob/master/doc/zh-cn/contribute/bug_fix_issue.md', '_blank') }}> { this.setState({ helpMenuAnchor: null }) - window.open('https://github.com/', '_blank') + window.open('https://github.com/PGYER/codefever', '_blank') }}>