UNPKG

@cocalc/static

Version:

CoCalc's static frontend Webpack-based build system and framework

1 lines 506 kB
"use strict";(self.webpackChunk_cocalc_static=self.webpackChunk_cocalc_static||[]).push([[473],{30473:(e,t,n)=>{n.r(t),n.d(t,{Page:()=>ch});var r=n(473),o=n(8743),a=n(50386),l=n(63505),i=n(60191),c=n(19990);const u=function(e){var t=e.clearGhostFileTabs,n=e.closeFile,r=l.useRef(null),o=(0,i.Z)(r,{enterDelay:100,leaveDelay:100});return l.useEffect((function(){o||null==t||t()}),[o]),l.createElement("div",{ref:r,style:{float:"right"}},l.createElement(c.Icon,{name:o?"close-circle-two-tone":"times",onClick:function(e){null==e||e.stopPropagation(),null==e||e.preventDefault(),n()}}))};var s=n(24620),p=n(13435),d=n(63489),f=n(33667),m=n(32295),h=n(2131),y=n(4668),_=n(18760),v=n(97636),g=n(85733),b=n(66353),E=n(81671),w=n(24809),R=n(91195),x=n(34440),j=n(56393),S=n(41780);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(r,o)}function C(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function l(e){O(a,r,o,l,i,"next",e)}function i(e){O(a,r,o,l,i,"throw",e)}l(void 0)}))}}function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){i=!0,o=e}finally{try{l||null==n.return||n.return()}finally{if(i)throw o}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var T=function(e,t){var n,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;l;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,r=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!((o=(o=l.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=t.call(e,l)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}},I=[{title:"Token",dataIndex:"token",key:"token"},{title:"Created",dataIndex:"created",key:"created"},{title:"Expires",dataIndex:"expires",key:"expires"},{title:"Uses",dataIndex:"counter",key:"counter"}],P=m.React.memo((function(e){var t=e.project_id,n=function(e,t){return t&&t<=v.webapp_client.server_time()?"(EXPIRED)":m.React.createElement(E.Z,{title:"Expire this token? This will make it so this token cannot be used anymore.",onConfirm:function(){return function(e){return O.apply(this,arguments)}(e)},okText:"Yes, expire token",cancelText:"Cancel"},m.React.createElement(w.Z,null,"Expire..."))},r=A((0,m.useState)(!1),2),o=r[0],a=r[1],l=A((0,m.useState)(void 0),2),i=l[0],u=l[1],p=(0,m.useIsMountedRef)(),d=A((0,m.useState)(!1),2),f=d[0],h=d[1];function y(){return _.apply(this,arguments)}function _(){return(_=C((function(){var e,n;return T(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,3,4]),h(!0),[4,v.webapp_client.async_query({query:{project_invite_tokens:[{project_id:t,token:null,created:null,expires:null,usage_limit:null,counter:null}]}})];case 1:return e=r.sent().query,p.current?(u(e.project_invite_tokens),[3,4]):[2];case 2:return n=r.sent(),(0,x.alert_message)({type:"error",message:"Error getting project invite tokens: ".concat(n)}),[3,4];case 3:return p.current&&h(!1),[7];case 4:return[2]}}))}))).apply(this,arguments)}var g=m.React.createElement("div",null,m.React.createElement("a",{onClick:function(){o||y(),a(!o)},style:{cursor:"pointer"}}," ",m.React.createElement(c.Icon,{style:{width:"20px"},name:o?"caret-down":"caret-right"})," ","Invite collaborators by sending them a project invite token..."));if(!o)return g;function k(){return(k=C((function(){var e,n;return T(this,(function(r){switch(r.label){case 0:if(null!=i&&i.length>200)return(0,x.alert_message)({type:"error",message:"You have hit the hard limit on the number of invite tokens for a single project. Please contact support."}),[2];e=(0,s.secure_random_token)(16),r.label=1;case 1:return r.trys.push([1,3,,4]),[4,v.webapp_client.async_query({query:{project_invite_tokens:{token:e,project_id:t,created:v.webapp_client.server_time(),expires:(0,s.server_weeks_ago)(-2)}}})];case 2:return r.sent(),[3,4];case 3:return n=r.sent(),(0,x.alert_message)({type:"error",message:"Error creating project invite token: ".concat(n)}),[3,4];case 4:return p.current?(y(),[2]):[2]}}))}))).apply(this,arguments)}function O(){return(O=C((function(e){var n;return T(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v.webapp_client.async_query({query:{project_invite_tokens:{token:e,project_id:t,expires:v.webapp_client.server_time()}}})];case 1:return r.sent(),[3,3];case 2:return n=r.sent(),(0,x.alert_message)({type:"error",message:"Error expiring project invite token: ".concat(n)}),[3,3];case 3:return p.current?(y(),[2]):[2]}}))}))).apply(this,arguments)}return m.React.createElement("div",{style:{width:"100%",overflowX:"auto"}},m.React.createElement("div",{style:{minWidth:"800px",border:"1px solid grey",padding:"15px"}},g,m.React.createElement("br",null),m.React.createElement("br",null),m.React.createElement(E.Z,{title:"Create a link that people can use to get added as a collaborator to this project.",onConfirm:function(){return k.apply(this,arguments)},okText:"Yes, create token",cancelText:"Cancel"},m.React.createElement(w.Z,{disabled:f},m.React.createElement(c.Icon,{name:"plus"}),m.React.createElement(c.Space,null)," Create token...")),m.React.createElement(c.Space,null),m.React.createElement(w.Z,{onClick:y,disabled:f},m.React.createElement(c.Icon,{name:"refresh",spin:f}),m.React.createElement(c.Space,null)," Refresh"),m.React.createElement("br",null),m.React.createElement("br",null),function(){if(null==i)return m.React.createElement(c.Loading,null);var e=[],t=!0,r=!1,o=void 0;try{for(var a,l=i[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var u=a.value,s=u.token,p=u.counter,d=u.usage_limit,f=u.created,h=u.expires;e.push({key:s,token:h&&h<=v.webapp_client.server_time()?m.React.createElement("span",{style:{textDecoration:"line-through"}},s):m.React.createElement(c.CopyToClipBoard,{value:s}),counter:p,usage_limit:null!=d?d:"∞",created:f?m.React.createElement(c.TimeAgo,{date:f}):void 0,expires:h?m.React.createElement("span",null,m.React.createElement(c.TimeAgo,{date:h})," ",m.React.createElement(c.Space,null),n(s,h)):void 0,data:u})}}catch(e){r=!0,o=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw o}}return m.React.createElement(R.Z,{dataSource:e,columns:I,pagination:{pageSize:4},scroll:{y:240},expandable:{expandedRowRender:function(e){var t=e.data;return m.React.createElement("div",{style:{margin:0}},function(e){var t=e.token,n=e.expires;return n&&n<=v.webapp_client.server_time()?m.React.createElement("div",null,"This token is expired."):m.React.createElement("div",null,"Make this link available to people who you would like to join this project:",m.React.createElement("br",null),m.React.createElement("br",null),m.React.createElement(c.CopyToClipBoard,{value:"".concat(document.location.origin).concat((0,j.join)(S.appBasePath,"app"),"?").concat(b.b,"=").concat(t),style:{width:"100%"}}),m.React.createElement("br",null),"When they click the link, they will get added to this project (this will even work without an account!). You can also share the token above, which they can enter on the top right side of the projects page.")}(t))}}})}()))})),L=n(53924),D=n(34408),z=n(63505);function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function M(e){var t,n,r=e.project,o=(t=(0,l.useState)(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){i=!0,o=e}finally{try{l||null==n.return||n.return()}finally{if(i)throw o}}return a}}(t,n)||function(e,t){if(e){if("string"==typeof e)return B(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?B(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=o[0],i=o[1];if(null==r||"owner"!=r.getIn(["users",v.webapp_client.account_id,"group"]))return z.createElement(z.Fragment,null);var u=z.createElement("div",null,z.createElement("a",{onClick:function(){i(!a)},style:{cursor:"pointer"}}," ",z.createElement(c.Icon,{style:{width:"20px"},name:a?"caret-down":"caret-right"})," ",(null==r?void 0:r.get("sandbox"))?z.createElement("b",null,"This is a Public Sandbox Project..."):"Make this a public sandbox project..."));return a?z.createElement("div",null,u,z.createElement("div",{style:{border:"1px solid #eee",borderRadius:"5px",padding:"15px",marginTop:"5px"}},r.get("sandbox")?z.createElement(D.Z,{checked:!0,onChange:function(){m.redux.getActions("projects").set_project_sandbox(r.get("project_id"),!1)}},"Public Sandbox Project"):z.createElement(E.Z,{title:z.createElement("div",{style:{maxWidth:"350px"}},"Are you absolutely sure? Only do this if you have very minimal security requirements for the content of this project.",z.createElement("br",null),"NOTE: You can always disable sandbox mode later, remove any collaborators that were added, and collaborators can't delete backups or TimeTravel history."),onConfirm:function(){m.redux.getActions("projects").set_project_sandbox(r.get("project_id"),!0)},okText:"Yes, make this a public sandbox project!",cancelText:"Cancel"},z.createElement(D.Z,{checked:!1},"Public Sandbox Project")),z.createElement("br",null),z.createElement("br",null),(null==r?void 0:r.get("sandbox"))?z.createElement("div",null,z.createElement("p",null,"Share this URL, or the URL of any file in your project:"),z.createElement(c.CopyToClipBoard,{value:"".concat(document.location.origin).concat((0,j.join)(S.appBasePath,"projects"),"/").concat(null==r?void 0:r.get("project_id")),style:{width:"100%",marginBottom:"15px"}}),z.createElement("p",null,"When somebody with an account visits that URL, they will automatically be added as a collaborator to this project.")):z.createElement("div",null,z.createElement("p",null,"If you make this project a public sandbox project, then you can share any URL in your project and when somebody visits that URL they will automatically be added as a collaborator to your project. All collaborators who are not the owner will be removed if they are not active for about 10 minutes. Any trial, member hosting, and network banners are also not visible."),z.createElement("p",null,"Only do this if you have ",z.createElement("b",null,"very minimal security requirements")," ","for the content of this project.")))):u}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function N(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(r,o)}function F(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function l(e){N(a,r,o,l,i,"next",e)}function i(e){N(a,r,o,l,i,"throw",e)}l(void 0)}))}}function U(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){i=!0,o=e}finally{try{l||null==n.return||n.return()}finally{if(i)throw o}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Z(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Z(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var q=function(e,t){var n,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;l;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,r=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!((o=(o=l.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=t.call(e,l)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}},W=function(e){var t=e.autoFocus,n=e.project_id,r=function(){O(""),I([]),B(0),W([]),X("input"),ee(""),re(""),le(""),ue(""),de(!1)},o=function(){var e="",t=!0,n=!1,o=void 0;try{for(var a,l=N[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var i=a.value;try{if((0,s.is_valid_email_address)(i))we(i);else{if(!(0,s.is_valid_uuid_string)(i))throw Error("BUG - invalid selection ".concat(i," must be an email address or account_id."));be(i)}}catch(t){e+="\nError - ".concat(t)}}}catch(e){n=!0,o=e}finally{try{t||null==l.return||l.return()}finally{if(n)throw o}}r(),e?(he(e),X("invited_errors")):(he("Successfully added ".concat(N.length," users!")),X("invited"))},a=function(){if(null!=j){var e,t=m.redux.getStore("account").get_fullname(),n=j.get("title"),r="project '".concat(n,"'"),o=null!==(e=m.redux.getStore("customize").get("site_name"))&&void 0!==e?e:p.SITE_NAME,a="Hello!\n\nPlease collaborate with me using ".concat(o," on ").concat(r,".\n\nBest wishes,\n\n").concat(t);re(k),le(a)}},l=function(){var e,t=m.redux.getStore("account").get_email_address(),n=m.redux.getStore("account").get_fullname(),r=null!==(e=m.redux.getStore("customize").get("site_name"))&&void 0!==e?e:p.SITE_NAME;return{subject:null!=n?"".concat(n," added you to project ").concat(null==j?void 0:j.get("title")):"".concat(r," Invitation to project ").concat(null==j?void 0:j.get("title")),replyto:t,replyto_name:n}},i=function(){if(null!=j){var e=l(),t=e.subject,o=e.replyto,a=e.replyto_name;_e.invite_collaborators_by_email(n,ne,ae,t,!1,o,a),re(""),le(""),r()}},u=function(){if(ce)return m.React.createElement(c.ErrorDisplay,{error:ce})},d=function(){return m.React.createElement(y.Z.TextArea,{defaultValue:ae,autoSize:!0,maxLength:1e3,showCount:!0,onBlur:function(){de(!1)},onFocus:function(){return de(!0)},onChange:function(e){var t=e.target.value;le(t),function(e){!ve&&(0,s.contains_url)(e)?ue("Sending URLs is not allowed. (anti-spam measure)"):ue("")}(t)}})},b=function(){var e,t,n=N.length;return 0==n&&0==T.length?(e="No matching users",z>0&&(e+=" (".concat(z," matching ").concat((0,s.plural)(z,"user")," already added)")),t=!0):0==n?(e="Add selected user",t=!0):1==n?(e="Add selected user",t=!1):(e="Add ".concat(n," selected users"),t=!1),ce&&(t=!0),m.React.createElement("div",null,m.React.createElement(f.zx,{onClick:r},"Cancel"),m.React.createElement(c.Space,null),m.React.createElement(f.zx,{disabled:t,onClick:o,bsStyle:"primary"},m.React.createElement(c.Icon,{name:"user-plus"})," ",e))},E=(0,L.useStudentProjectFunctionality)(n),w=(0,m.useTypedRedux)("users","user_map"),R=(0,m.useTypedRedux)("projects","project_map"),j=(0,m.useMemo)((function(){return null==R?void 0:R.get(n)}),[n,R]),S=U((0,m.useState)(""),2),k=S[0],O=S[1],C=(0,m.useRef)(""),A=U((0,m.useState)([]),2),T=A[0],I=A[1],D=U((0,m.useState)(0),2),z=D[0],B=D[1],Z=U((0,m.useState)([]),2),N=Z[0],W=Z[1],J=(0,m.useRef)(null),G=U((0,m.useState)("input"),2),Y=G[0],X=G[1],H=U((0,m.useState)(!1),2),$=H[0],V=H[1],K=U((0,m.useState)(""),2),Q=K[0],ee=K[1],te=U((0,m.useState)(""),2),ne=te[0],re=te[1],oe=U((0,m.useState)(""),2),ae=oe[0],le=oe[1],ie=U((0,m.useState)(""),2),ce=ie[0],ue=ie[1],se=U((0,m.useState)(!1),2),pe=se[0],de=se[1],fe=U((0,m.useState)(""),2),me=fe[0],he=fe[1],ye=(0,m.useIsMountedRef)(),_e=(0,m.useActions)("projects"),ve=(0,m.useMemo)((function(){return m.redux.getStore("projects").allow_urls_in_emails(n)}),[n]);function ge(){return ge=F((function(e){var t,n,r,o,l,i,c,u,p,d,f,m,h,y,_,g,b,E,R,x,S,k,C,A,T,P,L;return q(this,(function(D){switch(D.label){case 0:if("searching"==Y||null==j)return[2];if(O(e),0===e.length)return ee(""),I([]),[2];X("searching"),n="",r=[],o=0,l=new Set([]),D.label=1;case 1:D.trys.push([1,10,,11]),i=!0,c=!1,u=void 0,D.label=2;case 2:D.trys.push([2,7,8,9]),p=e.split(",")[Symbol.iterator](),D.label=3;case 3:return(i=(d=p.next()).done)?[3,6]:(f=(f=d.value).trim().toLowerCase(),[4,v.webapp_client.users_client.user_search({query:f,limit:30})]);case 4:if(m=D.sent(),!ye.current)return[2];if(0==m.length&&(0,s.is_valid_email_address)(f))h=f,l.has(h)||(r.push({email_address:h,sort:"0"+h}),l.add(h));else{y=!0,_=!1,g=void 0;try{for(b=m[Symbol.iterator]();!(y=(E=b.next()).done);y=!0)if(null!=(R=E.value).account_id)if(null==j.getIn(["users",R.account_id]))if(l.has(R.account_id)){if(null!=R.email_address){x=!0,S=!1,k=void 0;try{for(C=r[Symbol.iterator]();!(x=(A=C.next()).done);x=!0)(T=A.value).account_id==R.account_id&&(T.email_address=R.email_address)}catch(e){S=!0,k=e}finally{try{x||null==C.return||C.return()}finally{if(S)throw k}}}}else r.push(R),l.add(R.account_id);else o+=1}catch(e){_=!0,g=e}finally{try{y||null==b.return||b.return()}finally{if(_)throw g}}}D.label=5;case 5:return i=!0,[3,3];case 6:return[3,9];case 7:return P=D.sent(),c=!0,u=P,[3,9];case 8:try{i||null==p.return||p.return()}finally{if(c)throw u}return[7];case 9:return[3,11];case 10:return L=D.sent(),n=L.toString(),[3,11];case 11:return B(o),a(),r.sort((function(e,t){var n,r,o,a,l,i,c=(0,s.cmp)(e.account_id&&w.has(e.account_id)?0:1,t.account_id&&w.has(t.account_id)?0:1);return c||(c=-(0,s.cmp)(null!==(l=null===(n=e.last_active)||void 0===n?void 0:n.valueOf())&&void 0!==l?l:0,null!==(i=null===(r=t.last_active)||void 0===r?void 0:r.valueOf())&&void 0!==i?i:0))||(0,s.cmp)(null===(o=e.last_name)||void 0===o?void 0:o.toLowerCase(),null===(a=t.last_name)||void 0===a?void 0:a.toLowerCase())})),X("searched"),ee(n),I(r),re(""),null===(t=J.current)||void 0===t||t.focus(),[2]}}))})),ge.apply(this,arguments)}function be(e){return Ee.apply(this,arguments)}function Ee(){return Ee=F((function(e){var t,r,o,a;return q(this,(function(i){switch(i.label){case 0:return null==j?[2]:(t=l(),r=t.subject,o=t.replyto,a=t.replyto_name,[4,_e.invite_collaborator(n,e,ae,r,!1,o,a)]);case 1:return i.sent(),[2]}}))})),Ee.apply(this,arguments)}function we(e){return Re.apply(this,arguments)}function Re(){return Re=F((function(e){var t,r,o,a;return q(this,(function(i){switch(i.label){case 0:return null==j?[2]:(t=l(),r=t.subject,o=t.replyto,a=t.replyto_name,[4,_e.invite_collaborators_by_email(n,e,ae,r,!1,o,a)]);case 1:return i.sent(),ve||(0,x.alert_message)({type:"warning",message:"For security reasons you should contact ".concat(e," directly and ask them to join Cocalc to get access to this project.")}),[2]}}))})),Re.apply(this,arguments)}return E.disableCollaborators?m.React.createElement("div",null):m.React.createElement("div",null,Q&&m.React.createElement(c.ErrorDisplay,{error:Q,onClose:function(){return ee("")}}),"searching"==Y&&m.React.createElement(c.Loading,null),m.React.createElement("div",{style:{height:"40px"}},"searched"==Y?b():"Who would you like to collaborate with?"),function(){if(null!=j){var e=[],n=[],o=!0,a=!1,l=void 0;try{for(var i,p=T[Symbol.iterator]();!(o=(i=p.next()).done);o=!0){var f=i.value;null!=j.get("users").get(f.account_id)?n.push(f):e.push(f)}}catch(e){a=!0,l=e}finally{try{o||null==p.return||p.return()}finally{if(a)throw l}}return m.React.createElement("div",{style:{marginBottom:"10px"}},m.React.createElement(h.Z,{ref:J,mode:"multiple",allowClear:!0,showArrow:!0,autoFocus:t,open:!!t||void 0,filterOption:function(e,t){return-1!=e.indexOf(",")||(0,s.search_match)(t.label,(0,s.search_split)(e.toLowerCase()))},style:{width:"100%",marginBottom:"10px"},placeholder:T.length>0&&k.trim()?"Select user from ".concat(T.length," ").concat((0,s.plural)(T.length,"user")," matching '").concat(k,"'."):m.React.createElement("span",null,m.React.createElement(c.Icon,{name:"search"})," Name or email address..."),onChange:function(e){W(e)},value:N,optionLabelProp:"tag",onInputKeyDown:function(e){return 27==e.keyCode?(r(),void e.preventDefault()):13!=e.keyCode||"searching"==Y||function(){var e=(0,s.search_split)(C.current.toLowerCase());if(0==e.length)return!0;var t=!0,n=!1,r=void 0;try{for(var o,a=T[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var l=o.value;if(null!=l.label&&(0,s.search_match)(l.label,e))return!0}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return!1}()?void 0:(function(e){ge.apply(this,arguments)}(C.current),void e.preventDefault())},onSearch:function(e){return C.current=e},notFoundContent:null,onFocus:function(){return V(!0)},onBlur:function(){return V(!1)}},function(e){var t=[],n=!0,r=!1,o=void 0;try{for(var a,l=e[Symbol.iterator]();!(n=(a=l.next()).done);n=!0){var i,c=a.value;if(null==c.label||null==c.tag||null==c.name){var u,p,d=c.account_id?(null!==(u=c.first_name)&&void 0!==u?u:"")+" "+(null!==(p=c.last_name)&&void 0!==p?p:""):c.email_address;(null==d?void 0:d.trim())||(d="Anonymous User");var f,y=(0,s.trunc_middle)(d,20),_=[];null!=c.account_id&&w.get(c.account_id)&&_.push("Collaborator"),c.last_active&&_.push("Active ".concat(new Date(c.last_active).toLocaleDateString())),c.created&&_.push("Created ".concat(new Date(c.created).toLocaleDateString())),null==c.account_id?_.push("No account"):c.email_address&&((null===(f=c.email_address_verified)||void 0===f?void 0:f[c.email_address])?_.push("".concat(c.email_address," -- verified")):_.push("".concat(c.email_address," -- not verified"))),_.length>0&&(d+=" (".concat(_.join(", "),")")),c.label=d.toLowerCase(),c.tag=y,c.name=d}var v=null!==(i=c.account_id)&&void 0!==i?i:c.email_address;t.push(m.React.createElement(h.Z.Option,{key:v,value:v,label:c.label,tag:c.tag},m.React.createElement(g.q,{size:36,no_tooltip:!0,account_id:c.account_id,first_name:c.account_id?c.first_name:"@",last_name:c.last_name})," ",m.React.createElement("span",{title:c.name},c.name)))}}catch(e){r=!0,o=e}finally{try{n||null==l.return||l.return()}finally{if(r)throw o}}return t}(e)),function(){if($&&0===T.length)return m.React.createElement(_.Z,{type:"info",message:"Press enter to search..."})}(),N.length>0&&m.React.createElement("div",{style:{border:"1px solid lightgrey",padding:"10px",borderRadius:"5px",backgroundColor:"white",margin:"10px 0"}},u(),d()),"searched"==Y&&b())}}(),function(){if(ne)return m.React.createElement("div",null,m.React.createElement("hr",null),m.React.createElement(f.tW,null,"Enter one or more email addresses separated by commas:",m.React.createElement(y.Z,{placeholder:"Email addresses separated by commas...",value:ne,onChange:function(e){return re(e.target.value)},autoFocus:!0}),m.React.createElement("div",{style:{border:"1px solid lightgrey",padding:"10px",borderRadius:"5px",backgroundColor:"white",marginBottom:"15px"}},u(),d()),m.React.createElement(f.Si,null,m.React.createElement(f.zx,{bsStyle:"primary",onClick:i,disabled:!!pe},"Send Invitation"),m.React.createElement(f.zx,{onClick:function(){re(""),le(""),de(!1)}},"Cancel"))))}(),function(){if("invited"==Y)return m.React.createElement(_.Z,{style:{margin:"5px 0"},showIcon:!0,closable:!0,onClose:r,type:"success",message:me})}(),m.React.createElement(P,{project_id:null==j?void 0:j.get("project_id")}),m.React.createElement(M,{project:j}))},J=n(872),G=function(e){var t=function(e,t){return l.createElement("div",{key:e.account_id,style:t?void 0:{marginBottom:"20px"}},l.createElement(a.Row,{style:{display:"flex",alignItems:"center"}},l.createElement(a.Col,{sm:8},l.createElement(J.User,{account_id:e.account_id,user_map:r,last_active:e.last_active,show_avatar:!0}),l.createElement("span",null,l.createElement(c.Space,null),"(",e.group,")")),l.createElement(a.Col,{sm:4},function(e,t){if(!u.disableCollaborators){var a=function(e){var t={maxWidth:"300px"};return e===o()?l.createElement("div",{style:t},"Are you sure you want to remove ",l.createElement("b",null,"yourself")," from this project? You will no longer have access to this project and cannot add yourself back."):l.createElement("div",{style:t},"Are you sure you want to remove"," ",l.createElement(J.User,{account_id:e,user_map:r})," from this project? They will no longer have access to this project.")}(e);return l.createElement(E.Z,{title:a,onConfirm:function(){return function(e){var t=n.get("project_id");if(m.redux.getActions("projects").remove_collaborator(t,e),e===o())return m.redux.getActions("page").close_project_tab(t)}(e)},okText:"Yes, remove collaborator",cancelText:"Cancel"},l.createElement(w.Z,{disabled:"owner"===t,style:{marginBottom:"0",float:"right"}},l.createElement(c.Icon,{name:"user-times"}),l.createElement(c.Space,null)," Remove..."))}}(e.account_id,e.group))))},n=e.project,r=e.user_map,o=(0,m.useRedux)("account","get_account_id"),i=(0,m.useRedux)("projects","sort_by_activity"),u=(0,L.useStudentProjectFunctionality)(n.get("project_id"));return l.createElement(c.SettingBox,{title:"Current collaborators",icon:"user"},"Everybody listed below can collaboratively work with you on any notebooks, terminals or files in this project, and add or remove other collaborators.",l.createElement("hr",null),l.createElement(a.Well,{style:{maxHeight:"20em",overflowY:"auto",overflowX:"hidden",marginBottom:"0"}},function(){var e=n.get("users");if(void 0!==e){var r=e.map((function(e,t){return{account_id:t,group:e.get("group")}})).toList().toJS();return i(r,n.get("project_id")).map((function(e,n){return t(e,n===r.length-1)}))}}()))},Y=n(38628),X=n(53534),H=n(983),V=n(35730),K=n(50627),Q=n(95604),ee=n(63505);function te(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ne(e){return ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},ne(e)}function re(e,t){return!t||"object"!==le(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function oe(e,t){return oe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},oe(e,t)}var ae,le=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};var ie=n(872).User,ce=(0,m.rclass)((ae=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&oe(e,t)}(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=ne(t);if(n){var o=ne(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return re(this,e)});function o(){return te(this,o),r.apply(this,arguments)}return o.prototype.render=function(){if(null==this.props.user_map)return ee.createElement(Q.g,null);var e,t=this.props.project.get("users");e=null!=t?t.keySeq().toArray():[];var n=[],r=!0,o=!1,a=void 0;try{for(var l,i=e[Symbol.iterator]();!(r=(l=i.next()).done);r=!0){var c=l.value;c!==this.props.account_id&&n.push({account_id:c})}}catch(e){o=!0,a=e}finally{try{r||null==i.return||i.return()}finally{if(o)throw a}}n=m.redux.getStore("projects").sort_by_activity(n,this.props.project.get("project_id"));var u=[],s=!0,p=!1,d=void 0;try{for(var f,h=n[Symbol.iterator]();!(s=(f=h.next()).done);s=!0){var y=f.value;u.push(ee.createElement(ie,{key:y.account_id,last_active:y.last_active,account_id:y.account_id,user_map:this.props.user_map}))}}catch(e){p=!0,d=e}finally{try{s||null==h.return||h.return()}finally{if(p)throw d}}return u.length>0?(0,K.d)(u):this.props.none?this.props.none:ee.createElement("span",null)},o}(m.Component),ae.reduxProps=function(){return{users:{user_map:m.rtypes.immutable},account:{account_id:m.rtypes.string}}},ae));function ue(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function se(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(r,o)}function pe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){i=!0,o=e}finally{try{l||null==n.return||n.return()}finally{if(i)throw o}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ue(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ue(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var de={fontSize:"12px",color:p.COLORS.GRAY,marginTop:"5px"},fe=function(e){var t=e.project_id,n=e.index,r=function(e,t){var n;!t&&d||(null!==(n=window.getSelection())&&void 0!==n?n:"").toString()===l&&o(e)},o=function(e){b.open_project({project_id:t,switch_to:!(2===(null==e?void 0:e.which)||(null==e?void 0:e.ctrlKey)||(null==e?void 0:e.metaKey))}),null==e||e.preventDefault(),(0,X.C)("open_project",{how:"projects_page",project_id:t})},a=pe((0,m.useState)(""),2),l=a[0],i=a[1],u=(0,m.useRedux)(["projects","project_map",t]),s=pe((0,m.useState)(!1),2),d=s[0],h=s[1],y=(0,m.useTypedRedux)("compute_images","images"),_=(0,m.useTypedRedux)("account","is_anonymous"),v=(0,m.useTypedRedux)("customize","kucalc"),g=(0,m.useTypedRedux)("customize","software"),b=(0,m.useActions)("projects"),E={backgroundColor:(null!=n?n:0)%2?"#eee":"white",marginBottom:0,cursor:"pointer",wordWrap:"break-word"};return null==u?m.React.createElement(m.React.Fragment,null):m.React.createElement(f.tW,{style:E,onMouseDown:function(){var e;i((null!==(e=window.getSelection())&&void 0!==e?e:"").toString())}},m.React.createElement(f.X2,null,m.React.createElement(f.JX,{onClick:r,sm:3,style:{maxHeight:"10em",overflowY:"auto"}},m.React.createElement("div",{style:{fontWeight:"bold",display:"flex"}},m.React.createElement("a",{"cocalc-test":"project-line",onClick:function(){return r(void 0,!0)}},m.React.createElement(c.Markdown,{value:u.get("title")}))),m.React.createElement(c.TimeAgo,{date:u.get("last_edited")}),function(){var e=u.get("compute_image");if(null!=e&&null!=y){if(e.startsWith(Y.an)){var t=(0,Y.PF)(e),n=y.get(t);if(null==n)return;var r=n.get("display");return m.React.createElement("div",{style:de},r," ",m.React.createElement("span",{title:"Custom image created by a third party"},"(custom)"))}if(e!==H.DEFAULT_COMPUTE_IMAGE){var o,a,l=null!==(o=g.getIn(["environments",e,"title"]))&&void 0!==o?o:e,i=null!==(a=g.getIn(["environments",e,"descr"]))&&void 0!==a?a:"";return m.React.createElement("div",{style:de},m.React.createElement("span",{title:i},l),v===V.KUCALC_COCALC_COM&&m.React.createElement(m.React.Fragment,null," ",m.React.createElement("span",{title:"Official image created by CoCalc"},"(official)")))}}}()),m.React.createElement(f.JX,{onClick:r,sm:3,style:{color:p.COLORS.GRAY,maxHeight:"10em",overflowY:"auto"}},function(){var e=u.get("description");if("No Description"!=e)return m.React.createElement(c.Markdown,{style:{color:p.COLORS.GRAY},value:e})}()),m.React.createElement(f.JX,{sm:3},!_&&m.React.createElement("div",null,m.React.createElement("div",{style:{maxHeight:"7em",overflowY:"auto"},onClick:function(e){h(!d),e.stopPropagation()}},m.React.createElement("a",null," ",m.React.createElement("span",{style:{fontSize:"15pt"}},m.React.createElement(c.Icon,{name:d?"caret-down":"caret-right"})),m.React.createElement(c.Space,null),m.React.createElement(c.Icon,{name:"user",style:{fontSize:"16pt",marginRight:"10px"}}),m.React.createElement(ce,{project:u}))),function(){if(d)return m.React.createElement(W,{project_id:t,autoFocus:!0})}())),m.React.createElement(f.JX,{sm:1,onClick:function(e){d||_||(b.open_project({project_id:t,switch_to:!(2===e.which||e.ctrlKey||e.metaKey),target:"settings"}),e.stopPropagation())}},!_&&m.React.createElement("a",null,m.React.createElement(c.ProjectState,{state:u.get("state")}))),m.React.createElement(f.JX,{sm:2},u.get("avatar_image_tiny")&&m.React.createElement(me,{project_id:t,size:120,onClick:r,style:{margin:"-20px 0",textAlign:"center"}}))))};function me(e){var t=e.project_id,n=e.size,o=e.onClick,a=e.style,i=(0,m.useIsMountedRef)(),c=pe((0,m.useState)(void 0),2),u=c[0],s=c[1];return(0,l.useEffect)((function(){var e;(e=function(){var e;return function(e,t){var n,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;l;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,r=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!((o=(o=l.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=t.call(e,l)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}(this,(function(n){switch(n.label){case 0:return[4,m.redux.getStore("projects").getProjectAvatarImage(t)];case 1:return e=n.sent(),i.current?(s(e),[2]):[2]}}))},function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function l(e){se(a,r,o,l,i,"next",e)}function i(e){se(a,r,o,l,i,"throw",e)}l(void 0)}))})()}),[]),u?m.React.createElement("div",{style:a,onClick:function(e){return null==o?void 0:o(e)}},m.React.createElement(r.C,{shape:"square",size:null!=n?n:160,icon:m.React.createElement("img",{src:u})})):m.React.createElement(m.React.Fragment,null)}var he=n(67941),ye=n(12866);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}var ve=p.COLORS.TOP_BAR.ACTIVE,ge=m.React.memo((function(e){var t,n,r=(0,m.useActions)("page"),o=e.active_top_tab===e.name;return(n=null!=e.style?e.style:{}).float="left",null==n.fontSize&&(n.fontSize="14px"),null==n.cursor&&(n.cursor="pointer"),n.border="none",o&&(n.backgroundColor=ve),t=e.inner_style?e.inner_style:{padding:"10px"},e.add_inner_style&&(t=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}({},t,e.add_inner_style)),m.React.createElement(a.NavItem,{active:o,onClick:function(t){var n,o;null===(n=e.on_click)||void 0===n||n.call(e),e.is_project?(0,X.C)("top_nav",{name:"project",project_id:e.name}):(0,X.C)("top_nav",{name:null!==(o=e.name)&&void 0!==o?o:e.label}),null!=e.name&&r.set_active_tab(e.name)},style:n},m.React.createElement("div",{style:t},function(){if(null!=e.icon)return"string"==typeof e.icon?m.React.createElement(c.Icon,{name:e.icon,style:{paddingRight:2,fontSize:"20px"}}):e.icon}(),function(){if(!e.hide_label&&null!=e.label)return m.React.createElement("span",{style:{marginLeft:"5px",marginTop:"-3px"},className:e.label_class,"cocalc-test":e.name},e.label)}(),e.children))})),be=n(63505);function Ee(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function we(e){return we=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},we(e)}function Re(e,t){return!t||"object"!==je(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function xe(e,t){return xe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},xe(e,t)}var je=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};var Se=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xe(e,t)}(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=we(t);if(n){var o=we(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Re(this,e)});function o(){return Ee(this,o),r.apply(this,arguments)}return o.prototype.render=function(){return"online"==this.props.state?be.createElement("span",null):be.createElement("span",{title:this.props.state},be.createElement(c.Icon,{style:{color:ke(this.props.state)},name:"wifi"}))},o}(m.Component);function ke(e){switch(e){case"destroyed":return"rgb(255, 0, 0)";case"online":return"#666";default:return"rgb(255, 165, 0)"}}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ae(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){Ce(e,t,n[t])}))}return e}var Te=(0,o.W8)(ge),Ie=(0,o.JN)((function(e){var t=e.style,n=e.children,r=e.id,o=e.className;return m.React.createElement(a.Nav,{style:t,id:r,className:o},n)})),Pe={flexShrink:1,width:"200px",height:"36px",overflow:"hidden"},Le={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},De={flexShrink:1,width:"200px",maxWidth:"200px",height:"36px",overflow:"hidden",lineHeight:"1.75em"},ze=m.React.memo((function(e){var t,n=e.project_id,o=e.index,a=(0,m.useRef)(null);(0,m.useEffect)((function(){var e;null===(e=m.ReactDOM.findDOMNode(a.current))||void 0===e||e.children[0].removeAttribute("href")}));var l,i=(0,m.useActions)("page"),f=(0,m.useTypedRedux)("page","active_top_tab"),h=(0,m.useRedux)(["projects","project_map",n]),y=(0,m.useTypedRedux)("projects","public_project_titles"),_=(0,m.useTypedRedux)("projects","project_websockets"),v=(0,m.useTypedRedux)("account","is_anonymous"),g=function(e){var t,n,r=(t=(0,m.useState)(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){i=!0,o=e}finally{try{l||null==n.return||n.return()}finally{if(i)throw o}}return a}}(t,n)||function(e,t){if(e){if("string"==typeof e)return Oe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=r[0],a=r[1],l=(0,m.useTypedRedux)({project_id:e},"status"),i=(null==l?void 0:l.get("alerts").size)>0;return m.React.useMemo((function(){a(i)}),[i]),o}(n),b=null!==(l=null==h?void 0:h.get("title"))&&void 0!==l?l:null==y?void 0:y.get(n);if(null==b)return f==n&&(0,ye.m)("Loading"),m.React.createElement(c.Loading,{key:n});f==n&&(0,ye.m)(b);var E,w=function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}(Ae({},De),{color:n===f?p.COLORS.TOP_BAR.TEXT_ACTIVE:void 0}),R=null==h?void 0:h.getIn(["state","state"]),x=g&&"running"===R?m.React.createElement(c.Icon,{name:"exclamation-triangle",style:{color:p.COLORS.BS_RED}}):m.React.createElement(c.Icon,{name:null!==(E=null===(t=d.COMPUTE_STATES[R])||void 0===t?void 0:t.icon)&&void 0!==E?E:"bullhorn"});return m.React.createElement(Te,{ref:a,index:o,name:n,active_top_tab:f,style:w,is_project:!0},m.React.createElement("div",{style:{float:"right",whiteSpace:"nowrap"}},m.React.createElement("span",{style:{paddingRight:"5px"},className:"hidden-xs"},m.React.createElement(Se,{state:null==_?void 0:_.get(n)})),function(){if(!v)return m.React.createElement(u,{closeFile:function(){return i.close_project_tab(n)},clearGhostFileTabs:function(){return i.clear_ghost_tabs()}})}()),m.React.createElement("div",{style:Le,onClick:function(e){(e.ctrlKey||e.shiftKey||e.metaKey)&&(e.stopPropagation(),e.preventDefault(),m.redux.getProjectActions(n).open_file({path:"",new_browser_window:!0}))}},m.React.createElement(c.Tip,{title:b,tip:function(){var e;return m.React.createElement(m.React.Fragment,null,m.React.createElement(me,{project_id:n,size:120,style:{textAlign:"center"}}),m.React.createElement("div",{style:{textAlign:"center"}},(0,s.trunc)(null!==(e=null==h?void 0:h.get("description"))&&void 0!==e?e:"",128)),m.React.createElement("hr",null),m.React.createElement("div",{style:{color:p.COLORS.GRAY}},"Hint: shift+click any project or file tab to open it in new window."))}(),placement:"bottom",size:"small"},x,(null==h?void 0:h.get("avatar_image_tiny"))&&m.React.createElement(r.C,{style:{marginTop:"-2px"},shape:"circle",icon:m.React.createElement("img",{src:h.get("avatar_image_tiny")}),size:20}),m.React.createElement("span",{style:{marginLeft:5,position:"relative"}},b))))})),Be=m.React.memo((function(e){var t=e.style,n=(0,m.useActions)("projects"),r=(0,m.useTypedRedux)("page","num_ghost_tabs"),o=(0,m.useTypedRedux)("projects","open_projects");return m.React.createElement("div",{style:Ae({display:"flex",flex:"1",overflow:"hidden",height:"36px",margin:"0"},t)},m.React.createElement(Ie,{id:"smc-project-tab-floating",className:"smc-project-tab-sorter",style:{display:"flex",overflow:"hidden",margin:"0"},helperClass:"smc-project-tab-floating",onSortEnd:function(e){var t=e.oldIndex,r=e.newIndex;n.move_project_tab({old_index:t,new_index:r})},axis:"x",lockAxis:"x",lockToContainerEdges:!0,distance:he.IS_TOUCH?void 0:3,pressDelay:he.IS_TOUCH?200:void 0},function(){if(null!=o){var e=[];if(o.map((function(t,n){e.push(m.React.createElement(ze,{index:n,project_id:t,key:t}))})),0===r)return e;for(var t=o.size,n=t+r,l=t;l<n;l++)e.push(m.React.createElement(a.NavItem,{key:l,style:Pe}));return e}}()))})),Me=n(60799),Ze=n(70919),Ne=n(9067),Fe=n(63505),Ue=function(){return Fe.createElement(f.bZ,{bsStyle:"danger",style:{marginTop:"10px"}},Fe.createElement("h4",null,Fe.createElement(c.Icon,{name:"exclamation-triangle"})," Warning: this project is"," ",Fe.createElement("strong",null,"deleted!")),Fe.createElement("p",null,"If you intend to use this project, you should"," ",Fe.createElement("strong",null,"undelete it")," in Hide or delete under project settings."))},qe=n(85460),We=n(62403),Je=n.n(We),Ge=n(23474),Ye=n(97891),Xe=n(32687),He=n(99583).default,$e=function(){return m.React.createElement("div",{id:"smc-startup-banner"},m.React.createElement("div",null,m.React.createElement("img",{src:He})),m.React.createElement("div",{className:"message ready",style:{margin:"auto",textAlign:"center",fontSize:"36px",color:"#888"}},m.React.createElement(Ze.w3,null)))},Ve=n(97400),Ke=n(63505);function Qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function et(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tt(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){et(e,t,n[t])}))}return e}function nt(e){if(0==e.length)throw Error("must have some activity");var t=e[0].last_used,n=e[0],r=!0,o=!1,a=void 0;try{for(var l,i=e.slice(1)[Symbol.iterator]();!(r=(l=i.next()).done);r=!0){var c=l.value;c.last_used>=t&&(n=c,t=c.last_used)}}catch(e){o=!0,a=e}finally{try{r||null==i.return||i.return()}finally{if(o)throw a}}return n}var rt={overflowX:"auto",overflowY:"hidden",zIndex:1,whiteSpace:"nowrap",padding:"1px",height:"32px"},ot={maxWidth:"120px"},at=function(e){var t,n,r=e.path,o=e.project_id,a=e.max_age_s,l=void 0===a?600:a,i=e.style,u=void 0===i?ot:i,p=e.size,d=void 0===p?24:p,f=(t=(0,m.useState)(0),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){i=!0,o=e}finally{try{l||null==n.return||n.return()}finally{if(i)throw o}}return a}}(t,n)||function(e,t){if(e){if("string"==typeof e)return Qe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qe(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=f[0],y=f[1],_=(0,m.useTypedRedux)("file_use","file_use"),v=(0,m.useMemo)((function(){var e;return null===(e=m.redux.getStore("file_use"))||void 0===e?void 0:e.get_active_users({project_id:o,path:r,max_age_s:l})}),[_,o,r,l]),b=(0,m.useTypedRedux)("account","account_id");return(0,Ve.Y)((function(){y(h+1)}),15e3),null==_||null==b?Ke.createElement(c.Loading,null):Ke.createElement("div",{style:tt({},rt,u)},function(e){var t=[];if(null!=e)for(var n in e){var a=e[n];a&&0!=a.length&&t.push({account_id:n,activity:nt(a)})}t.sort((function(e,t){return(0,s.cmp)(t.activity.last_used,e.activity.last_used)}));var i=0,c=[],u=!0,p=!1,f=void 0;try{for(var m,h=t[Symbol.iterator]();!(u=(m=h.next()).done);u=!0){var y=m.value,_=y.account_id,v=y.activity;_!==b&&(i+=1,c.push(Ke.createElement(g.q,{key:_+i,account_id:_,max_age_s:l,project_id:o,path:r,size:d,activity:v})))}}catch(e){p=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(p)throw f}}return c}(v))},lt=n(46304),it=n(52224),ct=n(34499),ut=(n(56298),n(6174));function st(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pt(e){return pt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},pt(e)}function dt(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&mt(e,t)}function ft(e,t){return!t||"object"!==ht(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been