plugin-git-manager 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client-v2.d.ts +2 -0
- package/client-v2.js +1 -0
- package/dist/client/326.03f7202ae14b60ae.js +10 -0
- package/dist/client/434.afb45fa69887568e.js +10 -0
- package/dist/client/878.f99a81c2e6b4f602.js +10 -0
- package/dist/client/index.js +1 -1
- package/dist/client-v2/326.42b7b53651ffab3a.js +10 -0
- package/dist/client-v2/434.e65de282926677d6.js +10 -0
- package/dist/client-v2/878.06d6d1fe4fdb05f8.js +10 -0
- package/dist/client-v2/index.js +10 -0
- package/dist/externalVersion.js +7 -6
- package/package.json +41 -37
- package/src/client-v2/index.tsx +1 -0
- package/src/client-v2/plugin.tsx +32 -0
- package/dist/client/228.7588a0707cb3694a.js +0 -10
- package/dist/client/597.1698c0124e2f95ce.js +0 -10
- package/dist/client/906.bea20db91f34f5e6.js +0 -10
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
"use strict";(self.webpackChunkplugin_git_manager=self.webpackChunkplugin_git_manager||[]).push([["878"],{205:function(e,t,r){r.d(t,{GitManagerSettings:function(){return e3}});var n=r(155),l=r.n(n),a=r(59),o=r(375),i=r(602),c=r(342),u=r(578);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function m(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){d(a,n,l,o,i,"next",e)}function i(e){d(a,n,l,o,i,"throw",e)}o(void 0)})}}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var h=a.Typography.Text,v=a.Input.Search,b=a.theme.useToken,E={ts:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),tsx:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),js:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),jsx:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),json:l().createElement(o.CodeOutlined,{style:{color:"#5b5b5b"}}),md:l().createElement(o.FileMarkdownOutlined,{style:{color:"#083fa1"}}),html:l().createElement(o.Html5Outlined,{style:{color:"#e34c26"}}),css:l().createElement(o.FileTextOutlined,{style:{color:"#563d7c"}}),py:l().createElement(o.CodeOutlined,{style:{color:"#3572A5"}}),png:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),jpg:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),svg:l().createElement(o.FileImageOutlined,{style:{color:"#ffb13b"}})},w=function(){var e,t=(0,u.k)(),r=b().token,s=(0,c.useAPIClient)(),d=(0,i.B)(),w=d.selectedRepo,S=d.branches,k=d.currentBranch,I=d.refreshBranches,x=y((0,n.useState)([]),2),C=x[0],O=x[1],A=y((0,n.useState)(!1),2),T=A[0],R=A[1],z=y((0,n.useState)(null),2),B=z[0],P=z[1],j=y((0,n.useState)(null),2),F=j[0],M=j[1],D=y((0,n.useState)("HEAD"),2),L=D[0],q=D[1],N=y((0,n.useState)(""),2),U=N[0],H=N[1],W=y((0,n.useState)(""),2),_=W[0],G=W[1],$=y((0,n.useState)(!1),2),K=$[0],V=$[1],J=(0,n.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:L;return m(function(){var r,n;return g(this,function(a){switch(a.label){case 0:if(!w)return[2,[]];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,s.request({url:"gitManager:fileTree",params:{repositoryId:w.id,ref:t,treePath:e}})];case 2:return[2,(Array.isArray(n=(null==(r=a.sent().data)?void 0:r.data)||r||[])?n:Array.isArray(null==n?void 0:n.data)?n.data:[]).map(function(e){return{key:e.path,title:l().createElement(h,{style:{fontSize:13}},e.name,"blob"===e.type&&e.size>0&&l().createElement(h,{type:"secondary",style:{fontSize:11,marginLeft:8}},e.size>1024?"".concat((e.size/1024).toFixed(1),"KB"):"".concat(e.size,"B"))),icon:function(e,t){if("tree"!==t){var r;return E[(null==(r=e.split(".").pop())?void 0:r.toLowerCase())||""]||l().createElement(o.FileOutlined,null)}}(e.name,e.type),isLeaf:"blob"===e.type,filePath:e.path,fileType:e.type}})];case 3:return console.warn("Failed to load file tree:",a.sent()),[2,[]];case 4:return[2]}})})()},[s,w,L]),Q=(0,n.useCallback)(function(){return m(function(){return g(this,function(e){switch(e.label){case 0:R(!0),e.label=1;case 1:return e.trys.push([1,,3,4]),[4,J("",L)];case 2:return O(e.sent()),[3,4];case 3:return R(!1),[7];case 4:return[2]}})})()},[J,L]);(0,n.useEffect)(function(){(null==w?void 0:w.status)==="connected"?(I(),P(null),M(null)):O([])},[w]),(0,n.useEffect)(function(){k&&"HEAD"===L&&q(k)},[k]),(0,n.useEffect)(function(){(null==w?void 0:w.status)==="connected"&&Q()},[L,w]);var X=(0,n.useRef)();if((0,n.useEffect)(function(){return X.current=setTimeout(function(){return G(U)},300),function(){return clearTimeout(X.current)}},[U]),!w)return l().createElement(a.Empty,{description:t("No repository selected")});if("connected"!==w.status)return l().createElement(a.Empty,{description:t("Repository not cloned yet")});var Y=_?function e(t,r){return t.map(function(t){if(t.children){var n=e(t.children,r);if(n.length>0)return f(p({},t),{children:n})}return(t.filePath||"").toLowerCase().includes(r)?t:null}).filter(Boolean)}(C,_.toLowerCase()):C;return l().createElement("div",{style:{display:"flex",height:"calc(100vh - 280px)",gap:0}},l().createElement("div",{style:{width:320,minWidth:280,borderRight:"1px solid ".concat(r.colorBorderSecondary),display:"flex",flexDirection:"column",background:r.colorBgContainer}},l().createElement("div",{style:{padding:"8px 12px",borderBottom:"1px solid ".concat(r.colorBorderSecondary)}},l().createElement(a.Space,{direction:"vertical",style:{width:"100%"},size:6},l().createElement(a.Select,{size:"small",style:{width:"100%"},value:L,onChange:function(e){q(e),P(null),M(null)},options:S.map(function(e){return{label:e,value:e}}),placeholder:"Branch"}),l().createElement(v,{size:"small",placeholder:"Filter files...",allowClear:!0,onChange:function(e){return H(e.target.value)}}))),l().createElement("div",{style:{flex:1,overflow:"auto",padding:"4px 0"}},T?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement(a.Tree,{showIcon:!0,treeData:Y,loadData:function(e){return m(function(){var t;return g(this,function(r){switch(r.label){case 0:if(e.children)return[2];return[4,J(e.filePath,L)];case 1:return t=r.sent(),O(function(r){return function e(t,r,n){return t.map(function(t){return t.key===r?f(p({},t),{children:n}):t.children?f(p({},t),{children:e(t.children,r,n)}):t})}(r,e.key,t)}),[2]}})})()},onSelect:function(e,t){return m(function(){var e,r,n,l;return g(this,function(a){switch(a.label){case 0:if(!(e=t.node).isLeaf)return[2];V(!0),M(e.filePath),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,s.request({url:"gitManager:fileContent",params:{repositoryId:w.id,ref:L,filePath:e.filePath}})];case 2:return P((null==(l=(null==(n=a.sent().data)||null==(r=n.data)?void 0:r.data)||(null==n?void 0:n.data))?void 0:l.content)||""),[3,5];case 3:return a.sent(),P("// Failed to load file content"),[3,5];case 4:return V(!1),[7];case 5:return[2]}})})()},selectedKeys:F?[F]:[],style:{fontSize:13},blockNode:!0}))),l().createElement("div",{style:{flex:1,display:"flex",flexDirection:"column",background:r.colorBgLayout}},F?l().createElement(l().Fragment,null,l().createElement("div",{style:{padding:"6px 16px",borderBottom:"1px solid ".concat(r.colorBorderSecondary),background:r.colorBgContainer,display:"flex",alignItems:"center",gap:8}},l().createElement(a.Breadcrumb,{items:F.split("/").map(function(e,t,r){return{title:t===r.length-1?l().createElement(h,{strong:!0},e):e}})}),l().createElement(h,{type:"secondary",style:{marginLeft:"auto",fontSize:12}},{ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",md:"markdown",html:"html",css:"css",scss:"scss",py:"python",sh:"bash",yml:"yaml",yaml:"yaml",sql:"sql",xml:"xml",java:"java",go:"go",rs:"rust",rb:"ruby"}[(null==(e=F.split(".").pop())?void 0:e.toLowerCase())||""]||"text")),l().createElement("div",{style:{flex:1,overflow:"auto"}},K?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement("pre",{style:{margin:0,padding:16,fontSize:13,lineHeight:1.6,fontFamily:"'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace",whiteSpace:"pre-wrap",wordBreak:"break-all",background:r.colorBgContainer,minHeight:"100%"}},(B||"").split("\n").map(function(e,t){return l().createElement("div",{key:t,style:{display:"flex"}},l().createElement("span",{style:{display:"inline-block",width:50,textAlign:"right",paddingRight:16,color:r.colorTextQuaternary,userSelect:"none",flexShrink:0}},t+1),l().createElement("span",{style:{flex:1}},e||" "))})))):l().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}},l().createElement(h,{type:"secondary"},"Select a file to view its content"))))},S=r(75);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function I(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function x(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){I(a,n,l,o,i,"next",e)}function i(e){I(a,n,l,o,i,"throw",e)}o(void 0)})}}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||O(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){if(e){if("string"==typeof e)return k(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return k(e,t)}}function A(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var T=function(e){var t,r,i=e.target,s=e.size,d=e.type,m=e.onTriggered,p=(0,u.k)(),f=(0,c.useAPIClient)(),y=(null==(t=S.useAIConfigRepository)?void 0:t.call(S))||{},g=((null==(r=S.useChatBoxActions)?void 0:r.call(S))||{}).triggerTask,h=C((0,n.useState)(!1),2),v=h[0],b=h[1],E=C((0,n.useState)([]),2),w=E[0],I=E[1],T=C((0,n.useState)(!1),2),R=T[0],z=T[1],B=C((0,n.useState)(!1),2),P=B[0],j=B[1],F=C((0,n.useState)(null),2),M=F[0],D=F[1],L=C(a.Form.useForm(),1)[0],q=(0,n.useCallback)(function(){var e=!1,t={repositoryId:i.repositoryId,targetType:i.type};return"mr"===i.type&&(t.mrIid=i.mrIid),"commit"===i.type&&(t.commitSha=i.commitSha),"branch"===i.type&&(t.branch=i.branch),f.request({url:"gitCodeReviews:list",params:{pageSize:1,sort:["-id"],filter:t}}).then(function(t){if(!e){var r;D(((null==t||null==(r=t.data)?void 0:r.data)||[])[0]||null)}}).catch(function(){}),function(){e=!0}},[f,i]);(0,n.useEffect)(function(){return q()},[q]);var N=(0,n.useCallback)(function(){return x(function(){var e,t;return A(this,function(r){switch(r.label){case 0:return[4,f.request({url:"gitReviewFlows:list",params:{pageSize:100,filter:{enabled:!0,$or:[{repositoryId:i.repositoryId},{repositoryId:null}]}}})];case 1:return I(t=(null==(e=r.sent().data)?void 0:e.data)||[]),[2,t]}})})()},[f,i.repositoryId]),U=(0,n.useCallback)(function(e){var t,r=e.find(function(e){return e.repositoryId===i.repositoryId});return null!=(t=null!=r?r:e[0])?t:null},[i.repositoryId]);(0,n.useEffect)(function(){if(v){var e=!1;return N().then(function(t){if(!e){var r=U(t);(null==r?void 0:r.id)&&L.setFieldValue("flowId",r.id)}}).catch(function(){}),function(){e=!0}}},[v,N,U,L]);var H=function(){var e=i.title||_();return"mr"===i.type?{type:"git-merge-request",uid:"".concat(i.repositoryId,":").concat(i.mrIid),title:e,content:{repositoryId:i.repositoryId,mrIid:i.mrIid,title:e}}:"commit"===i.type?{type:"git-commit",uid:"".concat(i.repositoryId,":").concat(i.commitSha),title:e,content:{repositoryId:i.repositoryId,commitSha:i.commitSha,title:e}}:{type:"git-repository",uid:String(i.repositoryId),title:e,content:{repositoryId:i.repositoryId,branch:i.branch,title:e}}},W=function(){return x(function(){var e,t,r,n,l,o;return A(this,function(c){switch(c.label){case 0:if(!g||!(null==y?void 0:y.getAIEmployees))return a.message.warning(p("AI plugin is not available")),[2];j(!0),c.label=1;case 1:if(c.trys.push([1,9,10,11]),!w.length)return[3,2];return t=w,[3,4];case 2:return[4,N()];case 3:t=c.sent(),c.label=4;case 4:if(!(null==(r=U(t))?void 0:r.aiEmployeeUsername))return a.message.warning(p("No matching flow available")),[2];if(!(null==(e=y.aiEmployees)?void 0:e.length))return[3,5];return n=y.aiEmployees,[3,7];case 5:return[4,y.getAIEmployees()];case 6:n=c.sent(),c.label=7;case 7:if(!(l=n.find(function(e){return e.username===r.aiEmployeeUsername})))return a.message.warning(p("AI employee not found")),[2];return[4,g({aiEmployee:l,tasks:[{title:"".concat(r.name,": ").concat(_()),message:{user:"mr"===i.type?"Please review merge request !".concat(i.mrIid," (").concat(i.title||"untitled","). Use the attached Git merge request context and the available git tools when you need more detail."):"commit"===i.type?"Please review commit ".concat(i.commitSha," (").concat(i.title||"untitled","). Use the attached Git commit context and the available git tools when you need more detail."):"Please help me inspect branch ".concat(i.branch,". Use the attached Git repository context and the available git tools when you need more detail."),system:r.instructions||void 0,workContext:[H()]},model:r.llmService&&r.model?{llmService:r.llmService,model:r.model}:null,autoSend:!1}]})];case 8:return c.sent(),[3,11];case 9:return o=c.sent(),a.message.error((null==o?void 0:o.message)||p("Failed to open AI chat")),[3,11];case 10:return j(!1),[7];case 11:return[2]}})})()},_=function(){return"mr"===i.type?"MR !".concat(i.mrIid):"commit"===i.type?"Commit ".concat(String(i.commitSha).slice(0,7)):"Branch ".concat(i.branch)},G=M&&M.headSha&&M.latestSha&&M.headSha!==M.latestSha,$=!!M&&"pending"!==M.status,K=$?G?p("Re-review (new commits)"):p("Re-run review"):p("Code Review"),V=$?o.ReloadOutlined:o.RobotOutlined,J=(0,n.useMemo)(function(){var e;return[{key:"run",icon:l().createElement(o.ThunderboltOutlined,null),label:$?p("Re-run automated review"):p("Run automated review"),onClick:function(){return b(!0)}}].concat(function(e){if(Array.isArray(e))return k(e)}(e=M?[{key:"view",icon:l().createElement(o.RobotOutlined,null),label:p("Status: ".concat(M.status))+" - "+p("View in Review History tab"),onClick:function(){a.message.info(p('Please switch to the "Review History" tab to see the details.'))}}]:[])||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[{key:"chat",icon:l().createElement(o.MessageOutlined,null),label:p("Ask AI Employee"),onClick:W,disabled:P}])},[$,M,P,W]);return l().createElement(l().Fragment,null,l().createElement(a.Dropdown,{menu:{items:J},placement:"bottomRight",trigger:["click"]},l().createElement(a.Button,{size:void 0===s?"small":s,type:G?"primary":void 0===d?"default":d,icon:l().createElement(V,null),danger:!!G,loading:P},K)),l().createElement(a.Modal,{title:l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),l().createElement("span",null,$?p("Re-run code review"):p("Run code review")),l().createElement("span",{style:{color:"#999",fontSize:12,fontWeight:400}},_())),open:v,onCancel:function(){return b(!1)},onOk:function(){return x(function(){var e,t,r,n,l,o,c,u,s,d,y;return A(this,function(g){switch(g.label){case 0:return g.trys.push([0,3,4,5]),[4,L.validateFields()];case 1:return r=g.sent(),z(!0),n={repositoryId:i.repositoryId,targetType:i.type,flowId:r.flowId,extraInstructions:r.extraInstructions||void 0},"mr"===i.type&&(n.mrIid=i.mrIid),"commit"===i.type&&(n.commitSha=i.commitSha),"branch"===i.type&&(n.branch=i.branch),[4,f.request({url:"gitManager:triggerReview",method:"post",data:n})];case 2:return o=null==(l=g.sent())||null==(t=l.data)||null==(e=t.data)?void 0:e.reviewId,a.message.success(p("Review started")),b(!1),L.resetFields(),q(),null==m||m(o),[3,5];case 3:if(null==(c=g.sent())?void 0:c.errorFields)return[2];return a.message.error((null==c||null==(y=c.response)||null==(d=y.data)||null==(s=d.errors)||null==(u=s[0])?void 0:u.message)||(null==c?void 0:c.message)||p("Failed to trigger review")),[3,5];case 4:return z(!1),[7];case 5:return[2]}})})()},okText:$?p("Re-run"):p("Start Review"),confirmLoading:R,destroyOnClose:!0},$&&l().createElement(a.Alert,{type:G?"warning":"info",showIcon:!0,style:{marginBottom:12},message:G?p("New commits detected since last review. Re-running will overwrite the existing review."):p("A review already exists for this target. Re-running will overwrite it."),description:l().createElement(a.Space,{size:8,wrap:!0,style:{fontSize:12}},(null==M?void 0:M.headSha)&&l().createElement("span",null,p("Reviewed at"),":\xa0",l().createElement(a.Tag,{style:{fontFamily:"monospace"}},String(M.headSha).slice(0,7))),G&&(null==M?void 0:M.latestSha)&&l().createElement("span",null,p("Latest"),":\xa0",l().createElement(a.Tag,{color:"orange",style:{fontFamily:"monospace"}},String(M.latestSha).slice(0,7))))}),l().createElement(a.Form,{form:L,layout:"vertical"},l().createElement(a.Form.Item,{name:"flowId",label:p("Review Flow"),rules:[{required:!0,message:p("Please select a review flow")}],extra:0===w.length?l().createElement(a.Tooltip,{title:p("Create a review flow in the Review Flows tab first")},l().createElement("span",{style:{color:"#faad14"}},p("No enabled flow found for this repository"))):null},l().createElement(a.Select,{options:w.map(function(e){return{value:e.id,label:"".concat(e.name).concat(e.aiEmployeeUsername?" — @".concat(e.aiEmployeeUsername):"").concat(null==e.repositoryId?" (".concat(p("global"),")"):"")}}),placeholder:p("Select a review flow")})),l().createElement(a.Form.Item,{name:"extraInstructions",label:p("Extra instructions (optional)")},l().createElement(a.Input.TextArea,{rows:4,placeholder:p("e.g. Focus on security issues in authentication")})))))};function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function z(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function B(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){z(a,n,l,o,i,"next",e)}function i(e){z(a,n,l,o,i,"throw",e)}o(void 0)})}}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return R(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return R(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var F=a.Typography.Text,M=a.theme.useToken,D={A:{color:"green",icon:l().createElement(o.PlusCircleOutlined,null),label:"Added"},M:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},D:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},R:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"}},L=function(){var e,t,r=(0,u.k)(),s=M().token,d=(0,c.useAPIClient)(),m=(0,i.B)(),p=m.selectedRepo,f=m.branches,y=m.currentBranch,g=P((0,n.useState)([]),2),h=g[0],v=g[1],b=P((0,n.useState)(!1),2),E=b[0],w=b[1],S=P((0,n.useState)(null),2),k=S[0],I=S[1],x=P((0,n.useState)(null),2),C=x[0],O=x[1],A=P((0,n.useState)(!1),2),R=A[0],z=A[1],L=P((0,n.useState)(null),2),U=L[0],H=L[1],W=P((0,n.useState)(null),2),_=W[0],G=W[1],$=P((0,n.useState)(""),2),K=$[0],V=$[1],J=(0,n.useCallback)(function(){return B(function(){var e,t,r;return j(this,function(n){switch(n.label){case 0:if(!p)return[2];w(!0),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:log",params:{repositoryId:p.id,maxCount:100}})];case 2:return v((null==(r=(null==(t=n.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data))?void 0:r.all)||[]),[3,5];case 3:return console.warn("Failed to load commit history:",n.sent()),v([]),[3,5];case 4:return w(!1),[7];case 5:return[2]}})})()},[d,p]);(0,n.useEffect)(function(){(null==p?void 0:p.status)==="connected"?J():v([])},[p]);var Q=h.filter(function(e){var t=K.trim().toLowerCase();return!t||String(e.message||e.subject||e.body||"").toLowerCase().includes(t)}),X=function(e){return B(function(){var t,r;return j(this,function(n){switch(n.label){case 0:I(e),z(!0),H(null),G(null),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:commitDetail",params:{repositoryId:p.id,commitHash:e.hash}})];case 2:return O((null==(r=n.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)),[3,5];case 3:return n.sent(),O(null),[3,5];case 4:return z(!1),[7];case 5:return[2]}})})()};if(!p)return l().createElement(a.Empty,{description:r("No repository selected")});if("connected"!==p.status)return l().createElement(a.Empty,{description:r("Repository not cloned yet")});var Y=[{title:"",key:"graph",width:40,render:function(e,t,r){return l().createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",height:"100%"}},l().createElement("div",{style:{width:10,height:10,borderRadius:"50%",background:0===r?s.colorPrimary:s.colorBorder,border:"2px solid ".concat(0===r?s.colorPrimary:s.colorBorder),zIndex:1}}))}},{title:r("Message"),dataIndex:"message",key:"message",render:function(e,t){return l().createElement("div",null,l().createElement(F,{strong:!0,style:{fontSize:13}},e),l().createElement("div",{style:{marginTop:2}},l().createElement(F,{type:"secondary",style:{fontSize:12}},l().createElement(o.UserOutlined,{style:{marginRight:4}}),t.author_name,l().createElement("span",{style:{margin:"0 8px"}},"\xb7"),l().createElement(o.ClockCircleOutlined,{style:{marginRight:4}}),N(t.date))))}},{title:"Hash",dataIndex:"hash",key:"hash",width:100,render:function(e){return l().createElement(F,{code:!0,copyable:!0,style:{fontSize:12}},null==e?void 0:e.substring(0,7))}},{title:"",key:"action",width:80,render:function(e,t){return l().createElement(a.Button,{size:"small",icon:l().createElement(o.DiffOutlined,null),onClick:function(){return X(t)}},"Detail")}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",alignItems:"center",gap:12}},l().createElement(o.BranchesOutlined,null),l().createElement(a.Select,{size:"small",style:{width:200},value:y,options:f.map(function(e){return{label:e,value:e}}),disabled:!0}),l().createElement(a.Input.Search,{allowClear:!0,size:"small",style:{width:280},placeholder:r("Search commit title or message"),value:K,onChange:function(e){return V(e.target.value)}}),l().createElement(F,{type:"secondary"},Q.length," commits")),E?l().createElement(a.Spin,null):l().createElement(a.Table,{dataSource:Q,columns:Y,rowKey:"hash",size:"small",pagination:{pageSize:30,showSizeChanger:!0},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){return X(e)}}}}),l().createElement(a.Drawer,{title:k?l().createElement("div",null,l().createElement(F,{strong:!0},k.message),l().createElement("div",null,l().createElement(F,{type:"secondary",style:{fontSize:12}},null==(e=k.hash)?void 0:e.substring(0,7)," \xb7 ",k.author_name," \xb7 ",N(k.date)))):"Commit Detail",open:!!k,onClose:function(){I(null),O(null),H(null),G(null)},width:800,extra:k&&p?l().createElement(T,{target:{type:"commit",repositoryId:p.id,commitSha:k.hash,title:k.message},size:"small"}):null},R?l().createElement(a.Spin,null):C?l().createElement("div",null,l().createElement(F,{strong:!0},"Changed Files (",(null==(t=C.files)?void 0:t.length)||0,")"),l().createElement(a.List,{size:"small",style:{marginTop:8},dataSource:C.files||[],renderItem:function(e){var t=D[e.status]||D.M,r=_===e.file;return l().createElement(a.List.Item,{style:{cursor:"pointer",background:r?s.colorPrimaryBg:void 0,padding:"6px 12px",borderRadius:4},onClick:function(){var t,r;return t=k.hash,r=e.file,B(function(){var e,n;return j(this,function(l){switch(l.label){case 0:G(r),l.label=1;case 1:return l.trys.push([1,3,,4]),[4,d.request({url:"gitManager:diff",params:{repositoryId:p.id,commitHash:t,file:r}})];case 2:return H((null==(n=l.sent().data)||null==(e=n.data)?void 0:e.data)||(null==n?void 0:n.data)||""),[3,4];case 3:return l.sent(),H("// Failed to load diff"),[3,4];case 4:return[2]}})})()}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:70,textAlign:"center"}},t.icon," ",t.label),l().createElement(F,{style:{fontSize:13}},e.file)))}}),null!==U&&l().createElement("div",{style:{marginTop:16}},l().createElement(F,{strong:!0,style:{display:"block",marginBottom:8}},l().createElement(o.FileTextOutlined,null)," ",_),l().createElement(q,{content:U}))):null))},q=(0,n.memo)(function(e){var t=e.content,r=M().token,n=t.split("\n");return l().createElement("div",{style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:12,lineHeight:1.5,border:"1px solid ".concat(r.colorBorderSecondary),borderRadius:6,overflow:"auto",maxHeight:500}},n.map(function(e,t){var n="transparent",a=r.colorText;return e.startsWith("+")&&!e.startsWith("+++")?(n="rgba(46, 160, 67, 0.12)",a="#2ea043"):e.startsWith("-")&&!e.startsWith("---")?(n="rgba(248, 81, 73, 0.12)",a="#f85149"):e.startsWith("@@")?(n="rgba(56, 139, 253, 0.08)",a="#388bfd"):(e.startsWith("diff")||e.startsWith("index"))&&(a=r.colorTextSecondary),l().createElement("div",{key:t,style:{padding:"0 12px",background:n,color:a,whiteSpace:"pre",minHeight:20}},l().createElement("span",{style:{display:"inline-block",width:40,color:r.colorTextQuaternary,userSelect:"none",textAlign:"right",marginRight:12}},t+1),e)}))});function N(e){if(!e)return"";var t=new Date(e),r=new Date().getTime()-t.getTime(),n=r/36e5;return n<1?"".concat(Math.round(r/6e4),"m ago"):n<24?"".concat(Math.round(n),"h ago"):n<168?"".concat(Math.round(n/24),"d ago"):t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function H(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function W(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){H(a,n,l,o,i,"next",e)}function i(e){H(a,n,l,o,i,"throw",e)}o(void 0)})}}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return U(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return U(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function G(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var $=a.Typography.Text;a.Typography.Paragraph,a.Typography.Title;var K=a.theme.useToken,V={opened:{color:"blue",icon:l().createElement(o.MergeOutlined,null),label:"Open"},merged:{color:"purple",icon:l().createElement(o.CheckCircleOutlined,null),label:"Merged"},closed:{color:"red",icon:l().createElement(o.CloseCircleOutlined,null),label:"Closed"}},J=function(){var e,t,r=(0,u.k)(),s=K().token,d=(0,c.useAPIClient)(),m=(0,i.B)().selectedRepo,p=_((0,n.useState)([]),2),f=p[0],y=p[1],g=_((0,n.useState)(!1),2),h=g[0],v=g[1],b=_((0,n.useState)("opened"),2),E=b[0],w=b[1],S=_((0,n.useState)(""),2),k=S[0],I=S[1],x=_((0,n.useState)({page:1,perPage:20,total:0,totalPages:0}),2),C=x[0],O=x[1],A=_((0,n.useState)(null),2),R=A[0],z=A[1],B=_((0,n.useState)(null),2),P=B[0],j=B[1],F=_((0,n.useState)(!1),2),M=F[0],D=F[1],L=_((0,n.useState)([]),2),q=L[0],N=L[1],U=_((0,n.useState)(!1),2);U[0],U[1];var H=(0,n.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return W(function(){var t,r;return G(this,function(n){switch(n.label){case 0:if(!m)return[2];v(!0),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:mergeRequests",params:{repositoryId:m.id,state:E,search:k||void 0,page:e,perPage:20}})];case 2:return y((null==(r=(null==(t=n.sent().data)?void 0:t.data)||t)?void 0:r.data)||[]),(null==r?void 0:r.pagination)&&O(r.pagination),[3,5];case 3:return n.sent(),y([]),[3,5];case 4:return v(!1),[7];case 5:return[2]}})})()},[d,m,E,k]);(0,n.useEffect)(function(){(null==m?void 0:m.status)==="connected"?H(1):y([])},[m,E]);var J=function(e){return W(function(){var t,r,n,l,a,o,i,c,u,s;return G(this,function(p){switch(p.label){case 0:z(e),D(!0),N([]),p.label=1;case 1:return p.trys.push([1,3,4,5]),[4,Promise.all([d.request({url:"gitManager:mergeRequestDetail",params:{repositoryId:m.id,mrIid:e.iid}}),d.request({url:"gitManager:mergeRequestNotes",params:{repositoryId:m.id,mrIid:e.iid}})])];case 2:return c=(i=_.apply(void 0,[p.sent(),2]))[0],u=i[1],j((null==c||null==(r=c.data)||null==(t=r.data)?void 0:t.data)||(null==c||null==(n=c.data)?void 0:n.data)),N(Array.isArray(s=(null==u||null==(a=u.data)||null==(l=a.data)?void 0:l.data)||(null==u||null==(o=u.data)?void 0:o.data))?s:[]),[3,5];case 3:return p.sent(),j(null),[3,5];case 4:return D(!1),[7];case 5:return[2]}})})()};if(!m)return l().createElement(a.Empty,{description:r("No repository selected")});if("connected"!==m.status)return l().createElement(a.Empty,{description:r("Repository not cloned yet")});var X=[{title:"",key:"state_icon",width:40,render:function(e,t){var r=V[t.state]||V.opened;return l().createElement(a.Tooltip,{title:r.label},l().createElement("span",{style:{color:s["color".concat("blue"===r.color?"Primary":"purple"===r.color?"PurpleText":"Error")]||r.color,fontSize:16}},r.icon))}},{title:r("Title"),key:"title",render:function(e,t){var n,i;return l().createElement("div",null,l().createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},t.draft&&l().createElement(a.Tag,{color:"default",style:{fontSize:11,lineHeight:"16px"}},"DRAFT"),l().createElement($,{strong:!0,style:{fontSize:13}},t.title),t.hasConflicts&&l().createElement(a.Tooltip,{title:r("Has conflicts")},l().createElement(o.ExclamationCircleOutlined,{style:{color:s.colorWarning}}))),l().createElement("div",{style:{marginTop:2}},l().createElement($,{type:"secondary",style:{fontSize:12}},"!",t.iid,l().createElement("span",{style:{margin:"0 6px"}},"\xb7"),l().createElement(o.UserOutlined,{style:{marginRight:3}}),(null==(n=t.author)?void 0:n.name)||(null==(i=t.author)?void 0:i.username)||"Unknown",l().createElement("span",{style:{margin:"0 6px"}},"\xb7"),l().createElement(o.ClockCircleOutlined,{style:{marginRight:3}}),et(t.updatedAt))))}},{title:"",key:"branches",width:250,render:function(e,t){return l().createElement("div",{style:{fontSize:12}},l().createElement(a.Tag,{color:"blue",style:{fontSize:11}},l().createElement(o.BranchesOutlined,null)," ",t.sourceBranch),l().createElement("span",{style:{margin:"0 4px",color:s.colorTextSecondary}},"→"),l().createElement(a.Tag,{color:"green",style:{fontSize:11}},l().createElement(o.BranchesOutlined,null)," ",t.targetBranch))}},{title:"",key:"labels",width:180,render:function(e,t){var r;return l().createElement(a.Space,{size:2,wrap:!0},(t.labels||[]).slice(0,3).map(function(e){return l().createElement(a.Tag,{key:e,style:{fontSize:11}},e)}),(null==(r=t.labels)?void 0:r.length)>3&&l().createElement($,{type:"secondary",style:{fontSize:11}},"+",t.labels.length-3))}},{title:"",key:"meta",width:120,render:function(e,t){var r;return l().createElement(a.Space,{size:12},t.userNotesCount>0&&l().createElement(a.Tooltip,{title:"".concat(t.userNotesCount," comments")},l().createElement(a.Badge,{count:t.userNotesCount,size:"small",color:s.colorTextSecondary},l().createElement(o.CommentOutlined,{style:{fontSize:14,color:s.colorTextSecondary}}))),(null==(r=t.assignees)?void 0:r.length)>0&&l().createElement(a.Avatar.Group,{size:"small",max:{count:2}},t.assignees.map(function(e){var t;return l().createElement(a.Tooltip,{key:e.username,title:e.name},l().createElement(a.Avatar,{size:"small",src:e.avatarUrl},null==(t=e.name)?void 0:t[0]))})))}},{title:"",key:"actions",width:160,render:function(e,t){return l().createElement(a.Space,{onClick:function(e){return e.stopPropagation()}},l().createElement(T,{target:{type:"mr",repositoryId:m.id,mrIid:t.iid,title:t.title},size:"small"}),l().createElement(a.Tooltip,{title:r("View Details")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.FileTextOutlined,null),onClick:function(e){e.stopPropagation(),J(t)}})),l().createElement(a.Tooltip,{title:r("Open in GitLab")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.ExportOutlined,null),onClick:function(e){e.stopPropagation(),window.open(t.webUrl,"_blank")}})))}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"}},l().createElement(a.Select,{size:"small",style:{width:140},value:E,onChange:function(e){return w(e)},options:[{label:"\uD83D\uDFE2 ".concat(r("Open")),value:"opened"},{label:"\uD83D\uDFE3 ".concat(r("Merged")),value:"merged"},{label:"\uD83D\uDD34 ".concat(r("Closed")),value:"closed"},{label:"\uD83D\uDCCB ".concat(r("All")),value:"all"}]}),l().createElement(a.Input.Search,{size:"small",style:{width:260},placeholder:r("Search merge requests..."),value:k,onChange:function(e){return I(e.target.value)},onSearch:function(){H(1)},allowClear:!0}),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:function(){return H(1)}},r("Refresh")),l().createElement($,{type:"secondary",style:{fontSize:12}},null!=C.total?"".concat(C.total," ").concat(r("total")):"")),h?l().createElement(a.Spin,null):l().createElement(a.Table,{dataSource:f,columns:X,rowKey:"iid",size:"small",pagination:{current:C.page,pageSize:C.perPage,total:C.total||void 0,onChange:function(e){return H(e)},showSizeChanger:!1},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){return J(e)}}}}),l().createElement(a.Drawer,{title:R?l().createElement("div",null,l().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},(e=V[R.state]||V.opened,l().createElement(a.Tag,{color:e.color},e.icon," ",e.label)),R.draft&&l().createElement(a.Tag,null,"DRAFT"),l().createElement($,{strong:!0,style:{fontSize:15}},"!",R.iid)),l().createElement($,{strong:!0,style:{fontSize:16,display:"block",marginTop:4}},R.title)):r("Merge Request"),open:!!R,onClose:function(){z(null),j(null),N([])},width:900,extra:R&&l().createElement(a.Space,null,l().createElement(T,{target:{type:"mr",repositoryId:m.id,mrIid:R.iid,title:R.title},size:"small"}),l().createElement(a.Button,{type:"link",icon:l().createElement(o.ExportOutlined,null),onClick:function(){return window.open(R.webUrl,"_blank")}},r("Open in GitLab")))},M?l().createElement(a.Spin,null):P?l().createElement(a.Tabs,{defaultActiveKey:"overview",items:[{key:"overview",label:r("Overview"),children:l().createElement(Q,{mr:P})},{key:"changes",label:"".concat(r("Changes")," (").concat((null==(t=P.changes)?void 0:t.length)||0,")"),children:l().createElement(Y,{changes:P.changes||[]})},{key:"comments",label:l().createElement(a.Badge,{count:q.length,size:"small",offset:[6,0]},r("Comments")),children:l().createElement(Z,{notes:q})}]}):null))},Q=function(e){var t,r,n,i,c=e.mr,s=(0,u.k)(),d=K().token;return l().createElement("div",null,l().createElement("div",{style:{padding:"12px 16px",background:d.colorBgLayout,borderRadius:8,marginBottom:16,display:"flex",alignItems:"center",gap:8}},l().createElement(a.Tag,{color:"blue"},l().createElement(o.BranchesOutlined,null)," ",c.sourceBranch),l().createElement("span",{style:{color:d.colorTextSecondary,fontSize:16}},"→"),l().createElement(a.Tag,{color:"green"},l().createElement(o.BranchesOutlined,null)," ",c.targetBranch),c.hasConflicts&&l().createElement(a.Tag,{color:"warning",icon:l().createElement(o.ExclamationCircleOutlined,null)},s("Has conflicts"))),c.description&&l().createElement("div",{style:{marginBottom:16}},l().createElement($,{strong:!0},s("Description")),l().createElement("div",{style:{marginTop:8,padding:"12px 16px",background:d.colorBgLayout,borderRadius:8,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:13,lineHeight:1.6}},c.description)),l().createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px 24px",fontSize:13}},l().createElement(X,{label:s("Author"),value:c.author&&l().createElement(a.Space,{size:6},l().createElement(a.Avatar,{size:"small",src:c.author.avatarUrl},null==(t=c.author.name)?void 0:t[0]),l().createElement($,null,c.author.name),l().createElement($,{type:"secondary"},"@",c.author.username))}),l().createElement(X,{label:s("Assignees"),value:(null==(r=c.assignees)?void 0:r.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.assignees.map(function(e){var t;return l().createElement(a.Tooltip,{key:e.username,title:e.name},l().createElement(a.Tag,{icon:l().createElement(a.Avatar,{size:14,src:e.avatarUrl},null==(t=e.name)?void 0:t[0])},e.name))})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Reviewers"),value:(null==(n=c.reviewers)?void 0:n.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.reviewers.map(function(e){return l().createElement(a.Tag,{key:e.username},e.name)})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Labels"),value:(null==(i=c.labels)?void 0:i.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.labels.map(function(e){return l().createElement(a.Tag,{key:e},e)})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Created"),value:l().createElement($,null,er(c.createdAt))}),l().createElement(X,{label:s("Updated"),value:l().createElement($,null,er(c.updatedAt))}),c.mergedBy&&l().createElement(X,{label:s("Merged by"),value:l().createElement($,null,c.mergedBy.name," — ",er(c.mergedAt))}),c.closedBy&&l().createElement(X,{label:s("Closed by"),value:l().createElement($,null,c.closedBy.name," — ",er(c.closedAt))})))},X=function(e){var t=e.label,r=e.value;return l().createElement("div",null,l().createElement($,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:2}},t),l().createElement("div",null,r))},Y=function(e){var t=e.changes,r=K().token,o=(0,u.k)(),i=_((0,n.useState)(null),2),c=i[0],s=i[1];return t.length?l().createElement("div",null,t.map(function(e,t){var n=e.newPath||e.oldPath,o=c===n,i=null;return i=e.newFile?l().createElement(a.Tag,{color:"green"},"NEW"):e.deletedFile?l().createElement(a.Tag,{color:"red"},"DEL"):e.renamedFile?l().createElement(a.Tag,{color:"orange"},"RENAMED"):l().createElement(a.Tag,{color:"blue"},"MOD"),l().createElement("div",{key:t,style:{marginBottom:8}},l().createElement("div",{style:{padding:"6px 12px",background:o?r.colorPrimaryBg:r.colorBgLayout,borderRadius:6,cursor:"pointer",display:"flex",alignItems:"center",gap:8},onClick:function(){return s(o?null:n)}},i,l().createElement($,{style:{fontSize:13,fontFamily:"monospace"}},n),e.renamedFile&&e.oldPath!==e.newPath&&l().createElement($,{type:"secondary",style:{fontSize:11}},"(← ",e.oldPath,")")),o&&e.diff&&l().createElement(ee,{content:e.diff}))})):l().createElement(a.Empty,{description:o("No changes")})},Z=function(e){var t=e.notes,r=K().token,n=(0,u.k)();return t.length?l().createElement("div",null,t.map(function(e){var t,o,i,c,u;return l().createElement("div",{key:e.id,style:{padding:"12px 16px",marginBottom:12,background:r.colorBgLayout,borderRadius:8,borderLeft:"3px solid ".concat(e.resolved?r.colorSuccess:r.colorBorderSecondary)}},l().createElement("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8}},l().createElement(a.Avatar,{size:"small",src:null==(t=e.author)?void 0:t.avatarUrl},null==(i=e.author)||null==(o=i.name)?void 0:o[0]),l().createElement($,{strong:!0,style:{fontSize:13}},null==(c=e.author)?void 0:c.name),l().createElement($,{type:"secondary",style:{fontSize:12}},"@",null==(u=e.author)?void 0:u.username),l().createElement($,{type:"secondary",style:{fontSize:11,marginLeft:"auto"}},et(e.createdAt)),e.resolvable&&l().createElement(a.Tag,{color:e.resolved?"success":"default",style:{fontSize:11}},e.resolved?n("Resolved"):n("Unresolved"))),l().createElement("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:13,lineHeight:1.6}},e.body))})):l().createElement(a.Empty,{description:n("No comments")})},ee=(0,n.memo)(function(e){var t=e.content,r=K().token,n=t.split("\n");return l().createElement("div",{style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:12,lineHeight:1.5,border:"1px solid ".concat(r.colorBorderSecondary),borderRadius:6,overflow:"auto",maxHeight:400,margin:"4px 0"}},n.map(function(e,t){var n="transparent",a=r.colorText;return e.startsWith("+")&&!e.startsWith("+++")?(n="rgba(46, 160, 67, 0.12)",a="#2ea043"):e.startsWith("-")&&!e.startsWith("---")?(n="rgba(248, 81, 73, 0.12)",a="#f85149"):e.startsWith("@@")?(n="rgba(56, 139, 253, 0.08)",a="#388bfd"):(e.startsWith("diff")||e.startsWith("index"))&&(a=r.colorTextSecondary),l().createElement("div",{key:t,style:{padding:"0 12px",background:n,color:a,whiteSpace:"pre",minHeight:20}},l().createElement("span",{style:{display:"inline-block",width:40,color:r.colorTextQuaternary,userSelect:"none",textAlign:"right",marginRight:12}},t+1),e)}))});function et(e){if(!e)return"";var t=new Date(e),r=new Date().getTime()-t.getTime(),n=r/36e5;return n<1?"".concat(Math.round(r/6e4),"m ago"):n<24?"".concat(Math.round(n),"h ago"):n<168?"".concat(Math.round(n/24),"d ago"):t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}function er(e){return e?new Date(e).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function en(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function el(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function ea(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){el(a,n,l,o,i,"next",e)}function i(e){el(a,n,l,o,i,"throw",e)}o(void 0)})}}function eo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||ec(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ei(e){return function(e){if(Array.isArray(e))return en(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ec(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ec(e,t){if(e){if("string"==typeof e)return en(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return en(e,t)}}function eu(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var es=a.Typography.Text,ed=a.theme.useToken,em={not_added:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"New"},modified:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},deleted:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},renamed:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"},conflicted:{color:"red",icon:l().createElement(o.WarningOutlined,null),label:"Conflict"},created:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"Created"}},ep=function(){var e,t,r,s,d,m,p=(0,u.k)(),f=ed().token,y=(0,c.useAPIClient)(),g=(0,i.B)(),h=g.selectedRepo,v=g.refreshRepos,b=eo((0,n.useState)(null),2),E=b[0],w=b[1],S=eo((0,n.useState)(null),2),k=S[0],I=S[1],x=eo((0,n.useState)(null),2),C=x[0],O=x[1],A=(0,n.useCallback)(function(){return ea(function(){var e,t;return eu(this,function(r){switch(r.label){case 0:if(!h||"connected"!==h.status)return I(null),[2];w("status"),r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,y.request({url:"gitManager:status",method:"post",params:{repositoryId:h.id}})];case 2:return I((null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)),[3,5];case 3:return console.warn("Failed to load git status:",r.sent()),I(null),[3,5];case 4:return w(null),[7];case 5:return[2]}})})()},[y,h]);(0,n.useEffect)(function(){A()},[A]);var T=(0,n.useCallback)(function(e){return ea(function(){var t,r,n,l,o,i,c,u,s;return eu(this,function(d){switch(d.label){case 0:if(!h)return[2];w(e),O(null),d.label=1;case 1:return d.trys.push([1,6,7,8]),[4,y.request({url:"gitManager:".concat(e),method:"post",params:{repositoryId:h.id}})];case 2:if(r=d.sent().data,O({action:e,success:!0,message:p("{{action}} completed successfully",{action:e})}),a.message.success(p("{{action}} completed",{action:e})),n=(null==r||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data),"status"===e&&I(n),"fetch"!==e&&"pull"!==e)return[3,4];return[4,A()];case 3:d.sent(),d.label=4;case 4:return[4,v()];case 5:return d.sent(),[3,8];case 6:return s=(null==(l=d.sent())||null==(u=l.response)||null==(c=u.data)||null==(i=c.errors)||null==(o=i[0])?void 0:o.message)||p("{{action}} failed",{action:e}),O({action:e,success:!1,message:s}),a.message.error(s),[3,8];case 7:return w(null),[7];case 8:return[2]}})})()},[y,h,v,A]);if(!h)return l().createElement(a.Empty,{description:p("No repository selected")});if("connected"!==h.status)return l().createElement(a.Empty,{description:p("Repository not cloned yet")});var R=k?ei((null==(e=k.not_added)?void 0:e.map(function(e){return{file:e,status:"not_added"}}))||[]).concat(ei((null==(t=k.modified)?void 0:t.map(function(e){return{file:e,status:"modified"}}))||[]),ei((null==(r=k.deleted)?void 0:r.map(function(e){return{file:e,status:"deleted"}}))||[]),ei((null==(s=k.renamed)?void 0:s.map(function(e){return{file:"string"==typeof e?e:e.to,status:"renamed"}}))||[]),ei((null==(d=k.conflicted)?void 0:d.map(function(e){return{file:e,status:"conflicted"}}))||[]),ei((null==(m=k.created)?void 0:m.map(function(e){return{file:e,status:"created"}}))||[])):[];return l().createElement("div",null,l().createElement(a.Space,{size:"middle",wrap:!0,style:{marginBottom:24}},l().createElement(a.Button,{size:"large",icon:l().createElement(o.SyncOutlined,null),loading:"fetch"===E,onClick:function(){return T("fetch")}},p("Fetch")),l().createElement(a.Button,{size:"large",type:"primary",icon:l().createElement(o.CloudDownloadOutlined,null),loading:"pull"===E,onClick:function(){return T("pull")}},p("Pull")),l().createElement(a.Button,{size:"large",icon:l().createElement(o.BranchesOutlined,null),loading:"status"===E,onClick:A},p("Status"))),C&&l().createElement(a.Card,{size:"small",style:{marginBottom:16,borderColor:C.success?f.colorSuccessBorder:f.colorErrorBorder}},l().createElement(a.Space,null,C.success?l().createElement(o.CheckCircleOutlined,{style:{color:f.colorSuccess}}):l().createElement(o.WarningOutlined,{style:{color:f.colorError}}),l().createElement(es,{strong:!0},C.action),l().createElement(es,null,C.message))),k&&l().createElement(a.Card,{title:p("Working Directory Status"),size:"small"},l().createElement(a.Descriptions,{column:3,size:"small",style:{marginBottom:16}},l().createElement(a.Descriptions.Item,{label:"Branch"},l().createElement(a.Tag,{icon:l().createElement(o.BranchesOutlined,null),color:"blue"},k.current)),l().createElement(a.Descriptions.Item,{label:"Tracking"},l().createElement(es,null,k.tracking||"N/A")),l().createElement(a.Descriptions.Item,{label:"Changes"},l().createElement(a.Space,null,k.ahead>0&&l().createElement(a.Badge,{count:"".concat(k.ahead," ahead"),style:{backgroundColor:f.colorPrimary}}),k.behind>0&&l().createElement(a.Badge,{count:"".concat(k.behind," behind"),style:{backgroundColor:f.colorWarning}}),0===k.ahead&&0===k.behind&&l().createElement(a.Tag,{color:"green",icon:l().createElement(o.CheckCircleOutlined,null)},"Up to date")))),R.length>0?l().createElement(l().Fragment,null,l().createElement(es,{strong:!0,style:{display:"block",marginBottom:8}},R.length," changed file(s)"),l().createElement(a.List,{size:"small",dataSource:R,renderItem:function(e){var t=em[e.status]||{color:"default",icon:l().createElement(o.QuestionCircleOutlined,null),label:e.status};return l().createElement(a.List.Item,{style:{padding:"4px 0"}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:80,textAlign:"center"}},t.icon," ",t.label),l().createElement(es,{code:!0,style:{fontSize:13}},e.file)))}})):l().createElement(es,{type:"secondary"},"Working directory clean")))};function ef(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ey(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ef(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ef(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eg=function(e){var t=e.value,r=e.onChange,o=e.allowClear,i=e.size,u=e.style,s=e.placeholder,d=(0,c.useAPIClient)(),m=ey((0,n.useState)([]),2),p=m[0],f=m[1],y=ey((0,n.useState)(!1),2),g=y[0],h=y[1];return(0,n.useEffect)(function(){var e=!1;return h(!0),d.request({url:"aiEmployees:listByUser"}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];f(Array.isArray(n)?n:[])}}).catch(function(){}).finally(function(){e||h(!1)}),function(){e=!0}},[d]),l().createElement(a.Select,{value:t,onChange:r,allowClear:void 0===o||o,loading:g,size:i,style:u,placeholder:s||"Select AI employee",options:p.map(function(e){return{value:e.username,label:"".concat(e.nickname||e.username," (@").concat(e.username,")")}}),showSearch:!0,optionFilterProp:"label"})};function eh(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ev(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eh(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eb=function(e){var t=e.value,r=e.onChange,o=e.allowClear,i=e.size,u=e.style,s=e.placeholder,d=(0,c.useAPIClient)(),m=ev((0,n.useState)([]),2),p=m[0],f=m[1],y=ev((0,n.useState)(!1),2),g=y[0],h=y[1];return(0,n.useEffect)(function(){var e=!1;return h(!0),d.request({url:"ai:listAllEnabledModels"}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];f(Array.isArray(n)?n:[])}}).catch(function(){}).finally(function(){e||h(!1)}),function(){e=!0}},[d]),l().createElement(a.Select,{value:t,onChange:r,allowClear:void 0===o||o,loading:g,size:i,style:u,placeholder:s||"Select LLM Service",options:p.map(function(e){return{value:e.llmService,label:e.llmServiceTitle||e.llmService}}),showSearch:!0,optionFilterProp:"label"})};function eE(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ew(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eE(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eE(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eS=function(e){var t=e.llmService,r=e.value,o=e.onChange,i=e.allowClear,u=e.size,s=e.style,d=e.placeholder,m=(0,c.useAPIClient)(),p=ew((0,n.useState)([]),2),f=p[0],y=p[1],g=ew((0,n.useState)(!1),2),h=g[0],v=g[1];return(0,n.useEffect)(function(){var e=!1;return t?(v(!0),m.request({url:"ai:listModels",params:{llmService:t}}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];y(Array.isArray(n)?n:[])}}).catch(function(){e||y([])}).finally(function(){e||v(!1)}),function(){e=!0}):void y([])},[m,t]),l().createElement(a.Select,{value:r,onChange:o,allowClear:void 0===i||i,loading:h,size:u,style:s,placeholder:d||"Select LLM Model",options:f.map(function(e){return{value:e.id,label:e.id}}),showSearch:!0,optionFilterProp:"label",disabled:!t})};function ek(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function eI(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function ex(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){eI(a,n,l,o,i,"next",e)}function i(e){eI(a,n,l,o,i,"throw",e)}o(void 0)})}}function eC(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ek(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ek(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eO(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eA={manual:"Manual",onMergeRequestCreated:"On MR Created",both:"Both"},eT={auto:"Auto",manual:"Manual",disabled:"Disabled"},eR=function(){var e=(0,u.k)(),t=(0,c.useAPIClient)(),r=(0,i.B)().repos,s=eC((0,n.useState)([]),2),d=s[0],m=s[1],p=eC((0,n.useState)(!1),2),f=p[0],y=p[1],g=eC((0,n.useState)(null),2),h=g[0],v=g[1],b=eC((0,n.useState)(!1),2),E=b[0],w=b[1],S=eC(a.Form.useForm(),1)[0],k=(0,n.useCallback)(function(){return ex(function(){var e;return eO(this,function(r){switch(r.label){case 0:y(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,t.request({url:"gitReviewFlows:list",params:{pageSize:100}})];case 2:return m((null==(e=r.sent().data)?void 0:e.data)||[]),[3,4];case 3:return y(!1),[7];case 4:return[2]}})})()},[t]);(0,n.useEffect)(function(){k()},[k]);var I=function(e){v(e),S.setFieldsValue(e),w(!0)},x=[{title:e("Name"),dataIndex:"name",render:function(t,r){return l().createElement(a.Space,null,l().createElement("span",{style:{fontWeight:500}},t),!r.enabled&&l().createElement(a.Tag,{color:"default"},e("Disabled")))}},{title:e("Repository"),dataIndex:"repositoryId",render:function(t){if(null==t)return l().createElement(a.Tag,{color:"purple"},e("Global"));var n=r.find(function(e){return e.id===t});return n?l().createElement(a.Space,{size:4},l().createElement(o.BranchesOutlined,null),n.name):"#".concat(t)}},{title:e("AI Employee"),dataIndex:"aiEmployeeUsername",render:function(e){return e?l().createElement(a.Tag,{color:"blue"},"@",e):l().createElement("span",{style:{color:"#999"}},"—")}},{title:e("Trigger"),dataIndex:"triggerMode",render:function(t){return l().createElement(a.Tag,null,e(eA[t]||t))}},{title:e("Post"),dataIndex:"postMode",render:function(t){return l().createElement(a.Tag,{color:"auto"===t?"green":"manual"===t?"orange":"default"},e(eT[t]||t))}},{title:"",key:"actions",width:100,render:function(r,n){return l().createElement(a.Space,null,l().createElement(a.Tooltip,{title:e("Edit")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.EditOutlined,null),onClick:function(){return I(n)}})),l().createElement(a.Popconfirm,{title:e("Delete this flow?"),onConfirm:function(){var r;return r=n.id,ex(function(){var n;return eO(this,function(l){switch(l.label){case 0:return l.trys.push([0,2,,3]),[4,t.request({url:"gitReviewFlows:destroy",method:"post",params:{filterByTk:r}})];case 1:return l.sent(),a.message.success(e("Flow deleted")),k(),[3,3];case 2:return n=l.sent(),a.message.error((null==n?void 0:n.message)||e("Failed to delete")),[3,3];case 3:return[2]}})})()}},l().createElement(a.Button,{size:"small",danger:!0,icon:l().createElement(o.DeleteOutlined,null)})))}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between"}},l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),onClick:function(){v(null),S.resetFields(),S.setFieldsValue({enabled:!0,triggerMode:"manual",postMode:"manual",instructions:"Please review the code changes with a focus on:\n1. Best Practices & Style:\n - C#/VB.NET: Follow standard naming conventions (PascalCase for methods/properties, camelCase for fields). Ensure proper use of async/await (avoid .Result/.Wait()). Use LINQ efficiently.\n - JS/TS: Use strict equality (===), prefer const/let. Ensure TypeScript types are explicit and avoid 'any'.\n2. Performance: Watch out for N+1 queries, unnecessary loops, and memory leaks.\n3. Security: Identify potential SQL injections, XSS vulnerabilities, and improper data validation.\n4. Maintainability: Check for readability, SOLID principles, and DRY. Ensure meaningful naming.\n5. Error Handling: Verify that exceptions are properly caught, handled, and logged."}),w(!0)}},e("Add Review Flow")),l().createElement(a.Button,{onClick:k,loading:f},e("Refresh"))),l().createElement(a.Table,{size:"small",rowKey:"id",loading:f,dataSource:d,columns:x,locale:{emptyText:l().createElement(a.Empty,{description:e("No review flows yet")})},pagination:{pageSize:20}}),l().createElement(a.Modal,{title:(null==h?void 0:h.id)?e("Edit Review Flow"):e("Add Review Flow"),open:E,onCancel:function(){w(!1),v(null),S.resetFields()},onOk:function(){return ex(function(){var r,n,l,o,i,c;return eO(this,function(u){switch(u.label){case 0:return u.trys.push([0,6,,7]),[4,S.validateFields()];case 1:if((void 0===(r=u.sent()).repositoryId||""===r.repositoryId)&&(r.repositoryId=null),!(null==h?void 0:h.id))return[3,3];return[4,t.request({url:"gitReviewFlows:update",method:"post",params:{filterByTk:h.id},data:r})];case 2:return u.sent(),a.message.success(e("Flow updated")),[3,5];case 3:return[4,t.request({url:"gitReviewFlows:create",method:"post",data:r})];case 4:u.sent(),a.message.success(e("Flow created")),u.label=5;case 5:return w(!1),v(null),S.resetFields(),k(),[3,7];case 6:if(null==(n=u.sent())?void 0:n.errorFields)return[2];return a.message.error((null==n||null==(c=n.response)||null==(i=c.data)||null==(o=i.errors)||null==(l=o[0])?void 0:l.message)||(null==n?void 0:n.message)||e("Failed to save")),[3,7];case 7:return[2]}})})()},width:640,destroyOnClose:!0},l().createElement(a.Form,{form:S,layout:"vertical"},l().createElement(a.Form.Item,{name:"name",label:e("Name"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:e("e.g. Default review flow")})),l().createElement(a.Form.Item,{name:"repositoryId",label:e("Repository"),extra:e("Leave empty to apply to all repositories")},l().createElement(a.Select,{allowClear:!0,placeholder:e("All repositories (global)"),options:r.map(function(e){return{value:e.id,label:e.name}})})),l().createElement(a.Form.Item,{name:"aiEmployeeUsername",label:e("AI Employee"),rules:[{required:!0}]},l().createElement(eg,{placeholder:e("Select an AI employee")})),l().createElement(a.Space.Compact,{style:{width:"100%"}},l().createElement(a.Form.Item,{name:"llmService",label:e("LLM Service (optional)"),style:{flex:1,marginRight:8}},l().createElement(eb,{placeholder:e("Override flow LLM service")})),l().createElement(a.Form.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.llmService!==t.llmService}},function(t){var r=(0,t.getFieldValue)("llmService");return l().createElement(a.Form.Item,{name:"model",label:e("Model (optional)"),style:{flex:1}},r?l().createElement(eS,{llmService:r,placeholder:e("Override LLM model")}):l().createElement(a.Input,{placeholder:e("Select an LLM service first"),disabled:!0}))})),l().createElement(a.Form.Item,{name:"triggerMode",label:e("Trigger Mode"),rules:[{required:!0}],extra:e("Auto modes require enabling Auto Review on the repository")},l().createElement(a.Select,{options:[{value:"manual",label:e("Manual")},{value:"onMergeRequestCreated",label:e("On Merge Request Created")},{value:"both",label:e("Both")}]})),l().createElement(a.Form.Item,{name:"postMode",label:e("Post Mode"),rules:[{required:!0}]},l().createElement(a.Select,{options:[{value:"auto",label:e("Auto post to MR")},{value:"manual",label:e("Manual approval before posting")},{value:"disabled",label:e("Do not post")}]})),l().createElement(a.Form.Item,{name:"branchFilter",label:e("Branch Filter (regex, optional)")},l().createElement(a.Input,{placeholder:"^(feature|hotfix)/.*$"})),l().createElement(a.Form.Item,{name:"instructions",label:e("Additional Instructions (optional)")},l().createElement(a.Input.TextArea,{rows:8,placeholder:e("Extra guidance appended to every review prompt")})),l().createElement(a.Form.Item,{name:"enabled",label:e("Enabled"),valuePropName:"checked"},l().createElement(a.Switch,null)))))},ez=r(786),eB=a.theme.useToken,eP=function(e){var t=e.content,r=e.maxHeight,n=eB().token;return t?l().createElement("div",{style:{fontSize:13,lineHeight:1.65,color:n.colorText,maxHeight:r,overflow:r?"auto":void 0}},l().createElement(ez.oz,{components:{code:function(e){var t,r,a=e.inline,o=e.children,i=function(e,t){if(null==e)return{};var r,n,l,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(l=0,r=Reflect.ownKeys(Object(e));l<r.length;l++)n=r[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}if(a=function(e,t){if(null==e)return{};var r,n,l={},a=Object.getOwnPropertyNames(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r]);return l}(e,t),Object.getOwnPropertySymbols)for(l=0,r=Object.getOwnPropertySymbols(e);l<r.length;l++)n=r[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}(e,["inline","children"]),c=String(o).replace(/\n$/,"");return a?l().createElement("code",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},i),r=r={style:{background:n.colorBgLayout,padding:"1px 6px",borderRadius:4,fontSize:12,fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace"}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),c):l().createElement("pre",{style:{background:n.colorBgLayout,padding:"10px 14px",borderRadius:6,overflowX:"auto",fontSize:12,fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace"}},l().createElement("code",null,c))},blockquote:function(e){var t=e.children;return l().createElement("blockquote",{style:{borderLeft:"3px solid ".concat(n.colorBorder),paddingLeft:12,color:n.colorTextSecondary,margin:"8px 0"}},t)}}},t)):null};function ej(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function eF(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function eM(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){eF(a,n,l,o,i,"next",e)}function i(e){eF(a,n,l,o,i,"throw",e)}o(void 0)})}}function eD(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ej(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ej(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eL(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eq=a.Typography.Text;a.Typography.Title,a.Typography.Paragraph;var eN=a.theme.useToken,eU={pending:"default",running:"blue",completed:"green",failed:"red"},eH={pending_approval:"orange",approved:"cyan",posted:"green",post_failed:"red",skipped:"default",rejected:"red"},eW=function(e){var t=e.initialFilter,r=(0,u.k)();eN().token;var s=(0,c.useAPIClient)(),d=(0,i.B)().repos,m=eD((0,n.useState)([]),2),p=m[0],f=m[1],y=eD((0,n.useState)(!1),2),g=y[0],h=y[1],v=eD((0,n.useState)("all"),2),b=v[0],E=v[1],w=eD((0,n.useState)("pending_approval"===(void 0===t?"all":t)?"pending_approval":"all"),2),S=w[0],k=w[1],I=eD((0,n.useState)("all"),2),x=I[0],C=I[1],O=eD((0,n.useState)(null),2),A=O[0],T=O[1],R=eD((0,n.useState)(!1),2),z=R[0],B=R[1],P=eD((0,n.useState)(""),2),j=P[0],F=P[1],M=(0,n.useCallback)(function(){return eM(function(){var e,t;return eL(this,function(r){switch(r.label){case 0:h(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),e={},"all"!==b&&(e.status=b),"all"!==S&&(e.postStatus=S),"all"!==x&&(e.triggeredBy=x),[4,s.request({url:"gitCodeReviews:list",params:{pageSize:50,sort:["-id"],filter:Object.keys(e).length?e:void 0}})];case 2:return f((null==(t=r.sent().data)?void 0:t.data)||[]),[3,4];case 3:return h(!1),[7];case 4:return[2]}})})()},[s,b,S,x]);(0,n.useEffect)(function(){M()},[M]),(0,n.useEffect)(function(){if(p.some(function(e){return"running"===e.status||"pending"===e.status})){var e=setInterval(M,4e3);return function(){return clearInterval(e)}}},[p,M]);var D=(0,n.useCallback)(function(e){return eM(function(){var t,r;return eL(this,function(n){switch(n.label){case 0:return[4,s.request({url:"gitCodeReviews:get",params:{filterByTk:e}})];case 1:return(r=null==(t=n.sent().data)?void 0:t.data)&&(f(function(t){return t.map(function(t){return t.id===e?r:t})}),(null==A?void 0:A.id)===e&&T(r)),[2]}})})()},[s,A]),L=(0,n.useMemo)(function(){var e={};return d.forEach(function(t){return e[t.id]=t}),e},[d]),q=[{title:r("Target"),key:"target",render:function(e,t){var r=L[t.repositoryId],n=(null==r?void 0:r.name)||"#".concat(t.repositoryId);return"mr"===t.targetType?l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary"},"!",t.mrIid)):"commit"===t.targetType?l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary",style:{fontFamily:"monospace"}},String(t.commitSha||"").slice(0,7))):l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary"},t.branch))}},{title:r("Type"),dataIndex:"targetType",width:80,render:function(e){return l().createElement(a.Tag,null,r(e.toUpperCase()))}},{title:r("Status"),dataIndex:"status",width:120,render:function(e){var t=eU[e]||"default",n="running"===e?l().createElement(o.ClockCircleOutlined,{spin:!0}):null;return l().createElement(a.Tag,{color:t,icon:n},r(e))}},{title:r("Post Status"),dataIndex:"postStatus",width:140,render:function(e){return l().createElement(a.Tag,{color:eH[e]||"default"},r(e))}},{title:r("Commit"),key:"sha",width:140,render:function(e,t){var n=t.headSha,o=t.latestSha;return n?l().createElement(a.Space,{size:4},l().createElement(a.Tag,{style:{fontFamily:"monospace",fontSize:11}},String(n).slice(0,7)),n&&o&&n!==o&&l().createElement(a.Tooltip,{title:"".concat(r("New commits"),": ").concat(String(o).slice(0,7))},l().createElement(a.Tag,{color:"orange",style:{fontSize:11}},r("new")))):l().createElement(eq,{type:"secondary"},"—")}},{title:r("Trigger"),dataIndex:"triggeredBy",width:90,render:function(e){return l().createElement(a.Tag,{color:"poll"===e?"geekblue":"default",style:{fontSize:11}},"poll"===e?r("Polling"):r("Manual"))}},{title:r("Duration"),dataIndex:"durationMs",width:90,render:function(e){return e?"".concat((e/1e3).toFixed(1),"s"):"—"}},{title:r("Created"),dataIndex:"createdAt",width:160,render:function(e){return e?new Date(e).toLocaleString():""}},{title:"",key:"actions",width:60,render:function(e,t){return l().createElement(a.Tooltip,{title:r("View")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.FileTextOutlined,null),onClick:function(){T(t),B(!1),F(t.reviewMarkdown||"")}}))}}];return l().createElement("div",null,l().createElement(a.Space,{style:{marginBottom:12},wrap:!0},l().createElement(a.Select,{size:"small",style:{width:140},value:b,onChange:E,options:[{value:"all",label:r("All statuses")},{value:"pending",label:r("pending")},{value:"running",label:r("running")},{value:"completed",label:r("completed")},{value:"failed",label:r("failed")}]}),l().createElement(a.Select,{size:"small",style:{width:180},value:S,onChange:k,options:[{value:"all",label:r("All post statuses")},{value:"pending_approval",label:r("pending_approval")},{value:"approved",label:r("approved")},{value:"posted",label:r("posted")},{value:"post_failed",label:r("post_failed")},{value:"skipped",label:r("skipped")},{value:"rejected",label:r("rejected")}]}),l().createElement(a.Select,{size:"small",style:{width:130},value:x,onChange:C,options:[{value:"all",label:r("All triggers")},{value:"manual",label:r("Manual")},{value:"poll",label:r("Polling")}]}),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:M},r("Refresh"))),l().createElement(a.Table,{size:"small",rowKey:"id",loading:g,dataSource:p,columns:q,locale:{emptyText:l().createElement(a.Empty,{description:r("No reviews yet")})},pagination:{pageSize:20},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){T(e),B(!1),F(e.reviewMarkdown||"")}}}}),l().createElement(a.Drawer,{title:A?l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),l().createElement("span",null,r("Code Review")),l().createElement(a.Tag,{color:eU[A.status]},r(A.status)),l().createElement(a.Tag,{color:eH[A.postStatus]},r(A.postStatus))):r("Code Review"),open:!!A,onClose:function(){T(null),B(!1)},width:840,extra:A&&l().createElement(a.Space,null,l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:function(){return D(A.id)}},r("Refresh")),"mr"===A.targetType&&l().createElement(a.Button,{size:"small",icon:l().createElement(o.ExportOutlined,null),onClick:function(){var e,t=L[A.repositoryId],r=null==t||null==(e=t.repoUrl)?void 0:e.replace(/\.git$/,"");r&&A.mrIid&&window.open("".concat(r,"/-/merge_requests/").concat(A.mrIid),"_blank")}},r("Open MR")))},A&&l().createElement(e_,{review:A,editing:z,editedMarkdown:j,onEdit:function(){return B(!0)},onCancelEdit:function(){B(!1),F(A.reviewMarkdown||"")},onChangeMarkdown:F,onApprove:function(e){return eM(function(){var t,n,l,o,i;return eL(this,function(c){switch(c.label){case 0:if(!A)return[2];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,s.request({url:"gitManager:reviewApprovePost",method:"post",data:{reviewId:A.id,editedMarkdown:e}})];case 2:return c.sent(),a.message.success(r("Review posted to merge request")),B(!1),D(A.id),M(),[3,4];case 3:return t=c.sent(),a.message.error((null==t||null==(i=t.response)||null==(o=i.data)||null==(l=o.errors)||null==(n=l[0])?void 0:n.message)||(null==t?void 0:t.message)||r("Failed to post review")),[3,4];case 4:return[2]}})})()},onReject:function(){return eM(function(){var e;return eL(this,function(t){switch(t.label){case 0:if(!A)return[2];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,s.request({url:"gitManager:reviewReject",method:"post",data:{reviewId:A.id}})];case 2:return t.sent(),a.message.success(r("Review rejected")),D(A.id),M(),[3,4];case 3:return e=t.sent(),a.message.error((null==e?void 0:e.message)||r("Failed to reject")),[3,4];case 4:return[2]}})})()}})))},e_=function(e){var t=e.review,r=e.editing,n=e.editedMarkdown,i=e.onEdit,c=e.onCancelEdit,s=e.onChangeMarkdown,d=e.onApprove,m=e.onReject,p=(0,u.k)(),f=eN().token,y="completed"===t.status&&"mr"===t.targetType&&("pending_approval"===t.postStatus||"approved"===t.postStatus||"post_failed"===t.postStatus);return l().createElement("div",null,"running"===t.status&&l().createElement(a.Alert,{type:"info",showIcon:!0,message:p("Review in progress…"),description:p("The AI employee is analyzing the code. This page will refresh automatically."),style:{marginBottom:16}}),"failed"===t.status&&l().createElement(a.Alert,{type:"error",showIcon:!0,message:p("Review failed"),description:l().createElement("pre",{style:{whiteSpace:"pre-wrap",margin:0}},t.error),style:{marginBottom:16}}),"completed"===t.status&&"post_failed"===t.postStatus&&t.error&&l().createElement(a.Alert,{type:"error",showIcon:!0,message:p("Post Failed"),description:l().createElement("pre",{style:{whiteSpace:"pre-wrap",margin:0}},t.error),style:{marginBottom:16}}),y&&l().createElement(a.Space,{style:{marginBottom:16},wrap:!0},r?l().createElement(l().Fragment,null,l().createElement(a.Button,{type:"primary",icon:l().createElement(o.CheckOutlined,null),onClick:function(){return d(n)}},p("Save & Post")),l().createElement(a.Button,{onClick:c},p("Cancel"))):l().createElement(l().Fragment,null,l().createElement(a.Button,{type:"primary",icon:l().createElement(o.CheckOutlined,null),onClick:function(){return d(t.reviewMarkdown)}},p("Approve & Post")),l().createElement(a.Button,{icon:l().createElement(o.EditOutlined,null),onClick:i},p("Edit & Post")),l().createElement(a.Popconfirm,{title:p("Reject this review?"),onConfirm:m},l().createElement(a.Button,{danger:!0,icon:l().createElement(o.CloseOutlined,null)},p("Reject"))))),l().createElement(a.Tabs,{defaultActiveKey:"content",items:[{key:"content",label:p("Review Content"),children:r?l().createElement(a.Input.TextArea,{value:n,onChange:function(e){return s(e.target.value)},autoSize:{minRows:16,maxRows:40},style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:13}}):t.reviewMarkdown?l().createElement("div",{style:{background:f.colorBgLayout,padding:16,borderRadius:8,maxHeight:"70vh",overflowY:"auto"}},l().createElement(eP,{content:t.reviewMarkdown})):l().createElement(a.Empty,{description:p("No content yet")})},{key:"metadata",label:p("Metadata"),children:l().createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 16px",fontSize:13}},l().createElement(eG,{label:p("Status"),value:t.status}),l().createElement(eG,{label:p("Post Status"),value:t.postStatus}),l().createElement(eG,{label:p("Trigger Type"),value:t.targetType}),l().createElement(eG,{label:p("Triggered By"),value:t.triggeredBy}),l().createElement(eG,{label:p("Reviewed SHA"),value:t.headSha||"—"}),l().createElement(eG,{label:p("Latest SHA"),value:t.latestSha||"—"}),l().createElement(eG,{label:p("Started At"),value:t.startedAt&&new Date(t.startedAt).toLocaleString()}),l().createElement(eG,{label:p("Finished At"),value:t.finishedAt&&new Date(t.finishedAt).toLocaleString()}),l().createElement(eG,{label:p("Duration"),value:t.durationMs?"".concat((t.durationMs/1e3).toFixed(1),"s"):"—"}),l().createElement(eG,{label:p("Posted Note ID"),value:t.postedNoteId||"—"}),l().createElement(eG,{label:p("Approved By"),value:t.approvedBy||"—"}),l().createElement(eG,{label:p("Approved At"),value:t.approvedAt&&new Date(t.approvedAt).toLocaleString()}),l().createElement(eG,{label:p("Session ID"),value:t.sessionId||"—"}),l().createElement(eG,{label:p("Flow ID"),value:t.flowId||"—"}))}]}))},eG=function(e){var t=e.label,r=e.value;return l().createElement("div",null,l().createElement(eq,{type:"secondary",style:{fontSize:12,display:"block"}},t),l().createElement("div",{style:{wordBreak:"break-all"}},r||"—"))};function e$(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function eK(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function eV(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){eK(a,n,l,o,i,"next",e)}function i(e){eK(a,n,l,o,i,"throw",e)}o(void 0)})}}function eJ(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return e$(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e$(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eQ(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eX=a.Typography.Text,eY=a.theme.useToken,eZ=function(){var e=(0,u.k)();eY().token;var t=(0,c.useAPIClient)(),r=(0,i.B)(),s=r.repos,d=r.refreshRepos,m=eJ((0,n.useState)(null),2),p=m[0],f=m[1],y=eJ((0,n.useState)(!1),2),g=y[0],h=y[1],v=eJ((0,n.useState)(null),2),b=v[0],E=v[1],w=eJ((0,n.useState)([]),2),S=w[0],k=w[1],I=(0,n.useCallback)(function(){return eV(function(){var e,r,n,l;return eQ(this,function(a){switch(a.label){case 0:h(!0),a.label=1;case 1:return a.trys.push([1,,4,5]),[4,Promise.all([t.request({url:"gitManager:pollerStatus"}),t.request({url:"gitReviewFlows:list",params:{pageSize:100,filter:{enabled:!0,triggerMode:{$in:["onMergeRequestCreated","both"]}}}})])];case 2:return n=(r=eJ.apply(void 0,[a.sent(),2]))[0].data,l=r[1],f((null==n?void 0:n.data)||null),k((null==l||null==(e=l.data)?void 0:e.data)||[]),[4,d()];case 3:return a.sent(),[3,5];case 4:return h(!1),[7];case 5:return[2]}})})()},[t,d]);(0,n.useEffect)(function(){I()},[I]);var x=s.filter(function(e){return e.autoReview});return l().createElement("div",null,l().createElement(a.Card,{size:"small",style:{marginBottom:16},title:l().createElement(a.Space,null,l().createElement(o.ClockCircleOutlined,null),e("Polling Status")),extra:l().createElement(a.Space,null,l().createElement(a.Button,{size:"small",type:"primary",icon:l().createElement(o.ThunderboltOutlined,null),onClick:function(){return eV(function(){var r,n,l,o,i,c,u,s,d;return eQ(this,function(m){switch(m.label){case 0:E("all"),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,t.request({url:"gitManager:pollNow",method:"post"})];case 2:return o=(null==(l=m.sent().data)?void 0:l.data)||{},a.message.success(e("Polled {{scanned}} MRs, triggered {{triggered}} reviews",{scanned:null!=(r=o.scanned)?r:0,triggered:null!=(n=o.triggered)?n:0})),I(),[3,5];case 3:return i=m.sent(),a.message.error((null==i||null==(d=i.response)||null==(s=d.data)||null==(u=s.errors)||null==(c=u[0])?void 0:c.message)||(null==i?void 0:i.message)||e("Failed")),[3,5];case 4:return E(null),[7];case 5:return[2]}})})()},loading:"all"===b,disabled:0===x.length},e("Poll Now (All)")),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:I,loading:g},e("Refresh")))},l().createElement(a.Space,{direction:"vertical",size:4,style:{width:"100%"}},l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Background poller"),":"),l().createElement(a.Tag,{color:(null==p?void 0:p.running)?"green":"default"},(null==p?void 0:p.running)?e("Running"):e("Stopped")),(null==p?void 0:p.polling)&&l().createElement(a.Tag,{color:"blue"},e("Polling now…"))),l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Interval"),":"),l().createElement(eX,null,(null==p?void 0:p.intervalSec)?"".concat(p.intervalSec,"s"):"—")),l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Last tick"),":"),l().createElement(eX,null,(null==p?void 0:p.lastTickAt)?new Date(p.lastTickAt).toLocaleString():e("Never"))),(null==p?void 0:p.lastError)&&l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Last error"),":"),l().createElement(eX,{type:"danger",style:{fontSize:12}},p.lastError)))),l().createElement(a.Card,{size:"small",title:l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),e("Auto-Review Repositories")),extra:l().createElement(eX,{type:"secondary",style:{fontSize:12}},e("Toggle Auto Review on the Repositories tab to enable polling"))},0===x.length?l().createElement(a.Empty,{description:e("No repositories have Auto Review enabled")}):l().createElement(a.Table,{size:"small",rowKey:"id",dataSource:x,pagination:!1,columns:[{title:e("Repository Name"),dataIndex:"name"},{title:e("Primary Auto Flow"),dataIndex:"autoReviewFlowId",width:220,render:function(t,r){var n=S.find(function(e){return Number(e.id)===Number(t)}),o=S.find(function(e){return e.repositoryId===r.id||null==e.repositoryId});return n?l().createElement(a.Tag,{color:"blue"},n.name):o?l().createElement(a.Tag,{color:"default"},e("Fallback"),": ",o.name):l().createElement(a.Tag,{color:"red"},e("No matching flow available"))}},{title:e("Last Polled At"),dataIndex:"lastPolledAt",width:200,render:function(t){return t?new Date(t).toLocaleString():e("Never")}},{title:"",key:"actions",width:120,render:function(r,n){return l().createElement(a.Tooltip,{title:e("Poll this repository now")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.ThunderboltOutlined,null),onClick:function(){var r;return r=n.id,eV(function(){var n,l,o,i,c,u,s,d,m;return eQ(this,function(p){switch(p.label){case 0:E(r),p.label=1;case 1:return p.trys.push([1,3,4,5]),[4,t.request({url:"gitManager:pollNow",method:"post",data:{repositoryId:r}})];case 2:return i=(null==(o=p.sent().data)?void 0:o.data)||{},a.message.success(e("Polled {{scanned}} MRs, triggered {{triggered}} reviews",{scanned:null!=(n=i.scanned)?n:0,triggered:null!=(l=i.triggered)?l:0})),I(),[3,5];case 3:return c=p.sent(),a.message.error((null==c||null==(m=c.response)||null==(d=m.data)||null==(s=d.errors)||null==(u=s[0])?void 0:u.message)||(null==c?void 0:c.message)||e("Failed")),[3,5];case 4:return E(null),[7];case 5:return[2]}})})()},loading:b===n.id},e("Poll Now")))}}]})))},e0=a.Typography.Text,e1=a.theme.useToken,e2=function(){var e=(0,u.k)(),t=e1().token,r=(0,i.B)(),c=r.repos,s=r.selectedRepo,d=r.setSelectedRepo,m=r.refreshRepos;return(0,n.useEffect)(function(){m()},[]),l().createElement("div",{style:{height:"100%"}},l().createElement("div",{style:{padding:"12px 0",marginBottom:16,display:"flex",alignItems:"center",gap:12,borderBottom:"1px solid ".concat(t.colorBorderSecondary)}},l().createElement(o.DatabaseOutlined,{style:{fontSize:16}}),l().createElement(e0,{strong:!0},"Repository:"),l().createElement(a.Select,{style:{minWidth:250},placeholder:e("Select a repository"),value:null==s?void 0:s.id,onChange:function(e){d(c.find(function(t){return t.id===e})||null)},options:c.map(function(t){return{label:l().createElement(a.Space,null,t.name,l().createElement(a.Tag,{color:"connected"===t.status?"green":"default",style:{fontSize:11}},"connected"===t.status?e("Connected"):e("Disconnected"))),value:t.id}}),allowClear:!0,onClear:function(){return d(null)}}),s&&l().createElement(e0,{type:"secondary",style:{fontSize:12}},s.repoUrl)),l().createElement(a.Tabs,{type:"card",defaultActiveKey:"explorer",destroyInactiveTabPane:!0,items:[{key:"explorer",label:l().createElement("span",null,l().createElement(o.FolderOutlined,null)," ",e("File Explorer")),children:l().createElement(w,null)},{key:"history",label:l().createElement("span",null,l().createElement(o.HistoryOutlined,null)," ",e("History")),children:l().createElement(L,null)},{key:"merge-requests",label:l().createElement("span",null,l().createElement(o.MergeOutlined,null)," ",e("Merge Requests")),children:l().createElement(J,null)},{key:"operations",label:l().createElement("span",null,l().createElement(o.ToolOutlined,null)," ",e("Operations")),children:l().createElement(ep,null)},{key:"review-flows",label:l().createElement("span",null,l().createElement(o.RobotOutlined,null)," ",e("Review Flows")),children:l().createElement(eR,null)},{key:"review-history",label:l().createElement("span",null,l().createElement(o.AuditOutlined,null)," ",e("Review History")),children:l().createElement(eW,null)},{key:"polling",label:l().createElement("span",null,l().createElement(o.ClockCircleOutlined,null)," ",e("Polling")),children:l().createElement(eZ,null)}]}))},e3=function(){return l().createElement(i.N,null,l().createElement(e2,null))}},602:function(e,t,r){r.d(t,{B:function(){return m},N:function(){return p}});var n=r(155),l=r.n(n),a=r(342);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function i(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function c(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){i(a,n,l,o,c,"next",e)}function c(e){i(a,n,l,o,c,"throw",e)}o(void 0)})}}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var d=(0,n.createContext)(null);function m(){return(0,n.useContext)(d)}var p=function(e){var t=e.children,r=(0,a.useAPIClient)(),o=u((0,n.useState)([]),2),i=o[0],m=o[1],p=u((0,n.useState)(null),2),f=p[0],y=p[1],g=u((0,n.useState)(!1),2),h=g[0],v=g[1],b=u((0,n.useState)([]),2),E=b[0],w=b[1],S=u((0,n.useState)(""),2),k=S[0],I=S[1],x=(0,n.useRef)(f);x.current=f;var C=(0,n.useCallback)(function(){return c(function(){var e,t,n,l;return s(this,function(a){switch(a.label){case 0:if(!(e=x.current)||"connected"!==e.status)return w([]),I(""),[2];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,r.request({url:"gitManager:branches",params:{repositoryId:e.id}})];case 2:return(l=(null==(n=a.sent().data)||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data))&&(w(l.all||[]),I(l.current||"")),[3,4];case 3:return a.sent(),w([]),I(""),[3,4];case 4:return[2]}})})()},[r]),O=(0,n.useCallback)(function(){return c(function(){var e,t,n,l;return s(this,function(a){switch(a.label){case 0:v(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,r.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return m(t=(null==(e=a.sent().data)?void 0:e.data)||[]),(n=x.current)&&(l=t.find(function(e){return e.id===n.id}))&&y(l),[3,4];case 3:return v(!1),[7];case 4:return[2]}})})()},[r]);return l().createElement(d.Provider,{value:{repos:i,selectedRepo:f,loading:h,branches:E,currentBranch:k,setSelectedRepo:y,refreshRepos:O,refreshBranches:C}},t)}},578:function(e,t,r){r.d(t,{k:function(){return l}});var n=r(342);function l(){var e=(0,n.useApp)();return function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-git-manager","client"]},r))}}}}]);
|
package/dist/client/index.js
CHANGED
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@nocobase/plugin-acl/client"),require("@nocobase/plugin-ai/client"),require("@nocobase/client"),require("react"),require("@ant-design/icons"),require("antd")):"function"==typeof define&&define.amd?define("plugin-git-manager",["@nocobase/plugin-acl/client","@nocobase/plugin-ai/client","@nocobase/client","react","@ant-design/icons","antd"],t):"object"==typeof exports?exports["plugin-git-manager"]=t(require("@nocobase/plugin-acl/client"),require("@nocobase/plugin-ai/client"),require("@nocobase/client"),require("react"),require("@ant-design/icons"),require("antd")):e["plugin-git-manager"]=t(e["@nocobase/plugin-acl/client"],e["@nocobase/plugin-ai/client"],e["@nocobase/client"],e.react,e["@ant-design/icons"],e.antd)}(self,function(e,t,n,r,o,i){return function(){var a,u,l,c,s,f,p={41:function(e){e.exports=function(e,t){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(e,t),t}},482:function(e){"use strict";e.exports=o},772:function(e){"use strict";e.exports=n},465:function(t){"use strict";t.exports=e},645:function(e){"use strict";e.exports=t},721:function(e){"use strict";e.exports=i},156:function(e){"use strict";e.exports=r}},d={};function y(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}};return p[e].call(n.exports,n,n.exports,y),n.exports}y.m=p,y.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return y.d(t,{a:t}),t},y.d=function(e,t){for(var n in t)y.o(t,n)&&!y.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},y.f={},y.e=function(e){return Promise.all(Object.keys(y.f).reduce(function(t,n){return y.f[n](e,t),t},[]))},y.u=function(e){return""+e+"."+({228:"7588a0707cb3694a",597:"1698c0124e2f95ce",906:"bea20db91f34f5e6"})[e]+".js"},y.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),y.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a={},u="plugin-git-manager:",y.l=function(e,t,n,r){if(a[e])return void a[e].push(t);if(void 0!==n)for(var o,i,l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var s=l[c];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==u+n){o=s;break}}o||(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,y.nc&&o.setAttribute("nonce",y.nc),o.setAttribute("data-webpack",u+n),o.src=e),a[e]=[t];var f=function(t,n){o.onerror=o.onload=null,clearTimeout(p);var r=a[e];if(delete a[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=f.bind(null,o.onerror),o.onload=f.bind(null,o.onload),i&&document.head.appendChild(o)},y.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(l=window.__webpack_public_path__||"/").endsWith("/")||(l+="/"),y.p=l+"static/plugins/plugin-git-manager/dist/client/",c={909:0},y.f.j=function(e,t){var n=y.o(c,e)?c[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=c[e]=[t,r]});t.push(n[2]=r);var o=y.p+y.u(e),i=Error();y.l(o,function(t){if(y.o(c,e)&&(0!==(n=c[e])&&(c[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}},s=function(e,t){var n,r,o=t[0],i=t[1],a=t[2],u=0;if(o.some(function(e){return 0!==c[e]})){for(n in i)y.o(i,n)&&(y.m[n]=i[n]);a&&a(y)}for(e&&e(t);u<o.length;u++)r=o[u],y.o(c,r)&&c[r]&&c[r][0](),c[r]=0},(f=self.webpackChunkplugin_git_manager=self.webpackChunkplugin_git_manager||[]).forEach(s.bind(null,0)),f.push=s.bind(null,f.push.bind(f));var m={};return!function(){"use strict";y.r(m),y.d(m,{PluginGitManagerClient:function(){return G},default:function(){return U}});var e,t,n,r=y(772),o=y(156),i=y.n(o),a=y(721),u=y(482);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t,n,r,o,i,a){try{var u=e[i](a),l=u.value}catch(e){n(e);return}u.done?t(l):Promise.resolve(l).then(r,o)}function s(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){c(i,r,o,a,u,"next",e)}function u(e){c(i,r,o,a,u,"throw",e)}a(void 0)})}}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){var l=[i,u];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}var d={name:"git-repository",menu:{icon:i().createElement(u.BranchesOutlined,null),Component:function(){return i().createElement("span",null,"Git Repository")}},tag:{Component:function(e){var t=e.item;return i().createElement(a.Space,{size:4},i().createElement(u.BranchesOutlined,null),i().createElement("span",null,(null==t?void 0:t.title)||"Repo #".concat(null==t?void 0:t.uid)))}},getContent:(e=s(function(e,t){var n,r,o,i;return p(this,function(a){switch(a.label){case 0:return n=t.uid,[4,e.apiClient.request({url:"gitRepositories:get",params:{filterByTk:n}})];case 1:if(!(i=null==(o=a.sent())||null==(r=o.data)?void 0:r.data))return[2,null];return[2,{type:"git-repository",repositoryId:i.id,name:i.name,repoUrl:i.repoUrl,defaultBranch:i.defaultBranch,status:i.status}]}})}),function(t,n){return e.apply(this,arguments)})},b={name:"git-merge-request",menu:{icon:i().createElement(u.MergeOutlined,null),Component:function(){return i().createElement("span",null,"Git Merge Request")}},tag:{Component:function(e){var t=e.item;return i().createElement(a.Space,{size:4},i().createElement(u.MergeOutlined,null),i().createElement("span",null,(null==t?void 0:t.title)||"MR ".concat(null==t?void 0:t.uid)))}},getContent:(t=s(function(e,t){var n,r,o,i,a,u,l,c;return p(this,function(s){switch(s.label){case 0:if(o=(r=f(String(t.uid||"").split(":"),2))[0],i=r[1],a=Number(o),u=Number(i),!a||!u)return[2,null];return[4,e.apiClient.request({url:"gitManager:mergeRequestDetail",params:{repositoryId:a,mrIid:u}})];case 1:return c=null==(l=s.sent())||null==(n=l.data)?void 0:n.data,[2,{type:"git-merge-request",repositoryId:a,mrIid:u,title:null==c?void 0:c.title,sourceBranch:null==c?void 0:c.sourceBranch,targetBranch:null==c?void 0:c.targetBranch,author:null==c?void 0:c.author,changes:null==c?void 0:c.changes,description:null==c?void 0:c.description,webUrl:null==c?void 0:c.webUrl}]}})}),function(e,n){return t.apply(this,arguments)})},g={name:"git-commit",menu:{icon:i().createElement(u.NodeIndexOutlined,null),Component:function(){return i().createElement("span",null,"Git Commit")}},tag:{Component:function(e){var t=e.item;return i().createElement(a.Space,{size:4},i().createElement(u.NodeIndexOutlined,null),i().createElement("span",null,(null==t?void 0:t.title)||"Commit ".concat(null==t?void 0:t.uid)))}},getContent:(n=s(function(e,t){var n,r,o,i,a,u,l;return p(this,function(c){switch(c.label){case 0:if(o=(r=f(String(t.uid||"").split(":"),2))[0],i=r[1],!(a=Number(o))||!i)return[2,null];return[4,e.apiClient.request({url:"gitManager:commitDetail",params:{repositoryId:a,commitHash:i}})];case 1:return l=null==(u=c.sent())||null==(n=u.data)?void 0:n.data,[2,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({type:"git-commit",repositoryId:a,commitSha:i},l)]}})}),function(e,t){return n.apply(this,arguments)})},h=y(465),v=y.n(h);function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t,n,r,o,i,a){try{var u=e[i](a),l=u.value}catch(e){n(e);return}u.done?t(l):Promise.resolve(l).then(r,o)}function S(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){O(i,r,o,a,u,"next",e)}function u(e){O(i,r,o,a,u,"throw",e)}a(void 0)})}}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw r}}return i}}(e,t)||k(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e){return function(e){if(Array.isArray(e))return w(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(e,t)}}function P(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){var l=[i,u];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}var C=function(e){var t,n,u=e.activeRole,l=(0,r.useAPIClient)(),c=x((0,o.useState)(!1),2),s=c[0],f=c[1],p=x((0,o.useState)([]),2),d=p[0],y=p[1],m=x((0,o.useState)({read:[],write:[]}),2),b=m[0],g=m[1];(0,o.useEffect)(function(){(null==u?void 0:u.name)&&h()},[null==u?void 0:u.name]);var h=(t=S(function(){var e,t,n,r,o,i;return P(this,function(c){switch(c.label){case 0:f(!0),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,Promise.all([l.request({resource:"gitRepositories",action:"list",params:{paginate:!1,sort:["name"]}}),l.request({url:"gitManager:rolePermissions",method:"get",params:{roleName:u.name}})])];case 2:return r=(n=x.apply(void 0,[c.sent(),2]))[0],i=(null==(o=n[1])||null==(e=o.data)?void 0:e.data)||(null==o?void 0:o.data)||{read:[],write:[]},y((null==r||null==(t=r.data)?void 0:t.data)||[]),g({read:i.read||[],write:i.write||[]}),[3,4];case 3:return console.error(c.sent()),a.message.error("Failed to load repository permissions"),[3,4];case 4:return f(!1),[2]}})}),function(){return t.apply(this,arguments)}),v=(n=S(function(e,t,n){var r,o,i,c;return P(this,function(s){switch(s.label){case 0:var f,p;r=b[t]||[],o=n?j(new Set(j(r).concat([e]))):r.filter(function(t){return t!==e}),f=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){E(e,t,n[t])})}return e}({},b),p=null!=(p=E({},t,o))?p:{},Object.getOwnPropertyDescriptors?Object.defineProperties(f,Object.getOwnPropertyDescriptors(p)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(p)).forEach(function(e){Object.defineProperty(f,e,Object.getOwnPropertyDescriptor(p,e))}),i=f,c=b,g(i),s.label=1;case 1:return s.trys.push([1,3,,4]),[4,l.request({url:"gitManager:updateRolePermissions",method:"post",data:{roleName:u.name,values:i}})];case 2:return s.sent(),[3,4];case 3:return s.sent(),a.message.error("Failed to update permissions"),g(c),[3,4];case 4:return[2]}})}),function(e,t,r){return n.apply(this,arguments)}),w=[{title:"Repository Name",dataIndex:"name",key:"name",render:function(e){return i().createElement(a.Typography.Text,{strong:!0},e)}},{title:"Repository URL",dataIndex:"repoUrl",key:"repoUrl",ellipsis:!0,render:function(e){return i().createElement(a.Typography.Text,{type:"secondary"},e)}},{title:"Read (List, Browse Files, View History)",key:"read",width:100,render:function(e,t){return i().createElement(a.Checkbox,{checked:(b.read||[]).includes(t.id),onChange:function(e){return v(t.id,"read",e.target.checked)}})}},{title:"Write (Clone, Pull, Push, Review)",key:"write",width:100,render:function(e,t){return i().createElement(a.Checkbox,{checked:(b.write||[]).includes(t.id),onChange:function(e){return v(t.id,"write",e.target.checked)}})}}];return s&&!d.length?i().createElement(a.Spin,{style:{display:"block",margin:"40px auto"}}):i().createElement("div",{style:{padding:16}},i().createElement("div",{style:{marginBottom:16}},i().createElement(a.Typography.Text,{type:"secondary"},"Configure access permissions for each repository for the role"," ",i().createElement(a.Typography.Text,{strong:!0},(null==u?void 0:u.title)||(null==u?void 0:u.name)),".")),i().createElement(a.Table,{dataSource:d,columns:w,rowKey:"id",pagination:!1,size:"small",bordered:!0}))},_=y(41);function T(e,t,n,r,o,i,a){try{var u=e[i](a),l=u.value}catch(e){n(e);return}u.done?t(l):Promise.resolve(l).then(r,o)}function q(e,t,n){return(q=A()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&R(o,n.prototype),o}).apply(null,arguments)}function M(e){return(M=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function R(e,t){return(R=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function I(e){var t="function"==typeof Map?new Map:void 0;return(I=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return q(e,arguments,M(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),R(n,e)})(e)}function A(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(A=function(){return!!e})()}var B=i().lazy(function(){return _("imported_7nc0nn_component",Promise.all([y.e("228"),y.e("597")]).then(y.bind(y,500))).then(function(e){return{default:e.GitManagerSettings}})}),N=i().lazy(function(){return _("imported_-1shj34q_component",y.e("906").then(y.bind(y,275))).then(function(e){return{default:e.RepositoryConfig}})}),G=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=M(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,A()?Reflect.construct(e,t||[],M(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&R(n,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){var e,n;return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){var l=[i,u];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){return t.app.pluginSettingsManager.add("git-manager",{title:t.t("Git Manager"),icon:"BranchesOutlined"}),t.app.pluginSettingsManager.add("git-manager.repositories",{title:t.t("Repositories"),Component:N,aclSnippet:"pm.plugin-git-manager.repositories"}),t.app.pluginSettingsManager.add("git-manager.manage",{title:t.t("Manage"),Component:B,aclSnippet:"pm.plugin-git-manager.manage"}),(null==(e=t.app.aiManager)?void 0:e.registerWorkContext)&&(e.registerWorkContext("git-repository",d),e.registerWorkContext("git-merge-request",b),e.registerWorkContext("git-commit",g)),(n=t.app.pm.get(v()))&&n.settingsUI.addPermissionsTab(function(e){e.t;var t=e.TabLayout,n=e.activeRole;return{key:"git-manager",label:"Git Manager",sort:25,children:i().createElement(t,null,i().createElement(C,{activeRole:n}))}}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){T(i,r,o,a,u,"next",e)}function u(e){T(i,r,o,a,u,"throw",e)}a(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(I(r.Plugin)),U=G}(),m}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("antd"),require("@nocobase/client"),require("@nocobase/plugin-acl/client"),require("@ant-design/icons"),require("@nocobase/plugin-ai/client")):"function"==typeof define&&define.amd?define("plugin-git-manager",["react","antd","@nocobase/client","@nocobase/plugin-acl/client","@ant-design/icons","@nocobase/plugin-ai/client"],t):"object"==typeof exports?exports["plugin-git-manager"]=t(require("react"),require("antd"),require("@nocobase/client"),require("@nocobase/plugin-acl/client"),require("@ant-design/icons"),require("@nocobase/plugin-ai/client")):e["plugin-git-manager"]=t(e.react,e.antd,e["@nocobase/client"],e["@nocobase/plugin-acl/client"],e["@ant-design/icons"],e["@nocobase/plugin-ai/client"])}(self,function(e,t,r,n,o,i){return function(){"use strict";var a,u,l,c={375:function(e){e.exports=o},342:function(e){e.exports=r},79:function(e){e.exports=n},75:function(e){e.exports=i},59:function(e){e.exports=t},155:function(t){t.exports=e}},s={};function p(e){var t=s[e];if(void 0!==t)return t.exports;var r=s[e]={exports:{}};return c[e].call(r.exports,r,r.exports,p),r.exports}p.m=c,p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var r in t)p.o(t,r)&&!p.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},p.f={},p.e=function(e){return Promise.all(Object.keys(p.f).reduce(function(t,r){return p.f[r](e,t),t},[]))},p.u=function(e){return""+e+"."+({326:"03f7202ae14b60ae",434:"afb45fa69887568e",878:"f99a81c2e6b4f602"})[e]+".js"},p.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f={},p.l=function(e,t,r,n){if(f[e])return void f[e].push(t);if(void 0!==r)for(var o,i,a=document.getElementsByTagName("script"),u=0;u<a.length;u++){var l=a[u];if(l.getAttribute("src")==e||l.getAttribute("data-rspack")=="plugin-git-manager:"+r){o=l;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,p.nc&&o.setAttribute("nonce",p.nc),o.setAttribute("data-rspack","plugin-git-manager:"+r),o.src=e),f[e]=[t];var c=function(t,r){o.onerror=o.onload=null,clearTimeout(s);var n=f[e];if(delete f[e],o.parentNode&&o.parentNode.removeChild(o),n&&n.forEach(function(e){return e(r)}),t)return t(r)},s=setTimeout(c.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=c.bind(null,o.onerror),o.onload=c.bind(null,o.onload),i&&document.head.appendChild(o)},p.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.g.importScripts&&(d=p.g.location+"");var f,d,y=p.g.document;if(!d&&y&&(y.currentScript&&"SCRIPT"===y.currentScript.tagName.toUpperCase()&&(d=y.currentScript.src),!d)){var g=y.getElementsByTagName("script");if(g.length)for(var m=g.length-1;m>-1&&(!d||!/^http(s?):/.test(d));)d=g[m--].src}if(!d)throw Error("Automatic publicPath is not supported in this browser");p.p=d.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a={889:0},p.f.j=function(e,t){var r=p.o(a,e)?a[e]:void 0;if(0!==r)if(r)t.push(r[2]);else{var n=new Promise(function(t,n){r=a[e]=[t,n]});t.push(r[2]=n);var o=p.p+p.u(e),i=Error();p.l(o,function(t){if(p.o(a,e)&&(0!==(r=a[e])&&(a[e]=void 0),r)){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",i.name="ChunkLoadError",i.type=n,i.request=o,r[1](i)}},"chunk-"+e,e)}},u=function(e,t){var r,n,o=t[0],i=t[1],u=t[2],l=0;if(o.some(function(e){return 0!==a[e]})){for(r in i)p.o(i,r)&&(p.m[r]=i[r]);u&&u(p)}for(e&&e(t);l<o.length;l++)n=o[l],p.o(a,n)&&a[n]&&a[n][0](),a[n]=0},(l=self.webpackChunkplugin_git_manager=self.webpackChunkplugin_git_manager||[]).forEach(u.bind(null,0)),l.push=u.bind(null,l.push.bind(l));var b={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/plugin-git-manager/dist/client/")}if(!e){var n=window.__nocobase_modern_client_prefix__||"v",o="/"+(n=String(n).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",a=i.indexOf(o);e=a>=0?i.slice(0,a+1):"/"}e&&(e=e.replace(RegExp("/"+n+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/plugin-git-manager/dist/client/"}p.p=e}(),!function(){p.r(b),p.d(b,{PluginGitManagerClient:function(){return R},default:function(){return A}});var e=p(342),t=p(155),r=p.n(t),n=p(59),o=p(375);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function a(e,t,r,n,o,i,a){try{var u=e[i](a),l=u.value}catch(e){r(e);return}u.done?t(l):Promise.resolve(l).then(n,o)}function u(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function u(e){a(i,n,o,u,l,"next",e)}function l(e){a(i,n,o,u,l,"throw",e)}u(void 0)})}}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw n}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:l(0)}),u(a,"throw",{value:l(1)}),u(a,"return",{value:l(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function l(u){return function(l){var c=[u,l];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var s={name:"git-repository",menu:{icon:r().createElement(o.BranchesOutlined,null),Component:function(){return r().createElement("span",null,"Git Repository")}},tag:{Component:function(e){var t=e.item;return r().createElement(n.Space,{size:4},r().createElement(o.BranchesOutlined,null),r().createElement("span",null,(null==t?void 0:t.title)||"Repo #".concat(null==t?void 0:t.uid)))}},getContent:function(e,t){var r=t.uid;return u(function(){var t,n,o;return c(this,function(i){switch(i.label){case 0:return[4,e.apiClient.request({url:"gitRepositories:get",params:{filterByTk:r}})];case 1:if(!(o=null==(n=i.sent())||null==(t=n.data)?void 0:t.data))return[2,null];return[2,{type:"git-repository",repositoryId:o.id,name:o.name,repoUrl:o.repoUrl,defaultBranch:o.defaultBranch,status:o.status}]}})})()}},f={name:"git-merge-request",menu:{icon:r().createElement(o.MergeOutlined,null),Component:function(){return r().createElement("span",null,"Git Merge Request")}},tag:{Component:function(e){var t=e.item;return r().createElement(n.Space,{size:4},r().createElement(o.MergeOutlined,null),r().createElement("span",null,(null==t?void 0:t.title)||"MR ".concat(null==t?void 0:t.uid)))}},getContent:function(e,t){var r=t.uid;return u(function(){var t,n,o,i,a,u,s,p;return c(this,function(c){switch(c.label){case 0:if(o=(n=l(String(r||"").split(":"),2))[0],i=n[1],a=Number(o),u=Number(i),!a||!u)return[2,null];return[4,e.apiClient.request({url:"gitManager:mergeRequestDetail",params:{repositoryId:a,mrIid:u}})];case 1:return p=null==(s=c.sent())||null==(t=s.data)?void 0:t.data,[2,{type:"git-merge-request",repositoryId:a,mrIid:u,title:null==p?void 0:p.title,sourceBranch:null==p?void 0:p.sourceBranch,targetBranch:null==p?void 0:p.targetBranch,author:null==p?void 0:p.author,changes:null==p?void 0:p.changes,description:null==p?void 0:p.description,webUrl:null==p?void 0:p.webUrl}]}})})()}},d={name:"git-commit",menu:{icon:r().createElement(o.NodeIndexOutlined,null),Component:function(){return r().createElement("span",null,"Git Commit")}},tag:{Component:function(e){var t=e.item;return r().createElement(n.Space,{size:4},r().createElement(o.NodeIndexOutlined,null),r().createElement("span",null,(null==t?void 0:t.title)||"Commit ".concat(null==t?void 0:t.uid)))}},getContent:function(e,t){var r=t.uid;return u(function(){var t,n,o,i,a,u,s;return c(this,function(c){switch(c.label){case 0:if(o=(n=l(String(r||"").split(":"),2))[0],i=n[1],!(a=Number(o))||!i)return[2,null];return[4,e.apiClient.request({url:"gitManager:commitDetail",params:{repositoryId:a,commitHash:i}})];case 1:return s=null==(u=c.sent())||null==(t=u.data)?void 0:t.data,[2,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({type:"git-commit",repositoryId:a,commitSha:i},s)]}})})()}},y=p(79),g=p.n(y);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function h(e,t,r,n,o,i,a){try{var u=e[i](a),l=u.value}catch(e){r(e);return}u.done?t(l):Promise.resolve(l).then(n,o)}function v(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){h(i,n,o,a,u,"next",e)}function u(e){h(i,n,o,a,u,"throw",e)}a(void 0)})}}function w(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw n}}return i}}(e,t)||j(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||j(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,t)}}function x(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:l(0)}),u(a,"throw",{value:l(1)}),u(a,"return",{value:l(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function l(u){return function(l){var c=[u,l];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var E=function(o){var i=o.activeRole,a=(0,e.useAPIClient)(),u=O((0,t.useState)(!1),2),l=u[0],c=u[1],s=O((0,t.useState)([]),2),p=s[0],f=s[1],d=O((0,t.useState)({read:[],write:[]}),2),y=d[0],g=d[1];(0,t.useEffect)(function(){(null==i?void 0:i.name)&&m()},[null==i?void 0:i.name]);var m=function(){return v(function(){var e,t,r,o,u,l;return x(this,function(s){switch(s.label){case 0:c(!0),s.label=1;case 1:return s.trys.push([1,3,,4]),[4,Promise.all([a.request({resource:"gitRepositories",action:"list",params:{paginate:!1,sort:["name"]}}),a.request({url:"gitManager:rolePermissions",method:"get",params:{roleName:i.name}})])];case 2:return o=(r=O.apply(void 0,[s.sent(),2]))[0],l=(null==(u=r[1])||null==(e=u.data)?void 0:e.data)||(null==u?void 0:u.data)||{read:[],write:[]},f((null==o||null==(t=o.data)?void 0:t.data)||[]),g({read:l.read||[],write:l.write||[]}),[3,4];case 3:return console.error(s.sent()),n.message.error("Failed to load repository permissions"),[3,4];case 4:return c(!1),[2]}})})()},b=function(e,t,r){return v(function(){var o,u,l,c;return x(this,function(s){switch(s.label){case 0:var p,f;o=y[t]||[],u=r?S(new Set(S(o).concat([e]))):o.filter(function(t){return t!==e}),p=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){w(e,t,r[t])})}return e}({},y),f=null!=(f=w({},t,u))?f:{},Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(f)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(f)).forEach(function(e){Object.defineProperty(p,e,Object.getOwnPropertyDescriptor(f,e))}),l=p,c=y,g(l),s.label=1;case 1:return s.trys.push([1,3,,4]),[4,a.request({url:"gitManager:updateRolePermissions",method:"post",data:{roleName:i.name,values:l}})];case 2:return s.sent(),[3,4];case 3:return s.sent(),n.message.error("Failed to update permissions"),g(c),[3,4];case 4:return[2]}})})()},h=[{title:"Repository Name",dataIndex:"name",key:"name",render:function(e){return r().createElement(n.Typography.Text,{strong:!0},e)}},{title:"Repository URL",dataIndex:"repoUrl",key:"repoUrl",ellipsis:!0,render:function(e){return r().createElement(n.Typography.Text,{type:"secondary"},e)}},{title:"Read (List, Browse Files, View History)",key:"read",width:100,render:function(e,t){return r().createElement(n.Checkbox,{checked:(y.read||[]).includes(t.id),onChange:function(e){return b(t.id,"read",e.target.checked)}})}},{title:"Write (Clone, Pull, Push, Review)",key:"write",width:100,render:function(e,t){return r().createElement(n.Checkbox,{checked:(y.write||[]).includes(t.id),onChange:function(e){return b(t.id,"write",e.target.checked)}})}}];return l&&!p.length?r().createElement(n.Spin,{style:{display:"block",margin:"40px auto"}}):r().createElement("div",{style:{padding:16}},r().createElement("div",{style:{marginBottom:16}},r().createElement(n.Typography.Text,{type:"secondary"},"Configure access permissions for each repository for the role"," ",r().createElement(n.Typography.Text,{strong:!0},(null==i?void 0:i.title)||(null==i?void 0:i.name)),".")),r().createElement(n.Table,{dataSource:p,columns:h,rowKey:"id",pagination:!1,size:"small",bordered:!0}))};function P(e,t,r,n,o,i,a){try{var u=e[i](a),l=u.value}catch(e){r(e);return}u.done?t(l):Promise.resolve(l).then(n,o)}function k(e,t,r){return(k=I()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&_(o,r.prototype),o}).apply(null,arguments)}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return k(e,arguments,C(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),_(r,e)})(e)}function I(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(I=function(){return!!e})()}var q=r().lazy(function(){return Promise.all([p.e("326"),p.e("878")]).then(p.bind(p,205)).then(function(e){return{default:e.GitManagerSettings}})}),M=r().lazy(function(){return p.e("434").then(p.bind(p,33)).then(function(e){return{default:e.RepositoryConfig}})}),R=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=C(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,I()?Reflect.construct(e,t||[],C(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&_(n,e),t=[{key:"load",value:function(){var e;return(e=function(){var e,t;return function(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:l(0)}),u(a,"throw",{value:l(1)}),u(a,"return",{value:l(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function l(u){return function(l){var c=[u,l];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){return this.app.pluginSettingsManager.add("git-manager",{title:this.t("Git Manager"),icon:"BranchesOutlined"}),this.app.pluginSettingsManager.add("git-manager.repositories",{title:this.t("Repositories"),Component:M,aclSnippet:"pm.plugin-git-manager.repositories"}),this.app.pluginSettingsManager.add("git-manager.manage",{title:this.t("Manage"),Component:q,aclSnippet:"pm.plugin-git-manager.manage"}),(null==(e=this.app.aiManager)?void 0:e.registerWorkContext)&&(e.registerWorkContext("git-repository",s),e.registerWorkContext("git-merge-request",f),e.registerWorkContext("git-commit",d)),(t=this.app.pm.get(g()))&&t.settingsUI.addPermissionsTab(function(e){e.t;var t=e.TabLayout,n=e.activeRole;return{key:"git-manager",label:"Git Manager",sort:25,children:r().createElement(t,null,r().createElement(E,{activeRole:n}))}}),[2]})},function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){P(i,n,o,a,u,"next",e)}function u(e){P(i,n,o,a,u,"throw",e)}a(void 0)})}).call(this)}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(n.prototype,t),n}(T(e.Plugin)),A=R}(),b}()});
|