"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29575],{2585:function(n,e,t){t.d(e,{A:function(){return c}});var r=t(62540),i=t(12029),o=t(92779),l=t(69856),a=(t(63696),t(90158)),s=function(){return s=Object.assign||function(n){for(var e,t=1,r=arguments.length;t0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1] :first-child /* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */":{marginTop:0,paddingTop:0},"> :last-child":{marginBottom:0,paddingBottom:0}},children:e?void 0:t})},en=t(98320),tn=function(n){var e,t=n.pluginDetails,i=n.onInstall;return null===(e=null==t?void 0:t.versions)||void 0===e?void 0:e.map((function(n){var e;return(0,r.jsxs)($.A,{children:[(0,r.jsxs)(z.A,{expandIcon:(0,r.jsx)(_.A,{}),children:[n.version,n.timestamp&&(0,r.jsxs)(r.Fragment,{children:[" — ",(0,en.YU)(n.timestamp)]})]}),(0,r.jsx)(W.A,{children:(0,r.jsxs)(f.A,{spacing:2,children:[(0,r.jsx)(nn,{fallback:G.Ay.translate("LabelNoChangelog"),markdown:n.changelog}),t.status&&n.version===(null===(e=t.version)||void 0===e?void 0:e.version)?(0,r.jsx)(l.A,{disabled:!0,startIcon:(0,r.jsx)(V.A,{}),variant:"outlined",children:G.Ay.translate("LabelInstalled")}):(0,r.jsx)(l.A,{startIcon:(0,r.jsx)(y.A,{}),variant:"outlined",onClick:i(n),children:G.Ay.translate("HeaderInstall")})]})})]},n.checksum)}))},rn=t(57807),on=t(2585),ln=t(65242),an=t(89100),sn=function(n,e){var t="function"==typeof Symbol&&n[Symbol.iterator];if(!t)return n;var r,i,o=t.call(n),l=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)l.push(r.value)}catch(n){i={error:n}}finally{try{r&&!r.done&&(t=o.return)&&t.call(o)}finally{if(i)throw i.error}}return l},un=function(){var n,e,t=(0,S.gf)().api,U=(0,x.g)().pluginId,K=sn((0,j.ok)(),1)[0],R=function(){var n=(0,S.gf)().api;return(0,k.n)({mutationFn:function(e){return(0,O.p)(n).disablePlugin(e)},onSuccess:function(){I.q.invalidateQueries({queryKey:[C.k.Plugins]})}})}(),D=function(){var n=(0,S.gf)().api;return(0,k.n)({mutationFn:function(e){return(0,O.p)(n).enablePlugin(e)},onSuccess:function(){I.q.invalidateQueries({queryKey:[C.k.Plugins]})}})}(),N=function(){var n=(0,S.gf)().api;return(0,k.n)({mutationFn:function(e){return(0,E.N)(n).installPackage(e)},onSuccess:function(){I.q.invalidateQueries({queryKey:[C.k.ConfigurationPages]}),I.q.invalidateQueries({queryKey:[C.k.Plugins]})}})}(),T=function(){var n=(0,S.gf)().api;return(0,k.n)({mutationFn:function(e){return(0,O.p)(n).uninstallPluginByVersion(e)},onSuccess:function(){I.q.invalidateQueries({queryKey:[C.k.Plugins]}),I.q.invalidateQueries({queryKey:[C.k.ConfigurationPages]})}})}(),F=sn((0,m.useState)(),2),M=F[0],H=F[1],V=sn((0,m.useState)(!1),2),_=V[0],$=V[1],W=sn((0,m.useState)(!1),2),z=W[0],Y=W[1],J=sn((0,m.useState)(!1),2),X=J[0],Z=J[1],nn=sn((0,m.useState)(),2),en=nn[0],un=nn[1],cn=null!==(n=K.get("name"))&&void 0!==n?n:void 0,dn=(0,w.q)(),fn=dn.data,vn=dn.isError,gn=dn.isPending,pn=function(n){var e=(0,S.gf)().api;return(0,q.I)(L(e,n))}(cn?{name:cn,assemblyGuid:U}:void 0),yn=pn.data,hn=pn.isError,bn=pn.isPending,mn=(0,B.q)(),xn=mn.data,jn=mn.isError,An=mn.isPending,Pn=gn||bn||An,wn=(0,m.useMemo)((function(){var n,e,r;if(U&&!An){var o=(0,P.R)(U,xn),l=void 0;l=o?(null===(n=null==yn?void 0:yn.versions)||void 0===n?void 0:n.find((function(n){return n.version===o.Version})))||{version:o.Version,VersionNumber:o.Version}:null===(e=null==yn?void 0:yn.versions)||void 0===e?void 0:e[0];var a=void 0;return(null==o?void 0:o.HasImage)&&(a=null==t?void 0:t.getUri("/Plugins/".concat(o.Id,"/").concat(o.Version,"/Image"))),{canUninstall:!!(null==o?void 0:o.CanUninstall),description:(null==o?void 0:o.Description)||(null==yn?void 0:yn.description)||(null==yn?void 0:yn.overview),id:U,imageUrl:a||(null==yn?void 0:yn.imageUrl)||void 0,isEnabled:null!==(r=M&&(null==o?void 0:o.Status)===i.u.Restart)&&void 0!==r?r:(null==o?void 0:o.Status)!==i.u.Disabled,name:cn||(null==o?void 0:o.Name)||(null==yn?void 0:yn.name),owner:!1===(null==o?void 0:o.CanUninstall)?"jellyfin":null==yn?void 0:yn.owner,status:null==o?void 0:o.Status,configurationPage:(0,A.$)(fn||[],U),version:l,versions:(null==yn?void 0:yn.versions)||[]}}}),[t,fn,M,An,null==yn?void 0:yn.description,null==yn?void 0:yn.imageUrl,null==yn?void 0:yn.name,null==yn?void 0:yn.overview,null==yn?void 0:yn.owner,null==yn?void 0:yn.versions,U,cn,xn]),On=(0,m.useMemo)((function(){var n=[];return R.isError&&n.push({messageKey:"PluginDisableError"}),D.isError&&n.push({messageKey:"PluginEnableError"}),N.isSuccess&&n.push({severity:"success",messageKey:"MessagePluginInstalled"}),N.isError&&n.push({messageKey:"MessagePluginInstallError"}),T.isError&&n.push({messageKey:"PluginUninstallError"}),vn&&n.push({messageKey:"PluginLoadConfigError"}),!An&&(null==wn?void 0:wn.canUninstall)&&hn&&n.push({severity:"warning",messageKey:"PluginLoadRepoError"}),jn&&n.push({messageKey:"MessageGetInstalledPluginsError"}),n}),[R.isError,D.isError,N.isError,N.isSuccess,vn,hn,jn,An,null==wn?void 0:wn.canUninstall,T.isError]),kn=(0,m.useCallback)((function(){var n;(null===(n=null==wn?void 0:wn.version)||void 0===n?void 0:n.version)&&(console.debug("[PluginPage] %s plugin",wn.isEnabled?"disabling":"enabling",wn),wn.isEnabled?R.mutate({pluginId:wn.id,version:wn.version.version},{onSuccess:function(){H(!1)},onSettled:function(){N.reset(),D.reset(),T.reset()}}):D.mutate({pluginId:wn.id,version:wn.version.version},{onSuccess:function(){H(!0)},onSettled:function(){N.reset(),R.reset(),T.reset()}}))}),[R,D,N,wn,T]),Sn=(0,m.useCallback)((function(n,e){return void 0===e&&(e=!1),function(){var t;if(null==wn?void 0:wn.name){var r=n||wn.version;if(r){if(!e&&!(null===(t=r.repositoryUrl)||void 0===t?void 0:t.startsWith("https://repo.jellyfin.org/")))return console.debug("[PluginPage] plugin install needs confirmed",r),un(r),void $(!0);console.debug("[PluginPage] installing plugin",r),Y(!0),N.mutate({name:wn.name,assemblyGuid:wn.id,version:r.version,repositoryUrl:r.repositoryUrl},{onSettled:function(){Y(!1),un(void 0),R.reset(),D.reset(),T.reset()}})}}}}),[R,D,N,wn,T]),In=(0,m.useCallback)((function(){console.debug("[PluginPage] confirmed installing plugin",en),$(!1),Sn(en,!0)()}),[Sn,en]),Cn=(0,m.useCallback)((function(){un(void 0),$(!1)}),[]),En=(0,m.useCallback)((function(){Z(!0)}),[]),Un=(0,m.useCallback)((function(){var n;(null===(n=null==wn?void 0:wn.version)||void 0===n?void 0:n.version)&&(console.debug("[PluginPage] uninstalling plugin",wn),Z(!1),T.mutate({pluginId:wn.id,version:wn.version.version},{onSettled:function(){R.reset(),D.reset(),N.reset()}}))}),[R,D,N,wn,T]),qn=(0,m.useCallback)((function(){Z(!1)}),[]);return(0,r.jsxs)(ln.A,{id:"addPluginPage",title:(null==wn?void 0:wn.name)||cn,className:"mainAnimatedPage type-interior",children:[(0,r.jsxs)(a.A,{className:"content-primary",children:[On.map((function(n){var e=n.severity,t=void 0===e?"error":e,i=n.messageKey;return(0,r.jsx)(o.A,{severity:t,sx:{marginBottom:2},children:G.Ay.translate(i)},i)})),(0,r.jsxs)(c.Ay,{container:!0,spacing:2,sx:{marginTop:0},children:[(0,r.jsx)(c.Ay,{item:!0,xs:12,lg:8,children:(0,r.jsxs)(f.A,{spacing:2,children:[(0,r.jsx)(g.A,{variant:"h1",children:(null==wn?void 0:wn.name)||cn}),(0,r.jsx)(g.A,{sx:{maxWidth:"80ch"},children:Pn&&!(null==wn?void 0:wn.description)?(0,r.jsx)(d.A,{}):null==wn?void 0:wn.description})]})}),(0,r.jsx)(c.Ay,{item:!0,lg:4,sx:{display:{xs:"none",lg:"initial"}},children:(0,r.jsx)(on.A,{isLoading:Pn,alt:null==wn?void 0:wn.name,url:null==wn?void 0:wn.imageUrl,FallbackIcon:h.A})}),(0,r.jsx)(c.Ay,{item:!0,xs:12,lg:8,sx:{order:{xs:1,lg:"initial"}},children:!!(null==wn?void 0:wn.versions.length)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.A,{variant:"h3",sx:{marginBottom:2},children:G.Ay.translate("HeaderRevisionHistory")}),(0,r.jsx)(tn,{pluginDetails:wn,onInstall:Sn})]})}),(0,r.jsx)(c.Ay,{item:!0,xs:12,lg:4,children:(0,r.jsxs)(f.A,{spacing:2,direction:{xs:"column",sm:"row-reverse",lg:"column"},children:[(0,r.jsxs)(f.A,{spacing:1,sx:{flexBasis:"50%"},children:[!Pn&&!(null==wn?void 0:wn.status)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.A,{severity:"info",children:G.Ay.translate("ServerRestartNeededAfterPluginInstall")}),(0,r.jsx)(l.A,{startIcon:(0,r.jsx)(y.A,{}),onClick:Sn(),loading:z,children:G.Ay.translate("HeaderInstall")})]}),!Pn&&(null==wn?void 0:wn.canUninstall)&&(0,r.jsx)(u.A,{children:(0,r.jsx)(s.A,{control:(0,r.jsx)(v.A,{checked:wn.isEnabled,onChange:kn,disabled:wn.status===i.u.Restart}),label:G.Ay.translate("LabelEnablePlugin")})}),!Pn&&(null===(e=null==wn?void 0:wn.configurationPage)||void 0===e?void 0:e.Name)&&(0,r.jsx)(l.A,{component:j.N_,to:"/".concat((0,an.getPluginUrl)(wn.configurationPage.Name)),startIcon:(0,r.jsx)(b.A,{}),children:G.Ay.translate("Settings")}),!Pn&&(null==wn?void 0:wn.canUninstall)&&(0,r.jsx)(l.A,{color:"error",startIcon:(0,r.jsx)(p.A,{}),onClick:En,children:G.Ay.translate("ButtonUninstall")})]}),(0,r.jsx)(Q,{isPluginLoading:An,isRepositoryLoading:bn,pluginDetails:wn,sx:{flexBasis:"50%"}})]})})]})]}),(0,r.jsx)(rn.A,{open:_,title:G.Ay.translate("HeaderConfirmPluginInstallation"),text:G.Ay.translate("MessagePluginInstallDisclaimer"),onCancel:Cn,onConfirm:In,confirmButtonText:G.Ay.translate("HeaderInstall")}),(0,r.jsx)(rn.A,{open:X,title:G.Ay.translate("HeaderUninstallPlugin"),text:G.Ay.translate("UninstallPluginConfirmation",cn||""),onCancel:qn,onConfirm:Un,confirmButtonColor:"error",confirmButtonText:G.Ay.translate("ButtonUninstall")})]})}},32857:function(n,e,t){t.d(e,{R:function(){return i}});var r=t(31110),i=function(n,e){if(e){var t=e.filter((function(e){return e.Id===n})),i=null==t?void 0:t[0];return t.length>1&&(t.find((function(n){return n.Status===r.u.Disabled}))||t.find((function(n){return n.Status===r.u.Restart})))||i}}},38596:function(n,e,t){t.d(e,{n:function(){return v}}),t(29305),t(32733),t(84701),t(81678),t(14382),t(69892),t(44962),t(89336),t(4754),t(94),t(33087),t(36947),t(36457),t(88908),t(83810),t(78557),t(95021),t(73687),t(83994),t(23630),t(82367);var r=t(63696),i=t(427),o=t(52672),l=t(26073),a=t(9790);function s(n){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},s(n)}function u(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function c(n){for(var e=1;en.length)&&(e=n.length);for(var t=0,r=Array(e);t0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]