homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
1 lines • 10.2 kB
JavaScript
import{$ as Le,Ct as Qo,E as Dy,Fr as se,Jr as ve,Kr as v3,Ln as db,M as Fe,Pr as sc,Q as Ko,Sn as a$,Tn as ac,Tr as qf,Un as g,X as Jt,Yr as vy,Yt as Va,bn as _w,br as pb,d as Ay,dt as Nf,fn as Z,hr as nc,jt as S_,mt as P,n as $T,pt as Ot,rn as Wf,rr as jd,st as My,u as An,ut as N_,vt as Py,wr as q,x as Cr}from"./chunk-D96TCRAL.js";import"./chunk-DZYp0NQB.js";import{n as zt}from"./chunk-CdJ3i4Aq.js";import{B as Hn,H as Jn,I as $,K as Se,R as Cn,W as Ln,Y as Ye,Z as _n,ft as he,r as Y,st as zn}from"./main-E3N63CH7.js";import"./chunk-CiY-LsUw.js";import"./chunk-CLsCjV2Q.js";import"./chunk-nWnpef0a.js";import"./chunk-C-2fYS21.js";import"./chunk-tTuB-TjV2.js";import{n as Z$1}from"./chunk-C4DEjFyc2.js";var ie=[`logoutput`];var oe=[`searchInput`];function ne(o,T){if(o&1){let e=sc();Va(0,`div`,5)(1,`button`,9),S_(2,`translate`),S_(3,`translate`),ac(`click`,function(){Ko(e);return Qo(ve().showSearch())}),Dy(4,`i`,10),jd(),Va(5,`button`,11),S_(6,`translate`),S_(7,`translate`),ac(`click`,function(){Ko(e);return Qo(ve().downloadLogFile())}),Dy(8,`i`,12),jd(),Va(9,`button`,13),S_(10,`translate`),S_(11,`translate`),ac(`click`,function(){Ko(e);return Qo(ve().truncateLogFile())}),Dy(12,`i`,14),jd()()}if(o&2){let e=ve();se(),vy(`openDelay`,150)(`ngbTooltip`,N_(2,12,`form.search`)),Cr(`aria-label`,N_(3,14,`form.search`))(`aria-expanded`,e.showSearchBar()),se(3),Jt(`fas fa-search${e.showSearchBar()?` primary-text`:``}`),se(),vy(`openDelay`,150)(`ngbTooltip`,N_(6,16,`form.button_download`)),Cr(`aria-label`,N_(7,18,`form.button_download`)),se(4),vy(`openDelay`,150)(`ngbTooltip`,N_(10,20,`form.button_delete`)),Cr(`aria-label`,N_(11,22,`form.button_delete`))}}function re(o,T){if(o&1){let e=sc();Va(0,`button`,19),S_(1,`translate`),ac(`click`,function(){Ko(e);return Qo(ve(2).onClearSearch())}),Dy(2,`i`,20),jd()}o&2&&Cr(`aria-label`,N_(1,1,`form.button_clear`))}function ae(o,T){if(o&1){let e=sc();Va(0,`div`,6)(1,`div`,15)(2,`form`,16),ac(`ngSubmit`,function(){Ko(e);let i=ve();return Qo(i.onSubmit(i.form.value))}),Dy(3,`input`,17,1),S_(5,`translate`),db(),Fe(6,re,3,3,`button`,18),jd()()()}if(o&2){let e=ve();se(2),vy(`formGroup`,e.form),se(),Ay(`search-bar-light`,e.terminalTheme===`light`)(`is-invalid`,e.searchInputInvalid),vy(`placeholder`,N_(5,7,`logs.placeholder_search_logs`)),pb(),se(3),Le(e.form.get(`query`)?.value?6:-1)}}var ye=(()=>{class o{destroyRef=g(Z);$auth=g(he);$log=g(Z$1);$settings=g(zt);$translate=g(Nf);termTarget=a$(`logoutput`);searchInput=a$(`searchInput`);resizeEvent=new P;isAdmin=this.$auth.user.admin;showSearchBar=q(!1);showExitButton=q(!1);terminalTheme=`dark`;form=new $({query:new Se(``)});get searchInputInvalid(){let e=(this.form.get(`query`)?.value||``).trim();return e.length>0&&e.length<3}onWindowResize(){this.resizeEvent.next(void 0)}patchXtermLiveRegion(){let e=this.termTarget()?.nativeElement;if(!e)return;let t=e.querySelector(`[aria-live]`);t&&(t.setAttribute(`role`,`status`),t.setAttribute(`aria-live`,`polite`),t.setAttribute(`aria-atomic`,`true`))}ngOnInit(){let e=this.$translate.instant(`menu.linux.label_logs`);if(this.$settings.setPageTitle(e),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(Wf(500),qf(),An(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(e){let t=(e.query||``).trim();!t.length||t.length<3?(t.length||this.showSearchBar.set(!1),this.form.setValue({query:``}),this.showExitButton.set(!1),this.$log.clearSearchFilter()):(this.showExitButton.set(!0),this.$log.setSearchFilter(t)),this.$log.scrollToBottom()}onClearSearch(){this.form.setValue({query:``}),this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom()}canDeactivate(e){let t=this.$settings.getEffectiveTerminalLightingMode();return this.$settings.actualLightingMode===`light`&&t===`dark`?(this.showSearchBar()&&this.showSearchBar.set(!1),window.document.querySelector(`body`).classList.remove(`theme-transition`),new Promise(p=>{let m=e&&(e.includes(`/platform-tools/terminal`)||e.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 ɵfac=function(t){return new(t||o)};static ɵcmp=nc({type:o,selectors:[[`app-logs`]],viewQuery:function(t,i){t&1&&My(i.termTarget,ie,5)(i.searchInput,oe,5),t&2&&$T(2)},hostBindings:function(t,i){t&1&&ac(`resize`,function(){return i.onWindowResize()},_w)},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(t,i){t&1&&(Va(0,`div`,2)(1,`div`,3)(2,`h3`,4),Ot(3),S_(4,`translate`),jd()(),Fe(5,ne,13,24,`div`,5),jd(),Fe(6,ae,7,9,`div`,6),Va(7,`div`,7),Dy(8,`div`,8,0),jd()),t&2&&(se(3),Py(N_(4,7,`menu.linux.label_logs`)),se(2),Le(i.isAdmin?5:-1),se(),Le(i.showSearchBar()?6:-1),se(),Ay(`adjust-for-mobile`,!i.showSearchBar())(`adjust-for-mobile-with-search`,i.showSearchBar()))},dependencies:[Y,Jn,zn,Ye,Hn,Ln,Cn,_n,v3],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)}}`]})}return o})();export{ye as LogsComponent};