homebridge-config-ui-x 5.0.0-beta.1 → 5.0.0-beta.3

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 (135) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/package.json +3 -3
  3. package/public/3rdpartylicenses.txt +551 -551
  4. package/public/chunk-2OBHR63W.js +1 -0
  5. package/public/chunk-3C6WVST7.js +1 -0
  6. package/public/chunk-3IX3CLER.js +1 -0
  7. package/public/chunk-5ALXJOLQ.js +1 -0
  8. package/public/chunk-5LVGHH2N.js +1 -0
  9. package/public/chunk-6PHMBMFU.js +1 -0
  10. package/public/chunk-6TCHCTXZ.js +1 -0
  11. package/public/chunk-7456RB3C.js +1 -0
  12. package/public/chunk-76S7LYCL.js +1 -0
  13. package/public/chunk-77A3OZ74.js +1 -0
  14. package/public/chunk-7EANS226.js +1 -0
  15. package/public/chunk-7EUQWCP5.js +2 -0
  16. package/public/chunk-7L7RZCFC.js +8 -0
  17. package/public/chunk-ASX35H47.js +1 -0
  18. package/public/chunk-AVJ6EUEE.js +1 -0
  19. package/public/chunk-AX23H5TL.js +1 -0
  20. package/public/chunk-AZXQ73I5.js +1 -0
  21. package/public/chunk-BFDVOBTQ.js +1 -0
  22. package/public/{chunk-THFLPY67.js → chunk-BKUGARB4.js} +1 -1
  23. package/public/chunk-BMXAHMY6.js +1 -0
  24. package/public/chunk-BPMSJ2VF.js +1 -0
  25. package/public/{chunk-GNQUXZMN.js → chunk-CCUID66K.js} +1 -1
  26. package/public/chunk-CW7Q7WEJ.js +1 -0
  27. package/public/chunk-DDXIRKVB.js +1 -0
  28. package/public/chunk-DNOJWLVY.js +1 -0
  29. package/public/chunk-DZY2Q3FG.js +1 -0
  30. package/public/chunk-EA5J2VEJ.js +1 -0
  31. package/public/chunk-FX4GQIE4.js +32 -0
  32. package/public/chunk-GVDR7ZRB.js +1 -0
  33. package/public/chunk-HSJSWZHD.js +1 -0
  34. package/public/chunk-I7ZKPCIW.js +1 -0
  35. package/public/chunk-IPZ4P5DE.js +1 -0
  36. package/public/chunk-IW3EPSTZ.js +23 -0
  37. package/public/chunk-IWYEH4T6.js +1 -0
  38. package/public/chunk-JL6S5IIU.js +1 -0
  39. package/public/chunk-JZZQRLNW.js +1 -0
  40. package/public/chunk-KIJWUGXX.js +1 -0
  41. package/public/chunk-KO3WJGGG.js +1 -0
  42. package/public/chunk-KQJ7ONUG.js +1 -0
  43. package/public/chunk-KTDJZCFW.js +1 -0
  44. package/public/chunk-LDPCT3YF.js +5 -0
  45. package/public/chunk-MHYIZZN4.js +1 -0
  46. package/public/chunk-MOV2HTCQ.js +1 -0
  47. package/public/chunk-NF4NIS42.js +1 -0
  48. package/public/chunk-NW6AFAD7.js +1 -0
  49. package/public/chunk-NZNNTHFQ.js +1 -0
  50. package/public/chunk-O75YP3SB.js +1 -0
  51. package/public/chunk-ODPTCLGS.js +1 -0
  52. package/public/chunk-ORPWYWCL.js +5 -0
  53. package/public/chunk-Q5URFHBE.js +1 -0
  54. package/public/chunk-QE7DO6J3.js +8 -0
  55. package/public/chunk-QHPDGSZ6.js +1 -0
  56. package/public/chunk-QLWY5NWN.js +1 -0
  57. package/public/chunk-QRZNMAFL.js +1 -0
  58. package/public/chunk-RHB2T3FE.js +1 -0
  59. package/public/chunk-RMI35HIS.js +1 -0
  60. package/public/chunk-RO4QXVDE.js +1 -0
  61. package/public/chunk-RWZRB2OY.js +1 -0
  62. package/public/chunk-S62KH3FN.js +6 -0
  63. package/public/chunk-S6EMLS5Q.js +1 -0
  64. package/public/chunk-SVFFEV36.js +1 -0
  65. package/public/chunk-T2YVB4SI.js +1 -0
  66. package/public/chunk-TCSXGQNF.js +1 -0
  67. package/public/chunk-TXOB7R5K.js +7 -0
  68. package/public/chunk-U6ORTLYL.js +1 -0
  69. package/public/chunk-UG5DK2RQ.js +2 -0
  70. package/public/chunk-UJU3NPS7.js +1 -0
  71. package/public/chunk-UYZI56PX.js +1 -0
  72. package/public/chunk-UZU6PLTW.js +1 -0
  73. package/public/chunk-UZW3DWH4.js +1 -0
  74. package/public/chunk-VMXGERJT.js +14 -0
  75. package/public/chunk-VOBHY2IH.js +4 -0
  76. package/public/chunk-WHJOLAED.js +1 -0
  77. package/public/chunk-WHJSVGC7.js +1 -0
  78. package/public/chunk-WMB35VCS.js +1 -0
  79. package/public/{chunk-6QEO3BTW.js → chunk-WNWWUCCZ.js} +14 -14
  80. package/public/chunk-WT2GX4NS.js +1 -0
  81. package/public/chunk-XH6GEPB6.js +1 -0
  82. package/public/chunk-ZLPCX4R4.js +1 -0
  83. package/public/chunk-ZT23DWNL.js +1 -0
  84. package/public/chunk-ZY7HKZ4P.js +20 -0
  85. package/public/index.html +2 -2
  86. package/public/main-ILTX7GFO.js +1 -0
  87. package/public/media/fa-brands-400-6U3GU5Y7.woff2 +0 -0
  88. package/public/media/{fa-brands-400-CNBICIQT.ttf → fa-brands-400-MVB2B5XM.ttf} +0 -0
  89. package/public/media/{fa-regular-400-2FI4ICQD.ttf → fa-regular-400-EGQOOADX.ttf} +0 -0
  90. package/public/media/fa-regular-400-R5EOMW4H.woff2 +0 -0
  91. package/public/media/fa-solid-900-W65KEJAS.woff2 +0 -0
  92. package/public/media/{fa-solid-900-XVWCCN5V.ttf → fa-solid-900-ZUDIWQL5.ttf} +0 -0
  93. package/public/{polyfills-CE2SNIQF.js → polyfills-C6JHVXJJ.js} +2 -2
  94. package/public/prerendered-routes.json +3 -0
  95. package/public/styles-GDLSHXGD.css +1 -0
  96. package/public/chunk-3KSUXL3K.js +0 -20
  97. package/public/chunk-422JXES4.js +0 -23
  98. package/public/chunk-4R6MSI5I.js +0 -14
  99. package/public/chunk-5UYN5OWH.js +0 -1
  100. package/public/chunk-7564WJJL.js +0 -1
  101. package/public/chunk-7R6JSPNH.js +0 -1
  102. package/public/chunk-B6C32ZRK.js +0 -1
  103. package/public/chunk-B6G7GTDI.js +0 -1
  104. package/public/chunk-BQLALGZ5.js +0 -4
  105. package/public/chunk-BROUJ7PT.js +0 -1
  106. package/public/chunk-C4OONTE3.js +0 -1
  107. package/public/chunk-DOLYKWZH.js +0 -1
  108. package/public/chunk-DRWF7R4E.js +0 -1
  109. package/public/chunk-F22FMU37.js +0 -1
  110. package/public/chunk-FBP5C7VG.js +0 -1
  111. package/public/chunk-FPOZAQLC.js +0 -5
  112. package/public/chunk-IGUSDGD6.js +0 -8
  113. package/public/chunk-JM7QCDMZ.js +0 -1
  114. package/public/chunk-K3YXRBTH.js +0 -1
  115. package/public/chunk-K6TZNXIW.js +0 -1
  116. package/public/chunk-LS7T2AVU.js +0 -8
  117. package/public/chunk-NZPTOWFC.js +0 -20
  118. package/public/chunk-RID7V4NP.js +0 -1
  119. package/public/chunk-RIWBPQF3.js +0 -1
  120. package/public/chunk-S4SOWUAW.js +0 -1
  121. package/public/chunk-SJTXTMYT.js +0 -2
  122. package/public/chunk-T5QVI4H2.js +0 -1
  123. package/public/chunk-TBJQ2Y3M.js +0 -1
  124. package/public/chunk-TS27NWVA.js +0 -20
  125. package/public/chunk-VROGSJLF.js +0 -1
  126. package/public/chunk-VVILZWTF.js +0 -1
  127. package/public/chunk-WCDFKYP6.js +0 -5
  128. package/public/chunk-WCQIGCXO.js +0 -1
  129. package/public/chunk-Z47RP4BH.js +0 -1
  130. package/public/chunk-ZEONO5N6.js +0 -1
  131. package/public/main-VTRWQ63R.js +0 -6
  132. package/public/media/fa-brands-400-MDS4TU4L.woff2 +0 -0
  133. package/public/media/fa-regular-400-N56QV3DR.woff2 +0 -0
  134. package/public/media/fa-solid-900-Z3HFQTXF.woff2 +0 -0
  135. package/public/styles-7ETWN6DQ.css +0 -1
@@ -0,0 +1 @@
1
+ import{e as a}from"./chunk-T2YVB4SI.js";import"./chunk-QE7DO6J3.js";import"./chunk-ORPWYWCL.js";import"./chunk-QHPDGSZ6.js";import"./chunk-NZNNTHFQ.js";import"./chunk-BFDVOBTQ.js";import"./chunk-SVFFEV36.js";import"./chunk-CW7Q7WEJ.js";import"./chunk-UG5DK2RQ.js";import"./chunk-3IX3CLER.js";import"./chunk-TXOB7R5K.js";export{a as UsersComponent};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-KTDJZCFW.js";import"./chunk-ORPWYWCL.js";import"./chunk-QHPDGSZ6.js";import"./chunk-NZNNTHFQ.js";import"./chunk-SVFFEV36.js";import"./chunk-CW7Q7WEJ.js";import"./chunk-UG5DK2RQ.js";import"./chunk-3IX3CLER.js";import"./chunk-TXOB7R5K.js";export{a as PowerOptionsComponent};
@@ -0,0 +1 @@
1
+ import{c as Q,d as x,e as z,f as D,g as H,j as w,m as j,p as A,q as W,w as U,y as J,z as K}from"./chunk-QHPDGSZ6.js";import{d as G}from"./chunk-NZNNTHFQ.js";import{c as q}from"./chunk-BFDVOBTQ.js";import{b as T}from"./chunk-SVFFEV36.js";import{a as P}from"./chunk-CW7Q7WEJ.js";import{b as O}from"./chunk-3IX3CLER.js";import{Bc as l,Cc as p,Gb as v,Kb as S,M as k,Mb as m,Rb as c,Wb as a,Xb as r,Yb as h,ad as R,cc as $,dc as I,gd as N,h as y,ib as i,kc as C,lc as L,na as g,nc as s,oc as d,pc as B,rb as M,w as V,xc as f}from"./chunk-TXOB7R5K.js";var X=["password"],Y=["username"],Z=["otp"],ee=e=>({background:e}),F=e=>({"is-invalid":e});function te(e,_){if(e&1&&(a(0,"div")(1,"div",10),h(2,"i",11)(3,"input",12,0),a(5,"label",13),s(6),l(7,"translate"),r()(),a(8,"div",10),h(9,"i",14)(10,"input",15,1),a(12,"label",16),s(13),l(14,"translate"),r()()()),e&2){let t=I();i(3),m("ngClass",f(8,F,t.form.controls.username.dirty&&t.form.controls.username.errors)),i(3),d(p(7,4,"login.label_username")),i(4),m("ngClass",f(10,F,t.form.controls.password.dirty&&t.form.controls.password.errors)),i(3),d(p(14,6,"login.label_password"))}}function ne(e,_){if(e&1&&(a(0,"div")(1,"p",7),s(2),l(3,"translate"),r(),a(4,"div",10),h(5,"i",17)(6,"input",18,2),a(8,"label",19),s(9),l(10,"translate"),r()()()),e&2){let t=I();i(2),d(p(3,3,"users.setup_2fa_enter_code")),i(4),m("ngClass",f(7,F,t.form.controls.otp.dirty&&t.form.controls.otp.errors)),i(3),d(p(10,5,"login.label_2fa_code"))}}function ie(e,_){e&1&&(a(0,"p",8)(1,"small"),s(2),l(3,"translate"),r()()),e&2&&(i(2),d(p(3,1,"login.invalid_credentials")))}function oe(e,_){e&1&&(a(0,"p",8)(1,"small"),s(2),l(3,"translate"),r()()),e&2&&(i(2),d(p(3,1,"login.message_invalid_2fa_code")))}var Ce=(()=>{class e{$auth=g(q);$router=g(G);$settings=g(T);passwordInput=v("password");usernameInput=v("username");otpInput=v("otp");form;backgroundStyle;invalidCredentials=!1;invalid2faCode=!1;twoFactorCodeRequired=!1;inProgress=!1;targetRoute;ngOnInit(){this.form=new H({username:new w(""),password:new w("")}),this.form.valueChanges.pipe(k(500)).subscribe(t=>{var n;let o=(n=this.passwordInput())==null?void 0:n.nativeElement.value;o&&o!==t.password&&this.form.controls.password.setValue(o)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}setBackground(){return y(this,null,function*(){if(this.$settings.settingsLoaded||(yield V(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let t=this.$settings.env.customWallpaperHash?`${P.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`:"/assets/snapshot.jpg";this.backgroundStyle=`url('${t}') center/cover`}})}onSubmit(){return y(this,null,function*(){var n,b,E;this.invalidCredentials=!1,this.invalid2faCode=!1,this.inProgress=!0;let t=(n=this.passwordInput())==null?void 0:n.nativeElement.value;t&&t!==this.form.get("password").value&&this.form.controls.password.setValue(t);let o=(b=this.usernameInput())==null?void 0:b.nativeElement.value;if(o&&o!==this.form.get("username").value&&this.form.controls.username.setValue(o),this.twoFactorCodeRequired){let u=(E=this.otpInput())==null?void 0:E.nativeElement.value;u&&u!==this.form.get("otp").value&&this.form.controls.username.setValue(u)}yield this.$auth.login(this.form.getRawValue()).then(()=>{this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}).catch(u=>{u.status===412?(this.form.controls.otp?(this.form.controls.otp.setErrors(["Invalid Code"]),this.invalid2faCode=!0):this.form.addControl("otp",new w("",[x.required,x.minLength(6),x.maxLength(6)])),this.twoFactorCodeRequired=!0,setTimeout(()=>{document.getElementById("form-ota").focus()},100)):this.invalidCredentials=!0}),this.inProgress=!1})}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=M({type:e,selectors:[["ng-component"]],viewQuery:function(o,n){o&1&&(C(n.passwordInput,X,5),C(n.usernameInput,Y,5),C(n.otpInput,Z,5)),o&2&&L(3)},decls:13,vars:12,consts:[["username",""],["password",""],["otp",""],[1,"login-container","d-flex","align-items-center","justify-content-center",3,"ngStyle"],[1,"card","card-body","mx-2","login-card"],["novalidate","",3,"ngSubmit","formGroup"],[1,"h4","text-center","mb-4"],[1,"text-center"],[1,"red-text"],["tabindex","3","type","submit",1,"btn","btn-primary",3,"disabled"],[1,"md-form"],[1,"fas","fa-fw","fa-user","prefix","grey-text"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1",1,"form-control","px-0",3,"ngClass"],["for","form-username"],[1,"fas","fa-fw","fa-lock","prefix","grey-text"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2",1,"form-control","px-0",3,"ngClass"],["for","form-pass"],[1,"fas","fa-fw","fa-key","prefix","grey-text"],["formControlName","otp","type","text","id","form-ota","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","px-0",3,"ngClass"],["for","form-ota"]],template:function(o,n){o&1&&(a(0,"div",3)(1,"div",4)(2,"form",5),$("ngSubmit",function(){return n.onSubmit()}),a(3,"p",6),s(4,"Homebridge"),r(),S(5,te,15,12,"div")(6,ne,11,9,"div"),a(7,"div",7),S(8,ie,4,3,"p",8)(9,oe,4,3,"p",8),a(10,"button",9),s(11),l(12,"translate"),r()()()()()),o&2&&(m("ngStyle",f(10,ee,n.backgroundStyle)),i(2),m("formGroup",n.form),i(3),c(n.twoFactorCodeRequired?-1:5),i(),c(n.twoFactorCodeRequired?6:-1),i(2),c(n.invalidCredentials?8:-1),i(),c(n.invalid2faCode?9:-1),i(),m("disabled",n.form.invalid),i(),B(" ",p(12,8,"login.button_login")," "))},dependencies:[N,J,j,Q,z,D,U,K,A,W,R,O],styles:[".login-container[_ngcontent-%COMP%]{background-color:#f4f4f4;background-size:cover;position:absolute;top:0;bottom:0;right:0;left:0}.login-card[_ngcontent-%COMP%]{max-width:500px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (min-height: 800px){.login-card[_ngcontent-%COMP%]{margin-bottom:12em}}.login-logo[_ngcontent-%COMP%]{position:absolute;top:-35%;z-index:2000;max-width:450px}@media screen and (max-width: 450px){.login-logo[_ngcontent-%COMP%]{max-width:320px;top:-25%}}@media screen and (max-width: 320px){.login-logo[_ngcontent-%COMP%]{max-width:280px}}@media screen and (max-height: 450px){.login-logo[_ngcontent-%COMP%]{display:none}}"]})}return e})();export{Ce as a};
@@ -0,0 +1 @@
1
+ import{g as N,m as C}from"./chunk-ORPWYWCL.js";import{b as h}from"./chunk-3IX3CLER.js";import{Bc as a,Cc as r,Dc as x,Kb as w,Lb as c,Mb as g,Rb as k,Tb as E,Ub as I,Vb as B,Wb as t,Xb as n,Yb as m,ad as T,cc as u,dc as M,eb as S,ib as e,na as _,nc as l,oc as d,pc as f,qc as P,rb as v,xc as y}from"./chunk-TXOB7R5K.js";var O=i=>({pluginName:i});function j(i,D){i&1&&(t(0,"ul",9)(1,"li"),l(2),a(3,"translate"),n(),t(4,"li",16),l(5),a(6,"translate"),n()()),i&2&&(e(2),d(r(3,2,"plugins.manage.confirm_disable_accessory_1")),e(3),d(r(6,4,"plugins.manage.confirm_disable_accessory_2")))}function A(i,D){i&1&&(t(0,"ul",9)(1,"li"),l(2),a(3,"translate"),n(),t(4,"li",16),l(5),a(6,"translate"),n()()),i&2&&(e(2),d(r(3,2,"plugins.manage.confirm_disable_platform_1")),e(3),d(r(6,4,"plugins.manage.confirm_disable_platform_2")))}var J=(()=>{class i{$activeModal=_(C);pluginName;isConfigured=!1;isConfiguredDynamicPlatform=!1;static \u0275fac=function(s){return new(s||i)};static \u0275cmp=v({type:i,selectors:[["ng-component"]],inputs:{pluginName:"pluginName",isConfigured:"isConfigured",isConfiguredDynamicPlatform:"isConfiguredDynamicPlatform"},decls:28,vars:25,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body","w-100","text-center"],[1,"fas","fa-fw","fa-circle-pause","primary-text","mb-4",2,"font-size","75px"],["type","warning",3,"dismissible"],[1,"w-100","text-center","mb-0"],[1,"mb-0","text-left"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"click"],[1,"mb-0"]],template:function(s,o){s&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),l(3),a(4,"translate"),n(),t(5,"button",3),a(6,"translate"),u("click",function(){return o.$activeModal.dismiss("Dismiss")}),t(7,"span",4),l(8,"\xD7"),n()()(),t(9,"div",5),m(10,"i",6),t(11,"ngb-alert",7)(12,"p",8),l(13),a(14,"translate"),n()(),w(15,j,7,6,"ul",9)(16,A,7,6,"ul",9),n(),t(17,"div",10)(18,"div",11)(19,"button",12),a(20,"translate"),u("click",function(){return o.$activeModal.dismiss("Dismiss")}),l(21),a(22,"translate"),n()(),m(23,"div",13),t(24,"div",14)(25,"button",15),u("click",function(){return o.$activeModal.close()}),l(26),a(27,"translate"),n()()()()),s&2&&(e(3),P("",r(4,10,"plugins.manage.disable"),": ",o.pluginName,""),e(2),c("aria-label",r(6,12,"form.button_close")),e(6),g("dismissible",!1),e(2),d(x(14,14,"plugins.manage.confirm_disable",y(23,O,o.pluginName))),e(2),k(o.isConfigured&&!o.isConfiguredDynamicPlatform?15:-1),e(),k(o.isConfigured&&o.isConfiguredDynamicPlatform?16:-1),e(3),c("aria-label",r(20,17,"form.button_close")),e(2),f(" ",r(22,19,"form.button_close")," "),e(5),f(" ",r(27,21,"plugins.manage.disable")," "))},dependencies:[N,h],encapsulation:2})}return i})();var F=i=>({author:i});function z(i,D){if(i&1&&(t(0,"li",10),m(1,"i",16),t(2,"a",17),l(3),n()()),i&2){let p=D.$implicit,s=M();e(),g("ngClass",s.getIconClass(p.type)),e(),g("href",p.url,S),e(),d(p.url)}}var Z=(()=>{class i{$activeModal=_(C);plugin;fundingOptions;ngOnInit(){this.plugin.funding||this.$activeModal.close(),this.plugin.name==="homebridge-config-ui-x"&&(this.plugin.author="oznu"),Array.isArray(this.plugin.funding)?this.fundingOptions=this.plugin.funding.map(p=>{if(typeof p=="string")return{type:"other",url:p};if(typeof p=="object")return{type:p.type||"other",url:p.url}}):typeof this.plugin.funding=="string"?this.fundingOptions=[{type:"other",url:this.plugin.funding}]:typeof this.plugin.funding=="object"&&(this.fundingOptions=[{type:this.plugin.funding.type||"other",url:this.plugin.funding.url}])}getIconClass(p){switch(p.toLowerCase()){case"paypal":return"fab fa-fw fa-paypal";case"github":return"fab fa-fw fa-github";case"patreon":return"fab fa-fw fa-patreon";case"kofi":case"ko-fi":return"fas fa-fw fa-coffee";default:return"fas fa-fw fa-link"}}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=v({type:i,selectors:[["ng-component"]],inputs:{plugin:"plugin"},decls:29,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"w-100","text-center","pink-text","mb-4"],[1,"fas","fa-fw","fa-heart",2,"font-size","75px"],[1,"w-100","text-center"],[1,"list-group"],[1,"list-group-item"],[1,"modal-footer","justify-content-between"],[1,"text-left"],[1,"text-center"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-right"],[1,"mr-2","primary-text","fa-fw",3,"ngClass"],["target","_blank","rel","noopener noreferrer",1,"text-break-all","grey-text",3,"href"]],template:function(s,o){s&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),l(3),a(4,"translate"),n(),t(5,"button",3),a(6,"translate"),u("click",function(){return o.$activeModal.dismiss("Dismiss")}),t(7,"span",4),l(8,"\xD7"),n()()(),t(9,"div",5)(10,"div",6),m(11,"i",7),n(),t(12,"p",8),l(13),a(14,"translate"),n(),t(15,"p",8),l(16),a(17,"translate"),n(),t(18,"ul",9),I(19,z,4,3,"li",10,E),n()(),t(21,"div",11),m(22,"div",12),t(23,"div",13)(24,"button",14),a(25,"translate"),u("click",function(){return o.$activeModal.dismiss("Dismiss")}),l(26),a(27,"translate"),n()(),m(28,"div",15),n()()),s&2&&(e(3),f(" ",x(4,6,"plugins.donate.tile_donate_to",y(19,F,o.plugin.author?"@"+o.plugin.author:o.plugin.name))," "),e(2),c("aria-label",r(6,9,"form.button_close")),e(8),d(r(14,11,"plugins.donate.message_1")),e(3),d(r(17,13,"plugins.donate.message_2")),e(3),B(o.fundingOptions),e(5),c("aria-label",r(25,15,"form.button_close")),e(2),f(" ",r(27,17,"form.button_close")," "))},dependencies:[T,h],styles:[".text-break-all[_ngcontent-%COMP%]{word-break:break-all}"]})}return i})();export{J as a,Z as b};
@@ -0,0 +1,20 @@
1
+ import{a as ee}from"./chunk-EA5J2VEJ.js";import{a as Q,b as ne}from"./chunk-VMXGERJT.js";import{a as X,b as Z}from"./chunk-7EUQWCP5.js";import{a as G}from"./chunk-JZZQRLNW.js";import{m as U,n as W,o as Y}from"./chunk-ORPWYWCL.js";import{c as q,e as z,l as J,y as K}from"./chunk-QHPDGSZ6.js";import{b as F}from"./chunk-NZNNTHFQ.js";import{b as N}from"./chunk-SVFFEV36.js";import{b as k,j as V}from"./chunk-CW7Q7WEJ.js";import{a as T,b as M}from"./chunk-3IX3CLER.js";import{$b as C,Bc as l,Cc as c,Dc as O,Kb as w,Lb as y,Mb as v,Rb as g,Tb as I,Ub as H,Vb as j,Wb as r,Xb as a,Yb as _,cc as h,dc as d,g as oe,h as S,ib as n,kd as L,na as m,nc as b,oc as x,pb as D,pc as $,rb as E,sc as P,tc as R,uc as B,w as A,xa as p,ya as f}from"./chunk-TXOB7R5K.js";function ae(o,u){o&1&&(r(0,"div",6),_(1,"i",14),a())}function se(o,u){if(o&1){let e=C();r(0,"tr")(1,"td",15),b(2),l(3,"date"),a(),r(4,"td",16)(5,"a",17),h("click",function(){let t=p(e).$implicit,s=d(2);return f(s.restore(t.id))}),b(6),l(7,"translate"),_(8,"i",18),a()()()}if(o&2){let e=u.$implicit;n(2),x(O(3,2,e.timestamp,"medium")),n(4),$(" ",c(7,5,"config.restore.copy_to_editor")," ")}}function le(o,u){if(o&1&&(r(0,"table",7)(1,"tbody"),H(2,se,9,7,"tr",null,I),a()()),o&2){let e=d();n(2),j(e.backupList)}}function de(o,u){o&1&&(r(0,"div")(1,"h3",11),b(2),l(3,"translate"),a()()),o&2&&(n(2),x(c(3,1,"config.restore.no_backups")))}function ce(o,u){if(o&1){let e=C();r(0,"button",19),l(1,"translate"),h("click",function(){p(e);let t=d();return f(t.deleteAllBackups())}),b(2),l(3,"translate"),a()}o&2&&(y("aria-label",c(1,2,"form.button_remove")),n(2),$(" ",c(3,4,"form.button_remove")," "))}var te=(()=>{class o{$activeModal=m(U);$api=m(k);$toastr=m(V);$translate=m(T);loading=!0;backupList=[];ngOnInit(){this.$api.get("/config-editor/backups").subscribe({next:e=>{this.loading=!1,this.backupList=e},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}restore(e){return this.$activeModal.close(e)}deleteAllBackups(){return this.$api.delete("/config-editor/backups").subscribe({next:()=>{this.$activeModal.dismiss(),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success"))},error:e=>{console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=E({type:o,selectors:[["ng-component"]],decls:22,vars:16,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","primary-text"],[1,"table","table-borderless","table-hover","table-sm"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button",1,"btn","btn-danger","mr-auto"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"w-100"],["nowrap",""],[1,"card-link",3,"click"],[1,"fas","fa-fw","fa-arrow-right"],["type","button",1,"btn","btn-danger","mr-auto",3,"click"]],template:function(i,t){i&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),b(3),l(4,"translate"),a(),r(5,"button",3),l(6,"translate"),h("click",function(){return t.$activeModal.dismiss("Dismiss")}),r(7,"span",4),b(8,"\xD7"),a()()(),r(9,"div",5),w(10,ae,2,0,"div",6)(11,le,4,0,"table",7)(12,de,4,3,"div"),a(),r(13,"div",8)(14,"div",9)(15,"button",10),l(16,"translate"),h("click",function(){return t.$activeModal.dismiss("Dismiss")}),b(17),l(18,"translate"),a()(),_(19,"div",11),r(20,"div",12),w(21,ce,4,6,"button",13),a()()()),i&2&&(n(3),x(c(4,8,"config.restore.title_restore_homebridge_backup")),n(2),y("aria-label",c(6,10,"form.button_close")),n(5),g(t.loading?10:-1),n(),g(!t.loading&&t.backupList&&t.backupList.length?11:-1),n(),g(!t.loading&&(!t.backupList||!t.backupList.length)?12:-1),n(3),y("aria-label",c(16,12,"form.button_close")),n(2),$(" ",c(18,14,"form.button_close")," "),n(4),g(!t.loading&&t.backupList.length?21:-1))},dependencies:[L,M],encapsulation:2})}return o})();var ie=oe(ne(),1);function me(o,u){if(o&1){let e=C();r(0,"button",13),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onExportConfig())}),_(3,"i",14),a()}o&2&&(v("ngbTooltip",c(1,2,"form.button_download")),y("aria-label",c(2,4,"form.button_download")))}function pe(o,u){if(o&1){let e=C();r(0,"button",15),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onCancelRestore())}),_(3,"i",16),a()}if(o&2){let e=d();v("disabled",e.saveInProgress)("ngbTooltip",c(1,3,"form.button_cancel")),y("aria-label",c(2,5,"form.button_cancel"))}}function fe(o,u){if(o&1){let e=C();r(0,"button",13),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onRestore())}),_(3,"i",17),a()}o&2&&(v("ngbTooltip",c(1,2,"form.button_restore")),y("aria-label",c(2,4,"form.button_restore")))}function ge(o,u){o&1&&_(0,"i",8)}function ue(o,u){o&1&&_(0,"i",9)}function he(o,u){if(o&1){let e=C();r(0,"ngx-monaco-editor",18),h("onInit",function(t){p(e);let s=d();return f(s.onEditorInit(t))})("keydown.control.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())})("keydown.meta.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())}),a()}if(o&2){let e=d();v("options",e.editorOptions)("model",e.monacoEditorModel)}}function be(o,u){if(o&1){let e=C();r(0,"ngx-monaco-diff-editor",19),h("onInit",function(t){p(e);let s=d();return f(s.onInitDiffEditor(t))})("keydown.control.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())})("keydown.meta.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())}),a()}if(o&2){let e=d();v("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function _e(o,u){if(o&1){let e=C();r(0,"textarea",20),B("ngModelChange",function(t){p(e);let s=d();return R(s.homebridgeConfig,t)||(s.homebridgeConfig=t),f(t)}),b(1," "),a()}if(o&2){let e=d();P("ngModel",e.homebridgeConfig)}}var qe=(()=>{class o{$api=m(k);$md=m(G);$modal=m(W);$monacoEditor=m(ee);$route=m(F);$renderer=m(D);$settings=m(N);$toastr=m(V);$translate=m(T);homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;editorDecorations=[];lastHeight;visualViewPortEventCallback;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0};let e=document.querySelector(".content");this.$renderer.setStyle(e,"height","100%"),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(i=>{this.homebridgeConfig=i.config}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.subscribe({next:()=>{this.setMonacoEditorModel()}})}onEditorInit(e){window.editor=e,this.monacoEditor=e,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(e){this.monacoEditor=e.modifiedEditor,e.getModel().original.setValue(this.originalConfig),e.getModel().modified.setValue(this.homebridgeConfig),window.editor=e}onSave(){return S(this,null,function*(){if(!this.saveInProgress){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress=!0;try{if(!this.isMobile){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let i=window.monaco.editor.getModelMarkers({owner:"json"});for(let t of i)if(t.message==="Duplicate object key"){this.saveInProgress=!1,this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig=this.monacoEditor.getModel().getValue()}let e=this.parseConfigFromEditor();this.homebridgeConfig=JSON.stringify(e,null,4),typeof e.bridge!="object"?this.$toastr.error(this.$translate.instant("config.config_bridge_missing"),this.$translate.instant("toast.title_error")):/^(?:[0-9A-F]{2}:){5}[0-9A-F]{2}$/i.test(e.bridge.username)?e.accessories&&!Array.isArray(e.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&!Array.isArray(e.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&Array.isArray(e.platforms)&&!this.validateSection(e.platforms,"platform")||e.accessories&&Array.isArray(e.accessories)&&!this.validateSection(e.accessories,"accessory")||e.plugins&&Array.isArray(e.plugins)&&!this.validatePlugins(e.plugins,"plugins")||e.disabledPlugins&&Array.isArray(e.disabledPlugins)&&!this.validatePlugins(e.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(e),this.originalConfig=""):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch{let i=ie.default.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(i,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),i}}saveConfig(e){return S(this,null,function*(){try{let i=yield A(this.$api.post("/config-editor",e));this.homebridgeConfig=JSON.stringify(i,null,4),this.$modal.open(Q,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error"))}})}onRestore(){this.$modal.open(te,{size:"lg",backdrop:"static"}).result.then(e=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${e}`).subscribe({next:i=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(i,null,4),this.monacoEditor&&window.editor.modifiedEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[]),this.monacoEditor.executeEdits("beautifier",[{identifier:"delete",range:new monaco.Range(1,1,this.monacoEditor.getModel().getLineCount()+10,1),text:"",forceMoveMarkers:!0}]),this.monacoEditor.executeEdits("beautifier",[{identifier:"insert",range:new monaco.Range(1,1,1,1),text:this.homebridgeConfig,forceMoveMarkers:!0}]))},error:i=>{console.error(i),this.$toastr.error(i.error.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onExportConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.homebridgeConfig)}`,i=document.createElement("a");i.setAttribute("href",e),i.setAttribute("download","config.json"),document.body.appendChild(i),i.click(),i.remove()}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig=""}validateSection(e,i){for(let t of e){if(typeof t!="object"||Array.isArray(t))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(!t[i])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(typeof t[i]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1}return!0}validatePlugins(e,i){for(let t of e)if(typeof t!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:i}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
2
+ `).map(i=>` ${i}`).join(`
3
+ `),setTimeout(()=>{let i=this.monacoEditor.getModel().findMatches(e);if(i.length){let t=i[0].range,s=new monaco.Range(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn);this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[{range:s,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}},200))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(i=>i.uri==="http://homebridge/config.json"))return;let e=monaco.Uri.parse("a://homebridge/config.json");window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({allowComments:!1,validate:!0,schemas:[{uri:"http://homebridge/config.json",fileMatch:[e.toString()],schema:{type:"object",required:["bridge"],properties:{bridge:{type:"object",required:["name","username","port","pin"],properties:{name:{type:"string",description:`The Homebridge instance name.
4
+ This should be unique if you are running multiple instances of Homebridge.`,default:"Homebridge"},username:{type:"string",description:`Homebridge username must be 6 pairs of colon-separated hexadecimal characters (A-F 0-9).
5
+ You should change this pin if you need to re-pair your instance with HomeKit.
6
+ Example: 0E:89:49:64:91:86`,default:"0E:89:49:64:91:86",pattern:"^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$"},port:{type:"number",description:`The port Homebridge listens on.
7
+ If running more than one instance of Homebridge on the same server make sure each instance is given a unique port.`,default:51173,minimum:1025,maximum:65534},pin:{type:"string",description:`The Homebridge instance pin.
8
+ This is used when pairing Homebridge to HomeKit.
9
+ Example: 630-27-655`,default:"630-27-655",pattern:"^([0-9]{3}-[0-9]{2}-[0-9]{3})$"},manufacturer:{type:"string",description:"The bridge manufacturer to be displayed in HomeKit"},firmwareRevision:{type:"string",description:"The bridge firmware version to be displayed in HomeKit"},model:{type:"string",description:"The bridge model to be displayed in HomeKit"},bind:{description:`A string or an array of strings with the name(s) of the network interface(s) Homebridge should bind to.
10
+
11
+ Requires Homebridge v1.3 or later.`,type:["string","array"],items:{type:"string",description:"Network Interface name that Homebridge should bind to."}}},default:{name:"Homebridge",username:"0E:89:49:64:91:86",port:51173,pin:"6302-7655"}},mdns:{type:"object",properties:{interface:{type:"string",description:`The interface or IP address of the interface you want Homebridge to listen on. This is useful if your server has multiple interfaces.
12
+
13
+ Depreciated as of Homebridge v1.3.0 - use bridge.bind instead.`},legacyAdvertiser:{type:"boolean",description:"Set to `false` to use the new mdns library, ciao."}},default:{legacyAdvertiser:!1}},plugins:{type:"array",description:"An array of plugins that should be selectively enabled. Remove this array to enable all plugins.",items:{type:"string",description:`The full plugin npm package name.
14
+ Example: homebridge-dummy`},default:["homebridge-config-ui-x"]},disabledPlugins:{type:"array",description:`An array of plugins that should be disabled.
15
+
16
+ Requires Homebridge v1.3 or later.`,items:{type:"string",description:`The full plugin npm package name.
17
+ Example: homebridge-dummy`},default:[]},ports:{type:"object",description:"The range of ports that should be used for certain accessories like cameras and TVs",required:["start","end"],properties:{start:{type:"number",default:52100,minimum:1025,maximum:65534},end:{type:"number",default:52150,minimum:1025,maximum:65534}},default:{start:52100,end:52150}},platforms:{type:"array",description:`Any plugin that exposes a platform should have it's config entered in this array.
18
+ Separate each plugin config block using a comma.`,items:{type:"object",required:["platform"],anyOf:[{type:"object",required:["platform"],properties:{platform:{type:"string",description:"This is used by Homebridge to identify which plugin this platform belongs to.",not:{enum:["config"]}},name:{type:"string",description:"The name of the platform."}}},{type:"object",properties:{platform:{type:"string",description:`Homebridge UI platform name must be set to "config".
19
+ Do Not Change!`,oneOf:[{enum:"config"}]},name:{type:"string",description:"The name used in the Homebridge log."}}}]}},accessories:{type:"array",description:`Any plugin that exposes an accessory should have it's config entered in this array.
20
+ Separate each plugin config block using a comma.`,items:{type:"object",required:["accessory","name"],properties:{accessory:{type:"string",description:"This is used by Homebridge to identify which plugin this accessory belongs to."},name:{type:"string",description:"The name of the accessory."}}}}}}}]}),this.monacoEditorModel.uri=monaco.Uri.parse("a://homebridge/config.json")}visualViewPortChanged(){this.lastHeight<window.visualViewport.height&&document.activeElement.blur(),window.visualViewport.height<window.innerHeight?(this.$md.enableTouchMove(),this.lastHeight=window.visualViewport.height):window.visualViewport.height===window.innerHeight&&(this.$md.disableTouchMove(),this.lastHeight=window.visualViewport.height)}ngOnDestroy(){let e=document.querySelector(".content");this.$renderer.removeStyle(e,"height"),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=E({type:o,selectors:[["ng-component"]],decls:18,vars:18,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-right"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0",3,"ngbTooltip"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-danger","waves-effect","my-0",3,"disabled","ngbTooltip"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","mr-0",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-floppy-disk"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"options","model"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"options","originalModel","modifiedModel"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-3",3,"ngModel"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-danger","waves-effect","my-0",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-times"],[1,"fas","fa-fw","fa-history"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"onInit","keydown.control.s","keydown.meta.s","options","originalModel","modifiedModel"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-3",3,"ngModelChange","ngModel"]],template:function(i,t){i&1&&(r(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),b(4),l(5,"translate"),a()(),r(6,"div",4),w(7,me,4,6,"button",5)(8,pe,4,7,"button",6)(9,fe,4,6,"button",5),r(10,"button",7),l(11,"translate"),l(12,"translate"),h("click",function(){return t.onSave()}),w(13,ge,1,0,"i",8)(14,ue,1,0,"i",9),a()()(),w(15,he,1,2,"ngx-monaco-editor",10)(16,be,1,3,"ngx-monaco-diff-editor",11)(17,_e,2,1,"textarea",12),a()),i&2&&(n(4),x(c(5,12,"menu.config_json_editor")),n(3),g(t.originalConfig?-1:7),n(),g(t.originalConfig?8:-1),n(),g(t.originalConfig?-1:9),n(),v("disabled",t.saveInProgress)("ngbTooltip",c(11,14,"form.button_save")),y("aria-label",c(12,16,"form.button_save")),n(3),g(t.saveInProgress?-1:13),n(),g(t.saveInProgress?14:-1),n(),g(!t.isMobile&&!t.originalConfig?15:-1),n(),g(!t.isMobile&&t.originalConfig?16:-1),n(),g(t.isMobile?17:-1))},dependencies:[Y,X,Z,K,q,z,J,M],encapsulation:2})}return o})();export{qe as a};
package/public/index.html CHANGED
@@ -16,9 +16,9 @@
16
16
  <link rel="manifest" href="/assets/manifest.webmanifest"/>
17
17
  <meta name="theme-color" content="#140a33" media="(prefers-color-scheme: light)"/>
18
18
  <meta name="theme-color" content="#0f0f0f" media="(prefers-color-scheme: dark)"/>
19
- <link rel="stylesheet" href="styles-7ETWN6DQ.css" crossorigin="use-credentials"></head>
19
+ <link rel="stylesheet" href="styles-GDLSHXGD.css" crossorigin="use-credentials"></head>
20
20
 
21
21
  <body>
22
22
  <app-root></app-root>
23
- <link rel="modulepreload" href="chunk-FPOZAQLC.js"><link rel="modulepreload" href="chunk-5UYN5OWH.js"><link rel="modulepreload" href="chunk-DOLYKWZH.js"><link rel="modulepreload" href="chunk-BROUJ7PT.js"><link rel="modulepreload" href="chunk-VROGSJLF.js"><link rel="modulepreload" href="chunk-422JXES4.js"><link rel="modulepreload" href="chunk-K3YXRBTH.js"><link rel="modulepreload" href="chunk-3KSUXL3K.js"><link rel="modulepreload" href="chunk-4R6MSI5I.js"><link rel="modulepreload" href="chunk-SJTXTMYT.js"><script src="polyfills-CE2SNIQF.js" type="module" crossorigin="use-credentials"></script><script src="scripts-6GVLYD7F.js" defer crossorigin="use-credentials"></script><script src="main-VTRWQ63R.js" type="module" crossorigin="use-credentials"></script></body>
23
+ <link rel="modulepreload" href="chunk-NF4NIS42.js"><link rel="modulepreload" href="chunk-IW3EPSTZ.js"><link rel="modulepreload" href="chunk-EA5J2VEJ.js"><link rel="modulepreload" href="chunk-MOV2HTCQ.js"><link rel="modulepreload" href="chunk-ZLPCX4R4.js"><link rel="modulepreload" href="chunk-5ALXJOLQ.js"><link rel="modulepreload" href="chunk-S62KH3FN.js"><link rel="modulepreload" href="chunk-LDPCT3YF.js"><link rel="modulepreload" href="chunk-Q5URFHBE.js"><link rel="modulepreload" href="chunk-WHJSVGC7.js"><script src="polyfills-C6JHVXJJ.js" type="module" crossorigin="use-credentials"></script><script src="scripts-6GVLYD7F.js" defer crossorigin="use-credentials"></script><script src="main-ILTX7GFO.js" type="module" crossorigin="use-credentials"></script></body>
24
24
  </html>