homebridge-config-ui-x 5.12.1-beta.4 → 5.12.1-beta.5

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.
Files changed (44) hide show
  1. package/package.json +9 -9
  2. package/public/{chunk-Q3NZLPIF.js → chunk-2DRLNNDM.js} +1 -1
  3. package/public/{chunk-W2KCSDQF.js → chunk-2K66PSKD.js} +1 -1
  4. package/public/{chunk-U5MVAF2Z.js → chunk-2QSUQ4VI.js} +1 -1
  5. package/public/{chunk-YPN7FV6O.js → chunk-3LY5FRVV.js} +1 -1
  6. package/public/{chunk-ALOGQFKU.js → chunk-3N3RJBS3.js} +1 -1
  7. package/public/{chunk-T4UELVH7.js → chunk-4OEYZBSF.js} +1 -1
  8. package/public/{chunk-SHUCVS7I.js → chunk-4P4VAV7I.js} +1 -1
  9. package/public/{chunk-KQSZ6SGH.js → chunk-5QHRLSAE.js} +1 -1
  10. package/public/{chunk-TKVKJ7BH.js → chunk-664C4LX2.js} +1 -1
  11. package/public/{chunk-AMSZTHK7.js → chunk-6U3YEWBO.js} +1 -1
  12. package/public/{chunk-QNOVJEHS.js → chunk-A5JF6PDD.js} +1 -1
  13. package/public/{chunk-EQBPB35I.js → chunk-ATJM3XYR.js} +1 -1
  14. package/public/{chunk-STRIQHMU.js → chunk-AY35X64S.js} +1 -1
  15. package/public/{chunk-5GOLEPOT.js → chunk-BRGXDZZE.js} +1 -1
  16. package/public/{chunk-UOW2U4BJ.js → chunk-BZLBFDQG.js} +1 -1
  17. package/public/{chunk-A7OA7EDC.js → chunk-C5CMRH2U.js} +1 -1
  18. package/public/{chunk-A7MBTNVM.js → chunk-CAY6MDP6.js} +1 -1
  19. package/public/{chunk-DW4GVDBD.js → chunk-CP2QJXVO.js} +1 -1
  20. package/public/{chunk-SH2LIQC2.js → chunk-FH62LNHX.js} +1 -1
  21. package/public/{chunk-M5HSZY2K.js → chunk-GDBXX4WT.js} +1 -1
  22. package/public/{chunk-7SWRANGJ.js → chunk-H2UKSDHZ.js} +1 -1
  23. package/public/{chunk-AJNVPC3P.js → chunk-JBILFYTL.js} +1 -1
  24. package/public/{chunk-UUTQE5VH.js → chunk-JPAZUSRO.js} +1 -1
  25. package/public/{chunk-D4MLVPZP.js → chunk-KIFEAONI.js} +1 -1
  26. package/public/{chunk-AUCDLTKK.js → chunk-M3DSUNBG.js} +1 -1
  27. package/public/{chunk-IL3A5BIS.js → chunk-MAJDTCMY.js} +1 -1
  28. package/public/{chunk-UP6OS2GK.js → chunk-MVT3BOGV.js} +1 -1
  29. package/public/{chunk-TTY6CFWI.js → chunk-NPMJGEDY.js} +1 -1
  30. package/public/{chunk-KCDMHC2Q.js → chunk-NYEZF6Y3.js} +1 -1
  31. package/public/{chunk-LF27VVUY.js → chunk-RMDVYT7X.js} +1 -1
  32. package/public/{chunk-V2JVDEX6.js → chunk-RWABUVQY.js} +1 -1
  33. package/public/{chunk-4G3SMV26.js → chunk-S2GJNEOI.js} +1 -1
  34. package/public/{chunk-EFYVUQZK.js → chunk-TV5ACJCB.js} +1 -1
  35. package/public/{chunk-CH4W3VJQ.js → chunk-UH3C2FAE.js} +1 -1
  36. package/public/{chunk-LMPJJK5P.js → chunk-VFMCVZHO.js} +1 -1
  37. package/public/{chunk-FHRZH5HG.js → chunk-VV4S6PBO.js} +1 -1
  38. package/public/{chunk-B23NNBW7.js → chunk-VWUZDCBZ.js} +1 -1
  39. package/public/{chunk-WE4CGPHP.js → chunk-WGTVNYII.js} +1 -1
  40. package/public/{chunk-Y7OC2MBV.js → chunk-XUP37AHQ.js} +1 -1
  41. package/public/{chunk-ASKLCERP.js → chunk-Y6B4ENQ3.js} +1 -1
  42. package/public/{chunk-RRPHHKF2.js → chunk-ZVU2KU6A.js} +1 -1
  43. package/public/index.html +1 -1
  44. package/public/{main-ZCE52DX6.js → main-QHHXZV7U.js} +1 -1
@@ -1 +1 @@
1
- import{a as ie}from"./chunk-TUN7H57E.js";import{a as re}from"./chunk-Q3NZLPIF.js";import{a as ne}from"./chunk-KEESKHLN.js";import{a as de}from"./chunk-LF27VVUY.js";import{a as te}from"./chunk-AMSZTHK7.js";import{a as Z,b as ee}from"./chunk-HH2FDI7W.js";import{a as Y}from"./chunk-7SWRANGJ.js";import{a as Q}from"./chunk-KQSZ6SGH.js";import{t as z}from"./chunk-RDHUW73W.js";import{a as R,b as W,d as H,e as T,f as X,g as G}from"./chunk-A7MBTNVM.js";import{a as $}from"./chunk-C64AHVUO.js";import{b as D}from"./chunk-TKVKJ7BH.js";import{b as B}from"./chunk-IL3A5BIS.js";import{C as A,D as J,H as I,o as q}from"./chunk-B23NNBW7.js";import{Ab as S,Dc as d,Ec as l,Fb as g,Gb as i,Hb as a,Ib as p,Nc as K,Rb as M,Xb as u,Za as n,Zb as C,aa as c,ea as O,ga as b,ha as x,hb as j,ic as P,kc as _,lc as h,ma as U,mb as E,n as F,nb as V,sa as w,wc as f,yb as m,zb as y}from"./chunk-F5MBSCH4.js";import{g as se,h as L}from"./chunk-B4AJQJMI.js";var ae=se(de(),1);var N=()=>["/"],pe=()=>({exact:!0}),ce=()=>["/plugins"],me=()=>["/accessories"],ue=()=>["/logs"],_e=()=>["/support"],ge=()=>["/platform-tools/terminal"],ve=()=>["/config"],he=()=>["/settings"],fe=()=>["/power-options"];function be(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),u("click",function(){b(e);let t=C();return x(t.openUnderVoltageModal())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(4,"div",12),p(5,"i",21),a(),i(6,"div",14),_(7),d(8,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"rpi.throttled.undervoltage_title")+" - "+l(3,4,"rpi.throttled.undervoltage_description")),n(6),h(l(8,6,"rpi.throttled.undervoltage_title")))}function xe(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",22),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ge))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.linux.label_terminal")),n(5),h(l(7,6,"menu.linux.label_terminal")))}function Ce(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",23),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ve))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.config_json_editor")),n(5),h(l(7,6,"menu.config_json_editor")))}function we(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",24),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,he))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.label_settings")),n(5),h(l(7,6,"menu.label_settings")))}function ye(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",25),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,fe))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.restart.title")),n(5),h(l(7,6,"menu.restart.title")))}function Se(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.reloadPage())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",26),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.reload")),n(5),h(l(7,4,"menu.reload")))}function Me(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.logout())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",27),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.tooltip_logout")),n(5),h(l(7,4,"menu.tooltip_logout")))}var oe=(()=>{class s{destroyRef=c(U);injector=c(O);$auth=c(D);$authHelper=c(Q);$settings=c(B);$modal=c(z);$notification=c(ne);$renderer=c(j);$router=c(T);$translate=c(A);initialIsExpanded=K(!1);isExpanded=w(!1);formAuth=w(this.$settings.formAuth);isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=w(!1);rPiWasUnderVoltage=w(!1);isMobile=w(!1);freezeMenu=w(!1);isPwa=ie();sidebarMouseEnterListener=()=>this.openSidebar();sidebarMouseLeaveListener=()=>this.closeSidebar();touchstartListener;clickListener;constructor(){this.isMobile.set(window.innerWidth<768);let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.pipe($()).subscribe(r=>L(this,null,function*(){if(r instanceof R&&this.$settings.formAuth&&r.url!=="/login"&&!(yield this.$authHelper.isAuthenticated())){window.sessionStorage.setItem("target_route",r.url),yield this.$router.navigate(["/login"]);return}r instanceof W&&queueMicrotask(()=>{this.closeSidebar(),this.freezeMenu.set(!0),setTimeout(()=>{this.freezeMenu.set(!1)},750)})}))}ngOnInit(){this.isExpanded.set(this.initialIsExpanded()),this.$notification.raspberryPiThrottled.pipe($(this.destroyRef)).subscribe(o=>{o["Under Voltage"]&&this.rPiCurrentlyUnderVoltage.set(!0),o["Under-voltage has occurred"]&&this.rPiWasUnderVoltage.set(!0)}),this.$notification.formAuthEnabled.pipe($(this.destroyRef)).subscribe(o=>{this.formAuth.set(o)});let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile()?(this.touchstartListener=o=>{if(t.contains(o.target)&&this.isExpanded()){o.preventDefault(),this.toggleSidebar();return}!e.contains(o.target)&&!r.contains(o.target)&&this.isExpanded()&&(o.preventDefault(),this.closeSidebar())},document.addEventListener("touchstart",this.touchstartListener,{passive:!1})):(this.updateListeners(),r.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),r.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}),this.clickListener=o=>{e.contains(o.target)&&o.clientX>60&&this.closeSidebar()},document.addEventListener("click",this.clickListener,{passive:!1}))}toggleSidebar(){this.freezeMenu()||(this.isExpanded.set(!this.isExpanded()),this.updateContentStyles())}openUnderVoltageModal(){let e=E([{provide:ee,useValue:{title:this.$translate.instant("rpi.throttled.undervoltage_title"),message:this.$translate.instant(this.rPiCurrentlyUnderVoltage()?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),ctaButtonLabel:this.$translate.instant("form.button_more_info"),faIconClass:"fas fa-bolt yellow-text",ctaButtonLink:"https://pimylifeup.com/raspberry-pi-low-voltage-warning"}}],this.injector);this.$modal.open(re,{size:"lg",backdrop:"static",injector:e})}handleKeydown(e){if(e.key==="Enter"){let r=e.target;["menuitem","button"].includes(r.getAttribute("role"))&&r.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){this.touchstartListener&&document.removeEventListener("touchstart",this.touchstartListener),this.clickListener&&document.removeEventListener("click",this.clickListener);let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header");e&&(e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener)),r&&(r.removeEventListener("mouseenter",this.sidebarMouseEnterListener),r.removeEventListener("mouseleave",this.sidebarMouseLeaveListener))}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu()||(this.isExpanded.set(!0),this.updateContentStyles())}closeSidebar(){this.freezeMenu()||(this.isExpanded.set(!1),this.updateContentStyles())}updateContentStyles(){let e=document.querySelector(".content");this.isExpanded()?(this.$renderer.setStyle(e,"opacity","20%"),this.$renderer.setStyle(e,"pointer-events","none"),this.$renderer.setStyle(e,"overflow","hidden")):(this.$renderer.removeStyle(e,"opacity"),this.$renderer.removeStyle(e,"pointer-events"),this.$renderer.removeStyle(e,"overflow"))}updateListeners(){this.isMobile.set(window.innerWidth<768);let e=document.querySelector(".sidebar");e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener),(this.isMobile()||!this.isMobile()&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),e.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}))}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-sidebar"]],inputs:{initialIsExpanded:[1,"initialIsExpanded"]},decls:68,vars:73,consts:[["tabindex","0","role","button",1,"m-header","text-end",3,"click","keydown"],[1,"me-2","d-block","d-lg-none",2,"font-size","0.9rem","color","#dddddd"],[3,"routerLink"],["ngSrc","assets/homebridge-logo.svg","alt","HB Logo","height","35","width","35",2,"height","35px","width","35px"],[1,"hb-logo-text-mobile"],[1,"hamburger-icon"],["role","navigation","id","sidebar",1,"sidebar"],["tabindex","0","role","button",1,"header",3,"click","keydown"],[1,"hb-logo-text"],[1,"link-wrapper"],[1,"link"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive","routerLinkActiveOptions"],[1,"icon"],[1,"fa","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-plug"],[1,"fa","fa-lightbulb"],[1,"fa","fa-wave-square"],[1,"fa","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-terminal"],[1,"fa","fa-code"],[1,"fa","fa-cog"],[1,"fa","fa-power-off"],[1,"fa","fa-refresh"],[1,"fa","fa-right-from-bracket"]],template:function(r,t){r&1&&(i(0,"div",0),d(1,"translate"),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),p(2,"span",1),i(3,"a",2),d(4,"translate"),p(5,"img",3),i(6,"div",4),_(7,"Homebridge"),a()(),i(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),i(13,"div",6)(14,"div",7),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),i(15,"a",2),d(16,"translate"),p(17,"img",3),i(18,"div",8),_(19,"Homebridge"),a()()(),i(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(24,"div",12),p(25,"i",13),a(),i(26,"div",14),_(27),d(28,"translate"),a()()(),y(29,be,9,8,"div",10),i(30,"div",10)(31,"div",15),d(32,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(33,"div",12),p(34,"i",16),a(),i(35,"div",14),_(36),d(37,"translate"),a()()(),i(38,"div",10)(39,"div",15),d(40,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(41,"div",12),p(42,"i",17),a(),i(43,"div",14),_(44),d(45,"translate"),a()()(),i(46,"div",10)(47,"div",15),d(48,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(49,"div",12),p(50,"i",18),a(),i(51,"div",14),_(52),d(53,"translate"),a()()(),y(54,xe,8,9,"div",10),y(55,Ce,8,9,"div",10),y(56,we,8,9,"div",10),i(57,"div",10)(58,"div",15),d(59,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(60,"div",12),p(61,"i",19),a(),i(62,"div",14),_(63),d(64,"translate"),a()()(),y(65,ye,8,9,"div",10),y(66,Se,8,6,"div",10),y(67,Me,8,6,"div",10),a()()),r&2&&(m("aria-expanded",t.isExpanded()?"true":"false")("aria-controls","sidebar")("aria-label",l(1,39,"menu.sidebar.aria_menu")),n(3),g("routerLink",f(65,N)),m("aria-label",l(4,41,"menu.label_status")),n(5),P("hamburger-icon-cross",t.isExpanded()),n(5),P("expanded",t.isExpanded()),n(2),g("routerLink",f(66,N)),m("aria-label",l(16,43,"menu.label_status")),n(7),g("routerLink",f(67,N))("routerLinkActive","active")("routerLinkActiveOptions",f(68,pe)),m("aria-label",l(23,45,"menu.label_status")),n(5),h(l(28,47,"menu.label_status")),n(2),S(t.rPiWasUnderVoltage()||t.rPiCurrentlyUnderVoltage()?29:-1),n(2),g("routerLink",f(69,ce))("routerLinkActive","active"),m("aria-label",l(32,49,"menu.label_plugins")),n(5),h(l(37,51,"menu.label_plugins")),n(3),g("routerLink",f(70,me))("routerLinkActive","active"),m("aria-label",l(40,53,"menu.label_accessories")),n(5),h(l(45,55,"menu.label_accessories")),n(3),g("routerLink",f(71,ue))("routerLinkActive","active"),m("aria-label",l(48,57,"menu.linux.label_logs")),n(5),h(l(53,59,"menu.linux.label_logs")),n(2),S(t.enableTerminalAccess&&t.isAdmin?54:-1),n(),S(t.isAdmin?55:-1),n(),S(t.isAdmin?56:-1),n(2),g("routerLink",f(72,_e))("routerLinkActive","active"),m("aria-label",l(59,61,"support.title")),n(5),h(l(64,63,"support.title")),n(2),S(t.isAdmin?65:-1),n(),S(t.isPwa?66:-1),n(),S(t.formAuth()?67:-1))},dependencies:[X,q,G,J],styles:[".m-header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:65px;z-index:510;display:flex;align-items:center;padding-left:3px;padding-right:3px}.m-header[_ngcontent-%COMP%]:hover{cursor:pointer}@media(min-width:768px){.m-header[_ngcontent-%COMP%]{display:none}}.sidebar[_ngcontent-%COMP%]{position:fixed;left:0;top:0;height:100vh;transition:.3s;width:60px;z-index:500}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;padding:15px 10px 15px 11px;font-size:.85rem}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]:hover{cursor:pointer}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 80px)!important;scrollbar-width:thin}@media(max-width:767px){.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{padding-bottom:60px}}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:15px 10px;cursor:pointer;transition:.2s;font-size:17px}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{flex:0 0 38px;display:flex;align-items:center;justify-content:center}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{flex:1;transition:.3s;max-width:0;overflow:hidden;white-space:nowrap}@media(max-width:767px){.sidebar[_ngcontent-%COMP%]{width:0}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:none}}.sidebar.expanded[_ngcontent-%COMP%]{width:210px}@media(max-width:767px){.sidebar.expanded[_ngcontent-%COMP%]{width:210px}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:block}}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{max-width:150px;padding-left:10px}.hamburger-icon[_ngcontent-%COMP%]{margin:-7px 0 0 25px}@media(min-width:768px){.hb-logo-text[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px}.sidebar.expanded[_ngcontent-%COMP%] .hb-logo-text[_ngcontent-%COMP%]{opacity:1;left:55px;transition:.3s}.sidebar[_ngcontent-%COMP%]:not(.expanded) .hb-logo-text[_ngcontent-%COMP%]{opacity:0;left:40px;transition:.3s}.hb-logo-text-mobile[_ngcontent-%COMP%], .hamburger-icon[_ngcontent-%COMP%]{display:none!important}}@media(max-width:767px){.hb-logo-text[_ngcontent-%COMP%]{display:none!important}.hb-logo-text-mobile[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px;opacity:1;left:55px}.hamburger-icon[_ngcontent-%COMP%]{position:absolute;right:10px;top:28px;width:30px;transform:rotate(0);transition:.5s ease-in-out;cursor:pointer}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;position:absolute;height:2px;width:100%;background-color:#fff;border-radius:9px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:0}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2), .hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){top:10px}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:20px}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:10px;width:0;left:50%}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2){transform:rotate(45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){transform:rotate(-45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:10px;width:0;left:50%}}"]})}return s})();var tt=(()=>{class s{injector=c(O);$auth=c(D);$modal=c(z);$router=c(T);$settings=c(B);$translate=c(A);$ws=c(Y);io;sidebarExpanded=w(!1);ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return L(this,null,function*(){if(this.$settings.settingsLoaded||(yield F(this.$settings.onSettingsLoaded)),!this.$router.url.endsWith("/restart")&&(0,ae.lt)(this.$settings.uiVersion,I.serverTarget)){console.log(`Server restart required. UI Version: ${I.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=E([{provide:Z,useValue:{title:this.$translate.instant("platform.version.service_restart_required"),message:this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:I.serverTarget}),confirmButtonLabel:this.$translate.instant("menu.tooltip_restart"),faIconClass:"fas fa-power-off orange-text"}}],this.injector),r=this.$modal.open(te,{size:"lg",backdrop:"static",injector:e});try{yield r.result,this.$router.navigate(["/restart"])}catch{}}})}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-layout"]],decls:3,vars:3,consts:[[3,"initialIsExpanded"],[1,"content","px-3","p-md-4"]],template:function(r,t){r&1&&(p(0,"app-sidebar",0),i(1,"div",1),p(2,"router-outlet"),a()),r&2&&(g("initialIsExpanded",t.sidebarExpanded()),n(),P("sidebarExpanded",t.sidebarExpanded()))},dependencies:[oe,H],styles:[".content[_ngcontent-%COMP%]{margin-left:60px;transition:.3s;height:100%}@media(max-width:767px){.content[_ngcontent-%COMP%]{margin-left:0;padding-top:85px!important}}@media(min-width:768px){.content[_ngcontent-%COMP%]{height:100%}}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return s})();export{tt as LayoutComponent};
1
+ import{a as ie}from"./chunk-TUN7H57E.js";import{a as re}from"./chunk-2DRLNNDM.js";import{a as ne}from"./chunk-KEESKHLN.js";import{a as de}from"./chunk-RMDVYT7X.js";import{a as te}from"./chunk-6U3YEWBO.js";import{a as Z,b as ee}from"./chunk-HH2FDI7W.js";import{a as Y}from"./chunk-H2UKSDHZ.js";import{a as Q}from"./chunk-5QHRLSAE.js";import{t as z}from"./chunk-RDHUW73W.js";import{a as R,b as W,d as H,e as T,f as X,g as G}from"./chunk-CAY6MDP6.js";import{a as $}from"./chunk-C64AHVUO.js";import{b as D}from"./chunk-664C4LX2.js";import{b as B}from"./chunk-MAJDTCMY.js";import{C as A,D as J,H as I,o as q}from"./chunk-VWUZDCBZ.js";import{Ab as S,Dc as d,Ec as l,Fb as g,Gb as i,Hb as a,Ib as p,Nc as K,Rb as M,Xb as u,Za as n,Zb as C,aa as c,ea as O,ga as b,ha as x,hb as j,ic as P,kc as _,lc as h,ma as U,mb as E,n as F,nb as V,sa as w,wc as f,yb as m,zb as y}from"./chunk-F5MBSCH4.js";import{g as se,h as L}from"./chunk-B4AJQJMI.js";var ae=se(de(),1);var N=()=>["/"],pe=()=>({exact:!0}),ce=()=>["/plugins"],me=()=>["/accessories"],ue=()=>["/logs"],_e=()=>["/support"],ge=()=>["/platform-tools/terminal"],ve=()=>["/config"],he=()=>["/settings"],fe=()=>["/power-options"];function be(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),u("click",function(){b(e);let t=C();return x(t.openUnderVoltageModal())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(4,"div",12),p(5,"i",21),a(),i(6,"div",14),_(7),d(8,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"rpi.throttled.undervoltage_title")+" - "+l(3,4,"rpi.throttled.undervoltage_description")),n(6),h(l(8,6,"rpi.throttled.undervoltage_title")))}function xe(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",22),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ge))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.linux.label_terminal")),n(5),h(l(7,6,"menu.linux.label_terminal")))}function Ce(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",23),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ve))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.config_json_editor")),n(5),h(l(7,6,"menu.config_json_editor")))}function we(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",24),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,he))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.label_settings")),n(5),h(l(7,6,"menu.label_settings")))}function ye(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",25),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,fe))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.restart.title")),n(5),h(l(7,6,"menu.restart.title")))}function Se(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.reloadPage())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",26),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.reload")),n(5),h(l(7,4,"menu.reload")))}function Me(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.logout())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",27),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.tooltip_logout")),n(5),h(l(7,4,"menu.tooltip_logout")))}var oe=(()=>{class s{destroyRef=c(U);injector=c(O);$auth=c(D);$authHelper=c(Q);$settings=c(B);$modal=c(z);$notification=c(ne);$renderer=c(j);$router=c(T);$translate=c(A);initialIsExpanded=K(!1);isExpanded=w(!1);formAuth=w(this.$settings.formAuth);isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=w(!1);rPiWasUnderVoltage=w(!1);isMobile=w(!1);freezeMenu=w(!1);isPwa=ie();sidebarMouseEnterListener=()=>this.openSidebar();sidebarMouseLeaveListener=()=>this.closeSidebar();touchstartListener;clickListener;constructor(){this.isMobile.set(window.innerWidth<768);let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.pipe($()).subscribe(r=>L(this,null,function*(){if(r instanceof R&&this.$settings.formAuth&&r.url!=="/login"&&!(yield this.$authHelper.isAuthenticated())){window.sessionStorage.setItem("target_route",r.url),yield this.$router.navigate(["/login"]);return}r instanceof W&&queueMicrotask(()=>{this.closeSidebar(),this.freezeMenu.set(!0),setTimeout(()=>{this.freezeMenu.set(!1)},750)})}))}ngOnInit(){this.isExpanded.set(this.initialIsExpanded()),this.$notification.raspberryPiThrottled.pipe($(this.destroyRef)).subscribe(o=>{o["Under Voltage"]&&this.rPiCurrentlyUnderVoltage.set(!0),o["Under-voltage has occurred"]&&this.rPiWasUnderVoltage.set(!0)}),this.$notification.formAuthEnabled.pipe($(this.destroyRef)).subscribe(o=>{this.formAuth.set(o)});let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile()?(this.touchstartListener=o=>{if(t.contains(o.target)&&this.isExpanded()){o.preventDefault(),this.toggleSidebar();return}!e.contains(o.target)&&!r.contains(o.target)&&this.isExpanded()&&(o.preventDefault(),this.closeSidebar())},document.addEventListener("touchstart",this.touchstartListener,{passive:!1})):(this.updateListeners(),r.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),r.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}),this.clickListener=o=>{e.contains(o.target)&&o.clientX>60&&this.closeSidebar()},document.addEventListener("click",this.clickListener,{passive:!1}))}toggleSidebar(){this.freezeMenu()||(this.isExpanded.set(!this.isExpanded()),this.updateContentStyles())}openUnderVoltageModal(){let e=E([{provide:ee,useValue:{title:this.$translate.instant("rpi.throttled.undervoltage_title"),message:this.$translate.instant(this.rPiCurrentlyUnderVoltage()?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),ctaButtonLabel:this.$translate.instant("form.button_more_info"),faIconClass:"fas fa-bolt yellow-text",ctaButtonLink:"https://pimylifeup.com/raspberry-pi-low-voltage-warning"}}],this.injector);this.$modal.open(re,{size:"lg",backdrop:"static",injector:e})}handleKeydown(e){if(e.key==="Enter"){let r=e.target;["menuitem","button"].includes(r.getAttribute("role"))&&r.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){this.touchstartListener&&document.removeEventListener("touchstart",this.touchstartListener),this.clickListener&&document.removeEventListener("click",this.clickListener);let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header");e&&(e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener)),r&&(r.removeEventListener("mouseenter",this.sidebarMouseEnterListener),r.removeEventListener("mouseleave",this.sidebarMouseLeaveListener))}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu()||(this.isExpanded.set(!0),this.updateContentStyles())}closeSidebar(){this.freezeMenu()||(this.isExpanded.set(!1),this.updateContentStyles())}updateContentStyles(){let e=document.querySelector(".content");this.isExpanded()?(this.$renderer.setStyle(e,"opacity","20%"),this.$renderer.setStyle(e,"pointer-events","none"),this.$renderer.setStyle(e,"overflow","hidden")):(this.$renderer.removeStyle(e,"opacity"),this.$renderer.removeStyle(e,"pointer-events"),this.$renderer.removeStyle(e,"overflow"))}updateListeners(){this.isMobile.set(window.innerWidth<768);let e=document.querySelector(".sidebar");e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener),(this.isMobile()||!this.isMobile()&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),e.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}))}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-sidebar"]],inputs:{initialIsExpanded:[1,"initialIsExpanded"]},decls:68,vars:73,consts:[["tabindex","0","role","button",1,"m-header","text-end",3,"click","keydown"],[1,"me-2","d-block","d-lg-none",2,"font-size","0.9rem","color","#dddddd"],[3,"routerLink"],["ngSrc","assets/homebridge-logo.svg","alt","HB Logo","height","35","width","35",2,"height","35px","width","35px"],[1,"hb-logo-text-mobile"],[1,"hamburger-icon"],["role","navigation","id","sidebar",1,"sidebar"],["tabindex","0","role","button",1,"header",3,"click","keydown"],[1,"hb-logo-text"],[1,"link-wrapper"],[1,"link"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive","routerLinkActiveOptions"],[1,"icon"],[1,"fa","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-plug"],[1,"fa","fa-lightbulb"],[1,"fa","fa-wave-square"],[1,"fa","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-terminal"],[1,"fa","fa-code"],[1,"fa","fa-cog"],[1,"fa","fa-power-off"],[1,"fa","fa-refresh"],[1,"fa","fa-right-from-bracket"]],template:function(r,t){r&1&&(i(0,"div",0),d(1,"translate"),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),p(2,"span",1),i(3,"a",2),d(4,"translate"),p(5,"img",3),i(6,"div",4),_(7,"Homebridge"),a()(),i(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),i(13,"div",6)(14,"div",7),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),i(15,"a",2),d(16,"translate"),p(17,"img",3),i(18,"div",8),_(19,"Homebridge"),a()()(),i(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(24,"div",12),p(25,"i",13),a(),i(26,"div",14),_(27),d(28,"translate"),a()()(),y(29,be,9,8,"div",10),i(30,"div",10)(31,"div",15),d(32,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(33,"div",12),p(34,"i",16),a(),i(35,"div",14),_(36),d(37,"translate"),a()()(),i(38,"div",10)(39,"div",15),d(40,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(41,"div",12),p(42,"i",17),a(),i(43,"div",14),_(44),d(45,"translate"),a()()(),i(46,"div",10)(47,"div",15),d(48,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(49,"div",12),p(50,"i",18),a(),i(51,"div",14),_(52),d(53,"translate"),a()()(),y(54,xe,8,9,"div",10),y(55,Ce,8,9,"div",10),y(56,we,8,9,"div",10),i(57,"div",10)(58,"div",15),d(59,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(60,"div",12),p(61,"i",19),a(),i(62,"div",14),_(63),d(64,"translate"),a()()(),y(65,ye,8,9,"div",10),y(66,Se,8,6,"div",10),y(67,Me,8,6,"div",10),a()()),r&2&&(m("aria-expanded",t.isExpanded()?"true":"false")("aria-controls","sidebar")("aria-label",l(1,39,"menu.sidebar.aria_menu")),n(3),g("routerLink",f(65,N)),m("aria-label",l(4,41,"menu.label_status")),n(5),P("hamburger-icon-cross",t.isExpanded()),n(5),P("expanded",t.isExpanded()),n(2),g("routerLink",f(66,N)),m("aria-label",l(16,43,"menu.label_status")),n(7),g("routerLink",f(67,N))("routerLinkActive","active")("routerLinkActiveOptions",f(68,pe)),m("aria-label",l(23,45,"menu.label_status")),n(5),h(l(28,47,"menu.label_status")),n(2),S(t.rPiWasUnderVoltage()||t.rPiCurrentlyUnderVoltage()?29:-1),n(2),g("routerLink",f(69,ce))("routerLinkActive","active"),m("aria-label",l(32,49,"menu.label_plugins")),n(5),h(l(37,51,"menu.label_plugins")),n(3),g("routerLink",f(70,me))("routerLinkActive","active"),m("aria-label",l(40,53,"menu.label_accessories")),n(5),h(l(45,55,"menu.label_accessories")),n(3),g("routerLink",f(71,ue))("routerLinkActive","active"),m("aria-label",l(48,57,"menu.linux.label_logs")),n(5),h(l(53,59,"menu.linux.label_logs")),n(2),S(t.enableTerminalAccess&&t.isAdmin?54:-1),n(),S(t.isAdmin?55:-1),n(),S(t.isAdmin?56:-1),n(2),g("routerLink",f(72,_e))("routerLinkActive","active"),m("aria-label",l(59,61,"support.title")),n(5),h(l(64,63,"support.title")),n(2),S(t.isAdmin?65:-1),n(),S(t.isPwa?66:-1),n(),S(t.formAuth()?67:-1))},dependencies:[X,q,G,J],styles:[".m-header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:65px;z-index:510;display:flex;align-items:center;padding-left:3px;padding-right:3px}.m-header[_ngcontent-%COMP%]:hover{cursor:pointer}@media(min-width:768px){.m-header[_ngcontent-%COMP%]{display:none}}.sidebar[_ngcontent-%COMP%]{position:fixed;left:0;top:0;height:100vh;transition:.3s;width:60px;z-index:500}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;padding:15px 10px 15px 11px;font-size:.85rem}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]:hover{cursor:pointer}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 80px)!important;scrollbar-width:thin}@media(max-width:767px){.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{padding-bottom:60px}}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:15px 10px;cursor:pointer;transition:.2s;font-size:17px}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{flex:0 0 38px;display:flex;align-items:center;justify-content:center}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{flex:1;transition:.3s;max-width:0;overflow:hidden;white-space:nowrap}@media(max-width:767px){.sidebar[_ngcontent-%COMP%]{width:0}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:none}}.sidebar.expanded[_ngcontent-%COMP%]{width:210px}@media(max-width:767px){.sidebar.expanded[_ngcontent-%COMP%]{width:210px}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:block}}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{max-width:150px;padding-left:10px}.hamburger-icon[_ngcontent-%COMP%]{margin:-7px 0 0 25px}@media(min-width:768px){.hb-logo-text[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px}.sidebar.expanded[_ngcontent-%COMP%] .hb-logo-text[_ngcontent-%COMP%]{opacity:1;left:55px;transition:.3s}.sidebar[_ngcontent-%COMP%]:not(.expanded) .hb-logo-text[_ngcontent-%COMP%]{opacity:0;left:40px;transition:.3s}.hb-logo-text-mobile[_ngcontent-%COMP%], .hamburger-icon[_ngcontent-%COMP%]{display:none!important}}@media(max-width:767px){.hb-logo-text[_ngcontent-%COMP%]{display:none!important}.hb-logo-text-mobile[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px;opacity:1;left:55px}.hamburger-icon[_ngcontent-%COMP%]{position:absolute;right:10px;top:28px;width:30px;transform:rotate(0);transition:.5s ease-in-out;cursor:pointer}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;position:absolute;height:2px;width:100%;background-color:#fff;border-radius:9px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:0}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2), .hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){top:10px}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:20px}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:10px;width:0;left:50%}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2){transform:rotate(45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){transform:rotate(-45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:10px;width:0;left:50%}}"]})}return s})();var tt=(()=>{class s{injector=c(O);$auth=c(D);$modal=c(z);$router=c(T);$settings=c(B);$translate=c(A);$ws=c(Y);io;sidebarExpanded=w(!1);ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return L(this,null,function*(){if(this.$settings.settingsLoaded||(yield F(this.$settings.onSettingsLoaded)),!this.$router.url.endsWith("/restart")&&(0,ae.lt)(this.$settings.uiVersion,I.serverTarget)){console.log(`Server restart required. UI Version: ${I.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=E([{provide:Z,useValue:{title:this.$translate.instant("platform.version.service_restart_required"),message:this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:I.serverTarget}),confirmButtonLabel:this.$translate.instant("menu.tooltip_restart"),faIconClass:"fas fa-power-off orange-text"}}],this.injector),r=this.$modal.open(te,{size:"lg",backdrop:"static",injector:e});try{yield r.result,this.$router.navigate(["/restart"])}catch{}}})}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-layout"]],decls:3,vars:3,consts:[[3,"initialIsExpanded"],[1,"content","px-3","p-md-4"]],template:function(r,t){r&1&&(p(0,"app-sidebar",0),i(1,"div",1),p(2,"router-outlet"),a()),r&2&&(g("initialIsExpanded",t.sidebarExpanded()),n(),P("sidebarExpanded",t.sidebarExpanded()))},dependencies:[oe,H],styles:[".content[_ngcontent-%COMP%]{margin-left:60px;transition:.3s;height:100%}@media(max-width:767px){.content[_ngcontent-%COMP%]{margin-left:0;padding-top:85px!important}}@media(min-width:768px){.content[_ngcontent-%COMP%]{height:100%}}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return s})();export{tt as LayoutComponent};
@@ -1 +1 @@
1
- import{b as P}from"./chunk-IL3A5BIS.js";import{C as F,D as T,H as w}from"./chunk-B23NNBW7.js";import{Ab as g,Dc as i,Ec as n,Jb as t,Kb as a,Lb as p,Sb as y,Va as B,Yb as f,Za as e,Zb as C,aa as v,jc as h,kc as r,lc as m,mc as d,nb as I,sa as k,yb as l,yc as x,zb as b}from"./chunk-F5MBSCH4.js";import{a as S,b as _}from"./chunk-B4AJQJMI.js";var $=(o,E)=>({"fa-chevron-down":o,"fa-chevron-right":E});function M(o,E){o&1&&(t(0,"ul",6)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",12),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",14),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",15),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",16),i(43,"translate"),p(44,"i",13),a()()()),o&2&&(e(3),d(" ",n(4,12,"support.links.documentation")),e(4),m(n(8,14,"support.links.documentation_sub")),e(2),l("aria-label",n(10,16,"support.links.documentation")),e(5),d(" ",n(15,18,"support.links.issue")),e(4),m(n(19,20,"support.links.issue_sub")),e(2),l("aria-label",n(21,22,"support.links.issue")),e(5),d(" ",n(26,24,"support.links.discord")),e(4),m(n(30,26,"support.links.discord_sub")),e(2),l("aria-label",n(32,28,"support.links.discord")),e(5),d(" ",n(37,30,"support.links.reddit")),e(4),m(n(41,32,"support.links.reddit_sub")),e(2),l("aria-label",n(43,34,"support.links.reddit")))}function j(o,E){if(o&1&&(t(0,"ul",8)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",17),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",18),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",19),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",20),i(43,"translate"),p(44,"i",13),a()(),t(45,"li",9)(46,"span",10),r(47),i(48,"translate"),p(49,"br"),t(50,"small",11),r(51),i(52,"translate"),a()(),t(53,"a",21),i(54,"translate"),p(55,"i",13),a()()()),o&2){let u=C();e(3),d(" ",n(4,16,"support.dev.item_swagger")),e(4),m(n(8,18,"support.dev.item_swagger_sub")),e(2),y("href",u.swaggerUrl,B),l("aria-label",n(10,20,"support.dev.item_swagger")),e(5),d(" ",n(15,22,"support.dev.api")),e(4),m(n(19,24,"support.dev.api_sub")),e(2),l("aria-label",n(21,26,"support.dev.api")),e(5),d(" ",n(26,28,"support.dev.api_hap")),e(4),m(n(30,30,"support.dev.api_hap_sub")),e(2),l("aria-label",n(32,32,"support.dev.api_hap")),e(5),d(" ",n(37,34,"support.dev.template")),e(4),m(n(41,36,"support.dev.template_sub")),e(2),l("aria-label",n(43,38,"support.dev.template")),e(5),d(" ",n(48,40,"support.dev.verified")),e(4),m(n(52,42,"support.dev.verified_sub")),e(2),l("aria-label",n(54,44,"support.dev.verified"))}}var A=(()=>{class o{$settings=v(P);$translate=v(F);showFields=k({general:!0,dev:!0});swaggerEndpoint="/swagger";ngOnInit(){let u=this.$translate.instant("support.title");this.$settings.setPageTitle(u)}get swaggerUrl(){return w.production?this.swaggerEndpoint:`${w.api.origin}${this.swaggerEndpoint}`}toggleSection(u){this.showFields.update(c=>_(S({},c),{[u]:!c[u]}))}static \u0275fac=function(c){return new(c||o)};static \u0275cmp=I({type:o,selectors:[["ng-component"]],decls:18,vars:25,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"mb-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],["id","fieldsDev",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"grey-text","pe-2"],["href","https://github.com/homebridge/homebridge/wiki","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],[1,"fas","fa-external-link-alt"],["href","https://github.com/homebridge/homebridge-config-ui-x/issues/new/choose","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://discord.gg/C87Pvq3","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://www.reddit.com/r/homebridge/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px",3,"href"],["href","https://developers.homebridge.io/#/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://developers.homebridge.io/HAP-NodeJS/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge-plugin-template","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge/wiki/Verified-Plugins","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"]],template:function(c,s){c&1&&(t(0,"div",0)(1,"h3",1),r(2),i(3,"translate"),a()(),t(4,"div",2)(5,"div",3),f("click",function(){return s.toggleSection("general")}),t(6,"h5",4),p(7,"i",5),r(8),i(9,"translate"),a()(),b(10,M,45,36,"ul",6),a(),t(11,"div",7)(12,"div",3),f("click",function(){return s.toggleSection("dev")}),t(13,"h5",4),p(14,"i",5),r(15),i(16,"translate"),a()(),b(17,j,56,46,"ul",8),a()),c&2&&(e(2),m(n(3,13,"support.title")),e(3),l("aria-expanded",s.showFields().general?"true":"false")("aria-controls","fieldsGeneral"),e(2),h(x(19,$,s.showFields().general,!s.showFields().general)),e(),d(" ",n(9,15,"support.links.title")," "),e(2),g(s.showFields().general?10:-1),e(2),l("aria-expanded",s.showFields().dev?"true":"false")("aria-controls","fieldsDev"),e(2),h(x(22,$,s.showFields().dev,!s.showFields().dev)),e(),d(" ",n(16,17,"support.dev.title")," "),e(2),g(s.showFields().dev?17:-1))},dependencies:[T],encapsulation:2})}return o})();export{A as SupportComponent};
1
+ import{b as P}from"./chunk-MAJDTCMY.js";import{C as F,D as T,H as w}from"./chunk-VWUZDCBZ.js";import{Ab as g,Dc as i,Ec as n,Jb as t,Kb as a,Lb as p,Sb as y,Va as B,Yb as f,Za as e,Zb as C,aa as v,jc as h,kc as r,lc as m,mc as d,nb as I,sa as k,yb as l,yc as x,zb as b}from"./chunk-F5MBSCH4.js";import{a as S,b as _}from"./chunk-B4AJQJMI.js";var $=(o,E)=>({"fa-chevron-down":o,"fa-chevron-right":E});function M(o,E){o&1&&(t(0,"ul",6)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",12),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",14),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",15),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",16),i(43,"translate"),p(44,"i",13),a()()()),o&2&&(e(3),d(" ",n(4,12,"support.links.documentation")),e(4),m(n(8,14,"support.links.documentation_sub")),e(2),l("aria-label",n(10,16,"support.links.documentation")),e(5),d(" ",n(15,18,"support.links.issue")),e(4),m(n(19,20,"support.links.issue_sub")),e(2),l("aria-label",n(21,22,"support.links.issue")),e(5),d(" ",n(26,24,"support.links.discord")),e(4),m(n(30,26,"support.links.discord_sub")),e(2),l("aria-label",n(32,28,"support.links.discord")),e(5),d(" ",n(37,30,"support.links.reddit")),e(4),m(n(41,32,"support.links.reddit_sub")),e(2),l("aria-label",n(43,34,"support.links.reddit")))}function j(o,E){if(o&1&&(t(0,"ul",8)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",17),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",18),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",19),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",20),i(43,"translate"),p(44,"i",13),a()(),t(45,"li",9)(46,"span",10),r(47),i(48,"translate"),p(49,"br"),t(50,"small",11),r(51),i(52,"translate"),a()(),t(53,"a",21),i(54,"translate"),p(55,"i",13),a()()()),o&2){let u=C();e(3),d(" ",n(4,16,"support.dev.item_swagger")),e(4),m(n(8,18,"support.dev.item_swagger_sub")),e(2),y("href",u.swaggerUrl,B),l("aria-label",n(10,20,"support.dev.item_swagger")),e(5),d(" ",n(15,22,"support.dev.api")),e(4),m(n(19,24,"support.dev.api_sub")),e(2),l("aria-label",n(21,26,"support.dev.api")),e(5),d(" ",n(26,28,"support.dev.api_hap")),e(4),m(n(30,30,"support.dev.api_hap_sub")),e(2),l("aria-label",n(32,32,"support.dev.api_hap")),e(5),d(" ",n(37,34,"support.dev.template")),e(4),m(n(41,36,"support.dev.template_sub")),e(2),l("aria-label",n(43,38,"support.dev.template")),e(5),d(" ",n(48,40,"support.dev.verified")),e(4),m(n(52,42,"support.dev.verified_sub")),e(2),l("aria-label",n(54,44,"support.dev.verified"))}}var A=(()=>{class o{$settings=v(P);$translate=v(F);showFields=k({general:!0,dev:!0});swaggerEndpoint="/swagger";ngOnInit(){let u=this.$translate.instant("support.title");this.$settings.setPageTitle(u)}get swaggerUrl(){return w.production?this.swaggerEndpoint:`${w.api.origin}${this.swaggerEndpoint}`}toggleSection(u){this.showFields.update(c=>_(S({},c),{[u]:!c[u]}))}static \u0275fac=function(c){return new(c||o)};static \u0275cmp=I({type:o,selectors:[["ng-component"]],decls:18,vars:25,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"mb-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],["id","fieldsDev",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"grey-text","pe-2"],["href","https://github.com/homebridge/homebridge/wiki","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],[1,"fas","fa-external-link-alt"],["href","https://github.com/homebridge/homebridge-config-ui-x/issues/new/choose","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://discord.gg/C87Pvq3","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://www.reddit.com/r/homebridge/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px",3,"href"],["href","https://developers.homebridge.io/#/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://developers.homebridge.io/HAP-NodeJS/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge-plugin-template","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge/wiki/Verified-Plugins","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"]],template:function(c,s){c&1&&(t(0,"div",0)(1,"h3",1),r(2),i(3,"translate"),a()(),t(4,"div",2)(5,"div",3),f("click",function(){return s.toggleSection("general")}),t(6,"h5",4),p(7,"i",5),r(8),i(9,"translate"),a()(),b(10,M,45,36,"ul",6),a(),t(11,"div",7)(12,"div",3),f("click",function(){return s.toggleSection("dev")}),t(13,"h5",4),p(14,"i",5),r(15),i(16,"translate"),a()(),b(17,j,56,46,"ul",8),a()),c&2&&(e(2),m(n(3,13,"support.title")),e(3),l("aria-expanded",s.showFields().general?"true":"false")("aria-controls","fieldsGeneral"),e(2),h(x(19,$,s.showFields().general,!s.showFields().general)),e(),d(" ",n(9,15,"support.links.title")," "),e(2),g(s.showFields().general?10:-1),e(2),l("aria-expanded",s.showFields().dev?"true":"false")("aria-controls","fieldsDev"),e(2),h(x(22,$,s.showFields().dev,!s.showFields().dev)),e(),d(" ",n(16,17,"support.dev.title")," "),e(2),g(s.showFields().dev?17:-1))},dependencies:[T],encapsulation:2})}return o})();export{A as SupportComponent};
@@ -1,4 +1,4 @@
1
- import{a as P}from"./chunk-UHG23NUX.js";import{a as D}from"./chunk-KCDMHC2Q.js";import{c as x}from"./chunk-A7MBTNVM.js";import{C as I,c as k,e as y,l as T}from"./chunk-UUTQE5VH.js";import{b as $}from"./chunk-IL3A5BIS.js";import{C as M,F as V,I as E}from"./chunk-B23NNBW7.js";import{Ab as h,Fb as f,Gb as d,Hb as a,Ib as w,Rb as v,Xb as g,Za as p,Zb as s,aa as r,ga as l,ha as c,kc as S,nb as b,sa as m,zb as u}from"./chunk-F5MBSCH4.js";import{h as C}from"./chunk-B4AJQJMI.js";function H(e,_){e&1&&w(0,"i",6)}function N(e,_){e&1&&w(0,"i",7)}function O(e,_){if(e&1){let t=v();d(0,"ngx-monaco-editor",10),g("onInit",function(o){l(t);let n=s();return c(n.onEditorInit(o))})("keydown.control.s",function(o){l(t);let n=s();return o.preventDefault(),c(n.onSave())})("keydown.meta.s",function(o){l(t);let n=s();return o.preventDefault(),c(n.onSave())}),a()}if(e&2){let t=s();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function z(e,_){if(e&1){let t=v();d(0,"textarea",11),g("ngModelChange",function(o){l(t);let n=s();return c(n.startupScript.set(o))}),S(1," "),a()}if(e&2){let t=s();f("ngModel",t.startupScript())}}var W=(()=>{class e{$api=r(E);$md=r(P);$route=r(x);$settings=r($);$toastr=r(V);$translate=r(M);lastHeight;visualViewPortEventCallback;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;startupScript=m("");saveInProgress=m(!1);isMobile=m(!1);constructor(){this.isMobile.set(!!this.$md.detect.mobile())}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light"},this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile()&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(t=>{this.startupScript.set(t.startupScript.script)}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript())}onSave(){return C(this,null,function*(){if(this.saveInProgress())return;this.saveInProgress.set(!0),this.isMobile()||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript.set(this.monacoEditor.getModel().getValue()));let t=this.startupScript();if(!["#!/bin/sh","#!/bin/bash"].includes(t.split(`
1
+ import{a as P}from"./chunk-UHG23NUX.js";import{a as D}from"./chunk-NYEZF6Y3.js";import{c as x}from"./chunk-CAY6MDP6.js";import{C as I,c as k,e as y,l as T}from"./chunk-JPAZUSRO.js";import{b as $}from"./chunk-MAJDTCMY.js";import{C as M,F as V,I as E}from"./chunk-VWUZDCBZ.js";import{Ab as h,Fb as f,Gb as d,Hb as a,Ib as w,Rb as v,Xb as g,Za as p,Zb as s,aa as r,ga as l,ha as c,kc as S,nb as b,sa as m,zb as u}from"./chunk-F5MBSCH4.js";import{h as C}from"./chunk-B4AJQJMI.js";function H(e,_){e&1&&w(0,"i",6)}function N(e,_){e&1&&w(0,"i",7)}function O(e,_){if(e&1){let t=v();d(0,"ngx-monaco-editor",10),g("onInit",function(o){l(t);let n=s();return c(n.onEditorInit(o))})("keydown.control.s",function(o){l(t);let n=s();return o.preventDefault(),c(n.onSave())})("keydown.meta.s",function(o){l(t);let n=s();return o.preventDefault(),c(n.onSave())}),a()}if(e&2){let t=s();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function z(e,_){if(e&1){let t=v();d(0,"textarea",11),g("ngModelChange",function(o){l(t);let n=s();return c(n.startupScript.set(o))}),S(1," "),a()}if(e&2){let t=s();f("ngModel",t.startupScript())}}var W=(()=>{class e{$api=r(E);$md=r(P);$route=r(x);$settings=r($);$toastr=r(V);$translate=r(M);lastHeight;visualViewPortEventCallback;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;startupScript=m("");saveInProgress=m(!1);isMobile=m(!1);constructor(){this.isMobile.set(!!this.$md.detect.mobile())}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light"},this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile()&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(t=>{this.startupScript.set(t.startupScript.script)}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript())}onSave(){return C(this,null,function*(){if(this.saveInProgress())return;this.saveInProgress.set(!0),this.isMobile()||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript.set(this.monacoEditor.getModel().getValue()));let t=this.startupScript();if(!["#!/bin/sh","#!/bin/bash"].includes(t.split(`
2
2
  `)[0].trim())){this.$toastr.error(this.$translate.instant("platform.docker.must_use_hashbang"),this.$translate.instant("toast.title_error"));let i=`#!/bin/sh
3
3
 
4
4
  ${t}`;this.startupScript.set(i),this.isMobile()||this.monacoEditor.getModel().setValue(i),this.saveInProgress.set(!1);return}try{yield this.$api.put("/platform-tools/docker/startup-script",{script:t}),this.$toastr.success(this.$translate.instant("platform.docker.restart_required"),this.$translate.instant("platform.docker.script_saved"))}catch(i){console.error(i),this.$toastr.error(i.message,this.$translate.instant("toast.title_error"))}this.saveInProgress.set(!1)})}ngOnDestroy(){window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}visualViewPortChanged(){this.lastHeight<window.visualViewport.height&&document.activeElement.blur(),window.visualViewport.height<window.innerHeight?(this.$md.enableTouchMove(),this.lastHeight=window.visualViewport.height):window.visualViewport.height===window.innerHeight&&(this.$md.disableTouchMove(),this.lastHeight=window.visualViewport.height)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=b({type:e,selectors:[["ng-component"]],decls:11,vars:4,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0","font-monospace"],[1,"col-6","text-end"],[1,"btn","btn-primary","waves-effect","m-0",3,"click","disabled"],[1,"fas","fa-circle-notch","fa-spin"],[1,"fas","fa-floppy-disk"],[1,"flex-grow-1","h-100","w-100","my-2",3,"options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModel"],[1,"flex-grow-1","h-100","w-100","my-2",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModelChange","ngModel"]],template:function(i,o){i&1&&(d(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),S(4,"startup.sh"),a()(),d(5,"div",4)(6,"button",5),g("click",function(){return o.onSave()}),u(7,H,1,0,"i",6)(8,N,1,0,"i",7),a()()(),u(9,O,1,2,"ngx-monaco-editor",8),u(10,z,2,1,"textarea",9),a()),i&2&&(p(6),f("disabled",o.saveInProgress()),p(),h(o.saveInProgress()?7:8),p(2),h(o.isMobile()?-1:9),p(),h(o.isMobile()?10:-1))},dependencies:[D,I,k,y,T],encapsulation:2})}return e})();export{W as StartupScriptComponent};
@@ -1 +1 @@
1
- import{a as B}from"./chunk-AMSZTHK7.js";import{a as H}from"./chunk-HH2FDI7W.js";import{a as j}from"./chunk-OTMZDL7S.js";import{t as V}from"./chunk-RDHUW73W.js";import{e as R}from"./chunk-A7MBTNVM.js";import{b as E}from"./chunk-IL3A5BIS.js";import{C as I,D as O,F as D,I as P}from"./chunk-B23NNBW7.js";import{Ab as v,Dc as l,Ec as c,Fb as y,Gb as s,Hb as o,Ib as S,Rb as h,Xb as m,Za as i,Zb as g,aa as a,ea as C,ga as u,ha as _,kc as p,lc as k,mb as T,mc as d,nb as $,sa as w,zb as f}from"./chunk-F5MBSCH4.js";import{h as b}from"./chunk-B4AJQJMI.js";function N(e,x){if(e&1){let t=h();s(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.restartServer())}),p(2),l(3,"translate"),o()()}e&2&&(i(2),d(" ",c(3,1,"menu.linux.label_restart_server")," "))}function A(e,x){if(e&1){let t=h();s(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.shutdownServer())}),p(2),l(3,"translate"),o()()}e&2&&(i(2),d(" ",c(3,1,"menu.linux.label_shutdown_server")," "))}function z(e,x){if(e&1){let t=h();s(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.dockerRestartContainer())}),p(2),l(3,"translate"),o()()}e&2&&(i(2),d(" ",c(3,1,"menu.docker.restart_container")," "))}var tt=(()=>{class e{injector=a(C);$api=a(P);$modal=a(V);$router=a(R);$settings=a(E);$toastr=a(D);$translate=a(I);canShutdownRestartHost=w(this.$settings.env.canShutdownRestartHost);runningInDocker=w(this.$settings.env.runningInDocker);ngOnInit(){let t=this.$translate.instant("menu.restart.title");this.$settings.setPageTitle(t)}closeRestartToast(){this.$settings.restartToastRef&&(this.$toastr.clear(this.$settings.restartToastRef.toastId),this.$settings.restartToastRef=null)}restartHomebridge(){this.closeRestartToast(),this.$router.navigate(["/restart"])}restartHomebridgeService(){return b(this,null,function*(){this.closeRestartToast();try{yield this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}),this.$router.navigate(["/restart"])}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}restartServer(){this.closeRestartToast(),this.$router.navigate(["/platform-tools/linux/restart-server"])}shutdownServer(){return b(this,null,function*(){this.closeRestartToast();let t=T([{provide:H,useValue:{title:this.$translate.instant("menu.linux.label_shutdown_server"),message:this.$translate.instant("menu.linux.label_shutdown_modal"),confirmButtonLabel:this.$translate.instant("form.button_continue"),faIconClass:"fa fa-power-off primary-text"}}],this.injector),r=this.$modal.open(B,{size:"lg",backdrop:"static",injector:t});try{yield r.result,this.$router.navigate(["/platform-tools/linux/shutdown-server"])}catch{}})}dockerRestartContainer(){this.closeRestartToast(),this.$router.navigate(["/platform-tools/docker/restart-container"])}static \u0275fac=function(r){return new(r||e)};static \u0275cmp=$({type:e,selectors:[["ng-component"]],decls:19,vars:16,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,"w-100","text-center","my-5"],["type","button",1,"btn","btn-primary","p-3","my-0",2,"width","85%",3,"click"],["type","button","container","body","triggers","hover",1,"btn","btn-primary","p-3","my-0",2,"width","85%",3,"click","openDelay","ngbTooltip"]],template:function(r,n){r&1&&(s(0,"div",0)(1,"h3",1),p(2),l(3,"translate"),o()(),s(4,"div",2)(5,"div",3),S(6,"i",4),o(),s(7,"p",5)(8,"button",6),m("click",function(){return n.restartHomebridge()}),p(9),l(10,"translate"),o()(),s(11,"p",5)(12,"button",7),l(13,"translate"),m("click",function(){return n.restartHomebridgeService()}),p(14),l(15,"translate"),o()(),f(16,N,4,3,"p",5),f(17,A,4,3,"p",5),f(18,z,4,3,"p",5),o()),r&2&&(i(2),k(c(3,8,"menu.restart.title")),i(7),d(" ",c(10,10,"menu.hbrestart.confirm_hb")," "),i(3),y("openDelay",150)("ngbTooltip",c(13,12,"reset.force_restart_hb_help_text")),i(2),d(" ",c(15,14,"menu.hbrestart.confirm_ui")," "),i(2),v(n.canShutdownRestartHost()?16:-1),i(),v(n.canShutdownRestartHost()?17:-1),i(),v(n.runningInDocker()?18:-1))},dependencies:[j,O],encapsulation:2})}return e})();export{tt as PowerOptionsComponent};
1
+ import{a as B}from"./chunk-6U3YEWBO.js";import{a as H}from"./chunk-HH2FDI7W.js";import{a as j}from"./chunk-OTMZDL7S.js";import{t as V}from"./chunk-RDHUW73W.js";import{e as R}from"./chunk-CAY6MDP6.js";import{b as E}from"./chunk-MAJDTCMY.js";import{C as I,D as O,F as D,I as P}from"./chunk-VWUZDCBZ.js";import{Ab as v,Dc as l,Ec as c,Fb as y,Gb as s,Hb as o,Ib as S,Rb as h,Xb as m,Za as i,Zb as g,aa as a,ea as C,ga as u,ha as _,kc as p,lc as k,mb as T,mc as d,nb as $,sa as w,zb as f}from"./chunk-F5MBSCH4.js";import{h as b}from"./chunk-B4AJQJMI.js";function N(e,x){if(e&1){let t=h();s(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.restartServer())}),p(2),l(3,"translate"),o()()}e&2&&(i(2),d(" ",c(3,1,"menu.linux.label_restart_server")," "))}function A(e,x){if(e&1){let t=h();s(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.shutdownServer())}),p(2),l(3,"translate"),o()()}e&2&&(i(2),d(" ",c(3,1,"menu.linux.label_shutdown_server")," "))}function z(e,x){if(e&1){let t=h();s(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.dockerRestartContainer())}),p(2),l(3,"translate"),o()()}e&2&&(i(2),d(" ",c(3,1,"menu.docker.restart_container")," "))}var tt=(()=>{class e{injector=a(C);$api=a(P);$modal=a(V);$router=a(R);$settings=a(E);$toastr=a(D);$translate=a(I);canShutdownRestartHost=w(this.$settings.env.canShutdownRestartHost);runningInDocker=w(this.$settings.env.runningInDocker);ngOnInit(){let t=this.$translate.instant("menu.restart.title");this.$settings.setPageTitle(t)}closeRestartToast(){this.$settings.restartToastRef&&(this.$toastr.clear(this.$settings.restartToastRef.toastId),this.$settings.restartToastRef=null)}restartHomebridge(){this.closeRestartToast(),this.$router.navigate(["/restart"])}restartHomebridgeService(){return b(this,null,function*(){this.closeRestartToast();try{yield this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}),this.$router.navigate(["/restart"])}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}restartServer(){this.closeRestartToast(),this.$router.navigate(["/platform-tools/linux/restart-server"])}shutdownServer(){return b(this,null,function*(){this.closeRestartToast();let t=T([{provide:H,useValue:{title:this.$translate.instant("menu.linux.label_shutdown_server"),message:this.$translate.instant("menu.linux.label_shutdown_modal"),confirmButtonLabel:this.$translate.instant("form.button_continue"),faIconClass:"fa fa-power-off primary-text"}}],this.injector),r=this.$modal.open(B,{size:"lg",backdrop:"static",injector:t});try{yield r.result,this.$router.navigate(["/platform-tools/linux/shutdown-server"])}catch{}})}dockerRestartContainer(){this.closeRestartToast(),this.$router.navigate(["/platform-tools/docker/restart-container"])}static \u0275fac=function(r){return new(r||e)};static \u0275cmp=$({type:e,selectors:[["ng-component"]],decls:19,vars:16,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,"w-100","text-center","my-5"],["type","button",1,"btn","btn-primary","p-3","my-0",2,"width","85%",3,"click"],["type","button","container","body","triggers","hover",1,"btn","btn-primary","p-3","my-0",2,"width","85%",3,"click","openDelay","ngbTooltip"]],template:function(r,n){r&1&&(s(0,"div",0)(1,"h3",1),p(2),l(3,"translate"),o()(),s(4,"div",2)(5,"div",3),S(6,"i",4),o(),s(7,"p",5)(8,"button",6),m("click",function(){return n.restartHomebridge()}),p(9),l(10,"translate"),o()(),s(11,"p",5)(12,"button",7),l(13,"translate"),m("click",function(){return n.restartHomebridgeService()}),p(14),l(15,"translate"),o()(),f(16,N,4,3,"p",5),f(17,A,4,3,"p",5),f(18,z,4,3,"p",5),o()),r&2&&(i(2),k(c(3,8,"menu.restart.title")),i(7),d(" ",c(10,10,"menu.hbrestart.confirm_hb")," "),i(3),y("openDelay",150)("ngbTooltip",c(13,12,"reset.force_restart_hb_help_text")),i(2),d(" ",c(15,14,"menu.hbrestart.confirm_ui")," "),i(2),v(n.canShutdownRestartHost()?16:-1),i(),v(n.canShutdownRestartHost()?17:-1),i(),v(n.runningInDocker()?18:-1))},dependencies:[j,O],encapsulation:2})}return e})();export{tt as PowerOptionsComponent};
@@ -1 +1 @@
1
- import{b as ke,c as Ne}from"./chunk-QNOVJEHS.js";import"./chunk-4G3SMV26.js";import{a as Ae}from"./chunk-VCWYDWAJ.js";import{a as Fe}from"./chunk-UHG23NUX.js";import{a as ae}from"./chunk-K3WEJJSS.js";import{a as Be}from"./chunk-YPN7FV6O.js";import"./chunk-HH2FDI7W.js";import"./chunk-7SWRANGJ.js";import{a as Ee,b as Re,c as Te}from"./chunk-5QQ2XMII.js";import{a as we}from"./chunk-OTMZDL7S.js";import"./chunk-UVWXUC5Y.js";import{s as $,t as Se}from"./chunk-RDHUW73W.js";import"./chunk-A7MBTNVM.js";import{a as he}from"./chunk-C64AHVUO.js";import{b as De}from"./chunk-TKVKJ7BH.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-UUTQE5VH.js";import{b as Me}from"./chunk-IL3A5BIS.js";import{C as Ce,D as w,I as ye}from"./chunk-B23NNBW7.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-F5MBSCH4.js";import{a as N,b as F,h as q}from"./chunk-B4AJQJMI.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-A5JF6PDD.js";import"./chunk-S2GJNEOI.js";import{a as Ae}from"./chunk-VCWYDWAJ.js";import{a as Fe}from"./chunk-UHG23NUX.js";import{a as ae}from"./chunk-K3WEJJSS.js";import{a as Be}from"./chunk-3LY5FRVV.js";import"./chunk-HH2FDI7W.js";import"./chunk-H2UKSDHZ.js";import{a as Ee,b as Re,c as Te}from"./chunk-5QQ2XMII.js";import{a as we}from"./chunk-OTMZDL7S.js";import"./chunk-UVWXUC5Y.js";import{s as $,t as Se}from"./chunk-RDHUW73W.js";import"./chunk-CAY6MDP6.js";import{a as he}from"./chunk-C64AHVUO.js";import{b as De}from"./chunk-664C4LX2.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-JPAZUSRO.js";import{b as Me}from"./chunk-MAJDTCMY.js";import{C as Ce,D as w,I as ye}from"./chunk-VWUZDCBZ.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-F5MBSCH4.js";import{a as N,b as F,h as q}from"./chunk-B4AJQJMI.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};