homebridge-config-ui-x 5.0.1-beta.0 → 5.0.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/core/auth/auth.controller.d.ts +6 -0
  3. package/dist/core/config/config.service.d.ts +9 -0
  4. package/dist/core/config/config.service.js +3 -0
  5. package/dist/core/config/config.service.js.map +1 -1
  6. package/dist/globalDefaults.js +3 -0
  7. package/dist/globalDefaults.js.map +1 -1
  8. package/dist/modules/platform-tools/terminal/terminal.gateway.d.ts +1 -0
  9. package/dist/modules/platform-tools/terminal/terminal.gateway.js +9 -0
  10. package/dist/modules/platform-tools/terminal/terminal.gateway.js.map +1 -1
  11. package/dist/modules/platform-tools/terminal/terminal.service.d.ts +9 -0
  12. package/dist/modules/platform-tools/terminal/terminal.service.js +156 -6
  13. package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
  14. package/package.json +2 -2
  15. package/public/{chunk-XIPV6S2E.js → chunk-2CVOGT3C.js} +1 -1
  16. package/public/{chunk-4M5IBLFU.js → chunk-2FRJOU4G.js} +1 -1
  17. package/public/{chunk-LYUKIQWV.js → chunk-3KBAYNQZ.js} +1 -1
  18. package/public/{chunk-6ZV74JJX.js → chunk-4IBSFIVC.js} +1 -1
  19. package/public/{chunk-YZBWQAXL.js → chunk-6DL2CKFC.js} +2 -2
  20. package/public/chunk-6JWROI2O.js +1 -0
  21. package/public/{chunk-BWV3SD3Z.js → chunk-6XTRFODH.js} +1 -1
  22. package/public/chunk-7Q674MJJ.js +1 -0
  23. package/public/{chunk-J2WQQ5XA.js → chunk-BMXNPSHH.js} +1 -1
  24. package/public/{chunk-2LZEASRE.js → chunk-CBJ6A4Y5.js} +1 -1
  25. package/public/{chunk-3ZPN5PPV.js → chunk-CVFXYU2P.js} +1 -1
  26. package/public/{chunk-2ZIMN6HQ.js → chunk-D3KSVBB5.js} +1 -1
  27. package/public/{chunk-F754W3WB.js → chunk-EN6KMFBR.js} +1 -1
  28. package/public/{chunk-LM66QCFN.js → chunk-ESCXE7UI.js} +1 -1
  29. package/public/chunk-FAOJ7UDP.js +1 -0
  30. package/public/{chunk-PXYSYTXG.js → chunk-FSRVTV2X.js} +1 -1
  31. package/public/{chunk-4QBSVR54.js → chunk-G5NDDLVS.js} +1 -1
  32. package/public/chunk-GGH6FG4Z.js +5 -0
  33. package/public/chunk-HBOWJDR5.js +2 -0
  34. package/public/{chunk-7HL2NUIE.js → chunk-HPEQJKCI.js} +1 -1
  35. package/public/{chunk-XSYDRPRP.js → chunk-IRDL6GER.js} +1 -1
  36. package/public/{chunk-WDFAWIMZ.js → chunk-JHPEPG44.js} +1 -1
  37. package/public/chunk-LHLZ3D2L.js +1 -0
  38. package/public/{chunk-B3ZMTQUC.js → chunk-LYAISHAD.js} +1 -1
  39. package/public/{chunk-XYW3RCJ2.js → chunk-MFLLZQPH.js} +1 -1
  40. package/public/{chunk-JO7II7GX.js → chunk-MMR24JFS.js} +1 -1
  41. package/public/{chunk-VAZOOXJZ.js → chunk-MQZSXKH5.js} +1 -1
  42. package/public/{chunk-TANPXHFU.js → chunk-NYCZTLLT.js} +1 -1
  43. package/public/{chunk-YUBK6BVK.js → chunk-O3ER4CVM.js} +1 -1
  44. package/public/{chunk-IJVDEEEM.js → chunk-OSPJSTQS.js} +1 -1
  45. package/public/{chunk-77L2MCKQ.js → chunk-QKLKN7MP.js} +1 -1
  46. package/public/{chunk-D5MSFLIQ.js → chunk-RRA3IHCM.js} +1 -1
  47. package/public/{chunk-DCXDGRPU.js → chunk-RZKJQ5FC.js} +1 -1
  48. package/public/{chunk-TXNH42IW.js → chunk-SKLKIXRS.js} +1 -1
  49. package/public/{chunk-RZBLN3JA.js → chunk-TCV3JZZK.js} +1 -1
  50. package/public/{chunk-ACNBCUWA.js → chunk-U4IIBYVP.js} +1 -1
  51. package/public/{chunk-HVI3LFAL.js → chunk-U4RGYGAX.js} +1 -1
  52. package/public/{chunk-WK5S4AAU.js → chunk-UU3KIFLZ.js} +1 -1
  53. package/public/{chunk-QTTC6A7P.js → chunk-UXUU25EW.js} +1 -1
  54. package/public/{chunk-YKDYWWHU.js → chunk-V5GJWRGM.js} +1 -1
  55. package/public/{chunk-MHB4GJLL.js → chunk-VANQX4ZW.js} +1 -1
  56. package/public/chunk-VQL2HRNL.js +1 -0
  57. package/public/{chunk-2CKLKY5R.js → chunk-VWYGP42I.js} +1 -1
  58. package/public/{chunk-EKGJ3N4Y.js → chunk-WP55CEYS.js} +1 -1
  59. package/public/{chunk-23Y7BPAN.js → chunk-WQVNB2Z2.js} +1 -1
  60. package/public/{chunk-RSFLPDGU.js → chunk-X5GZQPXE.js} +1 -1
  61. package/public/chunk-Y5D5WB5Q.js +1 -0
  62. package/public/{chunk-ME25VZ4V.js → chunk-YFV275BJ.js} +1 -1
  63. package/public/{chunk-J7Q5BUJW.js → chunk-YJWU65EW.js} +1 -1
  64. package/public/chunk-Z67O6CA3.js +1 -0
  65. package/public/{chunk-GEIS2BWE.js → chunk-ZJ3JJYIN.js} +1 -1
  66. package/public/index.html +1 -1
  67. package/public/main-ANYI56KY.js +1 -0
  68. package/public/chunk-22J4EY4Y.js +0 -1
  69. package/public/chunk-4AJSXM5Z.js +0 -1
  70. package/public/chunk-7NKVE7MW.js +0 -1
  71. package/public/chunk-CHYWVK3W.js +0 -1
  72. package/public/chunk-HOWJDZVR.js +0 -1
  73. package/public/chunk-PQPAXVOA.js +0 -1
  74. package/public/chunk-Q4CZ7LVK.js +0 -2
  75. package/public/chunk-REKXMGJU.js +0 -5
  76. package/public/chunk-TGV7QZLC.js +0 -1
  77. package/public/main-HHD5K3CT.js +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ## v5.0.1 (Unreleased)
6
+
7
+ ### UI Changes
8
+
9
+ - only show hbv2 readiness icon when ready to show
10
+ - migrate to use `fetch()` for http requests
11
+
5
12
  ## v5.0.0 (2025-07-13)
6
13
 
7
14
  ### ⚠️ Breaking Changes
@@ -29,6 +29,9 @@ export declare class AuthController {
29
29
  serverTimestamp: string;
30
30
  theme: string;
31
31
  menuMode: "default" | "freeze";
32
+ terminalPersistence: boolean;
33
+ terminalShowWarning: boolean;
34
+ terminalBufferSize: any;
32
35
  } | {
33
36
  env: {
34
37
  enableAccessories: boolean;
@@ -90,6 +93,9 @@ export declare class AuthController {
90
93
  lightingMode: "auto" | "light" | "dark";
91
94
  serverTimestamp: string;
92
95
  theme: string;
96
+ terminalPersistence: boolean;
97
+ terminalShowWarning: boolean;
98
+ terminalBufferSize: any;
93
99
  };
94
100
  getCustomWallpaper(): import("fs").ReadStream;
95
101
  getToken(): Promise<{
@@ -76,6 +76,9 @@ export declare class ConfigService {
76
76
  scheduledBackupPath?: string;
77
77
  scheduledBackupDisable?: boolean;
78
78
  disableServerMetricsMonitoring?: boolean;
79
+ terminalPersistence?: boolean;
80
+ terminalShowWarning?: boolean;
81
+ terminalBufferSize?: number;
79
82
  };
80
83
  private bridgeFreeze;
81
84
  private uiFreeze;
@@ -108,6 +111,9 @@ export declare class ConfigService {
108
111
  serverTimestamp: string;
109
112
  theme: string;
110
113
  menuMode: "default" | "freeze";
114
+ terminalPersistence: boolean;
115
+ terminalShowWarning: boolean;
116
+ terminalBufferSize: any;
111
117
  } | {
112
118
  env: {
113
119
  enableAccessories: boolean;
@@ -169,6 +175,9 @@ export declare class ConfigService {
169
175
  lightingMode: "auto" | "light" | "dark";
170
176
  serverTimestamp: string;
171
177
  theme: string;
178
+ terminalPersistence: boolean;
179
+ terminalShowWarning: boolean;
180
+ terminalBufferSize: any;
172
181
  };
173
182
  uiRestartRequired(): Promise<boolean>;
174
183
  private freezeUiSettings;
@@ -114,6 +114,9 @@ let ConfigService = class ConfigService {
114
114
  serverTimestamp: new Date().toISOString(),
115
115
  theme: this.ui.theme || 'deep-purple',
116
116
  menuMode: this.ui.menuMode || 'default',
117
+ terminalPersistence: Boolean(this.ui.terminalPersistence),
118
+ terminalShowWarning: Boolean(this.ui.terminalShowWarning),
119
+ terminalBufferSize: this.ui.terminalBufferSize || globalThis.terminal.bufferSize,
117
120
  };
118
121
  if (!authorized) {
119
122
  return toReturn;
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/core/config/config.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/core/config/config.service.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,7 @@ globalThis.backup = {
4
4
  maxBackupFileSize: 10 * 1024 * 1024,
5
5
  maxBackupFileSizeText: '10MB',
6
6
  };
7
+ globalThis.terminal = {
8
+ bufferSize: 50000,
9
+ };
7
10
  //# sourceMappingURL=globalDefaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalDefaults.js","sourceRoot":"","sources":["../src/globalDefaults.ts"],"names":[],"mappings":"AACA,UAAU,CAAC,MAAM,GAAG;IAElB,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC/B,iBAAiB,EAAE,MAAM;IAEzB,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnC,qBAAqB,EAAE,MAAM;CAC9B,CAAA"}
1
+ {"version":3,"file":"globalDefaults.js","sourceRoot":"","sources":["../src/globalDefaults.ts"],"names":[],"mappings":"AACA,UAAU,CAAC,MAAM,GAAG;IAElB,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC/B,iBAAiB,EAAE,MAAM;IAEzB,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnC,qBAAqB,EAAE,MAAM;CAC9B,CAAA;AAED,UAAU,CAAC,QAAQ,GAAG;IAEpB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -4,4 +4,5 @@ export declare class TerminalGateway {
4
4
  private readonly terminalService;
5
5
  constructor(terminalService: TerminalService);
6
6
  startTerminalSession(client: WsEventEmitter, payload: TermSize): Promise<void>;
7
+ destroyPersistentSession(): void;
7
8
  }
@@ -21,6 +21,9 @@ let TerminalGateway = class TerminalGateway {
21
21
  startTerminalSession(client, payload) {
22
22
  return this.terminalService.startSession(client, payload);
23
23
  }
24
+ destroyPersistentSession() {
25
+ return this.terminalService.destroyPersistentSession();
26
+ }
24
27
  };
25
28
  exports.TerminalGateway = TerminalGateway;
26
29
  __decorate([
@@ -29,6 +32,12 @@ __decorate([
29
32
  __metadata("design:paramtypes", [Object, Object]),
30
33
  __metadata("design:returntype", void 0)
31
34
  ], TerminalGateway.prototype, "startTerminalSession", null);
35
+ __decorate([
36
+ (0, websockets_1.SubscribeMessage)('destroy-persistent-session'),
37
+ __metadata("design:type", Function),
38
+ __metadata("design:paramtypes", []),
39
+ __metadata("design:returntype", void 0)
40
+ ], TerminalGateway.prototype, "destroyPersistentSession", null);
32
41
  exports.TerminalGateway = TerminalGateway = __decorate([
33
42
  (0, common_1.UseGuards)(ws_admin_guard_1.WsAdminGuard),
34
43
  (0, websockets_1.WebSocketGateway)({
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.gateway.js","sourceRoot":"","sources":["../../../../src/modules/platform-tools/terminal/terminal.gateway.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,2CAA0C;AAC1C,mDAAuE;AAEvE,6EAAuE;AACvE,yDAAoD;AAW7C,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YACmB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IAGJ,oBAAoB,CAAC,MAAsB,EAAE,OAAiB;QAC5D,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;CACF,CAAA;AATY,0CAAe;AAM1B;IADC,IAAA,6BAAgB,EAAC,eAAe,CAAC;;;;2DAGjC;0BARU,eAAe;IAT3B,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,6BAAgB,EAAC;QAChB,SAAS,EAAE,yBAAyB;QACpC,SAAS,EAAE,IAAI;QACf,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;YAC1D,WAAW,EAAE,IAAI;SAClB;KACF,CAAC;qCAGoC,kCAAe;GAFxC,eAAe,CAS3B"}
1
+ {"version":3,"file":"terminal.gateway.js","sourceRoot":"","sources":["../../../../src/modules/platform-tools/terminal/terminal.gateway.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,2CAA0C;AAC1C,mDAAuE;AAEvE,6EAAuE;AACvE,yDAAoD;AAW7C,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YACmB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IAGJ,oBAAoB,CAAC,MAAsB,EAAE,OAAiB;QAC5D,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;IAGD,wBAAwB;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,CAAA;IACxD,CAAC;CACF,CAAA;AAdY,0CAAe;AAM1B;IADC,IAAA,6BAAgB,EAAC,eAAe,CAAC;;;;2DAGjC;AAGD;IADC,IAAA,6BAAgB,EAAC,4BAA4B,CAAC;;;;+DAG9C;0BAbU,eAAe;IAT3B,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,6BAAgB,EAAC;QAChB,SAAS,EAAE,yBAAyB;QACpC,SAAS,EAAE,IAAI;QACf,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;YAC1D,WAAW,EAAE,IAAI;SAClB;KACF,CAAC;qCAGoC,kCAAe;GAFxC,eAAe,CAc3B"}
@@ -11,8 +11,17 @@ export declare class TerminalService {
11
11
  private logger;
12
12
  private nodePtyService;
13
13
  private ending;
14
+ private static persistentTerminal;
15
+ private static currentClient;
16
+ private static dataListenerAttached;
17
+ private static terminalBuffer;
18
+ private instanceId;
14
19
  constructor(configService: ConfigService, logger: Logger, nodePtyService: NodePtyService);
20
+ private getPreferredShell;
15
21
  startSession(client: WsEventEmitter, size: TermSize): Promise<void>;
22
+ private createNewTerminal;
23
+ private attachToPersistentTerminal;
24
+ destroyPersistentSession(): void;
16
25
  }
17
26
  export interface WsEventEmitter extends EventEmitter {
18
27
  disconnect: () => void;
@@ -11,20 +11,30 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
+ var TerminalService_1;
14
15
  Object.defineProperty(exports, "__esModule", { value: true });
15
16
  exports.TerminalService = void 0;
17
+ const node_os_1 = __importDefault(require("node:os"));
16
18
  const node_process_1 = __importDefault(require("node:process"));
17
19
  const common_1 = require("@nestjs/common");
18
20
  const fs_extra_1 = require("fs-extra");
19
21
  const config_service_1 = require("../../../core/config/config.service");
20
22
  const logger_service_1 = require("../../../core/logger/logger.service");
21
23
  const node_pty_service_1 = require("../../../core/node-pty/node-pty.service");
22
- let TerminalService = class TerminalService {
24
+ let TerminalService = TerminalService_1 = class TerminalService {
23
25
  constructor(configService, logger, nodePtyService) {
24
26
  this.configService = configService;
25
27
  this.logger = logger;
26
28
  this.nodePtyService = nodePtyService;
27
29
  this.ending = false;
30
+ this.instanceId = Math.random().toString(36).substring(2, 11);
31
+ this.logger.log(`TerminalService instance created: ${this.instanceId}`);
32
+ }
33
+ async getPreferredShell() {
34
+ if (node_os_1.default.platform() === 'darwin' && await (0, fs_extra_1.pathExists)('/bin/zsh')) {
35
+ return '/bin/zsh';
36
+ }
37
+ return await (0, fs_extra_1.pathExists)('/bin/bash') ? '/bin/bash' : '/bin/sh';
28
38
  }
29
39
  async startSession(client, size) {
30
40
  this.ending = false;
@@ -33,8 +43,17 @@ let TerminalService = class TerminalService {
33
43
  client.disconnect();
34
44
  return;
35
45
  }
36
- this.logger.log('Starting terminal session.');
37
- const shell = await (0, fs_extra_1.pathExists)('/bin/bash') ? '/bin/bash' : '/bin/sh';
46
+ const terminalPersistence = Boolean(this.configService.ui.terminalPersistence);
47
+ if (terminalPersistence) {
48
+ return this.attachToPersistentTerminal(client, size);
49
+ }
50
+ else {
51
+ return this.createNewTerminal(client, size);
52
+ }
53
+ }
54
+ async createNewTerminal(client, size) {
55
+ this.logger.log('Starting new terminal session.');
56
+ const shell = await this.getPreferredShell();
38
57
  const term = this.nodePtyService.spawn(shell, [], {
39
58
  name: 'xterm-color',
40
59
  cols: size.cols,
@@ -45,10 +64,10 @@ let TerminalService = class TerminalService {
45
64
  term.onData((data) => {
46
65
  client.emit('stdout', data);
47
66
  });
48
- term.onExit((code) => {
67
+ term.onExit((exitInfo) => {
49
68
  try {
50
69
  if (!this.ending) {
51
- client.emit('process-exit', code);
70
+ client.emit('process-exit', exitInfo.exitCode);
52
71
  }
53
72
  }
54
73
  catch (e) {
@@ -78,9 +97,140 @@ let TerminalService = class TerminalService {
78
97
  client.on('end', onEnd.bind(this));
79
98
  client.on('disconnect', onEnd.bind(this));
80
99
  }
100
+ async attachToPersistentTerminal(client, size) {
101
+ this.logger.log(`[${this.instanceId}] attachToPersistentTerminal called`);
102
+ if (!TerminalService_1.persistentTerminal) {
103
+ this.logger.log(`[${this.instanceId}] Creating new persistent terminal session.`);
104
+ const shell = await this.getPreferredShell();
105
+ TerminalService_1.persistentTerminal = this.nodePtyService.spawn(shell, [], {
106
+ name: 'xterm-color',
107
+ cols: size.cols,
108
+ rows: size.rows,
109
+ cwd: this.configService.storagePath,
110
+ env: node_process_1.default.env,
111
+ });
112
+ if (!TerminalService_1.dataListenerAttached) {
113
+ this.logger.log(`[${this.instanceId}] Attaching data listener`);
114
+ TerminalService_1.persistentTerminal.onData((data) => {
115
+ try {
116
+ this.logger.debug(`[${this.instanceId}] Terminal output: ${data.length} characters`);
117
+ TerminalService_1.terminalBuffer += data;
118
+ const maxBufferSize = this.configService.ui.terminalBufferSize;
119
+ if (TerminalService_1.terminalBuffer.length > maxBufferSize) {
120
+ TerminalService_1.terminalBuffer = TerminalService_1.terminalBuffer.slice(-maxBufferSize);
121
+ }
122
+ if (TerminalService_1.currentClient) {
123
+ this.logger.log(`[${this.instanceId}] Sending output to current client`);
124
+ TerminalService_1.currentClient.emit('stdout', data);
125
+ }
126
+ else {
127
+ this.logger.log(`[${this.instanceId}] No current client to send output to!`);
128
+ }
129
+ }
130
+ catch (e) {
131
+ this.logger.log(`[${this.instanceId}] Error sending output to client: ${e}`);
132
+ }
133
+ });
134
+ TerminalService_1.dataListenerAttached = true;
135
+ }
136
+ TerminalService_1.persistentTerminal.onExit((exitInfo) => {
137
+ this.logger.log(`[${this.instanceId}] Persistent terminal exited.`);
138
+ if (TerminalService_1.currentClient) {
139
+ try {
140
+ TerminalService_1.currentClient.emit('process-exit', exitInfo.exitCode);
141
+ }
142
+ catch (e) {
143
+ }
144
+ }
145
+ TerminalService_1.persistentTerminal = null;
146
+ TerminalService_1.currentClient = null;
147
+ TerminalService_1.dataListenerAttached = false;
148
+ TerminalService_1.terminalBuffer = '';
149
+ });
150
+ }
151
+ else {
152
+ this.logger.log(`[${this.instanceId}] Attaching to existing persistent terminal.`);
153
+ try {
154
+ TerminalService_1.persistentTerminal.resize(size.cols, size.rows);
155
+ }
156
+ catch (e) { }
157
+ }
158
+ this.logger.log(`[${this.instanceId}] Cleaning up existing client listeners`);
159
+ client.removeAllListeners('stdin');
160
+ client.removeAllListeners('resize');
161
+ this.logger.log(`[${this.instanceId}] Switching current client`);
162
+ TerminalService_1.currentClient = client;
163
+ if (TerminalService_1.terminalBuffer && TerminalService_1.terminalBuffer.length > 0) {
164
+ this.logger.log(`[${this.instanceId}] Sending ${TerminalService_1.terminalBuffer.length} chars of buffer to new client`);
165
+ try {
166
+ client.emit('stdout', TerminalService_1.terminalBuffer);
167
+ }
168
+ catch (e) {
169
+ this.logger.log(`[${this.instanceId}] Error sending buffer to client: ${e}`);
170
+ }
171
+ }
172
+ else {
173
+ this.logger.log(`[${this.instanceId}] No buffer to send to new client`);
174
+ }
175
+ this.logger.log(`[${this.instanceId}] Adding stdin and resize listeners`);
176
+ client.on('stdin', (data) => {
177
+ this.logger.debug(`[${this.instanceId}] Received stdin from client: ${data.length} characters`);
178
+ if (TerminalService_1.persistentTerminal) {
179
+ this.logger.debug(`[${this.instanceId}] Writing to persistent terminal: ${data.length} characters`);
180
+ TerminalService_1.persistentTerminal.write(data);
181
+ }
182
+ else {
183
+ this.logger.log(`[${this.instanceId}] No persistent terminal to write to!`);
184
+ }
185
+ });
186
+ client.on('resize', (resize) => {
187
+ this.logger.log(`[${this.instanceId}] Received resize from client`);
188
+ try {
189
+ if (TerminalService_1.persistentTerminal) {
190
+ TerminalService_1.persistentTerminal.resize(resize.cols, resize.rows);
191
+ }
192
+ }
193
+ catch (e) { }
194
+ });
195
+ const onEnd = () => {
196
+ this.logger.log(`[${this.instanceId}] Client disconnecting`);
197
+ client.removeAllListeners('stdin');
198
+ client.removeAllListeners('resize');
199
+ client.removeAllListeners('end');
200
+ client.removeAllListeners('disconnect');
201
+ if (TerminalService_1.currentClient === client) {
202
+ TerminalService_1.currentClient = null;
203
+ this.logger.log(`[${this.instanceId}] Cleared current client`);
204
+ }
205
+ this.logger.log(`[${this.instanceId}] Client cleanup complete`);
206
+ };
207
+ client.on('end', onEnd);
208
+ client.on('disconnect', onEnd);
209
+ }
210
+ destroyPersistentSession() {
211
+ this.logger.log(`[${this.instanceId}] Destroying persistent terminal session`);
212
+ if (TerminalService_1.persistentTerminal) {
213
+ try {
214
+ this.logger.log(`[${this.instanceId}] Killing persistent terminal process`);
215
+ TerminalService_1.persistentTerminal.kill();
216
+ }
217
+ catch (e) {
218
+ this.logger.log(`[${this.instanceId}] Error killing persistent terminal: ${e}`);
219
+ }
220
+ TerminalService_1.persistentTerminal = null;
221
+ }
222
+ TerminalService_1.terminalBuffer = '';
223
+ TerminalService_1.dataListenerAttached = false;
224
+ TerminalService_1.currentClient = null;
225
+ this.logger.log(`[${this.instanceId}] Persistent terminal session destroyed`);
226
+ }
81
227
  };
82
228
  exports.TerminalService = TerminalService;
83
- exports.TerminalService = TerminalService = __decorate([
229
+ TerminalService.persistentTerminal = null;
230
+ TerminalService.currentClient = null;
231
+ TerminalService.dataListenerAttached = false;
232
+ TerminalService.terminalBuffer = '';
233
+ exports.TerminalService = TerminalService = TerminalService_1 = __decorate([
84
234
  (0, common_1.Injectable)(),
85
235
  __metadata("design:paramtypes", [config_service_1.ConfigService,
86
236
  logger_service_1.Logger,
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.service.js","sourceRoot":"","sources":["../../../../src/modules/platform-tools/terminal/terminal.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.service.js","sourceRoot":"","sources":["../../../../src/modules/platform-tools/terminal/terminal.service.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.0.1-beta.0",
4
+ "version": "5.0.1-beta.2",
5
5
  "description": "A web based management, configuration and control platform for Homebridge.",
6
6
  "author": "oznu <dev@oz.nu>",
7
7
  "license": "MIT",
@@ -84,7 +84,7 @@
84
84
  "@fastify/static": "8.2.0",
85
85
  "@homebridge/hap-client": "3.1.0",
86
86
  "@homebridge/node-pty-prebuilt-multiarch": "0.13.1",
87
- "@nestjs/axios": "4.0.0",
87
+ "@nestjs/axios": "4.0.1",
88
88
  "@nestjs/common": "11.1.3",
89
89
  "@nestjs/core": "11.1.3",
90
90
  "@nestjs/jwt": "11.0.0",
@@ -1 +1 @@
1
- import{A,c as $,d as C,e as R,f as O,g as T,j as w,m as q,p as z,q as D,w as H,x as G,z as Q}from"./chunk-WFYBML4S.js";import{b as K}from"./chunk-2CKLKY5R.js";import{d as U}from"./chunk-GEIS2BWE.js";import{b as J}from"./chunk-4AJSXM5Z.js";import{m as W}from"./chunk-IJVDEEEM.js";import{b as j}from"./chunk-R3563DDE.js";import"./chunk-Q4CZ7LVK.js";import{Dc as f,Hc as l,Ib as u,Ic as d,Jb as c,M as I,Ob as m,Pb as r,Qb as a,Rb as s,Sc as b,Uc as V,Xa as x,ab as i,bc as E,dc as M,h as y,id as P,kc as v,la as p,lc as F,ld as B,mb as k,qc as g,rc as h,sc as L,w as S,zd as N}from"./chunk-ULJPS3WS.js";var Y=["password"],Z=["username"],ee=["otp"],te=e=>({background:e}),ie=e=>({anim:e}),X=e=>({"is-invalid":e});function ne(e,_){if(e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",13),a(),s(3,"input",14,0),l(5,"translate"),a(),r(6,"div",8)(7,"span",12),s(8,"i",15),a(),s(9,"input",16,1),l(11,"translate"),a()),e&2){let n=M();i(3),m("placeholder",d(5,4,"users.label_username"))("ngClass",f(8,X,n.form.controls.username.dirty&&n.form.controls.username.errors)),i(6),m("placeholder",d(11,6,"users.label_password"))("ngClass",f(10,X,n.form.controls.password.dirty&&n.form.controls.password.errors))}}function oe(e,_){e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",17),a(),s(3,"input",18,2),l(5,"translate"),a()),e&2&&(i(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function ae(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_credentials")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}function re(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_code")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}var _e=(()=>{class e{$auth=p(K);$cdr=p(V);$router=p(U);$settings=p(J);targetRoute;passwordInput=b("password");usernameInput=b("username");otpInput=b("otp");backgroundStyle;invalidCredentials=!1;invalid2faCode=!1;twoFactorCodeRequired=!1;inProgress=!1;form;ngOnInit(){this.form=new T({username:new w(""),password:new w("")}),this.form.valueChanges.pipe(I(500)).subscribe(n=>{let o=this.passwordInput()?.nativeElement.value;o&&o!==n.password&&this.form.controls.password.setValue(o)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}ngAfterViewChecked(){this.$cdr.detectChanges()}onSubmit(){return y(this,null,function*(){this.invalidCredentials=!1,this.invalid2faCode=!1,this.inProgress=!0,document.getElementById("submit-button")?.blur();let n=this.passwordInput()?.nativeElement.value;n&&n!==this.form.get("password").value&&this.form.controls.password.setValue(n);let o=this.usernameInput()?.nativeElement.value;if(o&&o!==this.form.get("username").value&&this.form.controls.username.setValue(o),this.twoFactorCodeRequired){let t=this.otpInput()?.nativeElement.value;t&&t!==this.form.get("otp").value&&this.form.controls.username.setValue(t)}try{yield this.$auth.login(this.form.getRawValue()),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(t){t.status===412?(this.form.controls.otp?(this.form.controls.otp.setErrors(["Invalid Code"]),this.invalid2faCode=!0):this.form.addControl("otp",new w("",[C.required,C.minLength(6),C.maxLength(6)])),this.twoFactorCodeRequired=!0,setTimeout(()=>{document.getElementById("form-ota").focus()},100)):this.invalidCredentials=!0}this.inProgress=!1})}setBackground(){return y(this,null,function*(){if(this.$settings.settingsLoaded||(yield S(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let n=`${W.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle=`url('${n}') center/cover`}})}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=k({type:e,selectors:[["ng-component"]],viewQuery:function(o,t){o&1&&(v(t.passwordInput,Y,5),v(t.usernameInput,Z,5),v(t.otpInput,ee,5)),o&2&&F(3)},decls:15,vars:18,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center",3,"ngStyle","ngClass"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","/assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-fw","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder","ngClass"],[1,"fas","fa-fw","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder","ngClass"],[1,"fas","fa-fw","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-fw","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(o,t){o&1&&(r(0,"div",3)(1,"div",4),s(2,"img",5),r(3,"form",6),E("ngSubmit",function(){return t.onSubmit()}),r(4,"h4",7),g(5),l(6,"translate"),a(),u(7,ne,12,12),u(8,oe,6,3,"div",8),u(9,ae,9,6,"div",9),u(10,re,9,6,"div",9),r(11,"div",10)(12,"button",11),g(13),l(14,"translate"),a()()()()()),o&2&&(m("ngStyle",f(14,te,t.backgroundStyle))("ngClass",f(16,ie,!t.backgroundStyle)),i(3),m("formGroup",t.form),i(2),h(d(6,10,"setup.welcome_to_homebridge")),i(2),c(t.twoFactorCodeRequired?-1:7),i(),c(t.twoFactorCodeRequired?8:-1),i(),c(t.invalidCredentials?9:-1),i(),c(t.invalid2faCode?10:-1),i(2),m("disabled",t.form.invalid),i(),L(" ",d(14,12,"form.label_continue")," "))},dependencies:[B,Q,q,$,R,O,H,G,A,z,D,P,N,j],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width: 575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return e})();export{_e as LoginComponent};
1
+ import{A,c as $,d as C,e as R,f as O,g as T,j as w,m as q,p as z,q as D,w as H,x as G,z as Q}from"./chunk-WFYBML4S.js";import{b as K}from"./chunk-VWYGP42I.js";import{d as U}from"./chunk-ZJ3JJYIN.js";import{b as J}from"./chunk-Z67O6CA3.js";import{m as W}from"./chunk-OSPJSTQS.js";import{b as j}from"./chunk-R3563DDE.js";import"./chunk-HBOWJDR5.js";import{Dc as f,Hc as l,Ib as u,Ic as d,Jb as c,M as I,Ob as m,Pb as r,Qb as a,Rb as s,Sc as b,Uc as V,Xa as x,ab as i,bc as E,dc as M,h as y,id as P,kc as v,la as p,lc as F,ld as B,mb as k,qc as g,rc as h,sc as L,w as S,zd as N}from"./chunk-ULJPS3WS.js";var Y=["password"],Z=["username"],ee=["otp"],te=e=>({background:e}),ie=e=>({anim:e}),X=e=>({"is-invalid":e});function ne(e,_){if(e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",13),a(),s(3,"input",14,0),l(5,"translate"),a(),r(6,"div",8)(7,"span",12),s(8,"i",15),a(),s(9,"input",16,1),l(11,"translate"),a()),e&2){let n=M();i(3),m("placeholder",d(5,4,"users.label_username"))("ngClass",f(8,X,n.form.controls.username.dirty&&n.form.controls.username.errors)),i(6),m("placeholder",d(11,6,"users.label_password"))("ngClass",f(10,X,n.form.controls.password.dirty&&n.form.controls.password.errors))}}function oe(e,_){e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",17),a(),s(3,"input",18,2),l(5,"translate"),a()),e&2&&(i(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function ae(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_credentials")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}function re(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_code")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}var _e=(()=>{class e{$auth=p(K);$cdr=p(V);$router=p(U);$settings=p(J);targetRoute;passwordInput=b("password");usernameInput=b("username");otpInput=b("otp");backgroundStyle;invalidCredentials=!1;invalid2faCode=!1;twoFactorCodeRequired=!1;inProgress=!1;form;ngOnInit(){this.form=new T({username:new w(""),password:new w("")}),this.form.valueChanges.pipe(I(500)).subscribe(n=>{let o=this.passwordInput()?.nativeElement.value;o&&o!==n.password&&this.form.controls.password.setValue(o)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}ngAfterViewChecked(){this.$cdr.detectChanges()}onSubmit(){return y(this,null,function*(){this.invalidCredentials=!1,this.invalid2faCode=!1,this.inProgress=!0,document.getElementById("submit-button")?.blur();let n=this.passwordInput()?.nativeElement.value;n&&n!==this.form.get("password").value&&this.form.controls.password.setValue(n);let o=this.usernameInput()?.nativeElement.value;if(o&&o!==this.form.get("username").value&&this.form.controls.username.setValue(o),this.twoFactorCodeRequired){let t=this.otpInput()?.nativeElement.value;t&&t!==this.form.get("otp").value&&this.form.controls.username.setValue(t)}try{yield this.$auth.login(this.form.getRawValue()),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(t){t.status===412?(this.form.controls.otp?(this.form.controls.otp.setErrors(["Invalid Code"]),this.invalid2faCode=!0):this.form.addControl("otp",new w("",[C.required,C.minLength(6),C.maxLength(6)])),this.twoFactorCodeRequired=!0,setTimeout(()=>{document.getElementById("form-ota").focus()},100)):this.invalidCredentials=!0}this.inProgress=!1})}setBackground(){return y(this,null,function*(){if(this.$settings.settingsLoaded||(yield S(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let n=`${W.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle=`url('${n}') center/cover`}})}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=k({type:e,selectors:[["ng-component"]],viewQuery:function(o,t){o&1&&(v(t.passwordInput,Y,5),v(t.usernameInput,Z,5),v(t.otpInput,ee,5)),o&2&&F(3)},decls:15,vars:18,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center",3,"ngStyle","ngClass"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","/assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-fw","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder","ngClass"],[1,"fas","fa-fw","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder","ngClass"],[1,"fas","fa-fw","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-fw","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(o,t){o&1&&(r(0,"div",3)(1,"div",4),s(2,"img",5),r(3,"form",6),E("ngSubmit",function(){return t.onSubmit()}),r(4,"h4",7),g(5),l(6,"translate"),a(),u(7,ne,12,12),u(8,oe,6,3,"div",8),u(9,ae,9,6,"div",9),u(10,re,9,6,"div",9),r(11,"div",10)(12,"button",11),g(13),l(14,"translate"),a()()()()()),o&2&&(m("ngStyle",f(14,te,t.backgroundStyle))("ngClass",f(16,ie,!t.backgroundStyle)),i(3),m("formGroup",t.form),i(2),h(d(6,10,"setup.welcome_to_homebridge")),i(2),c(t.twoFactorCodeRequired?-1:7),i(),c(t.twoFactorCodeRequired?8:-1),i(),c(t.invalidCredentials?9:-1),i(),c(t.invalid2faCode?10:-1),i(2),m("disabled",t.form.invalid),i(),L(" ",d(14,12,"form.label_continue")," "))},dependencies:[B,Q,q,$,R,O,H,G,A,z,D,P,N,j],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width: 575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return e})();export{_e as LoginComponent};
@@ -1 +1 @@
1
- import{g as i}from"./chunk-GEIS2BWE.js";import"./chunk-Q4CZ7LVK.js";import{ha as t,nb as e}from"./chunk-ULJPS3WS.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",loadChildren:()=>import("./chunk-YUBK6BVK.js").then(o=>o.DockerModule)},{path:"linux",loadChildren:()=>import("./chunk-LM66QCFN.js").then(o=>o.LinuxModule)},{path:"terminal",loadChildren:()=>import("./chunk-7NKVE7MW.js").then(o=>o.TerminalModule)}],l=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i.forChild(d),i]})}return o})();var p=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[l]})}return o})();export{p as PlatformToolsModule};
1
+ import{g as i}from"./chunk-ZJ3JJYIN.js";import"./chunk-HBOWJDR5.js";import{ha as t,nb as e}from"./chunk-ULJPS3WS.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",loadChildren:()=>import("./chunk-O3ER4CVM.js").then(o=>o.DockerModule)},{path:"linux",loadChildren:()=>import("./chunk-ESCXE7UI.js").then(o=>o.LinuxModule)},{path:"terminal",loadChildren:()=>import("./chunk-LHLZ3D2L.js").then(o=>o.TerminalModule)}],l=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i.forChild(d),i]})}return o})();var p=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[l]})}return o})();export{p as PlatformToolsModule};
@@ -1 +1 @@
1
- import{d as u,g as s}from"./chunk-GEIS2BWE.js";import{k as l,n as d}from"./chunk-IJVDEEEM.js";import{a as p}from"./chunk-R3563DDE.js";import"./chunk-Q4CZ7LVK.js";import{ga as c,h as f,ha as i,la as e,nb as n,w as m}from"./chunk-ULJPS3WS.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-VAZOOXJZ.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
+ import{d as u,g as s}from"./chunk-ZJ3JJYIN.js";import{k as l,n as d}from"./chunk-OSPJSTQS.js";import{a as p}from"./chunk-R3563DDE.js";import"./chunk-HBOWJDR5.js";import{ga as c,h as f,ha as i,la as e,nb as n,w as m}from"./chunk-ULJPS3WS.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-MQZSXKH5.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 se}from"./chunk-YKDYWWHU.js";import{a as te,b as ie,c as ne}from"./chunk-YJ2Q2RAD.js";import{c as re}from"./chunk-BWV3SD3Z.js";import"./chunk-7HL2NUIE.js";import{a as le}from"./chunk-THGDS273.js";import{m as V,n as Z,t as ee}from"./chunk-C3HWKB2Q.js";import{c as G,e as J,f as K,i as Q,l as U,m as X,z as Y}from"./chunk-WFYBML4S.js";import"./chunk-TXNH42IW.js";import{b as ae}from"./chunk-2CKLKY5R.js";import"./chunk-GEIS2BWE.js";import{b as oe}from"./chunk-4AJSXM5Z.js";import"./chunk-IJVDEEEM.js";import{b as E}from"./chunk-R3563DDE.js";import"./chunk-Q4CZ7LVK.js";import{Cc as R,Dc as $,Ec as j,Hb as C,Hc as a,Ib as w,Ic as r,Jb as S,Jc as z,Lb as P,Mb as L,Nb as N,Ob as _,Pb as s,Qb as l,Rb as f,Sb as u,Tb as b,Ub as A,Xa as W,_b as D,ab as o,bc as v,cc as H,dc as m,id as q,la as x,mb as M,qc as c,ra as y,rc as p,sa as h,sc as k,xc as T,yc as B,zc as I}from"./chunk-ULJPS3WS.js";var ce=(()=>{class t{$activeModal=x(V);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=M({type:t,selectors:[["ng-component"]],decls:41,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&&(u(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),a(5,"translate"),b(),u(6,"button",3),a(7,"translate"),H("click",function(){return n.dismissModal()}),b()(),u(8,"div",4)(9,"div",5),A(10,"i",6),b(),u(11,"h5",7),c(12),a(13,"translate"),b(),u(14,"ul",8)(15,"li"),c(16),a(17,"translate"),b(),u(18,"li"),c(19),a(20,"translate"),b()(),u(21,"h5",9),c(22),a(23,"translate"),b(),u(24,"ul",8)(25,"li"),c(26),a(27,"translate"),b(),u(28,"li"),c(29),a(30,"translate"),b(),u(31,"li"),c(32),a(33,"translate"),b()()(),u(34,"div",10),A(35,"div",11),u(36,"div",12)(37,"button",13),H("click",function(){return n.dismissModal()}),c(38),a(39,"translate"),b()(),A(40,"div",14),b()()()),i&2&&(o(4),p(r(5,10,"support.title")),o(2),C("aria-label",r(7,12,"form.button_close")),o(6),p(r(13,14,"accessories.title_accessories")),o(4),p(r(17,16,"accessories.support.acc_1")),o(3),p(r(20,18,"accessories.support.acc_2")),o(3),p(r(23,20,"accessories.title_rooms")),o(4),p(r(27,22,"accessories.support.rooms_1")),o(3),p(r(30,24,"accessories.support.rooms_2")),o(3),p(r(33,26,"accessories.support.rooms_3")),o(6),k(" ",r(39,28,"form.button_close")," "))},dependencies:[E],encapsulation:2})}return t})();var pe=()=>({standalone:!0}),de=(()=>{class t{$activeModal=x(V);roomName;dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(e){this.$activeModal.close(e)}static \u0275fac=function(i){return new(i||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-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&&(s(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),a(5,"translate"),l(),s(6,"button",3),a(7,"translate"),v("click",function(){return n.dismissModal()}),l()(),s(8,"div",4)(9,"div",5),f(10,"i",6),l(),s(11,"ul",7)(12,"li",8)(13,"label",9),c(14),a(15,"translate"),l(),s(16,"div",10)(17,"input",11),I("ngModelChange",function(F){return B(n.roomName,F)||(n.roomName=F),F}),v("keyup.enter",function(){return n.closeModal(n.roomName)}),l()()()()(),s(18,"div",12)(19,"div",13)(20,"button",14),v("click",function(){return n.dismissModal()}),c(21),a(22,"translate"),l()(),f(23,"div",15),s(24,"div",16)(25,"button",17),v("click",function(){return n.closeModal(n.roomName)}),c(26),a(27,"translate"),l()()()()()),i&2&&(o(4),p(r(5,8,"accessories.button_add_room")),o(2),C("aria-label",r(7,10,"form.button_close")),o(8),p(r(15,12,"accessories.room_name")),o(3),T("ngModel",n.roomName),_("ngModelOptions",R(18,pe)),o(4),k(" ",r(22,14,"form.button_close")," "),o(4),_("disabled",!n.roomName),o(),k(" ",r(27,16,"form.button_save")," "))},dependencies:[Y,X,G,J,K,U,Q,E],encapsulation:2})}return t})();var me=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=M({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&&(u(0,"div",0),A(1,"i",1),u(2,"div",2),c(3),a(4,"translate"),b()()),i&2&&(o(3),p(r(4,1,"accessories.control.drag_here")))},dependencies:[E],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var ue=(t,g)=>({"fa-eye":t,"fa-eye-slash":g}),_e=t=>({"cursor-move":t}),be=t=>({"justify-content-between":t}),fe=t=>({link:t});function ge(t,g){if(t&1&&(s(0,"div",0)(1,"div",19)(2,"h5",20),c(3),a(4,"translate"),l()()()),t&2){let e=m().$implicit,i=m(2);o(2),_("ngClass",$(4,_e,!i.isMobile)),o(),k(" ",e.name==="Default Room"?r(4,2,"accessories.control.default_room"):e.name," ")}}function ve(t,g){if(t&1&&(s(0,"div",23),f(1,"app-accessory-tile",24),l()),t&2){let e=m().$implicit;o(),_("service",e)}}function xe(t,g){if(t&1&&w(0,ve,2,1,"div",23),t&2){let e=g.$implicit,i=m(4);S(!i.hideHidden||!e.hidden?0:-1)}}function Ce(t,g){if(t&1){let e=D();s(0,"div",21),I("dragulaModelChange",function(n){y(e);let d=m().$implicit;return B(d.services,n)||(d.services=n),h(n)}),L(1,xe,1,1,null,null,P),f(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),l()}if(t&2){let e=m().$implicit,i=m(2);_("ngClass",$(3,be,i.isMobile))("dragula","services-bag"),T("dragulaModel",e.services),o(),N(e.services)}}function ye(t,g){if(t&1){let e=D();s(0,"div",25),I("dragulaModelChange",function(n){y(e);let d=m().$implicit;return B(d.services,n)||(d.services=n),h(n)}),f(1,"app-drag-here-placeholder",26),l()}if(t&2){let e=m().$implicit;_("dragula","services-bag"),T("dragulaModel",e.services)}}function he(t,g){if(t&1&&(s(0,"div"),w(1,ge,5,6,"div",0),s(2,"div",16),w(3,Ce,13,5,"div",17),w(4,ye,2,2,"div",18),l()()),t&2){let e=g.$implicit,i=m(2);o(),S(!i.isMobile||e.services.length?1:-1),o(2),S(e.services.length?3:-1),o(),S(!e.services.length&&!i.isMobile?4:-1)}}function Me(t,g){if(t&1){let e=D();s(0,"div",1)(1,"div",2)(2,"h3",3),c(3),a(4,"translate"),l()(),s(5,"div",4)(6,"button",5),a(7,"translate"),v("click",function(){y(e);let n=m();return h(n.openSupport())}),f(8,"i",6),l()(),s(9,"div",7)(10,"button",8),a(11,"translate"),a(12,"translate"),v("click",function(){y(e);let n=m();return h(n.addRoom())}),f(13,"i",9),l(),s(14,"button",8),a(15,"translate"),a(16,"translate"),a(17,"translate"),a(18,"translate"),v("click",function(){y(e);let n=m();return h(n.hideHidden=!n.hideHidden)}),f(19,"i",10),l(),s(20,"div",11)(21,"button",12),a(22,"translate"),a(23,"translate"),v("click",function(){y(e);let n=m();return h(n.toggleLayoutLock())}),f(24,"i",13),l(),s(25,"button",12),a(26,"translate"),a(27,"translate"),v("click",function(){y(e);let n=m();return h(n.toggleLayoutLock())}),f(28,"i",14),l()(),s(29,"button",5),a(30,"translate"),v("click",function(){y(e);let n=m();return h(n.openSupport())}),f(31,"i",6),l()()(),s(32,"div",15),I("dragulaModelChange",function(n){y(e);let d=m();return B(d.$accessories.rooms,n)||(d.$accessories.rooms=n),h(n)}),L(33,he,5,3,"div",null,P),l()}if(t&2){let e=m();o(3),p(r(4,18,"accessories.title_accessories")),o(3),C("aria-label",r(7,20,"support.title")),o(4),_("hidden",e.isMobile)("ngbTooltip",r(11,22,"accessories.button_add_room")),C("aria-label",r(12,24,"accessories.button_add_room")),o(4),_("hidden",e.isMobile)("ngbTooltip",e.hideHidden?r(15,26,"accessories.button_hidden_show"):r(16,28,"accessories.button_hidden_hide")),C("aria-label",e.hideHidden?r(17,30,"accessories.button_hidden_show"):r(18,32,"accessories.button_hidden_hide")),o(5),_("ngClass",j(44,ue,!e.hideHidden,e.hideHidden)),o(2),_("disabled",!e.isMobile)("ngbTooltip",r(22,34,"form.button_unlock")),C("aria-label",r(23,36,"form.button_unlock")),o(4),_("disabled",e.isMobile)("ngbTooltip",r(26,38,"form.button_lock")),C("aria-label",r(27,40,"form.button_lock")),o(4),C("aria-label",r(30,42,"support.title")),o(3),_("dragula","rooms-bag"),T("dragulaModel",e.$accessories.rooms),o(),N(e.$accessories.rooms)}}function Ee(t,g){t&1&&(s(0,"p",33),c(1),a(2,"translate"),l()),t&2&&(o(),p(r(2,1,"accessories.settings_link")))}function we(t,g){if(t&1&&(s(0,"div",0)(1,"div",27)(2,"h3",28),c(3),a(4,"translate"),l()(),s(5,"div",29)(6,"div",30)(7,"h5",31),c(8),a(9,"translate"),l(),f(10,"p",32),a(11,"translate"),w(12,Ee,3,3,"p",33),l()()()),t&2){let e=m();o(3),p(r(4,4,"accessories.title_accessories")),o(5),p(r(9,6,"accessories.control_disabled")),o(2),_("innerHTML",z(11,8,"accessories.message_must_use_insecure_mode",$(11,fe,e.linkInsecure)),W),o(2),S(e.isAdmin?12:-1)}}var it=(()=>{class t{$accessories=x(re);$auth=x(ae);dragulaService=x(te);$modal=x(Z);$settings=x(oe);$md=x(le);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=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-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","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","hidden","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","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0",3,"click","disabled","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&&w(0,Me,35,47)(1,we,13,13,"div",0),i&2&&S(n.enableAccessories?0:1)},dependencies:[ee,q,ne,ie,se,me,E],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{it as AccessoriesComponent};
1
+ import{a as se}from"./chunk-V5GJWRGM.js";import{a as te,b as ie,c as ne}from"./chunk-YJ2Q2RAD.js";import{c as re}from"./chunk-6XTRFODH.js";import"./chunk-HPEQJKCI.js";import{a as le}from"./chunk-THGDS273.js";import{m as V,n as Z,t as ee}from"./chunk-C3HWKB2Q.js";import{c as G,e as J,f as K,i as Q,l as U,m as X,z as Y}from"./chunk-WFYBML4S.js";import"./chunk-SKLKIXRS.js";import{b as ae}from"./chunk-VWYGP42I.js";import"./chunk-ZJ3JJYIN.js";import{b as oe}from"./chunk-Z67O6CA3.js";import"./chunk-OSPJSTQS.js";import{b as E}from"./chunk-R3563DDE.js";import"./chunk-HBOWJDR5.js";import{Cc as R,Dc as $,Ec as j,Hb as C,Hc as a,Ib as w,Ic as r,Jb as S,Jc as z,Lb as P,Mb as L,Nb as N,Ob as _,Pb as s,Qb as l,Rb as f,Sb as u,Tb as b,Ub as A,Xa as W,_b as D,ab as o,bc as v,cc as H,dc as m,id as q,la as x,mb as M,qc as c,ra as y,rc as p,sa as h,sc as k,xc as T,yc as B,zc as I}from"./chunk-ULJPS3WS.js";var ce=(()=>{class t{$activeModal=x(V);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=M({type:t,selectors:[["ng-component"]],decls:41,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&&(u(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),a(5,"translate"),b(),u(6,"button",3),a(7,"translate"),H("click",function(){return n.dismissModal()}),b()(),u(8,"div",4)(9,"div",5),A(10,"i",6),b(),u(11,"h5",7),c(12),a(13,"translate"),b(),u(14,"ul",8)(15,"li"),c(16),a(17,"translate"),b(),u(18,"li"),c(19),a(20,"translate"),b()(),u(21,"h5",9),c(22),a(23,"translate"),b(),u(24,"ul",8)(25,"li"),c(26),a(27,"translate"),b(),u(28,"li"),c(29),a(30,"translate"),b(),u(31,"li"),c(32),a(33,"translate"),b()()(),u(34,"div",10),A(35,"div",11),u(36,"div",12)(37,"button",13),H("click",function(){return n.dismissModal()}),c(38),a(39,"translate"),b()(),A(40,"div",14),b()()()),i&2&&(o(4),p(r(5,10,"support.title")),o(2),C("aria-label",r(7,12,"form.button_close")),o(6),p(r(13,14,"accessories.title_accessories")),o(4),p(r(17,16,"accessories.support.acc_1")),o(3),p(r(20,18,"accessories.support.acc_2")),o(3),p(r(23,20,"accessories.title_rooms")),o(4),p(r(27,22,"accessories.support.rooms_1")),o(3),p(r(30,24,"accessories.support.rooms_2")),o(3),p(r(33,26,"accessories.support.rooms_3")),o(6),k(" ",r(39,28,"form.button_close")," "))},dependencies:[E],encapsulation:2})}return t})();var pe=()=>({standalone:!0}),de=(()=>{class t{$activeModal=x(V);roomName;dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(e){this.$activeModal.close(e)}static \u0275fac=function(i){return new(i||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-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&&(s(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),a(5,"translate"),l(),s(6,"button",3),a(7,"translate"),v("click",function(){return n.dismissModal()}),l()(),s(8,"div",4)(9,"div",5),f(10,"i",6),l(),s(11,"ul",7)(12,"li",8)(13,"label",9),c(14),a(15,"translate"),l(),s(16,"div",10)(17,"input",11),I("ngModelChange",function(F){return B(n.roomName,F)||(n.roomName=F),F}),v("keyup.enter",function(){return n.closeModal(n.roomName)}),l()()()()(),s(18,"div",12)(19,"div",13)(20,"button",14),v("click",function(){return n.dismissModal()}),c(21),a(22,"translate"),l()(),f(23,"div",15),s(24,"div",16)(25,"button",17),v("click",function(){return n.closeModal(n.roomName)}),c(26),a(27,"translate"),l()()()()()),i&2&&(o(4),p(r(5,8,"accessories.button_add_room")),o(2),C("aria-label",r(7,10,"form.button_close")),o(8),p(r(15,12,"accessories.room_name")),o(3),T("ngModel",n.roomName),_("ngModelOptions",R(18,pe)),o(4),k(" ",r(22,14,"form.button_close")," "),o(4),_("disabled",!n.roomName),o(),k(" ",r(27,16,"form.button_save")," "))},dependencies:[Y,X,G,J,K,U,Q,E],encapsulation:2})}return t})();var me=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=M({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&&(u(0,"div",0),A(1,"i",1),u(2,"div",2),c(3),a(4,"translate"),b()()),i&2&&(o(3),p(r(4,1,"accessories.control.drag_here")))},dependencies:[E],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var ue=(t,g)=>({"fa-eye":t,"fa-eye-slash":g}),_e=t=>({"cursor-move":t}),be=t=>({"justify-content-between":t}),fe=t=>({link:t});function ge(t,g){if(t&1&&(s(0,"div",0)(1,"div",19)(2,"h5",20),c(3),a(4,"translate"),l()()()),t&2){let e=m().$implicit,i=m(2);o(2),_("ngClass",$(4,_e,!i.isMobile)),o(),k(" ",e.name==="Default Room"?r(4,2,"accessories.control.default_room"):e.name," ")}}function ve(t,g){if(t&1&&(s(0,"div",23),f(1,"app-accessory-tile",24),l()),t&2){let e=m().$implicit;o(),_("service",e)}}function xe(t,g){if(t&1&&w(0,ve,2,1,"div",23),t&2){let e=g.$implicit,i=m(4);S(!i.hideHidden||!e.hidden?0:-1)}}function Ce(t,g){if(t&1){let e=D();s(0,"div",21),I("dragulaModelChange",function(n){y(e);let d=m().$implicit;return B(d.services,n)||(d.services=n),h(n)}),L(1,xe,1,1,null,null,P),f(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),l()}if(t&2){let e=m().$implicit,i=m(2);_("ngClass",$(3,be,i.isMobile))("dragula","services-bag"),T("dragulaModel",e.services),o(),N(e.services)}}function ye(t,g){if(t&1){let e=D();s(0,"div",25),I("dragulaModelChange",function(n){y(e);let d=m().$implicit;return B(d.services,n)||(d.services=n),h(n)}),f(1,"app-drag-here-placeholder",26),l()}if(t&2){let e=m().$implicit;_("dragula","services-bag"),T("dragulaModel",e.services)}}function he(t,g){if(t&1&&(s(0,"div"),w(1,ge,5,6,"div",0),s(2,"div",16),w(3,Ce,13,5,"div",17),w(4,ye,2,2,"div",18),l()()),t&2){let e=g.$implicit,i=m(2);o(),S(!i.isMobile||e.services.length?1:-1),o(2),S(e.services.length?3:-1),o(),S(!e.services.length&&!i.isMobile?4:-1)}}function Me(t,g){if(t&1){let e=D();s(0,"div",1)(1,"div",2)(2,"h3",3),c(3),a(4,"translate"),l()(),s(5,"div",4)(6,"button",5),a(7,"translate"),v("click",function(){y(e);let n=m();return h(n.openSupport())}),f(8,"i",6),l()(),s(9,"div",7)(10,"button",8),a(11,"translate"),a(12,"translate"),v("click",function(){y(e);let n=m();return h(n.addRoom())}),f(13,"i",9),l(),s(14,"button",8),a(15,"translate"),a(16,"translate"),a(17,"translate"),a(18,"translate"),v("click",function(){y(e);let n=m();return h(n.hideHidden=!n.hideHidden)}),f(19,"i",10),l(),s(20,"div",11)(21,"button",12),a(22,"translate"),a(23,"translate"),v("click",function(){y(e);let n=m();return h(n.toggleLayoutLock())}),f(24,"i",13),l(),s(25,"button",12),a(26,"translate"),a(27,"translate"),v("click",function(){y(e);let n=m();return h(n.toggleLayoutLock())}),f(28,"i",14),l()(),s(29,"button",5),a(30,"translate"),v("click",function(){y(e);let n=m();return h(n.openSupport())}),f(31,"i",6),l()()(),s(32,"div",15),I("dragulaModelChange",function(n){y(e);let d=m();return B(d.$accessories.rooms,n)||(d.$accessories.rooms=n),h(n)}),L(33,he,5,3,"div",null,P),l()}if(t&2){let e=m();o(3),p(r(4,18,"accessories.title_accessories")),o(3),C("aria-label",r(7,20,"support.title")),o(4),_("hidden",e.isMobile)("ngbTooltip",r(11,22,"accessories.button_add_room")),C("aria-label",r(12,24,"accessories.button_add_room")),o(4),_("hidden",e.isMobile)("ngbTooltip",e.hideHidden?r(15,26,"accessories.button_hidden_show"):r(16,28,"accessories.button_hidden_hide")),C("aria-label",e.hideHidden?r(17,30,"accessories.button_hidden_show"):r(18,32,"accessories.button_hidden_hide")),o(5),_("ngClass",j(44,ue,!e.hideHidden,e.hideHidden)),o(2),_("disabled",!e.isMobile)("ngbTooltip",r(22,34,"form.button_unlock")),C("aria-label",r(23,36,"form.button_unlock")),o(4),_("disabled",e.isMobile)("ngbTooltip",r(26,38,"form.button_lock")),C("aria-label",r(27,40,"form.button_lock")),o(4),C("aria-label",r(30,42,"support.title")),o(3),_("dragula","rooms-bag"),T("dragulaModel",e.$accessories.rooms),o(),N(e.$accessories.rooms)}}function Ee(t,g){t&1&&(s(0,"p",33),c(1),a(2,"translate"),l()),t&2&&(o(),p(r(2,1,"accessories.settings_link")))}function we(t,g){if(t&1&&(s(0,"div",0)(1,"div",27)(2,"h3",28),c(3),a(4,"translate"),l()(),s(5,"div",29)(6,"div",30)(7,"h5",31),c(8),a(9,"translate"),l(),f(10,"p",32),a(11,"translate"),w(12,Ee,3,3,"p",33),l()()()),t&2){let e=m();o(3),p(r(4,4,"accessories.title_accessories")),o(5),p(r(9,6,"accessories.control_disabled")),o(2),_("innerHTML",z(11,8,"accessories.message_must_use_insecure_mode",$(11,fe,e.linkInsecure)),W),o(2),S(e.isAdmin?12:-1)}}var it=(()=>{class t{$accessories=x(re);$auth=x(ae);dragulaService=x(te);$modal=x(Z);$settings=x(oe);$md=x(le);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=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-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","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","hidden","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","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0",3,"click","disabled","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&&w(0,Me,35,47)(1,we,13,13,"div",0),i&2&&S(n.enableAccessories?0:1)},dependencies:[ee,q,ne,ie,se,me,E],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{it as AccessoriesComponent};