homebridge-config-ui-x 5.6.1-beta.0 → 5.6.1-beta.1
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 +1 -0
- package/dist/core/config/config.interfaces.d.ts +1 -0
- package/dist/main.js +49 -0
- package/dist/main.js.map +1 -1
- package/package.json +2 -1
- package/public/{chunk-M5NNILBO.js → chunk-223U5AZV.js} +1 -1
- package/public/{chunk-CGSU6LWR.js → chunk-2PVDCV4M.js} +1 -1
- package/public/{chunk-YMPR6QRX.js → chunk-2YD7SV6Y.js} +1 -1
- package/public/chunk-3Q3JGTFE.js +49 -0
- package/public/chunk-3TZUDSUL.js +1 -0
- package/public/{chunk-3RRGKSPT.js → chunk-4ZILPTDD.js} +1 -1
- package/public/{chunk-SKNG2LDC.js → chunk-5KITINM5.js} +1 -1
- package/public/{chunk-WJBYM3CK.js → chunk-5R7NZOJR.js} +1 -1
- package/public/{chunk-DCXKKXB4.js → chunk-5SBL4BBH.js} +1 -1
- package/public/{chunk-SZPZVJCY.js → chunk-5WD6ABWY.js} +1 -1
- package/public/{chunk-GZLH72PR.js → chunk-64EYU6BC.js} +1 -1
- package/public/{chunk-3KZ2CQME.js → chunk-6XY6ZG6F.js} +1 -1
- package/public/{chunk-JFGBC67H.js → chunk-7JOXSTGP.js} +1 -1
- package/public/{chunk-MGYPZDF6.js → chunk-7RQO7VAG.js} +1 -1
- package/public/{chunk-WFHNWAZU.js → chunk-7ZUABUJW.js} +1 -1
- package/public/{chunk-S4XJ2W2R.js → chunk-ACNNMIUT.js} +1 -1
- package/public/{chunk-IGJCCPMK.js → chunk-AQDCAGND.js} +1 -1
- package/public/{chunk-I2CB6FNC.js → chunk-B2BK3IE6.js} +1 -1
- package/public/{chunk-VKQXCRDO.js → chunk-BUC4YMXW.js} +1 -1
- package/public/{chunk-FYMNQKSS.js → chunk-CGI57AOT.js} +1 -1
- package/public/{chunk-6WL6JBW6.js → chunk-DO2SP5BX.js} +1 -1
- package/public/{chunk-ZF77F3NH.js → chunk-DQNZGU4J.js} +1 -1
- package/public/{chunk-UVVKDQFR.js → chunk-DSCXOXPY.js} +1 -1
- package/public/{chunk-VAMR4YGW.js → chunk-E2LOLIPT.js} +1 -1
- package/public/{chunk-AT26KEEX.js → chunk-E4Y4WIGF.js} +1 -1
- package/public/{chunk-GI6U2XR2.js → chunk-ELFFW2U4.js} +1 -1
- package/public/{chunk-IDU7UYST.js → chunk-EUGS6E4Y.js} +1 -1
- package/public/{chunk-ODGGUANG.js → chunk-EXGXLBBS.js} +1 -1
- package/public/{chunk-LOWN3NM6.js → chunk-FELPXK5W.js} +1 -1
- package/public/{chunk-RHAKODUV.js → chunk-IMD3GDEP.js} +1 -1
- package/public/{chunk-RCXQRRQJ.js → chunk-IXGE2QEI.js} +1 -1
- package/public/{chunk-HIWFIZVC.js → chunk-J6UJV3VB.js} +1 -1
- package/public/{chunk-U35I6VGA.js → chunk-JFOIQCL3.js} +2 -2
- package/public/{chunk-TUNQYUAE.js → chunk-KXB76BLH.js} +1 -1
- package/public/{chunk-GAKPDISY.js → chunk-MUMRJ5RB.js} +1 -1
- package/public/{chunk-CL4IO7CM.js → chunk-Q64T6IMY.js} +1 -1
- package/public/{chunk-YHHN4XHF.js → chunk-QZFNFY6W.js} +1 -1
- package/public/{chunk-BYZTDI6B.js → chunk-SCJBMTEG.js} +1 -1
- package/public/{chunk-L3SI6T5C.js → chunk-T3VUOKH5.js} +1 -1
- package/public/{chunk-X34FKKHJ.js → chunk-TFDQROXG.js} +1 -1
- package/public/{chunk-6WJAO3GJ.js → chunk-TLAKPQJZ.js} +1 -1
- package/public/chunk-TQEIMI3D.js +1 -0
- package/public/{chunk-N2C6CZAF.js → chunk-TYQRPDPB.js} +1 -1
- package/public/{chunk-YA5P53NT.js → chunk-UAQXKIJZ.js} +1 -1
- package/public/{chunk-VC3QRLND.js → chunk-V7KVXSG4.js} +1 -1
- package/public/{chunk-7RTQINLX.js → chunk-X3MJKHUW.js} +1 -1
- package/public/{chunk-OUVAQ37U.js → chunk-XNS3RMG7.js} +1 -1
- package/public/{chunk-4DK3FKYT.js → chunk-YSZ6XXLS.js} +1 -1
- package/public/{chunk-J73TLQUR.js → chunk-ZFQA4QWG.js} +1 -1
- package/public/{chunk-PPIXBDS7.js → chunk-ZGZIVGXD.js} +1 -1
- package/public/{chunk-7B34LSFR.js → chunk-ZUEKY4YE.js} +1 -1
- package/public/{chunk-TH354Y65.js → chunk-ZVQBHQRE.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-EG2GJFYG.js → main-XILG5ANR.js} +1 -1
- package/public/chunk-6RX2BRBU.js +0 -49
- package/public/chunk-VVLYWC4A.js +0 -1
- package/public/chunk-YO4MD7AK.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,7 @@ All notable changes to `homebridge-config-ui-x` will be documented in this file.
|
|
|
10
10
|
- put services types into translatable strings
|
|
11
11
|
- added config option to configure a webroot to access the UI from
|
|
12
12
|
- prevent url-based settings from being changed from a pwa
|
|
13
|
+
- added config option to advertise the ui over mdns
|
|
13
14
|
|
|
14
15
|
### Other Changes
|
|
15
16
|
|
|
@@ -109,6 +109,7 @@ export interface HomebridgeUiConfig {
|
|
|
109
109
|
scheduledBackupPath?: string;
|
|
110
110
|
scheduledBackupDisable?: boolean;
|
|
111
111
|
disableServerMetricsMonitoring?: boolean;
|
|
112
|
+
enableMdnsAdvertise?: boolean;
|
|
112
113
|
terminal?: {
|
|
113
114
|
persistence?: boolean;
|
|
114
115
|
hideWarning?: boolean;
|
package/dist/main.js
CHANGED
|
@@ -12,6 +12,7 @@ const common_1 = require("@nestjs/common");
|
|
|
12
12
|
const core_1 = require("@nestjs/core");
|
|
13
13
|
const platform_fastify_1 = require("@nestjs/platform-fastify");
|
|
14
14
|
const swagger_1 = require("@nestjs/swagger");
|
|
15
|
+
const bonjour_service_1 = require("bonjour-service");
|
|
15
16
|
const fs_extra_1 = require("fs-extra");
|
|
16
17
|
const app_module_1 = require("./app.module");
|
|
17
18
|
const config_service_1 = require("./core/config/config.service");
|
|
@@ -126,6 +127,54 @@ async function bootstrap() {
|
|
|
126
127
|
app.useGlobalFilters(new spa_filter_1.SpaFilter());
|
|
127
128
|
logger.warn(`Homebridge UI v${configService.package.version} is listening on ${startupConfig.host} port ${configService.ui.port}.`);
|
|
128
129
|
await app.listen(configService.ui.port, startupConfig.host);
|
|
130
|
+
let bonjour = null;
|
|
131
|
+
if (configService.ui.enableMdnsAdvertise) {
|
|
132
|
+
try {
|
|
133
|
+
bonjour = new bonjour_service_1.Bonjour();
|
|
134
|
+
const serviceName = configService.homebridgeConfig?.bridge?.name
|
|
135
|
+
? configService.homebridgeConfig.bridge.name
|
|
136
|
+
: 'Homebridge UI';
|
|
137
|
+
const service = bonjour.publish({
|
|
138
|
+
name: serviceName,
|
|
139
|
+
type: 'http',
|
|
140
|
+
port: configService.ui.port,
|
|
141
|
+
host: startupConfig.host === '0.0.0.0' || startupConfig.host === '::' ? undefined : startupConfig.host,
|
|
142
|
+
txt: {
|
|
143
|
+
path: realWebroot || '/',
|
|
144
|
+
version: configService.package.version,
|
|
145
|
+
https: startupConfig.httpsOptions ? 'true' : 'false',
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
logger.log(`Homebridge UI HTTP service advertised via mDNS as "${service.name}" on port ${configService.ui.port}`);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
logger.error('Failed to advertise mDNS service:', error);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const cleanupBonjour = () => {
|
|
155
|
+
if (bonjour) {
|
|
156
|
+
try {
|
|
157
|
+
logger.log('Shutting down mDNS service advertising...');
|
|
158
|
+
bonjour.unpublishAll();
|
|
159
|
+
bonjour.destroy();
|
|
160
|
+
bonjour = null;
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
logger.error('Error during mDNS cleanup:', error);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const handleShutdown = (signal) => {
|
|
168
|
+
logger.log(`Received ${signal}, starting graceful shutdown...`);
|
|
169
|
+
cleanupBonjour();
|
|
170
|
+
app.close().finally(() => {
|
|
171
|
+
node_process_1.default.exit(0);
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
node_process_1.default.removeAllListeners('SIGINT');
|
|
175
|
+
node_process_1.default.removeAllListeners('SIGTERM');
|
|
176
|
+
node_process_1.default.once('SIGINT', () => handleShutdown('SIGINT'));
|
|
177
|
+
node_process_1.default.once('SIGTERM', () => handleShutdown('SIGTERM'));
|
|
129
178
|
return app;
|
|
130
179
|
}
|
|
131
180
|
exports.app = bootstrap();
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-config-ui-x",
|
|
3
3
|
"displayName": "Homebridge UI",
|
|
4
|
-
"version": "5.6.1-beta.
|
|
4
|
+
"version": "5.6.1-beta.1",
|
|
5
5
|
"description": "A web based management, configuration and control platform for Homebridge.",
|
|
6
6
|
"author": "oznu <dev@oz.nu>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
"@nestjs/websockets": "11.1.6",
|
|
95
95
|
"axios": "1.11.0",
|
|
96
96
|
"bash-color": "0.0.4",
|
|
97
|
+
"bonjour-service": "^1.3.0",
|
|
97
98
|
"class-transformer": "0.5.1",
|
|
98
99
|
"class-validator": "0.14.2",
|
|
99
100
|
"commander": "14.0.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as u,g as s}from"./chunk-LV5TYHZ7.js";import{k as p,n as l,q as d}from"./chunk-
|
|
1
|
+
import{d as u,g as s}from"./chunk-LV5TYHZ7.js";import{k as p,n as l,q as d}from"./chunk-3TZUDSUL.js";import{Xa as n,ea as c,fa as i,h as f,ja as e,w as m}from"./chunk-ZHRPBG7M.js";var a=(()=>{class t{$api=e(d);$router=e(u);$toastr=e(l);$translate=e(p);resolve(){return f(this,null,function*(){try{let o=yield m(this.$api.get("/config-editor"));return JSON.stringify(o,null,4)}catch(o){console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error")),this.$router.navigate(["/"])}})}static \u0275fac=function(r){return new(r||t)};static \u0275prov=c({token:t,factory:t.\u0275fac})}return t})();var y=[{path:"",loadComponent:()=>import("./chunk-JFOIQCL3.js").then(t=>t.ConfigEditorComponent),resolve:{config:a}}],v=(()=>{class t{static \u0275fac=function(r){return new(r||t)};static \u0275mod=n({type:t});static \u0275inj=i({imports:[s.forChild(y),s]})}return t})();var T=(()=>{class t{static \u0275fac=function(r){return new(r||t)};static \u0275mod=n({type:t});static \u0275inj=i({providers:[a],imports:[v]})}return t})();export{T as ConfigEditorModule};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as B}from"./chunk-
|
|
1
|
+
import{a as B}from"./chunk-6XY6ZG6F.js";import{n as k,t as $}from"./chunk-QHDPBN4J.js";import"./chunk-D2RHA7X2.js";import{d as P}from"./chunk-LV5TYHZ7.js";import{b as V}from"./chunk-TFDQROXG.js";import{k as y,l as T,n as I,q as O}from"./chunk-3TZUDSUL.js";import{Db as b,Gb as m,Ib as w,La as i,Vb as c,Wa as h,Wb as S,Xb as d,ja as p,lb as f,mb as v,mc as a,nc as s,oa as u,pa as _,rb as g,sb as o,tb as r,ub as C}from"./chunk-ZHRPBG7M.js";function H(e,x){if(e&1){let t=b();o(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=w();return _(n.restartServer())}),c(2),a(3,"translate"),r()()}e&2&&(i(2),d(" ",s(3,1,"menu.linux.label_restart_server")," "))}function D(e,x){if(e&1){let t=b();o(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=w();return _(n.shutdownServer())}),c(2),a(3,"translate"),r()()}e&2&&(i(2),d(" ",s(3,1,"menu.linux.label_shutdown_server")," "))}function R(e,x){if(e&1){let t=b();o(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=w();return _(n.dockerRestartContainer())}),c(2),a(3,"translate"),r()()}e&2&&(i(2),d(" ",s(3,1,"menu.docker.restart_container")," "))}var K=(()=>{class e{$api=p(O);$modal=p(k);$router=p(P);$settings=p(V);$toastr=p(I);$translate=p(y);canShutdownRestartHost=this.$settings.env.canShutdownRestartHost;runningInDocker=this.$settings.env.runningInDocker;restartHomebridge(){this.$router.navigate(["/restart"])}restartHomebridgeService(){this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>{this.$router.navigate(["/restart"])},error:t=>{console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}restartServer(){this.$router.navigate(["/platform-tools/linux/restart-server"])}shutdownServer(){let t=this.$modal.open(B,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("menu.linux.label_shutdown_server"),t.componentInstance.message=this.$translate.instant("menu.linux.label_shutdown_modal"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_continue"),t.componentInstance.faIconClass="fa fa-power-off primary-text",t.result.then(()=>{this.$router.navigate(["/platform-tools/linux/shutdown-server"])}).catch(()=>{})}dockerRestartContainer(){this.$router.navigate(["/platform-tools/docker/restart-container"])}static \u0275fac=function(l){return new(l||e)};static \u0275cmp=h({type:e,selectors:[["ng-component"]],decls:19,vars:16,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-power-off",2,"font-size","75px"],[1,"w-100","text-center","my-5"],["type","button",1,"btn","btn-primary","p-3","my-0",2,"width","85%",3,"click"],["type","button","container","body","triggers","hover",1,"btn","btn-primary","p-3","my-0",2,"width","85%",3,"click","openDelay","ngbTooltip"]],template:function(l,n){l&1&&(o(0,"div",0)(1,"h3",1),c(2),a(3,"translate"),r()(),o(4,"div",2)(5,"div",3),C(6,"i",4),r(),o(7,"p",5)(8,"button",6),m("click",function(){return n.restartHomebridge()}),c(9),a(10,"translate"),r()(),o(11,"p",5)(12,"button",7),a(13,"translate"),m("click",function(){return n.restartHomebridgeService()}),c(14),a(15,"translate"),r()(),f(16,H,4,3,"p",5),f(17,D,4,3,"p",5),f(18,R,4,3,"p",5),r()),l&2&&(i(2),S(s(3,8,"menu.restart.title")),i(7),d(" ",s(10,10,"menu.hbrestart.confirm_hb")," "),i(3),g("openDelay",150)("ngbTooltip",s(13,12,"reset.force_restart_hb_help_text")),i(2),d(" ",s(15,14,"menu.hbrestart.confirm_ui")," "),i(2),v(n.canShutdownRestartHost?16:-1),i(),v(n.canShutdownRestartHost?17:-1),i(),v(n.runningInDocker?18:-1))},dependencies:[$,T],encapsulation:2})}return e})();export{K as PowerOptionsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as de}from"./chunk-6WL6JBW6.js";import{a as ie,b as ne,c as oe}from"./chunk-5TSHBP5C.js";import{c as ce}from"./chunk-S4XJ2W2R.js";import"./chunk-YHHN4XHF.js";import{a as me}from"./chunk-L3SI6T5C.js";import{a as le}from"./chunk-OQM4FTFW.js";import{a as pe}from"./chunk-V4K2YYFC.js";import{m as I,n as ee,t as te}from"./chunk-QHDPBN4J.js";import{B as Z,c as J,e as K,f as Q,i as U,l as X,m as Y}from"./chunk-D2RHA7X2.js";import"./chunk-FYMNQKSS.js";import{b as se}from"./chunk-GZLH72PR.js";import"./chunk-LV5TYHZ7.js";import{b as re}from"./chunk-X34FKKHJ.js";import{l as S,q as ae}from"./chunk-VVLYWC4A.js";import{Db as k,Ga as W,Gb as b,Ib as d,Kc as G,La as i,Vb as c,Wa as M,Wb as m,Xb as w,ac as A,bc as E,cc as T,fc as z,gc as B,h as L,hc as j,ja as f,kb as C,lb as h,mb as y,mc as s,nc as l,oa as v,ob as P,oc as q,pa as x,pb as V,qb as $,rb as g,sb as a,tb as r,ub as p,vb as F,w as H,wb as O,xb as R}from"./chunk-ZHRPBG7M.js";var _e=(()=>{class t{$activeModal=f(I);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({type:t,selectors:[["ng-component"]],decls:42,vars:30,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"ms-2","mt-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(n,o){n&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),b("click",function(){return o.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),p(10,"i",6),r(),a(11,"h5",7),c(12),s(13,"translate"),r(),a(14,"ul",8)(15,"li"),c(16),s(17,"translate"),r(),a(18,"li"),c(19),s(20,"translate"),r()(),a(21,"h5",9),c(22),s(23,"translate"),r(),a(24,"ul",8)(25,"li"),c(26),s(27,"translate"),r(),a(28,"li"),c(29),s(30,"translate"),r(),a(31,"li"),c(32),s(33,"translate"),r()(),p(34,"app-support-banner"),r(),a(35,"div",10),p(36,"div",11),a(37,"div",12)(38,"button",13),b("click",function(){return o.dismissModal()}),c(39),s(40,"translate"),r()(),p(41,"div",14),r()()()),n&2&&(i(4),m(l(5,10,"support.title")),i(2),C("aria-label",l(7,12,"form.button_close")),i(6),m(l(13,14,"menu.label_accessories")),i(4),m(l(17,16,"accessories.support.acc_1")),i(3),m(l(20,18,"accessories.support.acc_2")),i(3),m(l(23,20,"accessories.title_rooms")),i(4),m(l(27,22,"accessories.support.rooms_1")),i(3),m(l(30,24,"accessories.support.rooms_2")),i(3),m(l(33,26,"accessories.support.rooms_3")),i(7),w(" ",l(40,28,"form.button_close")," "))},dependencies:[me,S],encapsulation:2})}return t})();var be=()=>({standalone:!0}),ue=(()=>{class t{$activeModal=f(I);roomName;dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(e){this.$activeModal.close(e)}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({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-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(n,o){n&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),b("click",function(){return o.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),p(10,"i",6),r(),a(11,"ul",7)(12,"li",8)(13,"label",9),c(14),s(15,"translate"),r(),a(16,"div",10)(17,"input",11),T("ngModelChange",function(D){return E(o.roomName,D)||(o.roomName=D),D}),b("keyup.enter",function(){return o.closeModal(o.roomName)}),r()()()()(),a(18,"div",12)(19,"div",13)(20,"button",14),b("click",function(){return o.dismissModal()}),c(21),s(22,"translate"),r()(),p(23,"div",15),a(24,"div",16)(25,"button",17),b("click",function(){return o.closeModal(o.roomName)}),c(26),s(27,"translate"),r()()()()()),n&2&&(i(4),m(l(5,8,"accessories.button_add_room")),i(2),C("aria-label",l(7,10,"form.button_close")),i(8),m(l(15,12,"accessories.room_name")),i(3),A("ngModel",o.roomName),g("ngModelOptions",z(18,be)),i(4),w(" ",l(22,14,"form.button_close")," "),i(4),g("disabled",!o.roomName),i(),w(" ",l(27,16,"form.button_save")," "))},dependencies:[Z,Y,J,K,Q,X,U,S],encapsulation:2})}return t})();var ge=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({type:t,selectors:[["app-drag-here-placeholder"]],decls:5,vars:3,consts:[[1,"accessory-box"],[1,"fas","fa-arrow-alt-circle-down","accessory-icon"],[1,"accessory-label"]],template:function(n,o){n&1&&(F(0,"div",0),R(1,"i",1),F(2,"div",2),c(3),s(4,"translate"),O()()),n&2&&(i(3),m(l(4,1,"accessories.control.drag_here")))},dependencies:[S],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var fe=(t,u)=>({"fa-eye":t,"fa-eye-slash":u}),Ce=t=>({"cursor-move":t}),ve=t=>({"justify-content-between":t}),xe=t=>({link:t});function he(t,u){if(t&1){let e=k();a(0,"button",8),s(1,"translate"),s(2,"translate"),b("click",function(){v(e);let o=d(2);return x(o.addRoom())}),p(3,"i",9),r(),a(4,"button",8),s(5,"translate"),s(6,"translate"),s(7,"translate"),s(8,"translate"),b("click",function(){v(e);let o=d(2);return x(o.hideHidden=!o.hideHidden)}),p(9,"i",10),r(),a(10,"div",11)(11,"button",12),s(12,"translate"),s(13,"translate"),b("click",function(){v(e);let o=d(2);return x(o.toggleLayoutLock())}),p(14,"i",13),r(),a(15,"button",12),s(16,"translate"),s(17,"translate"),b("click",function(){v(e);let o=d(2);return x(o.toggleLayoutLock())}),p(18,"i",14),r()()}if(t&2){let e=d(2);g("hidden",e.isMobile)("openDelay",150)("ngbTooltip",l(1,17,"accessories.button_add_room")),C("aria-label",l(2,19,"accessories.button_add_room")),i(4),g("hidden",e.isMobile)("openDelay",150)("ngbTooltip",e.hideHidden?l(5,21,"accessories.button_hidden_show"):l(6,23,"accessories.button_hidden_hide")),C("aria-label",e.hideHidden?l(7,25,"accessories.button_hidden_show"):l(8,27,"accessories.button_hidden_hide")),i(5),g("ngClass",j(37,fe,!e.hideHidden,e.hideHidden)),i(2),g("disabled",!e.isMobile)("openDelay",150)("ngbTooltip",l(12,29,"form.button_unlock")),C("aria-label",l(13,31,"form.button_unlock")),i(4),g("disabled",e.isMobile)("openDelay",150)("ngbTooltip",l(16,33,"form.button_lock")),C("aria-label",l(17,35,"form.button_lock"))}}function ye(t,u){t&1&&p(0,"app-spinner")}function Me(t,u){if(t&1&&(a(0,"div",0)(1,"div",21)(2,"h5",22),c(3),s(4,"translate"),r()()()),t&2){let e=d().$implicit,n=d(4);i(2),g("ngClass",B(4,Ce,!n.isMobile)),i(),w(" ",e.name==="Default Room"?l(4,2,"accessories.control.default_room"):e.name," ")}}function Se(t,u){if(t&1&&(a(0,"div",25),p(1,"app-accessory-tile",26),r()),t&2){let e=d().$implicit;i(),g("service",e)}}function we(t,u){if(t&1&&h(0,Se,2,1,"div",25),t&2){let e=u.$implicit,n=d(6);y(!n.hideHidden||!e.hidden?0:-1)}}function ke(t,u){if(t&1){let e=k();a(0,"div",23),T("dragulaModelChange",function(o){v(e);let _=d().$implicit;return E(_.services,o)||(_.services=o),x(o)}),V(1,we,1,1,null,null,P),p(3,"div",24)(4,"div",24)(5,"div",24)(6,"div",24)(7,"div",24)(8,"div",24)(9,"div",24)(10,"div",24)(11,"div",24)(12,"div",24),r()}if(t&2){let e=d().$implicit,n=d(4);g("ngClass",B(3,ve,n.isMobile))("dragula","services-bag"),A("dragulaModel",e.services),i(),$(e.services)}}function Ae(t,u){if(t&1){let e=k();a(0,"div",27),T("dragulaModelChange",function(o){v(e);let _=d().$implicit;return E(_.services,o)||(_.services=o),x(o)}),p(1,"app-drag-here-placeholder",28),r()}if(t&2){let e=d().$implicit;g("dragula","services-bag"),A("dragulaModel",e.services)}}function Ee(t,u){if(t&1&&(a(0,"div"),h(1,Me,5,6,"div",0),a(2,"div",18),h(3,ke,13,5,"div",19),h(4,Ae,2,2,"div",20),r()()),t&2){let e=u.$implicit,n=d(4);i(),y(!n.isMobile||e.services.length?1:-1),i(2),y(e.services.length?3:-1),i(),y(!e.services.length&&!n.isMobile?4:-1)}}function Te(t,u){if(t&1){let e=k();a(0,"div",17),T("dragulaModelChange",function(o){v(e);let _=d(3);return E(_.$accessories.rooms,o)||(_.$accessories.rooms=o),x(o)}),V(1,Ee,5,3,"div",null,P),r()}if(t&2){let e=d(3);g("dragula","rooms-bag"),A("dragulaModel",e.$accessories.rooms),i(),$(e.$accessories.rooms)}}function Be(t,u){t&1&&(a(0,"div",16)(1,"div",29)(2,"div",30),p(3,"i",31),r(),a(4,"h5",32),c(5),s(6,"translate"),r(),a(7,"p",33),c(8),s(9,"translate"),r(),a(10,"p",34),c(11),s(12,"translate"),r()()()),t&2&&(i(5),m(l(6,3,"accessories.no_plugins.title")),i(3),m(l(9,5,"accessories.no_plugins.message_1")),i(3),m(l(12,7,"accessories.no_plugins.message_2")))}function Ie(t,u){if(t&1&&h(0,Te,3,2,"div",15)(1,Be,13,9,"div",16),t&2){let e=d(2);y(e.hasPlugins?0:1)}}function De(t,u){if(t&1){let e=k();a(0,"div",1)(1,"div",2)(2,"h3",3),c(3),s(4,"translate"),r()(),a(5,"div",4)(6,"button",5),s(7,"translate"),b("click",function(){v(e);let o=d();return x(o.openSupport())}),p(8,"i",6),r()(),a(9,"div",7),h(10,he,19,40),a(11,"button",5),s(12,"translate"),b("click",function(){v(e);let o=d();return x(o.openSupport())}),p(13,"i",6),r()()(),h(14,ye,1,0,"app-spinner")(15,Ie,2,1)}if(t&2){let e=d();i(3),m(l(4,5,"menu.label_accessories")),i(3),C("aria-label",l(7,7,"support.title")),i(4),y(e.hasPlugins?10:-1),i(),C("aria-label",l(12,9,"support.title")),i(3),y(e.loading?14:15)}}function Pe(t,u){t&1&&(a(0,"p",39),c(1),s(2,"translate"),r()),t&2&&(i(),m(l(2,1,"accessories.settings_link")))}function Ve(t,u){if(t&1&&(a(0,"div",0)(1,"div",35)(2,"h3",36),c(3),s(4,"translate"),r()(),a(5,"div",16)(6,"div",29)(7,"div",30),p(8,"i",37),r(),a(9,"h5",32),c(10),s(11,"translate"),r(),p(12,"p",38),s(13,"translate"),h(14,Pe,3,3,"p",39),r()()()),t&2){let e=d();i(3),m(l(4,4,"menu.label_accessories")),i(7),m(l(11,6,"accessories.control_disabled")),i(2),g("innerHTML",q(13,8,"accessories.message_must_use_insecure_mode",B(11,xe,e.linkInsecure)),W),i(2),y(e.isAdmin?14:-1)}}var gt=(()=>{class t{$accessories=f(ce);$api=f(ae);$auth=f(se);dragulaService=f(ie);$modal=f(ee);$settings=f(re);$md=f(pe);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-external-link-alt primary-text"></i></a>';hasPlugins=!1;loading=!0;constructor(){let e=this.dragulaService;this.isMobile=this.$md.detect.mobile(),e.createGroup("rooms-bag",{moves:(n,o,_)=>!this.isMobile&&_.classList.contains("drag-handle")}),e.createGroup("services-bag",{moves:n=>!this.isMobile&&!n.classList.contains("no-drag")}),this.orderSubscription=e.drop().subscribe(()=>{setTimeout(()=>{this.$accessories.saveLayout()})}),this.isMobile=!0}ngOnInit(){this.$accessories.start(),this.checkForPlugins()}addRoom(){this.$modal.open(ue,{size:"lg",backdrop:"static"}).result.then(e=>{!e||!e.length||this.$accessories.rooms.find(n=>n.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(n=>{for(let o=0;o<10;o+=1){let _=document.createElement("div");_.className="accessory-box invisible py-0 my-0",_.style.height="0",n.appendChild(_)}}):document.querySelectorAll(".invisible").forEach(n=>n.remove())}openSupport(){this.$modal.open(_e,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.$accessories.stop(),this.orderSubscription.unsubscribe(),this.dragulaService.destroy("rooms-bag"),this.dragulaService.destroy("services-bag")}checkForPlugins(){return L(this,null,function*(){try{let e=yield H(this.$api.get("/plugins"));this.hasPlugins=e.length>1}catch(e){console.error(e),this.hasPlugins=!0}finally{this.loading=!1}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({type:t,selectors:[["app-accessories"]],decls:2,vars:1,consts:[[1,"row"],[1,"row","mb-3"],[1,"col-9","col-sm-6"],[1,"primary-text","m-0"],[1,"col-3","col-sm-6","text-end","d-inline-block","d-sm-none"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"col-3","col-sm-6","text-end","d-none","d-sm-inline-block"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","hidden","openDelay","ngbTooltip"],[1,"fas","fa-folder-plus"],[1,"fas",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-unlock"],[1,"fas","fa-lock"],[3,"dragula","dragulaModel"],[1,"col-12","text-center"],[3,"dragulaModelChange","dragula","dragulaModel"],[1,"row","mb-4"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"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"],["role","alert",1,"alert","alert-warning","p-4"],[1,"text-center","mb-3"],[1,"fas","fa-plug","primary-text",2,"font-size","75px"],[1,"mb-3","mt-0"],[1,"mb-0","small"],[1,"mb-0","small","mt-2"],[1,"col-12"],[1,"primary-text","m-0","mb-3"],[1,"fas","fa-lightbulb","primary-text",2,"font-size","75px"],[1,"mb-0","small",3,"innerHTML"],[1,"mt-2","mb-0","small"]],template:function(n,o){n&1&&h(0,De,16,11)(1,Ve,15,13,"div",0),n&2&&y(o.enableAccessories?0:1)},dependencies:[te,G,oe,ne,de,ge,le,S],styles:[".room-title[_ngcontent-%COMP%]{margin-left:10px}@media (max-width: 575px){.room-title[_ngcontent-%COMP%]{margin-left:7px}}.services-bag[_ngcontent-%COMP%]{min-height:170px}@media (max-width: 575px){.services-bag[_ngcontent-%COMP%]{min-height:initial}}.cursor-move[_ngcontent-%COMP%]{cursor:move}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return t})();export{gt as AccessoriesComponent};
|
|
1
|
+
import{a as de}from"./chunk-DO2SP5BX.js";import{a as ie,b as ne,c as oe}from"./chunk-5TSHBP5C.js";import{c as ce}from"./chunk-ACNNMIUT.js";import"./chunk-QZFNFY6W.js";import{a as me}from"./chunk-T3VUOKH5.js";import{a as le}from"./chunk-OQM4FTFW.js";import{a as pe}from"./chunk-V4K2YYFC.js";import{m as I,n as ee,t as te}from"./chunk-QHDPBN4J.js";import{B as Z,c as J,e as K,f as Q,i as U,l as X,m as Y}from"./chunk-D2RHA7X2.js";import"./chunk-CGI57AOT.js";import{b as se}from"./chunk-64EYU6BC.js";import"./chunk-LV5TYHZ7.js";import{b as re}from"./chunk-TFDQROXG.js";import{l as S,q as ae}from"./chunk-3TZUDSUL.js";import{Db as k,Ga as W,Gb as b,Ib as d,Kc as G,La as i,Vb as c,Wa as M,Wb as m,Xb as w,ac as A,bc as E,cc as T,fc as z,gc as B,h as L,hc as j,ja as f,kb as C,lb as h,mb as y,mc as s,nc as l,oa as v,ob as P,oc as q,pa as x,pb as V,qb as $,rb as g,sb as a,tb as r,ub as p,vb as F,w as H,wb as O,xb as R}from"./chunk-ZHRPBG7M.js";var _e=(()=>{class t{$activeModal=f(I);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({type:t,selectors:[["ng-component"]],decls:42,vars:30,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"ms-2","mt-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(n,o){n&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),b("click",function(){return o.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),p(10,"i",6),r(),a(11,"h5",7),c(12),s(13,"translate"),r(),a(14,"ul",8)(15,"li"),c(16),s(17,"translate"),r(),a(18,"li"),c(19),s(20,"translate"),r()(),a(21,"h5",9),c(22),s(23,"translate"),r(),a(24,"ul",8)(25,"li"),c(26),s(27,"translate"),r(),a(28,"li"),c(29),s(30,"translate"),r(),a(31,"li"),c(32),s(33,"translate"),r()(),p(34,"app-support-banner"),r(),a(35,"div",10),p(36,"div",11),a(37,"div",12)(38,"button",13),b("click",function(){return o.dismissModal()}),c(39),s(40,"translate"),r()(),p(41,"div",14),r()()()),n&2&&(i(4),m(l(5,10,"support.title")),i(2),C("aria-label",l(7,12,"form.button_close")),i(6),m(l(13,14,"menu.label_accessories")),i(4),m(l(17,16,"accessories.support.acc_1")),i(3),m(l(20,18,"accessories.support.acc_2")),i(3),m(l(23,20,"accessories.title_rooms")),i(4),m(l(27,22,"accessories.support.rooms_1")),i(3),m(l(30,24,"accessories.support.rooms_2")),i(3),m(l(33,26,"accessories.support.rooms_3")),i(7),w(" ",l(40,28,"form.button_close")," "))},dependencies:[me,S],encapsulation:2})}return t})();var be=()=>({standalone:!0}),ue=(()=>{class t{$activeModal=f(I);roomName;dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(e){this.$activeModal.close(e)}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({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-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(n,o){n&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),b("click",function(){return o.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),p(10,"i",6),r(),a(11,"ul",7)(12,"li",8)(13,"label",9),c(14),s(15,"translate"),r(),a(16,"div",10)(17,"input",11),T("ngModelChange",function(D){return E(o.roomName,D)||(o.roomName=D),D}),b("keyup.enter",function(){return o.closeModal(o.roomName)}),r()()()()(),a(18,"div",12)(19,"div",13)(20,"button",14),b("click",function(){return o.dismissModal()}),c(21),s(22,"translate"),r()(),p(23,"div",15),a(24,"div",16)(25,"button",17),b("click",function(){return o.closeModal(o.roomName)}),c(26),s(27,"translate"),r()()()()()),n&2&&(i(4),m(l(5,8,"accessories.button_add_room")),i(2),C("aria-label",l(7,10,"form.button_close")),i(8),m(l(15,12,"accessories.room_name")),i(3),A("ngModel",o.roomName),g("ngModelOptions",z(18,be)),i(4),w(" ",l(22,14,"form.button_close")," "),i(4),g("disabled",!o.roomName),i(),w(" ",l(27,16,"form.button_save")," "))},dependencies:[Z,Y,J,K,Q,X,U,S],encapsulation:2})}return t})();var ge=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({type:t,selectors:[["app-drag-here-placeholder"]],decls:5,vars:3,consts:[[1,"accessory-box"],[1,"fas","fa-arrow-alt-circle-down","accessory-icon"],[1,"accessory-label"]],template:function(n,o){n&1&&(F(0,"div",0),R(1,"i",1),F(2,"div",2),c(3),s(4,"translate"),O()()),n&2&&(i(3),m(l(4,1,"accessories.control.drag_here")))},dependencies:[S],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var fe=(t,u)=>({"fa-eye":t,"fa-eye-slash":u}),Ce=t=>({"cursor-move":t}),ve=t=>({"justify-content-between":t}),xe=t=>({link:t});function he(t,u){if(t&1){let e=k();a(0,"button",8),s(1,"translate"),s(2,"translate"),b("click",function(){v(e);let o=d(2);return x(o.addRoom())}),p(3,"i",9),r(),a(4,"button",8),s(5,"translate"),s(6,"translate"),s(7,"translate"),s(8,"translate"),b("click",function(){v(e);let o=d(2);return x(o.hideHidden=!o.hideHidden)}),p(9,"i",10),r(),a(10,"div",11)(11,"button",12),s(12,"translate"),s(13,"translate"),b("click",function(){v(e);let o=d(2);return x(o.toggleLayoutLock())}),p(14,"i",13),r(),a(15,"button",12),s(16,"translate"),s(17,"translate"),b("click",function(){v(e);let o=d(2);return x(o.toggleLayoutLock())}),p(18,"i",14),r()()}if(t&2){let e=d(2);g("hidden",e.isMobile)("openDelay",150)("ngbTooltip",l(1,17,"accessories.button_add_room")),C("aria-label",l(2,19,"accessories.button_add_room")),i(4),g("hidden",e.isMobile)("openDelay",150)("ngbTooltip",e.hideHidden?l(5,21,"accessories.button_hidden_show"):l(6,23,"accessories.button_hidden_hide")),C("aria-label",e.hideHidden?l(7,25,"accessories.button_hidden_show"):l(8,27,"accessories.button_hidden_hide")),i(5),g("ngClass",j(37,fe,!e.hideHidden,e.hideHidden)),i(2),g("disabled",!e.isMobile)("openDelay",150)("ngbTooltip",l(12,29,"form.button_unlock")),C("aria-label",l(13,31,"form.button_unlock")),i(4),g("disabled",e.isMobile)("openDelay",150)("ngbTooltip",l(16,33,"form.button_lock")),C("aria-label",l(17,35,"form.button_lock"))}}function ye(t,u){t&1&&p(0,"app-spinner")}function Me(t,u){if(t&1&&(a(0,"div",0)(1,"div",21)(2,"h5",22),c(3),s(4,"translate"),r()()()),t&2){let e=d().$implicit,n=d(4);i(2),g("ngClass",B(4,Ce,!n.isMobile)),i(),w(" ",e.name==="Default Room"?l(4,2,"accessories.control.default_room"):e.name," ")}}function Se(t,u){if(t&1&&(a(0,"div",25),p(1,"app-accessory-tile",26),r()),t&2){let e=d().$implicit;i(),g("service",e)}}function we(t,u){if(t&1&&h(0,Se,2,1,"div",25),t&2){let e=u.$implicit,n=d(6);y(!n.hideHidden||!e.hidden?0:-1)}}function ke(t,u){if(t&1){let e=k();a(0,"div",23),T("dragulaModelChange",function(o){v(e);let _=d().$implicit;return E(_.services,o)||(_.services=o),x(o)}),V(1,we,1,1,null,null,P),p(3,"div",24)(4,"div",24)(5,"div",24)(6,"div",24)(7,"div",24)(8,"div",24)(9,"div",24)(10,"div",24)(11,"div",24)(12,"div",24),r()}if(t&2){let e=d().$implicit,n=d(4);g("ngClass",B(3,ve,n.isMobile))("dragula","services-bag"),A("dragulaModel",e.services),i(),$(e.services)}}function Ae(t,u){if(t&1){let e=k();a(0,"div",27),T("dragulaModelChange",function(o){v(e);let _=d().$implicit;return E(_.services,o)||(_.services=o),x(o)}),p(1,"app-drag-here-placeholder",28),r()}if(t&2){let e=d().$implicit;g("dragula","services-bag"),A("dragulaModel",e.services)}}function Ee(t,u){if(t&1&&(a(0,"div"),h(1,Me,5,6,"div",0),a(2,"div",18),h(3,ke,13,5,"div",19),h(4,Ae,2,2,"div",20),r()()),t&2){let e=u.$implicit,n=d(4);i(),y(!n.isMobile||e.services.length?1:-1),i(2),y(e.services.length?3:-1),i(),y(!e.services.length&&!n.isMobile?4:-1)}}function Te(t,u){if(t&1){let e=k();a(0,"div",17),T("dragulaModelChange",function(o){v(e);let _=d(3);return E(_.$accessories.rooms,o)||(_.$accessories.rooms=o),x(o)}),V(1,Ee,5,3,"div",null,P),r()}if(t&2){let e=d(3);g("dragula","rooms-bag"),A("dragulaModel",e.$accessories.rooms),i(),$(e.$accessories.rooms)}}function Be(t,u){t&1&&(a(0,"div",16)(1,"div",29)(2,"div",30),p(3,"i",31),r(),a(4,"h5",32),c(5),s(6,"translate"),r(),a(7,"p",33),c(8),s(9,"translate"),r(),a(10,"p",34),c(11),s(12,"translate"),r()()()),t&2&&(i(5),m(l(6,3,"accessories.no_plugins.title")),i(3),m(l(9,5,"accessories.no_plugins.message_1")),i(3),m(l(12,7,"accessories.no_plugins.message_2")))}function Ie(t,u){if(t&1&&h(0,Te,3,2,"div",15)(1,Be,13,9,"div",16),t&2){let e=d(2);y(e.hasPlugins?0:1)}}function De(t,u){if(t&1){let e=k();a(0,"div",1)(1,"div",2)(2,"h3",3),c(3),s(4,"translate"),r()(),a(5,"div",4)(6,"button",5),s(7,"translate"),b("click",function(){v(e);let o=d();return x(o.openSupport())}),p(8,"i",6),r()(),a(9,"div",7),h(10,he,19,40),a(11,"button",5),s(12,"translate"),b("click",function(){v(e);let o=d();return x(o.openSupport())}),p(13,"i",6),r()()(),h(14,ye,1,0,"app-spinner")(15,Ie,2,1)}if(t&2){let e=d();i(3),m(l(4,5,"menu.label_accessories")),i(3),C("aria-label",l(7,7,"support.title")),i(4),y(e.hasPlugins?10:-1),i(),C("aria-label",l(12,9,"support.title")),i(3),y(e.loading?14:15)}}function Pe(t,u){t&1&&(a(0,"p",39),c(1),s(2,"translate"),r()),t&2&&(i(),m(l(2,1,"accessories.settings_link")))}function Ve(t,u){if(t&1&&(a(0,"div",0)(1,"div",35)(2,"h3",36),c(3),s(4,"translate"),r()(),a(5,"div",16)(6,"div",29)(7,"div",30),p(8,"i",37),r(),a(9,"h5",32),c(10),s(11,"translate"),r(),p(12,"p",38),s(13,"translate"),h(14,Pe,3,3,"p",39),r()()()),t&2){let e=d();i(3),m(l(4,4,"menu.label_accessories")),i(7),m(l(11,6,"accessories.control_disabled")),i(2),g("innerHTML",q(13,8,"accessories.message_must_use_insecure_mode",B(11,xe,e.linkInsecure)),W),i(2),y(e.isAdmin?14:-1)}}var gt=(()=>{class t{$accessories=f(ce);$api=f(ae);$auth=f(se);dragulaService=f(ie);$modal=f(ee);$settings=f(re);$md=f(pe);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-external-link-alt primary-text"></i></a>';hasPlugins=!1;loading=!0;constructor(){let e=this.dragulaService;this.isMobile=this.$md.detect.mobile(),e.createGroup("rooms-bag",{moves:(n,o,_)=>!this.isMobile&&_.classList.contains("drag-handle")}),e.createGroup("services-bag",{moves:n=>!this.isMobile&&!n.classList.contains("no-drag")}),this.orderSubscription=e.drop().subscribe(()=>{setTimeout(()=>{this.$accessories.saveLayout()})}),this.isMobile=!0}ngOnInit(){this.$accessories.start(),this.checkForPlugins()}addRoom(){this.$modal.open(ue,{size:"lg",backdrop:"static"}).result.then(e=>{!e||!e.length||this.$accessories.rooms.find(n=>n.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(n=>{for(let o=0;o<10;o+=1){let _=document.createElement("div");_.className="accessory-box invisible py-0 my-0",_.style.height="0",n.appendChild(_)}}):document.querySelectorAll(".invisible").forEach(n=>n.remove())}openSupport(){this.$modal.open(_e,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.$accessories.stop(),this.orderSubscription.unsubscribe(),this.dragulaService.destroy("rooms-bag"),this.dragulaService.destroy("services-bag")}checkForPlugins(){return L(this,null,function*(){try{let e=yield H(this.$api.get("/plugins"));this.hasPlugins=e.length>1}catch(e){console.error(e),this.hasPlugins=!0}finally{this.loading=!1}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({type:t,selectors:[["app-accessories"]],decls:2,vars:1,consts:[[1,"row"],[1,"row","mb-3"],[1,"col-9","col-sm-6"],[1,"primary-text","m-0"],[1,"col-3","col-sm-6","text-end","d-inline-block","d-sm-none"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"col-3","col-sm-6","text-end","d-none","d-sm-inline-block"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","hidden","openDelay","ngbTooltip"],[1,"fas","fa-folder-plus"],[1,"fas",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-unlock"],[1,"fas","fa-lock"],[3,"dragula","dragulaModel"],[1,"col-12","text-center"],[3,"dragulaModelChange","dragula","dragulaModel"],[1,"row","mb-4"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"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"],["role","alert",1,"alert","alert-warning","p-4"],[1,"text-center","mb-3"],[1,"fas","fa-plug","primary-text",2,"font-size","75px"],[1,"mb-3","mt-0"],[1,"mb-0","small"],[1,"mb-0","small","mt-2"],[1,"col-12"],[1,"primary-text","m-0","mb-3"],[1,"fas","fa-lightbulb","primary-text",2,"font-size","75px"],[1,"mb-0","small",3,"innerHTML"],[1,"mt-2","mb-0","small"]],template:function(n,o){n&1&&h(0,De,16,11)(1,Ve,15,13,"div",0),n&2&&y(o.enableAccessories?0:1)},dependencies:[te,G,oe,ne,de,ge,le,S],styles:[".room-title[_ngcontent-%COMP%]{margin-left:10px}@media (max-width: 575px){.room-title[_ngcontent-%COMP%]{margin-left:7px}}.services-bag[_ngcontent-%COMP%]{min-height:170px}@media (max-width: 575px){.services-bag[_ngcontent-%COMP%]{min-height:initial}}.cursor-move[_ngcontent-%COMP%]{cursor:move}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return t})();export{gt as AccessoriesComponent};
|