homebridge-config-ui-x 5.4.2-beta.8 → 5.4.2-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/modules/accessories/accessories.service.js +5 -1
- package/dist/modules/accessories/accessories.service.js.map +1 -1
- package/dist/modules/plugins/plugins.service.d.ts +1 -0
- package/dist/modules/plugins/plugins.service.js +27 -15
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/package.json +1 -1
- package/public/{chunk-YRIAJM6Y.js → chunk-2CO3VBPY.js} +1 -1
- package/public/{chunk-U6PYN4II.js → chunk-3I6K5KUV.js} +1 -1
- package/public/{chunk-DASXSZCK.js → chunk-5VA2P7IY.js} +1 -1
- package/public/{chunk-YNFL6Q3L.js → chunk-7LW4MGOQ.js} +1 -1
- package/public/{chunk-WMTKD5YY.js → chunk-BBMQHM5Y.js} +1 -1
- package/public/{chunk-RQFAIEO7.js → chunk-BOJ5G5BR.js} +1 -1
- package/public/{chunk-ILM36GEA.js → chunk-CCPSSGRZ.js} +1 -1
- package/public/{chunk-4NMZRHR6.js → chunk-DP64F7AR.js} +1 -1
- package/public/{chunk-3P4RM2BA.js → chunk-DYJDYESS.js} +1 -1
- package/public/{chunk-LJCIV6Z3.js → chunk-E6YWZCLV.js} +1 -1
- package/public/{chunk-WFXGDJ4B.js → chunk-EOD26MLT.js} +1 -1
- package/public/{chunk-LUUY2SYK.js → chunk-F5LCQLBC.js} +1 -1
- package/public/{chunk-YLIPTO6D.js → chunk-FXX7OM3C.js} +1 -1
- package/public/{chunk-F6PYAH7Z.js → chunk-GSI45GAI.js} +1 -1
- package/public/{chunk-BYV54PEG.js → chunk-H5ZWWQ4N.js} +1 -1
- package/public/{chunk-PBA72Y7F.js → chunk-ICTLVT6T.js} +1 -1
- package/public/{chunk-FELMUB4D.js → chunk-J2QJA4E5.js} +1 -1
- package/public/{chunk-LWTXCMFH.js → chunk-JIAMQ2VI.js} +1 -1
- package/public/{chunk-RSIANNNF.js → chunk-KJ7TFOAF.js} +1 -1
- package/public/{chunk-HG4HVFLB.js → chunk-L452FIUI.js} +1 -1
- package/public/{chunk-55FCKDDQ.js → chunk-MLQP4BIF.js} +1 -1
- package/public/{chunk-BDFT33ET.js → chunk-N2DFJK5J.js} +1 -1
- package/public/chunk-NGCBLX4N.js +1 -0
- package/public/{chunk-465U4FZV.js → chunk-NQUU3I4B.js} +1 -1
- package/public/{chunk-DT2WDJ2I.js → chunk-OKJ3EDLI.js} +1 -1
- package/public/{chunk-ZMKY2XSO.js → chunk-OPI4KEXA.js} +1 -1
- package/public/{chunk-I5ZTZWWC.js → chunk-PGN4W67A.js} +1 -1
- package/public/{chunk-FGCUDKSH.js → chunk-PJQJ4U6H.js} +1 -1
- package/public/{chunk-JSC6PYTD.js → chunk-Q76LRRNA.js} +1 -1
- package/public/{chunk-LVUMUQV7.js → chunk-QKX6ZW6V.js} +1 -1
- package/public/{chunk-YAA5O4PJ.js → chunk-QTPZZ54U.js} +1 -1
- package/public/{chunk-GKQ4M2JD.js → chunk-R2OFMY4D.js} +1 -1
- package/public/{chunk-2GB56HTN.js → chunk-RVZECQBJ.js} +1 -1
- package/public/{chunk-2BOBWHVT.js → chunk-SAZZA33Y.js} +1 -1
- package/public/{chunk-2OYNBG2N.js → chunk-SJ3DSNFF.js} +1 -1
- package/public/{chunk-SMYT4RBA.js → chunk-SNHTHMX3.js} +1 -1
- package/public/{chunk-ZNJ3LVKA.js → chunk-U2KAF42T.js} +1 -1
- package/public/{chunk-Y6KHINTU.js → chunk-UKLR7UOX.js} +1 -1
- package/public/{chunk-BI3O3AIO.js → chunk-UQX3UTFZ.js} +4 -4
- package/public/{chunk-O3SGSKKI.js → chunk-VU6MPE5H.js} +1 -1
- package/public/{chunk-R5BOGDS2.js → chunk-WV56IURB.js} +1 -1
- package/public/{chunk-Y752BA6L.js → chunk-X7YL6WTA.js} +1 -1
- package/public/{chunk-TK3Z5QBS.js → chunk-XHYVOBCA.js} +1 -1
- package/public/{chunk-M5FWDVIL.js → chunk-XJZGI5OR.js} +1 -1
- package/public/{chunk-PSIKVTV4.js → chunk-YXI6VAVI.js} +1 -1
- package/public/{chunk-2RM2ZIP4.js → chunk-Z3CXF63X.js} +1 -1
- package/public/{chunk-OVKGLIQA.js → chunk-Z7BM53JV.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-RLR5VDBK.js → main-BZ3XOOI6.js} +1 -1
- package/public/chunk-6AV3Q7A4.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as H}from"./chunk-I2TETZLW.js";import{a as X}from"./chunk-NJOBXAPT.js";import{a as Z}from"./chunk-YATJTZML.js";import"./chunk-ZHPB347D.js";import{a as R}from"./chunk-4WAU3AJS.js";import{n as E}from"./chunk-EA3EXGPZ.js";import"./chunk-CNMM42I5.js";import{a as j}from"./chunk-DT2WDJ2I.js";import{b as A}from"./chunk-Y752BA6L.js";import{a as W,c as q,d as V,e as N,f as D}from"./chunk-UOLP7IQJ.js";import{b as T}from"./chunk-LJCIV6Z3.js";import{m as $}from"./chunk-YRIAJM6Y.js";import{a as L,b as U}from"./chunk-G7FA4DP4.js";import"./chunk-6GMXEQVA.js";import{Cc as h,Dc as M,Hb as m,Ib as x,Jb as y,Jc as d,Kc as s,Ob as c,Pb as n,Qb as a,Rb as p,_b as S,ab as o,bc as _,dc as C,fb as F,g as Y,h as I,id as O,ka as u,mb as P,qa as b,qc as f,ra as w,rc as v,w as z,yd as K}from"./chunk-H36QJYLQ.js";var Q=Y(Z(),1);function G(){var i;return typeof window<"u"&&(window?.matchMedia("(display-mode: standalone)").matches||((i=window.navigator)===null||i===void 0?void 0:i.standalone)||document.referrer.startsWith("android-app://")||window?.Windows||/trident.+(msapphost|webview)\//i.test(navigator.userAgent)||document.referrer.startsWith("app-info://platform/microsoft-store"))}var B=()=>["/"],te=i=>({"hamburger-icon-cross":i}),ne=i=>({expanded:i}),ie=()=>({exact:!0}),oe=()=>["/plugins"],re=()=>["/accessories"],ae=()=>["/logs"],de=()=>["/support"],se=()=>["/platform-tools/terminal"],le=()=>["/config"],pe=()=>["/settings"],ce=()=>["/power-options"];function me(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),_("click",function(){b(e);let t=C();return w(t.openUnderVoltageModal())})("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(4,"div",12),p(5,"i",21),a(),n(6,"div",14),f(7),d(8,"translate"),a()()()}i&2&&(o(),m("aria-label",s(2,2,"rpi.throttled.undervoltage_title")+" - "+s(3,4,"rpi.throttled.undervoltage_description")),o(6),v(s(8,6,"rpi.throttled.undervoltage_title")))}function ue(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",15),d(2,"translate"),_("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",22),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),c("routerLink",h(8,se))("routerLinkActive","active"),m("aria-label",s(2,4,"menu.linux.label_terminal")),o(5),v(s(7,6,"menu.linux.label_terminal")))}function _e(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",15),d(2,"translate"),_("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",23),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),c("routerLink",h(8,le))("routerLinkActive","active"),m("aria-label",s(2,4,"menu.config_json_editor")),o(5),v(s(7,6,"menu.config_json_editor")))}function fe(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",15),d(2,"translate"),_("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",24),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),c("routerLink",h(8,pe))("routerLinkActive","active"),m("aria-label",s(2,4,"menu.label_settings")),o(5),v(s(7,6,"menu.label_settings")))}function ge(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",15),d(2,"translate"),_("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",25),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),c("routerLink",h(8,ce))("routerLinkActive","active"),m("aria-label",s(2,4,"menu.restart.title")),o(5),v(s(7,6,"menu.restart.title")))}function ve(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",20),d(2,"translate"),_("click",function(){b(e);let t=C();return w(t.reloadPage())})("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",26),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),m("aria-label",s(2,2,"menu.reload")),o(5),v(s(7,4,"menu.reload")))}function he(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",20),d(2,"translate"),_("click",function(){b(e);let t=C();return w(t.logout())})("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",27),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),m("aria-label",s(2,2,"menu.tooltip_logout")),o(5),v(s(7,4,"menu.tooltip_logout")))}var J=(()=>{class i{$auth=u(A);$settings=u(T);$modal=u(E);$notification=u(X);$renderer=u(F);$router=u(V);$translate=u(L);isExpanded=!1;formAuth=this.$settings.formAuth;isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=!1;rPiWasUnderVoltage=!1;isMobile=!1;freezeMenu=!1;isPwa=G();constructor(){this.isMobile=window.innerWidth<768;let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.subscribe(l=>{l instanceof W&&(this.closeSidebar(),this.freezeMenu=!0,setTimeout(()=>{this.freezeMenu=!1},750))})}ngOnInit(){this.$notification.raspberryPiThrottled.subscribe(r=>{r["Under Voltage"]&&(this.rPiCurrentlyUnderVoltage=!0),r["Under-voltage has occurred"]&&(this.rPiWasUnderVoltage=!0)}),this.$notification.formAuthEnabled.subscribe(r=>{this.formAuth=r});let e=document.querySelector(".sidebar"),l=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile?document.addEventListener("touchstart",r=>{if(t.contains(r.target)&&this.isExpanded){r.preventDefault(),this.toggleSidebar();return}!e.contains(r.target)&&!l.contains(r.target)&&this.isExpanded&&(r.preventDefault(),this.closeSidebar())},{passive:!1}):(this.updateListeners(),l.addEventListener("mouseenter",()=>this.openSidebar(),{passive:!1}),l.addEventListener("mouseleave",()=>this.closeSidebar(),{passive:!1}),document.addEventListener("click",r=>{e.contains(r.target)&&r.clientX>60&&this.closeSidebar()},{passive:!1})),this.updateContentStyles()}toggleSidebar(){this.freezeMenu||(this.isExpanded=!this.isExpanded,this.updateContentStyles())}openUnderVoltageModal(){let e=this.$modal.open(H,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("rpi.throttled.undervoltage_title"),e.componentInstance.message=this.$translate.instant(this.rPiCurrentlyUnderVoltage?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.faIconClass="fas fa-fw fa-bolt yellow-text",e.componentInstance.ctaButtonLink="https://pimylifeup.com/raspberry-pi-low-voltage-warning"}handleKeydown(e){if(e.key==="Enter"){let l=e.target;["menuitem","button"].includes(l.getAttribute("role"))&&l.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){document.removeEventListener("touchstart",()=>{}),document.removeEventListener("click",()=>{})}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu||(this.isExpanded=!0,this.updateContentStyles())}closeSidebar(){this.freezeMenu||(this.isExpanded=!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=window.innerWidth<768;let e=document.querySelector(".sidebar");e.removeAllListeners(),(this.isMobile||!this.isMobile&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",()=>this.openSidebar(),{passive:!1}),e.addEventListener("mouseleave",()=>this.closeSidebar(),{passive:!1}))}static \u0275fac=function(l){return new(l||i)};static \u0275cmp=P({type:i,selectors:[["app-sidebar"]],inputs:{isExpanded:"isExpanded"},decls:68,vars:75,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",3,"ngClass"],["role","navigation","id","sidebar",1,"sidebar",3,"ngClass"],["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-fw","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-fw","fa-plug"],[1,"fa","fa-fw","fa-lightbulb"],[1,"fa","fa-fw","fa-wave-square"],[1,"fa","fa-fw","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-fw","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-fw","fa-terminal"],[1,"fa","fa-fw","fa-code"],[1,"fa","fa-fw","fa-cog"],[1,"fa","fa-fw","fa-power-off"],[1,"fa","fa-fw","fa-refresh"],[1,"fa","fa-fw","fa-right-from-bracket"]],template:function(l,t){l&1&&(n(0,"div",0),d(1,"translate"),_("click",function(){return t.toggleSidebar()})("keydown",function(g){return t.handleKeydown(g)}),p(2,"span",1),n(3,"a",2),d(4,"translate"),p(5,"img",3),n(6,"div",4),f(7,"Homebridge"),a()(),n(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),n(13,"div",6)(14,"div",7),_("click",function(){return t.toggleSidebar()})("keydown",function(g){return t.handleKeydown(g)}),n(15,"a",2),d(16,"translate"),p(17,"img",3),n(18,"div",8),f(19,"Homebridge"),a()()(),n(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(24,"div",12),p(25,"i",13),a(),n(26,"div",14),f(27),d(28,"translate"),a()()(),x(29,me,9,8,"div",10),n(30,"div",10)(31,"div",15),d(32,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(33,"div",12),p(34,"i",16),a(),n(35,"div",14),f(36),d(37,"translate"),a()()(),n(38,"div",10)(39,"div",15),d(40,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(41,"div",12),p(42,"i",17),a(),n(43,"div",14),f(44),d(45,"translate"),a()()(),n(46,"div",10)(47,"div",15),d(48,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(49,"div",12),p(50,"i",18),a(),n(51,"div",14),f(52),d(53,"translate"),a()()(),x(54,ue,8,9,"div",10),x(55,_e,8,9,"div",10),x(56,fe,8,9,"div",10),n(57,"div",10)(58,"div",15),d(59,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(60,"div",12),p(61,"i",19),a(),n(62,"div",14),f(63),d(64,"translate"),a()()(),x(65,ge,8,9,"div",10),x(66,ve,8,6,"div",10),x(67,he,8,6,"div",10),a()()),l&2&&(m("aria-expanded",t.isExpanded?"true":"false")("aria-controls","sidebar")("aria-label",s(1,37,"menu.sidebar.aria_menu")),o(3),c("routerLink",h(63,B)),m("aria-label",s(4,39,"menu.label_status")),o(5),c("ngClass",M(64,te,t.isExpanded)),o(5),c("ngClass",M(66,ne,t.isExpanded)),o(2),c("routerLink",h(68,B)),m("aria-label",s(16,41,"menu.label_status")),o(7),c("routerLink",h(69,B))("routerLinkActive","active")("routerLinkActiveOptions",h(70,ie)),m("aria-label",s(23,43,"menu.label_status")),o(5),v(s(28,45,"menu.label_status")),o(2),y(t.rPiWasUnderVoltage||t.rPiCurrentlyUnderVoltage?29:-1),o(2),c("routerLink",h(71,oe))("routerLinkActive","active"),m("aria-label",s(32,47,"menu.label_plugins")),o(5),v(s(37,49,"menu.label_plugins")),o(3),c("routerLink",h(72,re))("routerLinkActive","active"),m("aria-label",s(40,51,"menu.label_accessories")),o(5),v(s(45,53,"menu.label_accessories")),o(3),c("routerLink",h(73,ae))("routerLinkActive","active"),m("aria-label",s(48,55,"menu.linux.label_logs")),o(5),v(s(53,57,"menu.linux.label_logs")),o(2),y(t.enableTerminalAccess&&t.isAdmin?54:-1),o(),y(t.isAdmin?55:-1),o(),y(t.isAdmin?56:-1),o(2),c("routerLink",h(74,de))("routerLinkActive","active"),m("aria-label",s(59,59,"support.title")),o(5),v(s(64,61,"support.title")),o(2),y(t.isAdmin?65:-1),o(),y(t.isPwa?66:-1),o(),y(t.formAuth?67:-1))},dependencies:[N,K,O,D,U],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-y:auto;max-height:calc(100vh - 80px)!important}.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 i})();var be=i=>({sidebarExpanded:i}),He=(()=>{class i{$auth=u(A);$modal=u(E);$router=u(V);$settings=u(T);$translate=u(L);$ws=u(j);io;sidebarExpanded=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return I(this,null,function*(){if(this.$settings.settingsLoaded||(yield z(this.$settings.onSettingsLoaded)),this.$router.url!=="/restart"&&(0,Q.lt)(this.$settings.uiVersion,$.serverTarget)){console.log(`Server restart required. UI Version: ${$.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=this.$modal.open(R,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("platform.version.service_restart_required"),e.componentInstance.message=this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:$.serverTarget}),e.componentInstance.confirmButtonLabel=this.$translate.instant("menu.tooltip_restart"),e.componentInstance.faIconClass="fas fa-power-off orange-text",e.result.then(()=>this.$router.navigate(["/restart"])).catch(()=>{})}})}static \u0275fac=function(l){return new(l||i)};static \u0275cmp=P({type:i,selectors:[["app-layout"]],decls:3,vars:4,consts:[[3,"isExpanded"],[1,"content","px-3","p-md-4",3,"ngClass"]],template:function(l,t){l&1&&(p(0,"app-sidebar",0),n(1,"div",1),p(2,"router-outlet"),a()),l&2&&(c("isExpanded",t.sidebarExpanded),o(),c("ngClass",M(2,be,t.sidebarExpanded)))},dependencies:[J,O,q],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 i})();export{He as LayoutComponent};
|
|
1
|
+
import{a as H}from"./chunk-I2TETZLW.js";import{a as X}from"./chunk-NJOBXAPT.js";import{a as Z}from"./chunk-YATJTZML.js";import"./chunk-ZHPB347D.js";import{a as R}from"./chunk-4WAU3AJS.js";import{n as E}from"./chunk-EA3EXGPZ.js";import"./chunk-CNMM42I5.js";import{a as j}from"./chunk-OKJ3EDLI.js";import{b as A}from"./chunk-X7YL6WTA.js";import{a as W,c as q,d as V,e as N,f as D}from"./chunk-UOLP7IQJ.js";import{b as T}from"./chunk-E6YWZCLV.js";import{m as $}from"./chunk-2CO3VBPY.js";import{a as L,b as U}from"./chunk-G7FA4DP4.js";import"./chunk-6GMXEQVA.js";import{Cc as h,Dc as M,Hb as m,Ib as x,Jb as y,Jc as d,Kc as s,Ob as c,Pb as n,Qb as a,Rb as p,_b as S,ab as o,bc as _,dc as C,fb as F,g as Y,h as I,id as O,ka as u,mb as P,qa as b,qc as f,ra as w,rc as v,w as z,yd as K}from"./chunk-H36QJYLQ.js";var Q=Y(Z(),1);function G(){var i;return typeof window<"u"&&(window?.matchMedia("(display-mode: standalone)").matches||((i=window.navigator)===null||i===void 0?void 0:i.standalone)||document.referrer.startsWith("android-app://")||window?.Windows||/trident.+(msapphost|webview)\//i.test(navigator.userAgent)||document.referrer.startsWith("app-info://platform/microsoft-store"))}var B=()=>["/"],te=i=>({"hamburger-icon-cross":i}),ne=i=>({expanded:i}),ie=()=>({exact:!0}),oe=()=>["/plugins"],re=()=>["/accessories"],ae=()=>["/logs"],de=()=>["/support"],se=()=>["/platform-tools/terminal"],le=()=>["/config"],pe=()=>["/settings"],ce=()=>["/power-options"];function me(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),_("click",function(){b(e);let t=C();return w(t.openUnderVoltageModal())})("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(4,"div",12),p(5,"i",21),a(),n(6,"div",14),f(7),d(8,"translate"),a()()()}i&2&&(o(),m("aria-label",s(2,2,"rpi.throttled.undervoltage_title")+" - "+s(3,4,"rpi.throttled.undervoltage_description")),o(6),v(s(8,6,"rpi.throttled.undervoltage_title")))}function ue(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",15),d(2,"translate"),_("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",22),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),c("routerLink",h(8,se))("routerLinkActive","active"),m("aria-label",s(2,4,"menu.linux.label_terminal")),o(5),v(s(7,6,"menu.linux.label_terminal")))}function _e(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",15),d(2,"translate"),_("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",23),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),c("routerLink",h(8,le))("routerLinkActive","active"),m("aria-label",s(2,4,"menu.config_json_editor")),o(5),v(s(7,6,"menu.config_json_editor")))}function fe(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",15),d(2,"translate"),_("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",24),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),c("routerLink",h(8,pe))("routerLinkActive","active"),m("aria-label",s(2,4,"menu.label_settings")),o(5),v(s(7,6,"menu.label_settings")))}function ge(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",15),d(2,"translate"),_("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",25),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),c("routerLink",h(8,ce))("routerLinkActive","active"),m("aria-label",s(2,4,"menu.restart.title")),o(5),v(s(7,6,"menu.restart.title")))}function ve(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",20),d(2,"translate"),_("click",function(){b(e);let t=C();return w(t.reloadPage())})("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",26),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),m("aria-label",s(2,2,"menu.reload")),o(5),v(s(7,4,"menu.reload")))}function he(i,k){if(i&1){let e=S();n(0,"div",10)(1,"div",20),d(2,"translate"),_("click",function(){b(e);let t=C();return w(t.logout())})("keydown",function(t){b(e);let r=C();return w(r.handleKeydown(t))}),n(3,"div",12),p(4,"i",27),a(),n(5,"div",14),f(6),d(7,"translate"),a()()()}i&2&&(o(),m("aria-label",s(2,2,"menu.tooltip_logout")),o(5),v(s(7,4,"menu.tooltip_logout")))}var J=(()=>{class i{$auth=u(A);$settings=u(T);$modal=u(E);$notification=u(X);$renderer=u(F);$router=u(V);$translate=u(L);isExpanded=!1;formAuth=this.$settings.formAuth;isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=!1;rPiWasUnderVoltage=!1;isMobile=!1;freezeMenu=!1;isPwa=G();constructor(){this.isMobile=window.innerWidth<768;let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.subscribe(l=>{l instanceof W&&(this.closeSidebar(),this.freezeMenu=!0,setTimeout(()=>{this.freezeMenu=!1},750))})}ngOnInit(){this.$notification.raspberryPiThrottled.subscribe(r=>{r["Under Voltage"]&&(this.rPiCurrentlyUnderVoltage=!0),r["Under-voltage has occurred"]&&(this.rPiWasUnderVoltage=!0)}),this.$notification.formAuthEnabled.subscribe(r=>{this.formAuth=r});let e=document.querySelector(".sidebar"),l=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile?document.addEventListener("touchstart",r=>{if(t.contains(r.target)&&this.isExpanded){r.preventDefault(),this.toggleSidebar();return}!e.contains(r.target)&&!l.contains(r.target)&&this.isExpanded&&(r.preventDefault(),this.closeSidebar())},{passive:!1}):(this.updateListeners(),l.addEventListener("mouseenter",()=>this.openSidebar(),{passive:!1}),l.addEventListener("mouseleave",()=>this.closeSidebar(),{passive:!1}),document.addEventListener("click",r=>{e.contains(r.target)&&r.clientX>60&&this.closeSidebar()},{passive:!1})),this.updateContentStyles()}toggleSidebar(){this.freezeMenu||(this.isExpanded=!this.isExpanded,this.updateContentStyles())}openUnderVoltageModal(){let e=this.$modal.open(H,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("rpi.throttled.undervoltage_title"),e.componentInstance.message=this.$translate.instant(this.rPiCurrentlyUnderVoltage?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.faIconClass="fas fa-fw fa-bolt yellow-text",e.componentInstance.ctaButtonLink="https://pimylifeup.com/raspberry-pi-low-voltage-warning"}handleKeydown(e){if(e.key==="Enter"){let l=e.target;["menuitem","button"].includes(l.getAttribute("role"))&&l.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){document.removeEventListener("touchstart",()=>{}),document.removeEventListener("click",()=>{})}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu||(this.isExpanded=!0,this.updateContentStyles())}closeSidebar(){this.freezeMenu||(this.isExpanded=!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=window.innerWidth<768;let e=document.querySelector(".sidebar");e.removeAllListeners(),(this.isMobile||!this.isMobile&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",()=>this.openSidebar(),{passive:!1}),e.addEventListener("mouseleave",()=>this.closeSidebar(),{passive:!1}))}static \u0275fac=function(l){return new(l||i)};static \u0275cmp=P({type:i,selectors:[["app-sidebar"]],inputs:{isExpanded:"isExpanded"},decls:68,vars:75,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",3,"ngClass"],["role","navigation","id","sidebar",1,"sidebar",3,"ngClass"],["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-fw","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-fw","fa-plug"],[1,"fa","fa-fw","fa-lightbulb"],[1,"fa","fa-fw","fa-wave-square"],[1,"fa","fa-fw","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-fw","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-fw","fa-terminal"],[1,"fa","fa-fw","fa-code"],[1,"fa","fa-fw","fa-cog"],[1,"fa","fa-fw","fa-power-off"],[1,"fa","fa-fw","fa-refresh"],[1,"fa","fa-fw","fa-right-from-bracket"]],template:function(l,t){l&1&&(n(0,"div",0),d(1,"translate"),_("click",function(){return t.toggleSidebar()})("keydown",function(g){return t.handleKeydown(g)}),p(2,"span",1),n(3,"a",2),d(4,"translate"),p(5,"img",3),n(6,"div",4),f(7,"Homebridge"),a()(),n(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),n(13,"div",6)(14,"div",7),_("click",function(){return t.toggleSidebar()})("keydown",function(g){return t.handleKeydown(g)}),n(15,"a",2),d(16,"translate"),p(17,"img",3),n(18,"div",8),f(19,"Homebridge"),a()()(),n(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(24,"div",12),p(25,"i",13),a(),n(26,"div",14),f(27),d(28,"translate"),a()()(),x(29,me,9,8,"div",10),n(30,"div",10)(31,"div",15),d(32,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(33,"div",12),p(34,"i",16),a(),n(35,"div",14),f(36),d(37,"translate"),a()()(),n(38,"div",10)(39,"div",15),d(40,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(41,"div",12),p(42,"i",17),a(),n(43,"div",14),f(44),d(45,"translate"),a()()(),n(46,"div",10)(47,"div",15),d(48,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(49,"div",12),p(50,"i",18),a(),n(51,"div",14),f(52),d(53,"translate"),a()()(),x(54,ue,8,9,"div",10),x(55,_e,8,9,"div",10),x(56,fe,8,9,"div",10),n(57,"div",10)(58,"div",15),d(59,"translate"),_("keydown",function(g){return t.handleKeydown(g)}),n(60,"div",12),p(61,"i",19),a(),n(62,"div",14),f(63),d(64,"translate"),a()()(),x(65,ge,8,9,"div",10),x(66,ve,8,6,"div",10),x(67,he,8,6,"div",10),a()()),l&2&&(m("aria-expanded",t.isExpanded?"true":"false")("aria-controls","sidebar")("aria-label",s(1,37,"menu.sidebar.aria_menu")),o(3),c("routerLink",h(63,B)),m("aria-label",s(4,39,"menu.label_status")),o(5),c("ngClass",M(64,te,t.isExpanded)),o(5),c("ngClass",M(66,ne,t.isExpanded)),o(2),c("routerLink",h(68,B)),m("aria-label",s(16,41,"menu.label_status")),o(7),c("routerLink",h(69,B))("routerLinkActive","active")("routerLinkActiveOptions",h(70,ie)),m("aria-label",s(23,43,"menu.label_status")),o(5),v(s(28,45,"menu.label_status")),o(2),y(t.rPiWasUnderVoltage||t.rPiCurrentlyUnderVoltage?29:-1),o(2),c("routerLink",h(71,oe))("routerLinkActive","active"),m("aria-label",s(32,47,"menu.label_plugins")),o(5),v(s(37,49,"menu.label_plugins")),o(3),c("routerLink",h(72,re))("routerLinkActive","active"),m("aria-label",s(40,51,"menu.label_accessories")),o(5),v(s(45,53,"menu.label_accessories")),o(3),c("routerLink",h(73,ae))("routerLinkActive","active"),m("aria-label",s(48,55,"menu.linux.label_logs")),o(5),v(s(53,57,"menu.linux.label_logs")),o(2),y(t.enableTerminalAccess&&t.isAdmin?54:-1),o(),y(t.isAdmin?55:-1),o(),y(t.isAdmin?56:-1),o(2),c("routerLink",h(74,de))("routerLinkActive","active"),m("aria-label",s(59,59,"support.title")),o(5),v(s(64,61,"support.title")),o(2),y(t.isAdmin?65:-1),o(),y(t.isPwa?66:-1),o(),y(t.formAuth?67:-1))},dependencies:[N,K,O,D,U],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-y:auto;max-height:calc(100vh - 80px)!important}.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 i})();var be=i=>({sidebarExpanded:i}),He=(()=>{class i{$auth=u(A);$modal=u(E);$router=u(V);$settings=u(T);$translate=u(L);$ws=u(j);io;sidebarExpanded=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return I(this,null,function*(){if(this.$settings.settingsLoaded||(yield z(this.$settings.onSettingsLoaded)),this.$router.url!=="/restart"&&(0,Q.lt)(this.$settings.uiVersion,$.serverTarget)){console.log(`Server restart required. UI Version: ${$.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=this.$modal.open(R,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("platform.version.service_restart_required"),e.componentInstance.message=this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:$.serverTarget}),e.componentInstance.confirmButtonLabel=this.$translate.instant("menu.tooltip_restart"),e.componentInstance.faIconClass="fas fa-power-off orange-text",e.result.then(()=>this.$router.navigate(["/restart"])).catch(()=>{})}})}static \u0275fac=function(l){return new(l||i)};static \u0275cmp=P({type:i,selectors:[["app-layout"]],decls:3,vars:4,consts:[[3,"isExpanded"],[1,"content","px-3","p-md-4",3,"ngClass"]],template:function(l,t){l&1&&(p(0,"app-sidebar",0),n(1,"div",1),p(2,"router-outlet"),a()),l&2&&(c("isExpanded",t.sidebarExpanded),o(),c("ngClass",M(2,be,t.sidebarExpanded)))},dependencies:[J,O,q],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 i})();export{He as LayoutComponent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as z,b as A,c as k}from"./chunk-AE7VAWOU.js";import{a as l}from"./chunk-
|
|
1
|
+
import{a as z,b as A,c as k}from"./chunk-AE7VAWOU.js";import{a as l}from"./chunk-OKJ3EDLI.js";import{M as n,fa as c,g as r,ka as d,n as h}from"./chunk-H36QJYLQ.js";var f=r(z(),1),a=r(A(),1),p=r(k(),1);var $=(()=>{class t{$ws=d(l);io;fitAddon;webLinksAddon;resize;elementResize;pluginName;term;startTerminal(m,s={},u,w){this.pluginName=w,this.elementResize=u,this.io=this.$ws.connectToNamespace("log"),this.term=new p.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new f.FitAddon,this.webLinksAddon=new a.WebLinksAddon,this.resize=new h,this.term.open(m.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.subscribe(()=>{this.term.reset(),this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.on("disconnect",()=>{this.term.write(`
|
|
2
2
|
\r
|
|
3
3
|
\rWebsocket failed to connect. Is the server running?
|
|
4
4
|
\r
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{k as et,n as it}from"./chunk-YRIAJM6Y.js";import{a as tt}from"./chunk-G7FA4DP4.js";import{l as X}from"./chunk-6GMXEQVA.js";import{T as G,e as ut,fa as R,g as ct,h as P,ka as Y,n as Q,w as N}from"./chunk-H36QJYLQ.js";var st=ut((J,K)=>{(function(w,D){typeof J=="object"&&typeof K<"u"?K.exports=D():typeof define=="function"&&define.amd?define(D):(w=typeof globalThis<"u"?globalThis:w||self).dayjs=D()})(J,function(){"use strict";var w=1e3,D=6e4,n=36e5,h="millisecond",d="second",m="minute",M="hour",y="day",f="week",b="month",E="quarter",S="year",x="date",Z="Invalid Date",nt=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,rt=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,ot={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(r){var i=["th","st","nd","rd"],t=r%100;return"["+r+(i[(t-20)%10]||i[t]||i[0])+"]"}},F=function(r,i,t){var s=String(r);return!s||s.length>=i?r:""+Array(i+1-s.length).join(t)+r},at={s:F,z:function(r){var i=-r.utcOffset(),t=Math.abs(i),s=Math.floor(t/60),e=t%60;return(i<=0?"+":"-")+F(s,2,"0")+":"+F(e,2,"0")},m:function r(i,t){if(i.date()<t.date())return-r(t,i);var s=12*(t.year()-i.year())+(t.month()-i.month()),e=i.clone().add(s,b),o=t-e<0,a=i.clone().add(s+(o?-1:1),b);return+(-(s+(t-e)/(o?e-a:a-e))||0)},a:function(r){return r<0?Math.ceil(r)||0:Math.floor(r)},p:function(r){return{M:b,y:S,w:f,d:y,D:x,h:M,m,s:d,ms:h,Q:E}[r]||String(r||"").toLowerCase().replace(/s$/,"")},u:function(r){return r===void 0}},A="en",T={};T[A]=ot;var z="$isDayjsObject",U=function(r){return r instanceof V||!(!r||!r[z])},C=function r(i,t,s){var e;if(!i)return A;if(typeof i=="string"){var o=i.toLowerCase();T[o]&&(e=o),t&&(T[o]=t,e=o);var a=i.split("-");if(!e&&a.length>1)return r(a[0])}else{var c=i.name;T[c]=i,e=c}return!s&&e&&(A=e),e||!s&&A},g=function(r,i){if(U(r))return r.clone();var t=typeof i=="object"?i:{};return t.date=r,t.args=arguments,new V(t)},u=at;u.l=C,u.i=U,u.w=function(r,i){return g(r,{locale:i.$L,utc:i.$u,x:i.$x,$offset:i.$offset})};var V=function(){function r(t){this.$L=C(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[z]=!0}var i=r.prototype;return i.parse=function(t){this.$d=function(s){var e=s.date,o=s.utc;if(e===null)return new Date(NaN);if(u.u(e))return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){var a=e.match(nt);if(a){var c=a[2]-1||0,l=(a[7]||"0").substring(0,3);return o?new Date(Date.UTC(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,l)):new Date(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,l)}}return new Date(e)}(t),this.init()},i.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},i.$utils=function(){return u},i.isValid=function(){return this.$d.toString()!==Z},i.isSame=function(t,s){var e=g(t);return this.startOf(s)<=e&&e<=this.endOf(s)},i.isAfter=function(t,s){return g(t)<this.startOf(s)},i.isBefore=function(t,s){return this.endOf(s)<g(t)},i.$g=function(t,s,e){return u.u(t)?this[s]:this.set(e,t)},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this.$d.getTime()},i.startOf=function(t,s){var e=this,o=!!u.u(s)||s,a=u.p(t),c=function(_,v){var k=u.w(e.$u?Date.UTC(e.$y,v,_):new Date(e.$y,v,_),e);return o?k:k.endOf(y)},l=function(_,v){return u.w(e.toDate()[_].apply(e.toDate("s"),(o?[0,0,0,0]:[23,59,59,999]).slice(v)),e)},$=this.$W,p=this.$M,L=this.$D,j="set"+(this.$u?"UTC":"");switch(a){case S:return o?c(1,0):c(31,11);case b:return o?c(1,p):c(0,p+1);case f:var O=this.$locale().weekStart||0,H=($<O?$+7:$)-O;return c(o?L-H:L+(6-H),p);case y:case x:return l(j+"Hours",0);case M:return l(j+"Minutes",1);case m:return l(j+"Seconds",2);case d:return l(j+"Milliseconds",3);default:return this.clone()}},i.endOf=function(t){return this.startOf(t,!1)},i.$set=function(t,s){var e,o=u.p(t),a="set"+(this.$u?"UTC":""),c=(e={},e[y]=a+"Date",e[x]=a+"Date",e[b]=a+"Month",e[S]=a+"FullYear",e[M]=a+"Hours",e[m]=a+"Minutes",e[d]=a+"Seconds",e[h]=a+"Milliseconds",e)[o],l=o===y?this.$D+(s-this.$W):s;if(o===b||o===S){var $=this.clone().set(x,1);$.$d[c](l),$.init(),this.$d=$.set(x,Math.min(this.$D,$.daysInMonth())).$d}else c&&this.$d[c](l);return this.init(),this},i.set=function(t,s){return this.clone().$set(t,s)},i.get=function(t){return this[u.p(t)]()},i.add=function(t,s){var e,o=this;t=Number(t);var a=u.p(s),c=function(p){var L=g(o);return u.w(L.date(L.date()+Math.round(p*t)),o)};if(a===b)return this.set(b,this.$M+t);if(a===S)return this.set(S,this.$y+t);if(a===y)return c(1);if(a===f)return c(7);var l=(e={},e[m]=D,e[M]=n,e[d]=w,e)[a]||1,$=this.$d.getTime()+t*l;return u.w($,this)},i.subtract=function(t,s){return this.add(-1*t,s)},i.format=function(t){var s=this,e=this.$locale();if(!this.isValid())return e.invalidDate||Z;var o=t||"YYYY-MM-DDTHH:mm:ssZ",a=u.z(this),c=this.$H,l=this.$m,$=this.$M,p=e.weekdays,L=e.months,j=e.meridiem,O=function(v,k,I,W){return v&&(v[k]||v(s,o))||I[k].slice(0,W)},H=function(v){return u.s(c%12||12,v,"0")},_=j||function(v,k,I){var W=v<12?"AM":"PM";return I?W.toLowerCase():W};return o.replace(rt,function(v,k){return k||function(I){switch(I){case"YY":return String(s.$y).slice(-2);case"YYYY":return u.s(s.$y,4,"0");case"M":return $+1;case"MM":return u.s($+1,2,"0");case"MMM":return O(e.monthsShort,$,L,3);case"MMMM":return O(L,$);case"D":return s.$D;case"DD":return u.s(s.$D,2,"0");case"d":return String(s.$W);case"dd":return O(e.weekdaysMin,s.$W,p,2);case"ddd":return O(e.weekdaysShort,s.$W,p,3);case"dddd":return p[s.$W];case"H":return String(c);case"HH":return u.s(c,2,"0");case"h":return H(1);case"hh":return H(2);case"a":return _(c,l,!0);case"A":return _(c,l,!1);case"m":return String(l);case"mm":return u.s(l,2,"0");case"s":return String(s.$s);case"ss":return u.s(s.$s,2,"0");case"SSS":return u.s(s.$ms,3,"0");case"Z":return a}return null}(v)||a.replace(":","")})},i.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},i.diff=function(t,s,e){var o,a=this,c=u.p(s),l=g(t),$=(l.utcOffset()-this.utcOffset())*D,p=this-l,L=function(){return u.m(a,l)};switch(c){case S:o=L()/12;break;case b:o=L();break;case E:o=L()/3;break;case f:o=(p-$)/6048e5;break;case y:o=(p-$)/864e5;break;case M:o=p/n;break;case m:o=p/D;break;case d:o=p/w;break;default:o=p}return e?o:u.a(o)},i.daysInMonth=function(){return this.endOf(b).$D},i.$locale=function(){return T[this.$L]},i.locale=function(t,s){if(!t)return this.$L;var e=this.clone(),o=C(t,s,!0);return o&&(e.$L=o),e},i.clone=function(){return u.w(this.$d,this)},i.toDate=function(){return new Date(this.valueOf())},i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toISOString=function(){return this.$d.toISOString()},i.toString=function(){return this.$d.toUTCString()},r}(),B=V.prototype;return g.prototype=B,[["$ms",h],["$s",d],["$m",m],["$H",M],["$W",y],["$M",b],["$y",S],["$D",x]].forEach(function(r){B[r[1]]=function(i){return this.$g(i,r[0],r[1])}}),g.extend=function(r,i){return r.$i||(r(i,V,g),r.$i=!0),g},g.locale=C,g.isDayjs=U,g.unix=function(r){return g(1e3*r)},g.en=T[A],g.Ls=T,g.p={},g})});var q=ct(st(),1);var vt=(()=>{class w{$api=Y(it);$title=Y(X);$toastr=Y(et);$translate=Y(tt);settingsLoadedSubject=new Q;defaultTheme="deep-purple";forbiddenKeys=["__proto__","constructor","prototype"];env={};formAuth=!0;sessionTimeout=28800;uiVersion;theme;lightingMode;currentLightingMode;actualLightingMode;browserLightingMode;menuMode;keepOrphans;wallpaper;serverTimeOffset=0;rtl=!1;onSettingsLoaded=this.settingsLoadedSubject.pipe(G());settingsLoaded=!1;themeList=["orange","red","pink","purple","deep-purple","indigo","blue","blue-grey","cyan","green","teal","grey","brown"];constructor(){this.getAppSettings()}getAppSettings(){return P(this,null,function*(){let n=yield N(this.$api.get("/auth/settings"));this.formAuth=n.formAuth,this.sessionTimeout=n.sessionTimeout,this.env=n.env,this.lightingMode=n.lightingMode,this.wallpaper=n.wallpaper,this.setLightingMode(this.lightingMode,"user"),this.setTheme(n.theme),this.setMenuMode(n.menuMode),this.setKeepOrphans(n.keepOrphans),this.setTitle(this.env.homebridgeInstanceName),this.checkServerTime(n.serverTimestamp),this.setUiVersion(n.env.packageVersion),this.setLang(this.env.lang),this.settingsLoaded=!0,this.settingsLoadedSubject.next(void 0)})}setBrowserLightingMode(n){this.browserLightingMode=n,this.lightingMode==="auto"&&this.setLightingMode(n,"browser")}setLightingMode(n,h){h==="user"&&(this.lightingMode=n),this.currentLightingMode=n,this.actualLightingMode=this.currentLightingMode==="auto"?this.browserLightingMode:this.currentLightingMode,this.theme&&this.setTheme(this.theme)}setTheme(n){(!n||!this.themeList.includes(n))&&(n=this.defaultTheme,N(this.$api.put("/config-editor/ui",{key:"theme",value:n})).catch(m=>console.error("Error saving setTheme:",m)));let h=window.document.querySelector("body");h.classList.remove(`config-ui-x-${this.theme}`),h.classList.remove(`config-ui-x-dark-mode-${this.theme}`),this.theme=n,this.actualLightingMode==="dark"?(h.classList.add(`config-ui-x-dark-mode-${this.theme}`),h.classList.contains("dark-mode")||h.classList.add("dark-mode")):(h.classList.add(`config-ui-x-${this.theme}`),h.classList.contains("dark-mode")&&h.classList.remove("dark-mode")),window.document.querySelectorAll("iframe").forEach((m,M)=>{try{let y=m.contentDocument;if(y){let f=y.body;this.actualLightingMode==="dark"?(f.classList.contains(`config-ui-x-${this.theme}`)&&f.classList.remove(`config-ui-x-${this.theme}`),f.classList.contains(`config-ui-x-dark-mode-${this.theme}`)||f.classList.add(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")||f.classList.add("dark-mode"),f.style.backgroundColor="#242424 !important",f.style.color="#ffffff !important"):(f.classList.contains(`config-ui-x-${this.theme}`)||f.classList.add(`config-ui-x-${this.theme}`),f.classList.contains(`config-ui-x-dark-mode-${this.theme}`)&&f.classList.remove(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")&&f.classList.remove("dark-mode"),f.style.backgroundColor="#ffffff !important",f.style.color="#000000 !important"),m.contentWindow.postMessage({type:"theme-update",isDark:this.actualLightingMode==="dark",theme:n},window.location.origin)}}catch(y){console.warn(`Iframe ${M}: Access denied (cross-origin?)`,{error:y,src:m.src})}})}setMenuMode(n){this.menuMode=n}setKeepOrphans(n){this.keepOrphans=n}setLang(n){n?this.$translate.use(n):n="auto",this.env.lang=n}setItem(n,h){this[n]=h}setEnvItem(n,h){if(n.includes(".")){let d=n.split("."),m=this.env;for(let M=0;M<d.length-1;M++){if(this.forbiddenKeys.includes(d[M]))return;m[d[M]]||(m[d[M]]={}),m=m[d[M]]}this.forbiddenKeys.includes(d[d.length-1])||(m[d[d.length-1]]=h)}else this.env[n]=h}checkServerTime(n){let d=(0,q.default)(n).diff((0,q.default)(),"hour");this.serverTimeOffset=d*60*60,(d>=8||d<=-8)&&this.$toastr.warning(this.$translate.instant("settings.datetime.incorrect"),this.$translate.instant("toast.title_warning"),{timeOut:2e4,tapToDismiss:!1}).onTap.subscribe(()=>{window.open("https://homebridge.io/w/JqTFs","_blank")})}setUiVersion(n){this.uiVersion||(this.uiVersion=n)}setTitle(n){this.$title.setTitle(n||"Homebridge")}static \u0275fac=function(h){return new(h||w)};static \u0275prov=R({token:w,factory:w.\u0275fac,providedIn:"root"})}return w})();export{st as a,vt as b};
|
|
1
|
+
import{k as et,n as it}from"./chunk-2CO3VBPY.js";import{a as tt}from"./chunk-G7FA4DP4.js";import{l as X}from"./chunk-6GMXEQVA.js";import{T as G,e as ut,fa as R,g as ct,h as P,ka as Y,n as Q,w as N}from"./chunk-H36QJYLQ.js";var st=ut((J,K)=>{(function(w,D){typeof J=="object"&&typeof K<"u"?K.exports=D():typeof define=="function"&&define.amd?define(D):(w=typeof globalThis<"u"?globalThis:w||self).dayjs=D()})(J,function(){"use strict";var w=1e3,D=6e4,n=36e5,h="millisecond",d="second",m="minute",M="hour",y="day",f="week",b="month",E="quarter",S="year",x="date",Z="Invalid Date",nt=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,rt=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,ot={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(r){var i=["th","st","nd","rd"],t=r%100;return"["+r+(i[(t-20)%10]||i[t]||i[0])+"]"}},F=function(r,i,t){var s=String(r);return!s||s.length>=i?r:""+Array(i+1-s.length).join(t)+r},at={s:F,z:function(r){var i=-r.utcOffset(),t=Math.abs(i),s=Math.floor(t/60),e=t%60;return(i<=0?"+":"-")+F(s,2,"0")+":"+F(e,2,"0")},m:function r(i,t){if(i.date()<t.date())return-r(t,i);var s=12*(t.year()-i.year())+(t.month()-i.month()),e=i.clone().add(s,b),o=t-e<0,a=i.clone().add(s+(o?-1:1),b);return+(-(s+(t-e)/(o?e-a:a-e))||0)},a:function(r){return r<0?Math.ceil(r)||0:Math.floor(r)},p:function(r){return{M:b,y:S,w:f,d:y,D:x,h:M,m,s:d,ms:h,Q:E}[r]||String(r||"").toLowerCase().replace(/s$/,"")},u:function(r){return r===void 0}},A="en",T={};T[A]=ot;var z="$isDayjsObject",U=function(r){return r instanceof V||!(!r||!r[z])},C=function r(i,t,s){var e;if(!i)return A;if(typeof i=="string"){var o=i.toLowerCase();T[o]&&(e=o),t&&(T[o]=t,e=o);var a=i.split("-");if(!e&&a.length>1)return r(a[0])}else{var c=i.name;T[c]=i,e=c}return!s&&e&&(A=e),e||!s&&A},g=function(r,i){if(U(r))return r.clone();var t=typeof i=="object"?i:{};return t.date=r,t.args=arguments,new V(t)},u=at;u.l=C,u.i=U,u.w=function(r,i){return g(r,{locale:i.$L,utc:i.$u,x:i.$x,$offset:i.$offset})};var V=function(){function r(t){this.$L=C(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[z]=!0}var i=r.prototype;return i.parse=function(t){this.$d=function(s){var e=s.date,o=s.utc;if(e===null)return new Date(NaN);if(u.u(e))return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){var a=e.match(nt);if(a){var c=a[2]-1||0,l=(a[7]||"0").substring(0,3);return o?new Date(Date.UTC(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,l)):new Date(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,l)}}return new Date(e)}(t),this.init()},i.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},i.$utils=function(){return u},i.isValid=function(){return this.$d.toString()!==Z},i.isSame=function(t,s){var e=g(t);return this.startOf(s)<=e&&e<=this.endOf(s)},i.isAfter=function(t,s){return g(t)<this.startOf(s)},i.isBefore=function(t,s){return this.endOf(s)<g(t)},i.$g=function(t,s,e){return u.u(t)?this[s]:this.set(e,t)},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this.$d.getTime()},i.startOf=function(t,s){var e=this,o=!!u.u(s)||s,a=u.p(t),c=function(_,v){var k=u.w(e.$u?Date.UTC(e.$y,v,_):new Date(e.$y,v,_),e);return o?k:k.endOf(y)},l=function(_,v){return u.w(e.toDate()[_].apply(e.toDate("s"),(o?[0,0,0,0]:[23,59,59,999]).slice(v)),e)},$=this.$W,p=this.$M,L=this.$D,j="set"+(this.$u?"UTC":"");switch(a){case S:return o?c(1,0):c(31,11);case b:return o?c(1,p):c(0,p+1);case f:var O=this.$locale().weekStart||0,H=($<O?$+7:$)-O;return c(o?L-H:L+(6-H),p);case y:case x:return l(j+"Hours",0);case M:return l(j+"Minutes",1);case m:return l(j+"Seconds",2);case d:return l(j+"Milliseconds",3);default:return this.clone()}},i.endOf=function(t){return this.startOf(t,!1)},i.$set=function(t,s){var e,o=u.p(t),a="set"+(this.$u?"UTC":""),c=(e={},e[y]=a+"Date",e[x]=a+"Date",e[b]=a+"Month",e[S]=a+"FullYear",e[M]=a+"Hours",e[m]=a+"Minutes",e[d]=a+"Seconds",e[h]=a+"Milliseconds",e)[o],l=o===y?this.$D+(s-this.$W):s;if(o===b||o===S){var $=this.clone().set(x,1);$.$d[c](l),$.init(),this.$d=$.set(x,Math.min(this.$D,$.daysInMonth())).$d}else c&&this.$d[c](l);return this.init(),this},i.set=function(t,s){return this.clone().$set(t,s)},i.get=function(t){return this[u.p(t)]()},i.add=function(t,s){var e,o=this;t=Number(t);var a=u.p(s),c=function(p){var L=g(o);return u.w(L.date(L.date()+Math.round(p*t)),o)};if(a===b)return this.set(b,this.$M+t);if(a===S)return this.set(S,this.$y+t);if(a===y)return c(1);if(a===f)return c(7);var l=(e={},e[m]=D,e[M]=n,e[d]=w,e)[a]||1,$=this.$d.getTime()+t*l;return u.w($,this)},i.subtract=function(t,s){return this.add(-1*t,s)},i.format=function(t){var s=this,e=this.$locale();if(!this.isValid())return e.invalidDate||Z;var o=t||"YYYY-MM-DDTHH:mm:ssZ",a=u.z(this),c=this.$H,l=this.$m,$=this.$M,p=e.weekdays,L=e.months,j=e.meridiem,O=function(v,k,I,W){return v&&(v[k]||v(s,o))||I[k].slice(0,W)},H=function(v){return u.s(c%12||12,v,"0")},_=j||function(v,k,I){var W=v<12?"AM":"PM";return I?W.toLowerCase():W};return o.replace(rt,function(v,k){return k||function(I){switch(I){case"YY":return String(s.$y).slice(-2);case"YYYY":return u.s(s.$y,4,"0");case"M":return $+1;case"MM":return u.s($+1,2,"0");case"MMM":return O(e.monthsShort,$,L,3);case"MMMM":return O(L,$);case"D":return s.$D;case"DD":return u.s(s.$D,2,"0");case"d":return String(s.$W);case"dd":return O(e.weekdaysMin,s.$W,p,2);case"ddd":return O(e.weekdaysShort,s.$W,p,3);case"dddd":return p[s.$W];case"H":return String(c);case"HH":return u.s(c,2,"0");case"h":return H(1);case"hh":return H(2);case"a":return _(c,l,!0);case"A":return _(c,l,!1);case"m":return String(l);case"mm":return u.s(l,2,"0");case"s":return String(s.$s);case"ss":return u.s(s.$s,2,"0");case"SSS":return u.s(s.$ms,3,"0");case"Z":return a}return null}(v)||a.replace(":","")})},i.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},i.diff=function(t,s,e){var o,a=this,c=u.p(s),l=g(t),$=(l.utcOffset()-this.utcOffset())*D,p=this-l,L=function(){return u.m(a,l)};switch(c){case S:o=L()/12;break;case b:o=L();break;case E:o=L()/3;break;case f:o=(p-$)/6048e5;break;case y:o=(p-$)/864e5;break;case M:o=p/n;break;case m:o=p/D;break;case d:o=p/w;break;default:o=p}return e?o:u.a(o)},i.daysInMonth=function(){return this.endOf(b).$D},i.$locale=function(){return T[this.$L]},i.locale=function(t,s){if(!t)return this.$L;var e=this.clone(),o=C(t,s,!0);return o&&(e.$L=o),e},i.clone=function(){return u.w(this.$d,this)},i.toDate=function(){return new Date(this.valueOf())},i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toISOString=function(){return this.$d.toISOString()},i.toString=function(){return this.$d.toUTCString()},r}(),B=V.prototype;return g.prototype=B,[["$ms",h],["$s",d],["$m",m],["$H",M],["$W",y],["$M",b],["$y",S],["$D",x]].forEach(function(r){B[r[1]]=function(i){return this.$g(i,r[0],r[1])}}),g.extend=function(r,i){return r.$i||(r(i,V,g),r.$i=!0),g},g.locale=C,g.isDayjs=U,g.unix=function(r){return g(1e3*r)},g.en=T[A],g.Ls=T,g.p={},g})});var q=ct(st(),1);var vt=(()=>{class w{$api=Y(it);$title=Y(X);$toastr=Y(et);$translate=Y(tt);settingsLoadedSubject=new Q;defaultTheme="deep-purple";forbiddenKeys=["__proto__","constructor","prototype"];env={};formAuth=!0;sessionTimeout=28800;uiVersion;theme;lightingMode;currentLightingMode;actualLightingMode;browserLightingMode;menuMode;keepOrphans;wallpaper;serverTimeOffset=0;rtl=!1;onSettingsLoaded=this.settingsLoadedSubject.pipe(G());settingsLoaded=!1;themeList=["orange","red","pink","purple","deep-purple","indigo","blue","blue-grey","cyan","green","teal","grey","brown"];constructor(){this.getAppSettings()}getAppSettings(){return P(this,null,function*(){let n=yield N(this.$api.get("/auth/settings"));this.formAuth=n.formAuth,this.sessionTimeout=n.sessionTimeout,this.env=n.env,this.lightingMode=n.lightingMode,this.wallpaper=n.wallpaper,this.setLightingMode(this.lightingMode,"user"),this.setTheme(n.theme),this.setMenuMode(n.menuMode),this.setKeepOrphans(n.keepOrphans),this.setTitle(this.env.homebridgeInstanceName),this.checkServerTime(n.serverTimestamp),this.setUiVersion(n.env.packageVersion),this.setLang(this.env.lang),this.settingsLoaded=!0,this.settingsLoadedSubject.next(void 0)})}setBrowserLightingMode(n){this.browserLightingMode=n,this.lightingMode==="auto"&&this.setLightingMode(n,"browser")}setLightingMode(n,h){h==="user"&&(this.lightingMode=n),this.currentLightingMode=n,this.actualLightingMode=this.currentLightingMode==="auto"?this.browserLightingMode:this.currentLightingMode,this.theme&&this.setTheme(this.theme)}setTheme(n){(!n||!this.themeList.includes(n))&&(n=this.defaultTheme,N(this.$api.put("/config-editor/ui",{key:"theme",value:n})).catch(m=>console.error("Error saving setTheme:",m)));let h=window.document.querySelector("body");h.classList.remove(`config-ui-x-${this.theme}`),h.classList.remove(`config-ui-x-dark-mode-${this.theme}`),this.theme=n,this.actualLightingMode==="dark"?(h.classList.add(`config-ui-x-dark-mode-${this.theme}`),h.classList.contains("dark-mode")||h.classList.add("dark-mode")):(h.classList.add(`config-ui-x-${this.theme}`),h.classList.contains("dark-mode")&&h.classList.remove("dark-mode")),window.document.querySelectorAll("iframe").forEach((m,M)=>{try{let y=m.contentDocument;if(y){let f=y.body;this.actualLightingMode==="dark"?(f.classList.contains(`config-ui-x-${this.theme}`)&&f.classList.remove(`config-ui-x-${this.theme}`),f.classList.contains(`config-ui-x-dark-mode-${this.theme}`)||f.classList.add(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")||f.classList.add("dark-mode"),f.style.backgroundColor="#242424 !important",f.style.color="#ffffff !important"):(f.classList.contains(`config-ui-x-${this.theme}`)||f.classList.add(`config-ui-x-${this.theme}`),f.classList.contains(`config-ui-x-dark-mode-${this.theme}`)&&f.classList.remove(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")&&f.classList.remove("dark-mode"),f.style.backgroundColor="#ffffff !important",f.style.color="#000000 !important"),m.contentWindow.postMessage({type:"theme-update",isDark:this.actualLightingMode==="dark",theme:n},window.location.origin)}}catch(y){console.warn(`Iframe ${M}: Access denied (cross-origin?)`,{error:y,src:m.src})}})}setMenuMode(n){this.menuMode=n}setKeepOrphans(n){this.keepOrphans=n}setLang(n){n?this.$translate.use(n):n="auto",this.env.lang=n}setItem(n,h){this[n]=h}setEnvItem(n,h){if(n.includes(".")){let d=n.split("."),m=this.env;for(let M=0;M<d.length-1;M++){if(this.forbiddenKeys.includes(d[M]))return;m[d[M]]||(m[d[M]]={}),m=m[d[M]]}this.forbiddenKeys.includes(d[d.length-1])||(m[d[d.length-1]]=h)}else this.env[n]=h}checkServerTime(n){let d=(0,q.default)(n).diff((0,q.default)(),"hour");this.serverTimeOffset=d*60*60,(d>=8||d<=-8)&&this.$toastr.warning(this.$translate.instant("settings.datetime.incorrect"),this.$translate.instant("toast.title_warning"),{timeOut:2e4,tapToDismiss:!1}).onTap.subscribe(()=>{window.open("https://homebridge.io/w/JqTFs","_blank")})}setUiVersion(n){this.uiVersion||(this.uiVersion=n)}setTitle(n){this.$title.setTitle(n||"Homebridge")}static \u0275fac=function(h){return new(h||w)};static \u0275prov=R({token:w,factory:w.\u0275fac,providedIn:"root"})}return w})();export{st as a,vt as b};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as we}from"./chunk-5TCYRJ6A.js";import{b as A,e as ye,f as Ce,g as Re}from"./chunk-Y6KHINTU.js";import{a as fe,b as he}from"./chunk-NFWGYMP7.js";import{a as _e}from"./chunk-77JZBWAC.js";import{a as De}from"./chunk-V2P2FPJ7.js";import{m as pe,n as ge,t as D}from"./chunk-EA3EXGPZ.js";import{A as me,c as se,e as le,l as de,z as ce}from"./chunk-CNMM42I5.js";import{b as ue,d as j}from"./chunk-UOLP7IQJ.js";import{b as be}from"./chunk-LJCIV6Z3.js";import{k as I,n as H}from"./chunk-YRIAJM6Y.js";import{a as R,b as P}from"./chunk-G7FA4DP4.js";import"./chunk-6GMXEQVA.js";import{Ec as z,Hb as C,Ib as w,Jb as v,Jc as s,Kc as d,Lb as Z,Lc as K,Mb as ee,Nb as te,Ob as f,Pb as a,Qb as l,Rb as p,_b as x,ab as r,bc as b,d as G,dc as m,fb as X,g as Q,h as E,id as re,ka as g,mb as B,pd as ae,qa as h,qc as _,ra as u,rc as k,sc as M,w as $,xc as ie,yc as oe,zc as ne}from"./chunk-H36QJYLQ.js";var ke=Q(Re(),1);var ve=Q(De(),1);var Ee=(n,y)=>({"fa-trash":n,"fa-cog fa-spin":y});function Ie(n,y){n&1&&(a(0,"div",13),p(1,"i",20),l())}function je(n,y){if(n&1){let e=x();a(0,"li",9)(1,"span"),_(2),s(3,"date"),p(4,"br"),a(5,"span",21),_(6),s(7,"date"),l()(),a(8,"span",22)(9,"button",25),s(10,"translate"),s(11,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.restore(i.id))}),p(12,"i",26),l(),a(13,"button",27),s(14,"translate"),s(15,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.download(i.id))}),p(16,"i",28),l(),a(17,"button",23),s(18,"translate"),s(19,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.delete(i.id))}),p(20,"i",24),l()()()}if(n&2){let e=y.$implicit,t=m(2);r(2),M(" ",K(3,15,e.timestamp,"mediumDate")),r(4),k(K(7,18,e.timestamp,"shortTime")),r(3),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(10,21,"config.restore.copy_to_editor"))("openDelay",150),C("aria-label",d(11,23,"config.restore.copy_to_editor")),r(4),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(14,25,"form.button_download"))("openDelay",150),C("aria-label",d(15,27,"form.button_download")),r(4),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(18,29,"form.button_delete"))("openDelay",150),C("aria-label",d(19,31,"form.button_delete")),r(3),f("ngClass",z(33,Ee,e.id!==t.deleting,e.id===t.deleting))}}function He(n,y){if(n&1){let e=x();a(0,"ul",14),ee(1,je,21,36,"li",9,Z),a(3,"li",9)(4,"span"),_(5),s(6,"translate"),p(7,"br"),a(8,"span",21),_(9),s(10,"translate"),l()(),a(11,"span",22)(12,"button",23),s(13,"translate"),s(14,"translate"),b("click",function(){h(e);let i=m();return u(i.deleteAllBackups())}),p(15,"i",24),l()()()()}if(n&2){let e=m();r(),te(e.backupList),r(4),M(" ",d(6,7,"form.button_delete_all")),r(4),M(" ",d(10,9,"common.labels.no_confirmation")," "),r(3),f("disabled",e.clicked||e.deleting)("ngbTooltip",d(13,11,"form.button_delete_all"))("openDelay",150),C("aria-label",d(14,13,"form.button_delete")),r(3),f("ngClass",z(15,Ee,e.deleting!=="all",e.deleting==="all"))}}var xe=(()=>{class n{$activeModal=g(pe);$api=g(H);$router=g(j);$toastr=g(I);$translate=g(R);currentConfig;fromSettings=!1;loading=!0;backupList=[];clicked=!1;deleting=null;ngOnInit(){this.getConfigBackups()}getConfigBackups(){return E(this,null,function*(){try{let e=yield $(this.$api.get("/config-editor/backups"));this.loading=!1,this.backupList=e}catch(e){this.loading=!1,console.error(e),this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),this.dismissModal()}})}restore(e){return this.$activeModal.close(e)}download(e){return E(this,null,function*(){this.clicked=!0;try{let t=yield $(this.$api.get(`/config-editor/backups/${e}`)),i=JSON.stringify(t,null,4),o=new Blob([i],{type:"application/json"}),T=`config-backup-${e}.json`;(0,ve.saveAs)(o,T),this.clicked=!1}catch(t){this.clicked=!1,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}downloadCurrentConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.currentConfig)}`,t=document.createElement("a");t.setAttribute("href",e),t.setAttribute("download","config.json"),document.body.appendChild(t),t.click(),t.remove()}delete(e){return E(this,null,function*(){this.deleting=e;try{yield $(this.$api.delete(`/config-editor/backups/${e}`)),yield this.getConfigBackups(),this.deleting=null}catch(t){this.deleting=null,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}deleteAllBackups(){return E(this,null,function*(){this.deleting="all";try{yield $(this.$api.delete("/config-editor/backups")),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success")),this.backupList=[],this.deleting=null}catch(e){this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e),this.deleting=null}})}dismissModal(){this.fromSettings&&this.$router.navigate(["/settings"]),this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=B({type:n,selectors:[["ng-component"]],inputs:{currentConfig:"currentConfig",fromSettings:"fromSettings"},decls:40,vars:31,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-history","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3",3,"click","disabled"],[1,"fas","fa-fw","fa-arrow-right"],[1,"text-center","primary-text"],[1,"list-group","list-group-box","mt-3"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[1,"fa","fa-fw","fa-cog","fa-spin","mt-3",2,"font-size","75px"],[1,"grey-text","small"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw",3,"ngClass"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-download"]],template:function(t,i){t&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),_(3),s(4,"translate"),l(),a(5,"button",3),s(6,"translate"),b("click",function(){return i.dismissModal()}),l()(),a(7,"div",4)(8,"div",5),p(9,"i",6),l(),a(10,"ul",7)(11,"li"),_(12),s(13,"translate"),l(),a(14,"li"),_(15),s(16,"translate"),l()(),a(17,"ul",8)(18,"li",9)(19,"div")(20,"span"),_(21),s(22,"translate"),l(),p(23,"br"),a(24,"small",10),_(25),s(26,"translate"),l()(),a(27,"button",11),s(28,"translate"),b("click",function(){return i.downloadCurrentConfig()}),p(29,"i",12),l()()(),w(30,Ie,2,0,"div",13)(31,He,16,18,"ul",14),l(),a(32,"div",15),p(33,"div",16),a(34,"div",17)(35,"button",18),s(36,"translate"),b("click",function(){return i.dismissModal()}),_(37),s(38,"translate"),l()(),p(39,"div",19),l()()),t&2&&(r(3),k(d(4,13,"config.restore.title")),r(2),f("disabled",i.clicked||i.deleting),C("aria-label",d(6,15,"form.button_close")),r(7),k(d(13,17,"config.restore.help_1")),r(3),k(d(16,19,"config.restore.help_2")),r(6),k(d(22,21,"form.button_download")),r(4),k(d(26,23,"config.restore.download")),r(2),f("disabled",i.clicked||i.deleting),C("aria-label",d(28,25,"backup.backup_now")),r(3),v(i.loading?30:i.backupList.length?31:-1),r(5),f("disabled",i.clicked||i.deleting),C("aria-label",d(36,27,"form.button_close")),r(2),M(" ",d(38,29,"form.button_close")," "))},dependencies:[D,re,me,ae,P],encapsulation:2})}return n})();function Oe(n,y){if(n&1){let e=x();a(0,"button",13),s(1,"translate"),s(2,"translate"),b("click",function(){h(e);let i=m();return u(i.onCancelRestore())}),p(3,"i",14),l()}if(n&2){let e=m();f("disabled",e.saveInProgress)("openDelay",150)("ngbTooltip",d(1,4,"form.button_cancel")),C("aria-label",d(2,6,"form.button_cancel"))}}function Ne(n,y){if(n&1){let e=x();a(0,"button",15),s(1,"translate"),s(2,"translate"),b("click",function(){h(e);let i=m();return u(i.onRestore())}),p(3,"i",16),l()}n&2&&(f("openDelay",150)("ngbTooltip",d(1,3,"form.button_restore")),C("aria-label",d(2,5,"form.button_restore")))}function qe(n,y){n&1&&p(0,"i",8)}function Fe(n,y){n&1&&p(0,"i",9)}function Le(n,y){if(n&1){let e=x();a(0,"ngx-monaco-editor",17),b("onInit",function(i){h(e);let o=m();return u(o.onEditorInit(i))})("keydown.control.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())})("keydown.meta.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())}),l()}if(n&2){let e=m();f("options",e.editorOptions)("model",e.monacoEditorModel)}}function Je(n,y){if(n&1){let e=x();a(0,"ngx-monaco-diff-editor",18),b("onInit",function(i){h(e);let o=m();return u(o.onInitDiffEditor(i))})("keydown.control.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())})("keydown.meta.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())}),l()}if(n&2){let e=m();f("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function ze(n,y){if(n&1){let e=x();a(0,"textarea",19),ne("ngModelChange",function(i){h(e);let o=m();return oe(o.homebridgeConfig,i)||(o.homebridgeConfig=i),u(i)}),_(1," "),l()}if(n&2){let e=m();ie("ngModel",e.homebridgeConfig)}}var xt=(()=>{class n{$api=g(H);$md=g(_e);$modal=g(ge);$monacoEditor=g(we);$route=g(ue);$renderer=g(X);$router=g(j);$settings=g(be);$toastr=g(I);$translate=g(R);editorDecorations=[];lastHeight;visualViewPortEventCallback;latestSavedConfig;childBridgesToRestart=[];hbPendingRestart=!1;homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0};let e=document.querySelector(".content");this.$renderer.setStyle(e,"height","100%"),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),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(i=>{this.homebridgeConfig=i.config,this.latestSavedConfig=JSON.parse(i.config)}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.subscribe({next:()=>{this.setMonacoEditorModel()}});let{action:t}=this.$router.parseUrl(this.$router.url).queryParams;if(t){switch(t){case"restore":{this.onRestore(!0);break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}}onEditorInit(e){window.editor=e,this.monacoEditor=e,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(e){this.monacoEditor=e.modifiedEditor,e.getModel().original.setValue(this.originalConfig),e.getModel().modified.setValue(this.homebridgeConfig),window.editor=e}onSave(){return E(this,null,function*(){if(!this.saveInProgress){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress=!0;try{if(!this.isMobile){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let t=window.monaco.editor.getModelMarkers({owner:"json"});for(let i of t)if(i.message==="Duplicate object key"){this.saveInProgress=!1,this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig=this.monacoEditor.getModel().getValue()}let e=this.parseConfigFromEditor();this.homebridgeConfig=JSON.stringify(e,null,4),typeof e.bridge!="object"?this.$toastr.error(this.$translate.instant("config.config_bridge_missing"),this.$translate.instant("toast.title_error")):/^(?:[0-9A-F]{2}:){5}[0-9A-F]{2}$/i.test(e.bridge.username)?e.accessories&&!Array.isArray(e.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&!Array.isArray(e.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&Array.isArray(e.platforms)&&!this.validateSection(e.platforms,"platform")||e.accessories&&Array.isArray(e.accessories)&&!this.validateSection(e.accessories,"accessory")||e.plugins&&Array.isArray(e.plugins)&&!this.validatePlugins(e.plugins,"plugins")||e.disabledPlugins&&Array.isArray(e.disabledPlugins)&&!this.validatePlugins(e.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(e),this.originalConfig=""):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}onRestore(e=!1){let t=this.$modal.open(xe,{size:"lg",backdrop:"static"});t.componentInstance.currentConfig=this.homebridgeConfig,t.componentInstance.fromSettings=e,t.result.then(i=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${i}`).subscribe({next:o=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(o,null,4),this.monacoEditor&&window.editor.modifiedEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[]),this.monacoEditor.executeEdits("beautifier",[{identifier:"delete",range:new monaco.Range(1,1,this.monacoEditor.getModel().getLineCount()+10,1),text:"",forceMoveMarkers:!0}]),this.monacoEditor.executeEdits("beautifier",[{identifier:"insert",range:new monaco.Range(1,1,1,1),text:this.homebridgeConfig,forceMoveMarkers:!0}]))},error:o=>{console.error(o),this.$toastr.error(o.error?.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig="",this.onRestore()}ngOnDestroy(){let e=document.querySelector(".content");this.$renderer.removeStyle(e,"height"),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}validateSection(e,t){for(let i of e){if(typeof i!="object"||Array.isArray(i))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(!i[t])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(typeof i[t]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(e,t){for(let i of e)if(typeof i!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:t}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
|
|
1
|
+
import{a as we}from"./chunk-5TCYRJ6A.js";import{b as A,e as ye,f as Ce,g as Re}from"./chunk-UKLR7UOX.js";import{a as fe,b as he}from"./chunk-NFWGYMP7.js";import{a as _e}from"./chunk-77JZBWAC.js";import{a as De}from"./chunk-V2P2FPJ7.js";import{m as pe,n as ge,t as D}from"./chunk-EA3EXGPZ.js";import{A as me,c as se,e as le,l as de,z as ce}from"./chunk-CNMM42I5.js";import{b as ue,d as j}from"./chunk-UOLP7IQJ.js";import{b as be}from"./chunk-E6YWZCLV.js";import{k as I,n as H}from"./chunk-2CO3VBPY.js";import{a as R,b as P}from"./chunk-G7FA4DP4.js";import"./chunk-6GMXEQVA.js";import{Ec as z,Hb as C,Ib as w,Jb as v,Jc as s,Kc as d,Lb as Z,Lc as K,Mb as ee,Nb as te,Ob as f,Pb as a,Qb as l,Rb as p,_b as x,ab as r,bc as b,d as G,dc as m,fb as X,g as Q,h as E,id as re,ka as g,mb as B,pd as ae,qa as h,qc as _,ra as u,rc as k,sc as M,w as $,xc as ie,yc as oe,zc as ne}from"./chunk-H36QJYLQ.js";var ke=Q(Re(),1);var ve=Q(De(),1);var Ee=(n,y)=>({"fa-trash":n,"fa-cog fa-spin":y});function Ie(n,y){n&1&&(a(0,"div",13),p(1,"i",20),l())}function je(n,y){if(n&1){let e=x();a(0,"li",9)(1,"span"),_(2),s(3,"date"),p(4,"br"),a(5,"span",21),_(6),s(7,"date"),l()(),a(8,"span",22)(9,"button",25),s(10,"translate"),s(11,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.restore(i.id))}),p(12,"i",26),l(),a(13,"button",27),s(14,"translate"),s(15,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.download(i.id))}),p(16,"i",28),l(),a(17,"button",23),s(18,"translate"),s(19,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.delete(i.id))}),p(20,"i",24),l()()()}if(n&2){let e=y.$implicit,t=m(2);r(2),M(" ",K(3,15,e.timestamp,"mediumDate")),r(4),k(K(7,18,e.timestamp,"shortTime")),r(3),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(10,21,"config.restore.copy_to_editor"))("openDelay",150),C("aria-label",d(11,23,"config.restore.copy_to_editor")),r(4),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(14,25,"form.button_download"))("openDelay",150),C("aria-label",d(15,27,"form.button_download")),r(4),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(18,29,"form.button_delete"))("openDelay",150),C("aria-label",d(19,31,"form.button_delete")),r(3),f("ngClass",z(33,Ee,e.id!==t.deleting,e.id===t.deleting))}}function He(n,y){if(n&1){let e=x();a(0,"ul",14),ee(1,je,21,36,"li",9,Z),a(3,"li",9)(4,"span"),_(5),s(6,"translate"),p(7,"br"),a(8,"span",21),_(9),s(10,"translate"),l()(),a(11,"span",22)(12,"button",23),s(13,"translate"),s(14,"translate"),b("click",function(){h(e);let i=m();return u(i.deleteAllBackups())}),p(15,"i",24),l()()()()}if(n&2){let e=m();r(),te(e.backupList),r(4),M(" ",d(6,7,"form.button_delete_all")),r(4),M(" ",d(10,9,"common.labels.no_confirmation")," "),r(3),f("disabled",e.clicked||e.deleting)("ngbTooltip",d(13,11,"form.button_delete_all"))("openDelay",150),C("aria-label",d(14,13,"form.button_delete")),r(3),f("ngClass",z(15,Ee,e.deleting!=="all",e.deleting==="all"))}}var xe=(()=>{class n{$activeModal=g(pe);$api=g(H);$router=g(j);$toastr=g(I);$translate=g(R);currentConfig;fromSettings=!1;loading=!0;backupList=[];clicked=!1;deleting=null;ngOnInit(){this.getConfigBackups()}getConfigBackups(){return E(this,null,function*(){try{let e=yield $(this.$api.get("/config-editor/backups"));this.loading=!1,this.backupList=e}catch(e){this.loading=!1,console.error(e),this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),this.dismissModal()}})}restore(e){return this.$activeModal.close(e)}download(e){return E(this,null,function*(){this.clicked=!0;try{let t=yield $(this.$api.get(`/config-editor/backups/${e}`)),i=JSON.stringify(t,null,4),o=new Blob([i],{type:"application/json"}),T=`config-backup-${e}.json`;(0,ve.saveAs)(o,T),this.clicked=!1}catch(t){this.clicked=!1,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}downloadCurrentConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.currentConfig)}`,t=document.createElement("a");t.setAttribute("href",e),t.setAttribute("download","config.json"),document.body.appendChild(t),t.click(),t.remove()}delete(e){return E(this,null,function*(){this.deleting=e;try{yield $(this.$api.delete(`/config-editor/backups/${e}`)),yield this.getConfigBackups(),this.deleting=null}catch(t){this.deleting=null,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}deleteAllBackups(){return E(this,null,function*(){this.deleting="all";try{yield $(this.$api.delete("/config-editor/backups")),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success")),this.backupList=[],this.deleting=null}catch(e){this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e),this.deleting=null}})}dismissModal(){this.fromSettings&&this.$router.navigate(["/settings"]),this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=B({type:n,selectors:[["ng-component"]],inputs:{currentConfig:"currentConfig",fromSettings:"fromSettings"},decls:40,vars:31,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-history","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3",3,"click","disabled"],[1,"fas","fa-fw","fa-arrow-right"],[1,"text-center","primary-text"],[1,"list-group","list-group-box","mt-3"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[1,"fa","fa-fw","fa-cog","fa-spin","mt-3",2,"font-size","75px"],[1,"grey-text","small"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw",3,"ngClass"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-download"]],template:function(t,i){t&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),_(3),s(4,"translate"),l(),a(5,"button",3),s(6,"translate"),b("click",function(){return i.dismissModal()}),l()(),a(7,"div",4)(8,"div",5),p(9,"i",6),l(),a(10,"ul",7)(11,"li"),_(12),s(13,"translate"),l(),a(14,"li"),_(15),s(16,"translate"),l()(),a(17,"ul",8)(18,"li",9)(19,"div")(20,"span"),_(21),s(22,"translate"),l(),p(23,"br"),a(24,"small",10),_(25),s(26,"translate"),l()(),a(27,"button",11),s(28,"translate"),b("click",function(){return i.downloadCurrentConfig()}),p(29,"i",12),l()()(),w(30,Ie,2,0,"div",13)(31,He,16,18,"ul",14),l(),a(32,"div",15),p(33,"div",16),a(34,"div",17)(35,"button",18),s(36,"translate"),b("click",function(){return i.dismissModal()}),_(37),s(38,"translate"),l()(),p(39,"div",19),l()()),t&2&&(r(3),k(d(4,13,"config.restore.title")),r(2),f("disabled",i.clicked||i.deleting),C("aria-label",d(6,15,"form.button_close")),r(7),k(d(13,17,"config.restore.help_1")),r(3),k(d(16,19,"config.restore.help_2")),r(6),k(d(22,21,"form.button_download")),r(4),k(d(26,23,"config.restore.download")),r(2),f("disabled",i.clicked||i.deleting),C("aria-label",d(28,25,"backup.backup_now")),r(3),v(i.loading?30:i.backupList.length?31:-1),r(5),f("disabled",i.clicked||i.deleting),C("aria-label",d(36,27,"form.button_close")),r(2),M(" ",d(38,29,"form.button_close")," "))},dependencies:[D,re,me,ae,P],encapsulation:2})}return n})();function Oe(n,y){if(n&1){let e=x();a(0,"button",13),s(1,"translate"),s(2,"translate"),b("click",function(){h(e);let i=m();return u(i.onCancelRestore())}),p(3,"i",14),l()}if(n&2){let e=m();f("disabled",e.saveInProgress)("openDelay",150)("ngbTooltip",d(1,4,"form.button_cancel")),C("aria-label",d(2,6,"form.button_cancel"))}}function Ne(n,y){if(n&1){let e=x();a(0,"button",15),s(1,"translate"),s(2,"translate"),b("click",function(){h(e);let i=m();return u(i.onRestore())}),p(3,"i",16),l()}n&2&&(f("openDelay",150)("ngbTooltip",d(1,3,"form.button_restore")),C("aria-label",d(2,5,"form.button_restore")))}function qe(n,y){n&1&&p(0,"i",8)}function Fe(n,y){n&1&&p(0,"i",9)}function Le(n,y){if(n&1){let e=x();a(0,"ngx-monaco-editor",17),b("onInit",function(i){h(e);let o=m();return u(o.onEditorInit(i))})("keydown.control.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())})("keydown.meta.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())}),l()}if(n&2){let e=m();f("options",e.editorOptions)("model",e.monacoEditorModel)}}function Je(n,y){if(n&1){let e=x();a(0,"ngx-monaco-diff-editor",18),b("onInit",function(i){h(e);let o=m();return u(o.onInitDiffEditor(i))})("keydown.control.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())})("keydown.meta.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())}),l()}if(n&2){let e=m();f("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function ze(n,y){if(n&1){let e=x();a(0,"textarea",19),ne("ngModelChange",function(i){h(e);let o=m();return oe(o.homebridgeConfig,i)||(o.homebridgeConfig=i),u(i)}),_(1," "),l()}if(n&2){let e=m();ie("ngModel",e.homebridgeConfig)}}var xt=(()=>{class n{$api=g(H);$md=g(_e);$modal=g(ge);$monacoEditor=g(we);$route=g(ue);$renderer=g(X);$router=g(j);$settings=g(be);$toastr=g(I);$translate=g(R);editorDecorations=[];lastHeight;visualViewPortEventCallback;latestSavedConfig;childBridgesToRestart=[];hbPendingRestart=!1;homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0};let e=document.querySelector(".content");this.$renderer.setStyle(e,"height","100%"),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),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(i=>{this.homebridgeConfig=i.config,this.latestSavedConfig=JSON.parse(i.config)}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.subscribe({next:()=>{this.setMonacoEditorModel()}});let{action:t}=this.$router.parseUrl(this.$router.url).queryParams;if(t){switch(t){case"restore":{this.onRestore(!0);break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}}onEditorInit(e){window.editor=e,this.monacoEditor=e,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(e){this.monacoEditor=e.modifiedEditor,e.getModel().original.setValue(this.originalConfig),e.getModel().modified.setValue(this.homebridgeConfig),window.editor=e}onSave(){return E(this,null,function*(){if(!this.saveInProgress){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress=!0;try{if(!this.isMobile){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let t=window.monaco.editor.getModelMarkers({owner:"json"});for(let i of t)if(i.message==="Duplicate object key"){this.saveInProgress=!1,this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig=this.monacoEditor.getModel().getValue()}let e=this.parseConfigFromEditor();this.homebridgeConfig=JSON.stringify(e,null,4),typeof e.bridge!="object"?this.$toastr.error(this.$translate.instant("config.config_bridge_missing"),this.$translate.instant("toast.title_error")):/^(?:[0-9A-F]{2}:){5}[0-9A-F]{2}$/i.test(e.bridge.username)?e.accessories&&!Array.isArray(e.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&!Array.isArray(e.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&Array.isArray(e.platforms)&&!this.validateSection(e.platforms,"platform")||e.accessories&&Array.isArray(e.accessories)&&!this.validateSection(e.accessories,"accessory")||e.plugins&&Array.isArray(e.plugins)&&!this.validatePlugins(e.plugins,"plugins")||e.disabledPlugins&&Array.isArray(e.disabledPlugins)&&!this.validatePlugins(e.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(e),this.originalConfig=""):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}onRestore(e=!1){let t=this.$modal.open(xe,{size:"lg",backdrop:"static"});t.componentInstance.currentConfig=this.homebridgeConfig,t.componentInstance.fromSettings=e,t.result.then(i=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${i}`).subscribe({next:o=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(o,null,4),this.monacoEditor&&window.editor.modifiedEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[]),this.monacoEditor.executeEdits("beautifier",[{identifier:"delete",range:new monaco.Range(1,1,this.monacoEditor.getModel().getLineCount()+10,1),text:"",forceMoveMarkers:!0}]),this.monacoEditor.executeEdits("beautifier",[{identifier:"insert",range:new monaco.Range(1,1,1,1),text:this.homebridgeConfig,forceMoveMarkers:!0}]))},error:o=>{console.error(o),this.$toastr.error(o.error?.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig="",this.onRestore()}ngOnDestroy(){let e=document.querySelector(".content");this.$renderer.removeStyle(e,"height"),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}validateSection(e,t){for(let i of e){if(typeof i!="object"||Array.isArray(i))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(!i[t])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(typeof i[t]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(e,t){for(let i of e)if(typeof i!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:t}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
|
|
2
2
|
`).map(t=>` ${t}`).join(`
|
|
3
3
|
`),setTimeout(()=>{let t=this.monacoEditor.getModel().findMatches(e);if(t.length){let i=t[0].range,o=new monaco.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn);this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[{range:o,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}},200))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(t=>t.uri==="http://homebridge/config.json"))return;let e=monaco.Uri.parse("a://homebridge/config.json");window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({allowComments:!1,validate:!0,schemas:[{uri:"http://homebridge/config.json",fileMatch:[e.toString()],schema:{type:"object",required:["bridge"],properties:{bridge:{type:"object",required:["name","username","port","pin"],properties:{name:{type:"string",description:`The Homebridge instance name.
|
|
4
4
|
This should be unique if you are running multiple instances of Homebridge.`,default:"Homebridge"},username:{type:"string",description:`Homebridge username must be 6 pairs of colon-separated hexadecimal characters (A-F 0-9).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as re}from"./chunk-YLIPTO6D.js";import{a as ee,b as te,c as ie}from"./chunk-UHWT4HS2.js";import{c as ae}from"./chunk-FELMUB4D.js";import"./chunk-465U4FZV.js";import{a as le}from"./chunk-H3PPMCMP.js";import{a as se}from"./chunk-77JZBWAC.js";import{m as D,n as Y,t as Z}from"./chunk-EA3EXGPZ.js";import{c as q,e as G,f as J,i as K,l as Q,m as U,z as X}from"./chunk-CNMM42I5.js";import"./chunk-DT2WDJ2I.js";import{b as oe}from"./chunk-Y752BA6L.js";import"./chunk-UOLP7IQJ.js";import{b as ne}from"./chunk-LJCIV6Z3.js";import"./chunk-YRIAJM6Y.js";import{b as h}from"./chunk-G7FA4DP4.js";import"./chunk-6GMXEQVA.js";import{Cc as W,Dc as B,Ec as R,Hb as v,Ib as M,Jb as w,Jc as s,Kc as l,Lb as $,Lc as j,Mb as V,Nb as F,Ob as _,Pb as r,Qb as a,Rb as m,Sb as P,Tb as H,Ub as O,Xa as L,_b as T,ab as o,bc as b,dc as p,id as z,ka as g,mb as y,qa as x,qc as c,ra as C,rc as u,sc as S,xc as k,yc as A,zc as E}from"./chunk-H36QJYLQ.js";var ce=(()=>{class t{$activeModal=g(D);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({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-fw","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(i,n){i&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),a(),r(6,"button",3),s(7,"translate"),b("click",function(){return n.dismissModal()}),a()(),r(8,"div",4)(9,"div",5),m(10,"i",6),a(),r(11,"h5",7),c(12),s(13,"translate"),a(),r(14,"ul",8)(15,"li"),c(16),s(17,"translate"),a(),r(18,"li"),c(19),s(20,"translate"),a()(),r(21,"h5",9),c(22),s(23,"translate"),a(),r(24,"ul",8)(25,"li"),c(26),s(27,"translate"),a(),r(28,"li"),c(29),s(30,"translate"),a(),r(31,"li"),c(32),s(33,"translate"),a()(),m(34,"app-support-banner"),a(),r(35,"div",10),m(36,"div",11),r(37,"div",12)(38,"button",13),b("click",function(){return n.dismissModal()}),c(39),s(40,"translate"),a()(),m(41,"div",14),a()()()),i&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),S(" ",l(40,28,"form.button_close")," "))},dependencies:[le,h],encapsulation:2})}return t})();var me=()=>({standalone:!0}),de=(()=>{class t{$activeModal=g(D);roomName;dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(e){this.$activeModal.close(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],inputs:{roomName:"roomName"},decls:28,vars:19,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,"fas","fa-fw","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","",1,"form-control","custom-input",3,"ngModelChange","keyup.enter","ngModel","ngModelOptions"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(i,n){i&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),a(),r(6,"button",3),s(7,"translate"),b("click",function(){return n.dismissModal()}),a()(),r(8,"div",4)(9,"div",5),m(10,"i",6),a(),r(11,"ul",7)(12,"li",8)(13,"label",9),c(14),s(15,"translate"),a(),r(16,"div",10)(17,"input",11),E("ngModelChange",function(I){return A(n.roomName,I)||(n.roomName=I),I}),b("keyup.enter",function(){return n.closeModal(n.roomName)}),a()()()()(),r(18,"div",12)(19,"div",13)(20,"button",14),b("click",function(){return n.dismissModal()}),c(21),s(22,"translate"),a()(),m(23,"div",15),r(24,"div",16)(25,"button",17),b("click",function(){return n.closeModal(n.roomName)}),c(26),s(27,"translate"),a()()()()()),i&2&&(o(4),u(l(5,8,"accessories.button_add_room")),o(2),v("aria-label",l(7,10,"form.button_close")),o(8),u(l(15,12,"accessories.room_name")),o(3),k("ngModel",n.roomName),_("ngModelOptions",W(18,me)),o(4),S(" ",l(22,14,"form.button_close")," "),o(4),_("disabled",!n.roomName),o(),S(" ",l(27,16,"form.button_save")," "))},dependencies:[X,U,q,G,J,Q,K,h],encapsulation:2})}return t})();var pe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-drag-here-placeholder"]],decls:5,vars:3,consts:[[1,"accessory-box"],[1,"fas","fa-fw","fa-arrow-alt-circle-down","accessory-icon"],[1,"accessory-label"]],template:function(i,n){i&1&&(P(0,"div",0),O(1,"i",1),P(2,"div",2),c(3),s(4,"translate"),H()()),i&2&&(o(3),u(l(4,1,"accessories.control.drag_here")))},dependencies:[h],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var ue=(t,f)=>({"fa-eye":t,"fa-eye-slash":f}),_e=t=>({"cursor-move":t}),be=t=>({"justify-content-between":t}),fe=t=>({link:t});function ge(t,f){if(t&1&&(r(0,"div",0)(1,"div",19)(2,"h5",20),c(3),s(4,"translate"),a()()()),t&2){let e=p().$implicit,i=p(2);o(2),_("ngClass",B(4,_e,!i.isMobile)),o(),S(" ",e.name==="Default Room"?l(4,2,"accessories.control.default_room"):e.name," ")}}function ve(t,f){if(t&1&&(r(0,"div",23),m(1,"app-accessory-tile",24),a()),t&2){let e=p().$implicit;o(),_("service",e)}}function xe(t,f){if(t&1&&M(0,ve,2,1,"div",23),t&2){let e=f.$implicit,i=p(4);w(!i.hideHidden||!e.hidden?0:-1)}}function Ce(t,f){if(t&1){let e=T();r(0,"div",21),E("dragulaModelChange",function(n){x(e);let d=p().$implicit;return A(d.services,n)||(d.services=n),C(n)}),V(1,xe,1,1,null,null,$),m(3,"div",22)(4,"div",22)(5,"div",22)(6,"div",22)(7,"div",22)(8,"div",22)(9,"div",22)(10,"div",22)(11,"div",22)(12,"div",22),a()}if(t&2){let e=p().$implicit,i=p(2);_("ngClass",B(3,be,i.isMobile))("dragula","services-bag"),k("dragulaModel",e.services),o(),F(e.services)}}function ye(t,f){if(t&1){let e=T();r(0,"div",25),E("dragulaModelChange",function(n){x(e);let d=p().$implicit;return A(d.services,n)||(d.services=n),C(n)}),m(1,"app-drag-here-placeholder",26),a()}if(t&2){let e=p().$implicit;_("dragula","services-bag"),k("dragulaModel",e.services)}}function he(t,f){if(t&1&&(r(0,"div"),M(1,ge,5,6,"div",0),r(2,"div",16),M(3,Ce,13,5,"div",17),M(4,ye,2,2,"div",18),a()()),t&2){let e=f.$implicit,i=p(2);o(),w(!i.isMobile||e.services.length?1:-1),o(2),w(e.services.length?3:-1),o(),w(!e.services.length&&!i.isMobile?4:-1)}}function Me(t,f){if(t&1){let e=T();r(0,"div",1)(1,"div",2)(2,"h3",3),c(3),s(4,"translate"),a()(),r(5,"div",4)(6,"button",5),s(7,"translate"),b("click",function(){x(e);let n=p();return C(n.openSupport())}),m(8,"i",6),a()(),r(9,"div",7)(10,"button",8),s(11,"translate"),s(12,"translate"),b("click",function(){x(e);let n=p();return C(n.addRoom())}),m(13,"i",9),a(),r(14,"button",8),s(15,"translate"),s(16,"translate"),s(17,"translate"),s(18,"translate"),b("click",function(){x(e);let n=p();return C(n.hideHidden=!n.hideHidden)}),m(19,"i",10),a(),r(20,"div",11)(21,"button",12),s(22,"translate"),s(23,"translate"),b("click",function(){x(e);let n=p();return C(n.toggleLayoutLock())}),m(24,"i",13),a(),r(25,"button",12),s(26,"translate"),s(27,"translate"),b("click",function(){x(e);let n=p();return C(n.toggleLayoutLock())}),m(28,"i",14),a()(),r(29,"button",5),s(30,"translate"),b("click",function(){x(e);let n=p();return C(n.openSupport())}),m(31,"i",6),a()()(),r(32,"div",15),E("dragulaModelChange",function(n){x(e);let d=p();return A(d.$accessories.rooms,n)||(d.$accessories.rooms=n),C(n)}),V(33,he,5,3,"div",null,$),a()}if(t&2){let e=p();o(3),u(l(4,22,"menu.label_accessories")),o(3),v("aria-label",l(7,24,"support.title")),o(4),_("hidden",e.isMobile)("openDelay",150)("ngbTooltip",l(11,26,"accessories.button_add_room")),v("aria-label",l(12,28,"accessories.button_add_room")),o(4),_("hidden",e.isMobile)("openDelay",150)("ngbTooltip",e.hideHidden?l(15,30,"accessories.button_hidden_show"):l(16,32,"accessories.button_hidden_hide")),v("aria-label",e.hideHidden?l(17,34,"accessories.button_hidden_show"):l(18,36,"accessories.button_hidden_hide")),o(5),_("ngClass",R(48,ue,!e.hideHidden,e.hideHidden)),o(2),_("disabled",!e.isMobile)("openDelay",150)("ngbTooltip",l(22,38,"form.button_unlock")),v("aria-label",l(23,40,"form.button_unlock")),o(4),_("disabled",e.isMobile)("openDelay",150)("ngbTooltip",l(26,42,"form.button_lock")),v("aria-label",l(27,44,"form.button_lock")),o(4),v("aria-label",l(30,46,"support.title")),o(3),_("dragula","rooms-bag"),k("dragulaModel",e.$accessories.rooms),o(),F(e.$accessories.rooms)}}function we(t,f){t&1&&(r(0,"p",33),c(1),s(2,"translate"),a()),t&2&&(o(),u(l(2,1,"accessories.settings_link")))}function Se(t,f){if(t&1&&(r(0,"div",0)(1,"div",27)(2,"h3",28),c(3),s(4,"translate"),a()(),r(5,"div",29)(6,"div",30)(7,"h5",31),c(8),s(9,"translate"),a(),m(10,"p",32),s(11,"translate"),M(12,we,3,3,"p",33),a()()()),t&2){let e=p();o(3),u(l(4,4,"menu.label_accessories")),o(5),u(l(9,6,"accessories.control_disabled")),o(2),_("innerHTML",j(11,8,"accessories.message_must_use_insecure_mode",B(11,fe,e.linkInsecure)),L),o(2),w(e.isAdmin?12:-1)}}var nt=(()=>{class t{$accessories=g(ae);$auth=g(oe);dragulaService=g(ee);$modal=g(Y);$settings=g(ne);$md=g(se);orderSubscription;isAdmin=this.$auth.user.admin;enableAccessories=this.$settings.env.enableAccessories;isMobile=!1;hideHidden=!0;linkInsecure='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Enabling-Accessory-Control" target="_blank"><i class="fa fa-fw fa-external-link-alt primary-text"></i></a>';constructor(){let e=this.dragulaService;this.isMobile=this.$md.detect.mobile(),e.createGroup("rooms-bag",{moves:(i,n,d)=>!this.isMobile&&d.classList.contains("drag-handle")}),e.createGroup("services-bag",{moves:i=>!this.isMobile&&!i.classList.contains("no-drag")}),this.orderSubscription=e.drop().subscribe(()=>{setTimeout(()=>{this.$accessories.saveLayout()})}),this.isMobile=!0}ngOnInit(){this.$accessories.start()}addRoom(){this.$modal.open(de,{size:"lg",backdrop:"static"}).result.then(e=>{!e||!e.length||this.$accessories.rooms.find(i=>i.name===e)||(this.$accessories.rooms.push({name:e,services:[]}),this.isMobile&&this.toggleLayoutLock())}).catch(()=>{})}toggleLayoutLock(){this.isMobile=!this.isMobile,this.isMobile?document.querySelectorAll(".services-bag").forEach(i=>{for(let n=0;n<10;n++){let d=document.createElement("div");d.className="accessory-box invisible py-0 my-0",d.style.height="0",i.appendChild(d)}}):document.querySelectorAll(".invisible").forEach(i=>i.remove())}openSupport(){this.$modal.open(ce,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.$accessories.stop(),this.orderSubscription.unsubscribe(),this.dragulaService.destroy("rooms-bag"),this.dragulaService.destroy("services-bag")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({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-fw","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-fw","fa-folder-plus"],[1,"fas","fa-fw",3,"ngClass"],["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-fw","fa-unlock"],[1,"fas","fa-fw","fa-lock"],[3,"dragulaModelChange","dragula","dragulaModel"],[1,"row","mb-4"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"ngClass","dragula","dragulaModel"],[1,"col-md-12","d-flex","flex-wrap","noselect",3,"dragula","dragulaModel"],[1,"col-md-12"],[1,"primary-text","drag-handle","room-title","m-0","mb-1","mb-sm-0",3,"ngClass"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"dragulaModelChange","ngClass","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"],[1,"col-12"],[1,"primary-text","m-0","mb-3"],[1,"col-12","text-center"],["role","alert",1,"alert","alert-warning","p-4"],[1,"mb-3","mt-0"],[1,"mb-0",3,"innerHTML"],[1,"mt-3","mb-0"]],template:function(i,n){i&1&&M(0,Me,35,51)(1,Se,13,13,"div",0),i&2&&w(n.enableAccessories?0:1)},dependencies:[Z,z,ie,te,re,pe,h],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}.gu-transit[_ngcontent-%COMP%] .manage-accessory-button[_ngcontent-%COMP%]{display:none}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return t})();export{nt as AccessoriesComponent};
|
|
1
|
+
import{a as re}from"./chunk-FXX7OM3C.js";import{a as ee,b as te,c as ie}from"./chunk-UHWT4HS2.js";import{c as ae}from"./chunk-J2QJA4E5.js";import"./chunk-NQUU3I4B.js";import{a as le}from"./chunk-H3PPMCMP.js";import{a as se}from"./chunk-77JZBWAC.js";import{m as D,n as Y,t as Z}from"./chunk-EA3EXGPZ.js";import{c as q,e as G,f as J,i as K,l as Q,m as U,z as X}from"./chunk-CNMM42I5.js";import"./chunk-OKJ3EDLI.js";import{b as oe}from"./chunk-X7YL6WTA.js";import"./chunk-UOLP7IQJ.js";import{b as ne}from"./chunk-E6YWZCLV.js";import"./chunk-2CO3VBPY.js";import{b as h}from"./chunk-G7FA4DP4.js";import"./chunk-6GMXEQVA.js";import{Cc as W,Dc as B,Ec as R,Hb as v,Ib as M,Jb as w,Jc as s,Kc as l,Lb as $,Lc as j,Mb as V,Nb as F,Ob as _,Pb as r,Qb as a,Rb as m,Sb as P,Tb as H,Ub as O,Xa as L,_b as T,ab as o,bc as b,dc as p,id as z,ka as g,mb as y,qa as x,qc as c,ra as C,rc as u,sc as S,xc as k,yc as A,zc as E}from"./chunk-H36QJYLQ.js";var ce=(()=>{class t{$activeModal=g(D);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({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-fw","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(i,n){i&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),a(),r(6,"button",3),s(7,"translate"),b("click",function(){return n.dismissModal()}),a()(),r(8,"div",4)(9,"div",5),m(10,"i",6),a(),r(11,"h5",7),c(12),s(13,"translate"),a(),r(14,"ul",8)(15,"li"),c(16),s(17,"translate"),a(),r(18,"li"),c(19),s(20,"translate"),a()(),r(21,"h5",9),c(22),s(23,"translate"),a(),r(24,"ul",8)(25,"li"),c(26),s(27,"translate"),a(),r(28,"li"),c(29),s(30,"translate"),a(),r(31,"li"),c(32),s(33,"translate"),a()(),m(34,"app-support-banner"),a(),r(35,"div",10),m(36,"div",11),r(37,"div",12)(38,"button",13),b("click",function(){return n.dismissModal()}),c(39),s(40,"translate"),a()(),m(41,"div",14),a()()()),i&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),S(" ",l(40,28,"form.button_close")," "))},dependencies:[le,h],encapsulation:2})}return t})();var me=()=>({standalone:!0}),de=(()=>{class t{$activeModal=g(D);roomName;dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(e){this.$activeModal.close(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],inputs:{roomName:"roomName"},decls:28,vars:19,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,"fas","fa-fw","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","",1,"form-control","custom-input",3,"ngModelChange","keyup.enter","ngModel","ngModelOptions"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(i,n){i&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),a(),r(6,"button",3),s(7,"translate"),b("click",function(){return n.dismissModal()}),a()(),r(8,"div",4)(9,"div",5),m(10,"i",6),a(),r(11,"ul",7)(12,"li",8)(13,"label",9),c(14),s(15,"translate"),a(),r(16,"div",10)(17,"input",11),E("ngModelChange",function(I){return A(n.roomName,I)||(n.roomName=I),I}),b("keyup.enter",function(){return n.closeModal(n.roomName)}),a()()()()(),r(18,"div",12)(19,"div",13)(20,"button",14),b("click",function(){return n.dismissModal()}),c(21),s(22,"translate"),a()(),m(23,"div",15),r(24,"div",16)(25,"button",17),b("click",function(){return n.closeModal(n.roomName)}),c(26),s(27,"translate"),a()()()()()),i&2&&(o(4),u(l(5,8,"accessories.button_add_room")),o(2),v("aria-label",l(7,10,"form.button_close")),o(8),u(l(15,12,"accessories.room_name")),o(3),k("ngModel",n.roomName),_("ngModelOptions",W(18,me)),o(4),S(" ",l(22,14,"form.button_close")," "),o(4),_("disabled",!n.roomName),o(),S(" ",l(27,16,"form.button_save")," "))},dependencies:[X,U,q,G,J,Q,K,h],encapsulation:2})}return t})();var pe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["app-drag-here-placeholder"]],decls:5,vars:3,consts:[[1,"accessory-box"],[1,"fas","fa-fw","fa-arrow-alt-circle-down","accessory-icon"],[1,"accessory-label"]],template:function(i,n){i&1&&(P(0,"div",0),O(1,"i",1),P(2,"div",2),c(3),s(4,"translate"),H()()),i&2&&(o(3),u(l(4,1,"accessories.control.drag_here")))},dependencies:[h],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var ue=(t,f)=>({"fa-eye":t,"fa-eye-slash":f}),_e=t=>({"cursor-move":t}),be=t=>({"justify-content-between":t}),fe=t=>({link:t});function ge(t,f){if(t&1&&(r(0,"div",0)(1,"div",19)(2,"h5",20),c(3),s(4,"translate"),a()()()),t&2){let e=p().$implicit,i=p(2);o(2),_("ngClass",B(4,_e,!i.isMobile)),o(),S(" ",e.name==="Default Room"?l(4,2,"accessories.control.default_room"):e.name," ")}}function ve(t,f){if(t&1&&(r(0,"div",23),m(1,"app-accessory-tile",24),a()),t&2){let e=p().$implicit;o(),_("service",e)}}function xe(t,f){if(t&1&&M(0,ve,2,1,"div",23),t&2){let e=f.$implicit,i=p(4);w(!i.hideHidden||!e.hidden?0:-1)}}function Ce(t,f){if(t&1){let e=T();r(0,"div",21),E("dragulaModelChange",function(n){x(e);let d=p().$implicit;return A(d.services,n)||(d.services=n),C(n)}),V(1,xe,1,1,null,null,$),m(3,"div",22)(4,"div",22)(5,"div",22)(6,"div",22)(7,"div",22)(8,"div",22)(9,"div",22)(10,"div",22)(11,"div",22)(12,"div",22),a()}if(t&2){let e=p().$implicit,i=p(2);_("ngClass",B(3,be,i.isMobile))("dragula","services-bag"),k("dragulaModel",e.services),o(),F(e.services)}}function ye(t,f){if(t&1){let e=T();r(0,"div",25),E("dragulaModelChange",function(n){x(e);let d=p().$implicit;return A(d.services,n)||(d.services=n),C(n)}),m(1,"app-drag-here-placeholder",26),a()}if(t&2){let e=p().$implicit;_("dragula","services-bag"),k("dragulaModel",e.services)}}function he(t,f){if(t&1&&(r(0,"div"),M(1,ge,5,6,"div",0),r(2,"div",16),M(3,Ce,13,5,"div",17),M(4,ye,2,2,"div",18),a()()),t&2){let e=f.$implicit,i=p(2);o(),w(!i.isMobile||e.services.length?1:-1),o(2),w(e.services.length?3:-1),o(),w(!e.services.length&&!i.isMobile?4:-1)}}function Me(t,f){if(t&1){let e=T();r(0,"div",1)(1,"div",2)(2,"h3",3),c(3),s(4,"translate"),a()(),r(5,"div",4)(6,"button",5),s(7,"translate"),b("click",function(){x(e);let n=p();return C(n.openSupport())}),m(8,"i",6),a()(),r(9,"div",7)(10,"button",8),s(11,"translate"),s(12,"translate"),b("click",function(){x(e);let n=p();return C(n.addRoom())}),m(13,"i",9),a(),r(14,"button",8),s(15,"translate"),s(16,"translate"),s(17,"translate"),s(18,"translate"),b("click",function(){x(e);let n=p();return C(n.hideHidden=!n.hideHidden)}),m(19,"i",10),a(),r(20,"div",11)(21,"button",12),s(22,"translate"),s(23,"translate"),b("click",function(){x(e);let n=p();return C(n.toggleLayoutLock())}),m(24,"i",13),a(),r(25,"button",12),s(26,"translate"),s(27,"translate"),b("click",function(){x(e);let n=p();return C(n.toggleLayoutLock())}),m(28,"i",14),a()(),r(29,"button",5),s(30,"translate"),b("click",function(){x(e);let n=p();return C(n.openSupport())}),m(31,"i",6),a()()(),r(32,"div",15),E("dragulaModelChange",function(n){x(e);let d=p();return A(d.$accessories.rooms,n)||(d.$accessories.rooms=n),C(n)}),V(33,he,5,3,"div",null,$),a()}if(t&2){let e=p();o(3),u(l(4,22,"menu.label_accessories")),o(3),v("aria-label",l(7,24,"support.title")),o(4),_("hidden",e.isMobile)("openDelay",150)("ngbTooltip",l(11,26,"accessories.button_add_room")),v("aria-label",l(12,28,"accessories.button_add_room")),o(4),_("hidden",e.isMobile)("openDelay",150)("ngbTooltip",e.hideHidden?l(15,30,"accessories.button_hidden_show"):l(16,32,"accessories.button_hidden_hide")),v("aria-label",e.hideHidden?l(17,34,"accessories.button_hidden_show"):l(18,36,"accessories.button_hidden_hide")),o(5),_("ngClass",R(48,ue,!e.hideHidden,e.hideHidden)),o(2),_("disabled",!e.isMobile)("openDelay",150)("ngbTooltip",l(22,38,"form.button_unlock")),v("aria-label",l(23,40,"form.button_unlock")),o(4),_("disabled",e.isMobile)("openDelay",150)("ngbTooltip",l(26,42,"form.button_lock")),v("aria-label",l(27,44,"form.button_lock")),o(4),v("aria-label",l(30,46,"support.title")),o(3),_("dragula","rooms-bag"),k("dragulaModel",e.$accessories.rooms),o(),F(e.$accessories.rooms)}}function we(t,f){t&1&&(r(0,"p",33),c(1),s(2,"translate"),a()),t&2&&(o(),u(l(2,1,"accessories.settings_link")))}function Se(t,f){if(t&1&&(r(0,"div",0)(1,"div",27)(2,"h3",28),c(3),s(4,"translate"),a()(),r(5,"div",29)(6,"div",30)(7,"h5",31),c(8),s(9,"translate"),a(),m(10,"p",32),s(11,"translate"),M(12,we,3,3,"p",33),a()()()),t&2){let e=p();o(3),u(l(4,4,"menu.label_accessories")),o(5),u(l(9,6,"accessories.control_disabled")),o(2),_("innerHTML",j(11,8,"accessories.message_must_use_insecure_mode",B(11,fe,e.linkInsecure)),L),o(2),w(e.isAdmin?12:-1)}}var nt=(()=>{class t{$accessories=g(ae);$auth=g(oe);dragulaService=g(ee);$modal=g(Y);$settings=g(ne);$md=g(se);orderSubscription;isAdmin=this.$auth.user.admin;enableAccessories=this.$settings.env.enableAccessories;isMobile=!1;hideHidden=!0;linkInsecure='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Enabling-Accessory-Control" target="_blank"><i class="fa fa-fw fa-external-link-alt primary-text"></i></a>';constructor(){let e=this.dragulaService;this.isMobile=this.$md.detect.mobile(),e.createGroup("rooms-bag",{moves:(i,n,d)=>!this.isMobile&&d.classList.contains("drag-handle")}),e.createGroup("services-bag",{moves:i=>!this.isMobile&&!i.classList.contains("no-drag")}),this.orderSubscription=e.drop().subscribe(()=>{setTimeout(()=>{this.$accessories.saveLayout()})}),this.isMobile=!0}ngOnInit(){this.$accessories.start()}addRoom(){this.$modal.open(de,{size:"lg",backdrop:"static"}).result.then(e=>{!e||!e.length||this.$accessories.rooms.find(i=>i.name===e)||(this.$accessories.rooms.push({name:e,services:[]}),this.isMobile&&this.toggleLayoutLock())}).catch(()=>{})}toggleLayoutLock(){this.isMobile=!this.isMobile,this.isMobile?document.querySelectorAll(".services-bag").forEach(i=>{for(let n=0;n<10;n++){let d=document.createElement("div");d.className="accessory-box invisible py-0 my-0",d.style.height="0",i.appendChild(d)}}):document.querySelectorAll(".invisible").forEach(i=>i.remove())}openSupport(){this.$modal.open(ce,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.$accessories.stop(),this.orderSubscription.unsubscribe(),this.dragulaService.destroy("rooms-bag"),this.dragulaService.destroy("services-bag")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({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-fw","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-fw","fa-folder-plus"],[1,"fas","fa-fw",3,"ngClass"],["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-fw","fa-unlock"],[1,"fas","fa-fw","fa-lock"],[3,"dragulaModelChange","dragula","dragulaModel"],[1,"row","mb-4"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"ngClass","dragula","dragulaModel"],[1,"col-md-12","d-flex","flex-wrap","noselect",3,"dragula","dragulaModel"],[1,"col-md-12"],[1,"primary-text","drag-handle","room-title","m-0","mb-1","mb-sm-0",3,"ngClass"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"dragulaModelChange","ngClass","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"],[1,"col-12"],[1,"primary-text","m-0","mb-3"],[1,"col-12","text-center"],["role","alert",1,"alert","alert-warning","p-4"],[1,"mb-3","mt-0"],[1,"mb-0",3,"innerHTML"],[1,"mt-3","mb-0"]],template:function(i,n){i&1&&M(0,Me,35,51)(1,Se,13,13,"div",0),i&2&&w(n.enableAccessories?0:1)},dependencies:[Z,z,ie,te,re,pe,h],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}.gu-transit[_ngcontent-%COMP%] .manage-accessory-button[_ngcontent-%COMP%]{display:none}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return t})();export{nt as AccessoriesComponent};
|