homebridge-config-ui-x 4.52.4-beta.21 → 4.52.4-beta.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "homebridge-config-ui-x",
3
3
  "displayName": "Homebridge UI",
4
- "version": "4.52.4-beta.21",
4
+ "version": "4.52.4-beta.23",
5
5
  "description": "A web based management, configuration and control platform for Homebridge.",
6
6
  "license": "MIT",
7
7
  "author": "oznu <dev@oz.nu>",
@@ -60,14 +60,14 @@
60
60
  "@fastify/swagger": "8.12.0",
61
61
  "@homebridge/node-pty-prebuilt-multiarch": "0.11.11",
62
62
  "@nestjs/axios": "3.0.1",
63
- "@nestjs/common": "10.2.8",
64
- "@nestjs/core": "10.2.8",
63
+ "@nestjs/common": "10.2.9",
64
+ "@nestjs/core": "10.2.9",
65
65
  "@nestjs/jwt": "10.2.0",
66
66
  "@nestjs/passport": "10.0.2",
67
- "@nestjs/platform-fastify": "10.2.8",
68
- "@nestjs/platform-socket.io": "10.2.8",
67
+ "@nestjs/platform-fastify": "10.2.9",
68
+ "@nestjs/platform-socket.io": "10.2.9",
69
69
  "@nestjs/swagger": "7.1.16",
70
- "@nestjs/websockets": "10.2.8",
70
+ "@nestjs/websockets": "10.2.9",
71
71
  "@oznu/hap-client": "1.9.0",
72
72
  "axios": "1.6.2",
73
73
  "class-transformer": "0.5.1",
@@ -93,7 +93,7 @@
93
93
  "unzipper": "0.10.14"
94
94
  },
95
95
  "devDependencies": {
96
- "@nestjs/testing": "^10.2.7",
96
+ "@nestjs/testing": "^10.2.9",
97
97
  "@types/fs-extra": "^11.0.4",
98
98
  "@types/jest": "^29.5.8",
99
99
  "@types/lodash": "^4.14.201",
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkui=self.webpackChunkui||[]).push([[585],{92585:(yn,h,l)=>{l.r(h),l.d(h,{PluginsModule:()=>vn});var g=l(36895),r=l(24006),p=l(8304),u=l(54463),f=l(57750),d=l(15861),n=l(94650),m=l(79274),b=l(45417),_=l(97185),Z=l(48703),C=l(81862),P=l(49355),x=l(20778),v=l(77579),w=l(76726);const T=["pluginlogoutput"];let I=(()=>{class i{constructor(t,e,o,s,c){this.activeModal=t,this.$api=e,this.$log=o,this.$toastr=s,this.$translate=c,this.resizeEvent=new v.x}ngOnInit(){this.getPluginLog()}onWindowResize(){this.resizeEvent.next(void 0)}getPluginLog(){console.log(this.plugin),this.$api.get(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`).subscribe(t=>{this.$log.startTerminal(this.termTarget,{},this.resizeEvent,"homebridge-config-ui-x"===this.plugin.name?"Homebridge UI":t[0]?.name||this.plugin.name)},t=>{this.$toastr.error(`${t.error.message||t.message}`,this.$translate.instant("toast.title_error")),this.activeModal.dismiss()})}ngOnDestroy(){this.$log.destroyTerminal()}}return i.\u0275fac=function(t){return new(t||i)(n.Y36(p.Kz),n.Y36(m.s),n.Y36(w.$),n.Y36(_._W),n.Y36(u.sK))},i.\u0275cmp=n.Xpm({type:i,selectors:[["app-plugin-log-modal"]],viewQuery:function(t,e){if(1&t&&n.Gf(T,7),2&t){let o;n.iGM(o=n.CRH())&&(e.termTarget=o.first)}},hostBindings:function(t,e){1&t&&n.NdJ("resize",function(s){return e.onWindowResize(s)},!1,n.Jf7)},inputs:{plugin:"plugin"},decls:10,vars:1,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal","aria-label","Close",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body","d-flex","flex-row","flex-grow-1","w-100","p-0"],[1,"w-100","bg-black","plugin-log-output","terminal","align-self-end","w-100","h-100","mb-0","p-2"],["pluginlogoutput",""]],template:function(t,e){1&t&&(n.TgZ(0,"div",0)(1,"div",1)(2,"h5",2),n._uU(3),n.qZA(),n.TgZ(4,"button",3),n.NdJ("click",function(){return e.activeModal.dismiss("Dismiss")}),n.TgZ(5,"span",4),n._uU(6,"\xd7"),n.qZA()()(),n.TgZ(7,"div",5),n._UZ(8,"div",6,7),n.qZA()()),2&t&&(n.xp6(3),n.hij("Logs: ",e.plugin.displayName||e.plugin.name,""))}}),i})();function y(i,a){if(1&i&&(n.TgZ(0,"li",18)(1,"a",19),n._UZ(2,"i",20),n._uU(3),n.qZA()()),2&i){const t=a.$implicit,e=n.oxw();n.xp6(1),n.Q6J("href",t.url,n.LSH),n.xp6(1),n.Q6J("ngClass",e.getIconClass(t.type)),n.xp6(1),n.hij(" ",t.url," ")}}const A=function(i){return{author:i}};let k=(()=>{class i{constructor(t){this.activeModal=t}ngOnInit(){this.plugin.funding||this.activeModal.close(),"homebridge-config-ui-x"===this.plugin.name&&(this.plugin.author="oznu"),Array.isArray(this.plugin.funding)?this.fundingOptions=this.plugin.funding.map(t=>"string"==typeof t?{type:"other",url:t}:"object"==typeof t?{type:t.type||"other",url:t.url}:void 0):"string"==typeof this.plugin.funding?this.fundingOptions=[{type:"other",url:this.plugin.funding}]:"object"==typeof this.plugin.funding&&(this.fundingOptions=[{type:this.plugin.funding.type||"other",url:this.plugin.funding.url}])}getIconClass(t){switch(t.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-fw fa-coffee";default:return"fas fa-fw fa-fw fa-link"}}}return i.\u0275fac=function(t){return new(t||i)(n.Y36(p.Kz))},i.\u0275cmp=n.Xpm({type:i,selectors:[["app-donate-modal"]],inputs:{plugin:"plugin"},decls:26,vars:7,consts:[[1,"modal-content"],[1,"modal-header"],["translate","plugins.donate.tile_donate_to",1,"modal-title",3,"translateParams"],["type","button","data-dismiss","modal","aria-label","Close",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"],["class","list-group-item",4,"ngFor","ngForOf"],[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"],["href","https://github.com/homebridge/homebridge/wiki/Donation-Links","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none"],[1,"fas","fa-fw","fa-external-link-alt"],[1,"list-group-item"],["target","_blank","rel","noopener noreferrer",1,"text-break-all",3,"href"],[1,"mr-2","primary-text","fa-fw",3,"ngClass"]],template:function(t,e){1&t&&(n.TgZ(0,"div",0)(1,"div",1),n._UZ(2,"h5",2),n.TgZ(3,"button",3),n.NdJ("click",function(){return e.activeModal.dismiss("Dismiss")}),n.TgZ(4,"span",4),n._uU(5,"\xd7"),n.qZA()()(),n.TgZ(6,"form")(7,"div",5)(8,"div",6),n._UZ(9,"i",7),n.qZA(),n.TgZ(10,"p",8),n._uU(11," As more users install their plugins through the Homebridge UI, they are less likely to visit the projects' GitHub page where the ways to support a developer would typically be displayed. "),n.qZA(),n.TgZ(12,"p",8),n._uU(13," Adding donation links directly in the Homebridge UI ensures users know how to support Homebridge developers if they wish to do so. "),n.qZA(),n.TgZ(14,"ul",9),n.YNc(15,y,4,3,"li",10),n.qZA()(),n.TgZ(16,"div",11)(17,"div",12)(18,"button",13),n.NdJ("click",function(){return e.activeModal.dismiss("Dismiss")}),n._uU(19),n.ALo(20,"translate"),n.qZA()(),n._UZ(21,"div",14),n.TgZ(22,"div",15)(23,"a",16),n._uU(24," More Info "),n._UZ(25,"i",17),n.qZA()()()()()),2&t&&(n.xp6(2),n.Q6J("translateParams",n.VKq(5,A,e.plugin.author||e.plugin.name)),n.xp6(13),n.Q6J("ngForOf",e.fundingOptions),n.xp6(4),n.hij(" ",n.lcZ(20,3,"form.button_close")," "))},dependencies:[g.mk,g.sg,r._Y,r.JL,r.F,u.Pi,u.X$],styles:[".text-break-all[_ngcontent-%COMP%]{word-break:break-all}"]}),i})();var U=l(6201),$=l(58605),B=l(92503);let J=(()=>{class i{transform(t,e,o){const s=new RegExp(e,"g");return t.replace(s,o)}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275pipe=n.Yjl({name:"replace",type:i,pure:!0}),i})();function M(i,a){1&i&&(n.TgZ(0,"p",25),n._UZ(1,"i",26),n._uU(2),n.ALo(3,"translate"),n.qZA()),2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.status_installed")," "))}function N(i,a){1&i&&(n.TgZ(0,"p",27),n._UZ(1,"i",28),n._uU(2),n.ALo(3,"translate"),n.qZA()),2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.status_not_installed")," "))}function Y(i,a){1&i&&(n.TgZ(0,"p",29),n._UZ(1,"i",30),n._uU(2),n.ALo(3,"translate"),n.qZA()),2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.status_update_available")," "))}function L(i,a){1&i&&(n.TgZ(0,"p",31),n._UZ(1,"i",32),n._uU(2),n.ALo(3,"translate"),n.qZA()),2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.status_disabled")," "))}function j(i,a){if(1&i&&(n.TgZ(0,"p",33)(1,"a",34),n._uU(2),n.qZA()()),2&i){const t=n.oxw();n.xp6(1),n.Q6J("href","https://www.npmjs.com/~"+t.plugin.author,n.LSH),n.xp6(1),n.hij("@",t.plugin.author,"")}}function Q(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"a",39),n.NdJ("click",function(){n.CHM(t);const o=n.oxw(2);return n.KtG(o.openFundingModal(o.plugin))}),n._UZ(1,"i",40),n.TgZ(2,"span",38),n._uU(3),n.ALo(4,"translate"),n.qZA()()}if(2&i){const t=n.oxw(2);n.MGl("ngbTooltip","@","homebridge-config-ui-x"===t.plugin.name?"oznu":t.plugin.author,""),n.xp6(3),n.hij(" ",n.lcZ(4,2,"plugins.donate.button_donate"),"")}}function F(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"p",33),n.YNc(1,Q,5,4,"a",35),n.TgZ(2,"a",36),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.openVerifiedModal())}),n._UZ(3,"i",37),n.TgZ(4,"span",38),n._uU(5," Verified"),n.qZA()()()}if(2&i){const t=n.oxw();n.xp6(1),n.Q6J("ngIf",t.plugin.funding)}}function q(i,a){if(1&i&&(n.TgZ(0,"span"),n._uU(1),n.ALo(2,"date"),n.qZA()),2&i){const t=n.oxw();n.xp6(1),n.hij("(",n.xi3(2,1,t.plugin.lastUpdated,"yyyy-MM-dd"),")")}}function S(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"a",41),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.settings(o.plugin))}),n._uU(1),n.ALo(2,"uppercase"),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(1),n.hij(" ",n.lcZ(2,1,n.lcZ(3,3,"plugins.button_settings"))," "))}function H(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"a",41),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.installPlugin(o.plugin.name))}),n._uU(1),n.ALo(2,"uppercase"),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(1),n.hij(" ",n.lcZ(2,1,n.lcZ(3,3,"plugins.button_install"))," "))}const E=function(i,a,t){return{"green-text":i,"text-warning":a,"red-text":t}};function O(i,a){if(1&i&&n._UZ(0,"i",42),2&i){const t=n.oxw();n.Q6J("ngClass",n.kEZ(1,E,"ok"===t.childBridgeStatus,"pending"===t.childBridgeStatus,"down"===t.childBridgeStatus))}}function D(i,a){1&i&&n._UZ(0,"span",43)}function G(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.updatePlugin(o.plugin,o.plugin.betaUpdateAvailable?"beta":"latest"))}),n._UZ(1,"i",45),n._uU(2),n.ALo(3,"translate"),n.qZA()}if(2&i){const t=n.oxw();n.xp6(2),n.AsE(" ",n.lcZ(3,2,"plugins.button_update")," (v",t.plugin.latestVersion,") ")}}function K(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.bridgeSettings(o.plugin))}),n._UZ(1,"i",46),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"child_bridge.label_bridge_setup_child_bridges")," "))}function R(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",47),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.bridgeSettings(o.plugin))}),n._UZ(1,"i",46),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"child_bridge.label_bridge_connect_to_homekit")," "))}function V(i,a){1&i&&n._UZ(0,"div",48)}function z(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.installPreviousVersion(o.plugin))}),n._UZ(1,"i",49),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.manage.message_install_alternate_version")," "))}function X(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.viewPluginLog(o.plugin))}),n._UZ(1,"i",50),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.manage.plugin_logs")," "))}function W(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.jsonEditor(o.plugin))}),n._UZ(1,"i",51),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.manage.json_config")," "))}function nn(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.disablePlugin(o.plugin))}),n._UZ(1,"i",32),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.manage.disable")," "))}function tn(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.enablePlugin(o.plugin))}),n._UZ(1,"i",52),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.manage.enable")," "))}function en(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.uninstallPlugin(o.plugin))}),n._UZ(1,"i",53),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.button_uninstall")," "))}function on(i,a){1&i&&n._UZ(0,"div",48)}function an(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw(2);return n.KtG(o.doChildBridgeAction("restart"))}),n._UZ(1,"i",54),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"child_bridge.label_bridge_restart_child_bridges")," "))}function ln(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw(2);return n.KtG(o.doChildBridgeAction("stop"))}),n._UZ(1,"i",55),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"child_bridge.label_child_stop")," "))}function sn(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw(2);return n.KtG(o.doChildBridgeAction("start"))}),n._UZ(1,"i",56),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"child_bridge.label_child_start")," "))}function rn(i,a){if(1&i&&(n.ynx(0),n.YNc(1,an,4,3,"button",20),n.YNc(2,ln,4,3,"button",20),n.YNc(3,sn,4,3,"button",20),n.BQk()),2&i){const t=n.oxw();n.xp6(1),n.Q6J("ngIf",!t.childBridgeRestartInProgress&&!t.plugin.disabled),n.xp6(1),n.Q6J("ngIf",!t.allChildBridgesStopped),n.xp6(1),n.Q6J("ngIf",t.allChildBridgesStopped)}}function gn(i,a){if(1&i){const t=n.EpF();n.TgZ(0,"button",44),n.NdJ("click",function(){n.CHM(t);const o=n.oxw();return n.KtG(o.$plugin.bridgeSettings(o.plugin))}),n._UZ(1,"i",57),n._uU(2),n.ALo(3,"translate"),n.qZA()}2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"child_bridge.label_bridge_settings")," "))}function pn(i,a){1&i&&n._UZ(0,"div",48)}function un(i,a){1&i&&(n.TgZ(0,"a",58),n._UZ(1,"i",59),n._uU(2),n.ALo(3,"translate"),n.qZA()),2&i&&(n.xp6(2),n.hij(" ",n.lcZ(3,1,"plugins.button_api_documentation")," "))}function dn(i,a){if(1&i&&n._UZ(0,"i"),2&i){const t=n.oxw(2);n.Tol(t.plugin.links.homepage.startsWith("https://github.com/")?"fab fa-fw fa-github":"fas fa-external-link-alt")}}function cn(i,a){1&i&&n._UZ(0,"i",63)}function fn(i,a){if(1&i&&(n.TgZ(0,"a",60),n.YNc(1,dn,1,3,"i",61),n.YNc(2,cn,1,0,"i",62),n._uU(3),n.ALo(4,"translate"),n.qZA()),2&i){const t=n.oxw();n.Q6J("href",t.plugin.links.homepage||t.plugin.links.npm,n.LSH),n.xp6(1),n.Q6J("ngIf",t.plugin.links.homepage),n.xp6(1),n.Q6J("ngIf",!t.plugin.links.homepage&&t.plugin.links.npm),n.xp6(1),n.hij(" ",n.lcZ(4,4,"plugins.button_homepage")," ")}}let mn=(()=>{class i{constructor(t,e,o,s,c,wn,Tn,In){this.$plugin=t,this.$api=e,this.$ws=o,this.$translate=s,this.$modal=c,this.$toastr=wn,this.$md=Tn,this.$settings=In,this.io=this.$ws.getExistingNamespace("child-bridges"),this.isMobile=this.$md.detect.mobile(),this._childBridges=[],this.hasChildBridges=!1,this.hasUnpairedChildBridges=!1,this.allChildBridgesStopped=!1,this.childBridgeStatus="pending",this.childBridgeRestartInProgress=!1,this.recommendChildBridge=!1}ngOnInit(){this.$settings.env.recommendChildBridges&&this.$settings.env.serviceMode&&!["homebridge","homebridge-config-ui-x"].includes(this.plugin.name)?this.$api.get(`/plugins/config-schema/${encodeURIComponent(this.plugin.name)}`,{}).toPromise().then(t=>{this.recommendChildBridge="platform"===t.pluginType}).catch(()=>{this.recommendChildBridge=!1}):this.recommendChildBridge=!1}set childBridges(t){this.hasChildBridges=t.length>0,this.hasUnpairedChildBridges=t.filter(e=>!1===e.paired).length>0,this.allChildBridgesStopped=t.filter(e=>!0===e.manuallyStopped).length===t.length,this.hasChildBridges&&(t.some(e=>"down"===e.status)?this.childBridgeStatus="down":t.some(e=>"pending"===e.status)?this.childBridgeStatus="pending":t.some(e=>"ok"===e.status)&&(this.childBridgeStatus="ok")),this._childBridges=t}openFundingModal(t){this.$modal.open(k).componentInstance.plugin=t}openVerifiedModal(){const t=this.$modal.open(P.x);t.componentInstance.title=this.$translate.instant("plugins.manage.modal_verified_title"),t.componentInstance.message=this.$translate.instant("plugins.manage.modal_verified_message"),t.componentInstance.ctaButtonLabel=this.$translate.instant("plugins.manage.modal_verified_cta"),t.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/verified-Plugins",t.componentInstance.faIconClass="fa-shield-alt green-text"}disablePlugin(t){var e=this;const o=this.$modal.open(C.X);o.componentInstance.title=`${this.$translate.instant("plugins.manage.disable")}: ${t.name}`,o.componentInstance.message=this.$translate.instant("plugins.manage.message_confirm_disable",{pluginName:t.name}),o.componentInstance.confirmButtonLabel=this.$translate.instant("plugins.manage.disable"),o.componentInstance.faIconClass="fa-circle-pause primary-text",o.result.then((0,d.Z)(function*(){try{yield e.$api.put(`/config-editor/plugin/${encodeURIComponent(t.name)}/disable`,{}).toPromise(),t.disabled=!0,e.hasChildBridges&&(yield e.doChildBridgeAction("stop")),e.$modal.open(x.Q)}catch(s){e.$toastr.error(`Failed to disable plugin: ${s.message}`,e.$translate.instant("toast.title_error"))}})).finally(()=>{})}enablePlugin(t){var e=this;const o=this.$modal.open(C.X);o.componentInstance.title=`${this.$translate.instant("plugins.manage.enable")}: ${t.name}`,o.componentInstance.message=this.$translate.instant("plugins.manage.message_confirm_enable",{pluginName:t.name}),o.componentInstance.confirmButtonLabel=this.$translate.instant("plugins.manage.enable"),o.componentInstance.faIconClass="fa-circle-play primary-text",o.result.then((0,d.Z)(function*(){try{yield e.$api.put(`/config-editor/plugin/${encodeURIComponent(t.name)}/enable`,{}).toPromise(),t.disabled=!1,e.hasChildBridges&&(yield e.doChildBridgeAction("start")),e.$modal.open(x.Q)}catch(s){e.$toastr.error(`Failed to enable plugin: ${s.message}`,e.$translate.instant("toast.title_error"))}})).finally(()=>{})}viewPluginLog(t){this.$modal.open(I,{size:"xl",backdrop:"static"}).componentInstance.plugin=t}doChildBridgeAction(t){var e=this;return(0,d.Z)(function*(){e.childBridgeRestartInProgress=!0;try{for(const o of e._childBridges)yield e.io.request(t+"-child-bridge",o.username).toPromise()}catch(o){e.$toastr.error(`Failed to ${t} bridges: `+o?.message,e.$translate.instant("toast.title_error")),e.childBridgeRestartInProgress=!1}finally{setTimeout(()=>{e.childBridgeRestartInProgress=!1},"restart"===t?12e3:"stop"===t?6e3:1e3)}})()}}return i.\u0275fac=function(t){return new(t||i)(n.Y36(U.r),n.Y36(m.s),n.Y36(b.r),n.Y36(u.sK),n.Y36(p.FF),n.Y36(_._W),n.Y36($.L),n.Y36(B.g))},i.\u0275cmp=n.Xpm({type:i,selectors:[["app-plugin-card"]],inputs:{plugin:"plugin",childBridges:"childBridges"},decls:43,vars:36,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,""],["class","mb-0 info-text",4,"ngIf"],["class","mb-0 grey-text",4,"ngIf"],["class","mb-0 primary-text",4,"ngIf"],["class","mb-0 red-text",4,"ngIf"],["class","mb-0 grey-text text-right",4,"ngIf"],[1,"card-title","mb-0"],[1,"card-text"],[4,"ngIf"],[1,"d-flex"],["href","javascript:void(0)","class","card-link",3,"click",4,"ngIf"],[1,"ml-auto"],["class","fas fa-fw fa-circle ml-3",3,"ngClass",4,"ngIf"],["ngbDropdown","","placement","bottom-right top-right",1,"d-inline-block","ml-3"],["href","javascript:void(0)","aria-label","Plugin actions drop down menu","ngbDropdownToggle","",1,"card-link"],[1,"fas","fa-fw","fa-ellipsis-v"],["class","position-absolute p-1 bg-danger rounded-circle fa-beat-fade","style","right:0px; top:0px;--fa-animation-duration: 3s;--fa-fade-opacity: 0.6;",4,"ngIf"],["ngbDropdownMenu","","aria-labelledby","Plugin actions drop down menu"],["ngbDropdownItem","",3,"click",4,"ngIf"],[3,"click",4,"ngIf"],["class","dropdown-divider",4,"ngIf"],["ngbDropdownItem","","target","_blank","rel","noopener noreferrer","class","text-decoration-none","href","/swagger",4,"ngIf"],["ngbDropdownItem","","target","_blank","rel","noopener noreferrer","class","text-decoration-none",3,"href",4,"ngIf"],[1,"mb-0","info-text"],[1,"far","fa-fw","fa-circle-check"],[1,"mb-0","grey-text"],[1,"far","fa-fw","fa-circle"],[1,"mb-0","primary-text"],[1,"far","fa-fw","fa-arrow-alt-circle-up"],[1,"mb-0","red-text"],[1,"far","fa-fw","fa-circle-pause"],[1,"mb-0","grey-text","text-right"],["target","_blank","rel","noopener noreferrer",1,"card-link","grey-text",3,"href"],["href","javascript:void(0)","class","card-link pink-text text-decoration-none ml-3",3,"ngbTooltip","click",4,"ngIf"],["href","javascript:void(0)",1,"card-link","text-decoration-none","green-text","ml-3",3,"click"],[1,"fas","fa-fw","fa-shield-alt"],[1,"d-none","d-md-inline"],["href","javascript:void(0)",1,"card-link","pink-text","text-decoration-none","ml-3",3,"ngbTooltip","click"],[1,"fas","fa-fw","fa-heart"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-fw","fa-circle","ml-3",3,"ngClass"],[1,"position-absolute","p-1","bg-danger","rounded-circle","fa-beat-fade",2,"right","0px","top","0px","--fa-animation-duration","3s","--fa-fade-opacity","0.6"],["ngbDropdownItem","",3,"click"],[1,"fas","fa-fw","fa-arrow-alt-circle-up","primary-text"],[1,"fa-fw","icon-button","fas","fa-fw","fa-circle-exclamation","primary-text"],[3,"click"],[1,"dropdown-divider"],[1,"fas","fa-fw","fa-fw","fa-history"],[1,"fas","fa-fw","fa-fw","fa-wave-square"],[1,"fas","fa-fw","fa-fw","fa-code"],[1,"far","fa-fw","fa-circle-play"],[1,"fas","fa-fw","fa-fw","fa-trash"],[1,"fa-fw","icon-button","fas","fa-fw","fa-power-off"],[1,"fas","fa-fw","fa-stop"],[1,"fas","fa-fw","fa-play"],[1,"fas","fa-fw","fa-fw","fa-project-diagram"],["ngbDropdownItem","","target","_blank","rel","noopener noreferrer","href","/swagger",1,"text-decoration-none"],[1,"fas","fa-fw","fa-passport"],["ngbDropdownItem","","target","_blank","rel","noopener noreferrer",1,"text-decoration-none",3,"href"],[3,"class",4,"ngIf"],["class","fab fa-fw fa-npm",4,"ngIf"],[1,"fab","fa-fw","fa-npm"]],template:function(t,e){1&t&&(n.TgZ(0,"div",0)(1,"div",1)(2,"div",2),n.YNc(3,M,4,3,"p",3),n.YNc(4,N,4,3,"p",4),n.YNc(5,Y,4,3,"p",5),n.YNc(6,L,4,3,"p",6),n.qZA(),n.TgZ(7,"div",2),n.YNc(8,j,3,2,"p",7),n.YNc(9,F,6,1,"p",7),n.qZA()(),n.TgZ(10,"h4",8),n._uU(11),n.ALo(12,"titlecase"),n.ALo(13,"replace"),n.qZA(),n.TgZ(14,"p",9),n._uU(15),n.YNc(16,q,3,4,"span",10),n.qZA(),n.TgZ(17,"div",11),n.YNc(18,S,4,5,"a",12),n.YNc(19,H,4,5,"a",12),n.TgZ(20,"div",13),n.YNc(21,O,1,5,"i",14),n.TgZ(22,"span",15)(23,"a",16),n._UZ(24,"i",17),n.YNc(25,D,1,0,"span",18),n.qZA(),n.TgZ(26,"div",19),n.YNc(27,G,4,4,"button",20),n.YNc(28,K,4,3,"button",20),n.YNc(29,R,4,3,"button",21),n.YNc(30,V,1,0,"div",22),n.YNc(31,z,4,3,"button",20),n.YNc(32,X,4,3,"button",20),n.YNc(33,W,4,3,"button",20),n.YNc(34,nn,4,3,"button",20),n.YNc(35,tn,4,3,"button",20),n.YNc(36,en,4,3,"button",20),n.YNc(37,on,1,0,"div",22),n.YNc(38,rn,4,3,"ng-container",10),n.YNc(39,gn,4,3,"button",20),n.YNc(40,pn,1,0,"div",22),n.YNc(41,un,4,3,"a",23),n.YNc(42,fn,5,6,"a",24),n.qZA()()()()()),2&t&&(n.xp6(3),n.Q6J("ngIf",e.plugin.installedVersion&&!e.plugin.updateAvailable&&!e.plugin.betaUpdateAvailable&&!e.plugin.disabled),n.xp6(1),n.Q6J("ngIf",!e.plugin.installedVersion),n.xp6(1),n.Q6J("ngIf",e.plugin.updateAvailable||e.plugin.betaUpdateAvailable&&!e.plugin.disabled),n.xp6(1),n.Q6J("ngIf",e.plugin.installedVersion&&e.plugin.disabled),n.xp6(2),n.Q6J("ngIf",e.plugin.author&&!e.plugin.verifiedPlugin),n.xp6(1),n.Q6J("ngIf",e.plugin.verifiedPlugin),n.xp6(2),n.hij(" ",e.plugin.displayName||n.lcZ(12,30,n.Dn7(13,32,"@"===e.plugin.name.charAt(0)?e.plugin.name.split("/")[1]:e.plugin.name,"-"," "))," "),n.xp6(4),n.AsE("",e.plugin.name," v",e.plugin.installedVersion||e.plugin.latestVersion," "),n.xp6(1),n.Q6J("ngIf",e.plugin.lastUpdated),n.xp6(2),n.Q6J("ngIf",e.plugin.installedVersion),n.xp6(1),n.Q6J("ngIf",!e.plugin.installedVersion),n.xp6(2),n.Q6J("ngIf",e.hasChildBridges),n.xp6(4),n.Q6J("ngIf",e.plugin.updateAvailable||e.plugin.betaUpdateAvailable||!e.hasChildBridges&&!e.plugin.disabled&&e.recommendChildBridge||e.hasChildBridges&&!e.childBridgeRestartInProgress&&e.hasUnpairedChildBridges&&"ok"===e.childBridgeStatus&&!e.plugin.disabled),n.xp6(2),n.Q6J("ngIf",e.plugin.updateAvailable||e.plugin.betaUpdateAvailable),n.xp6(1),n.Q6J("ngIf",!e.hasChildBridges&&!e.plugin.disabled&&e.recommendChildBridge),n.xp6(1),n.Q6J("ngIf",e.hasChildBridges&&!e.childBridgeRestartInProgress&&e.hasUnpairedChildBridges&&"ok"===e.childBridgeStatus&&!e.plugin.disabled),n.xp6(1),n.Q6J("ngIf",e.plugin.updateAvailable||e.plugin.betaUpdateAvailable||!e.hasChildBridges&&!e.plugin.disabled&&e.recommendChildBridge||e.hasChildBridges&&!e.childBridgeRestartInProgress&&e.hasUnpairedChildBridges&&"ok"===e.childBridgeStatus&&!e.plugin.disabled),n.xp6(1),n.Q6J("ngIf",e.plugin.publicPackage),n.xp6(1),n.Q6J("ngIf",e.plugin.installedVersion),n.xp6(1),n.Q6J("ngIf",!e.isMobile&&e.plugin.installedVersion&&"homebridge-config-ui-x"!==e.plugin.name),n.xp6(1),n.Q6J("ngIf",e.plugin.installedVersion&&"homebridge-config-ui-x"!==e.plugin.name&&!e.plugin.disabled),n.xp6(1),n.Q6J("ngIf",e.plugin.installedVersion&&"homebridge-config-ui-x"!==e.plugin.name&&e.plugin.disabled),n.xp6(1),n.Q6J("ngIf",e.plugin.installedVersion&&"homebridge-config-ui-x"!==e.plugin.name),n.xp6(1),n.Q6J("ngIf",e.plugin.installedVersion&&"homebridge-config-ui-x"!==e.plugin.name),n.xp6(1),n.Q6J("ngIf",e.hasChildBridges&&!e.plugin.disabled),n.xp6(1),n.Q6J("ngIf",e.plugin.installedVersion&&"homebridge-config-ui-x"!==e.plugin.name),n.xp6(1),n.Q6J("ngIf",e.plugin.links.homepage||e.plugin.links.npm),n.xp6(1),n.Q6J("ngIf","homebridge-config-ui-x"===e.plugin.name),n.xp6(1),n.Q6J("ngIf",e.plugin.links.homepage||e.plugin.links.npm))},dependencies:[g.mk,g.O5,p.jt,p.iD,p.Vi,p.TH,p._L,g.gd,g.rS,g.uU,u.X$,J],styles:[".dropdown-menu.show[_ngcontent-%COMP%]{margin-top:10px;margin-bottom:10px}.dropup[_ngcontent-%COMP%] .dropdown-toggle[_ngcontent-%COMP%]:after{display:none}"]}),i})();function _n(i,a){1&i&&n._UZ(0,"app-spinner")}function hn(i,a){1&i&&n._UZ(0,"i",9)}function bn(i,a){if(1&i&&(n.TgZ(0,"div",10),n._UZ(1,"app-plugin-card",11),n.qZA()),2&i){const t=a.$implicit,e=n.oxw();n.xp6(1),n.Q6J("plugin",t)("childBridges",e.getPluginChildBridges(t))}}const Cn=[{path:"",component:(()=>{class i{constructor(t,e,o,s,c){this.$api=t,this.$ws=e,this.$router=o,this.$toastr=s,this.$translate=c,this.io=this.$ws.connectToNamespace("child-bridges"),this.installedPlugins=[],this.childBridges=[],this.form=new r.cw({query:new r.NI("",[r.kI.required])}),this.loading=!0}ngOnInit(){var t=this;return(0,d.Z)(function*(){t.io.connected.subscribe((0,d.Z)(function*(){t.getChildBridgeMetadata(),t.io.socket.emit("monitor-child-bridge-status")})),t.io.socket.on("child-bridge-status-update",e=>{const o=t.childBridges.find(s=>s.username===e.username);o?Object.assign(o,e):t.childBridges.push(e)}),t.navigationSubscription=t.$router.events.subscribe(e=>{e instanceof f.m2&&t.loadInstalledPlugins()}),yield t.loadInstalledPlugins()})()}loadInstalledPlugins(){var t=this;return(0,d.Z)(function*(){t.form.setValue({query:""}),t.installedPlugins=[],t.loading=!0;try{t.installedPlugins=yield t.$api.get("/plugins").toPromise(),t.loading=!1}catch(e){t.$toastr.error(`${t.$translate.instant("plugins.toast_failed_to_load_plugins")}: ${e.message}`,t.$translate.instant("toast.title_error"))}})()}search(){this.installedPlugins=[],this.loading=!0,this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`).subscribe(t=>{this.installedPlugins=t,this.loading=!1},t=>{this.loading=!1,this.$toastr.error(`${t.error.message||t.message}`,"Error"),this.loadInstalledPlugins()})}onClearSearch(){this.form.setValue({query:""}),this.loadInstalledPlugins()}onSubmit({value:t}){t.query.length?this.search():this.loadInstalledPlugins()}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(t=>{this.childBridges=t})}getPluginChildBridges(t){return this.childBridges.filter(e=>e.plugin===t.name)}ngOnDestroy(){this.navigationSubscription&&this.navigationSubscription.unsubscribe(),this.io.end()}}return i.\u0275fac=function(t){return new(t||i)(n.Y36(m.s),n.Y36(b.r),n.Y36(f.F0),n.Y36(_._W),n.Y36(u.sK))},i.\u0275cmp=n.Xpm({type:i,selectors:[["app-plugins"]],decls:10,vars:7,consts:[[4,"ngIf"],[1,"row"],[1,"col-md-12"],["novalidate","",3,"formGroup","ngSubmit"],["type","text","formControlName","query",1,"hb-npm-search",3,"placeholder"],["href","javascript:void(0)",1,"hb-npm-search-clear",3,"click"],["class","far fa-fw fa-times-circle",4,"ngIf"],[1,"d-flex","flex-wrap","justify-content-between"],["class","hb-plugin-space-between",4,"ngFor","ngForOf"],[1,"far","fa-fw","fa-times-circle"],[1,"hb-plugin-space-between"],[3,"plugin","childBridges"]],template:function(t,e){1&t&&(n.YNc(0,_n,1,0,"app-spinner",0),n.TgZ(1,"div",1)(2,"div",2)(3,"form",3),n.NdJ("ngSubmit",function(){return e.onSubmit(e.form)}),n._UZ(4,"input",4),n.ALo(5,"translate"),n.TgZ(6,"a",5),n.NdJ("click",function(){return e.onClearSearch()}),n.YNc(7,hn,1,0,"i",6),n.qZA()()()(),n.TgZ(8,"div",7),n.YNc(9,bn,2,2,"div",8),n.qZA()),2&t&&(n.Q6J("ngIf",e.loading),n.xp6(3),n.Q6J("formGroup",e.form),n.xp6(1),n.Q6J("placeholder",n.lcZ(5,5,"plugins.placeholder_search_plugin")),n.xp6(3),n.Q6J("ngIf",e.form.controls.query.value),n.xp6(2),n.Q6J("ngForOf",e.installedPlugins))},dependencies:[g.sg,g.O5,r._Y,r.Fj,r.JJ,r.JL,r.sg,r.u,Z.O,mn,u.X$],styles:[".hb-npm-search[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;border:1px solid #d0d0d0;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px;margin-bottom:15px}@media (hover: hover){.hb-npm-search[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.hb-npm-search[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.hb-npm-search-clear[_ngcontent-%COMP%]{position:absolute;right:25px;font-size:35px;color:#d0d0d0;line-height:50px;cursor:pointer}.hb-plugin-space-between[_ngcontent-%COMP%]{box-sizing:border-box;width:calc(50% - 6.6666666667px)}@media only screen and (max-width: 991px){.hb-plugin-space-between[_ngcontent-%COMP%]{width:100%}}"]}),i})()}];let xn=(()=>{class i{}return i.\u0275fac=function(t){return new(t||i)},i.\u0275mod=n.oAB({type:i}),i.\u0275inj=n.cJS({imports:[f.Bz.forChild(Cn),f.Bz]}),i})();var Zn=l(40294),Pn=l(63991);let vn=(()=>{class i{}return i.\u0275fac=function(t){return new(t||i)},i.\u0275mod=n.oAB({type:i}),i.\u0275inj=n.cJS({imports:[g.ez,r.u5,r.UX,u.aw.forChild(),p.IJ,Zn.I,Pn.E,xn]}),i})()}}]);
@@ -3,7 +3,7 @@
3
3
  <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
4
  viewBox="0 0 68 56" style="enable-background:new 0 0 68 56;" xml:space="preserve">
5
5
  <style type="text/css">
6
- .st0{fill:#F9BD2B;}
6
+ .st0{fill:#00acff;}
7
7
  </style>
8
8
  <g id="Layer_1">
9
9
  </g>
package/public/index.html CHANGED
@@ -15,10 +15,10 @@
15
15
  <meta name="theme-color" content="#140a33" media="(prefers-color-scheme: light)">
16
16
  <meta name="theme-color" content="#0f0f0f" media="(prefers-color-scheme: dark)">
17
17
 
18
- <style>@charset "UTF-8";:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.fd0b155cd663a8fa.woff2) format("woff2"),url(fa-solid-900.6a8db53d80e9da0c.ttf) format("truetype")}:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.3580b4a95c9bb1d5.woff2) format("woff2"),url(fa-regular-400.67a0fb748649533d.ttf) format("truetype")}:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(fa-brands-400.b6033b540dd66f84.woff2) format("woff2"),url(fa-brands-400.9a905705860d0777.ttf) format("truetype")}:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}@media print{*,*:before,*:after{text-shadow:none!important;box-shadow:none!important}@page{size:a3}body{min-width:992px!important}}body{font-family:Roboto,sans-serif;font-weight:300}html,body{height:100%;-webkit-font-smoothing:subpixel-antialiased}body{background-color:#f4f4f4}.body-top-padding{padding-top:5.5rem}</style><link rel="stylesheet" href="styles.e3bad8b2e9d8d8ab.css" crossorigin="use-credentials" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.e3bad8b2e9d8d8ab.css"></noscript></head>
18
+ <style>@charset "UTF-8";:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.fd0b155cd663a8fa.woff2) format("woff2"),url(fa-solid-900.6a8db53d80e9da0c.ttf) format("truetype")}:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.3580b4a95c9bb1d5.woff2) format("woff2"),url(fa-regular-400.67a0fb748649533d.ttf) format("truetype")}:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(fa-brands-400.b6033b540dd66f84.woff2) format("woff2"),url(fa-brands-400.9a905705860d0777.ttf) format("truetype")}:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}@media print{*,*:before,*:after{text-shadow:none!important;box-shadow:none!important}@page{size:a3}body{min-width:992px!important}}body{font-family:Roboto,sans-serif;font-weight:300}html,body{height:100%;-webkit-font-smoothing:subpixel-antialiased}body{background-color:#f4f4f4}.body-top-padding{padding-top:5.5rem}</style><link rel="stylesheet" href="styles.0e6bcaaef3634017.css" crossorigin="use-credentials" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.0e6bcaaef3634017.css"></noscript></head>
19
19
 
20
20
  <body class="body-top-padding">
21
21
  <app-root></app-root>
22
- <script src="runtime.4e0e65acd761ac63.js" type="module" crossorigin="use-credentials"></script><script src="polyfills.9ea6d12d8e6bd01b.js" type="module" crossorigin="use-credentials"></script><script src="scripts.20e147071a6bc113.js" defer crossorigin="use-credentials"></script><script src="main.ee66dc3328044638.js" type="module" crossorigin="use-credentials"></script>
22
+ <script src="runtime.85f32f79e37fd42f.js" type="module" crossorigin="use-credentials"></script><script src="polyfills.9ea6d12d8e6bd01b.js" type="module" crossorigin="use-credentials"></script><script src="scripts.20e147071a6bc113.js" defer crossorigin="use-credentials"></script><script src="main.fb334f252744aaa7.js" type="module" crossorigin="use-credentials"></script>
23
23
 
24
24
  </body></html>