homebridge-config-ui-x 5.12.1-beta.6 → 5.12.1-beta.8
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/package.json +8 -3
- package/public/{chunk-WTYHWUIV.js → chunk-2AOJ6IEA.js} +1 -1
- package/public/{chunk-Z35VSD7C.js → chunk-3NFIJAVV.js} +1 -1
- package/public/chunk-5HBMNH3H.js +1 -0
- package/public/{chunk-NX25VUHB.js → chunk-5QV4AFTV.js} +1 -1
- package/public/{chunk-MZA3FXYW.js → chunk-5RVYAZX5.js} +1 -1
- package/public/{chunk-O4RPRD43.js → chunk-5ZOCCWK4.js} +1 -1
- package/public/chunk-7CUUFGVO.js +4 -0
- package/public/{chunk-22Z225AS.js → chunk-AE4N4VVU.js} +1 -1
- package/public/{chunk-FLS573AD.js → chunk-AHP7QTOZ.js} +1 -1
- package/public/{chunk-LK5Y5NQ2.js → chunk-AJOSXNZD.js} +1 -1
- package/public/{chunk-VKVESOYG.js → chunk-BXHRVU6R.js} +1 -1
- package/public/{chunk-4IJDU5W2.js → chunk-EGU3464G.js} +1 -1
- package/public/{chunk-DO2QQ27Z.js → chunk-FTKW2K5C.js} +1 -1
- package/public/{chunk-WTZQODSR.js → chunk-GCBDS3GC.js} +1 -1
- package/public/{chunk-GET4TOQ7.js → chunk-HU77Q72N.js} +1 -1
- package/public/{chunk-2HD3TOVY.js → chunk-I5UU2IJZ.js} +6 -6
- package/public/{chunk-BAWF37TF.js → chunk-IFDM5E2G.js} +1 -1
- package/public/{chunk-J33KCONB.js → chunk-ILSKYQPT.js} +1 -1
- package/public/chunk-L2CC3C2O.js +1 -0
- package/public/{chunk-T43ZT3B7.js → chunk-L6HJRDN2.js} +1 -1
- package/public/{chunk-TLUSFONS.js → chunk-M4HMWZLV.js} +1 -1
- package/public/{chunk-X4YYP2LR.js → chunk-MWE467IB.js} +1 -1
- package/public/{chunk-AWY7TUU4.js → chunk-MZ3VFGHZ.js} +1 -1
- package/public/{chunk-3TYXDC2O.js → chunk-NUELHUTK.js} +1 -1
- package/public/{chunk-MIRW6W7S.js → chunk-NVT3NZOF.js} +1 -1
- package/public/chunk-OJHJQUWN.js +19 -0
- package/public/{chunk-DH5YBYHN.js → chunk-PQTJEZPB.js} +28 -28
- package/public/{chunk-OCNA6V4W.js → chunk-QIA4NWRZ.js} +1 -1
- package/public/{chunk-QWCGYWQP.js → chunk-QJZKXCTT.js} +1 -1
- package/public/{chunk-LMM3BN25.js → chunk-RZDYLE7I.js} +1 -1
- package/public/{chunk-SAZ3DI6M.js → chunk-TGO22LD4.js} +1 -1
- package/public/{chunk-WFW4V5CB.js → chunk-TILWVCNC.js} +1 -1
- package/public/chunk-TQLAUKPX.js +1 -0
- package/public/{chunk-U5APV4HQ.js → chunk-U3WYF2L2.js} +1 -1
- package/public/{chunk-3TO3C4MF.js → chunk-VLOR45KQ.js} +1 -1
- package/public/{chunk-SDK5Z2TS.js → chunk-XDDHMABU.js} +1 -1
- package/public/{chunk-VG77PUXT.js → chunk-XGDK3N5D.js} +1 -1
- package/public/{chunk-N5Z4CTHV.js → chunk-XKDAPCBY.js} +1 -1
- package/public/{chunk-Q7FTVGEO.js → chunk-XXVKRPGV.js} +1 -1
- package/public/{chunk-2U3YDOKK.js → chunk-Y2KMEFIC.js} +1 -1
- package/public/{chunk-PCRT3CPH.js → chunk-YKKWB4CO.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-JPI6JIAY.js → main-YHQ3GPK2.js} +1 -1
- package/public/chunk-35FSDYCY.js +0 -1
- package/public/chunk-JV4CFTMO.js +0 -4
- package/public/chunk-SHOIYREX.js +0 -1
- package/public/chunk-XBR7SSMW.js +0 -1
- package/public/chunk-ZEBL4YGF.js +0 -19
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as b}from"./chunk-
|
|
1
|
+
import{a as b}from"./chunk-XKDAPCBY.js";import{Lb as f,W as p,_,aa as d,ba as M,bc as w,cc as C,dc as y,nb as a,oa as v,pa as h,sb as u,v as c,vc as E,ya as l}from"./chunk-JJ5CEM72.js";var q=["editorContainer"],I="[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}",D=new _("NGX_MONACO_EDITOR_CONFIG"),O=!1,N,R=(()=>{class t{constructor(){this.config=d(D),this.onInit=new v,this._insideNg=!1}set insideNg(e){this._insideNg=e,this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get insideNg(){return this._insideNg}ngAfterViewInit(){O?N.then(()=>{this.initMonaco(this._options,this.insideNg)}):(O=!0,N=new Promise(e=>{let i=this.config.baseUrl;if((i==="assets"||!i)&&(i="./assets/monaco/min/vs"),typeof window.monaco=="object"){this.initMonaco(this._options,this.insideNg),e();return}let o=s=>{let g=s||window.require,m={paths:{vs:`${i}`}};Object.assign(m,this.config.requireConfig||{}),g.config(m),g(["vs/editor/editor.main"],()=>{typeof this.config.onMonacoLoad=="function"&&this.config.onMonacoLoad(),this.initMonaco(this._options,this.insideNg),e()})};if(this.config.monacoRequire)o(this.config.monacoRequire);else if(window.require)if(window.require.config)o();else{var n=`${i}/loader.js`,r=new XMLHttpRequest;r.addEventListener("load",()=>{let s=document.createElement("script");s.type="text/javascript",s.text=["var nodeRequire = require;",r.responseText.replace('"use strict";',""),"var monacoAmdRequire = require;","require = nodeRequire;","require.nodeRequire = require;"].join(`
|
|
2
2
|
`),document.body.appendChild(s),o(window.monacoAmdRequire)}),r.open("GET",n),r.send()}else{let s=document.createElement("script");s.type="text/javascript",s.src=`${i}/loader.js`,s.addEventListener("load",()=>{o()}),document.body.appendChild(s)}}))}ngOnDestroy(){this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._editor&&(this._editor.dispose(),this._editor=void 0)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=a({type:t,selectors:[["ng-component"]],viewQuery:function(i,o){if(i&1&&w(q,7),i&2){let n;C(n=y())&&(o._editorContainer=n.first)}},inputs:{insideNg:"insideNg"},outputs:{onInit:"onInit"},standalone:!1,decls:0,vars:0,template:function(i,o){},encapsulation:2})}}return t})(),k=(()=>{class t extends R{constructor(){super(...arguments),this.zone=d(h),this._value="",this.propagateChange=e=>{},this.onTouched=()=>{}}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get options(){return this._options}set model(e){this.options.model=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}writeValue(e){this._value=e||"",setTimeout(()=>{this._editor&&!this.options.model&&this._editor.setValue(this._value)})}registerOnChange(e){this.propagateChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.options.readOnly=e||this._options.readOnly}initMonaco(e,i){let o=!!e.model;if(o){let n=monaco.editor.getModel(e.model.uri||"");n?(e.model=n,e.model.setValue(this._value)):e.model=monaco.editor.createModel(e.model.value,e.model.language,e.model.uri)}i?this._editor=monaco.editor.create(this._editorContainer.nativeElement,e):this.zone.runOutsideAngular(()=>{this._editor=monaco.editor.create(this._editorContainer.nativeElement,e)}),o||this._editor.setValue(this._value),this._editor.onDidChangeModelContent(n=>{let r=this._editor.getValue();this.zone.run(()=>{this.propagateChange(r),this._value=r})}),this._editor.onDidBlurEditorWidget(()=>{this.onTouched()}),this._editor.setTheme=n=>{this.options.theme=n,monaco.editor.setTheme(n)},this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=c(window,"resize").subscribe(()=>this._editor.layout()),this.onInit.emit(this._editor)}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=l(t)))(o||t)}})()}static{this.\u0275cmp=a({type:t,selectors:[["ngx-monaco-editor"]],inputs:{options:"options",model:"model"},features:[E([{provide:b,useExisting:p(()=>t),multi:!0}]),u],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(i,o){i&1&&f(0,"div",1,0)},styles:["[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}"],changeDetection:0})}}return t})(),Q=(()=>{class t extends R{constructor(){super(...arguments),this.zone=d(h)}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get options(){return this._options}set originalModel(e){this._originalModel=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}set modifiedModel(e){this._modifiedModel=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}initMonaco(e,i){if(!this._originalModel||!this._modifiedModel)throw new Error("originalModel or modifiedModel not found for ngx-monaco-diff-editor");this._originalModel.language=this._originalModel.language||e.language,this._modifiedModel.language=this._modifiedModel.language||e.language;let o=monaco.editor.createModel(this._originalModel.code,this._originalModel.language),n=monaco.editor.createModel(this._modifiedModel.code,this._modifiedModel.language);this._editorContainer.nativeElement.innerHTML="";let r=e.theme;i?this._editor=monaco.editor.createDiffEditor(this._editorContainer.nativeElement,e):this.zone.runOutsideAngular(()=>{this._editor=monaco.editor.createDiffEditor(this._editorContainer.nativeElement,e)}),e.theme=r,this._editor.setModel({original:o,modified:n}),this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=c(window,"resize").subscribe(()=>this._editor.layout()),this.onInit.emit(this._editor)}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=l(t)))(o||t)}})()}static{this.\u0275cmp=a({type:t,selectors:[["ngx-monaco-diff-editor"]],inputs:{options:"options",originalModel:"originalModel",modifiedModel:"modifiedModel"},features:[u],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(i,o){i&1&&f(0,"div",1,0)},styles:[I],changeDetection:0})}}return t})();function U(t={}){return M([{provide:D,useValue:t}])}export{k as a,Q as b,U as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as z}from"./chunk-
|
|
1
|
+
import{a as z}from"./chunk-5ZOCCWK4.js";import{e as k}from"./chunk-QJZKXCTT.js";import{a as g}from"./chunk-GIBUKDL3.js";import"./chunk-RZDYLE7I.js";import{b as M}from"./chunk-HU77Q72N.js";import{C as R,D as T,F as I,I as D}from"./chunk-AHP7QTOZ.js";import{Ab as h,Dc as m,Ec as c,Fc as w,Jb as o,Kb as i,Lb as p,Sb as S,Ua as $,Za as r,Zb as u,aa as n,kc as a,lc as s,ma as y,nb as C,sa as f,w as l,xc as b,zb as v}from"./chunk-JJ5CEM72.js";import{h as E}from"./chunk-VJN6YUS2.js";var B=t=>({command:t});function O(t,x){if(t&1&&(o(0,"div",7),a(1),i()),t&2){let e=u();r(),s(e.error())}}function j(t,x){t&1&&(o(0,"p",9),a(1),m(2,"translate"),i(),o(3,"div",10)(4,"div",11),p(5,"i",12),i()()),t&2&&(r(),s(c(2,1,"restart.please_wait_while_server_restarts")))}function A(t,x){if(t&1&&(o(0,"div",8)(1,"p"),a(2),m(3,"translate"),i(),p(4,"p",13),m(5,"translate"),i()),t&2){let e=u();r(2),s(c(3,2,"platform.docker.server_long_time")),r(2),S("innerHTML",w(5,4,"platform.docker.run_with_restart",b(7,B,e.command)),$)}}var Q=(()=>{class t{$api=n(D);$router=n(k);$settings=n(M);$toastr=n(I);$translate=n(R);$ws=n(z);destroyRef=n(y);io;timeout=f(!1);error=f(!1);command='<span class="font-monospace">--restart=always</span>';ngOnInit(){this.initialize()}initialize(){return E(this,null,function*(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.io.socket.connected&&(this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{}));try{yield this.$api.put("/platform-tools/docker/restart-container",{}),this.checkIfServerUp()}catch(e){this.error.set(this.$translate.instant("restart.toast_server_restart_error")),console.error(e),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end()}checkIfServerUp(){l(1e4).pipe(g(this.destroyRef)).subscribe(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="ok"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.docker.container_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})}),l(6e4).pipe(g(this.destroyRef)).subscribe(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout.set(!0)})}static \u0275fac=function(d){return new(d||t)};static \u0275cmp=C({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fab","fa-docker",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-circle-notch","fa-spin"],[1,"grey-text","mb-0",3,"innerHTML"]],template:function(d,_){d&1&&(o(0,"div",0)(1,"h3",1),a(2),m(3,"translate"),i()(),o(4,"div",2)(5,"div",3),p(6,"i",4),i(),o(7,"div",5)(8,"h4",6),a(9),m(10,"translate"),i(),v(11,O,2,1,"div",7)(12,j,6,3),v(13,A,6,9,"div",8),i()()),d&2&&(r(2),s(c(3,4,"menu.restart.title")),r(7),s(c(10,6,"platform.docker.title_restarting")),r(2),h(_.error()?11:12),r(2),h(_.timeout()?13:-1))},dependencies:[T],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{Q as ContainerRestartComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as He,c as le}from"./chunk-OJHJQUWN.js";import"./chunk-QIA4NWRZ.js";import"./chunk-AJOSXNZD.js";import{a as R}from"./chunk-TILWVCNC.js";import{a as Oe}from"./chunk-R2AXYPVZ.js";import{a as Le}from"./chunk-UUDM2ZE6.js";import"./chunk-M4HMWZLV.js";import"./chunk-Q2RBJQKF.js";import{a as Ne}from"./chunk-5QV4AFTV.js";import"./chunk-V62JRIHN.js";import"./chunk-CU6MTMVY.js";import{a as Ge}from"./chunk-YKKWB4CO.js";import{a as $e,c as z,f as Ae,j as oe}from"./chunk-HOWYXHPL.js";import"./chunk-MRHB36HC.js";import"./chunk-IVGUGJ5O.js";import"./chunk-MM3ZUHP2.js";import"./chunk-ZIFXCMBJ.js";import"./chunk-AYPSIX2K.js";import"./chunk-QMHMKWPA.js";import{a as te}from"./chunk-5ZOCCWK4.js";import"./chunk-ZONYERCP.js";import"./chunk-YD4U26CQ.js";import"./chunk-YXAXWARF.js";import"./chunk-YBWJOGCK.js";import"./chunk-IBPLHJH5.js";import"./chunk-3X54YJUZ.js";import"./chunk-BT3EMPD7.js";import"./chunk-ALTMINMJ.js";import"./chunk-7LZXNMQ7.js";import"./chunk-5GNJNTLA.js";import"./chunk-ZBOWFMAD.js";import"./chunk-3RTPACYF.js";import"./chunk-X35N33BQ.js";import"./chunk-2R4HORTN.js";import"./chunk-UU7UROHF.js";import"./chunk-X5XGTC24.js";import{a as ze,b as qe,c as Ue,d as Fe,e as Re}from"./chunk-2JLK533I.js";import"./chunk-PQTJEZPB.js";import"./chunk-ZCGZM7LU.js";import"./chunk-IFDM5E2G.js";import{a as ae}from"./chunk-SGI3H2QJ.js";import{a as je}from"./chunk-I5AP453W.js";import{s as H,t as ne}from"./chunk-BNNKKGLH.js";import{b as ye,e as Pe}from"./chunk-QJZKXCTT.js";import{a as de}from"./chunk-GIBUKDL3.js";import{b as ie}from"./chunk-RZDYLE7I.js";import{C as Ve,D as De,c as we,e as Se,f as Be,g as Ee,j as ke,m as Te,r as Ie,s as Me}from"./chunk-XKDAPCBY.js";import{b as ee}from"./chunk-HU77Q72N.js";import{C as F,D as M,F as Y,I as Z,h as xe}from"./chunk-AHP7QTOZ.js";import{Ab as g,Ac as Ce,Cb as Q,Db as W,Dc as a,Eb as J,Ec as l,Fb as S,Fc as N,Gb as r,Hb as s,Ib as c,Jb as y,Kb as P,Kc as be,Lb as $,Nc as se,Oc as ve,Rb as w,Sb as U,Ua as D,Va as O,Wa as ge,Xb as f,Yb as L,Za as o,Zb as m,aa as h,ea as ce,ec as _e,fc as fe,ga as v,ha as x,hc as K,jc as T,kc as p,lc as C,ma as me,mb as q,mc as b,n as pe,nb as I,sa as E,uc as re,va as ue,xc as X,yb as B,yc as A,zb as u,zc as he}from"./chunk-JJ5CEM72.js";import"./chunk-FDGOZLRL.js";import"./chunk-WVBGE4PG.js";import"./chunk-J3GYRR3Q.js";import"./chunk-MOTTUPLZ.js";import"./chunk-P4ODKUQK.js";import"./chunk-QPIMSYGY.js";import{h as V}from"./chunk-VJN6YUS2.js";var Ze=t=>({pluginName:t}),ei=(t,d)=>({setting:t,value:d});function ii(t,d){t&1&&(r(0,"li"),p(1),a(2,"translate"),s(),r(3,"li"),p(4),a(5,"translate"),s()),t&2&&(o(),C(l(2,2,"plugins.manage.confirm_disable_platform_1")),o(3),C(l(5,4,"plugins.manage.confirm_disable_platform_2")))}function ti(t,d){t&1&&(r(0,"li"),p(1),a(2,"translate"),s(),r(3,"li"),p(4),a(5,"translate"),s()),t&2&&(o(),C(l(2,2,"plugins.manage.confirm_disable_accessory_1")),o(3),C(l(5,4,"plugins.manage.confirm_disable_accessory_2")))}function ni(t,d){if(t&1&&(r(0,"ul",15),c(1,"li",16),a(2,"translate"),r(3,"ul",17),u(4,ii,6,6)(5,ti,6,6),s()()),t&2){let e=m(2);o(),S("innerHtml",N(2,2,"plugins.manage.confirm_disable_setting",A(5,ei,e.keepOrphansName,e.keepOrphansValue)),D),o(3),g(e.keepOrphans?4:5)}}function oi(t,d){t&1&&(r(0,"ul",15)(1,"li"),p(2),a(3,"translate"),s(),r(4,"li"),p(5),a(6,"translate"),s()()),t&2&&(o(2),C(l(3,2,"plugins.manage.confirm_disable_accessory_1")),o(3),C(l(6,4,"plugins.manage.confirm_disable_accessory_2")))}function ai(t,d){if(t&1&&u(0,ni,6,8,"ul",15)(1,oi,7,6,"ul",15),t&2){let e=m();g(e.isConfiguredDynamicPlatform?0:1)}}var Qe=(()=>{class t{$activeModal=h(H);$translate=h(F);modalData=h(oe);pluginName=this.modalData.pluginName;isConfigured=this.modalData.isConfigured??!1;isConfiguredDynamicPlatform=this.modalData.isConfiguredDynamicPlatform??!1;keepOrphans=this.modalData.keepOrphans??!1;keepOrphansName=`<code>${this.$translate.instant("settings.startup.keep_accessories")}</code>`;get keepOrphansValue(){return`<code>${this.keepOrphans}</code>`}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:25,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"mb-3","text-center"],[1,"fas","fa-circle-pause","primary-text",2,"font-size","75px"],["type","warning",1,"mb-0",3,"dismissible"],[1,"w-100","text-center","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click"],[1,"mb-3"],[3,"innerHtml"],[1,"mb-1"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),p(3),s(),r(4,"button",3),a(5,"translate"),f("click",function(){return i.dismissModal()}),s()(),r(6,"div",4)(7,"div",5),c(8,"i",6),s(),u(9,ai,2,1),r(10,"ngb-alert",7)(11,"p",8),p(12),a(13,"translate"),s()()(),r(14,"div",9)(15,"div",10)(16,"button",11),a(17,"translate"),f("click",function(){return i.dismissModal()}),p(18),a(19,"translate"),s()(),c(20,"div",12),r(21,"div",13)(22,"button",14),f("click",function(){return i.closeModal()}),p(23),a(24,"translate"),s()()()()),n&2&&(o(3),C(i.pluginName),o(),B("aria-label",l(5,8,"form.button_close")),o(5),g(i.isConfigured?9:-1),o(),S("dismissible",!1),o(2),b(" ",N(13,10,"plugins.manage.confirm_disable",X(19,Ze,i.pluginName))," "),o(4),B("aria-label",l(17,13,"form.button_close")),o(2),b(" ",l(19,15,"form.button_close")," "),o(5),b(" ",l(24,17,"plugins.manage.disable")," "))},dependencies:[je,M],encapsulation:2})}return t})();var li=t=>({author:t});function ri(t,d){if(t&1&&(y(0,"li",9),$(1,"i",15),y(2,"a",16),p(3),P()()),t&2){let e=d.$implicit,n=m();o(),T(n.getIconClass(e.type)),o(),U("href",e.url,O),o(),C(e.url)}}var We=(()=>{class t{$activeModal=h(H);modalData=h(z);plugin=this.modalData.plugin;fundingOptions=E([]);authorName=E("");ngOnInit(){this.initialize()}initialize(){if(!this.plugin||!this.plugin.funding){this.$activeModal.close();return}this.authorName.set(this.plugin.name==="homebridge-config-ui-x"?"oznu":this.plugin.author);let e=this.plugin.funding;if(Array.isArray(e)){let n=e.map(i=>{if(typeof i=="string")return{type:"other",url:i};if(typeof i=="object")return{type:i.type||"other",url:i.url}}).filter(Boolean);this.fundingOptions.set(n)}else typeof e=="string"?this.fundingOptions.set([{type:"other",url:e}]):typeof e=="object"&&e!==null&&this.fundingOptions.set([{type:e.type||"other",url:e.url}])}getIconClass(e){switch(e.toLowerCase()){case"paypal":return"fab fa-paypal";case"github":return"fab fa-github";case"patreon":return"fab fa-patreon";case"kofi":case"ko-fi":return"fas fa-coffee";default:return"fas fa-link"}}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:28,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","pink-text","mb-3"],[1,"fas","fa-heart",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"],[1,"me-2","primary-text","fa-xl"],["target","_blank","rel","noopener noreferrer",1,"text-break-all",3,"href"]],template:function(n,i){n&1&&(y(0,"div",0)(1,"div",1)(2,"h5",2),p(3),a(4,"translate"),P(),y(5,"button",3),a(6,"translate"),L("click",function(){return i.dismissModal()}),P()(),y(7,"div",4)(8,"div",5),$(9,"i",6),P(),y(10,"ul",7)(11,"li"),p(12),a(13,"translate"),P(),y(14,"li"),p(15),a(16,"translate"),P()(),y(17,"ul",8),W(18,ri,4,4,"li",9,Q),P()(),y(20,"div",10),$(21,"div",11),y(22,"div",12)(23,"button",13),a(24,"translate"),L("click",function(){return i.dismissModal()}),p(25),a(26,"translate"),P()(),$(27,"div",14),P()()),n&2&&(o(3),C(N(4,6,"plugins.donate.tile_donate_to",X(19,li,"@"+i.authorName()))),o(2),B("aria-label",l(6,9,"form.button_close")),o(7),C(l(13,11,"plugins.donate.message_1")),o(3),C(l(16,13,"plugins.donate.message_2")),o(3),J(i.fundingOptions()),o(5),B("aria-label",l(24,15,"form.button_close")),o(2),b(" ",l(26,17,"form.button_close")," "))},dependencies:[M],styles:[".text-break-all[_ngcontent-%COMP%]{word-break:break-all}"]})}return t})();var si=(t,d)=>({"orange-text":t,"grey-text":d}),di=(t,d)=>({"green-text":t,"grey-text":d}),pi=(t,d)=>({"purple-text":t,"grey-text":d}),ci=(t,d)=>({scopedLink:t,verifiedLink:d});function mi(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P(),y(6,"p",19),p(7),a(8,"translate"),P()),t&2&&(o(),C(l(2,3,"plugins.manage.scoped_subtitle")),o(3),C(l(5,5,"plugins.manage.scoped_message")),o(3),C(l(8,7,"plugins.manage.verified_message")))}function ui(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P()),t&2&&(o(),C(l(2,2,"plugins.manage.verified_subtitle")),o(3),C(l(5,4,"plugins.manage.verified_message")))}function gi(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P()),t&2&&(o(),C(l(2,2,"plugins.manage.unverified_subtitle")),o(3),C(l(5,4,"plugins.manage.unverified_message")))}function _i(t,d){if(t&1){let e=w();y(0,"button",20),L("click",function(){v(e);let i=m();return x(i.dismissModal())}),p(1),a(2,"translate"),P()}t&2&&(o(),b(" ",l(2,1,"form.button_close")," "))}function fi(t,d){if(t&1){let e=w();y(0,"button",20),L("click",function(){v(e);let i=m();return x(i.dismissModal())}),p(1),a(2,"translate"),P()}t&2&&(o(),b(" ",l(2,1,"form.button_close")," "))}function hi(t,d){if(t&1&&(y(0,"a",17),p(1),a(2,"translate"),$(3,"i",21),P()),t&2){let e=m();U("href",e.plugin.links.homepage||e.plugin.links.npm,O),o(),b(" ",l(2,2,"plugins.button_homepage")," ")}}var Je=(()=>{class t{$activeModal=h(H);modalData=h(z);plugin=this.modalData.plugin;iconError=E(!1);pluginIcon=be(()=>this.plugin?.icon&&!this.iconError()?this.plugin.icon:this.defaultIcon);defaultIcon="assets/hb-icon.png";linkScoped='<a href="https://github.com/homebridge/plugins/wiki/Scoped-Plugins" target="_blank"><i class="fas fa-external-link-alt primary-text"></i></a>';linkVerified='<a href="https://github.com/homebridge/plugins/wiki/Verified-Plugins" target="_blank"><i class="fas fa-external-link-alt primary-text"></i></a>';handleIconError(){this.iconError.set(!0)}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:32,vars:45,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],["alt","Plugin Icon",1,"mb-3","plugin-icon-card",3,"error","src"],[1,"mb-1"],[1,"grey-text","mb-0","font-monospace"],[1,"grey-text","mb-1","font-monospace"],[1,"mb-3"],[1,"fas","fa-shield-alt","mb-3",2,"font-size","48px"],[1,"mb-0","grey-text",3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[1,"mb-2"],[1,"mb-1","grey-text"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-external-link-alt"]],template:function(n,i){n&1&&(y(0,"div",0)(1,"div",1)(2,"h5",2),p(3),a(4,"translate"),P(),y(5,"button",3),a(6,"translate"),L("click",function(){return i.dismissModal()}),P()(),y(7,"div",4)(8,"img",5),L("error",function(){return i.handleIconError()}),P(),y(9,"h4",6),p(10),P(),y(11,"p",7),p(12),P(),y(13,"p",8),p(14),P(),y(15,"p",9),p(16),P(),$(17,"i",10)(18,"i",10)(19,"i",10),u(20,mi,9,9),u(21,ui,6,6),u(22,gi,6,6),$(23,"p",11),a(24,"translate"),P(),y(25,"div",12)(26,"div",13),u(27,_i,3,3,"button",14),P(),y(28,"div",15),u(29,fi,3,3,"button",14),P(),y(30,"div",16),u(31,hi,4,4,"a",17),P()()()),n&2&&(o(3),C(l(4,26,"plugins.manage.information")),o(2),B("aria-label",l(6,28,"form.button_close")),o(3),U("src",i.pluginIcon(),O),o(2),C(i.plugin.displayName),o(2),C(i.plugin.name),o(2),b("@",i.plugin.author),o(2),C(i.plugin.description),o(),T(A(33,si,!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin,i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)),K("opacity",!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?1:.25),o(),T(A(36,di,!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin),i.plugin.isHbScoped||!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin)),K("opacity",!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)?1:.25),o(),T(A(39,pi,i.plugin.isHbScoped,!i.plugin.isHbScoped)),K("opacity",i.plugin.isHbScoped?1:.25),o(),g(i.plugin.isHbScoped?20:-1),o(),g(!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)?21:-1),o(),g(!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?22:-1),o(),U("innerHTML",N(24,30,"plugins.manage.more_info",A(42,ci,i.linkScoped,i.linkVerified)),D),o(4),g(i.plugin.links.homepage||i.plugin.links.npm?27:-1),o(2),g(!i.plugin.links.homepage&&!i.plugin.links.npm?29:-1),o(2),g(i.plugin.links.homepage||i.plugin.links.npm?31:-1))},dependencies:[M],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]})}return t})();var Ci=(t,d,e)=>({"purple-text":t,"green-text":d,"orange-text":e}),bi=(t,d,e,n)=>({"fa-bridge-circle-exclamation":t,"orange-text":d,"fa-bridge-circle-xmark":e,"red-text":n});function vi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.checkAndUpdatePlugin())}),c(3,"i",22),s()}t&2&&(S("openDelay",150)("ngbTooltip",l(1,3,"plugins.button_update")),B("aria-label",l(2,5,"plugins.button_update")))}function xi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.switchToScoped())}),c(3,"i",23),s()}t&2&&(S("openDelay",150)("ngbTooltip",l(1,3,"plugins.manage.scoped.switch")),B("aria-label",l(2,5,"plugins.manage.scoped.switch")))}function yi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openSettings())}),c(3,"i",25),s()}t&2&&(S("ngbTooltip",l(1,3,"plugins.button_set_up"))("openDelay",150),B("aria-label",l(2,5,"plugins.button_set_up")))}function Pi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openBridgeSettings())}),c(3,"i",26),s()}t&2&&(S("ngbTooltip",l(1,3,"child_bridge.setup"))("openDelay",150),B("aria-label",l(2,5,"child_bridge.setup")))}function wi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openBridgeSettings())}),c(3,"i",27),s()}t&2&&(S("ngbTooltip",l(1,3,"child_bridge.bridge_connect"))("openDelay",150),B("aria-label",l(2,5,"child_bridge.bridge_connect")))}function Si(t,d){if(t&1&&c(0,"i",28),t&2){let e=m(2);T(Ce(2,bi,e.childBridgeStatus()==="pending",e.childBridgeStatus()==="pending",e.childBridgeStatus()==="down",e.childBridgeStatus()==="down"))}}function Bi(t,d){if(t&1&&(r(0,"div",9),u(1,vi,4,7,"a",17),u(2,xi,4,7,"a",17),u(3,yi,4,7,"a",18),u(4,Pi,4,7,"a",18),u(5,wi,4,7,"a",18),c(6,"i",19),u(7,Si,1,7,"i",20),s()),t&2){let e,n=m();o(),g(n.plugin().installedVersion&&n.plugin().updateAvailable&&!n.childBridgeRestartInProgress()?1:-1),o(),g(n.plugin().installedVersion&&((e=n.plugin().newHbScope)==null?null:e.switch)===n.plugin().installedVersion&&!n.childBridgeRestartInProgress()?2:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&!n.plugin().isConfigured&&!n.childBridgeRestartInProgress()&&!n.plugin().disabled?3:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&!n.plugin().hasChildBridges&&!n.plugin().disabled&&n.plugin().recommendChildBridge&&!n.childBridgeRestartInProgress()?4:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&n.plugin().hasChildBridges&&!n.childBridgeRestartInProgress()&&n.plugin().hasChildBridgesUnpaired&&n.childBridgeStatus()==="ok"&&!n.plugin().disabled?5:-1),o(),S("hidden",!n.childBridgeRestartInProgress()),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&n.plugin().hasChildBridges&&!n.childBridgeRestartInProgress()&&!n.plugin().hasChildBridgesUnpaired&&n.childBridgeStatus()!=="ok"&&!n.plugin().disabled?7:-1)}}function Ei(t,d){if(t&1){let e=w();r(0,"a",11),f("click",function(){v(e);let i=m();return x(i.openFundingModal(i.plugin()))}),c(1,"i",29),r(2,"span",13),p(3),s()()}if(t&2){let e=m();o(3),b("@",e.plugin().author)}}function ki(t,d){if(t&1&&(r(0,"span",13),c(1,"i",30),p(2),s()),t&2){let e=m();o(2),b("@",e.plugin().author," ")}}function Ti(t,d){if(t&1&&(r(0,"span"),p(1),a(2,"date"),s()),t&2){let e=m(2);o(),b("(",N(2,1,e.plugin().lastUpdated,"yyyy-MM-dd"),")")}}function Ii(t,d){if(t&1&&(r(0,"span"),c(1,"i",31),r(2,"span",13),p(3),u(4,Ti,3,4,"span"),s()()),t&2){let e=m();o(3),b("v",e.plugin().latestVersion," "),o(),g(e.plugin().lastUpdated?4:-1)}}function Mi(t,d){if(t&1&&(c(0,"i",32),p(1)),t&2){let e=m();o(),b("v",e.plugin().installedVersion," ")}}function Vi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),f("click",function(){v(e);let i=m(2);return x(i.doChildBridgeAction("restart"))}),c(2,"i",36),s()}if(t&2){let e=m(2);S("openDelay",150)("ngbTooltip",l(1,2,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function Di(t,d){if(t&1){let e=w();r(0,"a",37),f("click",function(){v(e);let i=m(2);return x(i.enablePlugin(i.plugin()))}),c(1,"i",38),a(2,"translate"),s()}t&2&&(o(),S("ngbTooltip",l(2,2,"common.labels.disabled"))("openDelay",150))}function $i(t,d){if(t&1){let e=w();r(0,"a",39),f("click",function(){v(e);let i=m(2);return x(i.installAlternateVersion())}),c(1,"i",40),s()}}function Ai(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.viewPluginLog())}),c(1,"i",49),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.plugin_logs")," "))}function Ni(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.installAlternateVersion())}),c(1,"i",50),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.manage_version")," "))}function Oi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openJsonEditor())}),c(1,"i",51),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.json_config")," "))}function Li(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.disablePlugin(i.plugin()))}),c(1,"i",52),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.disable")," "))}function Hi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.enablePlugin(i.plugin()))}),c(1,"i",53),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.enable")," "))}function ji(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.uninstallPlugin())}),c(1,"i",54),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.button_uninstall")," "))}function zi(t,d){t&1&&c(0,"div",47)}function qi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("restart"))}),c(1,"i",57),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function Ui(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("stop"))}),c(1,"i",58),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function Fi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("start"))}),c(1,"i",59),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function Ri(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",55),p(2),a(3,"translate"),s(),u(4,qi,4,3,"button",46),u(5,Ui,4,3,"button",46),u(6,Fi,4,3,"button",46),r(7,"button",44),f("click",function(){v(e);let i=m(3);return x(i.resetChildBridges())}),c(8,"i",56),p(9),a(10,"translate"),s()}if(t&2){let e=m(3);o(2),b(" ",l(3,5,"child_bridge.bridge_settings")," "),o(2),g(e.childBridgeRestartInProgress()?-1:4),o(),g(e.allChildBridgesStopped()?-1:5),o(),g(e.allChildBridgesStopped()?6:-1),o(3),b(" ",l(10,7,"child_bridge.reset_accessories")," ")}}function Gi(t,d){t&1&&c(0,"div",47)}function Qi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",60),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"child_bridge.setup")," "))}function Wi(t,d){t&1&&c(0,"div",47)}function Ji(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",60),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"child_bridge.setup")," "))}function Ki(t,d){t&1&&c(0,"div",47)}function Xi(t,d){if(t&1&&(r(0,"a",48),c(1,"i",61),p(2),a(3,"translate"),s()),t&2){let e=m(3);S("href",e.plugin().links.bugs,O),o(2),b(" ",l(3,2,"support.links.issue")," ")}}function Yi(t,d){if(t&1){let e=w();r(0,"span",35)(1,"a",41),c(2,"i",42),s(),r(3,"div",43)(4,"button",44),f("click",function(){v(e);let i=m(2);return x(i.openSettings())}),c(5,"i",45),p(6),a(7,"translate"),s(),u(8,Ai,4,3,"button",46),u(9,Ni,4,3,"button",46),u(10,Oi,4,3,"button",46),u(11,Li,4,3,"button",46),u(12,Hi,4,3,"button",46),u(13,ji,4,3,"button",46),u(14,zi,1,0,"div",47),u(15,Ri,11,9),u(16,Gi,1,0,"div",47),u(17,Qi,4,3,"button",46),u(18,Wi,1,0,"div",47),u(19,Ji,4,3,"button",46),u(20,Ki,1,0,"div",47),u(21,Xi,4,4,"a",48),s()()}if(t&2){let e,n,i=m(2);o(),B("aria-label","Plugin Actions Dropdown"),o(5),b(" ",l(7,16,"plugins.button_settings")," "),o(2),g(i.plugin().isConfigured&&!i.plugin().disabled?8:-1),o(),g(i.plugin().publicPackage?9:-1),o(),g(!i.isMobile()&&i.plugin().name!=="homebridge-config-ui-x"?10:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"&&!i.plugin().disabled?11:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"&&i.plugin().disabled?12:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"?13:-1),o(),g(!i.plugin().disabled&&i.plugin().isConfigured&&i.plugin().hasChildBridges&&i.plugin().installedVersion&&i.plugin().name!=="homebridge-config-ui-x"?14:-1),o(),g(i.plugin().hasChildBridges&&!i.plugin().disabled?15:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&!i.plugin().recommendChildBridge?16:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&!i.plugin().recommendChildBridge?17:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&i.plugin().recommendChildBridge&&i.plugin().updateAvailable?18:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&i.plugin().recommendChildBridge&&i.plugin().updateAvailable?19:-1),o(),g((e=i.plugin().links)!=null&&e.bugs?20:-1),o(),g((n=i.plugin().links)!=null&&n.bugs?21:-1)}}function Zi(t,d){if(t&1&&(r(0,"div",9),u(1,Vi,3,4,"a",17),u(2,Di,3,4,"a",33),u(3,$i,2,0,"a",34),u(4,Yi,22,18,"span",35),s()),t&2){let e=m();o(),g(!e.plugin().disabled&&e.plugin().hasChildBridges&&e.childBridgeStatus()==="ok"?1:-1),o(),g(e.plugin().installedVersion&&e.plugin().disabled?2:-1),o(),g(e.plugin().publicPackage&&!e.plugin().installedVersion?3:-1),o(),g(e.plugin().installedVersion?4:-1)}}var Ke=(()=>{class t{injector=h(ce);$api=h(Z);$auth=h(ie);$md=h(Le);$modal=h(ne);$plugin=h(le);$settings=h(ee);$toastr=h(Y);$translate=h(F);$ws=h(te);plugin=se.required();childBridges=se.required();io;defaultIcon="assets/hb-icon.png";isAdmin=this.$auth.user.admin;hasChildBridges=E(!1);allChildBridgesStopped=E(!1);childBridgeStatus=E("pending");childBridgeRestartInProgress=E(!1);isMobile=E("");setChildBridges=E([]);constructor(){ue(()=>{let e=this.childBridges();this.hasChildBridges.set(e.length>0),this.allChildBridgesStopped.set(e.every(n=>n.manuallyStopped===!0)),this.hasChildBridges()&&(e.some(n=>n.status==="down")?this.childBridgeStatus.set("down"):e.some(n=>n.status==="pending")?this.childBridgeStatus.set("pending"):e.some(n=>n.status==="ok")&&this.childBridgeStatus.set("ok")),this.setChildBridges.set(e)})}ngOnInit(){this.isMobile.set(this.$md.detect.mobile()),this.io=this.$ws.getExistingNamespace("child-bridges"),this.isMobile()&&this.plugin().displayName.toLowerCase().startsWith("homebridge ")&&(this.plugin().displayName=this.plugin().displayName.replace(/^homebridge /i,"")),this.plugin().icon||(this.plugin().icon=this.defaultIcon)}openFundingModal(e){let n=q([{provide:z,useValue:{plugin:e}}],this.injector);this.$modal.open(We,{size:"lg",backdrop:"static",injector:n})}pluginInfoModal(e){let n=q([{provide:z,useValue:{plugin:e}}],this.injector);this.$modal.open(Je,{size:"lg",backdrop:"static",injector:n})}disablePlugin(e){return V(this,null,function*(){let n=q([{provide:oe,useValue:{pluginName:e.displayName||e.name,isConfigured:e.isConfigured,isConfiguredDynamicPlatform:e.isConfiguredDynamicPlatform,keepOrphans:this.$settings.keepOrphans}}],this.injector),i=this.$modal.open(Qe,{size:"lg",backdrop:"static",injector:n});try{yield i.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{}),e.disabled=!0,this.hasChildBridges()&&this.doChildBridgeAction("stop"),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(_){console.error(_),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}catch{}})}enablePlugin(e){return V(this,null,function*(){let n=q([{provide:$e,useValue:{title:e.name,message:this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.displayName}),confirmButtonLabel:this.$translate.instant("plugins.manage.enable"),faIconClass:"fa-circle-play primary-text"}}],this.injector),i=this.$modal.open(Ne,{size:"lg",backdrop:"static",injector:n});try{yield i.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{}),e.disabled=!1,this.hasChildBridges()&&(yield this.doChildBridgeAction("start")),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(_){console.error(_),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}catch{}})}viewPluginLog(){let e=q([{provide:Ae,useValue:{plugin:this.plugin(),childBridges:this.setChildBridges()}}],this.injector);this.$modal.open(He,{size:"xl",backdrop:"static",injector:e})}doChildBridgeAction(e){return V(this,null,function*(){this.childBridgeRestartInProgress.set(!0);try{for(let n of this.setChildBridges())yield pe(this.io.request(`${e}-child-bridge`,n.username))}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress.set(!1)}finally{setTimeout(()=>{this.childBridgeRestartInProgress.set(!1)},e==="restart"?12e3:e==="stop"?6e3:1e3)}})}handleIconError(){this.plugin().icon=this.defaultIcon}checkAndUpdatePlugin(){this.$plugin.checkAndUpdatePlugin(this.plugin(),this.plugin().latestVersion)}openSettings(){this.$plugin.settings(this.plugin())}openBridgeSettings(){this.$plugin.bridgeSettings(this.plugin())}switchToScoped(){this.$plugin.switchToScoped(this.plugin())}installAlternateVersion(){this.$plugin.installAlternateVersion(this.plugin())}openJsonEditor(){this.$plugin.jsonEditor(this.plugin())}uninstallPlugin(){this.$plugin.uninstallPlugin(this.plugin(),this.setChildBridges())}resetChildBridges(){this.$plugin.resetChildBridges(this.setChildBridges())}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["app-plugin-card"]],inputs:{plugin:[1,"plugin"],childBridges:[1,"childBridges"]},decls:24,vars:15,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,"d-flex","flex-column","me-3","align-items-center","justify-content-between"],["alt","Plugin Icon",1,"plugin-icon-card","mb-3",3,"error","src"],[1,"d-flex","flex-column","justify-content-between",2,"min-width","calc(100% - 80px)"],[1,"d-flex","flex-row","align-items-end"],[1,"d-flex","flex-column","w-100"],[1,"d-flex","flex-row"],[1,"card-title","mb-2","text-truncate"],[1,"ms-auto"],[1,"card-text","mb-2","text-truncate"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-shield-alt","fa-lg","me-1"],[1,"grey-text"],[1,"card-text","mb-2"],["href","javascript:void(0)",1,"card-link"],[1,"card-text","mb-0","grey-text"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"openDelay","ngbTooltip"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"ngbTooltip","openDelay"],[1,"fas","fa-circle-notch","fa-spin","fa-lg","grey-text","ms-3",3,"hidden"],[1,"fas","fa-lg","ms-3",3,"class"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"click","openDelay","ngbTooltip"],[1,"far","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-arrow-right-arrow-left","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"click","ngbTooltip","openDelay"],[1,"fas","fa-sliders","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-bridge","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-qrcode","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-lg","ms-3"],[1,"fas","fa-heart","fa-lg","me-1","pink-text"],[1,"fas","fa-heart","fa-lg","me-1",2,"opacity","0.5"],[1,"far","fa-circle-dot","fa-lg","me-1"],[1,"far","fa-circle-check","fa-lg","me-1"],["href","javascript:void(0)",1,"card-link","red-text"],["href","javascript:void(0)"],["ngbDropdown","","placement","left",1,"d-inline-block","ms-3","mt-auto"],[1,"fas","fa-lg","fa-power-off","ms-3"],["href","javascript:void(0)",1,"card-link","red-text",3,"click"],["container","body","triggers","hover",1,"far","fa-pause-circle","fa-lg",3,"ngbTooltip","openDelay"],["href","javascript:void(0)",3,"click"],[1,"far","fa-arrow-alt-circle-down","fa-lg"],["href","javascript:void(0)","ngbDropdownToggle","",1,"card-link","text-decoration-none","mt-auto",2,"outline","none"],[1,"fa-solid","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu","","aria-labelledby","Plugin Actions Dropdown"],["ngbDropdownItem","",3,"click"],[1,"fas","fa-sliders"],["ngbDropdownItem",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[1,"fas","fa-wave-square"],[1,"fas","fa-code-compare"],[1,"fas","fa-code"],[1,"far","fa-circle-pause"],[1,"far","fa-circle-play"],[1,"fas","fa-trash"],[1,"fas","fa-bridge"],[1,"fas","fa-broom"],[1,"icon-button","fas","fa-power-off"],[1,"fas","fa-stop"],[1,"fas","fa-play"],[1,"icon-button","fas","fa-bridge"],[1,"icon-button","fa","fa-question-circle-o"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),f("error",function(){return i.handleIconError()}),s()(),r(4,"div",4)(5,"div",5)(6,"div",6)(7,"div",7)(8,"h5",8),p(9),s(),u(10,Bi,8,7,"div",9),s(),r(11,"p",10)(12,"a",11),f("click",function(){return i.pluginInfoModal(i.plugin())}),c(13,"i",12),r(14,"span",13),p(15),s()()(),r(16,"p",14),u(17,Ei,4,1,"a",15),u(18,ki,3,1,"span",13),s(),r(19,"div",7)(20,"p",16),u(21,Ii,5,2,"span"),u(22,Mi,2,1),s(),u(23,Zi,5,4,"div",9),s()()()()()()),n&2&&(o(3),S("src",i.plugin().icon,O),o(6),C(i.plugin().displayName),o(),g(i.isAdmin?10:-1),o(3),T(he(11,Ci,i.plugin().isHbScoped,!i.plugin().isHbScoped&&(i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin),!i.plugin().isHbScoped&&!i.plugin().verifiedPlugin&&!i.plugin().verifiedPlusPlugin)),o(2),C(i.plugin().name),o(2),g((i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin)&&i.plugin().funding?17:-1),o(),g((i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin)&&i.plugin().funding?-1:18),o(3),g(i.plugin().publicPackage&&!i.plugin().installedVersion?21:-1),o(),g(i.plugin().installedVersion?22:-1),o(),g(i.isAdmin?23:-1))},dependencies:[ae,Re,Fe,Ue,qe,ze,xe,M],encapsulation:2})}return t})();var Xe=(()=>{class t{$activeModal=h(H);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:28,vars:22,consts:[["role","dialog","aria-modal","true",1,"modal-content"],[1,"modal-header"],["id","plugin-support-modal-title",1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"mb-0"],[3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),p(4),a(5,"translate"),s(),r(6,"button",3),a(7,"translate"),f("click",function(){return i.dismissModal()}),s()(),r(8,"div",4)(9,"div",5),c(10,"i",6),s(),r(11,"ul",7),c(12,"li",8),a(13,"translate"),c(14,"li",8),a(15,"translate"),c(16,"li",8),a(17,"translate"),c(18,"li",8),a(19,"translate"),s(),c(20,"app-support-banner"),s(),r(21,"div",9),c(22,"div",10),r(23,"div",11)(24,"button",12),f("click",function(){return i.dismissModal()}),p(25),a(26,"translate"),s()(),c(27,"div",13),s()()()),n&2&&(B("aria-labelledby","plugin-support-modal-title"),o(4),C(l(5,8,"support.title")),o(2),B("aria-label",l(7,10,"form.button_close")),o(6),S("innerHTML",l(13,12,"plugins.support.list_1"),D),o(2),S("innerHTML",l(15,14,"plugins.support.list_2"),D),o(2),S("innerHTML",l(17,16,"plugins.support.list_3"),D),o(2),S("innerHTML",l(19,18,"plugins.support.list_4"),D),o(7),b(" ",l(26,20,"form.button_close")," "))},dependencies:[Ge,M],encapsulation:2})}return t})();var et=["searchInput"],it=(t,d)=>({"fa-magnifying-glass":t,"fa-exclamation-circle":d});function tt(t,d){t&1&&c(0,"app-spinner")}function nt(t,d){if(t&1){let e=w();r(0,"button",7),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m();return x(i.showSearch())}),c(3,"i"),s(),r(4,"button",8),a(5,"translate"),a(6,"translate"),f("click",function(){v(e);let i=m();return x(i.showStats())}),c(7,"i"),s()}if(t&2){let e=m();S("openDelay",150)("ngbTooltip",l(1,12,"form.search")),B("aria-label",l(2,14,"form.search")),o(3),T(re("fas",e.showSearchBar()?" primary-text":""," fa-search")),o(),S("openDelay",150)("ngbTooltip",l(5,16,"plugins.stats")),B("aria-label",l(6,18,"plugins.stats")),o(3),T(re("fas",e.tab()==="stats"?" primary-text":""," fa-sliders"))}}function ot(t,d){if(t&1){let e=w();r(0,"button",15),a(1,"translate"),f("click",function(){v(e);let i=m(3);return x(i.onClearSearch())}),c(2,"i",16),s()}t&2&&B("aria-label",l(1,1,"form.button_clear"))}function at(t,d){if(t&1){let e=w();r(0,"div",9)(1,"div",11)(2,"form",12),f("ngSubmit",function(){v(e);let i=m(2);return x(i.onSubmit(i.form))}),c(3,"input",13,0),a(5,"translate"),u(6,ot,3,3,"button",14),s()()()}if(t&2){let e,n=m(2);o(2),S("formGroup",n.form),o(),S("placeholder",l(5,3,"plugins.placeholder_search_plugin")),o(3),g((e=n.form.get("query"))!=null&&e.value?6:-1)}}function lt(t,d){if(t&1&&(r(0,"div",17),c(1,"app-plugin-card",19),s()),t&2){let e=d.$implicit,n=m(3);o(),S("plugin",e)("childBridges",n.getPluginChildBridges(e))}}function rt(t,d){if(t&1&&(r(0,"div",18),c(1,"i",20),r(2,"p"),p(3),a(4,"translate"),s()()),t&2){let e=m(3);o(),T(A(5,it,!e.showExitButton(),e.showExitButton())),o(2),C(l(4,3,e.showExitButton()?"plugins.placeholder_search_none":"plugins.placeholder_search_first"))}}function st(t,d){if(t&1&&(r(0,"div",10),W(1,lt,2,2,"div",17,Q),u(3,rt,5,8,"div",18),s()),t&2){let e=m(2);o(),J(e.installedPlugins()),o(2),g(e.installedPlugins().length===0&&!e.loading()&&!e.mainError()?3:-1)}}function dt(t,d){if(t&1&&(u(0,at,7,5,"div",9),u(1,st,4,1,"div",10)),t&2){let e=m();g(e.showSearchBar()?0:-1),o(),g(e.loading()?-1:1)}}function pt(t,d){t&1&&(r(0,"div",21)(1,"div",22)(2,"code"),p(3,"https://developers.homebridge.io/analytics "),r(4,"a",23),c(5,"i",24),s()()(),r(6,"div",25),p(7),a(8,"translate"),s()(),c(9,"iframe",26)),t&2&&(o(7),C(l(8,1,"plugins.stats_note")))}var Bn=(()=>{class t{destroyRef=h(me);$api=h(Z);$auth=h(ie);$modal=h(ne);$plugin=h(le);$router=h(Pe);$settings=h(ee);$toastr=h(Y);$translate=h(F);$ws=h(te);searchInput=ve("searchInput");mainError=E(!1);loading=E(!0);tab=E("main");installedPlugins=E([]);childBridges=E([]);showSearchBar=E(!1);showExitButton=E(!1);isSearchMode=E(!1);io;isAdmin=this.$auth.user.admin;form=new Ee({query:new ke("")});ngOnInit(){let e=this.$translate.instant("menu.label_plugins");this.$settings.setPageTitle(e),this.$plugin.onPluginListRefresh.pipe(de(this.destroyRef)).subscribe(()=>{this.loadInstalledPlugins(),this.getChildBridgeMetadata()}),this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>{this.initialize()}),this.io.socket.connected&&this.initialize(),this.io.socket.on("child-bridge-status-update",n=>{let i=this.childBridges().find(_=>_.username===n.username);i?(Object.assign(i,n),this.childBridges.set([...this.childBridges()])):this.childBridges.update(_=>[..._,n])}),this.$router.events.pipe(de(this.destroyRef)).subscribe(n=>{n instanceof ye&&this.loadInstalledPlugins()})}search(){return V(this,null,function*(){this.installedPlugins.set([]),this.loading.set(!0),this.showExitButton.set(!0);try{let e=yield this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`),n=new Set,i=new Map(e.map(_=>[_.name,_]));this.installedPlugins.set(e.reduce((_,k)=>{if(k.name==="homebridge-config-ui-x"||n.has(k.name))return _;if(k.newHbScope){let j=k.newHbScope.to,Ye=i.has(j);(k.installedVersion||!Ye)&&(n.add(j),_.push(k))}else _.push(k);return _},[])),yield this.appendMetaInfo()}catch(e){this.isSearchMode.set(!1),console.error(e);let n=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_search_plugins");this.$toastr.error(n,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}finally{this.loading.set(!1)}})}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.isSearchMode()&&(this.isSearchMode.set(!1),this.loadInstalledPlugins())}onSubmit({value:e}){e.query.length?(this.isSearchMode.set(!0),this.search()):(this.isSearchMode()&&(this.isSearchMode.set(!1),this.loadInstalledPlugins()),this.showSearchBar.set(!1))}showSearch(){if(this.showSearchBar())this.showSearchBar.set(!1),this.isSearchMode()&&(this.isSearchMode.set(!1),this.form.setValue({query:""}),this.loadInstalledPlugins());else{window.document.querySelector("body")?.classList.remove("bg-black"),this.tab.set("main"),this.showSearchBar.set(!0);let e=this.searchInput();e&&setTimeout(()=>e.nativeElement.focus(),0)}}showStats(){if(this.tab()==="stats"){if(this.$settings.actualLightingMode!=="light"){window.document.querySelector("body").classList.remove("bg-black"),this.tab.set("main");return}window.document.querySelector("body").classList.remove("light-mode");let e=document.getElementById("stats-header"),n=document.getElementById("stats-iframe");e&&n&&(e.classList.add("fade-out"),n.classList.add("fade-out")),setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black"),setTimeout(()=>{this.tab.set("main")},250)},250)}else window.document.querySelector("body").classList.add("bg-black"),this.tab.set("stats"),this.showSearchBar.set(!1),this.$settings.actualLightingMode==="light"&&(window.document.querySelector("body").classList.add("light-mode"),setTimeout(()=>{let e=document.getElementById("stats-header"),n=document.getElementById("stats-iframe");e&&n&&(e.classList.add("light-mode"),n.classList.add("light-mode"))},0))}openSupport(){this.$modal.open(Xe,{size:"lg",backdrop:"static"})}canDeactivate(e){if(this.tab()!=="stats")return!0;if(this.$settings.actualLightingMode!=="light")return window.document.querySelector("body").classList.remove("bg-black"),Promise.resolve(!0);window.document.querySelector("body").classList.remove("light-mode");let n=e&&(e.includes("/platform-tools/terminal")||e.includes("/logs"));return new Promise(i=>{let _=document.getElementById("stats-header"),k=document.getElementById("stats-iframe");_&&k&&(_.classList.add("fade-out"),k.classList.add("fade-out")),n?setTimeout(()=>{i(!0)},250):(setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black")},250),setTimeout(()=>{i(!0)},500))})}ngOnDestroy(){window.document.querySelector("body").classList.remove("light-mode"),this.io.end()}getPluginChildBridges(e){return this.childBridges().filter(n=>n.plugin===e.name)}initialize(){return V(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins(),this.installedPlugins().length||this.showSearch();let{action:e,plugin:n}=this.$router.parseUrl(this.$router.url).queryParams;if(e){let i=this.installedPlugins().find(_=>_.name===n);switch(e){case"just-installed":{i&&(i.isConfigured?this.$modal.open(R,{size:"lg",backdrop:"static"}):this.$plugin.settings(i));break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}})}loadInstalledPlugins(){return V(this,null,function*(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.installedPlugins.set([]),this.loading.set(!0),this.mainError.set(!1);try{let e=yield this.$api.get("/plugins");this.installedPlugins.set(e.filter(i=>i.name!=="homebridge-config-ui-x")),yield this.appendMetaInfo();let n=this.installedPlugins().sort((i,_)=>{let k=(i.updateAvailable?1e3:0)+(i.newHbScope?100:0)+(i.disabled?-10:0)+(i.isConfigured?-20:0)+(i.hasChildBridgesUnpaired?5:0)+(i.hasChildBridges&&this.$settings.env.recommendChildBridges?-1:0),j=(_.updateAvailable?1e3:0)+(_.newHbScope?100:0)+(_.disabled?-10:0)+(_.isConfigured?-20:0)+(_.hasChildBridgesUnpaired?5:0)+(_.hasChildBridges&&this.$settings.env.recommendChildBridges?-1:0);return k!==j?j-k:i.name.localeCompare(_.name)});return this.installedPlugins.set(n),n}catch(e){console.error(e);let n=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_load_plugins");this.$toastr.error(n,this.$translate.instant("toast.title_error")),this.mainError.set(!0)}finally{this.loading.set(!1)}})}appendMetaInfo(){return V(this,null,function*(){this.isAdmin&&(yield Promise.all(this.installedPlugins().filter(e=>e.installedVersion).map(e=>V(this,null,function*(){try{let n=yield this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`);e.isConfigured=n.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.prototype.hasOwnProperty.call(n[0],"platform"),e.recommendChildBridge=e.isConfigured&&this.$settings.env.recommendChildBridges&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&n.some(_=>_._bridge&&_._bridge.username);let i=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=i.some(_=>{let k=_.paired===!1&&!this.isBridgeAlertHidden(_.username,"hap"),j=_.matterConfig&&_.matterCommissioned===!1&&!this.isBridgeAlertHidden(_.username,"matter");return k||j}),this.$settings.env.plugins?.hideUpdatesFor?.includes(e.name)&&(e.updateAvailable=!1)}catch(n){console.error(`Failed to load config for ${e.name}:`,n),e.isConfigured=!0,e.hasChildBridges=!0}}))))})}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges.set(e)})}isBridgeAlertHidden(e,n){let i=this.$settings.env.bridges?.find(_=>_.username.toUpperCase()===e.toUpperCase());return i?n==="hap"?!!i.hideHapAlert:!!i.hideMatterAlert:!1}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],viewQuery:function(n,i){n&1&&_e(i.searchInput,et,5),n&2&&fe()},decls:13,vars:9,consts:[["searchInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2","d-none","d-md-inline-block",3,"click","openDelay","ngbTooltip"],[1,"row"],[1,"d-flex","flex-wrap","justify-content-between"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"search-bar",3,"placeholder"],["type","button",1,"search-bar-clear"],["type","button",1,"search-bar-clear",3,"click"],["aria-hidden","true",1,"fas","fa-square-xmark"],[1,"hb-plugin-space-between"],[1,"alert","alert-info","mt-4","text-center","w-100"],[3,"plugin","childBridges"],[1,"fas","primary-text","my-3",2,"font-size","75px"],["id","stats-header",1,"w-100","py-3","hb-stats-header","text-white","text-center"],[1,"mb-2"],["href","https://developers.homebridge.io/analytics","target","_blank"],[1,"fa","fa-external-link"],[1,"small","grey-text"],["src",ge`https://developers.homebridge.io/analytics/`,"id","stats-iframe","sandbox","allow-scripts allow-same-origin allow-popups","referrerpolicy","no-referrer",1,"hb-stats"]],template:function(n,i){n&1&&(u(0,tt,1,0,"app-spinner"),r(1,"div",1)(2,"div",2)(3,"h3",3),p(4),a(5,"translate"),s()(),r(6,"div",4),u(7,nt,8,20),r(8,"button",5),a(9,"translate"),f("click",function(){return i.openSupport()}),c(10,"i",6),s()()(),u(11,dt,2,2)(12,pt,10,3)),n&2&&(g(i.loading()?0:-1),o(4),C(l(5,5,"menu.label_plugins")),o(3),g(i.isAdmin?7:-1),o(),B("aria-label",l(9,7,"support.title")),o(3),g(i.tab()==="main"?11:i.tab()==="stats"?12:-1))},dependencies:[Oe,Ve,Te,we,Se,Be,De,Me,Ie,Ke,ae,M],styles:["body.light-mode{transition:background-color .25s ease-in-out}form[_ngcontent-%COMP%]{position:relative}.search-bar[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px 45px 10px 10px;margin-bottom:15px}@media(hover:hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.search-bar-clear[_ngcontent-%COMP%]{position:absolute;right:8px;top:25px;height:50px;background:transparent;border:none;font-size:20px;color:#d0d0d0;cursor:pointer;padding:0 8px;display:flex;align-items:center}.search-bar-clear[_ngcontent-%COMP%]:hover{color:#a0a0a0}.hb-plugin-space-between[_ngcontent-%COMP%]{box-sizing:border-box;width:calc(50% - 6.6666666667px)}@media only screen and (max-width:991px){.hb-plugin-space-between[_ngcontent-%COMP%]{width:100%}}.hb-stats-header[_ngcontent-%COMP%]{background:#242424;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.hb-stats-header.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}.hb-stats-header.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}.hb-stats-header[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{border:1px solid grey;border-radius:5px;padding:5px;font-size:.8rem;color:#d3d3d3}.hb-stats[_ngcontent-%COMP%]{height:calc(100% - 121px);width:100%;overflow:hidden;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.hb-stats.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}.hb-stats.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}@media(max-width:767px){.hb-stats[_ngcontent-%COMP%]{height:calc(100% - 60px)}}@keyframes _ngcontent-%COMP%_fadeIn{to{opacity:1}}@keyframes _ngcontent-%COMP%_fadeOut{to{opacity:0}}"]})}return t})();export{Bn as PluginsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
1
|
+
import{a as p}from"./chunk-3NFIJAVV.js";import{a as u}from"./chunk-5QV4AFTV.js";import{a as f}from"./chunk-HOWYXHPL.js";import{t as c}from"./chunk-BNNKKGLH.js";import{b as l}from"./chunk-HU77Q72N.js";import{C as m}from"./chunk-AHP7QTOZ.js";import{X as a,aa as e,ea as s,mb as o}from"./chunk-JJ5CEM72.js";import{h as i}from"./chunk-VJN6YUS2.js";var S=(()=>{class n{injector=e(s);$terminal=e(p);$settings=e(l);$modal=e(c);$translate=e(m);handleBeforeUnload(r){if(!this.$settings.env.terminal?.persistence&&!this.$settings.env.terminal?.hideWarning&&this.$terminal.hasActiveSession()&&this.$terminal.hasUserTypedInSession()){let t=this.$translate.instant("platform.terminal.terminate_unload");return r.preventDefault(),r.returnValue=t,t}}canDeactivate(){return i(this,null,function*(){if(this.$settings.env.terminal?.persistence||this.$settings.env.terminal?.hideWarning||!this.$terminal.hasActiveSession()||!this.$terminal.hasUserTypedInSession())return!0;let r=o([{provide:f,useValue:{title:this.$translate.instant("platform.terminal.terminate_title"),message:this.$translate.instant("platform.terminal.terminate_message_1"),message2:this.$translate.instant("platform.terminal.terminate_message_2"),message3:this.$translate.instant("common.phrases.are_you_sure"),confirmButtonLabel:this.$translate.instant("form.button_continue"),confirmButtonClass:"btn-primary",faIconClass:"fas fa-exclamation-triangle text-warning"}}],this.injector),t=this.$modal.open(u,{size:"lg",backdrop:"static",injector:r});try{return yield t.result,!0}catch{return!1}})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=a({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();export{S as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as u,b as p,c as w}from"./chunk-Q2RBJQKF.js";import{a as d}from"./chunk-
|
|
1
|
+
import{a as u,b as p,c as w}from"./chunk-Q2RBJQKF.js";import{a as d}from"./chunk-5ZOCCWK4.js";import{F as c,R as l,X as f,aa as a,d as h}from"./chunk-JJ5CEM72.js";var B=(()=>{class s{$ws=a(d);io;fitAddon;webLinksAddon;resize;elementResize;pluginName;searchFilter=null;logBuffer=[];maxBufferSize=1e3;destroy$=new h;term;startTerminal(e,r={},o,F){this.pluginName=F,this.elementResize=o,this.io=this.$ws.connectToNamespace("log"),this.fitAddon=new u,this.webLinksAddon=new p,this.term=new w(r),this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon),this.resize=new h,this.term.open(e.nativeElement),setTimeout(()=>{this.fitAddon.fit()}),this.io.connected.pipe(l(this.destroy$)).subscribe(()=>{this.term.reset(),this.logBuffer=[],this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.connected&&this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows}),this.io.socket.on("disconnect",()=>{this.term.write(`
|
|
2
2
|
\r
|
|
3
3
|
\rWebsocket failed to connect. Is the server running?
|
|
4
4
|
\r
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as lt}from"./chunk-
|
|
1
|
+
import{a as lt}from"./chunk-M4HMWZLV.js";import"./chunk-Q2RBJQKF.js";import{a as k}from"./chunk-5QV4AFTV.js";import{a as ht}from"./chunk-V62JRIHN.js";import{a as M}from"./chunk-HOWYXHPL.js";import"./chunk-5ZOCCWK4.js";import{a as st}from"./chunk-SGI3H2QJ.js";import{t as at}from"./chunk-BNNKKGLH.js";import{a as G}from"./chunk-GIBUKDL3.js";import{b as U}from"./chunk-RZDYLE7I.js";import{D as rt,c as X,e as Y,f as Z,g as tt,j as et,m as ot,r as it,s as nt}from"./chunk-XKDAPCBY.js";import{b as K}from"./chunk-HU77Q72N.js";import{C as H,D as Q,F as W,I as J}from"./chunk-AHP7QTOZ.js";import{Ab as v,Dc as a,Ec as s,F as I,Fb as f,Gb as m,Hb as c,I as V,Ib as p,Oc as E,Rb as y,Xb as h,Ya as F,Za as r,Zb as d,aa as l,d as P,ea as q,ec as N,fc as z,ga as u,ha as g,ic as B,jc as A,kc as T,lc as L,ma as D,mb as $,nb as j,sa as S,uc as R,yb as b,zb as w}from"./chunk-JJ5CEM72.js";import{g as pt,h as C}from"./chunk-VJN6YUS2.js";var O=pt(ht(),1);var ut=["logoutput"],gt=["searchInput"];function ft(n,x){if(n&1){let o=y();m(0,"div",5)(1,"button",9),a(2,"translate"),a(3,"translate"),h("click",function(){u(o);let t=d();return g(t.showSearch())}),p(4,"i"),c(),m(5,"button",9),a(6,"translate"),a(7,"translate"),h("click",function(){u(o);let t=d();return g(t.downloadLogFile())}),p(8,"i",10),c(),m(9,"button",11),a(10,"translate"),a(11,"translate"),h("click",function(){u(o);let t=d();return g(t.truncateLogFile())}),p(12,"i",12),c()()}if(n&2){let o=d();r(),f("openDelay",150)("ngbTooltip",s(2,12,"form.search")),b("aria-label",s(3,14,"form.search")),r(3),A(R("fas",o.showSearchBar()?" primary-text":""," fa-search")),r(),f("openDelay",150)("ngbTooltip",s(6,16,"form.button_download")),b("aria-label",s(7,18,"form.button_download")),r(4),f("openDelay",150)("ngbTooltip",s(10,20,"form.button_delete")),b("aria-label",s(11,22,"form.button_delete"))}}function bt(n,x){if(n&1){let o=y();m(0,"button",18),a(1,"translate"),h("click",function(){u(o);let t=d(2);return g(t.onClearSearch())}),p(2,"i",19),c()}n&2&&b("aria-label",s(1,1,"form.button_clear"))}function _t(n,x){n&1&&(m(0,"span",17),T(1),a(2,"translate"),c()),n&2&&(r(),L(s(2,1,"common.labels.beta")))}function wt(n,x){if(n&1){let o=y();m(0,"div",6)(1,"div",13)(2,"form",14),h("ngSubmit",function(){u(o);let t=d();return g(t.onSubmit(t.form.value))}),p(3,"input",15,1),a(5,"translate"),w(6,bt,3,3,"button",16)(7,_t,3,3,"span",17),c()()()}if(n&2){let o,e=d();r(2),f("formGroup",e.form),r(),B("is-invalid",e.searchInputInvalid),f("placeholder",s(5,5,"logs.placeholder_search_logs")),r(3),v((o=e.form.get("query"))!=null&&o.value?6:7)}}var Nt=(()=>{class n{destroyRef=l(D);injector=l(q);$api=l(J);$auth=l(U);$log=l(lt);$modal=l(at);$settings=l(K);$toastr=l(W);$translate=l(H);termTarget=E("logoutput");searchInput=E("searchInput");resizeEvent=new P;isAdmin=this.$auth.user.admin;showSearchBar=S(!1);showExitButton=S(!1);form=new tt({query:new et("")});get searchInputInvalid(){let o=(this.form.get("query")?.value||"").trim();return o.length>0&&o.length<3}onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){let o=this.$translate.instant("menu.linux.label_logs");if(this.$settings.setPageTitle(o),window.document.querySelector("body").classList.add("bg-black"),this.$settings.actualLightingMode==="light"){window.document.querySelector("body").classList.add("light-mode");let e=this.termTarget()?.nativeElement;e&&e.classList.add("light-mode")}this.$log.startTerminal(this.termTarget(),{allowProposedApi:!0},this.resizeEvent),this.form.get("query")?.valueChanges.pipe(I(500),V(),G(this.destroyRef)).subscribe(e=>{let t=e||"",i=t.trim();i!==t&&this.form.get("query")?.setValue(i,{emitEvent:!1}),i.length>=3?(this.showExitButton.set(!0),this.$log.setSearchFilter(i),this.$log.scrollToBottom()):i.length<3&&this.showExitButton()&&(this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom())})}showSearch(){if(this.showSearchBar())this.showSearchBar.set(!1),this.showExitButton.set(!1),this.form.setValue({query:""}),this.$log.clearSearchFilter();else{this.showSearchBar.set(!0);let o=this.searchInput();o&&setTimeout(()=>o.nativeElement.focus(),10)}setTimeout(()=>this.resizeEvent.next(void 0),10),this.$log.scrollToBottom()}onSubmit(o){let e=(o.query||"").trim();!e.length||e.length<3?(e.length||this.showSearchBar.set(!1),this.form.setValue({query:""}),this.showExitButton.set(!1),this.$log.clearSearchFilter()):(this.showExitButton.set(!0),this.$log.setSearchFilter(e)),this.$log.scrollToBottom()}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom()}canDeactivate(o){return this.$settings.actualLightingMode!=="light"?(window.document.querySelector("body").classList.remove("bg-black"),Promise.resolve(!0)):(this.showSearchBar()&&this.showSearchBar.set(!1),window.document.querySelector("body").classList.remove("light-mode"),new Promise(e=>{let t=o&&(o.includes("/platform-tools/terminal")||o.includes("/logs")),i=this.termTarget()?.nativeElement;i&&i.classList.add("fade-out"),t?setTimeout(()=>{e(!0)},250):(setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black")},250),setTimeout(()=>{e(!0)},500))}))}ngOnDestroy(){window.document.querySelector("body").classList.remove("light-mode"),this.resizeEvent.complete(),this.$log.destroyTerminal()}downloadLogFile(){return C(this,null,function*(){let o=$([{provide:M,useValue:{title:this.$translate.instant("logs.title_download_log_file"),message:this.$translate.instant("logs.download_warning"),confirmButtonLabel:this.$translate.instant("form.button_download"),faIconClass:"fas fa-user-secret primary-text"}}],this.injector),e=this.$modal.open(k,{size:"lg",backdrop:"static",injector:o});try{yield e.result;try{let t=yield this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}),i=this.$log.getSearchFilter();if(i){let ct=(yield t.body.text()).split(`
|
|
2
2
|
`).filter(dt=>dt.replace(/\x1b\[[0-9;]*m/g,"").toLowerCase().includes(i.toLowerCase())),mt=new Blob([ct.join(`
|
|
3
3
|
`)],{type:"text/plain"});(0,O.saveAs)(mt,"homebridge.log.txt")}else(0,O.saveAs)(t.body,"homebridge.log.txt")}catch(t){let i;try{if(t&&typeof t=="object"&&"error"in t){let _=yield t.error.text();i=JSON.parse(_).message}}catch(_){console.error(_)}this.$toastr.error(i||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))}}catch{}})}truncateLogFile(){return C(this,null,function*(){let o=$([{provide:M,useValue:{title:this.$translate.instant("logs.title_truncate_log_file"),message:this.$translate.instant("logs.truncate_log_warning"),confirmButtonLabel:this.$translate.instant("form.button_delete"),confirmButtonClass:"btn-danger",faIconClass:"fas fa-circle-exclamation primary-text"}}],this.injector),e=this.$modal.open(k,{size:"lg",backdrop:"static",injector:o});try{yield e.result;try{yield this.$api.put("/platform-tools/hb-service/log/truncate",{}),this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()}catch(t){console.error(t);let i=t&&typeof t=="object"&&"error"in t&&t.error&&typeof t.error=="object"&&"message"in t.error?String(t.error.message):this.$translate.instant("logs.truncate.error");this.$toastr.error(i,this.$translate.instant("toast.title_error"))}}catch{}})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=j({type:n,selectors:[["ng-component"]],viewQuery:function(e,t){e&1&&N(t.termTarget,ut,5)(t.searchInput,gt,5),e&2&&z(2)},hostBindings:function(e,t){e&1&&h("resize",function(){return t.onWindowResize()},F)},decls:10,vars:9,consts:[["logoutput",""],["searchInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"row"],[1,"flex-column","d-flex","align-items-stretch"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-download"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-trash-alt"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","id","logs-search","formControlName","query",1,"search-bar",3,"placeholder"],["type","button",1,"search-bar-clear"],[1,"search-bar-badge","badge","badge-primary","badge-beta"],["type","button",1,"search-bar-clear",3,"click"],["aria-hidden","true",1,"fas","fa-square-xmark"]],template:function(e,t){e&1&&(m(0,"div",2)(1,"div",3)(2,"h3",4),T(3),a(4,"translate"),c()(),w(5,ft,13,24,"div",5),c(),w(6,wt,8,7,"div",6),m(7,"div",7),p(8,"div",8,0),c()),e&2&&(r(3),L(s(4,7,"menu.linux.label_logs")),r(2),v(t.isAdmin?5:-1),r(),v(t.showSearchBar()?6:-1),r(),B("adjust-for-mobile",!t.showSearchBar())("adjust-for-mobile-with-search",t.showSearchBar()))},dependencies:[st,rt,ot,X,Y,Z,nt,it,Q],styles:["body.light-mode{transition:background-color .25s ease-in-out}#log-output.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}#log-output.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}@keyframes _ngcontent-%COMP%_fadeIn{to{opacity:1}}@keyframes _ngcontent-%COMP%_fadeOut{to{opacity:0}}.search-bar[_ngcontent-%COMP%]{background-color:#111!important;color:#999!important;border:0 #242424!important}@media(hover:hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #242424!important}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #242424!important;box-shadow:inherit!important;color:#eee!important}.search-bar[_ngcontent-%COMP%]::placeholder{color:#636363!important;opacity:1!important}.search-bar.is-invalid[_ngcontent-%COMP%]{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}@media(hover:hover){.search-bar.is-invalid[_ngcontent-%COMP%]:hover{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}}.search-bar.is-invalid[_ngcontent-%COMP%]:focus{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}.search-bar-badge[_ngcontent-%COMP%]{position:absolute;right:10px;top:16px;font-size:.75rem;padding:.25em .5em}.adjust-for-mobile-with-search[_ngcontent-%COMP%]{height:calc(100% - 97px);width:calc(100% + 17px);overflow:hidden}@media(max-width:767px){.adjust-for-mobile-with-search[_ngcontent-%COMP%]{height:calc(100% - 125px);width:calc(100% + 16px)}}"]})}return n})();export{Nt as LogsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as W}from"./chunk-
|
|
1
|
+
import{a as W}from"./chunk-5ZOCCWK4.js";import{e as T}from"./chunk-QJZKXCTT.js";import{a as C}from"./chunk-GIBUKDL3.js";import"./chunk-RZDYLE7I.js";import{b as P}from"./chunk-HU77Q72N.js";import{C as A,D as B,F as N,I as U}from"./chunk-AHP7QTOZ.js";import{Ab as v,Dc as c,Ec as l,Jb as o,Kb as n,Kc as E,Lb as f,Qc as M,Rb as O,Yb as R,Za as e,Zb as h,aa as m,ga as y,ha as I,ic as D,jc as b,kc as a,lc as d,ma as S,mc as g,nb as k,sa as p,w as x,zb as u}from"./chunk-JJ5CEM72.js";import{h as w}from"./chunk-VJN6YUS2.js";function j(i,_){if(i&1&&(o(0,"div",7),a(1),n()),i&2){let t=h();e(),d(t.error())}}function q(i,_){if(i&1&&(o(0,"p",9),a(1),c(2,"translate"),n(),o(3,"div",10)(4,"div",11)(5,"span"),f(6,"i"),a(7),c(8,"translate"),n()(),o(9,"div",11)(10,"span"),f(11,"i"),a(12),c(13,"translate"),n()()()),i&2){let t=h();e(),d(l(2,9,"restart.please_wait_while_server_restarts")),e(5),b(t.uiIcon()),e(),g(" ",l(8,11,"restart.ui_online")," "),e(3),D("grey-text",!t.uiOnline()),e(),b(t.serviceIcon()),e(),g(" ",l(13,13,"restart.service_ready")," ")}}function z(i,_){if(i&1){let t=O();o(0,"p",14)(1,"button",15),R("click",function(){y(t);let s=h(2);return I(s.viewLogs())}),a(2),c(3,"translate"),n()()}i&2&&(e(2),d(l(3,1,"menu.tooltip_view_logs")))}function L(i,_){if(i&1&&(o(0,"div",8)(1,"p"),a(2),c(3,"translate"),n(),o(4,"p",12),a(5),c(6,"translate"),o(7,"span",13),a(8),n()(),u(9,z,4,3,"p",14),n()),i&2){let t=h();e(2),d(l(3,4,"restart.server_is_taking_long_time_to_restart")),e(3),g(" ",l(6,6,"restart.label_restart_command_executed"),": "),e(3),d(t.resp().command||"End Process"),e(),v(t.uiOnline()?9:-1)}}var et=(()=>{class i{$api=m(U);$router=m(T);$settings=m(P);$toastr=m(N);$translate=m(A);$ws=m(W);destroyRef=m(S);uiOnline=p(!1);error=p(!1);resp=p({});timeout=p(!1);uiIcon=E(()=>this.uiOnline()?"far fa-check-circle":"fas fa-circle-notch fa-spin");serviceIcon=E(()=>this.uiOnline()?"fas fa-circle-notch fa-spin":"far fa-circle");io;webrootChanged=!1;statusCheckActive=p(!1);ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.io.socket.connected&&(this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})),this.io.socket.on("homebridge-status",s=>{if(this.statusCheckActive()&&(this.uiOnline.set(!0),s.status==="ok"||s.status==="pending"))if(this.$toastr.success(this.$translate.instant("restart.toast_server_restarted"),this.$translate.instant("toast.title_success")),this.webrootChanged&&!M()){let $=this.$settings.webroot?.replace(/^\/+|\/+$/g,"")||"";window.location.href=$?`/${$}/`:"/"}else this.$router.navigate(["/"])}),this.$router.parseUrl(this.$router.url).queryParams.restarting==="true"?(this.uiOnline.set(!0),this.checkIfServerUp()):this.performRestart()}ngOnDestroy(){this.io.end(),this.statusCheckActive.set(!1)}viewLogs(){this.$router.navigate(["/logs"])}performRestart(){return w(this,null,function*(){try{let t=this.$settings.originalWebroot||"",r=this.$settings.webroot||"";this.webrootChanged=t!==r&&t!==globalThis.webroot.errorCode,this.webrootChanged&&(yield this.$api.put("/server/webroot",{webroot:r}));try{let s=yield this.$api.put("/server/restart",{});this.resp.set(s),this.checkIfServerUp(),s.restartingUI||this.uiOnline.set(!0)}catch(s){console.error(s),this.error.set(this.$translate.instant("restart.toast_server_restart_error")),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}}catch(t){console.error("Failed to update webroot:",t);try{let r=yield this.$api.put("/server/restart",{});this.resp.set(r),this.checkIfServerUp(),r.restartingUI||this.uiOnline.set(!0)}catch(r){console.error(r),this.error.set(this.$translate.instant("restart.toast_server_restart_error")),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}}})}checkIfServerUp(){x(7e3).pipe(C(this.destroyRef)).subscribe(()=>{this.statusCheckActive.set(!0)}),x(4e4).pipe(C(this.destroyRef)).subscribe(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout.set(!0)})}static \u0275fac=function(r){return new(r||i)};static \u0275cmp=k({type:i,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"grey-text","mb-0"],[1,"font-monospace"],[1,"mt-2","mb-0"],[1,"btn","btn-primary","mb-0",3,"click"]],template:function(r,s){r&1&&(o(0,"div",0)(1,"h3",1),a(2),c(3,"translate"),n()(),o(4,"div",2)(5,"div",3),f(6,"i",4),n(),o(7,"div",5)(8,"h4",6),a(9),c(10,"translate"),n(),u(11,j,2,1,"div",7)(12,q,14,15),u(13,L,10,8,"div",8),n()()),r&2&&(e(2),d(l(3,4,"menu.restart.title")),e(7),d(l(10,6,"restart.title_restart")),e(2),v(s.error()?11:12),e(2),v(s.timeout()?13:-1))},dependencies:[B],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return i})();export{et as RestartComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as T}from"./chunk-
|
|
1
|
+
import{e as T}from"./chunk-QJZKXCTT.js";import{a as $,b as O}from"./chunk-GIBUKDL3.js";import{b as G}from"./chunk-RZDYLE7I.js";import{B as Z,C as ee,D as te,c as Q,d as u,e as U,f as W,g as j,j as y,m as J,r as K,s as X,z as Y}from"./chunk-XKDAPCBY.js";import{b as A}from"./chunk-HU77Q72N.js";import{D as z,H,o as D}from"./chunk-AHP7QTOZ.js";import{Ab as f,Dc as l,Ec as d,F as k,Fb as m,Gb as a,Hb as o,Ib as r,Oc as w,P as N,Ua as S,Xb as P,Za as n,Zb as V,aa as c,ec as L,fc as F,hc as q,ic as b,kc as v,lc as C,ma as E,mc as B,n as I,nb as R,o as M,sa as p,zb as g}from"./chunk-JJ5CEM72.js";import{h as x}from"./chunk-VJN6YUS2.js";var ie=["password"],ne=["username"],oe=["otp"];function ae(i,_){if(i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",13),o(),r(3,"input",14,0),l(5,"translate"),o(),a(6,"div",8)(7,"span",12),r(8,"i",15),o(),r(9,"input",16,1),l(11,"translate"),o()),i&2){let t=V();n(3),b("is-invalid",t.form.controls.username.dirty&&t.form.controls.username.errors),m("placeholder",d(5,6,"users.label_username")),n(6),b("is-invalid",t.form.controls.password.dirty&&t.form.controls.password.errors),m("placeholder",d(11,8,"users.label_password"))}}function re(i,_){i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",17),o(),r(3,"input",18,2),l(5,"translate"),o()),i&2&&(n(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function se(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_credentials")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}function le(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_code")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}var xe=(()=>{class i{destroyRef=c(E);$auth=c(G);$router=c(T);$settings=c(A);targetRoute;validNonAdminRoutes=["/accessories","/plugins","/logs","/support"];passwordInput=w("password");usernameInput=w("username");otpInput=w("otp");backgroundStyle=p("");invalidCredentials=p(!1);invalid2faCode=p(!1);twoFactorCodeRequired=p(!1);inProgress=p(!1);form=new j({username:new y("",{nonNullable:!0,validators:[u.required]}),password:new y("",{nonNullable:!0,validators:[u.required]}),otp:new y("",{nonNullable:!0})});formInvalid=O(this.form.statusChanges.pipe(N(this.form.status),M(()=>this.form.invalid)),{initialValue:this.form.invalid});ngOnInit(){this.form.valueChanges.pipe(k(500),$(this.destroyRef)).subscribe(()=>{let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}onSubmit(){return x(this,null,function*(){this.invalidCredentials.set(!1),this.invalid2faCode.set(!1),this.inProgress.set(!0),document.getElementById("submit-button")?.blur();let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t);let s=this.usernameInput()?.nativeElement.value;if(s&&s!==this.form.controls.username.value&&this.form.controls.username.setValue(s),this.twoFactorCodeRequired()){let e=this.otpInput()?.nativeElement.value;e&&e!==this.form.controls.otp.value&&this.form.controls.otp.setValue(e)}try{yield this.$auth.login(this.form.getRawValue()),!this.$auth.user.admin&&!this.validNonAdminRoutes.includes(this.targetRoute)&&(this.targetRoute="/"),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(e){if(e.status===412){let h=this.form.controls.otp;this.twoFactorCodeRequired()?(h.setErrors({invalidCode:!0}),this.invalid2faCode.set(!0)):(h.setValidators([u.required,u.minLength(6),u.maxLength(6)]),h.updateValueAndValidity()),this.twoFactorCodeRequired.set(!0),setTimeout(()=>{document.getElementById("form-ota")?.focus()},100)}else this.invalidCredentials.set(!0)}this.inProgress.set(!1)})}setBackground(){return x(this,null,function*(){if(this.$settings.settingsLoaded||(yield I(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let t=`${H.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle.set(`url('${t}') center/cover`)}})}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=R({type:i,selectors:[["ng-component"]],viewQuery:function(s,e){s&1&&L(e.passwordInput,ie,5)(e.usernameInput,ne,5)(e.otpInput,oe,5),s&2&&F(3)},decls:15,vars:16,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(s,e){s&1&&(a(0,"div",3)(1,"div",4),r(2,"img",5),a(3,"form",6),P("ngSubmit",function(){return e.onSubmit()}),a(4,"h4",7),v(5),l(6,"translate"),o(),g(7,ae,12,10),g(8,re,6,3,"div",8),g(9,se,9,6,"div",9),g(10,le,9,6,"div",9),a(11,"div",10)(12,"button",11),v(13),l(14,"translate"),o()()()()()),s&2&&(q("background",e.backgroundStyle()),b("anim",!e.backgroundStyle()),n(3),m("formGroup",e.form),n(2),C(d(6,12,"setup.welcome_to_homebridge")),n(2),f(e.twoFactorCodeRequired()?-1:7),n(),f(e.twoFactorCodeRequired()?8:-1),n(),f(e.invalidCredentials()?9:-1),n(),f(e.invalid2faCode()?10:-1),n(2),m("disabled",e.formInvalid()),n(),B(" ",d(14,14,"form.button_continue")," "))},dependencies:[ee,J,Q,U,W,Y,Z,te,X,K,D,z],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width:575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return i})();export{xe as LoginComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as ke,c as Ne}from"./chunk-2HD3TOVY.js";import"./chunk-XBR7SSMW.js";import{a as Ae}from"./chunk-R2AXYPVZ.js";import{a as Fe}from"./chunk-UUDM2ZE6.js";import{a as ae}from"./chunk-YKLNKZD5.js";import{a as Be}from"./chunk-PCRT3CPH.js";import"./chunk-HOWYXHPL.js";import"./chunk-O4RPRD43.js";import{a as Ee,b as Re,c as Te}from"./chunk-LVC2MQ7H.js";import{a as we}from"./chunk-SGI3H2QJ.js";import"./chunk-I5AP453W.js";import{s as $,t as Se}from"./chunk-BNNKKGLH.js";import"./chunk-QWCGYWQP.js";import{a as he}from"./chunk-GIBUKDL3.js";import{b as De}from"./chunk-LMM3BN25.js";import{D as ne,b as K,c as Q,d as X,e as Y,f as Z,g as ee,j as V,m as te,r as ie,s as oe}from"./chunk-N5Z4CTHV.js";import{b as Me}from"./chunk-GET4TOQ7.js";import{C as Ce,D as w,I as ye}from"./chunk-FLS573AD.js";import{Ab as C,Cb as be,Db as ce,Dc as s,Eb as pe,Ec as l,Fb as f,Fc as j,Gb as a,Hb as r,Ib as m,Jb as ue,Kb as ge,Kc as J,Lb as ve,Rb as B,Ua as fe,Xb as b,Za as o,Zb as p,_ as me,aa as g,ea as _e,ga as M,ha as D,hc as G,ic as I,jc as P,kc as d,lc as u,mb as de,mc as x,nb as S,rc as W,sa as k,sc as z,tc as U,xc as L,yb as v,yc as xe,zb as h}from"./chunk-JJ5CEM72.js";import{a as N,b as F,h as q}from"./chunk-VJN6YUS2.js";var Ie=(()=>{class t{$activeModal=g($);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["ng-component"]],decls:42,vars:30,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"ms-2","mt-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),d(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),b("click",function(){return i.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),m(10,"i",6),r(),a(11,"h5",7),d(12),s(13,"translate"),r(),a(14,"ul",8)(15,"li"),d(16),s(17,"translate"),r(),a(18,"li"),d(19),s(20,"translate"),r()(),a(21,"h5",9),d(22),s(23,"translate"),r(),a(24,"ul",8)(25,"li"),d(26),s(27,"translate"),r(),a(28,"li"),d(29),s(30,"translate"),r(),a(31,"li"),d(32),s(33,"translate"),r()(),m(34,"app-support-banner"),r(),a(35,"div",10),m(36,"div",11),a(37,"div",12)(38,"button",13),b("click",function(){return i.dismissModal()}),d(39),s(40,"translate"),r()(),m(41,"div",14),r()()()),n&2&&(o(4),u(l(5,10,"support.title")),o(2),v("aria-label",l(7,12,"form.button_close")),o(6),u(l(13,14,"menu.label_accessories")),o(4),u(l(17,16,"accessories.support.acc_1")),o(3),u(l(20,18,"accessories.support.acc_2")),o(3),u(l(23,20,"accessories.title_rooms")),o(4),u(l(27,22,"accessories.support.rooms_1")),o(3),u(l(30,24,"accessories.support.rooms_2")),o(3),u(l(33,26,"accessories.support.rooms_3")),o(7),x(" ",l(40,28,"form.button_close")," "))},dependencies:[Be,w],encapsulation:2})}return t})();var se=new me("ADD_ROOM_MODAL_DATA"),le=new me("EDIT_ROOM_MODAL_DATA");var Ve=(()=>{class t{$activeModal=g($);data=g(se);existingRooms=this.data.existingRooms;roomForm=new ee({roomName:new V("",[X.required]),isDefault:new V(!1)});ngOnInit(){this.roomForm.controls.roomName.addValidators(this.duplicateRoomNameValidator.bind(this)),this.roomForm.controls.roomName.updateValueAndValidity(),this.existingRooms.length===0&&this.roomForm.patchValue({isDefault:!0})}get noExistingRooms(){return this.existingRooms.length===0}duplicateRoomNameValidator(e){if(!e.value)return null;let n=e.value.trim();return n&&this.existingRooms.some(c=>c.name.trim().toLowerCase()===n.toLowerCase())?{duplicateRoom:!0}:null}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.roomForm.invalid||this.$activeModal.close({name:this.roomForm.value.roomName?.trim()||"",isDefault:this.roomForm.value.isDefault||!1})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["ng-component"]],decls:38,vars:26,consts:[[1,"modal-content"],[3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-folder-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["autocomplete","off","type","text","id","form-name","autofocus","","formControlName","roomName",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","isDefault","id","form-default",1,"rendux-input","mb-0",3,"disabled"],["for","form-default",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"form",1),b("ngSubmit",function(){return i.closeModal()}),a(2,"div",2)(3,"h5",3),d(4),s(5,"translate"),r(),a(6,"button",4),s(7,"translate"),b("click",function(){return i.dismissModal()}),r()(),a(8,"div",5)(9,"div",6),m(10,"i",7),r(),a(11,"ul",8)(12,"li",9)(13,"label",10),d(14),s(15,"translate"),m(16,"app-required-indicator"),r(),a(17,"div",11),m(18,"input",12),r()(),a(19,"li",13)(20,"span",14),d(21),s(22,"translate"),m(23,"app-required-indicator"),r(),a(24,"div",15),m(25,"input",16),s(26,"translate"),m(27,"label",17),r()()()(),a(28,"div",18)(29,"div",14)(30,"button",19),b("click",function(){return i.dismissModal()}),d(31),s(32,"translate"),r()(),m(33,"div",20),a(34,"div",21)(35,"button",22),d(36),s(37,"translate"),r()()()()()),n&2&&(o(),f("formGroup",i.roomForm),o(3),u(l(5,12,"accessories.button_add_room")),o(2),v("aria-label",l(7,14,"form.button_close")),o(8),x(" ",l(15,16,"accessories.room_name")),o(4),I("is-invalid",i.roomForm.controls.roomName.touched&&i.roomForm.controls.roomName.invalid),o(3),x(" ",l(22,18,"accessories.control.default_room")),o(4),f("disabled",i.noExistingRooms),v("aria-label",l(26,20,"accessories.control.default_room")),o(6),x(" ",l(32,22,"form.button_close")," "),o(4),f("disabled",i.roomForm.invalid),o(),x(" ",l(37,24,"form.button_save")," "))},dependencies:[ne,te,Q,K,Y,Z,oe,ie,ae,w],encapsulation:2})}return t})();var $e=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["app-drag-here-placeholder"]],decls:5,vars:3,consts:[[1,"accessory-box"],[1,"fas","fa-arrow-alt-circle-down","accessory-icon"],[1,"accessory-label"]],template:function(n,i){n&1&&(ue(0,"div",0),ve(1,"i",1),ue(2,"div",2),d(3),s(4,"translate"),ge()()),n&2&&(o(3),u(l(4,1,"accessories.control.drag_here")))},dependencies:[w],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var Oe=t=>({roomName:t});function je(t,_){if(t&1&&(a(0,"li"),d(1),s(2,"translate"),r()),t&2){let e=p(2);o(),u(j(2,1,"accessories.delete_room_move_accessories",L(4,Oe,e.targetRoomName())))}}function He(t,_){if(t&1&&(a(0,"li"),d(1),s(2,"translate"),r()),t&2){let e=p(2);o(),u(j(2,1,"accessories.delete_room_new_default",L(4,Oe,e.newDefaultRoomName())))}}function qe(t,_){if(t&1&&(a(0,"div",18)(1,"div",21),d(2),s(3,"translate"),m(4,"br"),a(5,"ul",25),h(6,je,3,6,"li"),h(7,He,3,6,"li"),r()()()),t&2){let e=p();o(2),x(" ",l(3,3,"common.phrases.are_you_sure")," "),o(4),C(e.targetRoomName()?6:-1),o(),C(e.isDefault&&e.newDefaultRoomName()?7:-1)}}var Pe=(()=>{class t{$activeModal=g($);data=g(le);roomName=this.data.roomName;isDefault=this.data.isDefault;existingRooms=this.data.existingRooms;currentRoomIndex=this.data.currentRoomIndex;deleteMode=k(!1);formWasInvalid=k(!1);initialFormValue={roomName:null,isDefault:null};roomForm=new ee({roomName:new V("",[X.required]),isDefault:new V(!1)});ngOnInit(){this.roomForm.patchValue({roomName:this.roomName,isDefault:this.isDefault}),this.initialFormValue=this.roomForm.getRawValue(),this.roomForm.controls.roomName.addValidators(this.duplicateRoomNameValidator.bind(this)),this.roomForm.controls.roomName.updateValueAndValidity(),(this.isOnlyRoom()||this.isDefault)&&this.roomForm.controls.isDefault.disable()}duplicateRoomNameValidator(e){if(!e.value)return null;let n=e.value.trim();return n&&this.existingRooms.some((c,y)=>y!==this.currentRoomIndex&&c.name.trim().toLowerCase()===n.toLowerCase())?{duplicateRoom:!0}:null}isOnlyRoom=J(()=>this.existingRooms.length===1);targetRoomName=J(()=>this.isDefault?this.existingRooms.filter((n,i)=>i!==this.currentRoomIndex)[0]?.name||"":this.existingRooms.find(n=>n.isDefault)?.name||this.existingRooms[0]?.name||"");newDefaultRoomName=J(()=>this.isDefault&&this.existingRooms.filter((n,i)=>i!==this.currentRoomIndex)[0]?.name||"");toggleDeleteMode(e){this.deleteMode.set(!this.deleteMode()),this.deleteMode()?(this.formWasInvalid.set(this.roomForm.invalid),this.roomForm.disable()):(this.roomForm.enable(),(this.isOnlyRoom()||this.isDefault)&&this.roomForm.controls.isDefault.disable()),e.target.blur()}isFormUnchanged(){return JSON.stringify(this.roomForm.getRawValue())===JSON.stringify(this.initialFormValue)}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){if(!(!this.deleteMode()&&this.roomForm.invalid))if(this.deleteMode())this.$activeModal.close({delete:!0});else{let e=this.roomForm.getRawValue();this.$activeModal.close({name:e.roomName?.trim()||"",isDefault:e.isDefault||!1})}}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["ng-component"]],decls:42,vars:37,consts:[[1,"modal-content"],[3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["autocomplete","off","type","text","id","form-name","autofocus","","formControlName","roomName",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","isDefault","id","form-default",1,"rendux-input","mb-0",3,"disabled"],["for","form-default",1,"rendux-label","ms-3"],[1,"alert","alert-warning","mt-3","mb-0"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-elegant","me-2",3,"click","disabled"],["type","submit","data-bs-dismiss","modal",1,"btn",3,"disabled"],[1,"d-inline-block","text-start","mb-0"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"form",1),b("ngSubmit",function(){return i.closeModal()}),a(2,"div",2)(3,"h5",3),d(4),s(5,"translate"),r(),a(6,"button",4),s(7,"translate"),b("click",function(){return i.dismissModal()}),r()(),a(8,"div",5)(9,"div",6),m(10,"i",7),r(),a(11,"ul",8)(12,"li",9)(13,"label",10),d(14),s(15,"translate"),m(16,"app-required-indicator"),r(),a(17,"div",11),m(18,"input",12),r()(),a(19,"li",13)(20,"span",14),d(21),s(22,"translate"),m(23,"app-required-indicator"),r(),a(24,"div",15),m(25,"input",16),s(26,"translate"),m(27,"label",17),r()()(),h(28,qe,8,5,"div",18),r(),a(29,"div",19)(30,"div",14)(31,"button",20),b("click",function(){return i.dismissModal()}),d(32),s(33,"translate"),r()(),m(34,"div",21),a(35,"div",22)(36,"button",23),s(37,"translate"),b("click",function(y){return i.toggleDeleteMode(y)}),m(38,"i"),r(),a(39,"button",24),d(40),s(41,"translate"),r()()()()()),n&2&&(o(),f("formGroup",i.roomForm),o(3),u(l(5,21,"accessories.button_edit_room")),o(2),v("aria-label",l(7,23,"form.button_close")),o(5),G("opacity",i.deleteMode()?"0.25":"1"),o(3),x(" ",l(15,25,"accessories.room_name")),o(4),I("is-invalid",i.roomForm.controls.roomName.touched&&i.roomForm.controls.roomName.invalid),o(3),x(" ",l(22,27,"accessories.control.default_room")),o(4),f("disabled",i.isOnlyRoom()||i.isDefault),v("aria-label",l(26,29,"accessories.control.default_room")),o(3),C(i.deleteMode()?28:-1),o(4),x(" ",l(33,31,"form.button_close")," "),o(4),f("disabled",i.isOnlyRoom()),v("aria-label",l(37,33,"accessories.button_delete_room")),o(2),P(i.deleteMode()?"fas fa-undo":"fas fa-trash"),o(),P(i.deleteMode()?"btn-danger":"btn-primary"),f("disabled",!i.deleteMode()&&(i.roomForm.invalid||i.isFormUnchanged())),o(),x(" ",l(41,35,i.deleteMode()?"form.button_delete":"form.button_save")," "))},dependencies:[ne,te,Q,K,Y,Z,oe,ie,ae,w],encapsulation:2})}return t})();var Ge=(t,_)=>({"fa-eye":t,"fa-eye-slash":_}),We=t=>({link:t}),ze=(t,_)=>_.name;function Ue(t,_){if(t&1){let e=B();a(0,"button",8),s(1,"translate"),s(2,"translate"),b("click",function(){M(e);let i=p(2);return D(i.addRoom())}),m(3,"i",9),r(),a(4,"button",8),s(5,"translate"),s(6,"translate"),s(7,"translate"),s(8,"translate"),b("click",function(){M(e);let i=p(2);return D(i.hideHidden.set(!i.hideHidden()))}),m(9,"i",10),r(),a(10,"div",11)(11,"button",12),s(12,"translate"),s(13,"translate"),b("click",function(){M(e);let i=p(2);return D(i.toggleLayoutLock())}),m(14,"i",13),r(),a(15,"button",12),s(16,"translate"),s(17,"translate"),b("click",function(){M(e);let i=p(2);return D(i.toggleLayoutLock())}),m(18,"i",14),r()()}if(t&2){let e=p(2);f("hidden",e.isMobile())("openDelay",150)("ngbTooltip",l(1,18,"accessories.button_add_room")),v("aria-label",l(2,20,"accessories.button_add_room")),o(4),f("hidden",e.isMobile())("openDelay",150)("ngbTooltip",e.hideHidden()?l(5,22,"accessories.button_hidden_show"):l(6,24,"accessories.button_hidden_hide")),v("aria-label",e.hideHidden()?l(7,26,"accessories.button_hidden_show"):l(8,28,"accessories.button_hidden_hide")),o(5),P(xe(38,Ge,!e.hideHidden(),e.hideHidden())),o(2),f("disabled",!e.isMobile())("openDelay",150)("ngbTooltip",l(12,30,"form.button_unlock")),v("aria-label",l(13,32,"form.button_unlock")),o(4),f("disabled",e.isMobile())("openDelay",150)("ngbTooltip",l(16,34,"form.button_lock")),v("aria-label",l(17,36,"form.button_lock"))}}function Je(t,_){t&1&&m(0,"app-spinner")}function Ke(t,_){if(t&1){let e=B();a(0,"div",0)(1,"div",21)(2,"h5",22),d(3),r(),a(4,"button",23),s(5,"translate"),s(6,"translate"),b("click",function(){M(e);let i=p().$index,c=p(4);return D(c.editRoom(i))}),m(7,"i",24),r()()()}if(t&2){let e=p().$implicit,n=p(4);o(2),I("cursor-move",!n.isMobile()),o(),x(" ",e.name," "),o(),G("visibility",n.isMobile()?"hidden":"visible")("pointer-events",n.isMobile()?"none":"auto"),f("openDelay",150)("ngbTooltip",l(5,10,"accessories.button_edit_room")),v("aria-label",l(6,12,"accessories.button_edit_room"))}}function Qe(t,_){if(t&1&&(a(0,"div",27),m(1,"app-accessory-tile",28),r()),t&2){let e=p().$implicit;o(),f("service",e)}}function Xe(t,_){if(t&1&&h(0,Qe,2,1,"div",27),t&2){let e=_.$implicit,n=p(6);C(!n.hideHidden()||!e.hidden?0:-1)}}function Ye(t,_){if(t&1){let e=B();a(0,"div",25),U("dragulaModelChange",function(i){M(e);let c=p().$implicit;return z(c.services,i)||(c.services=i),D(i)}),ce(1,Xe,1,1,null,null,be),m(3,"div",26)(4,"div",26)(5,"div",26)(6,"div",26)(7,"div",26)(8,"div",26)(9,"div",26)(10,"div",26)(11,"div",26)(12,"div",26),r()}if(t&2){let e=p().$implicit,n=p(4);I("justify-content-between",n.isMobile()),f("dragula","services-bag"),W("dragulaModel",e.services),o(),pe(e.services)}}function Ze(t,_){if(t&1){let e=B();a(0,"div",29),U("dragulaModelChange",function(i){M(e);let c=p().$implicit;return z(c.services,i)||(c.services=i),D(i)}),m(1,"app-drag-here-placeholder",30),r()}if(t&2){let e=p().$implicit;f("dragula","services-bag"),W("dragulaModel",e.services)}}function et(t,_){if(t&1&&(a(0,"div"),h(1,Ke,8,14,"div",0),a(2,"div",18),h(3,Ye,13,4,"div",19),h(4,Ze,2,2,"div",20),r()()),t&2){let e=_.$implicit,n=p(4);o(),C(!n.isMobile()||e.services.length?1:-1),o(2),C(e.services.length?3:-1),o(),C(!e.services.length&&!n.isMobile()?4:-1)}}function tt(t,_){if(t&1){let e=B();a(0,"div",17),U("dragulaModelChange",function(i){M(e);let c=p(3);return z(c.rooms,i)||(c.rooms=i),D(i)}),ce(1,et,5,3,"div",null,ze),r()}if(t&2){let e=p(3);f("dragula","rooms-bag"),W("dragulaModel",e.rooms),o(),pe(e.rooms)}}function it(t,_){t&1&&(a(0,"div",16)(1,"div",31)(2,"div",32),m(3,"i",33),r(),a(4,"h5",34),d(5),s(6,"translate"),r(),a(7,"p",35),d(8),s(9,"translate"),r(),a(10,"p",36),d(11),s(12,"translate"),r()()()),t&2&&(o(5),u(l(6,3,"accessories.no_plugins.title")),o(3),u(l(9,5,"accessories.no_plugins.message_1")),o(3),u(l(12,7,"accessories.no_plugins.message_2")))}function ot(t,_){if(t&1&&h(0,tt,3,2,"div",15)(1,it,13,9,"div",16),t&2){let e=p(2);C(e.hasPlugins()?0:1)}}function nt(t,_){if(t&1){let e=B();a(0,"div",1)(1,"div",2)(2,"h3",3),d(3),s(4,"translate"),r()(),a(5,"div",4)(6,"button",5),s(7,"translate"),b("click",function(){M(e);let i=p();return D(i.openSupport())}),m(8,"i",6),r()(),a(9,"div",7),h(10,Ue,19,41),a(11,"button",5),s(12,"translate"),b("click",function(){M(e);let i=p();return D(i.openSupport())}),m(13,"i",6),r()()(),h(14,Je,1,0,"app-spinner")(15,ot,2,1)}if(t&2){let e=p();o(3),u(l(4,5,"menu.label_accessories")),o(3),v("aria-label",l(7,7,"support.title")),o(4),C(e.hasPlugins()?10:-1),o(),v("aria-label",l(12,9,"support.title")),o(3),C(e.loading()?14:15)}}function at(t,_){t&1&&(a(0,"p",42),d(1),s(2,"translate"),r()),t&2&&(o(),u(l(2,1,"accessories.settings_link")))}function rt(t,_){if(t&1&&(a(0,"div",0)(1,"div",37)(2,"h3",38),d(3),s(4,"translate"),r()(),a(5,"div",16)(6,"div",39)(7,"div",32),m(8,"i",40),r(),a(9,"h5",34),d(10),s(11,"translate"),r(),m(12,"p",41),s(13,"translate"),h(14,at,3,3,"p",42),r()()()),t&2){let e=p();o(3),u(l(4,4,"menu.label_accessories")),o(7),u(l(11,6,"accessories.control_disabled")),o(2),f("innerHTML",j(13,8,"accessories.message_must_use_insecure_mode",L(11,We,e.linkInsecure)),fe),o(2),C(e.isAdmin?14:-1)}}var Zt=(()=>{class t{$accessories=g(ke);$api=g(ye);$auth=g(De);dragulaService=g(Ee);injector=g(_e);$modal=g(Se);$settings=g(Me);$md=g(Fe);$translate=g(Ce);isAdmin=this.$auth.user.admin;enableAccessories=this.$settings.env.enableAccessories;isMobile=k(!1);hideHidden=k(!0);linkInsecure='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Enabling-Accessory-Control" target="_blank"><i class="fa fa-external-link-alt primary-text"></i></a>';hasPlugins=k(!1);loading=k(!0);get rooms(){return this.$accessories.rooms()}set rooms(e){this.$accessories.rooms.set(e)}constructor(){let e=this.dragulaService;this.isMobile.set(this.$md.detect.mobile()),e.createGroup("rooms-bag",{moves:(n,i,c)=>!this.isMobile()&&c.classList.contains("drag-handle")}),e.createGroup("services-bag",{moves:n=>!this.isMobile()&&!n.classList.contains("no-drag")}),e.drop().pipe(he()).subscribe(()=>{setTimeout(()=>{this.$accessories.saveLayout()})}),this.isMobile.set(!0)}ngOnInit(){let e=this.$translate.instant("menu.label_accessories");this.$settings.setPageTitle(e),this.$accessories.start(),this.checkForPlugins()}addRoom(){return q(this,null,function*(){let e=de([{provide:se,useValue:{existingRooms:this.$accessories.rooms()}}],this.injector),n=this.$modal.open(Ve,{size:"lg",backdrop:"static",injector:e});try{let i=yield n.result;if(!i?.name||!i.name.length)return;i.isDefault&&this.$accessories.rooms.update(c=>c.map(y=>F(N({},y),{isDefault:!1}))),this.$accessories.rooms.update(c=>[...c,{name:i.name,isDefault:i.isDefault,services:[]}]),this.$accessories.saveLayout(),this.isMobile()&&this.toggleLayoutLock()}catch{}})}editRoom(e){return q(this,null,function*(){let n=this.$accessories.rooms()[e];if(!n)return;let i=de([{provide:le,useValue:{roomName:n.name,isDefault:n.isDefault||!1,existingRooms:this.$accessories.rooms(),currentRoomIndex:e}}],this.injector),c=this.$modal.open(Pe,{size:"lg",backdrop:"static",injector:i});try{let y=yield c.result;if(y?.delete){let R=this.$accessories.rooms()[e];if(!R)return;let A;if(R.isDefault)A=e===0?1:0;else{let T=this.$accessories.rooms().findIndex(E=>E.isDefault);A=T!==-1?T:0}R.isDefault&&this.$accessories.rooms.update(T=>T.map((E,O)=>O===A?F(N({},E),{isDefault:!0}):F(N({},E),{isDefault:!1})));let H=R.services;H.length>0&&this.$accessories.rooms.update(T=>T.map((E,O)=>O===A?F(N({},E),{services:[...E.services,...H]}):E)),this.$accessories.rooms.update(T=>T.filter((E,O)=>O!==e)),this.$accessories.saveLayout();return}if(!y?.name||!y.name.length)return;y.isDefault&&this.$accessories.rooms.update(R=>R.map(A=>F(N({},A),{isDefault:!1}))),this.$accessories.rooms.update(R=>R.map((A,H)=>H===e?F(N({},A),{name:y.name,isDefault:y.isDefault}):A)),this.$accessories.saveLayout()}catch{}})}toggleLayoutLock(){this.isMobile.set(!this.isMobile()),this.isMobile()?document.querySelectorAll(".services-bag").forEach(n=>{for(let i=0;i<10;i+=1){let c=document.createElement("div");c.className="accessory-box invisible py-0 my-0",c.style.height="0",n.appendChild(c)}}):document.querySelectorAll(".invisible").forEach(n=>n.remove())}openSupport(){this.$modal.open(Ie,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.$accessories.stop(),this.dragulaService.destroy("rooms-bag"),this.dragulaService.destroy("services-bag")}checkForPlugins(){return q(this,null,function*(){try{let e=yield this.$api.get("/plugins");this.hasPlugins.set(e.length>1)}catch(e){console.error(e),this.hasPlugins.set(!0)}finally{this.loading.set(!1)}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["app-accessories"]],decls:2,vars:1,consts:[[1,"row"],[1,"row","mb-3"],[1,"col-9","col-sm-6"],[1,"primary-text","m-0"],[1,"col-3","col-sm-6","text-end","d-inline-block","d-sm-none"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"col-3","col-sm-6","text-end","d-none","d-sm-inline-block"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","hidden","openDelay","ngbTooltip"],[1,"fas","fa-folder-plus"],[1,"fas"],["role","group",1,"btn-group","me-2"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0",3,"click","disabled","openDelay","ngbTooltip"],[1,"fas","fa-unlock"],[1,"fas","fa-lock"],[3,"dragula","dragulaModel"],[1,"col-12","text-center"],[3,"dragulaModelChange","dragula","dragulaModel"],[1,"row","mb-4"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"justify-content-between","dragula","dragulaModel"],[1,"col-md-12","d-flex","flex-wrap","noselect",3,"dragula","dragulaModel"],[1,"col-md-12","d-flex","align-items-center"],[1,"primary-text","drag-handle","room-title","m-0","mb-1","mb-sm-0","flex-grow-1"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","ms-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-cog"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"dragulaModelChange","dragula","dragulaModel"],[1,"accessory-box","invisible","py-0","my-0",2,"height","0"],[1,"accessory-item","accessory-tab"],[3,"service"],[1,"col-md-12","d-flex","flex-wrap","noselect",3,"dragulaModelChange","dragula","dragulaModel"],[1,"no-drag"],["role","alert",1,"alert","alert-warning","p-5"],[1,"text-center","mb-3"],[1,"fas","fa-plug","primary-text",2,"font-size","75px"],[1,"mb-3","mt-0"],[1,"mb-0","small"],[1,"mb-0","small","mt-2"],[1,"col-12"],[1,"primary-text","m-0","mb-3"],["role","alert",1,"alert","alert-warning","p-4"],[1,"fas","fa-lightbulb","primary-text",2,"font-size","75px"],[1,"mb-0","small",3,"innerHTML"],[1,"mt-2","mb-0","small"]],template:function(n,i){n&1&&h(0,nt,16,11)(1,rt,15,13,"div",0),n&2&&C(i.enableAccessories?0:1)},dependencies:[we,Te,Re,Ne,$e,Ae,w],styles:[".room-title[_ngcontent-%COMP%]{margin-left:10px}@media(max-width:575px){.room-title[_ngcontent-%COMP%]{margin-left:7px}}.services-bag[_ngcontent-%COMP%]{min-height:170px}@media(max-width:575px){.services-bag[_ngcontent-%COMP%]{min-height:initial}}.cursor-move[_ngcontent-%COMP%]{cursor:move}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return t})();export{Zt as AccessoriesComponent};
|
|
1
|
+
import{b as ke,c as Ne}from"./chunk-I5UU2IJZ.js";import"./chunk-TQLAUKPX.js";import{a as Ae}from"./chunk-R2AXYPVZ.js";import{a as Fe}from"./chunk-UUDM2ZE6.js";import{a as ae}from"./chunk-YKLNKZD5.js";import{a as Be}from"./chunk-YKKWB4CO.js";import"./chunk-HOWYXHPL.js";import"./chunk-5ZOCCWK4.js";import{a as Ee,b as Re,c as Te}from"./chunk-LVC2MQ7H.js";import{a as we}from"./chunk-SGI3H2QJ.js";import"./chunk-I5AP453W.js";import{s as $,t as Se}from"./chunk-BNNKKGLH.js";import"./chunk-QJZKXCTT.js";import{a as he}from"./chunk-GIBUKDL3.js";import{b as De}from"./chunk-RZDYLE7I.js";import{D as ne,b as K,c as Q,d as X,e as Y,f as Z,g as ee,j as V,m as te,r as ie,s as oe}from"./chunk-XKDAPCBY.js";import{b as Me}from"./chunk-HU77Q72N.js";import{C as Ce,D as w,I as ye}from"./chunk-AHP7QTOZ.js";import{Ab as C,Cb as be,Db as ce,Dc as s,Eb as pe,Ec as l,Fb as f,Fc as j,Gb as a,Hb as r,Ib as m,Jb as ue,Kb as ge,Kc as J,Lb as ve,Rb as B,Ua as fe,Xb as b,Za as o,Zb as p,_ as me,aa as g,ea as _e,ga as M,ha as D,hc as G,ic as I,jc as P,kc as d,lc as u,mb as de,mc as x,nb as S,rc as W,sa as k,sc as z,tc as U,xc as L,yb as v,yc as xe,zb as h}from"./chunk-JJ5CEM72.js";import{a as N,b as F,h as q}from"./chunk-VJN6YUS2.js";var Ie=(()=>{class t{$activeModal=g($);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["ng-component"]],decls:42,vars:30,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"ms-2","mt-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),d(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),b("click",function(){return i.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),m(10,"i",6),r(),a(11,"h5",7),d(12),s(13,"translate"),r(),a(14,"ul",8)(15,"li"),d(16),s(17,"translate"),r(),a(18,"li"),d(19),s(20,"translate"),r()(),a(21,"h5",9),d(22),s(23,"translate"),r(),a(24,"ul",8)(25,"li"),d(26),s(27,"translate"),r(),a(28,"li"),d(29),s(30,"translate"),r(),a(31,"li"),d(32),s(33,"translate"),r()(),m(34,"app-support-banner"),r(),a(35,"div",10),m(36,"div",11),a(37,"div",12)(38,"button",13),b("click",function(){return i.dismissModal()}),d(39),s(40,"translate"),r()(),m(41,"div",14),r()()()),n&2&&(o(4),u(l(5,10,"support.title")),o(2),v("aria-label",l(7,12,"form.button_close")),o(6),u(l(13,14,"menu.label_accessories")),o(4),u(l(17,16,"accessories.support.acc_1")),o(3),u(l(20,18,"accessories.support.acc_2")),o(3),u(l(23,20,"accessories.title_rooms")),o(4),u(l(27,22,"accessories.support.rooms_1")),o(3),u(l(30,24,"accessories.support.rooms_2")),o(3),u(l(33,26,"accessories.support.rooms_3")),o(7),x(" ",l(40,28,"form.button_close")," "))},dependencies:[Be,w],encapsulation:2})}return t})();var se=new me("ADD_ROOM_MODAL_DATA"),le=new me("EDIT_ROOM_MODAL_DATA");var Ve=(()=>{class t{$activeModal=g($);data=g(se);existingRooms=this.data.existingRooms;roomForm=new ee({roomName:new V("",[X.required]),isDefault:new V(!1)});ngOnInit(){this.roomForm.controls.roomName.addValidators(this.duplicateRoomNameValidator.bind(this)),this.roomForm.controls.roomName.updateValueAndValidity(),this.existingRooms.length===0&&this.roomForm.patchValue({isDefault:!0})}get noExistingRooms(){return this.existingRooms.length===0}duplicateRoomNameValidator(e){if(!e.value)return null;let n=e.value.trim();return n&&this.existingRooms.some(c=>c.name.trim().toLowerCase()===n.toLowerCase())?{duplicateRoom:!0}:null}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.roomForm.invalid||this.$activeModal.close({name:this.roomForm.value.roomName?.trim()||"",isDefault:this.roomForm.value.isDefault||!1})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["ng-component"]],decls:38,vars:26,consts:[[1,"modal-content"],[3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-folder-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["autocomplete","off","type","text","id","form-name","autofocus","","formControlName","roomName",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","isDefault","id","form-default",1,"rendux-input","mb-0",3,"disabled"],["for","form-default",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"form",1),b("ngSubmit",function(){return i.closeModal()}),a(2,"div",2)(3,"h5",3),d(4),s(5,"translate"),r(),a(6,"button",4),s(7,"translate"),b("click",function(){return i.dismissModal()}),r()(),a(8,"div",5)(9,"div",6),m(10,"i",7),r(),a(11,"ul",8)(12,"li",9)(13,"label",10),d(14),s(15,"translate"),m(16,"app-required-indicator"),r(),a(17,"div",11),m(18,"input",12),r()(),a(19,"li",13)(20,"span",14),d(21),s(22,"translate"),m(23,"app-required-indicator"),r(),a(24,"div",15),m(25,"input",16),s(26,"translate"),m(27,"label",17),r()()()(),a(28,"div",18)(29,"div",14)(30,"button",19),b("click",function(){return i.dismissModal()}),d(31),s(32,"translate"),r()(),m(33,"div",20),a(34,"div",21)(35,"button",22),d(36),s(37,"translate"),r()()()()()),n&2&&(o(),f("formGroup",i.roomForm),o(3),u(l(5,12,"accessories.button_add_room")),o(2),v("aria-label",l(7,14,"form.button_close")),o(8),x(" ",l(15,16,"accessories.room_name")),o(4),I("is-invalid",i.roomForm.controls.roomName.touched&&i.roomForm.controls.roomName.invalid),o(3),x(" ",l(22,18,"accessories.control.default_room")),o(4),f("disabled",i.noExistingRooms),v("aria-label",l(26,20,"accessories.control.default_room")),o(6),x(" ",l(32,22,"form.button_close")," "),o(4),f("disabled",i.roomForm.invalid),o(),x(" ",l(37,24,"form.button_save")," "))},dependencies:[ne,te,Q,K,Y,Z,oe,ie,ae,w],encapsulation:2})}return t})();var $e=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["app-drag-here-placeholder"]],decls:5,vars:3,consts:[[1,"accessory-box"],[1,"fas","fa-arrow-alt-circle-down","accessory-icon"],[1,"accessory-label"]],template:function(n,i){n&1&&(ue(0,"div",0),ve(1,"i",1),ue(2,"div",2),d(3),s(4,"translate"),ge()()),n&2&&(o(3),u(l(4,1,"accessories.control.drag_here")))},dependencies:[w],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var Oe=t=>({roomName:t});function je(t,_){if(t&1&&(a(0,"li"),d(1),s(2,"translate"),r()),t&2){let e=p(2);o(),u(j(2,1,"accessories.delete_room_move_accessories",L(4,Oe,e.targetRoomName())))}}function He(t,_){if(t&1&&(a(0,"li"),d(1),s(2,"translate"),r()),t&2){let e=p(2);o(),u(j(2,1,"accessories.delete_room_new_default",L(4,Oe,e.newDefaultRoomName())))}}function qe(t,_){if(t&1&&(a(0,"div",18)(1,"div",21),d(2),s(3,"translate"),m(4,"br"),a(5,"ul",25),h(6,je,3,6,"li"),h(7,He,3,6,"li"),r()()()),t&2){let e=p();o(2),x(" ",l(3,3,"common.phrases.are_you_sure")," "),o(4),C(e.targetRoomName()?6:-1),o(),C(e.isDefault&&e.newDefaultRoomName()?7:-1)}}var Pe=(()=>{class t{$activeModal=g($);data=g(le);roomName=this.data.roomName;isDefault=this.data.isDefault;existingRooms=this.data.existingRooms;currentRoomIndex=this.data.currentRoomIndex;deleteMode=k(!1);formWasInvalid=k(!1);initialFormValue={roomName:null,isDefault:null};roomForm=new ee({roomName:new V("",[X.required]),isDefault:new V(!1)});ngOnInit(){this.roomForm.patchValue({roomName:this.roomName,isDefault:this.isDefault}),this.initialFormValue=this.roomForm.getRawValue(),this.roomForm.controls.roomName.addValidators(this.duplicateRoomNameValidator.bind(this)),this.roomForm.controls.roomName.updateValueAndValidity(),(this.isOnlyRoom()||this.isDefault)&&this.roomForm.controls.isDefault.disable()}duplicateRoomNameValidator(e){if(!e.value)return null;let n=e.value.trim();return n&&this.existingRooms.some((c,y)=>y!==this.currentRoomIndex&&c.name.trim().toLowerCase()===n.toLowerCase())?{duplicateRoom:!0}:null}isOnlyRoom=J(()=>this.existingRooms.length===1);targetRoomName=J(()=>this.isDefault?this.existingRooms.filter((n,i)=>i!==this.currentRoomIndex)[0]?.name||"":this.existingRooms.find(n=>n.isDefault)?.name||this.existingRooms[0]?.name||"");newDefaultRoomName=J(()=>this.isDefault&&this.existingRooms.filter((n,i)=>i!==this.currentRoomIndex)[0]?.name||"");toggleDeleteMode(e){this.deleteMode.set(!this.deleteMode()),this.deleteMode()?(this.formWasInvalid.set(this.roomForm.invalid),this.roomForm.disable()):(this.roomForm.enable(),(this.isOnlyRoom()||this.isDefault)&&this.roomForm.controls.isDefault.disable()),e.target.blur()}isFormUnchanged(){return JSON.stringify(this.roomForm.getRawValue())===JSON.stringify(this.initialFormValue)}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){if(!(!this.deleteMode()&&this.roomForm.invalid))if(this.deleteMode())this.$activeModal.close({delete:!0});else{let e=this.roomForm.getRawValue();this.$activeModal.close({name:e.roomName?.trim()||"",isDefault:e.isDefault||!1})}}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["ng-component"]],decls:42,vars:37,consts:[[1,"modal-content"],[3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["autocomplete","off","type","text","id","form-name","autofocus","","formControlName","roomName",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","isDefault","id","form-default",1,"rendux-input","mb-0",3,"disabled"],["for","form-default",1,"rendux-label","ms-3"],[1,"alert","alert-warning","mt-3","mb-0"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-elegant","me-2",3,"click","disabled"],["type","submit","data-bs-dismiss","modal",1,"btn",3,"disabled"],[1,"d-inline-block","text-start","mb-0"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"form",1),b("ngSubmit",function(){return i.closeModal()}),a(2,"div",2)(3,"h5",3),d(4),s(5,"translate"),r(),a(6,"button",4),s(7,"translate"),b("click",function(){return i.dismissModal()}),r()(),a(8,"div",5)(9,"div",6),m(10,"i",7),r(),a(11,"ul",8)(12,"li",9)(13,"label",10),d(14),s(15,"translate"),m(16,"app-required-indicator"),r(),a(17,"div",11),m(18,"input",12),r()(),a(19,"li",13)(20,"span",14),d(21),s(22,"translate"),m(23,"app-required-indicator"),r(),a(24,"div",15),m(25,"input",16),s(26,"translate"),m(27,"label",17),r()()(),h(28,qe,8,5,"div",18),r(),a(29,"div",19)(30,"div",14)(31,"button",20),b("click",function(){return i.dismissModal()}),d(32),s(33,"translate"),r()(),m(34,"div",21),a(35,"div",22)(36,"button",23),s(37,"translate"),b("click",function(y){return i.toggleDeleteMode(y)}),m(38,"i"),r(),a(39,"button",24),d(40),s(41,"translate"),r()()()()()),n&2&&(o(),f("formGroup",i.roomForm),o(3),u(l(5,21,"accessories.button_edit_room")),o(2),v("aria-label",l(7,23,"form.button_close")),o(5),G("opacity",i.deleteMode()?"0.25":"1"),o(3),x(" ",l(15,25,"accessories.room_name")),o(4),I("is-invalid",i.roomForm.controls.roomName.touched&&i.roomForm.controls.roomName.invalid),o(3),x(" ",l(22,27,"accessories.control.default_room")),o(4),f("disabled",i.isOnlyRoom()||i.isDefault),v("aria-label",l(26,29,"accessories.control.default_room")),o(3),C(i.deleteMode()?28:-1),o(4),x(" ",l(33,31,"form.button_close")," "),o(4),f("disabled",i.isOnlyRoom()),v("aria-label",l(37,33,"accessories.button_delete_room")),o(2),P(i.deleteMode()?"fas fa-undo":"fas fa-trash"),o(),P(i.deleteMode()?"btn-danger":"btn-primary"),f("disabled",!i.deleteMode()&&(i.roomForm.invalid||i.isFormUnchanged())),o(),x(" ",l(41,35,i.deleteMode()?"form.button_delete":"form.button_save")," "))},dependencies:[ne,te,Q,K,Y,Z,oe,ie,ae,w],encapsulation:2})}return t})();var Ge=(t,_)=>({"fa-eye":t,"fa-eye-slash":_}),We=t=>({link:t}),ze=(t,_)=>_.name;function Ue(t,_){if(t&1){let e=B();a(0,"button",8),s(1,"translate"),s(2,"translate"),b("click",function(){M(e);let i=p(2);return D(i.addRoom())}),m(3,"i",9),r(),a(4,"button",8),s(5,"translate"),s(6,"translate"),s(7,"translate"),s(8,"translate"),b("click",function(){M(e);let i=p(2);return D(i.hideHidden.set(!i.hideHidden()))}),m(9,"i",10),r(),a(10,"div",11)(11,"button",12),s(12,"translate"),s(13,"translate"),b("click",function(){M(e);let i=p(2);return D(i.toggleLayoutLock())}),m(14,"i",13),r(),a(15,"button",12),s(16,"translate"),s(17,"translate"),b("click",function(){M(e);let i=p(2);return D(i.toggleLayoutLock())}),m(18,"i",14),r()()}if(t&2){let e=p(2);f("hidden",e.isMobile())("openDelay",150)("ngbTooltip",l(1,18,"accessories.button_add_room")),v("aria-label",l(2,20,"accessories.button_add_room")),o(4),f("hidden",e.isMobile())("openDelay",150)("ngbTooltip",e.hideHidden()?l(5,22,"accessories.button_hidden_show"):l(6,24,"accessories.button_hidden_hide")),v("aria-label",e.hideHidden()?l(7,26,"accessories.button_hidden_show"):l(8,28,"accessories.button_hidden_hide")),o(5),P(xe(38,Ge,!e.hideHidden(),e.hideHidden())),o(2),f("disabled",!e.isMobile())("openDelay",150)("ngbTooltip",l(12,30,"form.button_unlock")),v("aria-label",l(13,32,"form.button_unlock")),o(4),f("disabled",e.isMobile())("openDelay",150)("ngbTooltip",l(16,34,"form.button_lock")),v("aria-label",l(17,36,"form.button_lock"))}}function Je(t,_){t&1&&m(0,"app-spinner")}function Ke(t,_){if(t&1){let e=B();a(0,"div",0)(1,"div",21)(2,"h5",22),d(3),r(),a(4,"button",23),s(5,"translate"),s(6,"translate"),b("click",function(){M(e);let i=p().$index,c=p(4);return D(c.editRoom(i))}),m(7,"i",24),r()()()}if(t&2){let e=p().$implicit,n=p(4);o(2),I("cursor-move",!n.isMobile()),o(),x(" ",e.name," "),o(),G("visibility",n.isMobile()?"hidden":"visible")("pointer-events",n.isMobile()?"none":"auto"),f("openDelay",150)("ngbTooltip",l(5,10,"accessories.button_edit_room")),v("aria-label",l(6,12,"accessories.button_edit_room"))}}function Qe(t,_){if(t&1&&(a(0,"div",27),m(1,"app-accessory-tile",28),r()),t&2){let e=p().$implicit;o(),f("service",e)}}function Xe(t,_){if(t&1&&h(0,Qe,2,1,"div",27),t&2){let e=_.$implicit,n=p(6);C(!n.hideHidden()||!e.hidden?0:-1)}}function Ye(t,_){if(t&1){let e=B();a(0,"div",25),U("dragulaModelChange",function(i){M(e);let c=p().$implicit;return z(c.services,i)||(c.services=i),D(i)}),ce(1,Xe,1,1,null,null,be),m(3,"div",26)(4,"div",26)(5,"div",26)(6,"div",26)(7,"div",26)(8,"div",26)(9,"div",26)(10,"div",26)(11,"div",26)(12,"div",26),r()}if(t&2){let e=p().$implicit,n=p(4);I("justify-content-between",n.isMobile()),f("dragula","services-bag"),W("dragulaModel",e.services),o(),pe(e.services)}}function Ze(t,_){if(t&1){let e=B();a(0,"div",29),U("dragulaModelChange",function(i){M(e);let c=p().$implicit;return z(c.services,i)||(c.services=i),D(i)}),m(1,"app-drag-here-placeholder",30),r()}if(t&2){let e=p().$implicit;f("dragula","services-bag"),W("dragulaModel",e.services)}}function et(t,_){if(t&1&&(a(0,"div"),h(1,Ke,8,14,"div",0),a(2,"div",18),h(3,Ye,13,4,"div",19),h(4,Ze,2,2,"div",20),r()()),t&2){let e=_.$implicit,n=p(4);o(),C(!n.isMobile()||e.services.length?1:-1),o(2),C(e.services.length?3:-1),o(),C(!e.services.length&&!n.isMobile()?4:-1)}}function tt(t,_){if(t&1){let e=B();a(0,"div",17),U("dragulaModelChange",function(i){M(e);let c=p(3);return z(c.rooms,i)||(c.rooms=i),D(i)}),ce(1,et,5,3,"div",null,ze),r()}if(t&2){let e=p(3);f("dragula","rooms-bag"),W("dragulaModel",e.rooms),o(),pe(e.rooms)}}function it(t,_){t&1&&(a(0,"div",16)(1,"div",31)(2,"div",32),m(3,"i",33),r(),a(4,"h5",34),d(5),s(6,"translate"),r(),a(7,"p",35),d(8),s(9,"translate"),r(),a(10,"p",36),d(11),s(12,"translate"),r()()()),t&2&&(o(5),u(l(6,3,"accessories.no_plugins.title")),o(3),u(l(9,5,"accessories.no_plugins.message_1")),o(3),u(l(12,7,"accessories.no_plugins.message_2")))}function ot(t,_){if(t&1&&h(0,tt,3,2,"div",15)(1,it,13,9,"div",16),t&2){let e=p(2);C(e.hasPlugins()?0:1)}}function nt(t,_){if(t&1){let e=B();a(0,"div",1)(1,"div",2)(2,"h3",3),d(3),s(4,"translate"),r()(),a(5,"div",4)(6,"button",5),s(7,"translate"),b("click",function(){M(e);let i=p();return D(i.openSupport())}),m(8,"i",6),r()(),a(9,"div",7),h(10,Ue,19,41),a(11,"button",5),s(12,"translate"),b("click",function(){M(e);let i=p();return D(i.openSupport())}),m(13,"i",6),r()()(),h(14,Je,1,0,"app-spinner")(15,ot,2,1)}if(t&2){let e=p();o(3),u(l(4,5,"menu.label_accessories")),o(3),v("aria-label",l(7,7,"support.title")),o(4),C(e.hasPlugins()?10:-1),o(),v("aria-label",l(12,9,"support.title")),o(3),C(e.loading()?14:15)}}function at(t,_){t&1&&(a(0,"p",42),d(1),s(2,"translate"),r()),t&2&&(o(),u(l(2,1,"accessories.settings_link")))}function rt(t,_){if(t&1&&(a(0,"div",0)(1,"div",37)(2,"h3",38),d(3),s(4,"translate"),r()(),a(5,"div",16)(6,"div",39)(7,"div",32),m(8,"i",40),r(),a(9,"h5",34),d(10),s(11,"translate"),r(),m(12,"p",41),s(13,"translate"),h(14,at,3,3,"p",42),r()()()),t&2){let e=p();o(3),u(l(4,4,"menu.label_accessories")),o(7),u(l(11,6,"accessories.control_disabled")),o(2),f("innerHTML",j(13,8,"accessories.message_must_use_insecure_mode",L(11,We,e.linkInsecure)),fe),o(2),C(e.isAdmin?14:-1)}}var Zt=(()=>{class t{$accessories=g(ke);$api=g(ye);$auth=g(De);dragulaService=g(Ee);injector=g(_e);$modal=g(Se);$settings=g(Me);$md=g(Fe);$translate=g(Ce);isAdmin=this.$auth.user.admin;enableAccessories=this.$settings.env.enableAccessories;isMobile=k(!1);hideHidden=k(!0);linkInsecure='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Enabling-Accessory-Control" target="_blank"><i class="fa fa-external-link-alt primary-text"></i></a>';hasPlugins=k(!1);loading=k(!0);get rooms(){return this.$accessories.rooms()}set rooms(e){this.$accessories.rooms.set(e)}constructor(){let e=this.dragulaService;this.isMobile.set(this.$md.detect.mobile()),e.createGroup("rooms-bag",{moves:(n,i,c)=>!this.isMobile()&&c.classList.contains("drag-handle")}),e.createGroup("services-bag",{moves:n=>!this.isMobile()&&!n.classList.contains("no-drag")}),e.drop().pipe(he()).subscribe(()=>{setTimeout(()=>{this.$accessories.saveLayout()})}),this.isMobile.set(!0)}ngOnInit(){let e=this.$translate.instant("menu.label_accessories");this.$settings.setPageTitle(e),this.$accessories.start(),this.checkForPlugins()}addRoom(){return q(this,null,function*(){let e=de([{provide:se,useValue:{existingRooms:this.$accessories.rooms()}}],this.injector),n=this.$modal.open(Ve,{size:"lg",backdrop:"static",injector:e});try{let i=yield n.result;if(!i?.name||!i.name.length)return;i.isDefault&&this.$accessories.rooms.update(c=>c.map(y=>F(N({},y),{isDefault:!1}))),this.$accessories.rooms.update(c=>[...c,{name:i.name,isDefault:i.isDefault,services:[]}]),this.$accessories.saveLayout(),this.isMobile()&&this.toggleLayoutLock()}catch{}})}editRoom(e){return q(this,null,function*(){let n=this.$accessories.rooms()[e];if(!n)return;let i=de([{provide:le,useValue:{roomName:n.name,isDefault:n.isDefault||!1,existingRooms:this.$accessories.rooms(),currentRoomIndex:e}}],this.injector),c=this.$modal.open(Pe,{size:"lg",backdrop:"static",injector:i});try{let y=yield c.result;if(y?.delete){let R=this.$accessories.rooms()[e];if(!R)return;let A;if(R.isDefault)A=e===0?1:0;else{let T=this.$accessories.rooms().findIndex(E=>E.isDefault);A=T!==-1?T:0}R.isDefault&&this.$accessories.rooms.update(T=>T.map((E,O)=>O===A?F(N({},E),{isDefault:!0}):F(N({},E),{isDefault:!1})));let H=R.services;H.length>0&&this.$accessories.rooms.update(T=>T.map((E,O)=>O===A?F(N({},E),{services:[...E.services,...H]}):E)),this.$accessories.rooms.update(T=>T.filter((E,O)=>O!==e)),this.$accessories.saveLayout();return}if(!y?.name||!y.name.length)return;y.isDefault&&this.$accessories.rooms.update(R=>R.map(A=>F(N({},A),{isDefault:!1}))),this.$accessories.rooms.update(R=>R.map((A,H)=>H===e?F(N({},A),{name:y.name,isDefault:y.isDefault}):A)),this.$accessories.saveLayout()}catch{}})}toggleLayoutLock(){this.isMobile.set(!this.isMobile()),this.isMobile()?document.querySelectorAll(".services-bag").forEach(n=>{for(let i=0;i<10;i+=1){let c=document.createElement("div");c.className="accessory-box invisible py-0 my-0",c.style.height="0",n.appendChild(c)}}):document.querySelectorAll(".invisible").forEach(n=>n.remove())}openSupport(){this.$modal.open(Ie,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.$accessories.stop(),this.dragulaService.destroy("rooms-bag"),this.dragulaService.destroy("services-bag")}checkForPlugins(){return q(this,null,function*(){try{let e=yield this.$api.get("/plugins");this.hasPlugins.set(e.length>1)}catch(e){console.error(e),this.hasPlugins.set(!0)}finally{this.loading.set(!1)}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["app-accessories"]],decls:2,vars:1,consts:[[1,"row"],[1,"row","mb-3"],[1,"col-9","col-sm-6"],[1,"primary-text","m-0"],[1,"col-3","col-sm-6","text-end","d-inline-block","d-sm-none"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"col-3","col-sm-6","text-end","d-none","d-sm-inline-block"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","hidden","openDelay","ngbTooltip"],[1,"fas","fa-folder-plus"],[1,"fas"],["role","group",1,"btn-group","me-2"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0",3,"click","disabled","openDelay","ngbTooltip"],[1,"fas","fa-unlock"],[1,"fas","fa-lock"],[3,"dragula","dragulaModel"],[1,"col-12","text-center"],[3,"dragulaModelChange","dragula","dragulaModel"],[1,"row","mb-4"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"justify-content-between","dragula","dragulaModel"],[1,"col-md-12","d-flex","flex-wrap","noselect",3,"dragula","dragulaModel"],[1,"col-md-12","d-flex","align-items-center"],[1,"primary-text","drag-handle","room-title","m-0","mb-1","mb-sm-0","flex-grow-1"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","ms-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-cog"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"dragulaModelChange","dragula","dragulaModel"],[1,"accessory-box","invisible","py-0","my-0",2,"height","0"],[1,"accessory-item","accessory-tab"],[3,"service"],[1,"col-md-12","d-flex","flex-wrap","noselect",3,"dragulaModelChange","dragula","dragulaModel"],[1,"no-drag"],["role","alert",1,"alert","alert-warning","p-5"],[1,"text-center","mb-3"],[1,"fas","fa-plug","primary-text",2,"font-size","75px"],[1,"mb-3","mt-0"],[1,"mb-0","small"],[1,"mb-0","small","mt-2"],[1,"col-12"],[1,"primary-text","m-0","mb-3"],["role","alert",1,"alert","alert-warning","p-4"],[1,"fas","fa-lightbulb","primary-text",2,"font-size","75px"],[1,"mb-0","small",3,"innerHTML"],[1,"mt-2","mb-0","small"]],template:function(n,i){n&1&&h(0,nt,16,11)(1,rt,15,13,"div",0),n&2&&C(i.enableAccessories?0:1)},dependencies:[we,Te,Re,Ne,$e,Ae,w],styles:[".room-title[_ngcontent-%COMP%]{margin-left:10px}@media(max-width:575px){.room-title[_ngcontent-%COMP%]{margin-left:7px}}.services-bag[_ngcontent-%COMP%]{min-height:170px}@media(max-width:575px){.services-bag[_ngcontent-%COMP%]{min-height:initial}}.cursor-move[_ngcontent-%COMP%]{cursor:move}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return t})();export{Zt as AccessoriesComponent};
|