homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
2 lines (1 loc) • 10.2 kB
JavaScript
import{b as Z}from"./chunk-COWEDMDX.js";import"./chunk-YEMALHZS.js";import"./chunk-M5NPMQ5Y.js";import"./chunk-XTCYYJPD.js";import"./chunk-SMGTZ45N.js";import"./chunk-GAHGBZ7U.js";import"./chunk-NAG4LCT2.js";import{a as Y}from"./chunk-I45OAEDK.js";import"./chunk-2QHNXSQY.js";import{a as I}from"./chunk-IL6HHVES.js";import{d as R}from"./chunk-LKBXKG4K.js";import{D as U,c as j,e as G,f as Q,g as H,j as W,m as X,r as J,s as K}from"./chunk-BQZ376DP.js";import{b as A}from"./chunk-RFCSHRPV.js";import"./chunk-3APJQTJL.js";import{Da as $,Ea as n,G as M,Gb as k,Hb as q,J as E,Kb as C,Lb as D,Mb as F,Nb as V,Ra as O,Yc as z,Zc as N,aa as u,ab as _,cb as w,d as L,db as v,dc as r,ec as a,fa as g,ga as f,ib as b,jb as l,kb as s,la as P,lb as d,qa as x,qc as S,vb as y,xb as h,zb as c}from"./chunk-LTGI3NYM.js";import"./chunk-B4AJQJMI.js";var ee=["logoutput"],te=["searchInput"];function ie(o,T){if(o&1){let t=y();l(0,"div",5)(1,"button",9),r(2,"translate"),r(3,"translate"),h("click",function(){g(t);let i=c();return f(i.showSearch())}),d(4,"i",10),s(),l(5,"button",11),r(6,"translate"),r(7,"translate"),h("click",function(){g(t);let i=c();return f(i.downloadLogFile())}),d(8,"i",12),s(),l(9,"button",13),r(10,"translate"),r(11,"translate"),h("click",function(){g(t);let i=c();return f(i.truncateLogFile())}),d(12,"i",14),s()()}if(o&2){let t=c();n(),b("openDelay",150)("ngbTooltip",a(2,12,"form.search")),_("aria-label",a(3,14,"form.search"))("aria-expanded",t.showSearchBar()),n(3),D(`fas fa-search${t.showSearchBar()?" primary-text":""}`),n(),b("openDelay",150)("ngbTooltip",a(6,16,"form.button_download")),_("aria-label",a(7,18,"form.button_download")),n(4),b("openDelay",150)("ngbTooltip",a(10,20,"form.button_delete")),_("aria-label",a(11,22,"form.button_delete"))}}function oe(o,T){if(o&1){let t=y();l(0,"button",19),r(1,"translate"),h("click",function(){g(t);let i=c(2);return f(i.onClearSearch())}),d(2,"i",20),s()}o&2&&_("aria-label",a(1,1,"form.button_clear"))}function ne(o,T){if(o&1){let t=y();l(0,"div",6)(1,"div",15)(2,"form",16),h("ngSubmit",function(){g(t);let i=c();return f(i.onSubmit(i.form.value))}),d(3,"input",17,1),r(5,"translate"),w(6,oe,3,3,"button",18),s()()()}if(o&2){let t,e=c();n(2),b("formGroup",e.form),n(),C("search-bar-light",e.terminalTheme==="light")("is-invalid",e.searchInputInvalid),b("placeholder",a(5,7,"logs.placeholder_search_logs")),n(3),v((t=e.form.get("query"))!=null&&t.value?6:-1)}}var we=(()=>{class o{destroyRef=u(P);$auth=u(R);$log=u(Z);$settings=u(A);$translate=u(z);termTarget=S("logoutput");searchInput=S("searchInput");resizeEvent=new L;isAdmin=this.$auth.user.admin;showSearchBar=x(!1);showExitButton=x(!1);terminalTheme="dark";form=new H({query:new W("")});get searchInputInvalid(){let t=(this.form.get("query")?.value||"").trim();return t.length>0&&t.length<3}onWindowResize(){this.resizeEvent.next(void 0)}patchXtermLiveRegion(){let t=this.termTarget()?.nativeElement;if(!t)return;let e=t.querySelector("[aria-live]");e&&(e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"))}ngOnInit(){let t=this.$translate.instant("menu.linux.label_logs");if(this.$settings.setPageTitle(t),this.terminalTheme=this.$settings.getEffectiveTerminalLightingMode(),this.terminalTheme==="dark"?window.document.querySelector("body").classList.add("bg-black"):window.document.querySelector("body").classList.add("bg-white"),this.$settings.actualLightingMode==="light"&&this.terminalTheme==="dark"){window.document.querySelector("body").classList.add("theme-transition");let i=this.termTarget()?.nativeElement;i&&i.classList.add("theme-transition")}this.$log.startTerminal(this.termTarget(),this.$settings.getTerminalOptions({disableStdin:!0}),this.resizeEvent),requestAnimationFrame(()=>this.patchXtermLiveRegion()),this.form.get("query")?.valueChanges.pipe(M(500),E(),I(this.destroyRef)).subscribe(i=>{let p=i||"",m=p.trim();m!==p&&this.form.get("query")?.setValue(m,{emitEvent:!1}),m.length>=3?(this.showExitButton.set(!0),this.$log.setSearchFilter(m),this.$log.scrollToBottom()):m.length<3&&this.showExitButton()&&(this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom())})}showSearch(){this.showSearchBar()?(this.showSearchBar.set(!1),this.showExitButton.set(!1),this.form.setValue({query:""}),this.$log.clearSearchFilter()):(this.showSearchBar.set(!0),setTimeout(()=>this.searchInput()?.nativeElement.focus(),10)),setTimeout(()=>this.resizeEvent.next(void 0),10),this.$log.scrollToBottom()}onSubmit(t){let e=(t.query||"").trim();!e.length||e.length<3?(e.length||this.showSearchBar.set(!1),this.form.setValue({query:""}),this.showExitButton.set(!1),this.$log.clearSearchFilter()):(this.showExitButton.set(!0),this.$log.setSearchFilter(e)),this.$log.scrollToBottom()}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom()}canDeactivate(t){let e=this.$settings.getEffectiveTerminalLightingMode();return this.$settings.actualLightingMode==="light"&&e==="dark"?(this.showSearchBar()&&this.showSearchBar.set(!1),window.document.querySelector("body").classList.remove("theme-transition"),new Promise(p=>{let m=t&&(t.includes("/platform-tools/terminal")||t.includes("/logs")),B=this.termTarget()?.nativeElement;B&&B.classList.add("fade-out"),m?setTimeout(()=>{p(!0)},250):(setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black"),window.document.querySelector("body").classList.remove("bg-white")},250),setTimeout(()=>{p(!0)},500))})):(window.document.querySelector("body").classList.remove("bg-black"),window.document.querySelector("body").classList.remove("bg-white"),Promise.resolve(!0))}ngOnDestroy(){window.document.querySelector("body").classList.remove("light-mode"),this.resizeEvent.complete(),this.$log.destroyTerminal()}downloadLogFile(){return this.$log.downloadLogFile()}truncateLogFile(){return this.$log.truncateLogFile()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=O({type:o,selectors:[["app-logs"]],viewQuery:function(e,i){e&1&&k(i.termTarget,ee,5)(i.searchInput,te,5),e&2&&q(2)},hostBindings:function(e,i){e&1&&h("resize",function(){return i.onWindowResize()},$)},decls:10,vars:9,consts:[["logoutput",""],["searchInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["id","logs-search-region",1,"row"],[1,"flex-column","d-flex","align-items-stretch"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"],["type","button","container","body","placement","bottom","triggers","hover","aria-controls","logs-search-region",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],["aria-hidden","true"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],["aria-hidden","true",1,"fas","fa-download"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","openDelay","ngbTooltip"],["aria-hidden","true",1,"fas","fa-trash-alt"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","id","logs-search","formControlName","query",1,"search-bar",3,"placeholder"],["type","button",1,"search-bar-clear"],["type","button",1,"search-bar-clear",3,"click"],["aria-hidden","true",1,"fas","fa-square-xmark"]],template:function(e,i){e&1&&(l(0,"div",2)(1,"div",3)(2,"h3",4),F(3),r(4,"translate"),s()(),w(5,ie,13,24,"div",5),s(),w(6,ne,7,9,"div",6),l(7,"div",7),d(8,"div",8,0),s()),e&2&&(n(3),V(a(4,7,"menu.linux.label_logs")),n(2),v(i.isAdmin?5:-1),n(),v(i.showSearchBar()?6:-1),n(),C("adjust-for-mobile",!i.showSearchBar())("adjust-for-mobile-with-search",i.showSearchBar()))},dependencies:[Y,U,X,j,G,Q,K,J,N],styles:["#log-output.theme-transition[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}#log-output.theme-transition.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}@keyframes _ngcontent-%COMP%_fadeIn{to{opacity:1}}@keyframes _ngcontent-%COMP%_fadeOut{to{opacity:0}}.search-bar[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;height:50px!important;width:100%;padding:10px 45px 10px 10px;margin-bottom:15px;background-color:#111!important;color:#999!important;border:0 #242424!important}@media(hover:hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #242424!important}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #242424!important;box-shadow:inherit!important;color:#eee!important}.search-bar[_ngcontent-%COMP%]::placeholder{color:#636363!important;opacity:1!important}.search-bar.search-bar-light[_ngcontent-%COMP%]{background-color:#fff!important;color:#000!important;border:.5px solid #d0d0d0!important}@media(hover:hover){.search-bar.search-bar-light[_ngcontent-%COMP%]:hover{border:1px solid #000000!important}}.search-bar.search-bar-light[_ngcontent-%COMP%]:focus{border:1px solid #000000!important;box-shadow:0 1px #000!important;color:#000!important}.search-bar.search-bar-light[_ngcontent-%COMP%]::placeholder{color:#757575!important;opacity:1!important}.search-bar.is-invalid[_ngcontent-%COMP%]{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}@media(hover:hover){.search-bar.is-invalid[_ngcontent-%COMP%]:hover{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}}.search-bar.is-invalid[_ngcontent-%COMP%]:focus{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}.search-bar-clear[_ngcontent-%COMP%]{position:absolute;right:8px;top:8px;height:50px;background:transparent;border:none;font-size:20px;color:#636363;cursor:pointer;padding:0 8px;display:flex;align-items:center}.search-bar-clear[_ngcontent-%COMP%]:hover{color:#999}.search-bar-badge[_ngcontent-%COMP%]{position:absolute;right:10px;top:16px;font-size:.75rem;padding:.25em .5em}.adjust-for-mobile-with-search[_ngcontent-%COMP%]{height:calc(100% - 97px);width:calc(100% + 17px);overflow:hidden}@media(max-width:767px){.adjust-for-mobile-with-search[_ngcontent-%COMP%]{height:calc(100% - 125px);width:calc(100% + 16px)}}"],changeDetection:0})}return o})();export{we as LogsComponent};