airdcpp-webui 2.12.1-beta.4 → 2.12.1
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/dist/index.html +1 -1
- package/dist/js/{236.c033545917799459b3a4.chunk.js → 236.6b4fd58c10a23138b7d8.chunk.js} +2 -2
- package/dist/js/236.6b4fd58c10a23138b7d8.chunk.js.gz +0 -0
- package/dist/js/236.6b4fd58c10a23138b7d8.chunk.js.map +1 -0
- package/dist/js/{hubs.51fd0b03ed33f0a82f58.chunk.js → hubs.c21b941c411425d4852f.chunk.js} +2 -2
- package/dist/js/hubs.c21b941c411425d4852f.chunk.js.gz +0 -0
- package/dist/js/hubs.c21b941c411425d4852f.chunk.js.map +1 -0
- package/dist/js/main.7a746a54efc4bf96cd20.entry.js +3 -0
- package/dist/js/{main.0f999b49d5abcf2b50b2.entry.js.LICENSE.txt → main.7a746a54efc4bf96cd20.entry.js.LICENSE.txt} +3 -3
- package/dist/js/main.7a746a54efc4bf96cd20.entry.js.gz +0 -0
- package/dist/js/main.7a746a54efc4bf96cd20.entry.js.map +1 -0
- package/dist/js/{messages.3cd02d9105ea80abf5df.chunk.js → messages.6ed02d7d7ec7e06a93f2.chunk.js} +2 -2
- package/dist/js/messages.6ed02d7d7ec7e06a93f2.chunk.js.gz +0 -0
- package/dist/js/{messages.3cd02d9105ea80abf5df.chunk.js.map → messages.6ed02d7d7ec7e06a93f2.chunk.js.map} +1 -1
- package/dist/js/settings.a509b3c48b03452b6783.chunk.js +2 -0
- package/dist/js/settings.a509b3c48b03452b6783.chunk.js.gz +0 -0
- package/dist/js/settings.a509b3c48b03452b6783.chunk.js.map +1 -0
- package/dist/sw.js +1 -1
- package/dist/sw.js.gz +0 -0
- package/package.json +1 -1
- package/dist/js/236.c033545917799459b3a4.chunk.js.gz +0 -0
- package/dist/js/236.c033545917799459b3a4.chunk.js.map +0 -1
- package/dist/js/hubs.51fd0b03ed33f0a82f58.chunk.js.gz +0 -0
- package/dist/js/hubs.51fd0b03ed33f0a82f58.chunk.js.map +0 -1
- package/dist/js/main.0f999b49d5abcf2b50b2.entry.js +0 -3
- package/dist/js/main.0f999b49d5abcf2b50b2.entry.js.gz +0 -0
- package/dist/js/main.0f999b49d5abcf2b50b2.entry.js.map +0 -1
- package/dist/js/messages.3cd02d9105ea80abf5df.chunk.js.gz +0 -0
- package/dist/js/settings.10689d2c4c40b7e4b769.chunk.js +0 -2
- package/dist/js/settings.10689d2c4c40b7e4b769.chunk.js.gz +0 -0
- package/dist/js/settings.10689d2c4c40b7e4b769.chunk.js.map +0 -1
package/dist/js/{messages.3cd02d9105ea80abf5df.chunk.js → messages.6ed02d7d7ec7e06a93f2.chunk.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[871],{58834:(e,s,n)=>{n.d(s,{A:()=>c});var t=n(71354),i=n.n(t),
|
|
2
|
-
//# sourceMappingURL=messages.
|
|
1
|
+
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[871],{58834:(e,s,n)=>{n.d(s,{A:()=>c});var t=n(71354),i=n.n(t),a=n(76314),o=n.n(a)()(i());o.push([e.id,".ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n","",{version:3,sources:["webpack://./src/routes/Sidebar/routes/Messages/style.css"],names:[],mappings:"AAAA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;AACpB",sourcesContent:[".ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n"],sourceRoot:""}]);const c=o},22187:(e,s,n)=>{n.d(s,{A:()=>r});var t=n(74848),i=n(77856),a=n(71352),o=n(93866),c=n(39115);function r(e){return{itemNameGetter:e=>e.user.nicks,itemStatusGetter(e){const{flags:s}=e.user;return(0,i.Z)(s)},itemHeaderDescriptionGetter:e=>e.user.hub_names,itemHeaderIconGetter:e=>(0,t.jsx)(o.A,{flags:e.user.flags}),itemHeaderTitleGetter(s,n,i){const{user:o}=s;return(0,t.jsx)(a.Bg,{user:o,ids:e,remoteMenuId:c.Ay.HINTED_USER,children:i})}}}},574:(e,s,n)=>{n.r(s),n.d(s,{default:()=>oe});var t=n(74848),i=n(96540),a=n(91950),o=n(22187),c=n(10704),r=n(8220),l=n(62705),A=n(93226),d=n(4425),u=n(84855);const p=e=>c.A.getSession(e.user.cid),S=e=>{const s=s=>{const{location:n,navigate:t}=e;r.A.createSession(s,{sessionStore:c.A,location:n,navigate:t})},{sessionT:n}=e;return(0,t.jsxs)("div",{className:"private chat session new",children:[(0,t.jsx)(u.M,{onChange:s,offlineMessage:n.t("offlineMessage","You must to be connected to at least one hub in order to send private messages"),isClearable:!1,autoFocus:!0}),(0,t.jsx)(l.A,{entryType:A.iM.PRIVATE_CHAT,hasSession:p,entryTitleRenderer:e=>(0,t.jsx)("a",{onClick:n=>s(e.user),children:e.user.nicks}),entryIcon:d.A.MESSAGES_PLAIN})]})};var E=n(99104),m=n(38453),h=n(99347),C=n(71352),T=n(85208),I=n(86038),_=n(25113),b=n(32811),g=n(67749);const f={connectCCPM:{id:"connectCCPM",displayName:"Connect",access:I.US.PRIVATE_CHAT_EDIT,icon:d.A.PLAY,handler:({itemData:e})=>b.A.post(`${_.A.SESSIONS_URL}/${e.id}/ccpm`),filter:({itemData:e})=>e.ccpm_state.id===I.ob.DISCONNECTED},disconnectCCPM:{id:"disconnectCCPM",displayName:"Disconnect",access:I.US.PRIVATE_CHAT_EDIT,icon:d.A.REMOVE,handler:({itemData:e})=>b.A.delete(`${_.A.SESSIONS_URL}/${e.id}/ccpm`),filter:({itemData:e})=>e.ccpm_state.id===I.ob.CONNECTED}},N={moduleData:{moduleId:g.KV.MESSAGES},actions:f},y=(e,s)=>{const{translate:n}=s;switch(e){case I.ob.CONNECTED:return n("Direct encrypted channel established");case I.ob.CONNECTING:return(0,t.jsx)(h.A,{size:"mini",inline:!0,text:n("Establishing connection...")});case I.ob.DISCONNECTED:return n("Direct encrypted channel available");default:return null}},D=({session:e,sessionT:s})=>{const{flags:n}=e.user;if(!n.includes("ccpm"))return null;const i=e.ccpm_state.id;return i===I.ob.DISCONNECTED&&n.includes("offline")?null:(0,t.jsx)(m.q,{children:(0,t.jsxs)("div",{className:"ccpm-state",children:[(0,t.jsx)(T.A,{encryption:e.ccpm_state.encryption,alwaysVisible:!0,boundary:".session-container"}),(0,t.jsx)(C.Wy,{caption:y(i,s),actions:N,itemData:e})]})})};var v=n(22005),O=n.n(v),x=n(20311),M=n.n(x),P=n(14038),R=n(97744),j=n(19618);const w=O().createStore({scroll:(0,j.z)(),onSocketConnected(e){M()(!this.hasMessages(),"No existing private messages should exist on socket connect"),M()(!this.hasInitializedSessions(),"No initialized private message sessions should exist on socket connect");const s=_.A.MODULE_URL;e(s,_.A.MESSAGE,this._onChatMessage),e(s,_.A.STATUS,this._onStatusMessage),e(s,_.A.SESSION_REMOVED,this._onSessionRemoved),e(s,_.A.SESSION_UPDATED,this._onSessionUpdated)}}),U=(0,P.A)(w,r.A,R.A.PRIVATE_CHAT_VIEW);var G=n(59548),H=n(39115);class V extends i.Component{constructor(){super(...arguments),this.handleFileUpload=e=>{const{cid:s,hub_url:n,flags:t}=this.props.session.user,i=!t.includes("nmdc")&&!t.includes("bot");return(0,G.eo)(e,n,i?s:void 0)}}render(){const{session:e,sessionApi:s,sessionT:n,uiActions:i}=this.props;return(0,t.jsxs)("div",{className:"private chat session",children:[(0,t.jsx)(E.A,{chatAccess:I.US.PRIVATE_CHAT_SEND,chatActions:i,chatApi:r.A,sessionApi:s,messageStore:U,session:e,handleFileUpload:this.handleFileUpload,highlightRemoteMenuId:H.Ay.PRIVATE_CHAT_MESSAGE_HIGHLIGHT}),(0,t.jsx)(D,{session:e,sessionT:n})]})}}V.displayName="PrivateChatSession";const k=V;var L=n(78046),z=n(85072),B=n.n(z),F=n(97825),$=n.n(F),K=n(77659),W=n.n(K),Y=n(55056),Z=n.n(Y),q=n(10540),J=n.n(q),Q=n(41113),X=n.n(Q),ee=n(58834),se={};se.styleTagTransform=X(),se.setAttributes=Z(),se.insert=W().bind(null,"head"),se.domAPI=$(),se.insertStyleElement=J(),B()(ee.A,se),ee.A&&ee.A.locals&&ee.A.locals;var ne=n(4112);const te={clearChat:(0,n(69858).G)(_.A.SESSIONS_URL,I.US.PRIVATE_CHAT_EDIT),remove:(0,ne.R)(_.A.SESSIONS_URL,I.US.PRIVATE_CHAT_EDIT)},ie={moduleData:{moduleId:g.KV.MESSAGES},actions:te};const ae=["clearChat"],oe=(0,L.Z)((e=>{const{params:s,sessionT:n}=e,i=function(e,s){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&s.indexOf(t)<0&&(n[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(t=Object.getOwnPropertySymbols(e);i<t.length;i++)s.indexOf(t[i])<0&&Object.prototype.propertyIsEnumerable.call(e,t[i])&&(n[t[i]]=e[t[i]])}return n}(e,["params","sessionT"]);return(0,t.jsx)(a.A,Object.assign({activeId:s.id,baseUrl:"messages",newCaption:n.t("new","New session"),newDescription:n.t("newDesc","Open a new private chat session"),newIcon:d.A.MESSAGES_PLAIN,unreadInfoStore:c.A,editAccess:I.US.PRIVATE_CHAT_EDIT,uiActions:ie,sessionApi:r.A,actionIds:ae,sessionItemLayout:k,newLayout:S,sessionT:n},(0,o.A)(["browse","ignore","unignore"]),i))}),c.A,g.KV.MESSAGES)}}]);
|
|
2
|
+
//# sourceMappingURL=messages.6ed02d7d7ec7e06a93f2.chunk.js.map
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js/messages.3cd02d9105ea80abf5df.chunk.js","mappings":"kKAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,sFAOtC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,4DAA4D,MAAQ,GAAG,SAAW,8CAA8C,eAAiB,CAAC,uFAAuF,WAAa,MAEpR,S,8FCFe,SAAS,EACtBC,GA8BA,MA5BiE,CAC/DC,eAAeC,GACNA,EAAQC,KAAKC,MAGtB,gBAAAC,CAAiBH,GACf,MAAM,MAAEI,GAAUJ,EAAQC,KAC1B,OAAO,OAAwBG,EACjC,EAEAC,4BAA4BL,GACnBA,EAAQC,KAAKK,UAGtBC,qBAAqBP,IACZ,SAAC,IAAQ,CAACI,MAAOJ,EAAQC,KAAKG,QAGvC,qBAAAI,CAAsBR,EAASS,EAAUC,GACvC,MAAM,KAAET,GAASD,EACjB,OACE,SAAC,KAAQ,CAACC,KAAMA,EAAMU,IAAKb,EAAac,aAAc,KAAcC,YAAW,SAC5EH,GAGP,EAIJ,C,+JC/BA,MAAMI,EAAcC,GACXC,EAAA,EAAwBC,WAAWF,EAAMd,KAAMiB,KAuCxD,EApCqDC,IACnD,MAAMC,EAAgBnB,IACpB,MAAM,SAAEQ,EAAQ,SAAEY,GAAaF,EAC/BG,EAAA,EAAmBC,cAActB,EAAM,CACrCuB,aAAcR,EAAA,EACdP,WACAY,YACA,GAOE,SAAEI,GAAaN,EACrB,OACE,iBAAKO,UAAU,2BAA0B,WACvC,SAAC,IAAe,CACdC,SAAUP,EACVQ,eAAgBH,EAASI,EACvB,iBACA,kFAEFC,aAAa,EACbC,WAAW,KAEb,SAACC,EAAA,EAAY,CACXC,UAAW,KAAiBC,aAC5BpB,WAAYA,EACZqB,mBAnBoBpB,IACjB,cAAGqB,QAAUC,GAAMjB,EAAaL,EAAMd,MAAM,SAAGc,EAAMd,KAAMC,QAmB9DoC,UAAWC,EAAA,EAAcC,mBAG9B,E,uGCzCH,MAiCM,EAAyD,CAC7DC,YAnB0C,CAC1C5C,GAAI,cACJ6C,YAAa,UACbC,OAAQ,KAAeC,kBACvBC,KAAMN,EAAA,EAAcO,KACpBC,QAbiC,EAAGC,SAAUhD,KACvCiD,EAAA,EAAcC,KAAK,GAAGC,EAAA,EAAqBC,gBAAgBpD,EAAQH,WAa1EwD,OAnB+B,EAAGL,cAClCA,EAASM,WAAWzD,KAAO,KAAkB0D,cAgC7CC,eAX6C,CAC7C3D,GAAI,iBACJ6C,YAAa,aACbC,OAAQ,KAAeC,kBACvBC,KAAMN,EAAA,EAAckB,OACpBV,QAlBoC,EAAGC,SAAUhD,KAC1CiD,EAAA,EAAcS,OAAO,GAAGP,EAAA,EAAqBC,gBAAgBpD,EAAQH,WAkB5EwD,OA9B4B,EAAGL,cAC/BA,EAASM,WAAWzD,KAAO,KAAkB8D,YAyClCC,EAA4B,CACvCC,WALyC,CACzCC,SAAU,KAAWC,UAKrBC,QAAS,GCzCLC,EAAa,CAACC,EAA0BzC,KAC5C,MAAM,UAAE0C,GAAc1C,EACtB,OAAQyC,GACN,KAAK,KAAkBP,UACrB,OAAOQ,EAAU,wCACnB,KAAK,KAAkBC,WACrB,OACE,SAACC,EAAA,EAAM,CACLC,KAAK,OACLC,QAAQ,EACRC,KAAML,EAAU,gCAGtB,KAAK,KAAkBZ,aACrB,OAAOY,EAAU,sCACnB,QACE,OAAO,KACX,EAqCF,EA7B4C,EAAGnE,UAASyB,eACtD,MAAM,MAAErB,GAAUJ,EAAQC,KAC1B,IAAKG,EAAMqE,SAAS,QAClB,OAAO,KAGT,MAAMP,EAAQlE,EAAQsD,WAAWzD,GACjC,OAAIqE,IAAU,KAAkBX,cAAgBnD,EAAMqE,SAAS,WACtD,MAIP,SAACC,EAAA,EAAa,WACZ,iBAAKhD,UAAU,aAAY,WACzB,SAACiD,EAAA,EAAe,CACdC,WAAY5E,EAAQsD,WAAWsB,WAC/BC,eAAe,EACfC,SAAS,wBAEX,SAAC,KAAU,CACTC,QAASd,EAAWC,EAAOzC,GAC3BuC,QAASJ,EACTZ,SAAUhD,QAIjB,E,6EClDH,MAAMgF,EAA0B,gBAAmB,CACjDC,QAAQ,EAAAC,EAAA,KAER,iBAAAC,CAAkBC,GAChB,KACGC,KAAKC,cACN,+DAEF,KACGD,KAAKE,yBACN,0EAGF,MAAMC,EAAMrC,EAAA,EAAqBsC,WACjCL,EAAkBI,EAAKrC,EAAA,EAAqBuC,QAASL,KAAKM,gBAC1DP,EAAkBI,EAAKrC,EAAA,EAAqByC,OAAQP,KAAKQ,kBAEzDT,EAAkBI,EAAKrC,EAAA,EAAqB2C,gBAAiBT,KAAKU,mBAClEX,EAAkBI,EAAKrC,EAAA,EAAqB6C,gBAAiBX,KAAKY,kBACpE,IAGF,GAAe,EAAAC,EAAA,GACblB,EACA1D,EAAA,EACA6E,EAAAC,EAAgBC,mB,0BCjBlB,MAAMC,UAA2B,EAAAC,UAAjC,c,oBAGE,KAAAC,iBAAoBC,IAClB,MAAM,IAAEvF,EAAG,QAAEwF,EAAO,MAAEtG,GAAUiF,KAAKlE,MAAMnB,QAAQC,KAE7C0G,GAAavG,EAAMqE,SAAS,UAAYrE,EAAMqE,SAAS,OAC7D,OAAO,QAAcgC,EAAMC,EAASC,EAAYzF,OAAM0F,EAAU,CAsBpE,CAnBE,MAAAC,GACE,MAAM,QAAE7G,EAAO,WAAE8G,EAAU,SAAErF,EAAQ,UAAEsF,GAAc1B,KAAKlE,MAC1D,OACE,iBAAKO,UAAU,uBAAsB,WACnC,SAACsF,EAAA,EAAU,CACTC,WAAY,KAAeC,kBAC3BC,YAAaJ,EACbK,QAAS9F,EAAA,EACTwF,WAAYA,EACZO,aAAc,EACdrH,QAASA,EACTwG,iBAAkBnB,KAAKmB,iBACvBc,sBAAuBC,EAAA,GAAcC,kCAGvC,SAACC,EAAa,CAACzH,QAASA,EAASyB,SAAUA,MAGjD,EA3BO,EAAAiB,YAAc,qBA8BvB,U,mJCzCIgF,GAAU,CAAC,EAEfA,GAAQC,kBAAoB,IAC5BD,GAAQE,cAAgB,IACxBF,GAAQG,OAAS,SAAc,KAAM,QACrCH,GAAQI,OAAS,IACjBJ,GAAQK,mBAAqB,IAEhB,IAAI,KAASL,IAKJ,MAAW,KAAQM,QAAS,KAAQA,O,eCjB1D,MAUM,GAAyD,CAC7DC,WAXiC,E,SAAA,GACjC9E,EAAA,EAAqBC,aACrB,KAAeR,mBAUfsF,QAP8B,QAC9B/E,EAAA,EAAqBC,aACrB,KAAeR,oBAYJuF,GAAwB,CACnCtE,WALqC,CACrCC,SAAU,KAAWC,UAKrBC,QAAS,ICLX,MAAMoE,GAAiB,CAAC,SA2BxB,IAAe,EAAAC,EAAA,IAxBblH,IAEA,MAAM,OAAEmH,EAAM,SAAE7G,GAAuBN,EAAVoH,E,yUAAK,CAAKpH,EAAjC,uBACN,OACE,SAACqH,EAAA,EAAa,eACZC,SAAUH,EAAOzI,GACjB6I,QAAQ,WACRC,WAAYlH,EAASI,EAAE,MAAO,eAC9B+G,eAAgBnH,EAASI,EAAE,UAAW,mCACtCgH,QAAStG,EAAA,EAAcC,eACvBsG,gBAAiB9H,EAAA,EACjB+H,WAAY,KAAenG,kBAC3BmE,UAAWoB,GACXrB,WAAY,IACZkC,UAAWZ,GACXa,kBAAmB,EACnBC,UAAW,EACXzH,SAAUA,IACN,EAAA0H,EAAA,GAAyB,CAAC,SAAU,SAAU,aAC9CZ,GAEP,GAKDvH,EAAA,EACA,KAAW+C,S","sources":["webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/style.css","webpack://airdcpp-webui/./src/routes/Sidebar/decorators/UserItemHandlerDecorator.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/MessageNew.tsx","webpack://airdcpp-webui/./src/actions/ui/private-chat/PrivateChatCCPMActions.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/MessageFooter.tsx","webpack://airdcpp-webui/./src/stores/PrivateChatMessageStore.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/PrivateChatSession.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/style.css?55a2","webpack://airdcpp-webui/./src/actions/ui/private-chat/PrivateChatActions.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/Messages.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/routes/Sidebar/routes/Messages/style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;AACpB\",\"sourcesContent\":[\".ccpm-state {\\n display: flex;\\n}\\n\\n.ccpm-state > i {\\n align-self: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { userOnlineStatusToColor } from 'utils/TypeConvert';\r\nimport { UserMenu } from 'components/action-menu';\r\nimport UserIcon from 'components/icon/UserIcon';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport MenuConstants from 'constants/MenuConstants';\r\n\r\ninterface UserSessionBase {\r\n user: API.HintedUser;\r\n}\r\n\r\nexport default function <SessionT extends UI.SessionItemBase & UserSessionBase>(\r\n itemMenuIds: string[],\r\n) {\r\n const UserItemHandlerDecorator: UI.SessionInfoGetter<SessionT> = {\r\n itemNameGetter(session) {\r\n return session.user.nicks;\r\n },\r\n\r\n itemStatusGetter(session) {\r\n const { flags } = session.user;\r\n return userOnlineStatusToColor(flags);\r\n },\r\n\r\n itemHeaderDescriptionGetter(session) {\r\n return session.user.hub_names;\r\n },\r\n\r\n itemHeaderIconGetter(session) {\r\n return <UserIcon flags={session.user.flags} />;\r\n },\r\n\r\n itemHeaderTitleGetter(session, location, actionMenu) {\r\n const { user } = session;\r\n return (\r\n <UserMenu user={user} ids={itemMenuIds} remoteMenuId={MenuConstants.HINTED_USER}>\r\n {actionMenu}\r\n </UserMenu>\r\n );\r\n },\r\n };\r\n\r\n return UserItemHandlerDecorator;\r\n}\r\n","import RecentLayout from 'routes/Sidebar/components/RecentLayout';\r\n\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\nimport PrivateChatSessionStore from 'stores/PrivateChatSessionStore';\r\n\r\nimport { HistoryEntryEnum } from 'constants/HistoryConstants';\r\n\r\nimport * as API from 'types/api';\r\n\r\nimport IconConstants from 'constants/IconConstants';\r\nimport { UserSelectField } from 'components/select';\r\nimport { NewSessionLayoutProps } from 'routes/Sidebar/components/types';\r\n\r\nconst hasSession = (entry: API.HistoryItem) => {\r\n return PrivateChatSessionStore.getSession(entry.user!.cid);\r\n};\r\n\r\nconst MessageNew: React.FC<NewSessionLayoutProps> = (props) => {\r\n const handleSubmit = (user: API.HintedUser) => {\r\n const { location, navigate } = props;\r\n PrivateChatActions.createSession(user, {\r\n sessionStore: PrivateChatSessionStore,\r\n location,\r\n navigate,\r\n });\r\n };\r\n\r\n const recentUserRender = (entry: API.HistoryItem) => {\r\n return <a onClick={(_) => handleSubmit(entry.user!)}>{entry.user!.nicks}</a>;\r\n };\r\n\r\n const { sessionT } = props;\r\n return (\r\n <div className=\"private chat session new\">\r\n <UserSelectField\r\n onChange={handleSubmit}\r\n offlineMessage={sessionT.t<string>(\r\n 'offlineMessage',\r\n 'You must to be connected to at least one hub in order to send private messages',\r\n )}\r\n isClearable={false}\r\n autoFocus={true}\r\n />\r\n <RecentLayout\r\n entryType={HistoryEntryEnum.PRIVATE_CHAT}\r\n hasSession={hasSession}\r\n entryTitleRenderer={recentUserRender}\r\n entryIcon={IconConstants.MESSAGES_PLAIN}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default MessageNew;\r\n","import PrivateChatConstants from 'constants/PrivateChatConstants';\r\nimport SocketService from 'services/SocketService';\r\n\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\ntype Filter = UI.ActionFilter<API.PrivateChat>;\r\nconst ccpmConnected: Filter = ({ itemData }) =>\r\n itemData.ccpm_state.id === API.CCPMStateEnum.CONNECTED;\r\nconst ccpmDisconnected: Filter = ({ itemData }) =>\r\n itemData.ccpm_state.id === API.CCPMStateEnum.DISCONNECTED;\r\n\r\ntype Handler = UI.ActionHandler<API.PrivateChat>;\r\n\r\nconst handleConnectCCPM: Handler = ({ itemData: session }) => {\r\n return SocketService.post(`${PrivateChatConstants.SESSIONS_URL}/${session.id}/ccpm`);\r\n};\r\n\r\nconst handleDisconnectCCPM: Handler = ({ itemData: session }) => {\r\n return SocketService.delete(`${PrivateChatConstants.SESSIONS_URL}/${session.id}/ccpm`);\r\n};\r\n\r\nexport const PrivateChatConnectCCPMAction = {\r\n id: 'connectCCPM',\r\n displayName: 'Connect',\r\n access: API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n icon: IconConstants.PLAY,\r\n handler: handleConnectCCPM,\r\n filter: ccpmDisconnected,\r\n};\r\n\r\nexport const PrivateChatDisconnectCCPMAction = {\r\n id: 'disconnectCCPM',\r\n displayName: 'Disconnect',\r\n access: API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n icon: IconConstants.REMOVE,\r\n handler: handleDisconnectCCPM,\r\n filter: ccpmConnected,\r\n};\r\n\r\nconst PrivateChatActions: UI.ActionListType<API.PrivateChat> = {\r\n connectCCPM: PrivateChatConnectCCPMAction,\r\n disconnectCCPM: PrivateChatDisconnectCCPMAction,\r\n};\r\n\r\nexport const PrivateChatCCPMActionModule = {\r\n moduleId: UI.Modules.MESSAGES,\r\n};\r\n\r\nexport const PrivateChatCCPMActionMenu = {\r\n moduleData: PrivateChatCCPMActionModule,\r\n actions: PrivateChatActions,\r\n};\r\n","import * as React from 'react';\n\nimport { SessionFooter } from 'routes/Sidebar/components/SessionFooter';\nimport Loader from 'components/semantic/Loader';\nimport { ActionMenu } from 'components/action-menu';\nimport EncryptionState from 'components/EncryptionState';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\n\nimport { PrivateChatCCPMActionMenu } from 'actions/ui/private-chat/PrivateChatCCPMActions';\n\nconst getCaption = (state: API.CCPMStateEnum, sessionT: UI.ModuleTranslator) => {\n const { translate } = sessionT;\n switch (state) {\n case API.CCPMStateEnum.CONNECTED:\n return translate('Direct encrypted channel established');\n case API.CCPMStateEnum.CONNECTING:\n return (\n <Loader\n size=\"mini\"\n inline={true}\n text={translate('Establishing connection...')}\n />\n );\n case API.CCPMStateEnum.DISCONNECTED:\n return translate('Direct encrypted channel available');\n default:\n return null;\n }\n};\n\ninterface CCPMStateProps {\n session: API.PrivateChat;\n sessionT: UI.ModuleTranslator;\n}\n\nconst CCPMState: React.FC<CCPMStateProps> = ({ session, sessionT }) => {\n const { flags } = session.user;\n if (!flags.includes('ccpm')) {\n return null;\n }\n\n const state = session.ccpm_state.id;\n if (state === API.CCPMStateEnum.DISCONNECTED && flags.includes('offline')) {\n return null;\n }\n\n return (\n <SessionFooter>\n <div className=\"ccpm-state\">\n <EncryptionState\n encryption={session.ccpm_state.encryption}\n alwaysVisible={true}\n boundary=\".session-container\"\n />\n <ActionMenu\n caption={getCaption(state, sessionT)}\n actions={PrivateChatCCPMActionMenu}\n itemData={session}\n />\n </div>\n </SessionFooter>\n );\n};\n\nexport default CCPMState;\n","//@ts-ignore\r\nimport Reflux from 'reflux';\r\nimport invariant from 'invariant';\r\n\r\nimport PrivateChatConstants from 'constants/PrivateChatConstants';\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\n\r\nimport MessageStoreDecorator from './decorators/MessageStoreDecorator';\r\n\r\nimport AccessConstants from 'constants/AccessConstants';\r\nimport { AddSocketListener } from 'decorators/SocketSubscriptionDecorator';\r\nimport { SessionScrollPositionKeeper } from './helpers/SessionScrollPositionKeeper';\r\n\r\nconst PrivateChatMessageStore = Reflux.createStore({\r\n scroll: SessionScrollPositionKeeper(),\r\n\r\n onSocketConnected(addSocketListener: AddSocketListener) {\r\n invariant(\r\n !this.hasMessages(),\r\n 'No existing private messages should exist on socket connect',\r\n );\r\n invariant(\r\n !this.hasInitializedSessions(),\r\n 'No initialized private message sessions should exist on socket connect',\r\n );\r\n\r\n const url = PrivateChatConstants.MODULE_URL;\r\n addSocketListener(url, PrivateChatConstants.MESSAGE, this._onChatMessage);\r\n addSocketListener(url, PrivateChatConstants.STATUS, this._onStatusMessage);\r\n\r\n addSocketListener(url, PrivateChatConstants.SESSION_REMOVED, this._onSessionRemoved);\r\n addSocketListener(url, PrivateChatConstants.SESSION_UPDATED, this._onSessionUpdated);\r\n },\r\n});\r\n\r\nexport default MessageStoreDecorator(\r\n PrivateChatMessageStore,\r\n PrivateChatActions,\r\n AccessConstants.PRIVATE_CHAT_VIEW,\r\n);\r\n","import { Component } from 'react';\r\n\r\nimport ChatLayout from 'routes/Sidebar/components/chat/ChatLayout';\r\nimport MessageFooter from 'routes/Sidebar/routes/Messages/components/MessageFooter';\r\n\r\nimport PrivateChatMessageStore from 'stores/PrivateChatMessageStore';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport { shareTempFile } from 'services/api/ShareApi';\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\nimport MenuConstants from 'constants/MenuConstants';\r\nimport { SessionChildProps } from 'routes/Sidebar/components/types';\r\n\r\ntype PrivateChatSessionProps = SessionChildProps<\r\n API.PrivateChat,\r\n UI.EmptyObject,\r\n UI.ChatActionList\r\n>;\r\n\r\nclass PrivateChatSession extends Component<PrivateChatSessionProps> {\r\n static displayName = 'PrivateChatSession';\r\n\r\n handleFileUpload = (file: File) => {\r\n const { cid, hub_url, flags } = this.props.session.user;\r\n\r\n const isPrivate = !flags.includes('nmdc') && !flags.includes('bot');\r\n return shareTempFile(file, hub_url, isPrivate ? cid : undefined);\r\n };\r\n\r\n render() {\r\n const { session, sessionApi, sessionT, uiActions } = this.props;\r\n return (\r\n <div className=\"private chat session\">\r\n <ChatLayout\r\n chatAccess={API.AccessEnum.PRIVATE_CHAT_SEND}\r\n chatActions={uiActions}\r\n chatApi={PrivateChatActions as UI.ChatAPI}\r\n sessionApi={sessionApi}\r\n messageStore={PrivateChatMessageStore}\r\n session={session}\r\n handleFileUpload={this.handleFileUpload}\r\n highlightRemoteMenuId={MenuConstants.PRIVATE_CHAT_MESSAGE_HIGHLIGHT}\r\n />\r\n\r\n <MessageFooter session={session} sessionT={sessionT} />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PrivateChatSession;\r\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import PrivateChatConstants from 'constants/PrivateChatConstants';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport { BuildRemoveSessionAction } from '../decorators/SessionActionDecorator';\r\nimport { BuildClearChatAction } from '../decorators/ChatActionDecorator';\r\n\r\nconst PrivateChatClearChatAction = BuildClearChatAction(\r\n PrivateChatConstants.SESSIONS_URL,\r\n API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n);\r\n\r\nconst PrivateChatRemoveAction = BuildRemoveSessionAction(\r\n PrivateChatConstants.SESSIONS_URL,\r\n API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n);\r\n\r\nconst PrivateChatActions: UI.ActionListType<API.PrivateChat> = {\r\n clearChat: PrivateChatClearChatAction,\r\n remove: PrivateChatRemoveAction,\r\n};\r\n\r\nexport const PrivateChatActionModule = {\r\n moduleId: UI.Modules.MESSAGES,\r\n};\r\n\r\nexport const PrivateChatActionMenu = {\r\n moduleData: PrivateChatActionModule,\r\n actions: PrivateChatActions,\r\n};\r\n","import * as React from 'react';\r\n\r\nimport SessionLayout from 'routes/Sidebar/components/SessionLayout';\r\nimport UserItemHandlerDecorator from 'routes/Sidebar/decorators/UserItemHandlerDecorator';\r\n\r\nimport PrivateChatSessionStore from 'stores/PrivateChatSessionStore';\r\nimport PrivateChatAPIActions from 'actions/reflux/PrivateChatActions';\r\n\r\nimport MessageNew from 'routes/Sidebar/routes/Messages/components/MessageNew';\r\nimport PrivateChatSession from 'routes/Sidebar/routes/Messages/components/PrivateChatSession';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport {\r\n SessionProviderDecoratorChildProps,\r\n SessionProviderDecorator,\r\n} from 'routes/Sidebar/decorators/SessionProviderDecorator';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nimport '../style.css';\r\nimport { PrivateChatActionMenu } from 'actions/ui/private-chat';\r\n\r\nconst sessionActions = ['clear'];\r\n\r\nconst Messages: React.FC<SessionProviderDecoratorChildProps<API.PrivateChat>> = (\r\n props,\r\n) => {\r\n const { params, sessionT, ...other } = props;\r\n return (\r\n <SessionLayout\r\n activeId={params.id}\r\n baseUrl=\"messages\"\r\n newCaption={sessionT.t('new', 'New session')}\r\n newDescription={sessionT.t('newDesc', 'Open a new private chat session')}\r\n newIcon={IconConstants.MESSAGES_PLAIN}\r\n unreadInfoStore={PrivateChatSessionStore}\r\n editAccess={API.AccessEnum.PRIVATE_CHAT_EDIT}\r\n uiActions={PrivateChatActionMenu}\r\n sessionApi={PrivateChatAPIActions as UI.SessionActions<API.PrivateChat>}\r\n actionIds={sessionActions}\r\n sessionItemLayout={PrivateChatSession}\r\n newLayout={MessageNew}\r\n sessionT={sessionT}\r\n {...UserItemHandlerDecorator(['browse', 'ignore', 'unignore'])}\r\n {...other}\r\n />\r\n );\r\n};\r\n\r\nexport default SessionProviderDecorator(\r\n Messages,\r\n PrivateChatSessionStore,\r\n UI.Modules.MESSAGES,\r\n);\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","itemMenuIds","itemNameGetter","session","user","nicks","itemStatusGetter","flags","itemHeaderDescriptionGetter","hub_names","itemHeaderIconGetter","itemHeaderTitleGetter","location","actionMenu","ids","remoteMenuId","HINTED_USER","hasSession","entry","PrivateChatSessionStore","getSession","cid","props","handleSubmit","navigate","PrivateChatActions","createSession","sessionStore","sessionT","className","onChange","offlineMessage","t","isClearable","autoFocus","RecentLayout","entryType","PRIVATE_CHAT","entryTitleRenderer","onClick","_","entryIcon","IconConstants","MESSAGES_PLAIN","connectCCPM","displayName","access","PRIVATE_CHAT_EDIT","icon","PLAY","handler","itemData","SocketService","post","PrivateChatConstants","SESSIONS_URL","filter","ccpm_state","DISCONNECTED","disconnectCCPM","REMOVE","delete","CONNECTED","PrivateChatCCPMActionMenu","moduleData","moduleId","MESSAGES","actions","getCaption","state","translate","CONNECTING","Loader","size","inline","text","includes","SessionFooter","EncryptionState","encryption","alwaysVisible","boundary","caption","PrivateChatMessageStore","scroll","SessionScrollPositionKeeper","onSocketConnected","addSocketListener","this","hasMessages","hasInitializedSessions","url","MODULE_URL","MESSAGE","_onChatMessage","STATUS","_onStatusMessage","SESSION_REMOVED","_onSessionRemoved","SESSION_UPDATED","_onSessionUpdated","MessageStoreDecorator","AccessConstants","A","PRIVATE_CHAT_VIEW","PrivateChatSession","Component","handleFileUpload","file","hub_url","isPrivate","undefined","render","sessionApi","uiActions","ChatLayout","chatAccess","PRIVATE_CHAT_SEND","chatActions","chatApi","messageStore","highlightRemoteMenuId","MenuConstants","PRIVATE_CHAT_MESSAGE_HIGHLIGHT","MessageFooter","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","clearChat","remove","PrivateChatActionMenu","sessionActions","SessionProviderDecorator","params","other","SessionLayout","activeId","baseUrl","newCaption","newDescription","newIcon","unreadInfoStore","editAccess","actionIds","sessionItemLayout","newLayout","UserItemHandlerDecorator"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"js/messages.6ed02d7d7ec7e06a93f2.chunk.js","mappings":"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","sources":["webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/style.css","webpack://airdcpp-webui/./src/routes/Sidebar/decorators/UserItemHandlerDecorator.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/MessageNew.tsx","webpack://airdcpp-webui/./src/actions/ui/private-chat/PrivateChatCCPMActions.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/MessageFooter.tsx","webpack://airdcpp-webui/./src/stores/PrivateChatMessageStore.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/PrivateChatSession.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/style.css?55a2","webpack://airdcpp-webui/./src/actions/ui/private-chat/PrivateChatActions.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/Messages.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/routes/Sidebar/routes/Messages/style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;AACpB\",\"sourcesContent\":[\".ccpm-state {\\n display: flex;\\n}\\n\\n.ccpm-state > i {\\n align-self: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { userOnlineStatusToColor } from 'utils/TypeConvert';\r\nimport { UserMenu } from 'components/action-menu';\r\nimport UserIcon from 'components/icon/UserIcon';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport MenuConstants from 'constants/MenuConstants';\r\n\r\ninterface UserSessionBase {\r\n user: API.HintedUser;\r\n}\r\n\r\nexport default function <SessionT extends UI.SessionItemBase & UserSessionBase>(\r\n itemMenuIds: string[],\r\n) {\r\n const UserItemHandlerDecorator: UI.SessionInfoGetter<SessionT> = {\r\n itemNameGetter(session) {\r\n return session.user.nicks;\r\n },\r\n\r\n itemStatusGetter(session) {\r\n const { flags } = session.user;\r\n return userOnlineStatusToColor(flags);\r\n },\r\n\r\n itemHeaderDescriptionGetter(session) {\r\n return session.user.hub_names;\r\n },\r\n\r\n itemHeaderIconGetter(session) {\r\n return <UserIcon flags={session.user.flags} />;\r\n },\r\n\r\n itemHeaderTitleGetter(session, location, actionMenu) {\r\n const { user } = session;\r\n return (\r\n <UserMenu user={user} ids={itemMenuIds} remoteMenuId={MenuConstants.HINTED_USER}>\r\n {actionMenu}\r\n </UserMenu>\r\n );\r\n },\r\n };\r\n\r\n return UserItemHandlerDecorator;\r\n}\r\n","import RecentLayout from 'routes/Sidebar/components/RecentLayout';\r\n\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\nimport PrivateChatSessionStore from 'stores/PrivateChatSessionStore';\r\n\r\nimport { HistoryEntryEnum } from 'constants/HistoryConstants';\r\n\r\nimport * as API from 'types/api';\r\n\r\nimport IconConstants from 'constants/IconConstants';\r\nimport { UserSelectField } from 'components/select';\r\nimport { NewSessionLayoutProps } from 'routes/Sidebar/components/types';\r\n\r\nconst hasSession = (entry: API.HistoryItem) => {\r\n return PrivateChatSessionStore.getSession(entry.user!.cid);\r\n};\r\n\r\nconst MessageNew: React.FC<NewSessionLayoutProps> = (props) => {\r\n const handleSubmit = (user: API.HintedUser) => {\r\n const { location, navigate } = props;\r\n PrivateChatActions.createSession(user, {\r\n sessionStore: PrivateChatSessionStore,\r\n location,\r\n navigate,\r\n });\r\n };\r\n\r\n const recentUserRender = (entry: API.HistoryItem) => {\r\n return <a onClick={(_) => handleSubmit(entry.user!)}>{entry.user!.nicks}</a>;\r\n };\r\n\r\n const { sessionT } = props;\r\n return (\r\n <div className=\"private chat session new\">\r\n <UserSelectField\r\n onChange={handleSubmit}\r\n offlineMessage={sessionT.t<string>(\r\n 'offlineMessage',\r\n 'You must to be connected to at least one hub in order to send private messages',\r\n )}\r\n isClearable={false}\r\n autoFocus={true}\r\n />\r\n <RecentLayout\r\n entryType={HistoryEntryEnum.PRIVATE_CHAT}\r\n hasSession={hasSession}\r\n entryTitleRenderer={recentUserRender}\r\n entryIcon={IconConstants.MESSAGES_PLAIN}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default MessageNew;\r\n","import PrivateChatConstants from 'constants/PrivateChatConstants';\r\nimport SocketService from 'services/SocketService';\r\n\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\ntype Filter = UI.ActionFilter<API.PrivateChat>;\r\nconst ccpmConnected: Filter = ({ itemData }) =>\r\n itemData.ccpm_state.id === API.CCPMStateEnum.CONNECTED;\r\nconst ccpmDisconnected: Filter = ({ itemData }) =>\r\n itemData.ccpm_state.id === API.CCPMStateEnum.DISCONNECTED;\r\n\r\ntype Handler = UI.ActionHandler<API.PrivateChat>;\r\n\r\nconst handleConnectCCPM: Handler = ({ itemData: session }) => {\r\n return SocketService.post(`${PrivateChatConstants.SESSIONS_URL}/${session.id}/ccpm`);\r\n};\r\n\r\nconst handleDisconnectCCPM: Handler = ({ itemData: session }) => {\r\n return SocketService.delete(`${PrivateChatConstants.SESSIONS_URL}/${session.id}/ccpm`);\r\n};\r\n\r\nexport const PrivateChatConnectCCPMAction = {\r\n id: 'connectCCPM',\r\n displayName: 'Connect',\r\n access: API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n icon: IconConstants.PLAY,\r\n handler: handleConnectCCPM,\r\n filter: ccpmDisconnected,\r\n};\r\n\r\nexport const PrivateChatDisconnectCCPMAction = {\r\n id: 'disconnectCCPM',\r\n displayName: 'Disconnect',\r\n access: API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n icon: IconConstants.REMOVE,\r\n handler: handleDisconnectCCPM,\r\n filter: ccpmConnected,\r\n};\r\n\r\nconst PrivateChatActions: UI.ActionListType<API.PrivateChat> = {\r\n connectCCPM: PrivateChatConnectCCPMAction,\r\n disconnectCCPM: PrivateChatDisconnectCCPMAction,\r\n};\r\n\r\nexport const PrivateChatCCPMActionModule = {\r\n moduleId: UI.Modules.MESSAGES,\r\n};\r\n\r\nexport const PrivateChatCCPMActionMenu = {\r\n moduleData: PrivateChatCCPMActionModule,\r\n actions: PrivateChatActions,\r\n};\r\n","import * as React from 'react';\n\nimport { SessionFooter } from 'routes/Sidebar/components/SessionFooter';\nimport Loader from 'components/semantic/Loader';\nimport { ActionMenu } from 'components/action-menu';\nimport EncryptionState from 'components/EncryptionState';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\n\nimport { PrivateChatCCPMActionMenu } from 'actions/ui/private-chat/PrivateChatCCPMActions';\n\nconst getCaption = (state: API.CCPMStateEnum, sessionT: UI.ModuleTranslator) => {\n const { translate } = sessionT;\n switch (state) {\n case API.CCPMStateEnum.CONNECTED:\n return translate('Direct encrypted channel established');\n case API.CCPMStateEnum.CONNECTING:\n return (\n <Loader\n size=\"mini\"\n inline={true}\n text={translate('Establishing connection...')}\n />\n );\n case API.CCPMStateEnum.DISCONNECTED:\n return translate('Direct encrypted channel available');\n default:\n return null;\n }\n};\n\ninterface CCPMStateProps {\n session: API.PrivateChat;\n sessionT: UI.ModuleTranslator;\n}\n\nconst CCPMState: React.FC<CCPMStateProps> = ({ session, sessionT }) => {\n const { flags } = session.user;\n if (!flags.includes('ccpm')) {\n return null;\n }\n\n const state = session.ccpm_state.id;\n if (state === API.CCPMStateEnum.DISCONNECTED && flags.includes('offline')) {\n return null;\n }\n\n return (\n <SessionFooter>\n <div className=\"ccpm-state\">\n <EncryptionState\n encryption={session.ccpm_state.encryption}\n alwaysVisible={true}\n boundary=\".session-container\"\n />\n <ActionMenu\n caption={getCaption(state, sessionT)}\n actions={PrivateChatCCPMActionMenu}\n itemData={session}\n />\n </div>\n </SessionFooter>\n );\n};\n\nexport default CCPMState;\n","//@ts-ignore\r\nimport Reflux from 'reflux';\r\nimport invariant from 'invariant';\r\n\r\nimport PrivateChatConstants from 'constants/PrivateChatConstants';\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\n\r\nimport MessageStoreDecorator from './decorators/MessageStoreDecorator';\r\n\r\nimport AccessConstants from 'constants/AccessConstants';\r\nimport { AddSocketListener } from 'decorators/SocketSubscriptionDecorator';\r\nimport { SessionScrollPositionKeeper } from './helpers/SessionScrollPositionKeeper';\r\n\r\nconst PrivateChatMessageStore = Reflux.createStore({\r\n scroll: SessionScrollPositionKeeper(),\r\n\r\n onSocketConnected(addSocketListener: AddSocketListener) {\r\n invariant(\r\n !this.hasMessages(),\r\n 'No existing private messages should exist on socket connect',\r\n );\r\n invariant(\r\n !this.hasInitializedSessions(),\r\n 'No initialized private message sessions should exist on socket connect',\r\n );\r\n\r\n const url = PrivateChatConstants.MODULE_URL;\r\n addSocketListener(url, PrivateChatConstants.MESSAGE, this._onChatMessage);\r\n addSocketListener(url, PrivateChatConstants.STATUS, this._onStatusMessage);\r\n\r\n addSocketListener(url, PrivateChatConstants.SESSION_REMOVED, this._onSessionRemoved);\r\n addSocketListener(url, PrivateChatConstants.SESSION_UPDATED, this._onSessionUpdated);\r\n },\r\n});\r\n\r\nexport default MessageStoreDecorator(\r\n PrivateChatMessageStore,\r\n PrivateChatActions,\r\n AccessConstants.PRIVATE_CHAT_VIEW,\r\n);\r\n","import { Component } from 'react';\r\n\r\nimport ChatLayout from 'routes/Sidebar/components/chat/ChatLayout';\r\nimport MessageFooter from 'routes/Sidebar/routes/Messages/components/MessageFooter';\r\n\r\nimport PrivateChatMessageStore from 'stores/PrivateChatMessageStore';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport { shareTempFile } from 'services/api/ShareApi';\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\nimport MenuConstants from 'constants/MenuConstants';\r\nimport { SessionChildProps } from 'routes/Sidebar/components/types';\r\n\r\ntype PrivateChatSessionProps = SessionChildProps<\r\n API.PrivateChat,\r\n UI.EmptyObject,\r\n UI.ChatActionList\r\n>;\r\n\r\nclass PrivateChatSession extends Component<PrivateChatSessionProps> {\r\n static displayName = 'PrivateChatSession';\r\n\r\n handleFileUpload = (file: File) => {\r\n const { cid, hub_url, flags } = this.props.session.user;\r\n\r\n const isPrivate = !flags.includes('nmdc') && !flags.includes('bot');\r\n return shareTempFile(file, hub_url, isPrivate ? cid : undefined);\r\n };\r\n\r\n render() {\r\n const { session, sessionApi, sessionT, uiActions } = this.props;\r\n return (\r\n <div className=\"private chat session\">\r\n <ChatLayout\r\n chatAccess={API.AccessEnum.PRIVATE_CHAT_SEND}\r\n chatActions={uiActions}\r\n chatApi={PrivateChatActions as UI.ChatAPI}\r\n sessionApi={sessionApi}\r\n messageStore={PrivateChatMessageStore}\r\n session={session}\r\n handleFileUpload={this.handleFileUpload}\r\n highlightRemoteMenuId={MenuConstants.PRIVATE_CHAT_MESSAGE_HIGHLIGHT}\r\n />\r\n\r\n <MessageFooter session={session} sessionT={sessionT} />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PrivateChatSession;\r\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import PrivateChatConstants from 'constants/PrivateChatConstants';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport { BuildRemoveSessionAction } from '../decorators/SessionActionDecorator';\r\nimport { BuildClearChatAction } from '../decorators/ChatActionDecorator';\r\n\r\nconst PrivateChatClearChatAction = BuildClearChatAction(\r\n PrivateChatConstants.SESSIONS_URL,\r\n API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n);\r\n\r\nconst PrivateChatRemoveAction = BuildRemoveSessionAction(\r\n PrivateChatConstants.SESSIONS_URL,\r\n API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n);\r\n\r\nconst PrivateChatActions: UI.ActionListType<API.PrivateChat> = {\r\n clearChat: PrivateChatClearChatAction,\r\n remove: PrivateChatRemoveAction,\r\n};\r\n\r\nexport const PrivateChatActionModule = {\r\n moduleId: UI.Modules.MESSAGES,\r\n};\r\n\r\nexport const PrivateChatActionMenu = {\r\n moduleData: PrivateChatActionModule,\r\n actions: PrivateChatActions,\r\n};\r\n","import * as React from 'react';\r\n\r\nimport SessionLayout from 'routes/Sidebar/components/SessionLayout';\r\nimport UserItemHandlerDecorator from 'routes/Sidebar/decorators/UserItemHandlerDecorator';\r\n\r\nimport PrivateChatSessionStore from 'stores/PrivateChatSessionStore';\r\nimport PrivateChatAPIActions from 'actions/reflux/PrivateChatActions';\r\n\r\nimport MessageNew from 'routes/Sidebar/routes/Messages/components/MessageNew';\r\nimport PrivateChatSession from 'routes/Sidebar/routes/Messages/components/PrivateChatSession';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport {\r\n SessionProviderDecoratorChildProps,\r\n SessionProviderDecorator,\r\n} from 'routes/Sidebar/decorators/SessionProviderDecorator';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nimport '../style.css';\r\nimport { PrivateChatActionMenu } from 'actions/ui/private-chat';\r\n\r\nconst sessionActions = ['clearChat'];\r\n\r\nconst Messages: React.FC<SessionProviderDecoratorChildProps<API.PrivateChat>> = (\r\n props,\r\n) => {\r\n const { params, sessionT, ...other } = props;\r\n return (\r\n <SessionLayout\r\n activeId={params.id}\r\n baseUrl=\"messages\"\r\n newCaption={sessionT.t('new', 'New session')}\r\n newDescription={sessionT.t('newDesc', 'Open a new private chat session')}\r\n newIcon={IconConstants.MESSAGES_PLAIN}\r\n unreadInfoStore={PrivateChatSessionStore}\r\n editAccess={API.AccessEnum.PRIVATE_CHAT_EDIT}\r\n uiActions={PrivateChatActionMenu}\r\n sessionApi={PrivateChatAPIActions as UI.SessionActions<API.PrivateChat>}\r\n actionIds={sessionActions}\r\n sessionItemLayout={PrivateChatSession}\r\n newLayout={MessageNew}\r\n sessionT={sessionT}\r\n {...UserItemHandlerDecorator(['browse', 'ignore', 'unignore'])}\r\n {...other}\r\n />\r\n );\r\n};\r\n\r\nexport default SessionProviderDecorator(\r\n Messages,\r\n PrivateChatSessionStore,\r\n UI.Modules.MESSAGES,\r\n);\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","itemMenuIds","itemNameGetter","session","user","nicks","itemStatusGetter","flags","itemHeaderDescriptionGetter","hub_names","itemHeaderIconGetter","itemHeaderTitleGetter","location","actionMenu","ids","remoteMenuId","HINTED_USER","hasSession","entry","PrivateChatSessionStore","getSession","cid","props","handleSubmit","navigate","PrivateChatActions","createSession","sessionStore","sessionT","className","onChange","offlineMessage","t","isClearable","autoFocus","RecentLayout","entryType","PRIVATE_CHAT","entryTitleRenderer","onClick","_","entryIcon","IconConstants","MESSAGES_PLAIN","connectCCPM","displayName","access","PRIVATE_CHAT_EDIT","icon","PLAY","handler","itemData","SocketService","post","PrivateChatConstants","SESSIONS_URL","filter","ccpm_state","DISCONNECTED","disconnectCCPM","REMOVE","delete","CONNECTED","PrivateChatCCPMActionMenu","moduleData","moduleId","MESSAGES","actions","getCaption","state","translate","CONNECTING","Loader","size","inline","text","includes","SessionFooter","EncryptionState","encryption","alwaysVisible","boundary","caption","PrivateChatMessageStore","scroll","SessionScrollPositionKeeper","onSocketConnected","addSocketListener","this","hasMessages","hasInitializedSessions","url","MODULE_URL","MESSAGE","_onChatMessage","STATUS","_onStatusMessage","SESSION_REMOVED","_onSessionRemoved","SESSION_UPDATED","_onSessionUpdated","MessageStoreDecorator","AccessConstants","A","PRIVATE_CHAT_VIEW","PrivateChatSession","Component","handleFileUpload","file","hub_url","isPrivate","undefined","render","sessionApi","uiActions","ChatLayout","chatAccess","PRIVATE_CHAT_SEND","chatActions","chatApi","messageStore","highlightRemoteMenuId","MenuConstants","PRIVATE_CHAT_MESSAGE_HIGHLIGHT","MessageFooter","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","clearChat","remove","PrivateChatActionMenu","sessionActions","SessionProviderDecorator","params","other","SessionLayout","activeId","baseUrl","newCaption","newDescription","newIcon","unreadInfoStore","editAccess","actionIds","sessionItemLayout","newLayout","UserItemHandlerDecorator"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[91],{46710:(e,t,i)=>{i.d(t,{Zy:()=>n});const n=(e,t)=>{const i=o(e),n=o(t),s=i.pop(),a=n.pop(),r=c(i,n);return 0!==r?r:s&&a?c(s.split("."),a.split(".")):s||a?s?-1:1:0},s=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,o=e=>{if("string"!=typeof e)throw new TypeError("Invalid argument expected string");const t=e.match(s);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},a=e=>"*"===e||"x"===e||"X"===e,r=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},l=(e,t)=>{if(a(e)||a(t))return 0;const[i,n]=((e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t])(r(e),r(t));return i>n?1:i<n?-1:0},c=(e,t)=>{for(let i=0;i<Math.max(e.length,t.length);i++){const n=l(e[i]||"0",t[i]||"0");if(0!==n)return n}return 0};Object.keys({">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]})},28466:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(71354),s=i.n(n),o=i(76314),a=i.n(o)()(s());a.push([e.id,'/*!\n * # Fomantic-UI 2.9.3 - Item\n * https://github.com/fomantic/Fomantic-UI/\n *\n *\n * Released under the MIT license\n * https://opensource.org/licenses/MIT\n *\n */.ui.items>.item{display:flex;margin:1em 0;width:100%;min-height:0;background:0 0;padding:0;border:none;border-radius:0;box-shadow:none;transition:box-shadow .1s ease;z-index:""}.ui.items>.item a{cursor:pointer}.ui.items{margin:1.5em 0}.ui.items:first-child{margin-top:0!important}.ui.items:last-child{margin-bottom:0!important}.ui.items>.item::after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item:first-child{margin-top:0}.ui.items>.item:last-child{margin-bottom:0}.ui.items>.item>.image{position:relative;flex:0 0 auto;display:block;float:none;margin:0;padding:0;max-height:"";align-self:start}.ui.items>.item>.image>img{display:block;width:100%;height:auto;border-radius:.125rem;border:none}.ui.items>.item>.image:only-child>img{border-radius:0}.ui.items>.item>.content{display:block;flex:1 1 auto;background:0 0;color:rgba(0,0,0,.87);margin:0;padding:0;box-shadow:none;font-size:1em;border:none;border-radius:0}.ui.items>.item>.content::after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image+.content{min-width:0;width:auto;display:block;margin-left:0;align-self:start;padding-left:1.5em}.ui.items>.item>.content>.header{display:inline-block;margin:-.21425em 0 0;font-family:Lato,system-ui,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:700;color:rgba(0,0,0,.85)}.ui.items>.item>.content>.header:not(.ui){font-size:1.28571429em}.ui.items>.item [class*="left floated"]{float:left}.ui.items>.item [class*="right floated"]{float:right}.ui.items>.item .content img{align-self:center;width:""}.ui.items>.item .avatar img,.ui.items>.item img.avatar{width:"";height:"";border-radius:500rem}.ui.items>.item>.content>.description{margin-top:.6em;max-width:none;font-size:1em;line-height:1.4285em;color:rgba(0,0,0,.87)}.ui.items>.item>.content p{margin:0 0 .5em}.ui.items>.item>.content p:last-child{margin-bottom:0}.ui.items>.item .meta{margin:.5em 0 .5em;font-size:1em;line-height:1em;color:rgba(0,0,0,.6)}.ui.items>.item .meta *{margin-right:.3em}.ui.items>.item .meta :last-child{margin-right:0}.ui.items>.item .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.items>.item>.content a:not(.ui){color:"";transition:color .1s ease}.ui.items>.item>.content a:not(.ui):hover{color:""}.ui.items>.item>.content>a.header{color:rgba(0,0,0,.85)}.ui.items>.item>.content>a.header:hover{color:#1e70bf}.ui.items>.item .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.items>.item .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.items>.item>.content .favorite.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .favorite.icon:hover{opacity:1;color:#ffb70a}.ui.items>.item>.content .active.favorite.icon{color:#ffe623}.ui.items>.item>.content .like.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.items>.item>.content .active.like.icon{color:#ff2733}.ui.items>.item .extra{display:block;position:relative;background:0 0;margin:.5rem 0 0;width:100%;padding:0;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;transition:color .1s ease;border-top:none}.ui.items>.item .extra>*{margin:.25rem .5rem .25rem 0}.ui.items>.item .extra>[class*="right floated"]{margin:.25rem 0 .25rem .5rem}.ui.items>.item .extra::after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image:not(.ui){width:175px}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.items>.item{margin:1em 0}.ui.items>.item>.image:not(.ui){width:150px}.ui.items>.item>.image+.content{display:block;padding:0 0 0 1em}}@media only screen and (max-width:767.98px){.ui.items:not(.unstackable)>.item{flex-direction:column;margin:2em 0}.ui.items:not(.unstackable)>.item>.image{display:block;margin-left:auto;margin-right:auto}.ui.items:not(.unstackable)>.item>.image,.ui.items:not(.unstackable)>.item>.image>img{max-width:100%!important;width:auto!important;max-height:250px!important}.ui.items:not(.unstackable)>.item>.image+.content{display:block;padding:1.5em 0 0}}.ui.items>.item>.image+[class*="top aligned"].content{align-self:flex-start}.ui.items>.item>.image+[class*="middle aligned"].content{align-self:center}.ui.items>.item>.image+[class*="bottom aligned"].content{align-self:flex-end}.ui.relaxed.items>.item{margin:1.5em 0}.ui[class*="very relaxed"].items>.item{margin:2em 0}.ui.divided.items>.item{border-top:1px solid rgba(34,36,38,.15);margin:0;padding:1em 0}.ui.divided.items>.item:first-child{border-top:none;margin-top:0!important;padding-top:0!important}.ui.divided.items>.item:last-child{margin-bottom:0!important;padding-bottom:0!important}.ui.relaxed.divided.items>.item{margin:0;padding:1.5em 0}.ui[class*="very relaxed"].divided.items>.item{margin:0;padding:2em 0}.ui.items a.item:hover,.ui.link.items>.item:hover{cursor:pointer}.ui.items a.item:hover .content .header,.ui.link.items>.item:hover .content .header{color:#1e70bf}.ui.items>.item{font-size:1em}.ui.mini.items>.item{font-size:.78571429em}.ui.tiny.items>.item{font-size:.85714286em}.ui.small.items>.item{font-size:.92857143em}.ui.large.items>.item{font-size:1.14285714em}.ui.big.items>.item{font-size:1.28571429em}.ui.huge.items>.item{font-size:1.42857143em}.ui.massive.items>.item{font-size:1.71428571em}@media only screen and (max-width:767.98px){.ui.unstackable.items>.item>.image,.ui.unstackable.items>.item>.image>img{width:125px!important}}.ui.inverted.items>.item{background:0 0}.ui.inverted.items>.item>.content{background:0 0;color:rgba(255,255,255,.9)}.ui.inverted.items>.item .extra{background:0 0}.ui.inverted.items>.item>.content>.header{color:rgba(255,255,255,.9)}.ui.inverted.items>.item>.content>.description{color:rgba(255,255,255,.9)}.ui.inverted.items>.item .meta{color:rgba(255,255,255,.8)}.ui.inverted.items>.item>.content a:not(.ui){color:#57a4ef}.ui.inverted.items>.item>.content a:not(.ui):hover{color:#4183c4}.ui.inverted.items>.item>.content>a.header{color:rgba(255,255,255,.9)}.ui.inverted.items>.item>.content>a.header:hover{color:#fff}.ui.inverted.items>.item .meta>a:not(.ui){color:rgba(255,255,255,.7)}.ui.inverted.items>.item .meta>a:not(.ui):hover{color:rgba(255,255,255,.9)}.ui.inverted.items>.item>.content .favorite.icon:hover{color:#ffc63d}.ui.inverted.items>.item>.content .active.favorite.icon{color:#ffec56}.ui.inverted.items>.item>.content .like.icon:hover{color:#ff5a63}.ui.inverted.items>.item>.content .active.like.icon{color:#ff5a63}.ui.inverted.items>.item .extra{color:rgba(255,255,255,.7)}.ui.inverted.items a.item:hover .content .header,.ui.inverted.link.items>.item:hover .content .header{color:#fff}.ui.inverted.divided.items>.item{border-top:1px solid rgba(255,255,255,.1)}.ui.inverted.divided.items>.item:first-child{border-top:none}.ui.disabled.items,.ui.items>.disabled.item{opacity:.45;pointer-events:none}',"",{version:3,sources:["webpack://./node_modules/fomantic-ui-css/components/item.min.css"],names:[],mappings:"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",sourcesContent:['/*!\n * # Fomantic-UI 2.9.3 - Item\n * https://github.com/fomantic/Fomantic-UI/\n *\n *\n * Released under the MIT license\n * https://opensource.org/licenses/MIT\n *\n */.ui.items>.item{display:flex;margin:1em 0;width:100%;min-height:0;background:0 0;padding:0;border:none;border-radius:0;box-shadow:none;transition:box-shadow .1s ease;z-index:""}.ui.items>.item a{cursor:pointer}.ui.items{margin:1.5em 0}.ui.items:first-child{margin-top:0!important}.ui.items:last-child{margin-bottom:0!important}.ui.items>.item::after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item:first-child{margin-top:0}.ui.items>.item:last-child{margin-bottom:0}.ui.items>.item>.image{position:relative;flex:0 0 auto;display:block;float:none;margin:0;padding:0;max-height:"";align-self:start}.ui.items>.item>.image>img{display:block;width:100%;height:auto;border-radius:.125rem;border:none}.ui.items>.item>.image:only-child>img{border-radius:0}.ui.items>.item>.content{display:block;flex:1 1 auto;background:0 0;color:rgba(0,0,0,.87);margin:0;padding:0;box-shadow:none;font-size:1em;border:none;border-radius:0}.ui.items>.item>.content::after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image+.content{min-width:0;width:auto;display:block;margin-left:0;align-self:start;padding-left:1.5em}.ui.items>.item>.content>.header{display:inline-block;margin:-.21425em 0 0;font-family:Lato,system-ui,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:700;color:rgba(0,0,0,.85)}.ui.items>.item>.content>.header:not(.ui){font-size:1.28571429em}.ui.items>.item [class*="left floated"]{float:left}.ui.items>.item [class*="right floated"]{float:right}.ui.items>.item .content img{align-self:center;width:""}.ui.items>.item .avatar img,.ui.items>.item img.avatar{width:"";height:"";border-radius:500rem}.ui.items>.item>.content>.description{margin-top:.6em;max-width:none;font-size:1em;line-height:1.4285em;color:rgba(0,0,0,.87)}.ui.items>.item>.content p{margin:0 0 .5em}.ui.items>.item>.content p:last-child{margin-bottom:0}.ui.items>.item .meta{margin:.5em 0 .5em;font-size:1em;line-height:1em;color:rgba(0,0,0,.6)}.ui.items>.item .meta *{margin-right:.3em}.ui.items>.item .meta :last-child{margin-right:0}.ui.items>.item .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.items>.item>.content a:not(.ui){color:"";transition:color .1s ease}.ui.items>.item>.content a:not(.ui):hover{color:""}.ui.items>.item>.content>a.header{color:rgba(0,0,0,.85)}.ui.items>.item>.content>a.header:hover{color:#1e70bf}.ui.items>.item .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.items>.item .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.items>.item>.content .favorite.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .favorite.icon:hover{opacity:1;color:#ffb70a}.ui.items>.item>.content .active.favorite.icon{color:#ffe623}.ui.items>.item>.content .like.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.items>.item>.content .active.like.icon{color:#ff2733}.ui.items>.item .extra{display:block;position:relative;background:0 0;margin:.5rem 0 0;width:100%;padding:0;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;transition:color .1s ease;border-top:none}.ui.items>.item .extra>*{margin:.25rem .5rem .25rem 0}.ui.items>.item .extra>[class*="right floated"]{margin:.25rem 0 .25rem .5rem}.ui.items>.item .extra::after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image:not(.ui){width:175px}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.items>.item{margin:1em 0}.ui.items>.item>.image:not(.ui){width:150px}.ui.items>.item>.image+.content{display:block;padding:0 0 0 1em}}@media only screen and (max-width:767.98px){.ui.items:not(.unstackable)>.item{flex-direction:column;margin:2em 0}.ui.items:not(.unstackable)>.item>.image{display:block;margin-left:auto;margin-right:auto}.ui.items:not(.unstackable)>.item>.image,.ui.items:not(.unstackable)>.item>.image>img{max-width:100%!important;width:auto!important;max-height:250px!important}.ui.items:not(.unstackable)>.item>.image+.content{display:block;padding:1.5em 0 0}}.ui.items>.item>.image+[class*="top aligned"].content{align-self:flex-start}.ui.items>.item>.image+[class*="middle aligned"].content{align-self:center}.ui.items>.item>.image+[class*="bottom aligned"].content{align-self:flex-end}.ui.relaxed.items>.item{margin:1.5em 0}.ui[class*="very relaxed"].items>.item{margin:2em 0}.ui.divided.items>.item{border-top:1px solid rgba(34,36,38,.15);margin:0;padding:1em 0}.ui.divided.items>.item:first-child{border-top:none;margin-top:0!important;padding-top:0!important}.ui.divided.items>.item:last-child{margin-bottom:0!important;padding-bottom:0!important}.ui.relaxed.divided.items>.item{margin:0;padding:1.5em 0}.ui[class*="very relaxed"].divided.items>.item{margin:0;padding:2em 0}.ui.items a.item:hover,.ui.link.items>.item:hover{cursor:pointer}.ui.items a.item:hover .content .header,.ui.link.items>.item:hover .content .header{color:#1e70bf}.ui.items>.item{font-size:1em}.ui.mini.items>.item{font-size:.78571429em}.ui.tiny.items>.item{font-size:.85714286em}.ui.small.items>.item{font-size:.92857143em}.ui.large.items>.item{font-size:1.14285714em}.ui.big.items>.item{font-size:1.28571429em}.ui.huge.items>.item{font-size:1.42857143em}.ui.massive.items>.item{font-size:1.71428571em}@media only screen and (max-width:767.98px){.ui.unstackable.items>.item>.image,.ui.unstackable.items>.item>.image>img{width:125px!important}}.ui.inverted.items>.item{background:0 0}.ui.inverted.items>.item>.content{background:0 0;color:rgba(255,255,255,.9)}.ui.inverted.items>.item .extra{background:0 0}.ui.inverted.items>.item>.content>.header{color:rgba(255,255,255,.9)}.ui.inverted.items>.item>.content>.description{color:rgba(255,255,255,.9)}.ui.inverted.items>.item .meta{color:rgba(255,255,255,.8)}.ui.inverted.items>.item>.content a:not(.ui){color:#57a4ef}.ui.inverted.items>.item>.content a:not(.ui):hover{color:#4183c4}.ui.inverted.items>.item>.content>a.header{color:rgba(255,255,255,.9)}.ui.inverted.items>.item>.content>a.header:hover{color:#fff}.ui.inverted.items>.item .meta>a:not(.ui){color:rgba(255,255,255,.7)}.ui.inverted.items>.item .meta>a:not(.ui):hover{color:rgba(255,255,255,.9)}.ui.inverted.items>.item>.content .favorite.icon:hover{color:#ffc63d}.ui.inverted.items>.item>.content .active.favorite.icon{color:#ffec56}.ui.inverted.items>.item>.content .like.icon:hover{color:#ff5a63}.ui.inverted.items>.item>.content .active.like.icon{color:#ff5a63}.ui.inverted.items>.item .extra{color:rgba(255,255,255,.7)}.ui.inverted.items a.item:hover .content .header,.ui.inverted.link.items>.item:hover .content .header{color:#fff}.ui.inverted.divided.items>.item{border-top:1px solid rgba(255,255,255,.1)}.ui.inverted.divided.items>.item:first-child{border-top:none}.ui.disabled.items,.ui.items>.disabled.item{opacity:.45;pointer-events:none}'],sourceRoot:""}]);const r=a},29802:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(71354),s=i.n(n),o=i(76314),a=i.n(o)()(s());a.push([e.id,".settings-layout .detect-panel {\n margin-top: 30px;\n}\n\n.settings-layout .detect-panel .header.column > div {\n overflow: hidden;\n line-height: inherit !important;\n}\n\n.settings-layout .detect-panel .header.column {\n max-width: 200px;\n}\n\n.settings-layout .detect-panel .detect-button {\n margin-top: 20px;\n}\n","",{version:3,sources:["webpack://./src/routes/Settings/routes/Connectivity/style.css"],names:[],mappings:"AAAA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,+BAA+B;AACjC;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB",sourcesContent:[".settings-layout .detect-panel {\n margin-top: 30px;\n}\n\n.settings-layout .detect-panel .header.column > div {\n overflow: hidden;\n line-height: inherit !important;\n}\n\n.settings-layout .detect-panel .header.column {\n max-width: 200px;\n}\n\n.settings-layout .detect-panel .detect-button {\n margin-top: 20px;\n}\n"],sourceRoot:""}]);const r=a},62868:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(71354),s=i.n(n),o=i(76314),a=i.n(o)()(s());a.push([e.id,".settings-layout .profile.miscellaneous .field-nmdc_encoding li {\n margin-bottom: 5px;\n}\n","",{version:3,sources:["webpack://./src/routes/Settings/routes/Profile/style.css"],names:[],mappings:"AAAA;EACE,kBAAkB;AACpB",sourcesContent:[".settings-layout .profile.miscellaneous .field-nmdc_encoding li {\n margin-bottom: 5px;\n}\n"],sourceRoot:""}]);const r=a},14411:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(71354),s=i.n(n),o=i(76314),a=i.n(o)()(s());a.push([e.id,".settings-layout .hash-database.grid {\n padding: 10px 0px 15px 0px;\n}\n\n.settings-layout .hash-database.grid .row {\n padding: 5px 0px;\n}\n\n.settings-layout .sharing.excludes .add.button {\n margin-top: 20px;\n}\n","",{version:3,sources:["webpack://./src/routes/Settings/routes/Sharing/style.css"],names:[],mappings:"AAAA;EACE,0BAA0B;AAC5B;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB",sourcesContent:[".settings-layout .hash-database.grid {\n padding: 10px 0px 15px 0px;\n}\n\n.settings-layout .hash-database.grid .row {\n padding: 5px 0px;\n}\n\n.settings-layout .sharing.excludes .add.button {\n margin-top: 20px;\n}\n"],sourceRoot:""}]);const r=a},14160:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(71354),s=i.n(n),o=i(76314),a=i.n(o)()(s());a.push([e.id,".web-user.modal .ui.checkbox {\n width: 100%;\n margin-top: 5px;\n}\n\n.web-user.modal .ui.checkbox.admin {\n margin-bottom: 10px;\n font-weight: bold;\n}\n\n.settings-layout .system.logging .log-section.active {\n background-color: whitesmoke;\n}\n\n.settings-layout .system.logging .sections {\n margin-top: 25px !important;\n}\n","",{version:3,sources:["webpack://./src/routes/Settings/routes/System/style.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,eAAe;AACjB;;AAEA;EACE,mBAAmB;EACnB,iBAAiB;AACnB;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,2BAA2B;AAC7B",sourcesContent:[".web-user.modal .ui.checkbox {\n width: 100%;\n margin-top: 5px;\n}\n\n.web-user.modal .ui.checkbox.admin {\n margin-bottom: 10px;\n font-weight: bold;\n}\n\n.settings-layout .system.logging .log-section.active {\n background-color: whitesmoke;\n}\n\n.settings-layout .system.logging .sections {\n margin-top: 25px !important;\n}\n"],sourceRoot:""}]);const r=a},49696:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(71354),s=i.n(n),o=i(76314),a=i.n(o)()(s());a.push([e.id,".settings-layout .view.notifications .field-notify_events_info {\n margin-top: 25px;\n}\n","",{version:3,sources:["webpack://./src/routes/Settings/routes/View/style.css"],names:[],mappings:"AAAA;EACE,gBAAgB;AAClB",sourcesContent:[".settings-layout .view.notifications .field-notify_events_info {\n margin-top: 25px;\n}\n"],sourceRoot:""}]);const r=a},74143:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(71354),s=i.n(n),o=i(76314),a=i.n(o)()(s());a.push([e.id,".settings-layout {\n padding-bottom: 30px;\n max-height: 100% !important;\n display: flex;\n flex-direction: column;\n}\n\n.settings-layout .menu-column .menu {\n max-width: 100%;\n}\n\n.settings-layout .layout.header {\n margin-bottom: 20px;\n}\n\n.settings-layout .setting-form {\n margin-top: 30px;\n}\n\n.settings-layout .setting-form:first-child {\n margin-top: 0px;\n}\n\n.settings-layout h3 {\n margin-bottom: 20px;\n}\n\n.settings-layout h4 {\n margin-top: 15px;\n}\n\n.settings-layout > div,\n.settings-layout .mobile .section-content {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n margin-bottom: 5px;\n}\n\n.settings-layout .main.grid {\n overflow-y: auto;\n padding: 0px;\n}\n\n.settings-layout .mobile .section-content {\n padding-bottom: 5px;\n /* For possible scrollbar */\n padding-right: 5px;\n}\n\n.settings-layout .mobile .section-content.about {\n margin-top: 10px;\n}\n\n.settings-layout .mobile .section-content.about .options {\n flex-shrink: 0;\n}\n\n.settings-layout .full .section-content {\n height: 100%;\n padding-bottom: 2px;\n}\n\n.settings-layout .top-menu {\n display: flex;\n align-items: center;\n margin-bottom: 10px;\n flex-shrink: 0;\n}\n\n.settings-layout .top-menu > .ui.dropdown,\n.settings-layout .top-menu > .ui.dropdown > .caption {\n display: flex;\n}\n\n.settings-layout .top-menu > i {\n margin: 0px 5px;\n}\n\n.settings-layout .full .top-menu i {\n display: none;\n}\n\n.settings-layout .mobile .save.button {\n margin-bottom: 10px;\n flex-shrink: 0;\n}\n\n.settings-layout .options {\n min-height: 80px;\n}\n\n.settings-layout .options > .ui.grid {\n margin: 0px;\n}\n","",{version:3,sources:["webpack://./src/routes/Settings/style.css"],names:[],mappings:"AAAA;EACE,oBAAoB;EACpB,2BAA2B;EAC3B,aAAa;EACb,sBAAsB;AACxB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;;EAEE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA;EACE,gBAAgB;EAChB,YAAY;AACd;;AAEA;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,kBAAkB;AACpB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;AAChB;;AAEA;;EAEE,aAAa;AACf;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mBAAmB;EACnB,cAAc;AAChB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,WAAW;AACb",sourcesContent:[".settings-layout {\n padding-bottom: 30px;\n max-height: 100% !important;\n display: flex;\n flex-direction: column;\n}\n\n.settings-layout .menu-column .menu {\n max-width: 100%;\n}\n\n.settings-layout .layout.header {\n margin-bottom: 20px;\n}\n\n.settings-layout .setting-form {\n margin-top: 30px;\n}\n\n.settings-layout .setting-form:first-child {\n margin-top: 0px;\n}\n\n.settings-layout h3 {\n margin-bottom: 20px;\n}\n\n.settings-layout h4 {\n margin-top: 15px;\n}\n\n.settings-layout > div,\n.settings-layout .mobile .section-content {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n margin-bottom: 5px;\n}\n\n.settings-layout .main.grid {\n overflow-y: auto;\n padding: 0px;\n}\n\n.settings-layout .mobile .section-content {\n padding-bottom: 5px;\n /* For possible scrollbar */\n padding-right: 5px;\n}\n\n.settings-layout .mobile .section-content.about {\n margin-top: 10px;\n}\n\n.settings-layout .mobile .section-content.about .options {\n flex-shrink: 0;\n}\n\n.settings-layout .full .section-content {\n height: 100%;\n padding-bottom: 2px;\n}\n\n.settings-layout .top-menu {\n display: flex;\n align-items: center;\n margin-bottom: 10px;\n flex-shrink: 0;\n}\n\n.settings-layout .top-menu > .ui.dropdown,\n.settings-layout .top-menu > .ui.dropdown > .caption {\n display: flex;\n}\n\n.settings-layout .top-menu > i {\n margin: 0px 5px;\n}\n\n.settings-layout .full .top-menu i {\n display: none;\n}\n\n.settings-layout .mobile .save.button {\n margin-bottom: 10px;\n flex-shrink: 0;\n}\n\n.settings-layout .options {\n min-height: 80px;\n}\n\n.settings-layout .options > .ui.grid {\n margin: 0px;\n}\n"],sourceRoot:""}]);const r=a},97771:(e,t,i)=>{var n=i(85072),s=i.n(n),o=i(97825),a=i.n(o),r=i(77659),l=i.n(r),c=i(55056),d=i.n(c),A=i(10540),m=i.n(A),u=i(41113),p=i.n(u),h=i(28466),g={};g.styleTagTransform=p(),g.setAttributes=d(),g.insert=l().bind(null,"head"),g.domAPI=a(),g.insertStyleElement=m(),s()(h.A,g),h.A&&h.A.locals&&h.A.locals},97578:(e,t,i)=>{var n=i(85072),s=i.n(n),o=i(97825),a=i.n(o),r=i(77659),l=i.n(r),c=i(55056),d=i.n(c),A=i(10540),m=i.n(A),u=i(41113),p=i.n(u),h=i(14411),g={};g.styleTagTransform=p(),g.setAttributes=d(),g.insert=l().bind(null,"head"),g.domAPI=a(),g.insertStyleElement=m(),s()(h.A,g),h.A&&h.A.locals&&h.A.locals},50935:(e,t,i)=>{var n=i(85072),s=i.n(n),o=i(97825),a=i.n(o),r=i(77659),l=i.n(r),c=i(55056),d=i.n(c),A=i(10540),m=i.n(A),u=i(41113),p=i.n(u),h=i(14160),g={};g.styleTagTransform=p(),g.setAttributes=d(),g.insert=l().bind(null,"head"),g.domAPI=a(),g.insertStyleElement=m(),s()(h.A,g),h.A&&h.A.locals&&h.A.locals},50929:(e,t,i)=>{i.d(t,{Cp:()=>u,Cs:()=>A,Dm:()=>p,YB:()=>m});var n=i(32811),s=i(88569),o=i(2141),a=i(4425),r=i(86038),l=i(67749);const c=(e,t,i)=>n.A.post(o.A.DOWNLOAD_URL,{install_id:t||e,url:e,shasum:i}),d=e=>{return t=void 0,i=void 0,a=function*(){var{itemData:t}=e;!function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}}(e,["itemData"]);const i=yield(0,s.H)(o.A.NPM_PACKAGE_URL+t.name+"/latest",!0),{tarball:n,shasum:a}=i.dist;return c(n,t.name,a)},new((n=void 0)||(n=Promise))((function(e,s){function o(e){try{l(a.next(e))}catch(e){s(e)}}function r(e){try{l(a.throw(e))}catch(e){s(e)}}function l(t){var i;t.done?e(t.value):(i=t.value,i instanceof n?i:new n((function(e){e(i)}))).then(o,r)}l((a=a.apply(t,i||[])).next())}));var t,i,n,a},A={id:"installUrl",displayName:"Install from URL",icon:a.A.CREATE,access:r.US.ADMIN,input:{approveCaption:"Install",content:"Enter download URL",inputProps:{placeholder:"Enter URL",type:"url",required:!0}},handler:({itemData:e},t)=>c(t)},m={id:"installNpm",displayName:"Install",icon:a.A.CREATE,access:r.US.ADMIN,handler:d},u={id:"updateNpm",displayName:"Update",icon:a.A.REFRESH_COLORED,access:r.US.ADMIN,handler:d},p={moduleId:l.KV.EXTENSIONS}},92078:(e,t,i)=>{i.d(t,{Dq:()=>c,_k:()=>d,nQ:()=>r});var n=i(32811),s=i(4425),o=i(67749),a=i(47650);const r={id:"create",displayName:"Add type",icon:s.A.CREATE,handler:({navigate:e})=>{e("/types")}},l={edit:{id:"edit",displayName:"Edit type",icon:s.A.EDIT,handler:({itemData:e,navigate:t})=>{t(`types/${e.id}`)}},remove:{id:"remove",displayName:"Remove type",icon:s.A.REMOVE,confirmation:{content:"Are you sure that you want to remove the search type {{item.name}}?",approveCaption:"Remove type",rejectCaption:"Don't remove"},filter:({itemData:e})=>!e.default_type,handler:({itemData:e})=>n.A.delete(`${a.A.SEARCH_TYPES_URL}/${e.id}`)}},c={moduleId:o.KV.SETTINGS},d={moduleData:c,actions:l}},29112:(e,t,i)=>{i.d(t,{RS:()=>l,eP:()=>d,t6:()=>A});var n=i(32811),s=i(42191),o=i(4425),a=i(86038),r=i(67749);const l={id:"refreshAll",displayName:"Refresh all",access:a.US.SETTINGS_EDIT,icon:o.A.REFRESH_COLORED,handler:()=>n.A.post(s.A.REFRESH_URL)},c={refresh:l},d={moduleId:r.KV.SHARE},A={moduleData:d,actions:c}},91510:(e,t,i)=>{i.d(t,{MB:()=>d,Tw:()=>l,nH:()=>A});var n=i(32811),s=i(42191),o=i(4425),a=i(86038),r=i(67749);const l={id:"add",displayName:"Add path",access:a.US.SETTINGS_EDIT,icon:o.A.CREATE,handler:({navigate:e})=>{e("browse")}},c={remove:{id:"remove",displayName:"Remove path",access:a.US.SETTINGS_EDIT,icon:o.A.REMOVE,confirmation:{content:"Are you sure that you want to remove the excluded path {{item}}?",approveCaption:"Remove path",rejectCaption:"Don't remove"},handler:({itemData:e})=>n.A.post(s.A.EXCLUDES_REMOVE_URL,{path:e})}},d={moduleId:r.KV.SETTINGS,subId:"shareExclude"},A={moduleData:d,actions:c}},94899:(e,t,i)=>{i.d(t,{Ds:()=>x,YS:()=>C,tx:()=>A});var n=i(32811),s=i(40599),o=i(17585),a=i(86818),r=i(4425),l=i(86038),c=i(67749),d=i(48844);const A={id:"create",displayName:"Add profile",access:l.US.SETTINGS_EDIT,icon:r.A.CREATE,input:{approveCaption:"Create",content:"Enter name for the profile",inputProps:{placeholder:"Enter name",required:!0}},handler:(e,t)=>n.A.post(a.A.PROFILES_URL,{name:t})},m={id:"browse",displayName:"Browse files",access:l.US.FILELISTS_VIEW,icon:r.A.FILELIST,handler:({itemData:e,location:t})=>s.A.ownList(t,e.id,o.A)},u={id:"edit",displayName:"Rename profile",access:l.US.SETTINGS_EDIT,icon:r.A.EDIT,input:e=>({approveCaption:"Rename",content:"Enter new name for the profile {{item.name}}",inputProps:{placeholder:"Enter name",defaultValue:e.name,required:!0}}),handler:({itemData:e},t)=>n.A.patch(`${a.A.PROFILES_URL}/${e.id}`,{name:t})},p={id:"default",displayName:"Set as default",access:l.US.SETTINGS_EDIT,filter:({itemData:e})=>!e.default,icon:r.A.DEFAULT,handler:({itemData:e})=>n.A.post(`${a.A.PROFILES_URL}/${e.id}/default`)},h={id:"remove",displayName:"Remove profile",access:l.US.SETTINGS_EDIT,icon:r.A.REMOVE,confirmation:{content:"Are you sure that you want to remove the profile {{item.name}}?",approveCaption:"Remove profile",rejectCaption:"Don't remove"},handler:({itemData:e})=>n.A.delete(a.A.PROFILES_URL+"/"+e.id)},g={browse:m,divider:d.o,edit:u,default:p,remove:h},x={moduleId:c.KV.SETTINGS,subId:"profile"},C={moduleData:x,actions:g}},72384:(e,t,i)=>{i.d(t,{A_:()=>d,Bs:()=>l,yc:()=>c});var n=i(83845),s=i(32811),o=i(4425),a=i(86038),r=i(67749);const l={id:"restartWeb",displayName:"Restart web server",access:a.US.ADMIN,icon:o.A.REFRESH_COLORED,confirmation:{content:"When changing the binding options, it's recommended to restart the web server only \n when you are able to access the server for troubleshooting. If the web server won't come back online, you should start the application \n manually to see if there are any error messages. The configuration file is located in your user directory by default (inside .airdc++ directory) in case you need to edit it manually.",approveCaption:"Continue and restart",rejectCaption:"Don't restart"},handler:()=>s.A.post(n.A.MODULE_URL+"/restart_web")},c={id:"shutdown",displayName:"Shut down application",access:a.US.ADMIN,icon:o.A.POWER,confirmation:{content:"Are you sure that you wish to shut down the application?",approveCaption:"Continue and shut down",rejectCaption:"Cancel"},handler:()=>s.A.post(n.A.MODULE_URL+"/shutdown")},d={moduleId:r.KV.COMMON,subId:"system"}},52786:(e,t,i)=>{i.d(t,{F5:()=>A,O6:()=>d,u2:()=>l});var n=i(32811),s=i(76865),o=i(4425),a=i(41860),r=i(67749);const l={id:"create",displayName:"Add user",icon:o.A.CREATE,handler:({location:e,navigate:t})=>{t("users")}},c={edit:{id:"edit",displayName:"Edit user",icon:o.A.EDIT,handler:({itemData:e,navigate:t})=>{t(`users/${e.id}`)}},remove:{id:"remove",displayName:"Remove user",filter:({itemData:e})=>e.id!==a.A.user.id,icon:o.A.REMOVE,confirmation:{content:"Are you sure that you want to remove the user {{item.username}}?",approveCaption:"Remove user",rejectCaption:"Don't remove"},handler:({itemData:e})=>n.A.delete(`${s.A.USERS_URL}/${e.id}`)}},d={moduleId:r.KV.SETTINGS,subId:"webUser"},A={moduleData:d,actions:c}},18536:(e,t,i)=>{i.d(t,{A_:()=>n.A_,Bs:()=>n.Bs,yc:()=>n.yc});var n=i(72384);i(52786)},98397:(e,t,i)=>{i.d(t,{A:()=>h});var n=i(74848),s=i(96540),o=i(32728),a=i(96529),r=i(4425),l=i(19718),c=i(69640),d=i(1530),A=i(57969),m=i(67749),u=i(42695),p=i(32389);const h=({alwaysShow:e})=>{const t=(0,c.P)(d.A),i=(0,s.useContext)(A.J),{t:h}=(0,p.Bd)();return i?!e&&t[l.xC.NO_INSTALL_PROMPT]?null:(0,n.jsx)(o.A,{title:(0,u.Tl)("Install as local application",h,m.KV.COMMON),description:(0,n.jsxs)("div",{className:"install-prompt",children:[(0,n.jsx)("p",{children:h((0,u.j2)("pwaInstallDesc",m.KV.COMMON),"This web application can be installed locally, providing a better user experience")}),(0,n.jsx)(a.A,{className:"primary",caption:(0,u.Tl)("Install",h,m.KV.COMMON),onClick:()=>i(),icon:r.A.CREATE}),!e&&(0,n.jsx)(a.A,{caption:(0,u.Tl)("Don't install",h,m.KV.COMMON),onClick:()=>d.A.setValue(l.xC.NO_INSTALL_PROMPT,!0)})]})}):null}},73070:(e,t,i)=>{i.d(t,{Y9:()=>A,fI:()=>d,xA:()=>m});var n=i(74848),s=(i(96540),i(46942)),o=i.n(s),a=i(32389),r=i(42695),l=i(67749);const c=e=>e||(0,n.jsx)(a.x6,{i18nKey:(0,r.j2)("na",l.KV.COMMON),children:"N/A"}),d=({title:e,text:t,className:i,titleWidth:s="four",noText:a})=>(0,n.jsxs)("div",{className:o()("ui row",i),children:[(0,n.jsx)("div",{className:o()(a?"sixteen":s,"wide column title"),children:(0,n.jsx)("div",{className:"ui tiny header",style:{overflow:"hidden"},children:e})}),!a&&(0,n.jsx)("div",{className:"column value",children:c(t)})]}),A=({title:e})=>(0,n.jsx)("div",{className:"ui row",children:(0,n.jsx)("div",{className:"sixteen wide column",children:(0,n.jsx)("div",{className:"ui blue section header",children:e})})}),m=e=>{var{className:t,children:i,columns:s,stackable:a}=e,r=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}(e,["className","children","columns","stackable"]);return(0,n.jsx)("div",Object.assign({className:o()("ui grid",{[`${s} column`]:!!s},{stackable:a},t)},r,{children:i}))}},2141:(e,t,i)=>{i.d(t,{A:()=>o});const n="extensions",s="https://registry.npmjs.org/",o={MODULE_URL:n,EXTENSIONS_URL:n,DOWNLOAD_URL:n+"/download",ENGINES_URL:n+"/engines",ENGINES_STATUS_URL:n+"/engines/status",DEFAULT_ENGINE:"node",STARTED:"extension_started",STOPPED:"extension_stopped",ADDED:"extension_added",REMOVED:"extension_removed",UPDATED:"extension_updated",INSTALLATION_STARTED:"extension_installation_started",INSTALLATION_SUCCEEDED:"extension_installation_succeeded",INSTALLATION_FAILED:"extension_installation_failed",NPM_PACKAGES_URL:s+"-/v1/search?text=keywords:airdcpp-extensions-public&size=100",NPM_PACKAGE_URL:s,NPM_HOMEPAGE_URL:"https://www.npmjs.com/package/"}},79179:(e,t,i)=>{i.d(t,{A:()=>s});const n="favorite_directories",s={MODULE_URL:n,GROUPED_DIRECTORIES_URL:n+"/grouped_paths",DIRECTORIES_URL:n,DIRECTORIES_UPDATED:"favorite_directories_updated"}},86818:(e,t,i)=>{i.d(t,{A:()=>s});const n="share_profiles",s={MODULE_URL:n,PROFILES_URL:n,PROFILE_ADDED:"share_profile_added",PROFILE_UPDATED:"share_profile_updated",PROFILE_REMOVED:"share_profile_removed",HIDDEN_PROFILE_ID:1}},76865:(e,t,i)=>{i.d(t,{A:()=>s});const n="web_users",s={MODULE_URL:n,USERS_URL:n,ADDED:"web_user_added",UPDATED:"web_user_updated",REMOVED:"web_user_removed"}},71299:(e,t,i)=>{i.d(t,{A:()=>l,T:()=>r});var n=i(2543),s=i(86818),o=i(13546),a=i(98573);const r=e=>({id:e.id,name:e.str}),l=function(e,t,i,r=!0){return(0,o.A)(e,(0,n.merge)(i,{urls:{profiles:s.A.PROFILES_URL},dataConverters:{profiles:(e,{t:i})=>{const n=e.filter((e=>t||e.id!==s.A.HIDDEN_PROFILE_ID)).map((e=>((e,t)=>{let i=e.str;return r&&e.id!==s.A.HIDDEN_PROFILE_ID&&(i+=` (${(0,a.Xq)(e.size,t)})`),Object.assign(Object.assign({},e),{str:i})})(e,i)));return n}},onSocketConnected:(e,{refetchData:t})=>{e(s.A.MODULE_URL,s.A.PROFILE_ADDED,(()=>t())),e(s.A.MODULE_URL,s.A.PROFILE_UPDATED,(()=>t())),e(s.A.MODULE_URL,s.A.PROFILE_REMOVED,(()=>t()))}}))}},1076:(e,t,i)=>{i.d(t,{A:()=>d});var n=i(74848),s=i(96540),o=i(32811),a=i(32728),r=i(32389),l=i(42695),c=i(67749);const d=function(e,t,i,d=0){class A extends s.Component{constructor(){super(...arguments),this.state={stats:null},this.fetchStats=()=>{o.A.get(t).then(this.onStatsReceived).catch((e=>console.error("Failed to fetch stats",e.message))),d>0&&(this.fetchTimeout=window.setTimeout(this.fetchStats,1e3*d))},this.onStatsReceived=e=>{this.setState({stats:e})}}componentDidMount(){this.fetchStats()}componentWillUnmount(){window.clearTimeout(this.fetchTimeout)}render(){const{stats:t}=this.state;return null===t?null:(this.props.stats&&Object.assign(t,this.props.stats),void 0===t?(0,n.jsx)(r.wD,{children:e=>(0,n.jsx)(a.A,{title:(0,l.Tl)("Statistics not available",e,c.KV.COMMON),description:i?i(e,this.props):void 0})}):(0,n.jsx)(e,Object.assign({},this.props,{stats:t})))}}return A}},56022:(e,t,i)=>{i.d(t,{A:()=>d});var n=i(74848),s=i(96540),o=i(1530),a=i(94413),r=i(47456),l=i(47767),c=i(31366);const d=({moduleT:e,keys:t,onFieldChanged:i})=>{const[d,A]=(0,s.useState)(o.A.getValues()),m=(0,s.useMemo)((()=>(0,r.Nn)(o.A.getDefinitions(t),e)),[]),u=(0,l.zy)(),p=(0,s.useContext)(c.XZ);return(0,n.jsx)("div",{className:"local setting-form",children:(0,n.jsx)(a.A,{ref:e=>p.addFormRef(t,e),id:(0,c.KZ)(t),location:u,onSave:(e,t)=>(o.A.setValues(e),A(o.A.getValues()),Promise.resolve()),fieldDefinitions:m,sourceValue:d,onFieldChanged:(e,t,n)=>{if(p.onFieldChanged(e,t,n),i)return i(e,t,n)}})})}},20239:(e,t,i)=>{i.d(t,{A:()=>m});var n=i(74848),s=i(96540),o=i(19718),a=i(13546),r=i(32811),l=i(94413),c=i(86038),d=i(47767),A=i(31366);const m=(0,a.A)((e=>{var{onFieldChanged:t,refetchData:i,keys:a,fieldDefinitions:c,settings:m}=e,u=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}(e,["onFieldChanged","refetchData","keys","fieldDefinitions","settings"]);const p=(0,s.useContext)(A.XZ),h=(0,d.zy)(),g=()=>{i(["settings"])};return(0,n.jsx)("div",{className:"remote setting-form",children:(0,n.jsx)(l.A,Object.assign({},u,{id:(0,A.KZ)(a),ref:e=>p.addFormRef(a,e),onSave:e=>0===Object.keys(e).length?Promise.resolve():r.A.post(o.Ay.ITEMS_SET_URL,e).then(g),fieldDefinitions:c,sourceValue:m,onFieldChanged:(e,i,n)=>{if(p.onFieldChanged(e,i,n),t)return t(e,i,n)},location:h}))})}),{urls:{fieldDefinitions:({keys:e})=>r.A.post(o.Ay.ITEMS_DEFINITIONS_URL,{keys:e}),settings:e=>{return t=void 0,i=[e],s=function*({keys:e,onSettingValuesReceived:t,valueMode:i=c.XG.CURRENT}){const n=yield r.A.post(o.Ay.ITEMS_GET_URL,{keys:e,value_mode:i});return t&&t(n),n},new((n=void 0)||(n=Promise))((function(e,o){function a(e){try{l(s.next(e))}catch(e){o(e)}}function r(e){try{l(s.throw(e))}catch(e){o(e)}}function l(t){var i;t.done?e(t.value):(i=t.value,i instanceof n?i:new n((function(e){e(i)}))).then(a,r)}l((s=s.apply(t,i||[])).next())}));var t,i,n,s}}})},8627:(e,t,i)=>{i.d(t,{A:()=>O});var n=i(74848),s=i(96540),o=i(46942),a=i.n(o),r=i(8098),l=i(31224),c=i(45325),d=i(41860),A=i(67749);const m=(e,t)=>"object"==typeof t?`/settings/${t.url}/${e.url}`:`/settings/${e.url}`,u=(e,t)=>t.translate(e,[A.l.NAVIGATION]),p=(e,t,i)=>t.access&&!d.A.hasAccess(t.access)?null:(0,n.jsx)(c.A,{url:e,icon:"icon"in t?`green ${t.icon}`:null,children:u(t.title,i)},e),h=(e,t,i)=>{const n=m(e,t);return p(n,e,i)};var g=i(83994);const x=({menu:e,settingsT:t})=>(0,n.jsx)("div",{className:"three wide column menu-column",children:(0,n.jsxs)("div",{className:"ui vertical secondary menu",children:[e.childMenuItems,!!e.childAdvancedMenuItems&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"item header",children:t.translate("Advanced")}),(0,n.jsx)("div",{className:"menu",children:e.childAdvancedMenuItems})]})]})}),C=({menu:e})=>(0,n.jsx)("div",{className:"ui secondary pointing menu settings top-menu",children:e.rootMenuItems}),v=({contentClassname:e,selectedChildMenuItem:t,selectedRootMenuItem:i,getSaveButton:s,children:o,message:r,settingsT:c})=>(0,n.jsx)("div",{className:a()("thirteen wide column",e),children:(0,n.jsxs)("div",{className:"ui segment",children:[(0,n.jsx)(l.A,{title:u(t.title,c),icon:(0,n.jsx)(g.A,{color:"green",icon:i.icon}),rightComponent:s()}),(0,n.jsxs)("div",{className:"options",children:[r,o]})]})}),f=e=>{var{children:t}=e,i=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}(e,["children"]);return(0,n.jsxs)("div",{className:"full",children:[(0,n.jsx)(C,Object.assign({},i)),(0,n.jsxs)("div",{id:"setting-scroll-context",className:"ui segment grid main",children:[(0,n.jsx)(x,Object.assign({},i)),(0,n.jsx)(v,Object.assign({},i,{children:t}))]})]})};var _=i(90425),y=i(31104),E=i(19247);const b=({selectedChildMenuItem:e,menu:t,selectedRootMenuItem:i,settingsT:s})=>(0,n.jsxs)("div",{className:"ui top-menu",children:[(0,n.jsx)(_.A,{selection:!0,caption:u(i.title,s),captionIcon:`green ${i.icon}`,children:t.rootMenuItems}),(0,n.jsx)(g.A,{icon:"caret right",size:"large"}),(0,n.jsxs)(y.A,{selection:!0,caption:u(e.title,s),children:[(0,n.jsx)(E.A,{children:t.childMenuItems}),(0,n.jsx)(E.A,{caption:s.translate("Advanced"),children:t.childAdvancedMenuItems})]})]}),j=e=>{var{getSaveButton:t,children:i,contentClassname:s,settingsT:o,message:a}=e,r=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}(e,["getSaveButton","children","contentClassname","settingsT","message"]);return(0,n.jsxs)("div",{className:"mobile",children:[(0,n.jsx)(b,Object.assign({settingsT:o},r)),(0,n.jsxs)("div",{id:"setting-scroll-context",className:s,children:[t("fluid"),(0,n.jsxs)("div",{className:"options",children:[a,i]})]})]})};var I=i(47767),T=i(31366),S=i(32728),N=i(4425),D=i(96529),w=i(86038);const B=({saveState:e,settingsT:t,className:i})=>{const{local:o,handleSave:r,hasChanges:l}=e,[c,A]=(0,s.useState)(!1),m=o||d.A.hasAccess(w.US.SETTINGS_EDIT);let u;return u=m?t.translate(l?"Save changes":"No unsaved changes"):t.translate("No save permission"),(0,n.jsx)(D.A,{className:a()("save",i),caption:u,icon:m&&l?"green checkmark":null,loading:c,disabled:!l||!m,onClick:()=>{return e=void 0,t=void 0,n=function*(){A(!0);try{yield r()}finally{A(!1)}},new((i=void 0)||(i=Promise))((function(s,o){function a(e){try{l(n.next(e))}catch(e){o(e)}}function r(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,r)}l((n=n.apply(e,t||[])).next())}));var e,t,i,n}})},k=(e,t)=>e.local&&(0,n.jsx)(S.A,{description:t.t("browserSpecificNote","Settings listed on this page are browser-specific"),icon:N.A.INFO}),O=e=>{const{rootMenuItems:t,selectedRootMenuItem:i,settingsT:s,children:o,selectedChildMenuItem:l}=e,c=(0,I.zy)(),{saveState:d,saveContext:A}=(0,T.WI)({selectedChildMenuItem:l,settingsT:s}),u=(0,r.mY)()||window.innerWidth<1e3?j:f,{menuItems:g,advancedMenuItems:x}=i,C=a()("section-content",i.url,l.url),v={rootMenuItems:t.map((e=>((e,t,i)=>{let n=m(e,void 0);return e.menuItems&&0!==i.pathname.indexOf(n)&&(n=m(e.menuItems[0],e)),p(n,e,t)})(e,s,c))),childMenuItems:g.map((e=>h(e,i,s))),childAdvancedMenuItems:null==x?void 0:x.map((e=>h(e,i,s)))};return(0,n.jsx)(T.XZ.Provider,{value:A,children:(0,n.jsx)(u,{settingsT:s,location:c,getSaveButton:e=>!l.noSave&&(0,n.jsx)(B,{settingsT:s,saveState:d,className:e}),message:k(l,s),contentClassname:C,menu:v,selectedChildMenuItem:l,selectedRootMenuItem:i,children:o})})}},31366:(e,t,i)=>{i.d(t,{KZ:()=>c,WI:()=>d,XZ:()=>l});var n=i(96540),s=i(20311),o=i.n(s),a=i(88939),r=i(47767);const l=n.createContext(void 0),c=e=>e.join("|"),d=({settingsT:e,selectedChildMenuItem:t})=>{const i=n.useMemo((()=>new Map),[]),[s,l]=n.useState([]);n.useEffect((()=>{l([])}),[t.url]);const d=s.length>0;(0,r.KP)((({currentLocation:i,nextLocation:n,historyAction:s})=>{if(t.noSave)return!1;if(i.pathname.includes(n.pathname)||n.pathname.includes(i.pathname))return!1;if(!d)return!1;const o=e.t("unsavedChangesPrompt","You have unsaved changes. Are you sure you want to leave?");return!window.confirm(o)}));const A={onFieldChanged:(e,t,i)=>{l(i?[...s,e]:s.filter((t=>t!==e)))},addFormRef:(e,t)=>{t?(o()(t.hasOwnProperty("save"),"Invalid setting form component supplied for SaveDecorator (save property missing)"),i.set(c(e),t)):i.clear()},getFormRef:e=>i.get(c(e))};return{saveContext:A,saveState:{handleSave:()=>{return t=void 0,n=void 0,r=function*(){o()(i.size>0,"No forms exist in SaveDecorator");const t=Array.from(i.values()).map((e=>e.save()));yield Promise.all(t),l([]),(()=>{const{translate:t}=e;a.A.success({title:t("Saving completed"),message:t("Settings were saved successfully")})})()},new((s=void 0)||(s=Promise))((function(e,i){function o(e){try{l(r.next(e))}catch(e){i(e)}}function a(e){try{l(r.throw(e))}catch(e){i(e)}}function l(t){var i;t.done?e(t.value):(i=t.value,i instanceof s?i:new s((function(e){e(i)}))).then(o,a)}l((r=r.apply(t,n||[])).next())}));var t,n,s,r},hasChanges:d,local:t.local}}}},2237:(e,t,i)=>{i.r(t),i.d(t,{default:()=>U});var n=i(74848),s=i(67749),o=i(85072),a=i.n(o),r=i(97825),l=i.n(r),c=i(77659),d=i.n(c),A=i(55056),m=i.n(A),u=i(10540),p=i.n(u),h=i(41113),g=i.n(h),x=i(74143),C={};C.styleTagTransform=g(),C.setAttributes=m(),C.insert=d().bind(null,"head"),C.domAPI=l(),C.insertStyleElement=p(),a()(x.A,C),x.A&&x.A.locals&&x.A.locals;const v={url:"profile",title:"Profile",icon:"user",component:i(8627).A,menuItems:[{title:"User",url:"user",component:i(37964).A},{title:"Away mode",url:"away",component:i(15175).A}],advancedMenuItems:[{title:"Ignored users",url:"ignored-users",noSave:!0,component:i(33751).A},{title:"Miscellaneous",url:"miscellaneous",component:i(43353).A}]},f={url:"connectivity",title:"Connectivity",icon:"signal",component:i(8627).A,menuItems:[{title:"Auto detection",url:"detection",noSave:!0,component:i(36441).A}],advancedMenuItems:[{title:"IPv4 connectivity (manual)",url:"v4",component:i(35190).A},{title:"IPv6 connectivity (manual)",url:"v6",component:i(52508).A},{title:"Ports (manual)",url:"ports",component:i(32709).A},{title:"Proxies",url:"proxies",component:i(16337).A},{title:"Encryption",url:"encryption",component:i(25908).A}]},_={url:"speed-limits",title:"Speed and limits",icon:"dashboard",component:i(8627).A,menuItems:[{title:"Connection speed",url:"speed",component:i(47072).A},{title:"Bandwidth limiting",url:"limiter",component:i(64253).A}],advancedMenuItems:[{title:"Download limits",url:"download-limits",component:i(45876).A},{title:"Upload limits",url:"upload-limits",component:i(4313).A},{title:"Per-user limits",url:"user-limits",component:i(28903).A}]},y={url:"downloads",title:"Downloads",icon:"download",component:i(8627).A,menuItems:[{title:"Locations",url:"locations",component:i(20764).A}],advancedMenuItems:[{title:"Skipping options",url:"skipping-options",component:i(19698).A},{title:"Search matching",url:"search-matching",component:i(53044).A},{title:"Download options",url:"download-options",component:i(8625).A},{title:"Priorities",url:"priorities",component:i(70237).A},{title:"Search types",url:"search-types",component:i(58524).A}]},E={url:"sharing",title:"Sharing",icon:"tasks",component:i(8627).A,menuItems:[{title:"Refresh options",url:"refresh-options",component:i(98915).A},{title:"Share profiles",url:"profiles",noSave:!0,component:i(2825).A}],advancedMenuItems:[{title:"Sharing options",url:"sharing-options",component:i(59676).A},{title:"Hashing",url:"hashing",component:i(79287).A},{title:"Excluded paths",url:"excludes",noSave:!0,component:i(6244).A}]},b={url:"view",title:"View",icon:"browser",component:i(8627).A,menuItems:[{title:"Notifications",url:"notifications",local:!0,component:i(49123).A},{title:"Histories",url:"histories",component:i(92151).A},{title:"Events",url:"events",component:i(26295).A},{title:"Appearance",url:"appearance",component:i(81879).A}],advancedMenuItems:[{title:"Miscellaneous",url:"miscellaneous",local:!0,component:i(36255).A}]};var j=i(97744);const I={url:"about",title:"About",icon:"info",component:i(8627).A,menuItems:[{title:"Application",noSave:!0,url:"application",component:i(42181).A},{title:"Transfer statistics",noSave:!0,url:"transfers",access:j.A.TRANSFERS,component:i(96601).A},{title:"Share statistics",noSave:!0,url:"share",component:i(77971).A},{title:"Hub statistics",noSave:!0,url:"hubs",access:j.A.HUBS_VIEW,component:i(10343).A}]},T={url:"extensions",title:"Extensions",icon:"puzzle",component:i(8627).A,menuItems:[{title:"Manage installed",url:"manage",noSave:!0,component:i(37155).A},{title:"Extension catalog",url:"packages",noSave:!0,component:i(83161).A}],advancedMenuItems:[{title:"Extension options",url:"extension-options",component:i(50804).A},{title:"Extension engines",url:"extension-engines",component:i(31880).A}]},S={url:"system",title:"System",icon:"settings",access:j.A.ADMIN,component:i(8627).A,menuItems:[{title:"Users",url:"users",noSave:!0,component:i(85345).A},{title:"Logging",url:"logging",component:i(69222).A},{title:"Web server",url:"server-settings",component:i(87135).A}],advancedMenuItems:[{title:"Advanced server settings",url:"advanced-server-settings",component:i(81301).A}]};var N=i(47767),D=i(8627),w=i(42695),B=i(32389),k=i(2543);const O=[v,f,_,y,E,b,I,T,S],R=(e,t,i)=>{const s=`${e.url}/*`,o=(0,w.Ze)(i,[(0,k.camelCase)(t.url),(0,k.camelCase)(e.url)]);return(0,n.jsx)(N.qh,{path:s,element:(0,n.jsx)(D.A,{settingsT:i,selectedRootMenuItem:t,rootMenuItems:O,selectedChildMenuItem:e,children:(0,n.jsx)(e.component,{settingsT:i,moduleT:o})})},s)},U=e=>{const{t}=(0,B.Bd)(),i=(0,w.lw)(t,s.KV.SETTINGS);return(0,n.jsx)("div",{className:"ui segment settings-layout",children:(0,n.jsxs)(N.BV,{children:[(0,n.jsx)(N.qh,{index:!0,element:(0,n.jsx)(N.C5,{to:O[0].url,replace:!0})}),O.map((e=>((e,t)=>{var i;return(0,n.jsxs)(N.qh,{path:e.url,children:[e.menuItems.map((i=>R(i,e,t))),null===(i=e.advancedMenuItems)||void 0===i?void 0:i.map((i=>R(i,e,t))),(0,n.jsx)(N.qh,{index:!0,element:(0,n.jsx)(N.C5,{to:e.menuItems[0].url,replace:!0})})]},e.url)})(e,i)))]})})}},42181:(e,t,i)=>{i.d(t,{A:()=>m});var n=i(74848),s=(i(96540),i(73070)),o=i(41860),a=i(1076),r=i(83845),l=i(98573),c=i(98397),d=i(59250),A=i(42049);const m=(0,a.A)((({stats:e,moduleT:t})=>{const{translate:i}=t,a=o.A.systemInfo,r=(0,l.r6)(1720338024.867);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.xA,{columns:"two",stackable:!0,children:[(0,n.jsx)(s.fI,{title:i("Application version"),text:a.client_version}),(0,n.jsx)(s.fI,{title:i("Web UI version"),text:"2.12.1"}),(0,n.jsx)(s.fI,{title:i("Web UI build date"),text:r}),(0,n.jsx)(s.fI,{title:i("API version"),text:a.api_version}),(0,n.jsx)(s.fI,{title:i("API feature level"),text:a.api_feature_level}),(0,n.jsx)(s.fI,{title:i("Started"),text:(0,l.fw)(a.client_started)}),(0,n.jsx)(s.fI,{title:i("Active sessions"),text:e.active_sessions}),(0,n.jsx)(s.fI,{title:i("Server threads"),text:e.server_threads}),(0,n.jsx)(s.Y9,{title:i("Resources")}),(0,n.jsx)(s.fI,{title:(0,n.jsx)(A.A,{url:d.A.HOME_PAGE_URL,children:i("Home page")}),noText:!0}),(0,n.jsx)(s.fI,{title:(0,n.jsx)(A.A,{url:d.A.HELP_URL,children:i("Documentation")}),noText:!0}),(0,n.jsx)(s.fI,{title:(0,n.jsx)(A.A,{url:d.A.ISSUE_TRACKER_URL,children:i("Feature request/bug tracker")}),noText:!0}),(0,n.jsx)(s.Y9,{title:i("Third-party credits")}),(0,n.jsx)(s.fI,{title:(0,n.jsx)(A.A,{url:d.A.DBIP_URL,children:"IP Geolocation by DB-IP"}),noText:!0})]}),(0,n.jsx)(c.A,{alwaysShow:!0})]})}),r.A.STATS_URL,null,5)},10343:(e,t,i)=>{i.d(t,{A:()=>l});var n=i(74848),s=(i(96540),i(98573)),o=i(44511),a=i(1076),r=i(73070);const l=(0,a.A)((({stats:e,moduleT:t})=>{const{translate:i}=t;return(0,n.jsxs)(r.xA,{columns:"two",stackable:!0,children:[(0,n.jsx)(r.fI,{title:i("Total users"),text:e.total_users}),(0,n.jsx)(r.fI,{title:i("Unique users"),text:`${e.unique_users} (${(0,s.Ee)(e.unique_users,e.total_users)})`}),(0,n.jsx)(r.fI,{title:i("Active users"),text:`${e.active_users} (${(0,s.Ee)(e.active_users,e.unique_users)})`}),(0,n.jsx)(r.fI,{title:i("Total share"),text:(0,s.Xq)(e.total_share,t.plainT)}),(0,n.jsx)(r.fI,{title:i("Average share per user"),text:(0,s.Xq)((0,s.jh)(e.total_share,e.unique_users),t.plainT)}),(0,n.jsx)(r.fI,{title:i("Average ADC download speed"),text:(0,s._T)(e.adc_down_per_user,t.plainT)}),(0,n.jsx)(r.fI,{title:i("Average ADC upload speed"),text:(0,s._T)(e.adc_up_per_user,t.plainT)}),(0,n.jsx)(r.Y9,{title:i("Clients")}),e.clients.map((t=>{return i=e.unique_users,o=t,(0,n.jsx)(r.fI,{title:o.name,text:`${o.count} (${(0,s.Ee)(o.count,i)})`},o.name);var i,o}))]})}),o.A.STATS_URL,((e,t)=>t.moduleT.translate("No hubs online")),10)},77971:(e,t,i)=>{i.d(t,{A:()=>l});var n=i(74848),s=(i(96540),i(98573)),o=i(42191),a=i(1076),r=i(73070);const l=(0,a.A)((({stats:e,moduleT:t})=>{const{translate:i,t:o}=t;return(0,n.jsxs)(r.xA,{columns:"two",stackable:!0,children:[(0,n.jsx)(r.fI,{title:i("Total share size"),text:(0,s.Xq)(e.total_size,t.plainT)}),(0,n.jsx)(r.fI,{title:i("Total files"),text:o("totalFilesValue",{defaultValue:"{{totalCount}} ({{uniqueCount}} unique)",replace:{totalCount:e.total_file_count,uniqueCount:(0,s.Ee)(e.unique_file_count,e.total_file_count)}})}),(0,n.jsx)(r.fI,{title:i("Total directories"),text:e.total_directory_count}),(0,n.jsx)(r.fI,{title:i("Average file age"),text:(0,s.Xo)(e.average_file_age)}),(0,n.jsx)(r.fI,{title:i("Average files per directory"),text:(0,s.jh)(e.total_file_count,e.total_directory_count)}),(0,n.jsx)(r.Y9,{title:i("Incoming searches")}),(0,n.jsx)(r.fI,{title:i("Total searches"),text:o("searchesTotalValue",{defaultValue:"{{totalCount}} ({{perSecondCount}} per second)",replace:{totalCount:e.total_searches,perSecondCount:e.total_searches_per_second.toFixed(1)}})}),(0,n.jsx)(r.fI,{title:i("TTH searches"),text:(0,s.Ee)(e.tth_searches,e.total_searches)}),(0,n.jsx)(r.fI,{title:i("Text searches"),text:o("searchesPerSecondValue",{defaultValue:"{{totalCount}} ({{matchedCount}} matched per second)",replace:{totalCount:e.recursive_searches,matchedCount:e.unfiltered_recursive_searches_per_second.toFixed(2)}})}),(0,n.jsx)(r.fI,{title:i("Filtered text searches"),text:o("searchesFilteredValue",{defaultValue:"{{filteredPercentage}} ({{resultPercentage}} of the matched ones returned results)",replace:{filteredPercentage:(0,s.Ee)(e.filtered_searches,e.recursive_searches),resultPercentage:(0,s.Ee)(e.recursive_searches_responded,e.recursive_searches-e.filtered_searches)}})}),(0,n.jsx)(r.fI,{title:i("Average text search tokens (non-filtered)"),text:o("searchesAverageTokensValue",{defaultValue:"{{tokenCount}} ({{tokenLength}} bytes per token)",replace:{tokenCount:e.average_search_token_count.toFixed(1),tokenLength:e.average_search_token_length.toFixed(1)}})}),(0,n.jsx)(r.fI,{title:i("Average matching time per text search"),text:o("searchesAverageMatchTimeValue",{defaultValue:"{{matchTime}} ms",replace:{matchTime:e.average_match_ms}})})]})}),o.A.STATS_URL,((e,t)=>t.moduleT.translate("No files shared")),60)},96601:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(74848),s=(i(96540),i(98573)),o=i(73070),a=i(36671);const r=(0,i(1076).A)((({stats:e,moduleT:t})=>{const{translate:i,plainT:a}=t,r=e.session_uploaded+e.start_total_uploaded,l=e.session_downloaded+e.start_total_downloaded;return(0,n.jsxs)(o.xA,{columns:"two",stackable:!0,children:[(0,n.jsx)(o.fI,{title:i("Total downloaded"),text:(0,s.Xq)(l,a)}),(0,n.jsx)(o.fI,{title:i("Total uploaded"),text:(0,s.Xq)(r,a)}),(0,n.jsx)(o.Y9,{title:i("Session")}),(0,n.jsx)(o.fI,{title:i("Session downloaded"),text:(0,s.Xq)(e.session_downloaded,a)}),(0,n.jsx)(o.fI,{title:i("Session uploaded"),text:(0,s.Xq)(e.session_uploaded,a)})]})}),a.A.TRANSFERRED_BYTES_URL,null,5)},36441:(e,t,i)=>{i.d(t,{A:()=>L});var n=i(74848),s=i(96540),o=i(68514),a=i(13546);const r="connectivity",l={MODULE_URL:r,DETECT_URL:r+"/detect",STATUS_URL:r+"/status",CONNECTIVITY_MESSAGE:"connectivity_detection_message",CONNECTIVITY_STARTED:"connectivity_detection_started",CONNECTIVITY_FINISHED:"connectivity_detection_finished"};var c=i(73070),d=i(85072),A=i.n(d),m=i(97825),u=i.n(m),p=i(77659),h=i.n(p),g=i(55056),x=i.n(g),C=i(10540),v=i.n(C),f=i(41113),_=i.n(f),y=i(29802),E={};E.styleTagTransform=_(),E.setAttributes=x(),E.insert=h().bind(null,"head"),E.domAPI=u(),E.insertStyleElement=v(),A()(y.A,E),y.A&&y.A.locals&&y.A.locals;var b=i(32811),j=i(97744),I=i(4425),T=i(67749);const S={id:"detect",displayName:"Detect now",access:j.A.SETTINGS_EDIT,icon:I.A.CONFIGURE,handler:()=>b.A.post(l.DETECT_URL)},N={moduleId:T.KV.SETTINGS};var D=i(96529);const w=(e,t,i)=>{const{translate:n,t:s}=i;if(t)return n("Detecting...");const o=e.auto_detect;return s(o?"autoDetected":"manualConfiguration",{defaultValue:o?"{{status}} (auto detected)":"{{status}} (manual configuration)",replace:{status:e.text}})},B=(0,a.A)((({status:e,runningV4:t,runningV6:i,moduleT:a})=>{const[r,l]=s.useState(!1);return(0,n.jsxs)("div",{className:"ui segment detect-panel",children:[(0,n.jsx)("h3",{className:"header",children:a.translate("Current auto detection status")}),(0,n.jsxs)(c.xA,{columns:"two",children:[(0,n.jsx)(c.fI,{title:a.translate("IPv4 connectivity"),text:w(e.status_v4,t,a)}),(0,n.jsx)(c.fI,{title:a.translate("IPv6 connectivity"),text:w(e.status_v6,i,a)}),r&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.fI,{title:a.translate("Bound interface (IPv4)"),text:e.status_v4.bind_address}),(0,n.jsx)(c.fI,{title:a.translate("Bound interface (IPv6)"),text:e.status_v6.bind_address}),(0,n.jsx)(c.fI,{title:a.translate("Transfer port"),text:e.tcp_port}),(0,n.jsx)(c.fI,{title:a.translate("Encrypted transfer port"),text:e.tls_port}),(0,n.jsx)(c.fI,{title:a.translate("Search/UDP port"),text:e.udp_port})]})]}),(0,n.jsx)(o.A,{className:"detect-button",action:S,moduleData:N,disabled:!e.status_v4.auto_detect&&!e.status_v6.auto_detect,loading:i||t}),!r&&(0,n.jsx)(D.A,{icon:"info",caption:a.translate("View all"),onClick:()=>l(!r)})]})}),{urls:{status:l.STATUS_URL},onSocketConnected:(e,{refetchData:t,mergeData:i})=>{const n=(e,t)=>{const n="running"+(e?"V6":"V4");i({[n]:t})};e(l.MODULE_URL,l.CONNECTIVITY_STARTED,(e=>{n(e.v6,!0)})),e(l.MODULE_URL,l.CONNECTIVITY_FINISHED,(e=>{n(e.v6,!1),t()}))}});var k=i(42049),O=i(59250),R=i(32728),U=i(32389);const L=({moduleT:e})=>{const{toI18nKey:t}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)(B,{moduleT:e}),(0,n.jsx)(R.A,{description:(0,n.jsx)(U.x6,{i18nKey:t("connectivityDetectionNote"),defaults:"In case of file transfer connectivity issues, please confirm that your TCP ports are really open by using <portChecker>an online port checker</portChecker>. Note that validity of the UDP port (search) can't be checked online. For more information about different connectivity modes, please visit <faq>DC++'s connectivity FAQ</faq>.",components:{portChecker:(0,n.jsx)(k.A,{url:O.A.PORTCHECK_URL}),faq:(0,n.jsx)(k.A,{url:O.A.CONNECTIVITY_HELP_URL})}}),icon:I.A.INFO})]})}},25908:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["always_ccpm","tls_mode","tls_allow_untrusted_clients","tls_allow_untrusted_hubs"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},35190:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(95479));const o=["connection_auto_v4","connection_bind_v4","connection_mode_v4","connection_ip_v4","connection_update_ip_v4","connection_ip_override_v4"],a=({moduleT:e})=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{moduleT:e,keys:o,protocol:"v4"})})},52508:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(95479));const o=["connection_auto_v6","connection_bind_v6","connection_mode_v6","connection_ip_v6","connection_update_ip_v6","connection_ip_override_v6"],a=({moduleT:e})=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o,moduleT:e,protocol:"v6"})})},32709:(e,t,i)=>{i.d(t,{A:()=>m});var n=i(74848),s=(i(96540),i(20239)),o=i(47456),a=i(86038),r=i(67749),l=i(32728),c=i(4425);const d=["tcp_port","udp_port","tls_port","preferred_port_mapper"],A=e=>(t,i,n)=>{const s=i=>e.t((0,o.nD)(r.oV.HELP,t,void 0),i);"tcp_port"===t?i.help=s("TCP port is used for unencrypted transfers"):"tls_port"===t?i.help=s("TLS port (TCP) is used for encrypted transfers"):"udp_port"===t&&(i.help=s("UDP port is used for searching"))},m=({moduleT:e})=>(0,n.jsxs)("div",{children:[(0,n.jsx)(l.A,{description:e.t("portsAutoValuesNote","Port numbers listed on this page can be overridden by port mappers (if enabled)"),icon:c.A.INFO}),(0,n.jsx)(s.A,{keys:d,onFieldSetting:A(e),valueMode:a.XG.FORCE_MANUAL})]})},95479:(e,t,i)=>{i.d(t,{A:()=>A});var n=i(74848),s=i(96540),o=i(20239),a=i(32728),r=i(4425),l=i(19718),c=i(86038);class d extends s.Component{constructor(){super(...arguments),this.state={autoDetectEnabled:!1},this.convertValue=e=>`${e}_${this.props.protocol}`,this.onFieldSetting=(e,t,i)=>{const n=i[this.convertValue("connection_mode")]!==l.ZX.INCOMING_DISABLED,s=i[this.convertValue("connection_auto")];n&&!s||0!==e.indexOf("connection_ip")&&0!==e.indexOf("connection_bind")&&0!==e.indexOf("connection_update_ip")&&0!==e.indexOf("connection_ip_override")||(t.disabled=!0),s&&0===e.indexOf("connection_mode")&&n&&(t.disabled=!0),n||0!==e.indexOf("connection_auto")||(t.disabled=!0)},this.onSettingValuesReceived=e=>{this.setState({autoDetectEnabled:e[this.convertValue("connection_auto")]})}}render(){return(0,n.jsxs)("div",{children:[this.state.autoDetectEnabled&&(0,n.jsx)(a.A,{description:this.props.moduleT.t("protocolAutoValuesNote","Connectivity auto detection is currently enabled; setting values listed on this page are not being used"),icon:r.A.INFO}),(0,n.jsx)(o.A,Object.assign({},this.props,{onFieldSetting:this.onFieldSetting,onSettingValuesReceived:this.onSettingValuesReceived,valueMode:c.XG.FORCE_MANUAL}))]})}}const A=d},16337:(e,t,i)=>{i.d(t,{A:()=>l});var n=i(74848),s=(i(96540),i(20239)),o=i(19718);const a=["outgoing_mode","socks_server","socks_port","socks_resolve","socks_user","socks_password","http_proxy"],r=(e,t,i)=>{i.outgoing_mode===o.rt.OUTGOING_SOCKS||0!==e.indexOf("socks_")||(t.disabled=!0)},l=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:a,onFieldSetting:r})})},8625:(e,t,i)=>{i.d(t,{A:()=>c});var n=i(74848),s=(i(96540),i(20239));const o=["allow_slow_overlap","finished_remove_exit","use_partial_sharing"],a=["segmented_downloads","min_segment_size"],r=["socket_read_buffer","socket_write_buffer","buffer_size"],l=["compress_transfers","max_compression"],c=({moduleT:e})=>{const{translate:t}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)(s.A,{keys:o}),(0,n.jsx)(s.A,{keys:a,title:t("Segments")}),(0,n.jsx)(s.A,{keys:l,title:t("Compression")}),(0,n.jsx)(s.A,{keys:r,title:t("Buffers")})]})}},20764:(e,t,i)=>{i.d(t,{A:()=>L});var n=i(74848),s=i(96540),o=i(42049),a=i(59250),r=i(32728),l=i(20239),c=i(32811),d=i(79179),A=i(4425),m=i(86038),u=i(67749);const p={id:"create",displayName:"Add directory",access:m.US.SETTINGS_EDIT,icon:A.A.CREATE,handler:({navigate:e})=>{e("directories")}},h={edit:{id:"edit",displayName:"Edit directory",access:m.US.SETTINGS_EDIT,icon:A.A.EDIT,handler:({itemData:e,navigate:t})=>{t(`directories/${e.id}`)}},remove:{id:"remove",displayName:"Remove directory",access:m.US.SETTINGS_EDIT,icon:A.A.REMOVE,confirmation:{content:"Are you sure that you want to remove the favorite directory {{item.name}}?",approveCaption:"Remove directory",rejectCaption:"Don't remove"},handler:({itemData:e})=>c.A.delete(`${d.A.DIRECTORIES_URL}/${e.id}`)}},g={moduleId:u.KV.SETTINGS,subId:"favoriteDirectory"},x={moduleData:g,actions:h};var C=i(68514),v=i(13546),f=i(71352),_=i(75662),y=i(65385),E=i(51766),b=i(33968),j=i(94413),I=i(13712),T=i(59315),S=i(47456);const N=[{key:"path",title:"Path",type:m.OP.DIRECTORY_PATH},{key:"name",title:"Name",type:m.OP.STRING}];class D extends s.Component{constructor(){super(...arguments),this.fieldDefinitions=(0,S.Nn)(N,this.props.moduleT),this.isNew=()=>!this.props.directoryEntry,this.onFieldChanged=(e,t,i)=>e.includes("path")?Promise.resolve({name:t.path?(0,b.ap)(t.path):void 0}):null,this.save=()=>this.form.save(),this.onSave=e=>this.isNew()?c.A.post(d.A.DIRECTORIES_URL,e):c.A.patch(`${d.A.DIRECTORIES_URL}/${this.props.directoryEntry.id}`,e),this.onFieldSetting=(e,t,i)=>{"path"===e?(t.disabled=!this.isNew(),t.config=Object.assign(t.config||{},{historyId:T.A.LOCATION_DOWNLOAD})):"name"===e&&(t.factory=E.Ay.form.Textbox,t.template=I.I9,t.config={suggestionGetter:()=>this.props.virtualNames})}}render(){const{moduleT:e,directoryEntry:t}=this.props,i=e.translate(this.isNew()?"Add favorite directory":"Edit favorite directory");return(0,n.jsx)(_.A,{className:"favorite-directory",title:i,onApprove:this.save,closable:!1,icon:A.A.FOLDER,children:(0,n.jsx)(j.A,{ref:e=>this.form=e,fieldDefinitions:this.fieldDefinitions,onFieldChanged:this.onFieldChanged,onFieldSetting:this.onFieldSetting,onSave:this.onSave,sourceValue:t,location:this.props.location})})}}D.displayName="FavoriteDirectoryDialog";const w=(0,y.A)((0,v.A)(D,{urls:{virtualNames:d.A.GROUPED_DIRECTORIES_URL,directoryEntry:({params:e},t)=>e.directoryId?t.get(`${d.A.DIRECTORIES_URL}/${e.directoryId}`):Promise.resolve(void 0)},dataConverters:{virtualNames:e=>e.map((e=>e.name),[])}}),"directories/:directoryId?"),B=({directory:e})=>(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{className:"name dropdown",children:(0,n.jsx)(f.Wy,{caption:(0,n.jsx)("strong",{children:e.name}),actions:x,itemData:e,contextElement:"#setting-scroll-context"})}),(0,n.jsx)("td",{className:"path",children:e.path})]}),k=e=>(0,n.jsx)(B,{directory:e},e.path),O=(0,v.A)((({directories:e,moduleT:t})=>(0,n.jsxs)("div",{id:"directory-table",children:[(0,n.jsx)(C.A,{action:p,moduleData:g}),0===e.length?null:(0,n.jsxs)("table",{className:"ui striped table",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{children:t.translate("Name")}),(0,n.jsx)("th",{children:t.translate("Path")})]})}),(0,n.jsx)("tbody",{children:e.map(k)})]}),(0,n.jsx)(w,{moduleT:t})]})),{urls:{directories:d.A.DIRECTORIES_URL},onSocketConnected:(e,{refetchData:t})=>{e(d.A.MODULE_URL,d.A.DIRECTORIES_UPDATED,(()=>t()))}});var R=i(31224);const U=["download_directory"],L=({moduleT:e})=>(0,n.jsxs)("div",{children:[(0,n.jsx)(l.A,{keys:U}),(0,n.jsx)(r.A,{description:(0,n.jsx)(o.A,{url:a.A.VARIABLE_HELP_URL,children:e.translate("Available path variables")}),icon:A.A.INFO}),(0,n.jsxs)("div",{className:"ui segment setting-form",children:[(0,n.jsx)(R.A,{title:e.translate("Favorite download directories"),icon:A.A.FOLDER,size:"normal"}),(0,n.jsx)(O,{moduleT:e})]})]})},70237:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(74848),s=(i(96540),i(20239));const o=["prio_highest_size","prio_high_size","prio_normal_size","prio_auto_default"],a=["prio_high_files_to_highest","prio_high_files","prio_high_files_regex"],r=({moduleT:e})=>{const{translate:t}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)(s.A,{title:t("File priorities"),keys:o}),(0,n.jsx)(s.A,{title:t("High priority files"),keys:a})]})}},53044:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["auto_add_sources","alt_search_auto","alt_search_max_sources","max_sources_match_queue","allow_match_full_list"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},58524:(e,t,i)=>{i.d(t,{A:()=>E});var n=i(74848),s=i(96540),o=i(68514),a=i(13546),r=i(71352),l=i(92078),c=i(47650),d=i(75662),A=i(65385),m=i(4425),u=i(32811),p=i(94413),h=i(86038),g=i(47456);const x=[{key:"name",title:"Name",type:h.OP.STRING},{key:"extensions",title:"File extensions",type:h.OP.LIST,item_type:h.OP.STRING}];class C extends s.Component{constructor(){super(...arguments),this.fieldDefinitions=(0,g.Nn)(x,this.props.moduleT),this.isNew=()=>!this.props.searchTypeEntry,this.save=()=>this.form.save(),this.onSave=e=>this.isNew()?u.A.post(c.A.SEARCH_TYPES_URL,e):u.A.patch(`${c.A.SEARCH_TYPES_URL}/${this.props.searchTypeEntry.id}`,e),this.onFieldSetting=(e,t,i)=>{if("name"===e){const{searchTypeEntry:e}=this.props;t.disabled=!!e&&e.default_type}}}render(){const{moduleT:e,searchTypeEntry:t}=this.props,i=e.translate(this.isNew()?"Add search type":"Edit search type");return(0,n.jsx)(d.A,Object.assign({className:"search-type",title:i,onApprove:this.save,closable:!1,icon:m.A.FOLDER},this.props,{children:(0,n.jsx)(p.A,{ref:e=>this.form=e,fieldDefinitions:this.fieldDefinitions,onFieldSetting:this.onFieldSetting,onSave:this.onSave,sourceValue:t,location:this.props.location})}))}}C.displayName="SearchTypeDialog";const v=(0,A.A)((0,a.A)(C,{urls:{searchTypeEntry:({params:e},t)=>e.searchTypeId?t.get(`${c.A.SEARCH_TYPES_URL}/${e.searchTypeId}`):Promise.resolve(void 0)}}),"types/:searchTypeId?");var f=i(98573),_=i(32728);const y=({type:e,moduleT:t})=>(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{className:"name dropdown",children:(0,n.jsx)(r.Wy,{caption:(0,n.jsx)("strong",{children:e.str}),actions:l._k,itemData:e,contextElement:"#setting-scroll-context"})}),(0,n.jsx)("td",{className:"extensions",children:e.extensions.join(", ")}),(0,n.jsx)("td",{className:"default",children:(0,f.yr)(e.default_type,t.plainT)})]}),E=(0,a.A)((({searchTypes:e,moduleT:t})=>(0,n.jsxs)("div",{id:"directory-table",children:[(0,n.jsx)(o.A,{action:l.nQ,moduleData:l.Dq}),0===e.length?null:(0,n.jsxs)("table",{className:"ui striped table",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{children:t.translate("Name")}),(0,n.jsx)("th",{children:t.translate("File extensions")}),(0,n.jsx)("th",{children:t.translate("Default")})]})}),(0,n.jsx)("tbody",{children:e.map((e=>((e,t)=>(0,n.jsx)(y,{type:e,moduleT:t},e.id))(e,t)))})]}),(0,n.jsx)(_.A,{icon:m.A.NOTE,description:t.t("searchTypesNote","Note; Custom search types will only be applied to ADC hubs! On NMDC hubs, using a predefined search type will only search for a set of predefined, unconfigurable extensions; using a custom type will default to searching for any extension.")}),(0,n.jsx)(v,{moduleT:t})]})),{urls:{searchTypes:c.A.SEARCH_TYPES_URL},onSocketConnected:(e,{refetchData:t})=>{e(c.A.MODULE_URL,c.A.SEARCH_TYPES_UPDATED,(()=>t()))}})},19698:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(74848),s=(i(96540),i(20239));const o=["dont_download_shared","dont_download_queued","download_dupe_min_size"],a=["download_skiplist","download_skiplist_regex"],r=({moduleT:e})=>(0,n.jsxs)("div",{children:[(0,n.jsx)(s.A,{keys:o}),(0,n.jsx)(s.A,{title:e.translate("Skiplist"),keys:a})]})},6552:(e,t,i)=>{i.d(t,{A:()=>A});var n=i(74848),s=(i(96540),i(2141)),o=i(59250),a=i(13546),r=i(42049),l=i(32728),c=i(32389),d=i(4425);const A=(0,a.A)((({enginesStatus:e,moduleT:t})=>e[s.A.DEFAULT_ENGINE]?null:(0,n.jsx)(l.A,{description:(0,n.jsx)(c.x6,{i18nKey:t.toI18nKey("defaultExtensionEngineMissing"),defaults:"The default extension engine <strong>{{engineName}}</strong> is not installed on your system. Please visit <url>engine's home page</url> for installation instructions.",values:{engineName:s.A.DEFAULT_ENGINE},components:{url:(0,n.jsx)(r.A,{url:o.A.DEFAULT_ENGINE_URL})}}),icon:d.A.WARNING})),{urls:{enginesStatus:s.A.ENGINES_STATUS_URL},loaderText:null})},31880:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["extension_engines"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},83161:(e,t,i)=>{i.d(t,{A:()=>u});var n=i(74848),s=(i(96540),i(50929)),o=i(68514),a=i(6552),r=i(6162),l=i(2141),c=i(13546),d=(i(97771),i(88569));const A=(0,c.A)((({packageCatalog:e,moduleT:t,installedPackages:i})=>(0,n.jsxs)("div",{className:"extension-layout",children:[(0,n.jsx)("div",{className:"ui divider"}),e.length>0&&(0,n.jsx)("div",{className:"ui divided items",children:e.map((e=>((e,t,i)=>{const s=i.find((t=>t.name===e.name));return(0,n.jsx)(r.A,{npmPackage:e,installedPackage:s,moduleT:t},e.name)})(e.package,t,i)))})]})),{urls:{installedPackages:l.A.EXTENSIONS_URL,packageCatalog:()=>(0,d.H)(l.A.NPM_PACKAGES_URL,!0)},dataConverters:{packageCatalog:({objects:e})=>e},onSocketConnected:(e,{refetchData:t})=>{const i=()=>t(["installedPackages"]);e(l.A.MODULE_URL,l.A.ADDED,i),e(l.A.MODULE_URL,l.A.REMOVED,i),e(l.A.MODULE_URL,l.A.UPDATED,i)}});var m=i(90255);const u=({moduleT:e})=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.A,{moduleT:e}),(0,n.jsx)("div",{className:"table-actions",children:(0,n.jsx)(o.A,{action:s.Cs,moduleData:s.Dm,className:"add"})}),(0,n.jsx)(A,{moduleT:e}),(0,n.jsx)(m.A,{})]})},90255:(e,t,i)=>{i.d(t,{A:()=>p});var n=i(74848),s=i(96540),o=i(75662),a=i(94413),r=i(65385),l=i(13546),c=i(32811),d=i(2141),A=i(4425);const m=e=>`${d.A.EXTENSIONS_URL}/${e}/settings`;class u extends s.Component{constructor(){super(...arguments),this.save=()=>this.form.save(),this.onSave=e=>c.A.patch(m(this.props.extension.id),e)}render(){const e=this.props,{extension:t,settings:i,fieldDefinitions:s}=e,r=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}(e,["extension","settings","fieldDefinitions"]);return(0,n.jsx)(o.A,Object.assign({},r,{className:"extensions configure",title:t.name,onApprove:this.save,closable:!1,icon:A.A.EDIT,dynamicHeight:!0,children:(0,n.jsx)(a.A,{ref:e=>this.form=e,onSave:this.onSave,fieldDefinitions:s,sourceValue:i,location:this.props.location})}))}}u.displayName="ExtensionsConfigureDialog";const p=(0,r.A)((0,l.A)(u,{urls:{fieldDefinitions:({params:e})=>c.A.get(`${m(e.extensionId)}/definitions`),settings:({params:e})=>c.A.get(m(e.extensionId)),extension:({params:e},t)=>t.get(`${d.A.EXTENSIONS_URL}/${e.extensionId}`)}}),"extensions/:extensionId")},37155:(e,t,i)=>{i.d(t,{A:()=>g});var n=i(74848),s=(i(96540),i(13546)),o=i(2141),a=i(6552),r=i(90255),l=i(84976),c=i(32728),d=i(6162),A=i(88569);const m=({name:e,description:t,version:i,_npmUser:n})=>({id:e,name:e,description:t,version:i,publisher:{username:n.name},date:""}),u=(0,s.A)((({installedPackage:e,npmPackage:t,dataError:i,moduleT:s})=>(0,n.jsx)(d.A,{installedPackage:e,npmPackage:t?m(t):void 0,npmError:i,moduleT:s},e.name)),{urls:{npmPackage:({installedPackage:e})=>e.private||!e.managed?Promise.resolve(void 0):(0,A.H)(`${o.A.NPM_PACKAGE_URL}${e.name}/latest`,!0)},renderOnError:!0});var p=i(32389),h=i(4425);const g=(0,s.A)((({installedPackages:e,moduleT:t})=>{if(0===e.length){const e="No installed extensions were found. New extensions can be installed from the <url>Extension catalog</url> page.";return(0,n.jsx)(c.A,{description:(0,n.jsx)(p.x6,{i18nKey:t.toI18nKey("noInstalledExtensions"),defaults:e,components:{url:(0,n.jsx)(l.N_,{to:"/settings/extensions/packages"})}}),icon:h.A.INFO})}return(0,n.jsxs)("div",{className:"extension-layout",children:[(0,n.jsx)(a.A,{moduleT:t}),(0,n.jsx)("div",{className:"ui divider"}),(0,n.jsx)("div",{className:"ui divided items",children:e.map((e=>((e,t)=>(0,n.jsx)(u,{installedPackage:e,moduleT:t},e.name))(e,t)))}),(0,n.jsx)(r.A,{})]})}),{urls:{installedPackages:o.A.EXTENSIONS_URL},onSocketConnected:(e,{refetchData:t})=>{e(o.A.MODULE_URL,o.A.ADDED,(()=>t())),e(o.A.MODULE_URL,o.A.REMOVED,(()=>t())),e(o.A.MODULE_URL,o.A.UPDATED,(()=>t()))}})},50804:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["extensions_debug_mode","extensions_auto_update","extensions_init_timeout"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},6162:(e,t,i)=>{i.d(t,{A:()=>P});var n=i(74848),s=i(96540),o=i(95093),a=i.n(o),r=i(2141),l=i(30271),c=i(50929),d=i(68514),A=i(42049),m=i(71352),u=i(39115),p=i(4425),h=i(83994),g=i(32811),x=i(86038),C=i(67749),v=i(48844);const f=({itemData:e})=>e.managed,_=({itemData:e})=>e.running,y={id:"start",displayName:"Start",icon:p.A.PLAY,filter:e=>f(e)&&!_(e),access:x.US.ADMIN,handler:({itemData:e})=>g.A.post(`${r.A.EXTENSIONS_URL}/${e.name}/start`)},E={id:"stop",displayName:"Stop",icon:p.A.STOP,filter:e=>f(e)&&_(e),access:x.US.ADMIN,handler:({itemData:e})=>g.A.post(`${r.A.EXTENSIONS_URL}/${e.name}/stop`)},b={id:"configure",displayName:"Configure",icon:p.A.EDIT,filter:({itemData:e})=>e.has_settings,access:x.US.SETTINGS_EDIT,handler:({itemData:e,navigate:t})=>{t(`extensions/${e.id}`)}},j={id:"remove",displayName:"Uninstall",icon:p.A.REMOVE,filter:f,access:x.US.ADMIN,confirmation:{content:"Are you sure that you want to remove the extension {{item.name}}? This will also remove possible extension-specific settings.",approveCaption:"Remove extension",rejectCaption:"Don't remove"},handler:({itemData:e})=>g.A.delete(r.A.EXTENSIONS_URL+"/"+e.name)},I={start:y,stop:E,configure:b,divider:v.o,remove:j},T={moduleId:C.KV.EXTENSIONS},S={moduleData:T,actions:I},N=({npmPackage:e,installedPackage:t,hasUpdate:i,installing:s})=>t&&!i?null:(0,n.jsx)(d.A,{action:i?c.Cp:c.YB,moduleData:T,className:"right floated primary",itemData:e,loading:s}),D=({npmPackage:e,installedPackage:t,hasUpdate:i,installing:s,moduleT:o})=>(0,n.jsxs)("div",{className:"extra buttons",children:[e&&(0,n.jsx)(N,{npmPackage:e,installedPackage:t,hasUpdate:i,installing:s}),t&&(0,n.jsx)(m.Wy,{actions:S,ids:["configure","divider","remove"],remoteMenuId:u.Ay.EXTENSION,remoteMenuNestingThreshold:10,itemData:t,className:"right floated",caption:o.translate("Manage..."),button:!0,contextElement:"#setting-scroll-context",menuElementClassName:"left floated"}),e&&(0,n.jsxs)(A.A,{className:"ui right floated button",url:r.A.NPM_HOMEPAGE_URL+e.name,children:[(0,n.jsx)(h.A,{icon:p.A.EXTERNAL}),o.translate("Read more")]}),t&&(0,n.jsx)(d.A,{action:t.running?E:y,moduleData:T,className:"right floated",itemData:t})]});var w=i(46710),B=(i(97771),i(98147)),k=i(77856);const O=({title:e,packageInfo:t,className:i,moduleT:s})=>{if(!t)return null;const o=t.date?s.t("datePublished",{defaultValue:"{{version}} (published {{date}})",replace:{version:t.version,date:a()(t.date).from(a()())}}):t.version;return(0,n.jsxs)("div",{className:i,children:[`${e}: `,(0,n.jsx)("span",{children:o})]})},R=(e,t,i)=>{let n;return i&&i.author&&(n=i.author),t&&(n=t.publisher.username),n?e.t("byAuthor",{defaultValue:"by {{author}}",replace:{author:n}}):null},U=(e,t,i)=>t&&!t.managed?e.translate("Unmanaged extension"):i?e.t("extensionDirectoryFetchError",{defaultValue:"Failed to fetch information from the extension directory: {{error}}",replace:{error:(0,k.av)(i)}}):e.translate("Non-listed extension");class L extends s.PureComponent{constructor(){super(...arguments),this.state={installing:!1},this.onInstallationStarted=e=>{e.install_id===this.props.npmPackage.name&&this.setState({installing:!0})},this.onInstallationCompleted=e=>{e.install_id===this.props.npmPackage.name&&this.setState({installing:!1})}}componentDidMount(){const{addSocketListener:e,npmPackage:t}=this.props;t&&(e(r.A.MODULE_URL,r.A.INSTALLATION_STARTED,this.onInstallationStarted),e(r.A.MODULE_URL,r.A.INSTALLATION_SUCCEEDED,this.onInstallationCompleted),e(r.A.MODULE_URL,r.A.INSTALLATION_FAILED,this.onInstallationCompleted))}render(){const{npmPackage:e,installedPackage:t,npmError:i,moduleT:s}=this.props,{installing:o}=this.state,{translate:a}=s,r=!!t&&!!e&&(0,w.Zy)(t.version,e.version)<0;return(0,n.jsxs)("div",{className:"item extension",children:[(0,n.jsx)(l.A,{installedPackage:t,hasUpdate:r}),(0,n.jsxs)("div",{className:"content",children:[(0,n.jsx)("a",{className:"header",children:e?e.name:t.name}),(0,n.jsx)("div",{className:"meta author",children:R(s,e,t)}),(0,n.jsx)("div",{className:"description",children:(0,n.jsx)("span",{children:e?e.description:t.description})}),(0,n.jsxs)("div",{className:"extra version",children:[(0,n.jsx)(O,{className:"npm",title:a("Latest version"),packageInfo:e,moduleT:s}),(0,n.jsx)("div",{children:!e&&U(s,t,i)}),(0,n.jsx)(O,{className:e?r?"outdated":"latest":void 0,title:a("Installed version"),packageInfo:t,moduleT:s})]}),(0,n.jsx)(D,{installedPackage:t,npmPackage:e,installing:o,hasUpdate:r,moduleT:s})]})]})}}const P=(0,B.k)(L)},30271:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(74848),s=(i(96540),i(83994)),o=i(4425);const a=(e,t)=>e?t?"yellow warning circle":e.managed?"green check circle":"blue external square":null,r=({installedPackage:e,hasUpdate:t,size:i="huge"})=>(0,n.jsx)("div",{className:"ui image",children:(0,n.jsx)(s.A,{icon:o.A.EXTENSION,size:i,cornerIcon:a(e,t)})})},15175:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["away_message","away_no_bots","away_idle_time"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},33751:(e,t,i)=>{i.d(t,{A:()=>A});var n=i(74848),s=(i(96540),i(683)),o=i(13546),a=i(32728),r=i(71352),l=i(39115);const c=({ignoreInfo:e})=>(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{className:"user dropdown",children:(0,n.jsx)(r.Bg,{ids:["unignore"],userIcon:"simple",user:e.user,contextElement:"#setting-scroll-context",remoteMenuId:l.Ay.USER})}),(0,n.jsx)("td",{className:"count",children:e.ignored_messages})]}),d=e=>(0,n.jsx)(c,{ignoreInfo:e},e.user.cid),A=(0,o.A)((({ignores:e,moduleT:t})=>{const{translate:i}=t;return 0===e.length?(0,n.jsx)(a.A,{title:i("No ignored users")}):(0,n.jsx)("div",{children:(0,n.jsxs)("table",{className:"ui striped table",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{children:i("User")}),(0,n.jsx)("th",{children:i("Messages ignored")})]})}),(0,n.jsx)("tbody",{children:e.map(d)})]})})}),{urls:{ignores:s.A.IGNORES_URL},onSocketConnected:(e,{refetchData:t})=>{e(s.A.MODULE_URL,s.A.IGNORE_ADDED,(()=>t())),e(s.A.MODULE_URL,s.A.IGNORE_REMOVED,(()=>t()))}})},43353:(e,t,i)=>{i.d(t,{A:()=>I});var n=i(74848),s=(i(96540),i(20239)),o=i(41860),a=i(86038),r=i(67749),l=i(85072),c=i.n(l),d=i(97825),A=i.n(d),m=i(77659),u=i.n(m),p=i(55056),h=i.n(p),g=i(10540),x=i.n(g),C=i(41113),v=i.n(C),f=i(62868),_={};_.styleTagTransform=v(),_.setAttributes=h(),_.insert=u().bind(null,"head"),_.domAPI=A(),_.insertStyleElement=x(),c()(f.A,_),f.A&&f.A.locals&&f.A.locals;var y=i(32389),E=i(47456);const b=e=>(t,i,s)=>{"nmdc_encoding"===t&&(i.help=(0,n.jsx)(y.x6,{i18nKey:e.toI18nKey((0,E.nD)(r.oV.HELP,t,void 0)),children:(0,n.jsxs)("div",{children:["Encoding setting is only used in NMDC hubs. ADC hubs will always use UTF-8 encoding.",(0,n.jsx)("br",{}),(0,n.jsx)("br",{}),(0,n.jsxs)("div",{children:["Commonly used values:",(0,n.jsxs)("ul",{children:[(0,n.jsx)("li",{children:"Central Europe: cp1250"}),(0,n.jsx)("li",{children:"Cyrillic: cp1251"}),(0,n.jsx)("li",{children:"Western Europe: cp1252"}),(0,n.jsx)("li",{children:"Greek: cp1253"}),(0,n.jsx)("li",{children:"Turkish: cp1254"}),(0,n.jsx)("li",{children:"Hebrew: cp1256"})]})]})]})}))},j=["auto_follow_redirects","disconnect_offline_users","disconnect_hubs_noreg","min_search_interval"],I=({moduleT:e})=>(o.A.systemInfo.platform!==a.px.WINDOWS&&j.push("nmdc_encoding"),(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:j,onFieldSetting:b(e)})}))},37964:(e,t,i)=>{i.d(t,{A:()=>u});var n=i(74848),s=(i(96540),i(19718)),o=i(20239),a=i(67749),r=i(47456),l=i(42049),c=i(59250),d=i(32389);const A=["nick","description","email","setting_profile","language_file"],m=e=>(t,i,o)=>{if("setting_profile"===t){let n;const l=o[t];switch(l){case s.PV.NORMAL:n="The client is used in normal private/public hubs for transferring files via internet. Use this profile if unsure.";break;case s.PV.RAR:n="The client is used for transferring files that are split in RAR archives (or in other small-sized formats)";break;case s.PV.LAN:n="The client is used for transferring files in local network (e.g. LAN parties) or in another closed network (e.g. university network)"}n&&(i.help=e.t((0,r.nD)(a.oV.HELP,t,l.toString()),n))}else if("language_file"===t){const s="If you want to help with improving the existing translations or translate the application into a new language, please see the <url>instructions for translators</url>.";i.help=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{children:(0,n.jsx)(d.x6,{i18nKey:e.toI18nKey((0,r.nD)(a.oV.HELP,t,"Restart")),defaults:"The application must be restarted for the new language to take effect."})}),(0,n.jsx)("p",{children:(0,n.jsx)(d.x6,{i18nKey:e.toI18nKey((0,r.nD)(a.oV.HELP,t,"Translate")),defaults:s,components:{url:(0,n.jsx)(l.A,{url:c.A.TRANSLATOR_HELP})}})})]})}},u=({moduleT:e})=>(0,n.jsx)("div",{children:(0,n.jsx)(o.A,{keys:A,onFieldSetting:m(e)})})},6244:(e,t,i)=>{i.d(t,{A:()=>y});var n=i(74848),s=i(96540),o=i(32811),a=i(29112),r=i(91510),l=i(42191),c=i(68514),d=i(71352),A=i(13546),m=i(56010),u=i(4425),p=i(32728),h=i(59315),g=i(36076),x=i(67749),C=i(32389);const v=({path:e})=>(0,n.jsx)("tr",{children:(0,n.jsx)("td",{className:"path dropdown",children:(0,n.jsx)(d.Wy,{caption:(0,n.jsx)("strong",{children:e}),actions:r.nH,itemData:e,contextElement:"#setting-scroll-context"})})}),f=e=>(0,n.jsx)(v,{path:e},e);class _ extends s.Component{render(){const{excludes:e,moduleT:t}=this.props,{translate:i,toI18nKey:s}=t;return(0,n.jsxs)("div",{children:[(0,n.jsx)(p.A,{title:(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{children:(0,n.jsx)(C.x6,{i18nKey:s("shareRefreshNote"),children:"Share must be refreshed for the changes to take effect"})}),(0,n.jsx)("br",{}),(0,n.jsx)(c.A,{action:a.RS,moduleData:a.eP})]}),icon:u.A.INFO}),(0,n.jsx)(c.A,{action:r.Tw,moduleData:r.MB,className:"add"}),e.length>0&&(0,n.jsxs)("table",{className:"ui striped table",children:[(0,n.jsx)("thead",{children:(0,n.jsx)("tr",{children:(0,n.jsx)("th",{children:i("Path")})})}),(0,n.jsx)("tbody",{children:e.map(f)})]}),(0,n.jsx)(m.i,{onConfirm:e=>(0,g.bd)((()=>o.A.post(l.A.EXCLUDES_ADD_URL,{path:e})),t.plainT),initialPath:"",historyId:h.A.LOCATION_GENERIC,subHeader:i("Add excluded path"),selectMode:x.bV.DIRECTORY})]})}}_.displayName="ExcludePage";const y=(0,A.A)(_,{urls:{excludes:l.A.EXCLUDES_URL},onSocketConnected:(e,{refetchData:t})=>{e(l.A.MODULE_URL,l.A.EXCLUDE_ADDED,(()=>t())),e(l.A.MODULE_URL,l.A.EXCLUDE_REMOVED,(()=>t()))}})},79287:(e,t,i)=>{i.d(t,{A:()=>E});var n=i(74848),s=i(96540),o=i(20239),a=i(32811),r=i(13546),l=i(73616),c=i(96529),d=i(32728),A=i(71870),m=i(41860),u=i(98573),p=(i(97578),i(86038)),h=i(32389),g=i(36076),x=i(73070),C=i(4425);const v=({startHandler:e,running:t,moduleT:i})=>{const{toI18nKey:o,translate:a}=i,[r,A]=s.useState(!1);return(0,n.jsxs)("div",{className:"optimize-layout",children:[(0,n.jsx)("h4",{className:"header",style:{marginTop:"30px"},children:a("Maintenance")}),(0,n.jsx)(d.A,{description:(0,n.jsx)(h.x6,{i18nKey:o("hashDBOptimizeNote"),children:"This operation will delete all hash information for files that aren't currently in share. If you are sharing files from network disks or from a removable storage, make sure that the files are currently shown in share (otherwise they have to be rehashed)"}),icon:C.A.NOTE}),(0,n.jsx)(l.A,{caption:a("Verify integrity of hash data"),checked:r,disabled:t,onChange:A,floating:!0}),(0,n.jsx)(c.A,{className:"optimize-button",caption:a("Optimize now"),icon:C.A.CONFIGURE,loading:t,onClick:()=>e(r)})]})};class f extends s.Component{constructor(){super(...arguments),this.handleOptimize=e=>{(0,g.bd)((()=>a.A.post(A.A.OPTIMIZE_DATABASE_URL,{verify:e})),this.props.moduleT.plainT)}}render(){const{status:e,moduleT:t}=this.props,{translate:i,plainT:s}=t;return(0,n.jsxs)("div",{className:"ui segment hash-database",children:[(0,n.jsx)("h3",{className:"header",children:i("Hash database")}),(0,n.jsxs)(x.xA,{columns:"two",children:[(0,n.jsx)(x.fI,{title:i("File index size"),text:(0,u.Xq)(e.file_index_size,s),titleWidth:"five"}),(0,n.jsx)(x.fI,{title:i("Hash store size"),text:(0,u.Xq)(e.hash_store_size,s),titleWidth:"five"})]}),m.A.hasAccess(p.US.SETTINGS_EDIT)&&(0,n.jsx)(v,{running:e.maintenance_running,startHandler:this.handleOptimize,moduleT:t})]})}}const _=(0,r.A)(f,{urls:{status:A.A.DATABASE_STATUS_URL},onSocketConnected:(e,{refetchData:t})=>{e(A.A.MODULE_URL,A.A.DATABASE_STATUS,(()=>t()))}}),y=["max_hash_speed","max_total_hashers","max_volume_hashers"],E=({moduleT:e})=>(0,n.jsxs)("div",{children:[(0,n.jsx)(o.A,{keys:y}),(0,n.jsx)(_,{moduleT:e})]})},98915:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["refresh_time","refresh_time_incoming","refresh_startup","refresh_threading"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},2825:(e,t,i)=>{i.d(t,{A:()=>p});var n=i(74848),s=(i(96540),i(94899)),o=i(68514),a=i(71352),r=i(84976),l=i(32728),c=i(71299),d=i(98573),A=(i(97578),i(32389)),m=i(4425);const u=({profile:e,t})=>(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{className:"name dropdown",children:(0,n.jsx)(a.Wy,{caption:(0,n.jsx)("strong",{children:e.str}),actions:s.YS,itemData:e,contextElement:"#setting-scroll-context"})}),(0,n.jsx)("td",{className:"size",children:(0,d.Xq)(e.size,t)}),(0,n.jsx)("td",{className:"files",children:e.files})]}),p=(0,c.A)((({moduleT:e,profiles:t})=>{const{translate:i,toI18nKey:a}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)(l.A,{description:(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{children:(0,n.jsx)(A.x6,{i18nKey:a("shareProfilesPartialNote"),defaults:"Queued files are shared via the partial file sharing feature in all hubs where the share has not been hidden, regardless of the configured share profiles.",components:{url:(0,n.jsx)(r.N_,{to:"/share"})}})}),(0,n.jsx)("p",{children:(0,n.jsx)(A.x6,{i18nKey:a("shareProfilesHelp"),defaults:"Share profiles are assigned for individual directories from the <url>Share</url> page.",components:{url:(0,n.jsx)(r.N_,{to:"/share"})}})})]}),icon:m.A.INFO}),(0,n.jsx)(o.A,{action:s.tx,moduleData:s.Ds}),(0,n.jsxs)("table",{className:"ui striped table",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{children:i("Name")}),(0,n.jsx)("th",{children:i("Total size")}),(0,n.jsx)("th",{children:i("Total files")})]})}),(0,n.jsx)("tbody",{children:t.map((t=>(0,n.jsx)(u,{profile:t,t:e.plainT},t.id)))})]})]})}),!1,void 0,!1)},59676:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(74848),s=(i(96540),i(20239));const o=["share_hidden","share_no_empty_dirs","share_no_zero_byte","share_follow_symlinks","share_max_size"],a=["share_skiplist","share_skiplist_regex"],r=({moduleT:e})=>(0,n.jsxs)("div",{children:[(0,n.jsx)(s.A,{keys:o}),(0,n.jsx)(s.A,{title:e.translate("Skiplist"),keys:a})]})},2348:(e,t,i)=>{i.d(t,{A:()=>m});var n=i(74848),s=i(5556),o=i.n(s),a=i(96540),r=i(20239),l=i(32811),c=i(19718),d=i(86038);class A extends a.Component{constructor(){super(...arguments),this.getAutoKey=()=>`${this.props.type}_auto_limits`,this.onFieldChanged=(e,t,i)=>{const n=this.getAutoKey();return e===n&&t[n]?l.A.post(c.Ay.ITEMS_GET_URL,{keys:this.props.keys.filter((e=>e!==n)),value_mode:d.XG.FORCE_AUTO}):null},this.onFieldSetting=(e,t,i)=>{i[this.getAutoKey()]&&e!==this.getAutoKey()&&(t.disabled=!0)}}render(){const{keys:e}=this.props;return(0,n.jsx)("div",{className:"ui segment",children:(0,n.jsx)(r.A,{keys:e,onFieldChanged:this.onFieldChanged,onFieldSetting:this.onFieldSetting})})}}A.propTypes={keys:o().array.isRequired,type:o().string.isRequired};const m=A},45876:(e,t,i)=>{i.d(t,{A:()=>l});var n=i(74848),s=(i(96540),i(2348)),o=i(20239);const a=["download_auto_limits","download_slots","download_max_start_speed"],r=["download_highest_prio_slots"],l=({moduleT:e})=>{const{translate:t}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)(s.A,{keys:a,type:"download"}),(0,n.jsx)(o.A,{title:t("Manually set"),keys:r})]})}},64253:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["upload_limit_main","download_limit_main"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},47072:(e,t,i)=>{i.d(t,{A:()=>c});var n=i(74848),s=(i(96540),i(42049)),o=i(59250),a=i(20239),r=i(32389);const l=["download_speed","upload_speed"],c=({moduleT:e})=>{const{toI18nKey:t}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"ui message",children:(0,n.jsx)(r.x6,{i18nKey:t("connectionSpeedNote"),defaults:"Please be as accurate as possible and set the ACTUAL speed of your connection. You may use an online tester, such as <speedtest>{{name}}</speedtest>, to test your speed.",values:{name:"Speedtest.net"},components:{speedtest:(0,n.jsx)(s.A,{url:o.A.SPEEDTEST_URL})}})}),(0,n.jsx)(a.A,{keys:l})]})}},4313:(e,t,i)=>{i.d(t,{A:()=>l});var n=i(74848),s=(i(96540),i(20239)),o=i(2348);const a=["upload_auto_limits","upload_slots","upload_auto_grant_speed","upload_max_granted"],r=["upload_minislot_size","upload_minislot_ext"],l=({moduleT:e})=>{const{translate:t}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)(o.A,{keys:a,type:"upload"}),(0,n.jsx)(s.A,{title:t("Manually set"),keys:r})]})}},28903:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(2348));const o=["mcn_auto_limits","mcn_down","mcn_up"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o,type:"mcn"})})},81301:(e,t,i)=>{i.d(t,{A:()=>c});var n=i(74848),s=(i(96540),i(68514)),o=i(20239),a=i(18536);const r=["web_server_threads","default_idle_timeout","ping_interval","ping_timeout"],l=["share_file_validation_hook_timeout","share_directory_validation_hook_timeout","new_share_file_validation_hook_timeout","new_share_directory_validation_hook_timeout","outgoing_chat_message_hook_timeout","incoming_chat_message_hook_timeout","queue_add_bundle_hook_timeout","queue_add_bundle_file_hook_timeout","queue_add_source_hook_timeout","queue_bundle_finished_hook_timeout","queue_file_finished_hook_timeout","list_menuitems_hook_timeout"],c=e=>{const{translate:t}=e.moduleT;return(0,n.jsxs)("div",{children:[(0,n.jsx)(s.A,{action:a.Bs,moduleData:a.A_}),(0,n.jsx)(o.A,{keys:r}),(0,n.jsx)("div",{className:"ui header",children:t("Hook timeouts")}),(0,n.jsx)("div",{className:"ui segment",children:(0,n.jsx)(o.A,{keys:l})})]})}},69222:(e,t,i)=>{i.d(t,{A:()=>v});var n=i(74848),s=i(96540),o=i(20239),a=i(42049),r=i(59250),l=i(32728),c=i(4425),d=i(78340);i(50935);class A extends s.Component{constructor(){super(...arguments),this.state={enabled:!1},this.convertKey=e=>`log_${this.props.section}${e?`_${e}`:""}`,this.onSettingsReceived=e=>{this.setState({enabled:e[this.convertKey()]})},this.onEnableStateChanged=(e,t,i)=>{this.setState({enabled:t[e]})},this.onContentSetting=(e,t,i)=>{t.disabled=!this.state.enabled},this.getChildClass=e=>this.state.enabled?e+" active":e}render(){const e=[this.convertKey()],t=[this.convertKey("file"),this.convertKey("format")],{simple:i}=this.props;return(0,n.jsxs)("div",{className:this.getChildClass("log-section"),children:[(0,n.jsx)("div",{className:this.getChildClass("title"),children:(0,n.jsx)(o.A,{keys:e,onFieldChanged:this.onEnableStateChanged,onSettingValuesReceived:this.onSettingsReceived})}),!i&&(0,n.jsx)("div",{className:this.getChildClass("content"),children:(0,n.jsx)(o.A,{keys:t,onFieldSetting:this.onContentSetting})})]})}}const m=A;const u=e=>{const{title:t,sectionKeys:i,simpleKeys:o}=e,a=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}(e,["title","sectionKeys","simpleKeys"]);return(0,n.jsx)("div",{children:(0,n.jsxs)("div",{className:"sections",children:[(0,n.jsx)("div",{className:"ui header",children:t}),(0,n.jsx)(d.Ay,{className:"styled",controlled:!0,children:i.map((e=>(0,s.createElement)(m,Object.assign({},a,{key:e,section:e,simple:!!o&&o.includes(e)}))))})]})})};var p=i(32389);const h=["log_directory"],g=["main","pm","syslog","status"],x=["downloads","uploads","list_transfers"],C=["list_transfers"],v=({moduleT:e})=>{const{translate:t,toI18nKey:i}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)(o.A,{keys:h}),(0,n.jsxs)("div",{className:"sections",children:[(0,n.jsx)(l.A,{icon:c.A.INFO,description:(0,n.jsx)(a.A,{url:r.A.VARIABLE_HELP_URL,children:(0,n.jsx)(p.x6,{i18nKey:i("variableHelp"),children:"Variable information for Filename and Format fields"})})}),(0,n.jsx)(u,{sectionKeys:g,title:t("Messages")}),(0,n.jsx)(u,{sectionKeys:x,title:t("Transfers"),simpleKeys:C})]})]})}},87135:(e,t,i)=>{i.d(t,{A:()=>A});var n=i(74848),s=(i(96540),i(20239)),o=i(68514),a=i(32728),r=i(72384),l=i(4425);const c=["web_plain_port","web_plain_bind_address"],d=["web_tls_port","web_tls_bind_address","web_tls_certificate_path","web_tls_certificate_key_path"],A=e=>{const{t}=e.moduleT;return(0,n.jsxs)("div",{children:[(0,n.jsx)(o.A,{action:r.Bs,moduleData:r.A_}),(0,n.jsx)("div",{className:"ui header",children:"HTTP"}),(0,n.jsx)("div",{className:"ui segment",children:(0,n.jsx)(s.A,Object.assign({},e,{keys:c}))}),(0,n.jsx)("div",{className:"ui header",children:"HTTPS"}),(0,n.jsxs)("div",{className:"ui segment",children:[(0,n.jsx)(s.A,Object.assign({},e,{keys:d})),(0,n.jsx)(a.A,{description:t("defaultCertNote","The default client certificate is used if the certificate paths are empty"),icon:l.A.INFO})]})]})}},85345:(e,t,i)=>{i.d(t,{A:()=>D});var n=i(74848),s=i(96540),o=i(76865),a=i(52786),r=i(68514),l=i(75662),c=i(65385),d=i(97744),A=i(51766),m=i(73616),u=i(32728),p=i(86038),h=i(47456);var g,x=i(32811),C=i(94413),v=i(41860),f=(i(50935),i(13546)),_=i(42695),y=i(4425);!function(e){e.EDIT="Edit",e.VIEW="View",e.SEND_MESSAGES="Send messages"}(g||(g={}));const E={ADMIN:"Administrator",SEARCH:"Search",DOWNLOAD:"Download",TRANSFERS:"Transfers",EVENTS_VIEW:{title:"Events",action:g.VIEW},EVENTS_EDIT:{title:"Events",action:g.EDIT},QUEUE_VIEW:{title:"Queue",action:g.VIEW},QUEUE_EDIT:{title:"Queue",action:g.EDIT},FAVORITE_HUBS_VIEW:{title:"Favorite hubs",action:g.VIEW},FAVORITE_HUBS_EDIT:{title:"Favorite hubs",action:g.EDIT},SETTINGS_VIEW:{title:"Settings",action:g.VIEW},SETTINGS_EDIT:{title:"Settings",action:g.EDIT},FILESYSTEM_VIEW:{title:"Local filesystem",action:g.VIEW},FILESYSTEM_EDIT:{title:"Local filesystem",action:g.EDIT},HUBS_VIEW:{title:"Hubs",action:g.VIEW},HUBS_EDIT:{title:"Hubs",action:g.EDIT},HUBS_SEND:{title:"Hubs",action:g.SEND_MESSAGES},PRIVATE_CHAT_VIEW:{title:"Private chat",action:g.VIEW},PRIVATE_CHAT_EDIT:{title:"Private chat",action:g.EDIT},PRIVATE_CHAT_SEND:{title:"Private chat",action:g.SEND_MESSAGES},FILELISTS_VIEW:{title:"Filelists",action:g.VIEW},FILELISTS_EDIT:{title:"Filelists",action:g.EDIT},VIEW_FILE_VIEW:{title:"Viewed files",action:g.VIEW},VIEW_FILE_EDIT:{title:"Viewed files",action:g.EDIT}};class b extends s.Component{constructor(e){var t;super(e),this.isNew=()=>!this.props.user,this.save=()=>this.form.save(),this.onSave=e=>this.isNew()?x.A.post(o.A.USERS_URL,e):x.A.patch(`${o.A.USERS_URL}/${this.props.user.id}`,e),this.onFieldSetting=(e,t,i)=>{if("permissions"===e){const{user:e,moduleT:i}=this.props;t.factory=A.Ay.form.Select,t.template=(e=>A.Ay.form.Form.templates.select.clone({renderSelect:t=>{const i=t.options.filter((({value:e})=>!t.value.includes(p.US.ADMIN)||e===p.US.ADMIN)).map((({value:e,text:i})=>(0,n.jsx)(m.A,{className:e,checked:t.value.includes(e),onChange:i=>((e,i)=>{t.onChange((0,h.z_)(t.value,e,i))})(e,i),caption:i},e)));return(0,n.jsxs)("div",{className:"permission-select",children:[(0,n.jsx)(u.A,{description:e.t("adminPermissionNote","Administrator permission is required in order to access the System section in settings"),className:"small"}),i]})}}))(i),t.disabled=!this.isNew()&&e.username===v.A.user.username}else"password"===e?t.type="password":"username"===e&&(t.disabled=!this.isNew())},this.entry=(0,h.Nn)((t=this.isNew(),[{key:"username",title:"User name",type:p.OP.STRING},{key:"password",type:p.OP.STRING,title:t?"Password":"New password",optional:!t},{key:"permissions",title:"Permissions",type:p.OP.LIST,item_type:p.OP.STRING}]),e.moduleT);const i=(0,_.Ze)(e.moduleT,"permissionSelector"),s=this.entry.find((e=>"permissions"===e.key));Object.assign(s,{options:Object.keys(d.A).reduce(((e,t)=>((e,t,i)=>{const n=E[t];return"string"==typeof n?e.push({id:d.A[t],name:i.translate(n)}):e.push({id:d.A[t],name:`${i.translate(n.title)} (${i.translate(n.action)})`}),e})(e,t,i)),[])})}render(){const e=this.props,{user:t,moduleT:i}=e,s=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(e);s<n.length;s++)t.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(e,n[s])&&(i[n[s]]=e[n[s]])}return i}(e,["user","moduleT"]),o=i.translate(this.isNew()?"Add web user":"Edit user");return(0,n.jsx)(l.A,Object.assign({className:"web-user",title:o,onApprove:this.save,closable:!1,icon:y.A.USER},s,{children:(0,n.jsx)(C.A,{ref:e=>this.form=e,fieldDefinitions:this.entry,onFieldSetting:this.onFieldSetting,onSave:this.onSave,sourceValue:t,location:this.props.location})}))}}b.displayName="WebUserDialog";const j=(0,c.A)((0,f.A)(b,{urls:{user:({params:e},t)=>e.userId?t.get(`${o.A.USERS_URL}/${e.userId}`):Promise.resolve(void 0)}}),"users/:userId?");var I=i(71352),T=i(98573);const S=({user:e,moduleT:t})=>(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{className:"name dropdown",children:(0,n.jsx)(I.Wy,{caption:(0,n.jsx)("strong",{children:e.username}),actions:a.F5,itemData:e,contextElement:"#setting-scroll-context"})}),(0,n.jsx)("td",{className:"permissions",children:e.permissions.includes(p.US.ADMIN)?t.translate("Administrator"):e.permissions.length}),(0,n.jsx)("td",{className:"sessions",children:e.active_sessions}),(0,n.jsx)("td",{className:"last-login",children:(0,T.fw)(e.last_login)})]});class N extends s.Component{render(){const{users:e,moduleT:t}=this.props,{translate:i}=t;return(0,n.jsxs)("div",{children:[(0,n.jsx)(r.A,{action:a.u2,moduleData:a.O6}),(0,n.jsxs)("table",{className:"ui striped table",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{children:i("Username")}),(0,n.jsx)("th",{children:i("Permissions")}),(0,n.jsx)("th",{children:i("Active sessions")}),(0,n.jsx)("th",{children:i("Last logged in")})]})}),(0,n.jsx)("tbody",{children:e.map((e=>(0,n.jsx)(S,{user:e,moduleT:t},e.username)))})]}),(0,n.jsx)(j,{moduleT:t})]})}}N.displayName="WebUsersPage";const D=(0,f.A)(N,{urls:{users:o.A.USERS_URL},onSocketConnected:(e,{refetchData:t})=>{e(o.A.MODULE_URL,o.A.ADDED,(()=>t())),e(o.A.MODULE_URL,o.A.UPDATED,(()=>t())),e(o.A.MODULE_URL,o.A.REMOVED,(()=>t()))}})},81879:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["use_main_chat_notify","show_joins","format_release_names"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},26295:(e,t,i)=>{i.d(t,{A:()=>a});var n=i(74848),s=(i(96540),i(20239));const o=["report_uploads","report_downloads","report_search_alternates","report_added_sources","report_blocked_share","report_hashed_files","report_scheduled_refreshes","report_filelist_dupes"],a=()=>(0,n.jsx)("div",{children:(0,n.jsx)(s.A,{keys:o})})},92151:(e,t,i)=>{i.d(t,{A:()=>l});var n=i(74848),s=(i(96540),i(20239));const o=["history_search_max","history_download_max","history_chat_log_lines"],a=["history_hub_messages","history_pm_messages","history_log_messages"],r=["history_hub_sessions","history_pm_sessions","history_filelist_sessions"],l=({moduleT:e})=>{const{t}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)(s.A,{keys:o}),(0,n.jsx)(s.A,{title:t("maxMessageHistory","Maximum number of messages to cache"),keys:a}),(0,n.jsx)(s.A,{title:t("maxSessionHistory","Maximum number of previously opened sessions"),keys:r})]})}},36255:(e,t,i)=>{i.d(t,{A:()=>r});var n=i(74848),s=(i(96540),i(19718)),o=i(56022);const a=[s.xC.UNREAD_LABEL_DELAY,s.xC.BACKGROUND_IMAGE_URL,s.xC.NO_INSTALL_PROMPT],r=({moduleT:e})=>(0,n.jsx)("div",{children:(0,n.jsx)(o.A,{moduleT:e,keys:a})})},49123:(e,t,i)=>{i.d(t,{A:()=>_});var n=i(74848),s=(i(96540),i(19718)),o=i(56022),a=i(85072),r=i.n(a),l=i(97825),c=i.n(l),d=i(77659),A=i.n(d),m=i(55056),u=i.n(m),p=i(10540),h=i.n(p),g=i(41113),x=i.n(g),C=i(49696),v={};v.styleTagTransform=x(),v.setAttributes=u(),v.insert=A().bind(null,"head"),v.domAPI=c(),v.insertStyleElement=h(),r()(C.A,v),C.A&&C.A.locals&&C.A.locals;const f=[s.xC.NOTIFY_MENTION,s.xC.NOTIFY_PM_USER,s.xC.NOTIFY_PM_BOT,s.xC.NOTIFY_HUB_MESSAGE,s.xC.NOTIFY_BUNDLE_STATUS,s.xC.NOTIFY_EVENTS_INFO,s.xC.NOTIFY_EVENTS_WARNING,s.xC.NOTIFY_EVENTS_ERROR],_=({moduleT:e})=>{const{translate:t}=e;return(0,n.jsx)("div",{children:(0,n.jsx)(o.A,{title:t("Popup notifications"),moduleT:e,keys:f})})}},88569:(e,t,i)=>{i.d(t,{H:()=>r,U:()=>a});var n=i(41860),s=i(41110),o=function(e,t,i,n){return new(i||(i=Promise))((function(s,o){function a(e){try{l(n.next(e))}catch(e){o(e)}}function r(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,r)}l((n=n.apply(e,t||[])).next())}))};const a=e=>o(void 0,void 0,void 0,(function*(){try{return(yield(0,s.F)(`${getBasePath()}temp`,{method:"POST",headers:{"X-Authorization":n.A.authToken,Authorization:n.A.authToken},body:e})).headers.get("Location")}catch(e){throw e}})),r=(e,t,i)=>o(void 0,void 0,void 0,(function*(){try{const o=yield(0,s.F)((e=>`${window.location.origin}${getBasePath()}proxy?url=${encodeURIComponent(e)}`)(e),Object.assign({headers:{"X-Authorization":n.A.authToken,"Cache-Control":"no-store, must-revalidate, max-age=0"}},i));return(yield t)?o.json():o.text()}catch(t){throw console.error(`CORS HTTP request failed (${e})`,t),t}}))}}]);
|
|
2
|
+
//# sourceMappingURL=settings.a509b3c48b03452b6783.chunk.js.map
|
|
Binary file
|