homebridge-config-ui-x 5.11.2-beta.6 → 5.11.2-beta.7
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 +1 -1
- package/public/{chunk-TWKIJ7CI.js → chunk-2HDDFLX5.js} +1 -1
- package/public/{chunk-ZABNRIEK.js → chunk-2KUGAT6L.js} +1 -1
- package/public/{chunk-LS3PT3EF.js → chunk-2QHT7UTY.js} +1 -1
- package/public/{chunk-SMGUXH2S.js → chunk-3B6IFS6E.js} +1 -1
- package/public/chunk-4HJPJ6JO.js +1 -0
- package/public/{chunk-IANXHCHI.js → chunk-4ZCBTPFQ.js} +1 -1
- package/public/{chunk-CDW26RZX.js → chunk-5DKBUEKC.js} +1 -1
- package/public/{chunk-4BJ6NDID.js → chunk-6SPNUKCU.js} +1 -1
- package/public/{chunk-FTXEGQIN.js → chunk-6UOFHEOA.js} +1 -1
- package/public/{chunk-OVOZ24WK.js → chunk-7KQJO6II.js} +1 -1
- package/public/{chunk-UQ2S4WMW.js → chunk-AK7DHUFI.js} +1 -1
- package/public/{chunk-FACVYIVK.js → chunk-BQLUKGX4.js} +1 -1
- package/public/{chunk-O77GFQK2.js → chunk-CAKM6QQD.js} +1 -1
- package/public/{chunk-QI7NLDCZ.js → chunk-CJ6ENU5Q.js} +1 -1
- package/public/{chunk-LB5QMOKJ.js → chunk-EHWZNITX.js} +1 -1
- package/public/{chunk-GSM4KMIN.js → chunk-FSIP765D.js} +1 -1
- package/public/{chunk-KL45DCKF.js → chunk-G5KKSLRH.js} +1 -1
- package/public/{chunk-BI4XMWOC.js → chunk-IPCY24VP.js} +1 -1
- package/public/{chunk-GZGEZ5SJ.js → chunk-K7P4YW6C.js} +1 -1
- package/public/{chunk-RMO7BI3S.js → chunk-KXDUZHXM.js} +1 -1
- package/public/{chunk-RBAGMGTH.js → chunk-LPHPZZDD.js} +1 -1
- package/public/{chunk-BLMEIZFV.js → chunk-LSBNAQT7.js} +1 -1
- package/public/{chunk-6CVW2OLK.js → chunk-M6KB66ZD.js} +1 -1
- package/public/{chunk-7INH3WTY.js → chunk-MJD4YCIZ.js} +1 -1
- package/public/{chunk-YZSYJJ4L.js → chunk-MXLTCL2C.js} +1 -1
- package/public/{chunk-GEROMTGP.js → chunk-Q5BDQ6UK.js} +4 -4
- package/public/{chunk-4FWGOD46.js → chunk-QD7ZQ5KN.js} +1 -1
- package/public/{chunk-HHCM4VPQ.js → chunk-QZUDFUPG.js} +1 -1
- package/public/{chunk-ETZZ36JZ.js → chunk-R7CS5PVV.js} +1 -1
- package/public/{chunk-G32P2EQO.js → chunk-RP6CIVXA.js} +1 -1
- package/public/{chunk-DSPXMSMH.js → chunk-SWHMQNYH.js} +1 -1
- package/public/chunk-TO4NLBFG.js +3 -0
- package/public/{chunk-2PTWRRNF.js → chunk-TSNTAL5D.js} +1 -1
- package/public/{chunk-GOEMPGSJ.js → chunk-UCQTJGBG.js} +1 -1
- package/public/{chunk-UEEWOELN.js → chunk-UIRBXR5P.js} +1 -1
- package/public/{chunk-RBF3CYNW.js → chunk-VUOEARGI.js} +1 -1
- package/public/{chunk-V5PTPKEY.js → chunk-YTCQIUDM.js} +1 -1
- package/public/{chunk-D4DHXSWV.js → chunk-Z62MEN4O.js} +1 -1
- package/public/{chunk-7LXVDGID.js → chunk-ZCXLNQRQ.js} +1 -1
- package/public/{chunk-QUVYR45J.js → chunk-ZMZV3OZR.js} +1 -1
- package/public/{chunk-3V7SIJRZ.js → chunk-ZT2XJVT5.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-UQ56N5WR.js → main-ORJXWFOK.js} +1 -1
- package/public/chunk-B5QPU7HE.js +0 -1
- package/public/chunk-VS2UHVZ2.js +0 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as nt}from"./chunk-6UOFHEOA.js";import"./chunk-BMOLDRJ3.js";import{a as E}from"./chunk-2QHT7UTY.js";import{a as ct}from"./chunk-H7F7H5MW.js";import{a as L}from"./chunk-73LLH6JC.js";import"./chunk-IPCY24VP.js";import{n as ot,t as it}from"./chunk-QZUDFUPG.js";import"./chunk-BGCYR25X.js";import{b as R}from"./chunk-5DKBUEKC.js";import{D as et,c as W,e as J,f as K,g as U,j as X,m as Y,r as Z,s as tt}from"./chunk-Z62MEN4O.js";import{b as H}from"./chunk-MXLTCL2C.js";import{E as z,F as A,H as G,K as Q}from"./chunk-M6KB66ZD.js";import{Ab as x,Ec as a,Fb as f,Fc as s,Gb as p,Hb as c,Ib as d,Pc as T,Rb as v,Xb as h,Ya as I,Za as r,Zb as m,aa as l,d as k,ea as F,ec as $,fc as q,ga as u,ha as g,ic as B,jc as D,kc as O,lc as P,mb as S,nb as j,sa as y,vc as N,yb as b,zb as w}from"./chunk-MKV5RAJQ.js";import{g as lt,h as C}from"./chunk-B4AJQJMI.js";var M=lt(ct(),1);var pt=["logoutput"],mt=["searchInput"];function dt(i,V){if(i&1){let e=v();p(0,"div",5)(1,"button",9),a(2,"translate"),a(3,"translate"),h("click",function(){u(e);let t=m();return g(t.showSearch())}),d(4,"i"),c(),p(5,"button",9),a(6,"translate"),a(7,"translate"),h("click",function(){u(e);let t=m();return g(t.downloadLogFile())}),d(8,"i",10),c(),p(9,"button",11),a(10,"translate"),a(11,"translate"),h("click",function(){u(e);let t=m();return g(t.truncateLogFile())}),d(12,"i",12),c()()}if(i&2){let e=m();r(),f("openDelay",150)("ngbTooltip",s(2,12,"form.search")),b("aria-label",s(3,14,"form.search")),r(3),D(N("fas",e.showSearchBar()?" primary-text":""," fa-search")),r(),f("openDelay",150)("ngbTooltip",s(6,16,"form.button_download")),b("aria-label",s(7,18,"form.button_download")),r(4),f("openDelay",150)("ngbTooltip",s(10,20,"form.button_delete")),b("aria-label",s(11,22,"form.button_delete"))}}function ht(i,V){if(i&1){let e=v();p(0,"button",17),a(1,"translate"),h("click",function(){u(e);let t=m(2);return g(t.onClearSearch())}),d(2,"i",18),c()}i&2&&b("aria-label",s(1,1,"form.button_clear"))}function ut(i,V){if(i&1){let e=v();p(0,"div",6)(1,"div",13)(2,"form",14),h("ngSubmit",function(){u(e);let t=m();return g(t.onSubmit(t.form.value))}),d(3,"input",15,1),a(5,"translate"),w(6,ht,3,3,"button",16),c()()()}if(i&2){let e,o=m();r(2),f("formGroup",o.form),r(),B("is-invalid",o.searchInputInvalid),f("placeholder",s(5,5,"logs.placeholder_search_logs")),r(3),x((e=o.form.get("query"))!=null&&e.value?6:-1)}}var kt=(()=>{class i{injector=l(F);$api=l(Q);$auth=l(R);$log=l(nt);$modal=l(ot);$settings=l(H);$toastr=l(G);$translate=l(z);termTarget=T("logoutput",{});searchInput=T("searchInput",{});resizeEvent=new k;valueChangesSubscription;isAdmin=this.$auth.user.admin;showSearchBar=y(!1,{});showExitButton=y(!1,{});form=new U({query:new X("")});get searchInputInvalid(){let e=(this.form.get("query")?.value||"").trim();return e.length>0&&e.length<3}onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){let e=this.$translate.instant("menu.linux.label_logs");this.$settings.setPageTitle(e),window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{allowProposedApi:!0},this.resizeEvent),this.valueChangesSubscription=this.form.get("query")?.valueChanges.subscribe(o=>{let t=o||"",n=t.trim();n!==t&&this.form.get("query")?.setValue(n,{emitEvent:!1}),this.showExitButton()&&n.length<3&&(this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom())})}showSearch(){if(this.showSearchBar())this.showSearchBar.set(!1),this.showExitButton.set(!1),this.form.setValue({query:""}),this.$log.clearSearchFilter(),this.$log.scrollToBottom();else{this.showSearchBar.set(!0);let e=this.searchInput();e&&setTimeout(()=>e.nativeElement.focus(),0)}}onSubmit(e){let o=(e.query||"").trim();!o.length||o.length<3?(o.length||this.showSearchBar.set(!1),this.form.setValue({query:""}),this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom()):(this.showExitButton.set(!0),this.$log.setSearchFilter(o),this.$log.scrollToBottom())}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.$log.clearSearchFilter(),this.$log.scrollToBottom()}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.valueChangesSubscription&&this.valueChangesSubscription.unsubscribe(),this.resizeEvent.complete(),this.$log.destroyTerminal()}downloadLogFile(){return C(this,null,function*(){let e=S([{provide:L,useValue:{title:this.$translate.instant("logs.title_download_log_file"),message:this.$translate.instant("logs.download_warning"),confirmButtonLabel:this.$translate.instant("form.button_download"),faIconClass:"fas fa-user-secret primary-text"}}],this.injector),o=this.$modal.open(E,{size:"lg",backdrop:"static",injector:e});try{yield o.result;try{let t=yield this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}),n=this.$log.getSearchFilter();if(n){let rt=(yield t.body.text()).split(`
|
|
2
|
+
`).filter(st=>st.replace(/\x1b\[[0-9;]*m/g,"").toLowerCase().includes(n.toLowerCase())),at=new Blob([rt.join(`
|
|
3
|
+
`)],{type:"text/plain"});(0,M.saveAs)(at,"homebridge.log.txt")}else(0,M.saveAs)(t.body,"homebridge.log.txt")}catch(t){let n;try{if(t&&typeof t=="object"&&"error"in t){let _=yield t.error.text();n=JSON.parse(_).message}}catch(_){console.error(_)}this.$toastr.error(n||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))}}catch{}})}truncateLogFile(){return C(this,null,function*(){let e=S([{provide:L,useValue:{title:this.$translate.instant("logs.title_truncate_log_file"),message:this.$translate.instant("logs.truncate_log_warning"),confirmButtonLabel:this.$translate.instant("form.button_delete"),confirmButtonClass:"btn-danger",faIconClass:"fas fa-circle-exclamation primary-text"}}],this.injector),o=this.$modal.open(E,{size:"lg",backdrop:"static",injector:e});try{yield o.result;try{yield this.$api.put("/platform-tools/hb-service/log/truncate",{}),this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()}catch(t){console.error(t);let n=t&&typeof t=="object"&&"error"in t&&t.error&&typeof t.error=="object"&&"message"in t.error?String(t.error.message):this.$translate.instant("logs.truncate.error");this.$toastr.error(n,this.$translate.instant("toast.title_error"))}}catch{}})}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=j({type:i,selectors:[["ng-component"]],viewQuery:function(o,t){o&1&&($(t.termTarget,pt,5),$(t.searchInput,mt,5)),o&2&&q(2)},hostBindings:function(o,t){o&1&&h("resize",function(){return t.onWindowResize()},I)},decls:10,vars:9,consts:[["logoutput",""],["searchInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"row"],[1,"flex-column","d-flex","align-items-stretch"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-download"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-trash-alt"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"search-bar",3,"placeholder"],["type","button",1,"search-bar-clear"],["type","button",1,"search-bar-clear",3,"click"],["aria-hidden","true",1,"fas","fa-square-xmark"]],template:function(o,t){o&1&&(p(0,"div",2)(1,"div",3)(2,"h3",4),O(3),a(4,"translate"),c()(),w(5,dt,13,24,"div",5),c(),w(6,ut,7,7,"div",6),p(7,"div",7),d(8,"div",8,0),c()),o&2&&(r(3),P(s(4,7,"menu.linux.label_logs")),r(2),x(t.isAdmin?5:-1),r(),x(t.showSearchBar()?6:-1),r(),B("adjust-for-mobile",!t.showSearchBar())("adjust-for-mobile-with-search",t.showSearchBar()))},dependencies:[it,et,Y,W,J,K,tt,Z,A],styles:["form[_ngcontent-%COMP%]{position:relative}.search-bar[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px 45px 10px 10px;margin-bottom:15px}@media(hover:hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.search-bar.is-invalid[_ngcontent-%COMP%]{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}@media(hover:hover){.search-bar.is-invalid[_ngcontent-%COMP%]:hover{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}}.search-bar.is-invalid[_ngcontent-%COMP%]:focus{border:1px solid #d32f2f!important;box-shadow:0 1px #d32f2f!important}.search-bar-clear[_ngcontent-%COMP%]{position:absolute;right:8px;top:25px;height:50px;background:transparent;border:none;font-size:20px;color:#d0d0d0;cursor:pointer;padding:0 8px;display:flex;align-items:center}.search-bar-clear[_ngcontent-%COMP%]:hover{color:#a0a0a0}.adjust-for-mobile-with-search[_ngcontent-%COMP%]{height:calc(100% - 95px);width:calc(100% + 17px);overflow:hidden}@media(max-width:767px){.adjust-for-mobile-with-search[_ngcontent-%COMP%]{height:calc(100% - 125px)}}"]})}return i})();export{kt as LogsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as P}from"./chunk-
|
|
1
|
+
import{b as P}from"./chunk-MXLTCL2C.js";import{E as F,F as T,J as w}from"./chunk-M6KB66ZD.js";import{Ab as g,Ec as i,Fc as n,Jb as t,Kb as a,Lb as p,Sb as y,Va as B,Yb as f,Za as e,Zb as C,aa as v,jc as h,kc as r,lc as m,mc as d,nb as I,sa as k,yb as l,zb as b,zc as x}from"./chunk-MKV5RAJQ.js";import{a as S,b as _}from"./chunk-B4AJQJMI.js";var $=(o,E)=>({"fa-chevron-down":o,"fa-chevron-right":E});function M(o,E){o&1&&(t(0,"ul",6)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",12),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",14),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",15),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",16),i(43,"translate"),p(44,"i",13),a()()()),o&2&&(e(3),d(" ",n(4,12,"support.links.documentation")),e(4),m(n(8,14,"support.links.documentation_sub")),e(2),l("aria-label",n(10,16,"support.links.documentation")),e(5),d(" ",n(15,18,"support.links.issue")),e(4),m(n(19,20,"support.links.issue_sub")),e(2),l("aria-label",n(21,22,"support.links.issue")),e(5),d(" ",n(26,24,"support.links.discord")),e(4),m(n(30,26,"support.links.discord_sub")),e(2),l("aria-label",n(32,28,"support.links.discord")),e(5),d(" ",n(37,30,"support.links.reddit")),e(4),m(n(41,32,"support.links.reddit_sub")),e(2),l("aria-label",n(43,34,"support.links.reddit")))}function j(o,E){if(o&1&&(t(0,"ul",8)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",17),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",18),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",19),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",20),i(43,"translate"),p(44,"i",13),a()(),t(45,"li",9)(46,"span",10),r(47),i(48,"translate"),p(49,"br"),t(50,"small",11),r(51),i(52,"translate"),a()(),t(53,"a",21),i(54,"translate"),p(55,"i",13),a()()()),o&2){let u=C();e(3),d(" ",n(4,16,"support.dev.item_swagger")),e(4),m(n(8,18,"support.dev.item_swagger_sub")),e(2),y("href",u.swaggerUrl,B),l("aria-label",n(10,20,"support.dev.item_swagger")),e(5),d(" ",n(15,22,"support.dev.api")),e(4),m(n(19,24,"support.dev.api_sub")),e(2),l("aria-label",n(21,26,"support.dev.api")),e(5),d(" ",n(26,28,"support.dev.api_hap")),e(4),m(n(30,30,"support.dev.api_hap_sub")),e(2),l("aria-label",n(32,32,"support.dev.api_hap")),e(5),d(" ",n(37,34,"support.dev.template")),e(4),m(n(41,36,"support.dev.template_sub")),e(2),l("aria-label",n(43,38,"support.dev.template")),e(5),d(" ",n(48,40,"support.dev.verified")),e(4),m(n(52,42,"support.dev.verified_sub")),e(2),l("aria-label",n(54,44,"support.dev.verified"))}}var A=(()=>{class o{$settings=v(P);$translate=v(F);showFields=k({general:!0,dev:!0},{});swaggerEndpoint="/swagger";ngOnInit(){let u=this.$translate.instant("support.title");this.$settings.setPageTitle(u)}get swaggerUrl(){return w.production?this.swaggerEndpoint:`${w.api.origin}${this.swaggerEndpoint}`}toggleSection(u){this.showFields.update(c=>_(S({},c),{[u]:!c[u]}))}static \u0275fac=function(c){return new(c||o)};static \u0275cmp=I({type:o,selectors:[["ng-component"]],decls:18,vars:25,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"mb-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],["id","fieldsDev",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"grey-text","pe-2"],["href","https://github.com/homebridge/homebridge/wiki","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],[1,"fas","fa-external-link-alt"],["href","https://github.com/homebridge/homebridge-config-ui-x/issues/new/choose","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://discord.gg/C87Pvq3","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://www.reddit.com/r/homebridge/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px",3,"href"],["href","https://developers.homebridge.io/#/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://developers.homebridge.io/HAP-NodeJS/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge-plugin-template","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge/wiki/Verified-Plugins","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"]],template:function(c,s){c&1&&(t(0,"div",0)(1,"h3",1),r(2),i(3,"translate"),a()(),t(4,"div",2)(5,"div",3),f("click",function(){return s.toggleSection("general")}),t(6,"h5",4),p(7,"i",5),r(8),i(9,"translate"),a()(),b(10,M,45,36,"ul",6),a(),t(11,"div",7)(12,"div",3),f("click",function(){return s.toggleSection("dev")}),t(13,"h5",4),p(14,"i",5),r(15),i(16,"translate"),a()(),b(17,j,56,46,"ul",8),a()),c&2&&(e(2),m(n(3,13,"support.title")),e(3),l("aria-expanded",s.showFields().general?"true":"false")("aria-controls","fieldsGeneral"),e(2),h(x(19,$,s.showFields().general,!s.showFields().general)),e(),d(" ",n(9,15,"support.links.title")," "),e(2),g(s.showFields().general?10:-1),e(2),l("aria-expanded",s.showFields().dev?"true":"false")("aria-controls","fieldsDev"),e(2),h(x(22,$,s.showFields().dev,!s.showFields().dev)),e(),d(" ",n(16,17,"support.dev.title")," "),e(2),g(s.showFields().dev?17:-1))},dependencies:[T],encapsulation:2})}return o})();export{A as SupportComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as c}from"./chunk-
|
|
1
|
+
import{b as c}from"./chunk-5DKBUEKC.js";import{J as r}from"./chunk-M6KB66ZD.js";import{X as a,aa as o}from"./chunk-MKV5RAJQ.js";import{h as i}from"./chunk-B4AJQJMI.js";var h=(()=>{class t{cache=null;CACHE_DURATION_MS=6e4;getToken(){let n=Date.now();if(this.cache&&n-this.cache.timestamp<this.CACHE_DURATION_MS)return this.cache.token;let e=window.localStorage.getItem(r.jwt.tokenKey);return this.cache={token:e,timestamp:n},e}invalidateCache(){this.cache=null}static \u0275fac=function(e){return new(e||t)};static \u0275prov=a({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var p=(()=>{class t{$auth=o(c);$tokenCache=o(h);isAuthenticated(){return i(this,null,function*(){if(!this.$tokenCache.getToken())return this.$auth.token=null,this.$auth.user={},this.$tokenCache.invalidateCache(),!1;try{let e=this.$auth.isLoggedIn();return e||(this.$auth.token=null,this.$auth.user={},this.$tokenCache.invalidateCache()),e}catch{return console.warn("Token validation error, clearing auth state"),this.$auth.logout(),this.$tokenCache.invalidateCache(),!1}})}static \u0275fac=function(e){return new(e||t)};static \u0275prov=a({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();export{p as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as bi}from"./chunk-V5PTPKEY.js";import{a as dt,b as Pe,c as $e,d as De}from"./chunk-UQ2S4WMW.js";import{a as ue,b as hi,c as Vn,d as Mt}from"./chunk-LB5QMOKJ.js";import{a as ci}from"./chunk-H2D3SCVU.js";import{a as ui}from"./chunk-FTXEGQIN.js";import{a as li,b as si,c as di}from"./chunk-BMOLDRJ3.js";import{a as ri}from"./chunk-LS3PT3EF.js";import{a as Ge}from"./chunk-H7F7H5MW.js";import{a as gi}from"./chunk-XLJ6VVK3.js";import{a as oi,c as Se,d as ct,e as qe,f as mt,g as pt,h as gt,i as ye,k as ut,l as _t,m as ft,w as ai,y as ht}from"./chunk-73LLH6JC.js";import{a as Bn}from"./chunk-KPSGNAPN.js";import{a as wn}from"./chunk-YM6RL7NW.js";import{a as kn}from"./chunk-FJB6YCFU.js";import{a as Sn}from"./chunk-SVEGWVQJ.js";import{a as Mn}from"./chunk-JUCPYKUR.js";import{a as En}from"./chunk-2Y6QBPFY.js";import{a as ve}from"./chunk-BI4XMWOC.js";import{a as _n}from"./chunk-DEM3FH7C.js";import{a as fn}from"./chunk-LRB7FQNQ.js";import{a as hn}from"./chunk-XQXAVYM6.js";import{a as bn}from"./chunk-S4O5HRCM.js";import{a as Cn}from"./chunk-RAG53DHZ.js";import{a as vn}from"./chunk-3YTNATAH.js";import{a as xn}from"./chunk-JNSPIONO.js";import{a as yn}from"./chunk-LOEOVQRM.js";import{a as ln}from"./chunk-P3DOEH3R.js";import{a as sn}from"./chunk-HKOUIAFO.js";import{a as dn}from"./chunk-LHXNE56J.js";import{a as cn}from"./chunk-QK4CWVVD.js";import{a as mn}from"./chunk-UDXPJS32.js";import{a as pn}from"./chunk-WOXYSKNU.js";import{a as gn}from"./chunk-YSJHLHJ6.js";import{a as un}from"./chunk-FKJY3Z2V.js";import{a as St,b as bt,c as _i,d as fi}from"./chunk-7INH3WTY.js";import{a as kt,c as mi,d as pi}from"./chunk-ZCGZM7LU.js";import{a as Ci}from"./chunk-3V7SIJRZ.js";import{a as nt,b as ot,c as at,d as rt,e as lt,f as st,g as Ie,m as q,n as le,o as Zt,p as ei,q as ti,r as ii,s as ni,t as xe}from"./chunk-HHCM4VPQ.js";import{e as pe}from"./chunk-TWKIJ7CI.js";import{C as Ce,D as Xt,b as Te,c as qt,e as he,j as Gt,l as be,n as Jt,q as Kt,t as et,u as tt,w as it,x as Qt,y as Yt}from"./chunk-D4DHXSWV.js";import{b as H}from"./chunk-YZSYJJ4L.js";import{E as L,F as W,H as U,J as fe,K as N,q as zt,w as Wt}from"./chunk-6CVW2OLK.js";import{Ab as _,Ac as re,Bc as Ve,Cb as ee,Cc as Rt,Db as te,Eb as ie,Ec as m,F as Me,Fb as x,Fc as g,Gb as l,Gc as z,Hb as r,Ib as C,Jb as T,Kb as I,Lb as J,Mb as jt,Nb as Ht,Nc as Xe,O as Bt,Oc as We,Pc as Ze,R as Oe,Rb as V,Sb as ae,Ua as ce,Va as At,X as Ee,Xb as E,Ya as Ft,Yb as ne,Za as o,Zb as p,aa as b,d as me,ea as se,ec as Je,fc as Ke,ga as y,gc as Qe,ha as B,hc as Re,ic as ze,jc as G,kc as c,lc as k,mb as R,mc as w,n as He,nb as F,nc as _e,oc as Ye,pb as Lt,qb as Ut,rc as Q,sa as v,sc as Y,tb as wt,tc as X,va as Nt,vc as Ot,xc as oe,yb as P,yc as de,zb as u,zc as ke}from"./chunk-MKV5RAJQ.js";import{a as en}from"./chunk-XPSIQPO4.js";import{a as tn}from"./chunk-YLRX4V4V.js";import{a as nn}from"./chunk-Q4PUZM2R.js";import{a as on}from"./chunk-FRMRAPF2.js";import{a as an}from"./chunk-MPQEE6FH.js";import{a as rn}from"./chunk-WOMMYJV2.js";import{a as D,b as A,c as Dt,g as Z,h as S}from"./chunk-B4AJQJMI.js";var Fe=Z(dt(),1);var vi=(()=>{class i{jsonSchemaForm=b(bt,{host:!0,self:!0,optional:!0});jsfPatch=We(!1,{});constructor(){let e=this.jsonSchemaForm,n=e.jsf.buildLayout.bind(e.jsf);e.jsf.buildLayout=t=>{if(n(t),e.jsf.formValues&&this.jsfPatch())return this.fixNestedArrayLayout(e.jsf.layout,e.jsf.formValues)}}fixNestedArrayLayout(e,n){return this.fixArray(e,n,""),e}fixArray(e,n,t){if(Array.isArray(e)){let a=e.filter(f=>f.name!=="_bridge"),d=a.filter(f=>f.items&&Array.isArray(f.items)).flatMap(f=>f.items).filter(f=>f.dataType==="array"||f.arrayItem);a.concat(d).filter(f=>f.dataType==="array"||f.arrayItem).forEach(f=>{this.fixNestedArray(f,n,t)})}else this.fixNestedArray(e,n,t)}fixNestedArray(e,n,t){if(e.items&&Array.isArray(e.items)){let a=e.items.find(d=>d.type==="$ref");if(a){let d=e.items.filter(M=>M.type==="section"||M.type==="div"),h=d.length>0?d.reduce((M,$)=>M.id>$.id?M:$):this.getItemTemplateFromRef(a),f=this.getDataFromPointer(n,a.dataPointer.replace(t,""));if(f===null)return;if(Array.isArray(f)){for(;e.items.length-1<f.length;){let M=kt(h);M._id=pi("new_"),e.items.unshift(M)}f.forEach((M,$)=>{this.fixArray(e.items[$],M,a.dataPointer)})}else this.fixArray(e.items,n,a.dataPointer)}else this.fixArray(e.items,n,t);e.items.filter(d=>d.items&&Array.isArray(d.items)).forEach(d=>{this.fixArray(d.items,n,t)})}}getDataFromPointer(e,n){let t=e;return n.substring(1).split(/\//).filter(a=>a!=="-").forEach(a=>{try{t=t[a]}catch{t=null}}),t}getItemTemplateFromRef(e){let n={type:"section",items:[]},t=kt(e);return mi(t,n),t}static \u0275fac=function(n){return new(n||i)};static \u0275dir=Lt({type:i,selectors:[["","jsfPatch",""]],inputs:{jsfPatch:[1,"jsfPatch"]}})}return i})();function Tn(i,s){if(i&1){let e=V();l(0,"json-schema-form",1),E("onChanges",function(t){y(e);let a=p();return B(a.onChanges(t))})("isValid",function(t){y(e);let a=p();return B(a.validChange(t))}),r()}if(i&2){let e=p();x("jsfPatch",e.configSchema().fixArrays)("options",e.jsonFormOptions)("schema",e.configSchema().schema)("UISchema",e.configSchema().uiSchema)("layout",e.configSchema().layout)("form",e.configSchema().form)("data",e.currentData)("language",e.language)}}var Ct=(()=>{class i{$settings=b(H);availableLanguages=["de","en","es","fr","it","pt","zh"];configSchema=We.required({});data=We.required({});dataChange=Xe();dataChanged=Xe();isValid=Xe();currentData;language="en";jsonFormOptions={addSubmit:!1,loadExternalAssets:!1,returnEmptyFields:!1,setSchemaDefaults:!0,autocomplete:!1};constructor(){Nt(()=>{this.currentData=this.data()})}ngOnInit(){let e=this.$settings.env.lang.split("-")[0];this.availableLanguages.includes(e)&&(this.language=e)}onChanges(e){this.dataChange.emit(e),this.dataChanged.emit(e)}validChange(e){this.isValid.emit(e)}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=F({type:i,selectors:[["app-schema-form"]],inputs:{configSchema:[1,"configSchema"],data:[1,"data"]},outputs:{dataChange:"dataChange",dataChanged:"dataChanged",isValid:"isValid"},decls:2,vars:1,consts:[["framework","bootstrap-5",1,"ng-bs5-validate",3,"jsfPatch","options","schema","UISchema","layout","form","data","language"],["framework","bootstrap-5",1,"ng-bs5-validate",3,"onChanges","isValid","jsfPatch","options","schema","UISchema","layout","form","data","language"]],template:function(n,t){n&1&&(jt(0),u(1,Tn,1,8,"json-schema-form",0),Ht()),n&2&&(o(),_(t.configSchema().schema?1:-1))},dependencies:[_i,bt,vi],encapsulation:2})}return i})();var Ne=(()=>{class i{$api=b(N);$modal=b(le);$toastr=b(U);$translate=b(L);injector=b(se);openCorrectRestartModalForPlugin(e){return S(this,null,function*(){let n=yield this.getChildBridgesForPlugin(e);if(n.length){let t=R([{provide:ai,useValue:{bridges:n.map(a=>({name:a.name,username:a.username,matterSerialNumber:a.matterSerialNumber}))}}],this.injector);this.$modal.open(hi,{size:"lg",backdrop:"static",injector:t})}else this.$modal.open(ue,{size:"lg",backdrop:"static"})})}getChildBridgesForPlugin(e){return S(this,null,function*(){try{return(yield this.$api.get("/status/homebridge/child-bridges")).filter(t=>e===t.plugin)}catch(n){return console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),[]}})}static \u0275fac=function(n){return new(n||i)};static \u0275prov=Ee({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();var In=Dt({"../../../../i18n/bg.json":()=>en(),"../../../../i18n/ca.json":()=>tn(),"../../../../i18n/cs.json":()=>nn(),"../../../../i18n/de.json":()=>on(),"../../../../i18n/en.json":()=>an(),"../../../../i18n/es.json":()=>rn(),"../../../../i18n/fi.json":()=>ln(),"../../../../i18n/fr.json":()=>sn(),"../../../../i18n/he.json":()=>dn(),"../../../../i18n/hu.json":()=>cn(),"../../../../i18n/id.json":()=>mn(),"../../../../i18n/it.json":()=>pn(),"../../../../i18n/ja.json":()=>gn(),"../../../../i18n/ko.json":()=>un(),"../../../../i18n/mk.json":()=>_n(),"../../../../i18n/nl.json":()=>fn(),"../../../../i18n/no.json":()=>hn(),"../../../../i18n/pl.json":()=>bn(),"../../../../i18n/pt-BR.json":()=>Cn(),"../../../../i18n/pt.json":()=>vn(),"../../../../i18n/ru.json":()=>xn(),"../../../../i18n/sl.json":()=>yn(),"../../../../i18n/sv.json":()=>Bn(),"../../../../i18n/th.json":()=>wn(),"../../../../i18n/tr.json":()=>kn(),"../../../../i18n/uk.json":()=>Sn(),"../../../../i18n/zh-CN.json":()=>Mn(),"../../../../i18n/zh-TW.json":()=>En()});var Pn=["custompluginui"];function $n(i,s){i&1&&(l(0,"div",6),C(1,"i",18),r())}function Dn(i,s){if(i&1){let e=V();l(0,"div",8)(1,"app-schema-form",19),E("dataChanged",function(t){y(e);let a=p();return B(a.schemaFormUpdatedSubject.next(t))})("isValid",function(t){y(e);let a=p();return B(a.onIsValid(t))}),r()()}if(i&2){let e=p();o(),x("configSchema",e.schema)("data",e.pluginConfig[0])}}function Nn(i,s){if(i&1){let e=V();l(0,"button",24),E("click",function(){y(e);let t=p(2);return B(t.formActionSubject.next("cancel"))}),c(1),r()}if(i&2){let e=p(2);o(),w(" ",e.formCancelButtonLabel()," ")}}function An(i,s){if(i&1){let e=V();l(0,"button",25),E("click",function(){y(e);let t=p(2);return B(t.formActionSubject.next("submit"))}),c(1),r()}if(i&2){let e=p(2);x("disabled",!e.formValid()),o(),w(" ",e.formSubmitButtonLabel()," ")}}function Fn(i,s){if(i&1){let e=V();l(0,"div",8)(1,"app-schema-form",20),E("dataChange",function(t){y(e);let a=p();return B(a.formData.set(t))})("dataChanged",function(t){y(e);let a=p();return B(a.formUpdatedSubject.next(t))})("isValid",function(t){y(e);let a=p();return B(a.formValidEvent(t))}),r(),l(2,"div",21),u(3,Nn,2,1,"button",22),u(4,An,2,2,"button",23),r()()}if(i&2){let e=p();o(),x("configSchema",e.formSchema())("data",e.formData()),o(2),_(e.formCancelButtonLabel()?3:-1),o(),_(e.formSubmitButtonLabel()?4:-1)}}function Ln(i,s){i&1&&(l(0,"div",9),C(1,"i",18),r())}function Un(i,s){if(i&1&&(C(0,"i",26),m(1,"translate")),i&2){let e=p();G(e.formIsValid()?"fa-circle-check green-text":e.strictValidation()?"fa-circle-exclamation red-text":"fa-circle-exclamation orange-text"),x("ngbTooltip",g(1,4,e.formIsValid()?"form.label_valid":e.strictValidation()?"form.label_invalid_strict":"form.label_invalid"))("openDelay",150)}}function jn(i,s){i&1&&(c(0),m(1,"translate")),i&2&&w(" ",g(1,1,"form.button_save")," ")}function Hn(i,s){i&1&&C(0,"i",17)}var xi=(()=>{class i{$activeModal=b(q);$api=b(N);$cb=b(Ne);$plugin=b(Be);$settings=b(H);$toastr=b(U);$translate=b(L);$ws=b(ve);modalData=b(qe);customPluginUiElementTarget=Ze("custompluginui",{});plugin=this.modalData.plugin;schema=this.modalData.schema;pluginConfig=this.modalData.pluginConfig??[];pluginAlias=v("",{});pluginType=v("platform",{});loading=v(!0,{});saveInProgress=v(!1,{});pluginSpinner=v(!1,{});saveButtonDisabled=v(!1,{});uiLoaded=v(!1,{});showSchemaForm=v(!1,{});formId=v(void 0,{});formSchema=v(void 0,{});formData=v(void 0,{});formSubmitButtonLabel=v(void 0,{});formCancelButtonLabel=v(void 0,{});formValid=v(!0,{});isFirstSave=v(!1,{});formIsValid=v(!0,{});strictValidation=v(!1,{});io;basePath="";iframe;schemaFormRecentlyUpdated=!1;schemaFormRecentlyRefreshed=!1;destroy$=new me;schemaFormUpdatedSubject=new me;schemaFormRefreshSubject=new me;formUpdatedSubject=new me;formActionSubject=new me;ngOnInit(){let e=this.schema,n=this.plugin;if(!e||!n){console.error("CustomPluginsComponent: schema or plugin not provided"),this.$activeModal.dismiss("Missing required data");return}this.pluginAlias.set(e.pluginAlias),this.pluginType.set(e.pluginType),this.strictValidation.set(e.strictValidation),this.pluginConfig.length===0&&this.isFirstSave.set(!0),this.io=this.$ws.connectToNamespace("plugins/settings-ui"),this.basePath=`/plugins/settings-ui/${encodeURIComponent(n.name)}`,this.initialize(),this.schemaFormRefreshSubject.pipe(Me(250),Oe(this.destroy$)).subscribe(this.schemaFormRefresh.bind(this)),this.schemaFormUpdatedSubject.pipe(Me(250),Bt(1),Oe(this.destroy$)).subscribe(t=>{this.schemaFormUpdated(t)}),this.formUpdatedSubject.pipe(Me(100),Bt(1),Oe(this.destroy$)).subscribe(this.formUpdated.bind(this)),this.formActionSubject.pipe(Oe(this.destroy$)).subscribe(this.formActionEvent.bind(this)),window.addEventListener("message",this.handleMessage,!1)}ngOnDestroy(){window.removeEventListener("message",this.handleMessage),this.destroy$.next(),this.destroy$.complete(),this.io&&this.io.end(),this.schemaFormRefreshSubject.complete(),this.schemaFormUpdatedSubject.complete(),this.formUpdatedSubject.complete(),this.formActionSubject.complete()}onIsValid(e){this.formIsValid.set(e)}formValidEvent(e){this.formValid.set(e)}savePluginConfig(e=!1){return S(this,null,function*(){let n=this.plugin;if(n){this.saveInProgress.set(!0);try{let t=yield this.$api.post(`/config-editor/plugin/${encodeURIComponent(n.name)}`,this.pluginConfig);if(this.saveInProgress.set(!1),e){if(this.isFirstSave()&&this.$settings.env.recommendChildBridges&&t[0]?.platform){this.$activeModal.close(),this.$plugin.bridgeSettings(n,!0);return}this.$activeModal.close(),yield this.$cb.openCorrectRestartModalForPlugin(n.name)}}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error")),this.saveInProgress.set(!1)}}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}initialize(){return S(this,null,function*(){let e=this.plugin;e&&(this.io.socket.emit("start",e.name),this.io.socket.on("response",n=>{n.action="response",this.iframe.contentWindow.postMessage(n,fe.api.origin)}),this.io.socket.on("stream",n=>{n.action="stream",this.iframe.contentWindow.postMessage(n,fe.api.origin)}),this.io.socket.on("ready",()=>{this.loading.set(!1),this.loadUi()}))})}loadUi(){let e=this.plugin;e&&(this.iframe=this.customPluginUiElementTarget()?.nativeElement,this.iframe&&(this.iframe.src=`${fe.api.base+this.basePath}/index.html?origin=${encodeURIComponent(location.origin)}&v=${encodeURIComponent(e.installedVersion)}`))}handleMessage=e=>{if(e.origin===fe.api.origin||e.origin===window.origin)switch(e.data.action){case"loaded":this.injectDefaultStyles(e),this.confirmReady(e);break;case"request":{this.handleRequest(e);break}case"scrollHeight":this.setiFrameHeight(e),this.uiLoaded.set(!0);break;case"config.get":{this.requestResponse(e,this.getConfigBlocks());break}case"config.save":{this.requestResponse(e,this.savePluginConfig());break}case"config.update":{this.handleUpdateConfig(e,e.data.pluginConfig);break}case"config.schema":{this.requestResponse(e,this.schema);break}case"cachedAccessories.get":{this.handleGetCachedAccessories(e);break}case"cachedMatterAccessories.get":{this.handleGetCachedMatterAccessories(e);break}case"schema.show":{this.formEnd(),this.showSchemaForm.set(!0);break}case"schema.hide":{this.showSchemaForm.set(!1);break}case"form.create":{this.showSchemaForm.set(!1),this.formCreate(e.data.formId,e.data.schema,e.data.data,e.data.submitButton,e.data.cancelButton);break}case"form.end":{this.formEnd();break}case"user.lightingMode":{this.requestResponse(e,this.$settings.actualLightingMode);break}case"i18n.lang":{this.requestResponse(e,this.$translate.getCurrentLang());break}case"i18n.translations":{this.requestResponse(e,In(`../../../../i18n/${this.$translate.getCurrentLang()}.json`));break}case"close":{this.$activeModal.close();break}case"toast.success":this.$toastr.success(e.data.message,e.data.title);break;case"toast.error":this.$toastr.error(e.data.message,e.data.title);break;case"toast.warning":this.$toastr.warning(e.data.message,e.data.title);break;case"toast.info":this.$toastr.info(e.data.message,e.data.title);break;case"spinner.show":this.pluginSpinner.set(!0);break;case"spinner.hide":this.pluginSpinner.set(!1);break;case"button.save.disabled":this.saveButtonDisabled.set(!0);break;case"button.save.enabled":this.saveButtonDisabled.set(!1);break}};confirmReady(e){e.source.postMessage({action:"ready"},e.origin)}setiFrameHeight(e){this.iframe.style.height=`${e.data.scrollHeight+10}px`}handleRequest(e){this.io.socket.emit("request",e.data)}handleUpdateConfig(e,n){if(this.showSchemaForm()&&this.schemaFormRefreshSubject.next(void 0),!Array.isArray(n))return this.$toastr.error(this.$translate.instant("plugins.config.must_be_array"),this.$translate.instant("toast.title_error")),this.requestResponse(e,{message:this.$translate.instant("plugins.config.must_be_array")},!1);for(let t of n)if(typeof t!="object"||Array.isArray(t))return this.$toastr.error(this.$translate.instant("plugins.config.must_be_array_objects"),this.$translate.instant("toast.title_error")),this.requestResponse(e,{message:this.$translate.instant("plugins.config.must_be_array_objects")},!1);return this.updateConfigBlocks(n),this.requestResponse(e,this.getConfigBlocks())}requestResponse(e,n,t=!0){e.source.postMessage({action:"response",requestId:e.data.requestId,success:t,data:n},e.origin)}injectDefaultStyles(e){return S(this,null,function*(){let n=Array.from(window.document.body.classList).find(M=>M.startsWith("config-ui-x-")),t=window.document.body.classList.contains("dark-mode"),a=e.source;a.postMessage({action:"body-class",class:n},e.origin),a.postMessage({action:"body-class",class:"modal-content"},e.origin),t&&a.postMessage({action:"body-class",class:"dark-mode"},e.origin);let d=Array.from(document.querySelectorAll("link"));for(let M of d)if(M.getAttribute("rel")==="stylesheet"){let $=M.getAttribute("href"),ge=document.baseURI+($.startsWith("/")?$.substring(1):$);a.postMessage({action:"link-element",href:ge,rel:"stylesheet"},e.origin)}let h=Array.from(document.querySelectorAll("style"));for(let M of h)a.postMessage({action:"inline-style",style:M.innerHTML},e.origin);let f=`
|
|
1
|
+
import{a as bi}from"./chunk-YTCQIUDM.js";import{a as dt,b as Pe,c as $e,d as De}from"./chunk-AK7DHUFI.js";import{a as ue,b as hi,c as Vn,d as Mt}from"./chunk-EHWZNITX.js";import{a as ci}from"./chunk-H2D3SCVU.js";import{a as ui}from"./chunk-6UOFHEOA.js";import{a as li,b as si,c as di}from"./chunk-BMOLDRJ3.js";import{a as ri}from"./chunk-2QHT7UTY.js";import{a as Ge}from"./chunk-H7F7H5MW.js";import{a as gi}from"./chunk-XLJ6VVK3.js";import{a as oi,c as Se,d as ct,e as qe,f as mt,g as pt,h as gt,i as ye,k as ut,l as _t,m as ft,w as ai,y as ht}from"./chunk-73LLH6JC.js";import{a as Bn}from"./chunk-KPSGNAPN.js";import{a as wn}from"./chunk-YM6RL7NW.js";import{a as kn}from"./chunk-FJB6YCFU.js";import{a as Sn}from"./chunk-SVEGWVQJ.js";import{a as Mn}from"./chunk-JUCPYKUR.js";import{a as En}from"./chunk-2Y6QBPFY.js";import{a as ve}from"./chunk-IPCY24VP.js";import{a as _n}from"./chunk-DEM3FH7C.js";import{a as fn}from"./chunk-LRB7FQNQ.js";import{a as hn}from"./chunk-XQXAVYM6.js";import{a as bn}from"./chunk-S4O5HRCM.js";import{a as Cn}from"./chunk-RAG53DHZ.js";import{a as vn}from"./chunk-3YTNATAH.js";import{a as xn}from"./chunk-JNSPIONO.js";import{a as yn}from"./chunk-LOEOVQRM.js";import{a as ln}from"./chunk-P3DOEH3R.js";import{a as sn}from"./chunk-HKOUIAFO.js";import{a as dn}from"./chunk-LHXNE56J.js";import{a as cn}from"./chunk-QK4CWVVD.js";import{a as mn}from"./chunk-UDXPJS32.js";import{a as pn}from"./chunk-WOXYSKNU.js";import{a as gn}from"./chunk-YSJHLHJ6.js";import{a as un}from"./chunk-FKJY3Z2V.js";import{a as St,b as bt,c as _i,d as fi}from"./chunk-MJD4YCIZ.js";import{a as kt,c as mi,d as pi}from"./chunk-ZCGZM7LU.js";import{a as Ci}from"./chunk-ZT2XJVT5.js";import{a as nt,b as ot,c as at,d as rt,e as lt,f as st,g as Ie,m as q,n as le,o as Zt,p as ei,q as ti,r as ii,s as ni,t as xe}from"./chunk-QZUDFUPG.js";import{e as pe}from"./chunk-2HDDFLX5.js";import{C as Ce,D as Xt,b as Te,c as qt,e as he,j as Gt,l as be,n as Jt,q as Kt,t as et,u as tt,w as it,x as Qt,y as Yt}from"./chunk-Z62MEN4O.js";import{b as H}from"./chunk-MXLTCL2C.js";import{E as L,F as W,H as U,J as fe,K as N,q as zt,w as Wt}from"./chunk-M6KB66ZD.js";import{Ab as _,Ac as re,Bc as Ve,Cb as ee,Cc as Rt,Db as te,Eb as ie,Ec as m,F as Me,Fb as x,Fc as g,Gb as l,Gc as z,Hb as r,Ib as C,Jb as T,Kb as I,Lb as J,Mb as jt,Nb as Ht,Nc as Xe,O as Bt,Oc as We,Pc as Ze,R as Oe,Rb as V,Sb as ae,Ua as ce,Va as At,X as Ee,Xb as E,Ya as Ft,Yb as ne,Za as o,Zb as p,aa as b,d as me,ea as se,ec as Je,fc as Ke,ga as y,gc as Qe,ha as B,hc as Re,ic as ze,jc as G,kc as c,lc as k,mb as R,mc as w,n as He,nb as F,nc as _e,oc as Ye,pb as Lt,qb as Ut,rc as Q,sa as v,sc as Y,tb as wt,tc as X,va as Nt,vc as Ot,xc as oe,yb as P,yc as de,zb as u,zc as ke}from"./chunk-MKV5RAJQ.js";import{a as en}from"./chunk-XPSIQPO4.js";import{a as tn}from"./chunk-YLRX4V4V.js";import{a as nn}from"./chunk-Q4PUZM2R.js";import{a as on}from"./chunk-FRMRAPF2.js";import{a as an}from"./chunk-MPQEE6FH.js";import{a as rn}from"./chunk-WOMMYJV2.js";import{a as D,b as A,c as Dt,g as Z,h as S}from"./chunk-B4AJQJMI.js";var Fe=Z(dt(),1);var vi=(()=>{class i{jsonSchemaForm=b(bt,{host:!0,self:!0,optional:!0});jsfPatch=We(!1,{});constructor(){let e=this.jsonSchemaForm,n=e.jsf.buildLayout.bind(e.jsf);e.jsf.buildLayout=t=>{if(n(t),e.jsf.formValues&&this.jsfPatch())return this.fixNestedArrayLayout(e.jsf.layout,e.jsf.formValues)}}fixNestedArrayLayout(e,n){return this.fixArray(e,n,""),e}fixArray(e,n,t){if(Array.isArray(e)){let a=e.filter(f=>f.name!=="_bridge"),d=a.filter(f=>f.items&&Array.isArray(f.items)).flatMap(f=>f.items).filter(f=>f.dataType==="array"||f.arrayItem);a.concat(d).filter(f=>f.dataType==="array"||f.arrayItem).forEach(f=>{this.fixNestedArray(f,n,t)})}else this.fixNestedArray(e,n,t)}fixNestedArray(e,n,t){if(e.items&&Array.isArray(e.items)){let a=e.items.find(d=>d.type==="$ref");if(a){let d=e.items.filter(M=>M.type==="section"||M.type==="div"),h=d.length>0?d.reduce((M,$)=>M.id>$.id?M:$):this.getItemTemplateFromRef(a),f=this.getDataFromPointer(n,a.dataPointer.replace(t,""));if(f===null)return;if(Array.isArray(f)){for(;e.items.length-1<f.length;){let M=kt(h);M._id=pi("new_"),e.items.unshift(M)}f.forEach((M,$)=>{this.fixArray(e.items[$],M,a.dataPointer)})}else this.fixArray(e.items,n,a.dataPointer)}else this.fixArray(e.items,n,t);e.items.filter(d=>d.items&&Array.isArray(d.items)).forEach(d=>{this.fixArray(d.items,n,t)})}}getDataFromPointer(e,n){let t=e;return n.substring(1).split(/\//).filter(a=>a!=="-").forEach(a=>{try{t=t[a]}catch{t=null}}),t}getItemTemplateFromRef(e){let n={type:"section",items:[]},t=kt(e);return mi(t,n),t}static \u0275fac=function(n){return new(n||i)};static \u0275dir=Lt({type:i,selectors:[["","jsfPatch",""]],inputs:{jsfPatch:[1,"jsfPatch"]}})}return i})();function Tn(i,s){if(i&1){let e=V();l(0,"json-schema-form",1),E("onChanges",function(t){y(e);let a=p();return B(a.onChanges(t))})("isValid",function(t){y(e);let a=p();return B(a.validChange(t))}),r()}if(i&2){let e=p();x("jsfPatch",e.configSchema().fixArrays)("options",e.jsonFormOptions)("schema",e.configSchema().schema)("UISchema",e.configSchema().uiSchema)("layout",e.configSchema().layout)("form",e.configSchema().form)("data",e.currentData)("language",e.language)}}var Ct=(()=>{class i{$settings=b(H);availableLanguages=["de","en","es","fr","it","pt","zh"];configSchema=We.required({});data=We.required({});dataChange=Xe();dataChanged=Xe();isValid=Xe();currentData;language="en";jsonFormOptions={addSubmit:!1,loadExternalAssets:!1,returnEmptyFields:!1,setSchemaDefaults:!0,autocomplete:!1};constructor(){Nt(()=>{this.currentData=this.data()})}ngOnInit(){let e=this.$settings.env.lang.split("-")[0];this.availableLanguages.includes(e)&&(this.language=e)}onChanges(e){this.dataChange.emit(e),this.dataChanged.emit(e)}validChange(e){this.isValid.emit(e)}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=F({type:i,selectors:[["app-schema-form"]],inputs:{configSchema:[1,"configSchema"],data:[1,"data"]},outputs:{dataChange:"dataChange",dataChanged:"dataChanged",isValid:"isValid"},decls:2,vars:1,consts:[["framework","bootstrap-5",1,"ng-bs5-validate",3,"jsfPatch","options","schema","UISchema","layout","form","data","language"],["framework","bootstrap-5",1,"ng-bs5-validate",3,"onChanges","isValid","jsfPatch","options","schema","UISchema","layout","form","data","language"]],template:function(n,t){n&1&&(jt(0),u(1,Tn,1,8,"json-schema-form",0),Ht()),n&2&&(o(),_(t.configSchema().schema?1:-1))},dependencies:[_i,bt,vi],encapsulation:2})}return i})();var Ne=(()=>{class i{$api=b(N);$modal=b(le);$toastr=b(U);$translate=b(L);injector=b(se);openCorrectRestartModalForPlugin(e){return S(this,null,function*(){let n=yield this.getChildBridgesForPlugin(e);if(n.length){let t=R([{provide:ai,useValue:{bridges:n.map(a=>({name:a.name,username:a.username,matterSerialNumber:a.matterSerialNumber}))}}],this.injector);this.$modal.open(hi,{size:"lg",backdrop:"static",injector:t})}else this.$modal.open(ue,{size:"lg",backdrop:"static"})})}getChildBridgesForPlugin(e){return S(this,null,function*(){try{return(yield this.$api.get("/status/homebridge/child-bridges")).filter(t=>e===t.plugin)}catch(n){return console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),[]}})}static \u0275fac=function(n){return new(n||i)};static \u0275prov=Ee({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();var In=Dt({"../../../../i18n/bg.json":()=>en(),"../../../../i18n/ca.json":()=>tn(),"../../../../i18n/cs.json":()=>nn(),"../../../../i18n/de.json":()=>on(),"../../../../i18n/en.json":()=>an(),"../../../../i18n/es.json":()=>rn(),"../../../../i18n/fi.json":()=>ln(),"../../../../i18n/fr.json":()=>sn(),"../../../../i18n/he.json":()=>dn(),"../../../../i18n/hu.json":()=>cn(),"../../../../i18n/id.json":()=>mn(),"../../../../i18n/it.json":()=>pn(),"../../../../i18n/ja.json":()=>gn(),"../../../../i18n/ko.json":()=>un(),"../../../../i18n/mk.json":()=>_n(),"../../../../i18n/nl.json":()=>fn(),"../../../../i18n/no.json":()=>hn(),"../../../../i18n/pl.json":()=>bn(),"../../../../i18n/pt-BR.json":()=>Cn(),"../../../../i18n/pt.json":()=>vn(),"../../../../i18n/ru.json":()=>xn(),"../../../../i18n/sl.json":()=>yn(),"../../../../i18n/sv.json":()=>Bn(),"../../../../i18n/th.json":()=>wn(),"../../../../i18n/tr.json":()=>kn(),"../../../../i18n/uk.json":()=>Sn(),"../../../../i18n/zh-CN.json":()=>Mn(),"../../../../i18n/zh-TW.json":()=>En()});var Pn=["custompluginui"];function $n(i,s){i&1&&(l(0,"div",6),C(1,"i",18),r())}function Dn(i,s){if(i&1){let e=V();l(0,"div",8)(1,"app-schema-form",19),E("dataChanged",function(t){y(e);let a=p();return B(a.schemaFormUpdatedSubject.next(t))})("isValid",function(t){y(e);let a=p();return B(a.onIsValid(t))}),r()()}if(i&2){let e=p();o(),x("configSchema",e.schema)("data",e.pluginConfig[0])}}function Nn(i,s){if(i&1){let e=V();l(0,"button",24),E("click",function(){y(e);let t=p(2);return B(t.formActionSubject.next("cancel"))}),c(1),r()}if(i&2){let e=p(2);o(),w(" ",e.formCancelButtonLabel()," ")}}function An(i,s){if(i&1){let e=V();l(0,"button",25),E("click",function(){y(e);let t=p(2);return B(t.formActionSubject.next("submit"))}),c(1),r()}if(i&2){let e=p(2);x("disabled",!e.formValid()),o(),w(" ",e.formSubmitButtonLabel()," ")}}function Fn(i,s){if(i&1){let e=V();l(0,"div",8)(1,"app-schema-form",20),E("dataChange",function(t){y(e);let a=p();return B(a.formData.set(t))})("dataChanged",function(t){y(e);let a=p();return B(a.formUpdatedSubject.next(t))})("isValid",function(t){y(e);let a=p();return B(a.formValidEvent(t))}),r(),l(2,"div",21),u(3,Nn,2,1,"button",22),u(4,An,2,2,"button",23),r()()}if(i&2){let e=p();o(),x("configSchema",e.formSchema())("data",e.formData()),o(2),_(e.formCancelButtonLabel()?3:-1),o(),_(e.formSubmitButtonLabel()?4:-1)}}function Ln(i,s){i&1&&(l(0,"div",9),C(1,"i",18),r())}function Un(i,s){if(i&1&&(C(0,"i",26),m(1,"translate")),i&2){let e=p();G(e.formIsValid()?"fa-circle-check green-text":e.strictValidation()?"fa-circle-exclamation red-text":"fa-circle-exclamation orange-text"),x("ngbTooltip",g(1,4,e.formIsValid()?"form.label_valid":e.strictValidation()?"form.label_invalid_strict":"form.label_invalid"))("openDelay",150)}}function jn(i,s){i&1&&(c(0),m(1,"translate")),i&2&&w(" ",g(1,1,"form.button_save")," ")}function Hn(i,s){i&1&&C(0,"i",17)}var xi=(()=>{class i{$activeModal=b(q);$api=b(N);$cb=b(Ne);$plugin=b(Be);$settings=b(H);$toastr=b(U);$translate=b(L);$ws=b(ve);modalData=b(qe);customPluginUiElementTarget=Ze("custompluginui",{});plugin=this.modalData.plugin;schema=this.modalData.schema;pluginConfig=this.modalData.pluginConfig??[];pluginAlias=v("",{});pluginType=v("platform",{});loading=v(!0,{});saveInProgress=v(!1,{});pluginSpinner=v(!1,{});saveButtonDisabled=v(!1,{});uiLoaded=v(!1,{});showSchemaForm=v(!1,{});formId=v(void 0,{});formSchema=v(void 0,{});formData=v(void 0,{});formSubmitButtonLabel=v(void 0,{});formCancelButtonLabel=v(void 0,{});formValid=v(!0,{});isFirstSave=v(!1,{});formIsValid=v(!0,{});strictValidation=v(!1,{});io;basePath="";iframe;schemaFormRecentlyUpdated=!1;schemaFormRecentlyRefreshed=!1;destroy$=new me;schemaFormUpdatedSubject=new me;schemaFormRefreshSubject=new me;formUpdatedSubject=new me;formActionSubject=new me;ngOnInit(){let e=this.schema,n=this.plugin;if(!e||!n){console.error("CustomPluginsComponent: schema or plugin not provided"),this.$activeModal.dismiss("Missing required data");return}this.pluginAlias.set(e.pluginAlias),this.pluginType.set(e.pluginType),this.strictValidation.set(e.strictValidation),this.pluginConfig.length===0&&this.isFirstSave.set(!0),this.io=this.$ws.connectToNamespace("plugins/settings-ui"),this.basePath=`/plugins/settings-ui/${encodeURIComponent(n.name)}`,this.initialize(),this.schemaFormRefreshSubject.pipe(Me(250),Oe(this.destroy$)).subscribe(this.schemaFormRefresh.bind(this)),this.schemaFormUpdatedSubject.pipe(Me(250),Bt(1),Oe(this.destroy$)).subscribe(t=>{this.schemaFormUpdated(t)}),this.formUpdatedSubject.pipe(Me(100),Bt(1),Oe(this.destroy$)).subscribe(this.formUpdated.bind(this)),this.formActionSubject.pipe(Oe(this.destroy$)).subscribe(this.formActionEvent.bind(this)),window.addEventListener("message",this.handleMessage,!1)}ngOnDestroy(){window.removeEventListener("message",this.handleMessage),this.destroy$.next(),this.destroy$.complete(),this.io&&this.io.end(),this.schemaFormRefreshSubject.complete(),this.schemaFormUpdatedSubject.complete(),this.formUpdatedSubject.complete(),this.formActionSubject.complete()}onIsValid(e){this.formIsValid.set(e)}formValidEvent(e){this.formValid.set(e)}savePluginConfig(e=!1){return S(this,null,function*(){let n=this.plugin;if(n){this.saveInProgress.set(!0);try{let t=yield this.$api.post(`/config-editor/plugin/${encodeURIComponent(n.name)}`,this.pluginConfig);if(this.saveInProgress.set(!1),e){if(this.isFirstSave()&&this.$settings.env.recommendChildBridges&&t[0]?.platform){this.$activeModal.close(),this.$plugin.bridgeSettings(n,!0);return}this.$activeModal.close(),yield this.$cb.openCorrectRestartModalForPlugin(n.name)}}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error")),this.saveInProgress.set(!1)}}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}initialize(){return S(this,null,function*(){let e=this.plugin;e&&(this.io.socket.emit("start",e.name),this.io.socket.on("response",n=>{n.action="response",this.iframe.contentWindow.postMessage(n,fe.api.origin)}),this.io.socket.on("stream",n=>{n.action="stream",this.iframe.contentWindow.postMessage(n,fe.api.origin)}),this.io.socket.on("ready",()=>{this.loading.set(!1),this.loadUi()}))})}loadUi(){let e=this.plugin;e&&(this.iframe=this.customPluginUiElementTarget()?.nativeElement,this.iframe&&(this.iframe.src=`${fe.api.base+this.basePath}/index.html?origin=${encodeURIComponent(location.origin)}&v=${encodeURIComponent(e.installedVersion)}`))}handleMessage=e=>{if(e.origin===fe.api.origin||e.origin===window.origin)switch(e.data.action){case"loaded":this.injectDefaultStyles(e),this.confirmReady(e);break;case"request":{this.handleRequest(e);break}case"scrollHeight":this.setiFrameHeight(e),this.uiLoaded.set(!0);break;case"config.get":{this.requestResponse(e,this.getConfigBlocks());break}case"config.save":{this.requestResponse(e,this.savePluginConfig());break}case"config.update":{this.handleUpdateConfig(e,e.data.pluginConfig);break}case"config.schema":{this.requestResponse(e,this.schema);break}case"cachedAccessories.get":{this.handleGetCachedAccessories(e);break}case"cachedMatterAccessories.get":{this.handleGetCachedMatterAccessories(e);break}case"schema.show":{this.formEnd(),this.showSchemaForm.set(!0);break}case"schema.hide":{this.showSchemaForm.set(!1);break}case"form.create":{this.showSchemaForm.set(!1),this.formCreate(e.data.formId,e.data.schema,e.data.data,e.data.submitButton,e.data.cancelButton);break}case"form.end":{this.formEnd();break}case"user.lightingMode":{this.requestResponse(e,this.$settings.actualLightingMode);break}case"i18n.lang":{this.requestResponse(e,this.$translate.getCurrentLang());break}case"i18n.translations":{this.requestResponse(e,In(`../../../../i18n/${this.$translate.getCurrentLang()}.json`));break}case"close":{this.$activeModal.close();break}case"toast.success":this.$toastr.success(e.data.message,e.data.title);break;case"toast.error":this.$toastr.error(e.data.message,e.data.title);break;case"toast.warning":this.$toastr.warning(e.data.message,e.data.title);break;case"toast.info":this.$toastr.info(e.data.message,e.data.title);break;case"spinner.show":this.pluginSpinner.set(!0);break;case"spinner.hide":this.pluginSpinner.set(!1);break;case"button.save.disabled":this.saveButtonDisabled.set(!0);break;case"button.save.enabled":this.saveButtonDisabled.set(!1);break}};confirmReady(e){e.source.postMessage({action:"ready"},e.origin)}setiFrameHeight(e){this.iframe.style.height=`${e.data.scrollHeight+10}px`}handleRequest(e){this.io.socket.emit("request",e.data)}handleUpdateConfig(e,n){if(this.showSchemaForm()&&this.schemaFormRefreshSubject.next(void 0),!Array.isArray(n))return this.$toastr.error(this.$translate.instant("plugins.config.must_be_array"),this.$translate.instant("toast.title_error")),this.requestResponse(e,{message:this.$translate.instant("plugins.config.must_be_array")},!1);for(let t of n)if(typeof t!="object"||Array.isArray(t))return this.$toastr.error(this.$translate.instant("plugins.config.must_be_array_objects"),this.$translate.instant("toast.title_error")),this.requestResponse(e,{message:this.$translate.instant("plugins.config.must_be_array_objects")},!1);return this.updateConfigBlocks(n),this.requestResponse(e,this.getConfigBlocks())}requestResponse(e,n,t=!0){e.source.postMessage({action:"response",requestId:e.data.requestId,success:t,data:n},e.origin)}injectDefaultStyles(e){return S(this,null,function*(){let n=Array.from(window.document.body.classList).find(M=>M.startsWith("config-ui-x-")),t=window.document.body.classList.contains("dark-mode"),a=e.source;a.postMessage({action:"body-class",class:n},e.origin),a.postMessage({action:"body-class",class:"modal-content"},e.origin),t&&a.postMessage({action:"body-class",class:"dark-mode"},e.origin);let d=Array.from(document.querySelectorAll("link"));for(let M of d)if(M.getAttribute("rel")==="stylesheet"){let $=M.getAttribute("href"),ge=document.baseURI+($.startsWith("/")?$.substring(1):$);a.postMessage({action:"link-element",href:ge,rel:"stylesheet"},e.origin)}let h=Array.from(document.querySelectorAll("style"));for(let M of h)a.postMessage({action:"inline-style",style:M.innerHTML},e.origin);let f=`
|
|
2
2
|
body {
|
|
3
3
|
height: unset !important;
|
|
4
4
|
background-color: ${t?"#242424":"#FFFFFF"} !important;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as me,c as _e}from"./chunk-DSPXMSMH.js";import"./chunk-IANXHCHI.js";import{a as le}from"./chunk-JN6IF7KG.js";import{a as ue}from"./chunk-H2D3SCVU.js";import{a as ge}from"./chunk-ETZZ36JZ.js";import"./chunk-73LLH6JC.js";import"./chunk-BI4XMWOC.js";import{a as ce,b as de,c as pe}from"./chunk-YMEXNW5V.js";import{m as D,n as re,t as se}from"./chunk-HHCM4VPQ.js";import"./chunk-TWKIJ7CI.js";import{a as J}from"./chunk-BGCYR25X.js";import{b as Y}from"./chunk-CDW26RZX.js";import{C as ae,c as Z,e as ee,f as te,i as ie,l as ne,m as oe}from"./chunk-D4DHXSWV.js";import{b as X}from"./chunk-YZSYJJ4L.js";import{E as K,F as S,K as Q}from"./chunk-6CVW2OLK.js";import{Ab as y,Cb as W,Db as $,Eb as V,Ec as s,Fb as f,Fc as l,Gb as a,Gc as U,Hb as r,Ib as p,Jb as N,Kb as O,Lb as R,Rb as k,Ua as H,Xb as g,Za as o,Zb as d,aa as b,ga as C,ha as x,ic as F,jc as j,kc as c,lc as m,mc as w,nb as M,rc as A,sa as B,sc as T,tc as E,xc as z,yb as v,yc as q,zb as h,zc as G}from"./chunk-MKV5RAJQ.js";import{h as I}from"./chunk-B4AJQJMI.js";var be=(()=>{class t{$activeModal=b(D);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=M({type:t,selectors:[["ng-component"]],decls:42,vars:30,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"ms-2","mt-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),g("click",function(){return n.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),p(10,"i",6),r(),a(11,"h5",7),c(12),s(13,"translate"),r(),a(14,"ul",8)(15,"li"),c(16),s(17,"translate"),r(),a(18,"li"),c(19),s(20,"translate"),r()(),a(21,"h5",9),c(22),s(23,"translate"),r(),a(24,"ul",8)(25,"li"),c(26),s(27,"translate"),r(),a(28,"li"),c(29),s(30,"translate"),r(),a(31,"li"),c(32),s(33,"translate"),r()(),p(34,"app-support-banner"),r(),a(35,"div",10),p(36,"div",11),a(37,"div",12)(38,"button",13),g("click",function(){return n.dismissModal()}),c(39),s(40,"translate"),r()(),p(41,"div",14),r()()()),i&2&&(o(4),m(l(5,10,"support.title")),o(2),v("aria-label",l(7,12,"form.button_close")),o(6),m(l(13,14,"menu.label_accessories")),o(4),m(l(17,16,"accessories.support.acc_1")),o(3),m(l(20,18,"accessories.support.acc_2")),o(3),m(l(23,20,"accessories.title_rooms")),o(4),m(l(27,22,"accessories.support.rooms_1")),o(3),m(l(30,24,"accessories.support.rooms_2")),o(3),m(l(33,26,"accessories.support.rooms_3")),o(7),w(" ",l(40,28,"form.button_close")," "))},dependencies:[ge,S],encapsulation:2})}return t})();var Ce=()=>({standalone:!0}),fe=(()=>{class t{$activeModal=b(D);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"]],decls:28,vars:19,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-folder-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["autocomplete","off","type","text","id","form-name","autofocus","",1,"form-control","custom-input",3,"ngModelChange","keyup.enter","ngModel","ngModelOptions"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),g("click",function(){return n.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),p(10,"i",6),r(),a(11,"ul",7)(12,"li",8)(13,"label",9),c(14),s(15,"translate"),r(),a(16,"div",10)(17,"input",11),E("ngModelChange",function(P){return T(n.roomName,P)||(n.roomName=P),P}),g("keyup.enter",function(){return n.closeModal(n.roomName)}),r()()()()(),a(18,"div",12)(19,"div",13)(20,"button",14),g("click",function(){return n.dismissModal()}),c(21),s(22,"translate"),r()(),p(23,"div",15),a(24,"div",16)(25,"button",17),g("click",function(){return n.closeModal(n.roomName)}),c(26),s(27,"translate"),r()()()()()),i&2&&(o(4),m(l(5,8,"accessories.button_add_room")),o(2),v("aria-label",l(7,10,"form.button_close")),o(8),m(l(15,12,"accessories.room_name")),o(3),A("ngModel",n.roomName),f("ngModelOptions",z(18,Ce)),o(4),w(" ",l(22,14,"form.button_close")," "),o(4),f("disabled",!n.roomName),o(),w(" ",l(27,16,"form.button_save")," "))},dependencies:[ae,oe,Z,ee,te,ne,ie,S],encapsulation:2})}return t})();var ve=(()=>{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-arrow-alt-circle-down","accessory-icon"],[1,"accessory-label"]],template:function(i,n){i&1&&(N(0,"div",0),R(1,"i",1),N(2,"div",2),c(3),s(4,"translate"),O()()),i&2&&(o(3),m(l(4,1,"accessories.control.drag_here")))},dependencies:[S],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var xe=(t,u)=>({"fa-eye":t,"fa-eye-slash":u}),he=t=>({link:t}),ye=(t,u)=>u.name;function Me(t,u){if(t&1){let e=k();a(0,"button",8),s(1,"translate"),s(2,"translate"),g("click",function(){C(e);let n=d(2);return x(n.addRoom())}),p(3,"i",9),r(),a(4,"button",8),s(5,"translate"),s(6,"translate"),s(7,"translate"),s(8,"translate"),g("click",function(){C(e);let n=d(2);return x(n.hideHidden.set(!n.hideHidden()))}),p(9,"i",10),r(),a(10,"div",11)(11,"button",12),s(12,"translate"),s(13,"translate"),g("click",function(){C(e);let n=d(2);return x(n.toggleLayoutLock())}),p(14,"i",13),r(),a(15,"button",12),s(16,"translate"),s(17,"translate"),g("click",function(){C(e);let n=d(2);return x(n.toggleLayoutLock())}),p(18,"i",14),r()()}if(t&2){let e=d(2);f("hidden",e.isMobile())("openDelay",150)("ngbTooltip",l(1,18,"accessories.button_add_room")),v("aria-label",l(2,20,"accessories.button_add_room")),o(4),f("hidden",e.isMobile())("openDelay",150)("ngbTooltip",e.hideHidden()?l(5,22,"accessories.button_hidden_show"):l(6,24,"accessories.button_hidden_hide")),v("aria-label",e.hideHidden()?l(7,26,"accessories.button_hidden_show"):l(8,28,"accessories.button_hidden_hide")),o(5),j(G(38,xe,!e.hideHidden(),e.hideHidden())),o(2),f("disabled",!e.isMobile())("openDelay",150)("ngbTooltip",l(12,30,"form.button_unlock")),v("aria-label",l(13,32,"form.button_unlock")),o(4),f("disabled",e.isMobile())("openDelay",150)("ngbTooltip",l(16,34,"form.button_lock")),v("aria-label",l(17,36,"form.button_lock"))}}function Se(t,u){t&1&&p(0,"app-spinner")}function we(t,u){if(t&1&&(a(0,"div",0)(1,"div",21)(2,"h5",22),c(3),s(4,"translate"),r()()()),t&2){let e=d().$implicit,i=d(4);o(2),F("cursor-move",!i.isMobile()),o(),w(" ",e.name==="Default Room"?l(4,3,"accessories.control.default_room"):e.name," ")}}function ke(t,u){if(t&1&&(a(0,"div",25),p(1,"app-accessory-tile",26),r()),t&2){let e=d().$implicit;o(),f("service",e)}}function Ae(t,u){if(t&1&&h(0,ke,2,1,"div",25),t&2){let e=u.$implicit,i=d(6);y(!i.hideHidden()||!e.hidden?0:-1)}}function Te(t,u){if(t&1){let e=k();a(0,"div",23),E("dragulaModelChange",function(n){C(e);let _=d().$implicit;return T(_.services,n)||(_.services=n),x(n)}),$(1,Ae,1,1,null,null,W),p(3,"div",24)(4,"div",24)(5,"div",24)(6,"div",24)(7,"div",24)(8,"div",24)(9,"div",24)(10,"div",24)(11,"div",24)(12,"div",24),r()}if(t&2){let e=d().$implicit,i=d(4);F("justify-content-between",i.isMobile()),f("dragula","services-bag"),A("dragulaModel",e.services),o(),V(e.services)}}function Ee(t,u){if(t&1){let e=k();a(0,"div",27),E("dragulaModelChange",function(n){C(e);let _=d().$implicit;return T(_.services,n)||(_.services=n),x(n)}),p(1,"app-drag-here-placeholder",28),r()}if(t&2){let e=d().$implicit;f("dragula","services-bag"),A("dragulaModel",e.services)}}function Be(t,u){if(t&1&&(a(0,"div"),h(1,we,5,5,"div",0),a(2,"div",18),h(3,Te,13,4,"div",19),h(4,Ee,2,2,"div",20),r()()),t&2){let e=u.$implicit,i=d(4);o(),y(!i.isMobile()||e.services.length?1:-1),o(2),y(e.services.length?3:-1),o(),y(!e.services.length&&!i.isMobile()?4:-1)}}function De(t,u){if(t&1){let e=k();a(0,"div",17),E("dragulaModelChange",function(n){C(e);let _=d(3);return T(_.rooms,n)||(_.rooms=n),x(n)}),$(1,Be,5,3,"div",null,ye),r()}if(t&2){let e=d(3);f("dragula","rooms-bag"),A("dragulaModel",e.rooms),o(),V(e.rooms)}}function Pe(t,u){t&1&&(a(0,"div",16)(1,"div",29)(2,"div",30),p(3,"i",31),r(),a(4,"h5",32),c(5),s(6,"translate"),r(),a(7,"p",33),c(8),s(9,"translate"),r(),a(10,"p",34),c(11),s(12,"translate"),r()()()),t&2&&(o(5),m(l(6,3,"accessories.no_plugins.title")),o(3),m(l(9,5,"accessories.no_plugins.message_1")),o(3),m(l(12,7,"accessories.no_plugins.message_2")))}function Ie(t,u){if(t&1&&h(0,De,3,2,"div",15)(1,Pe,13,9,"div",16),t&2){let e=d(2);y(e.hasPlugins()?0:1)}}function $e(t,u){if(t&1){let e=k();a(0,"div",1)(1,"div",2)(2,"h3",3),c(3),s(4,"translate"),r()(),a(5,"div",4)(6,"button",5),s(7,"translate"),g("click",function(){C(e);let n=d();return x(n.openSupport())}),p(8,"i",6),r()(),a(9,"div",7),h(10,Me,19,41),a(11,"button",5),s(12,"translate"),g("click",function(){C(e);let n=d();return x(n.openSupport())}),p(13,"i",6),r()()(),h(14,Se,1,0,"app-spinner")(15,Ie,2,1)}if(t&2){let e=d();o(3),m(l(4,5,"menu.label_accessories")),o(3),v("aria-label",l(7,7,"support.title")),o(4),y(e.hasPlugins()?10:-1),o(),v("aria-label",l(12,9,"support.title")),o(3),y(e.loading()?14:15)}}function Ve(t,u){t&1&&(a(0,"p",40),c(1),s(2,"translate"),r()),t&2&&(o(),m(l(2,1,"accessories.settings_link")))}function Ne(t,u){if(t&1&&(a(0,"div",0)(1,"div",35)(2,"h3",36),c(3),s(4,"translate"),r()(),a(5,"div",16)(6,"div",37)(7,"div",30),p(8,"i",38),r(),a(9,"h5",32),c(10),s(11,"translate"),r(),p(12,"p",39),s(13,"translate"),h(14,Ve,3,3,"p",40),r()()()),t&2){let e=d();o(3),m(l(4,4,"menu.label_accessories")),o(7),m(l(11,6,"accessories.control_disabled")),o(2),f("innerHTML",U(13,8,"accessories.message_must_use_insecure_mode",q(11,he,e.linkInsecure)),H),o(2),y(e.isAdmin?14:-1)}}var gt=(()=>{class t{$accessories=b(me);$api=b(Q);$auth=b(Y);dragulaService=b(ce);$modal=b(re);$settings=b(X);$md=b(ue);$translate=b(K);isAdmin=this.$auth.user.admin;enableAccessories=this.$settings.env.enableAccessories;isMobile=B(!1,{});hideHidden=B(!0,{});linkInsecure='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Enabling-Accessory-Control" target="_blank"><i class="fa fa-external-link-alt primary-text"></i></a>';hasPlugins=B(!1,{});loading=B(!0,{});get rooms(){return this.$accessories.rooms()}set rooms(e){this.$accessories.rooms.set(e)}constructor(){let e=this.dragulaService;this.isMobile.set(this.$md.detect.mobile()),e.createGroup("rooms-bag",{moves:(i,n,_)=>!this.isMobile()&&_.classList.contains("drag-handle")}),e.createGroup("services-bag",{moves:i=>!this.isMobile()&&!i.classList.contains("no-drag")}),e.drop().pipe(J()).subscribe(()=>{setTimeout(()=>{this.$accessories.saveLayout()})}),this.isMobile.set(!0)}ngOnInit(){let e=this.$translate.instant("menu.label_accessories");this.$settings.setPageTitle(e),this.$accessories.start(),this.checkForPlugins()}addRoom(){return I(this,null,function*(){let e=this.$modal.open(fe,{size:"lg",backdrop:"static"});try{let i=yield e.result;if(!i||!i.length||this.$accessories.rooms().find(n=>n.name===i))return;this.$accessories.rooms.update(n=>[...n,{name:i,services:[]}]),this.isMobile()&&this.toggleLayoutLock()}catch{}})}toggleLayoutLock(){this.isMobile.set(!this.isMobile()),this.isMobile()?document.querySelectorAll(".services-bag").forEach(i=>{for(let n=0;n<10;n+=1){let _=document.createElement("div");_.className="accessory-box invisible py-0 my-0",_.style.height="0",i.appendChild(_)}}):document.querySelectorAll(".invisible").forEach(i=>i.remove())}openSupport(){this.$modal.open(be,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.$accessories.stop(),this.dragulaService.destroy("rooms-bag"),this.dragulaService.destroy("services-bag")}checkForPlugins(){return I(this,null,function*(){try{let e=yield this.$api.get("/plugins");this.hasPlugins.set(e.length>1)}catch(e){console.error(e),this.hasPlugins.set(!0)}finally{this.loading.set(!1)}})}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-question-circle-o"],[1,"col-3","col-sm-6","text-end","d-none","d-sm-inline-block"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","hidden","openDelay","ngbTooltip"],[1,"fas","fa-folder-plus"],[1,"fas"],["role","group",1,"btn-group","me-2"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0",3,"click","disabled","openDelay","ngbTooltip"],[1,"fas","fa-unlock"],[1,"fas","fa-lock"],[3,"dragula","dragulaModel"],[1,"col-12","text-center"],[3,"dragulaModelChange","dragula","dragulaModel"],[1,"row","mb-4"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"justify-content-between","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"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"dragulaModelChange","dragula","dragulaModel"],[1,"accessory-box","invisible","py-0","my-0",2,"height","0"],[1,"accessory-item","accessory-tab"],[3,"service"],[1,"col-md-12","d-flex","flex-wrap","noselect",3,"dragulaModelChange","dragula","dragulaModel"],[1,"no-drag"],["role","alert",1,"alert","alert-warning","p-5"],[1,"text-center","mb-3"],[1,"fas","fa-plug","primary-text",2,"font-size","75px"],[1,"mb-3","mt-0"],[1,"mb-0","small"],[1,"mb-0","small","mt-2"],[1,"col-12"],[1,"primary-text","m-0","mb-3"],["role","alert",1,"alert","alert-warning","p-4"],[1,"fas","fa-lightbulb","primary-text",2,"font-size","75px"],[1,"mb-0","small",3,"innerHTML"],[1,"mt-2","mb-0","small"]],template:function(i,n){i&1&&h(0,$e,16,11)(1,Ne,15,13,"div",0),i&2&&y(n.enableAccessories?0:1)},dependencies:[se,pe,de,_e,ve,le,S],styles:[".room-title[_ngcontent-%COMP%]{margin-left:10px}@media(max-width:575px){.room-title[_ngcontent-%COMP%]{margin-left:7px}}.services-bag[_ngcontent-%COMP%]{min-height:170px}@media(max-width:575px){.services-bag[_ngcontent-%COMP%]{min-height:initial}}.cursor-move[_ngcontent-%COMP%]{cursor:move}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return t})();export{gt as AccessoriesComponent};
|
|
1
|
+
import{b as me,c as _e}from"./chunk-SWHMQNYH.js";import"./chunk-4ZCBTPFQ.js";import{a as le}from"./chunk-JN6IF7KG.js";import{a as ue}from"./chunk-H2D3SCVU.js";import{a as ge}from"./chunk-R7CS5PVV.js";import"./chunk-73LLH6JC.js";import"./chunk-IPCY24VP.js";import{a as ce,b as de,c as pe}from"./chunk-YMEXNW5V.js";import{m as D,n as re,t as se}from"./chunk-QZUDFUPG.js";import"./chunk-2HDDFLX5.js";import{a as J}from"./chunk-BGCYR25X.js";import{b as Y}from"./chunk-5DKBUEKC.js";import{C as ae,c as Z,e as ee,f as te,i as ie,l as ne,m as oe}from"./chunk-Z62MEN4O.js";import{b as X}from"./chunk-MXLTCL2C.js";import{E as K,F as S,K as Q}from"./chunk-M6KB66ZD.js";import{Ab as y,Cb as W,Db as $,Eb as V,Ec as s,Fb as f,Fc as l,Gb as a,Gc as U,Hb as r,Ib as p,Jb as N,Kb as O,Lb as R,Rb as k,Ua as H,Xb as g,Za as o,Zb as d,aa as b,ga as C,ha as x,ic as F,jc as j,kc as c,lc as m,mc as w,nb as M,rc as A,sa as B,sc as T,tc as E,xc as z,yb as v,yc as q,zb as h,zc as G}from"./chunk-MKV5RAJQ.js";import{h as I}from"./chunk-B4AJQJMI.js";var be=(()=>{class t{$activeModal=b(D);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=M({type:t,selectors:[["ng-component"]],decls:42,vars:30,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"ms-2","mt-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),g("click",function(){return n.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),p(10,"i",6),r(),a(11,"h5",7),c(12),s(13,"translate"),r(),a(14,"ul",8)(15,"li"),c(16),s(17,"translate"),r(),a(18,"li"),c(19),s(20,"translate"),r()(),a(21,"h5",9),c(22),s(23,"translate"),r(),a(24,"ul",8)(25,"li"),c(26),s(27,"translate"),r(),a(28,"li"),c(29),s(30,"translate"),r(),a(31,"li"),c(32),s(33,"translate"),r()(),p(34,"app-support-banner"),r(),a(35,"div",10),p(36,"div",11),a(37,"div",12)(38,"button",13),g("click",function(){return n.dismissModal()}),c(39),s(40,"translate"),r()(),p(41,"div",14),r()()()),i&2&&(o(4),m(l(5,10,"support.title")),o(2),v("aria-label",l(7,12,"form.button_close")),o(6),m(l(13,14,"menu.label_accessories")),o(4),m(l(17,16,"accessories.support.acc_1")),o(3),m(l(20,18,"accessories.support.acc_2")),o(3),m(l(23,20,"accessories.title_rooms")),o(4),m(l(27,22,"accessories.support.rooms_1")),o(3),m(l(30,24,"accessories.support.rooms_2")),o(3),m(l(33,26,"accessories.support.rooms_3")),o(7),w(" ",l(40,28,"form.button_close")," "))},dependencies:[ge,S],encapsulation:2})}return t})();var Ce=()=>({standalone:!0}),fe=(()=>{class t{$activeModal=b(D);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"]],decls:28,vars:19,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-folder-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["autocomplete","off","type","text","id","form-name","autofocus","",1,"form-control","custom-input",3,"ngModelChange","keyup.enter","ngModel","ngModelOptions"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),c(4),s(5,"translate"),r(),a(6,"button",3),s(7,"translate"),g("click",function(){return n.dismissModal()}),r()(),a(8,"div",4)(9,"div",5),p(10,"i",6),r(),a(11,"ul",7)(12,"li",8)(13,"label",9),c(14),s(15,"translate"),r(),a(16,"div",10)(17,"input",11),E("ngModelChange",function(P){return T(n.roomName,P)||(n.roomName=P),P}),g("keyup.enter",function(){return n.closeModal(n.roomName)}),r()()()()(),a(18,"div",12)(19,"div",13)(20,"button",14),g("click",function(){return n.dismissModal()}),c(21),s(22,"translate"),r()(),p(23,"div",15),a(24,"div",16)(25,"button",17),g("click",function(){return n.closeModal(n.roomName)}),c(26),s(27,"translate"),r()()()()()),i&2&&(o(4),m(l(5,8,"accessories.button_add_room")),o(2),v("aria-label",l(7,10,"form.button_close")),o(8),m(l(15,12,"accessories.room_name")),o(3),A("ngModel",n.roomName),f("ngModelOptions",z(18,Ce)),o(4),w(" ",l(22,14,"form.button_close")," "),o(4),f("disabled",!n.roomName),o(),w(" ",l(27,16,"form.button_save")," "))},dependencies:[ae,oe,Z,ee,te,ne,ie,S],encapsulation:2})}return t})();var ve=(()=>{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-arrow-alt-circle-down","accessory-icon"],[1,"accessory-label"]],template:function(i,n){i&1&&(N(0,"div",0),R(1,"i",1),N(2,"div",2),c(3),s(4,"translate"),O()()),i&2&&(o(3),m(l(4,1,"accessories.control.drag_here")))},dependencies:[S],styles:[".accessory-box[_ngcontent-%COMP%]{opacity:.2}"]})}return t})();var xe=(t,u)=>({"fa-eye":t,"fa-eye-slash":u}),he=t=>({link:t}),ye=(t,u)=>u.name;function Me(t,u){if(t&1){let e=k();a(0,"button",8),s(1,"translate"),s(2,"translate"),g("click",function(){C(e);let n=d(2);return x(n.addRoom())}),p(3,"i",9),r(),a(4,"button",8),s(5,"translate"),s(6,"translate"),s(7,"translate"),s(8,"translate"),g("click",function(){C(e);let n=d(2);return x(n.hideHidden.set(!n.hideHidden()))}),p(9,"i",10),r(),a(10,"div",11)(11,"button",12),s(12,"translate"),s(13,"translate"),g("click",function(){C(e);let n=d(2);return x(n.toggleLayoutLock())}),p(14,"i",13),r(),a(15,"button",12),s(16,"translate"),s(17,"translate"),g("click",function(){C(e);let n=d(2);return x(n.toggleLayoutLock())}),p(18,"i",14),r()()}if(t&2){let e=d(2);f("hidden",e.isMobile())("openDelay",150)("ngbTooltip",l(1,18,"accessories.button_add_room")),v("aria-label",l(2,20,"accessories.button_add_room")),o(4),f("hidden",e.isMobile())("openDelay",150)("ngbTooltip",e.hideHidden()?l(5,22,"accessories.button_hidden_show"):l(6,24,"accessories.button_hidden_hide")),v("aria-label",e.hideHidden()?l(7,26,"accessories.button_hidden_show"):l(8,28,"accessories.button_hidden_hide")),o(5),j(G(38,xe,!e.hideHidden(),e.hideHidden())),o(2),f("disabled",!e.isMobile())("openDelay",150)("ngbTooltip",l(12,30,"form.button_unlock")),v("aria-label",l(13,32,"form.button_unlock")),o(4),f("disabled",e.isMobile())("openDelay",150)("ngbTooltip",l(16,34,"form.button_lock")),v("aria-label",l(17,36,"form.button_lock"))}}function Se(t,u){t&1&&p(0,"app-spinner")}function we(t,u){if(t&1&&(a(0,"div",0)(1,"div",21)(2,"h5",22),c(3),s(4,"translate"),r()()()),t&2){let e=d().$implicit,i=d(4);o(2),F("cursor-move",!i.isMobile()),o(),w(" ",e.name==="Default Room"?l(4,3,"accessories.control.default_room"):e.name," ")}}function ke(t,u){if(t&1&&(a(0,"div",25),p(1,"app-accessory-tile",26),r()),t&2){let e=d().$implicit;o(),f("service",e)}}function Ae(t,u){if(t&1&&h(0,ke,2,1,"div",25),t&2){let e=u.$implicit,i=d(6);y(!i.hideHidden()||!e.hidden?0:-1)}}function Te(t,u){if(t&1){let e=k();a(0,"div",23),E("dragulaModelChange",function(n){C(e);let _=d().$implicit;return T(_.services,n)||(_.services=n),x(n)}),$(1,Ae,1,1,null,null,W),p(3,"div",24)(4,"div",24)(5,"div",24)(6,"div",24)(7,"div",24)(8,"div",24)(9,"div",24)(10,"div",24)(11,"div",24)(12,"div",24),r()}if(t&2){let e=d().$implicit,i=d(4);F("justify-content-between",i.isMobile()),f("dragula","services-bag"),A("dragulaModel",e.services),o(),V(e.services)}}function Ee(t,u){if(t&1){let e=k();a(0,"div",27),E("dragulaModelChange",function(n){C(e);let _=d().$implicit;return T(_.services,n)||(_.services=n),x(n)}),p(1,"app-drag-here-placeholder",28),r()}if(t&2){let e=d().$implicit;f("dragula","services-bag"),A("dragulaModel",e.services)}}function Be(t,u){if(t&1&&(a(0,"div"),h(1,we,5,5,"div",0),a(2,"div",18),h(3,Te,13,4,"div",19),h(4,Ee,2,2,"div",20),r()()),t&2){let e=u.$implicit,i=d(4);o(),y(!i.isMobile()||e.services.length?1:-1),o(2),y(e.services.length?3:-1),o(),y(!e.services.length&&!i.isMobile()?4:-1)}}function De(t,u){if(t&1){let e=k();a(0,"div",17),E("dragulaModelChange",function(n){C(e);let _=d(3);return T(_.rooms,n)||(_.rooms=n),x(n)}),$(1,Be,5,3,"div",null,ye),r()}if(t&2){let e=d(3);f("dragula","rooms-bag"),A("dragulaModel",e.rooms),o(),V(e.rooms)}}function Pe(t,u){t&1&&(a(0,"div",16)(1,"div",29)(2,"div",30),p(3,"i",31),r(),a(4,"h5",32),c(5),s(6,"translate"),r(),a(7,"p",33),c(8),s(9,"translate"),r(),a(10,"p",34),c(11),s(12,"translate"),r()()()),t&2&&(o(5),m(l(6,3,"accessories.no_plugins.title")),o(3),m(l(9,5,"accessories.no_plugins.message_1")),o(3),m(l(12,7,"accessories.no_plugins.message_2")))}function Ie(t,u){if(t&1&&h(0,De,3,2,"div",15)(1,Pe,13,9,"div",16),t&2){let e=d(2);y(e.hasPlugins()?0:1)}}function $e(t,u){if(t&1){let e=k();a(0,"div",1)(1,"div",2)(2,"h3",3),c(3),s(4,"translate"),r()(),a(5,"div",4)(6,"button",5),s(7,"translate"),g("click",function(){C(e);let n=d();return x(n.openSupport())}),p(8,"i",6),r()(),a(9,"div",7),h(10,Me,19,41),a(11,"button",5),s(12,"translate"),g("click",function(){C(e);let n=d();return x(n.openSupport())}),p(13,"i",6),r()()(),h(14,Se,1,0,"app-spinner")(15,Ie,2,1)}if(t&2){let e=d();o(3),m(l(4,5,"menu.label_accessories")),o(3),v("aria-label",l(7,7,"support.title")),o(4),y(e.hasPlugins()?10:-1),o(),v("aria-label",l(12,9,"support.title")),o(3),y(e.loading()?14:15)}}function Ve(t,u){t&1&&(a(0,"p",40),c(1),s(2,"translate"),r()),t&2&&(o(),m(l(2,1,"accessories.settings_link")))}function Ne(t,u){if(t&1&&(a(0,"div",0)(1,"div",35)(2,"h3",36),c(3),s(4,"translate"),r()(),a(5,"div",16)(6,"div",37)(7,"div",30),p(8,"i",38),r(),a(9,"h5",32),c(10),s(11,"translate"),r(),p(12,"p",39),s(13,"translate"),h(14,Ve,3,3,"p",40),r()()()),t&2){let e=d();o(3),m(l(4,4,"menu.label_accessories")),o(7),m(l(11,6,"accessories.control_disabled")),o(2),f("innerHTML",U(13,8,"accessories.message_must_use_insecure_mode",q(11,he,e.linkInsecure)),H),o(2),y(e.isAdmin?14:-1)}}var gt=(()=>{class t{$accessories=b(me);$api=b(Q);$auth=b(Y);dragulaService=b(ce);$modal=b(re);$settings=b(X);$md=b(ue);$translate=b(K);isAdmin=this.$auth.user.admin;enableAccessories=this.$settings.env.enableAccessories;isMobile=B(!1,{});hideHidden=B(!0,{});linkInsecure='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Enabling-Accessory-Control" target="_blank"><i class="fa fa-external-link-alt primary-text"></i></a>';hasPlugins=B(!1,{});loading=B(!0,{});get rooms(){return this.$accessories.rooms()}set rooms(e){this.$accessories.rooms.set(e)}constructor(){let e=this.dragulaService;this.isMobile.set(this.$md.detect.mobile()),e.createGroup("rooms-bag",{moves:(i,n,_)=>!this.isMobile()&&_.classList.contains("drag-handle")}),e.createGroup("services-bag",{moves:i=>!this.isMobile()&&!i.classList.contains("no-drag")}),e.drop().pipe(J()).subscribe(()=>{setTimeout(()=>{this.$accessories.saveLayout()})}),this.isMobile.set(!0)}ngOnInit(){let e=this.$translate.instant("menu.label_accessories");this.$settings.setPageTitle(e),this.$accessories.start(),this.checkForPlugins()}addRoom(){return I(this,null,function*(){let e=this.$modal.open(fe,{size:"lg",backdrop:"static"});try{let i=yield e.result;if(!i||!i.length||this.$accessories.rooms().find(n=>n.name===i))return;this.$accessories.rooms.update(n=>[...n,{name:i,services:[]}]),this.isMobile()&&this.toggleLayoutLock()}catch{}})}toggleLayoutLock(){this.isMobile.set(!this.isMobile()),this.isMobile()?document.querySelectorAll(".services-bag").forEach(i=>{for(let n=0;n<10;n+=1){let _=document.createElement("div");_.className="accessory-box invisible py-0 my-0",_.style.height="0",i.appendChild(_)}}):document.querySelectorAll(".invisible").forEach(i=>i.remove())}openSupport(){this.$modal.open(be,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.$accessories.stop(),this.dragulaService.destroy("rooms-bag"),this.dragulaService.destroy("services-bag")}checkForPlugins(){return I(this,null,function*(){try{let e=yield this.$api.get("/plugins");this.hasPlugins.set(e.length>1)}catch(e){console.error(e),this.hasPlugins.set(!0)}finally{this.loading.set(!1)}})}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-question-circle-o"],[1,"col-3","col-sm-6","text-end","d-none","d-sm-inline-block"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","hidden","openDelay","ngbTooltip"],[1,"fas","fa-folder-plus"],[1,"fas"],["role","group",1,"btn-group","me-2"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0",3,"click","disabled","openDelay","ngbTooltip"],[1,"fas","fa-unlock"],[1,"fas","fa-lock"],[3,"dragula","dragulaModel"],[1,"col-12","text-center"],[3,"dragulaModelChange","dragula","dragulaModel"],[1,"row","mb-4"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"justify-content-between","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"],[1,"col-md-12","d-flex","flex-wrap","noselect","services-bag",3,"dragulaModelChange","dragula","dragulaModel"],[1,"accessory-box","invisible","py-0","my-0",2,"height","0"],[1,"accessory-item","accessory-tab"],[3,"service"],[1,"col-md-12","d-flex","flex-wrap","noselect",3,"dragulaModelChange","dragula","dragulaModel"],[1,"no-drag"],["role","alert",1,"alert","alert-warning","p-5"],[1,"text-center","mb-3"],[1,"fas","fa-plug","primary-text",2,"font-size","75px"],[1,"mb-3","mt-0"],[1,"mb-0","small"],[1,"mb-0","small","mt-2"],[1,"col-12"],[1,"primary-text","m-0","mb-3"],["role","alert",1,"alert","alert-warning","p-4"],[1,"fas","fa-lightbulb","primary-text",2,"font-size","75px"],[1,"mb-0","small",3,"innerHTML"],[1,"mt-2","mb-0","small"]],template:function(i,n){i&1&&h(0,$e,16,11)(1,Ne,15,13,"div",0),i&2&&y(n.enableAccessories?0:1)},dependencies:[se,pe,de,_e,ve,le,S],styles:[".room-title[_ngcontent-%COMP%]{margin-left:10px}@media(max-width:575px){.room-title[_ngcontent-%COMP%]{margin-left:7px}}.services-bag[_ngcontent-%COMP%]{min-height:170px}@media(max-width:575px){.services-bag[_ngcontent-%COMP%]{min-height:initial}}.cursor-move[_ngcontent-%COMP%]{cursor:move}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return t})();export{gt as AccessoriesComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d}from"./chunk-H7F7H5MW.js";import{E as n,H as c,K as p}from"./chunk-
|
|
1
|
+
import{a as d}from"./chunk-H7F7H5MW.js";import{E as n,H as c,K as p}from"./chunk-M6KB66ZD.js";import{X as r,aa as a}from"./chunk-MKV5RAJQ.js";import{g as b,h as s}from"./chunk-B4AJQJMI.js";var m=b(d(),1);var v=(()=>{class e{$api=a(p);$toastr=a(c);$translate=a(n);downloadBackup(){return s(this,null,function*(){let t=yield this.$api.get("/backup/download",{observe:"response",responseType:"blob"}),i=t.headers.get("File-Name")||"homebridge-backup.tar.gz",o=t.body.size;if(o>globalThis.backup.maxBackupSize){let l=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(o/1048576).toFixed(1)}MB`});this.$toastr.warning(l,this.$translate.instant("toast.title_warning"))}(0,m.saveAs)(t.body,i)})}static \u0275fac=function(i){return new(i||e)};static \u0275prov=r({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{v as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as fe}from"./chunk-6CVW2OLK.js";import{Aa as w,Lc as N,Sc as ce,U as X,W as d,Wc as he,X as Ne,Xb as y,Y,_ as A,aa as R,d as Ee,db as Pe,h as we,hb as I,ib as o,ic as de,ka as Oe,ma as xe,o as Ie,oa as D,ob as K,pb as l,sa as F,sb as u,u as Se,vb as Re,wa as v,wc as c,xa as E,xb as ke,ya as f,yb as S}from"./chunk-MKV5RAJQ.js";import{a as h,b as g}from"./chunk-B4AJQJMI.js";var We=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(o(I),o(w))};static \u0275dir=l({type:n})}return n})(),P=(()=>{class n extends We{static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,features:[u]})}return n})(),V=new A(""),vt={provide:V,useExisting:d(()=>yt),multi:!0},yt=(()=>{class n extends P{writeValue(e){this.setProperty("checked",e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target.checked)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([vt]),u]})}return n})(),Ct={provide:V,useExisting:d(()=>qe),multi:!0};function Vt(){let n=fe()?fe().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var Dt=new A(""),qe=(()=>{class n extends We{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!Vt())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(o(I),o(w),o(Dt,8))};static \u0275dir=l({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&y("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[c([Ct]),u]})}return n})();function me(n){return n==null||_e(n)===0}function _e(n){return n==null?null:Array.isArray(n)||typeof n=="string"?n.length:n instanceof Set?n.size:null}var m=new A(""),W=new A(""),bt=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,je=class{static min(t){return ze(t)}static max(t){return Ze(t)}static required(t){return Xe(t)}static requiredTrue(t){return At(t)}static email(t){return Mt(t)}static minLength(t){return Ft(t)}static maxLength(t){return Ye(t)}static pattern(t){return Ke(t)}static nullValidator(t){return Q()}static compose(t){return it(t)}static composeAsync(t){return rt(t)}};function ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e<n?{min:{min:n,actual:t.value}}:null}}function Ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function Xe(n){return me(n.value)?{required:!0}:null}function At(n){return n.value===!0?null:{required:!0}}function Mt(n){return me(n.value)||bt.test(n.value)?null:{email:!0}}function Ft(n){return t=>{let e=t.value?.length??_e(t.value);return e===null||e===0?null:e<n?{minlength:{requiredLength:n,actualLength:e}}:null}}function Ye(n){return t=>{let e=t.value?.length??_e(t.value);return e!==null&&e>n?{maxlength:{requiredLength:n,actualLength:e}}:null}}function Ke(n){if(!n)return Q;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(me(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function Q(n){return null}function Je(n){return n!=null}function Qe(n){return Re(n)?we(n):n}function et(n){let t={};return n.forEach(e=>{t=e!=null?h(h({},t),e):t}),Object.keys(t).length===0?null:t}function tt(n,t){return t.map(e=>e(n))}function Et(n){return!n.validate}function nt(n){return n.map(t=>Et(t)?t:e=>t.validate(e))}function it(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){return et(tt(e,t))}}function ve(n){return n!=null?it(nt(n)):null}function rt(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){let i=tt(e,t).map(Qe);return Se(i).pipe(Ie(et))}}function ye(n){return n!=null?rt(nt(n)):null}function Ge(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function st(n){return n._rawValidators}function ot(n){return n._rawAsyncValidators}function ge(n){return n?Array.isArray(n)?n:[n]:[]}function ee(n,t){return Array.isArray(n)?n.includes(t):n===t}function Te(n,t){let e=ge(t);return ge(n).forEach(r=>{ee(e,r)||e.push(r)}),e}function Be(n,t){return ge(t).filter(e=>!ee(n,e))}var te=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=ve(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=ye(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},C=class extends te{name;get formDirective(){return null}get path(){return null}},p=class extends te{_parent=null;name=null;valueAccessor=null},ne=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}};var xn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(p,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&de("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[u]})}return n})(),Pn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(C,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&de("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},standalone:!1,features:[u]})}return n})();var k="VALID",J="INVALID",O="PENDING",j="DISABLED",b=class{},ie=class extends b{value;source;constructor(t,e){super(),this.value=t,this.source=e}},T=class extends b{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},B=class extends b{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},x=class extends b{status;source;constructor(t,e){super(),this.status=t,this.source=e}},re=class extends b{source;constructor(t){super(),this.source=t}},U=class extends b{source;constructor(t){super(),this.source=t}};function Ce(n){return(le(n)?n.validators:n)||null}function wt(n){return Array.isArray(n)?ve(n):n||null}function Ve(n,t){return(le(t)?t.asyncValidators:n)||null}function It(n){return Array.isArray(n)?ye(n):n||null}function le(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function at(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function lt(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new X(1002,"")})}var H=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return v(this.statusReactive)}set status(t){v(()=>this.statusReactive.set(t))}_status=N(()=>this.statusReactive(),{});statusReactive=F(void 0,{});get valid(){return this.status===k}get invalid(){return this.status===J}get pending(){return this.status==O}get disabled(){return this.status===j}get enabled(){return this.status!==j}errors;get pristine(){return v(this.pristineReactive)}set pristine(t){v(()=>this.pristineReactive.set(t))}_pristine=N(()=>this.pristineReactive(),{});pristineReactive=F(!0,{});get dirty(){return!this.pristine}get touched(){return v(this.touchedReactive)}set touched(t){v(()=>this.touchedReactive.set(t))}_touched=N(()=>this.touchedReactive(),{});touchedReactive=F(!1,{});get untouched(){return!this.touched}_events=new Ee;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Te(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Te(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Be(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Be(t,this._rawAsyncValidators))}hasValidator(t){return ee(this._rawValidators,t)}hasAsyncValidator(t){return ee(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new B(!0,i))}markAllAsDirty(t={}){this.markAsDirty({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(t))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new B(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new T(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new T(!0,i))}markAsPending(t={}){this.status=O;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new x(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(g(h({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=j,this.errors=null,this._forEachChild(r=>{r.disable(g(h({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,i)),this._events.next(new x(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(g(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=k,this._forEachChild(i=>{i.enable(g(h({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(g(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===k||this.status===O)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,e)),this._events.next(new x(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(g(h({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?j:k}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=O,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1,shouldHaveEmitted:t!==!1};let i=Qe(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new x(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new D,this.statusChanges=new D}_calculateStatus(){return this._allControlsDisabled()?j:this.errors?J:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(O)?O:this._anyControlsHaveStatus(J)?J:k}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new T(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new B(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){le(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=wt(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=It(this._rawAsyncValidators)}},L=class extends H{constructor(t,e,i){super(Ce(e),Ve(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){lt(this,!0,t),Object.keys(t).forEach(i=>{at(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var Rn=L;var M=new A("",{factory:()=>q}),q="always";function ut(n,t){return[...t.path,n]}function $(n,t,e=q){De(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),Nt(n,t),xt(n,t),Ot(n,t),St(n,t)}function se(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),ae(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function oe(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function St(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function De(n,t){let e=st(n);t.validator!==null?n.setValidators(Ge(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=ot(n);t.asyncValidator!==null?n.setAsyncValidators(Ge(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();oe(t._rawValidators,r),oe(t._rawAsyncValidators,r)}function ae(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=st(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=ot(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return oe(t._rawValidators,i),oe(t._rawAsyncValidators,i),e}function Nt(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&dt(n,t)})}function Ot(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&dt(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function dt(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function xt(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function ct(n,t){n==null,De(n,t)}function Pt(n,t){return ae(n,t)}function be(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function Rt(n){return Object.getPrototypeOf(n.constructor)===P}function ht(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function Ae(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===qe?e=s:Rt(s)?i=s:r=s}),r||i||e||null}function kt(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var jt={provide:C,useExisting:d(()=>Gt)},G=Promise.resolve(),Gt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this.submittedReactive)}_submitted=N(()=>this.submittedReactive(),{});submittedReactive=F(!1,{});_directives=new Set;form;ngSubmit=new D;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new L({},ve(e),ye(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){G.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),$(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){G.then(()=>{let i=this._findContainer(e.path),r=new L({});ct(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){G.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),ht(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&y("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([jt]),u]})}return n})();function Ue(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function He(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Me=class extends H{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(Ce(e),Ve(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),le(e)&&(e.nonNullable||e.initialValueIsDefault)&&(He(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,e?.emitEvent!==!1&&this._events.next(new U(this))}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Ue(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Ue(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){He(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},jn=Me,Tt=n=>n instanceof Me;var Bt={provide:p,useExisting:d(()=>Ut)},Le=Promise.resolve(),Ut=(()=>{class n extends p{_changeDetectorRef;callSetDisabledState;control=new Me;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new D;constructor(e,i,r,s,a,_){super(),this._changeDetectorRef=a,this.callSetDisabledState=_,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=Ae(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),be(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){$(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Le.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&he(i);Le.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?ut(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(o(C,9),o(m,10),o(W,10),o(V,10),o(ce,8),o(M,8))};static \u0275dir=l({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[c([Bt]),u,E]})}return n})();var Gn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return n})(),Ht={provide:V,useExisting:d(()=>Lt),multi:!0},Lt=(()=>{class n extends P{writeValue(e){let i=e??"";this.setProperty("value",i)}registerOnChange(e){this.onChange=i=>{e(i==""?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,r){i&1&&y("input",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([Ht]),u]})}return n})(),$t={provide:V,useExisting:d(()=>qt),multi:!0};var Wt=(()=>{class n{_accessors=[];add(e,i){this._accessors.push([e,i])}remove(e){for(let i=this._accessors.length-1;i>=0;--i)if(this._accessors[i][1]===e){this._accessors.splice(i,1);return}}select(e){this._accessors.forEach(i=>{this._isSameGroup(i,e)&&i[1]!==e&&i[1].fireUncheck(e.value)})}_isSameGroup(e,i){return e[0].control?e[0]._parent===i._control._parent&&e[1].name===i.name:!1}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Ne({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),qt=(()=>{class n extends P{_registry;_injector;_state;_control;_fn;setDisabledStateFired=!1;onChange=()=>{};name;formControlName;value;callSetDisabledState=R(M,{optional:!0})??q;constructor(e,i,r,s){super(e,i),this._registry=r,this._injector=s}ngOnInit(){this._control=this._injector.get(p),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(e){this._state=e===this.value,this.setProperty("checked",this._state)}registerOnChange(e){this._fn=e,this.onChange=()=>{e(this.value),this._registry.select(this)}}setDisabledState(e){(this.setDisabledStateFired||e||this.callSetDisabledState==="whenDisabledForLegacyCode")&&this.setProperty("disabled",e),this.setDisabledStateFired=!0}fireUncheck(e){this.writeValue(e)}_checkName(){this.name&&this.formControlName&&(this.name,this.formControlName),!this.name&&this.formControlName&&(this.name=this.formControlName)}static \u0275fac=function(i){return new(i||n)(o(I),o(w),o(Wt),o(Oe))};static \u0275dir=l({type:n,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(){return r.onChange()})("blur",function(){return r.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},standalone:!1,features:[c([$t]),u]})}return n})();var pe=class extends H{constructor(t,e,i){super(Ce(e),Ve(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){Array.isArray(t)?t.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(this.controls.push(t),this._registerControl(t)),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let r=this._adjustIndex(t);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),e&&(this.controls.splice(r,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){lt(this,!1,t),t.forEach((i,r)=>{at(this,!1,r),this.at(r).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(t.forEach((i,r)=>{this.at(r)&&this.at(r).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,r)=>{i.reset(t[r],g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>i._syncPendingControls()?!0:e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(let t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}},Tn=pe;var zt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=N(()=>this._submittedReactive(),{});_submittedReactive=F(!1,{});_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(ae(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){let i=this.form.get(e.path);return $(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){se(e.control||null,e,!1),kt(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,ht(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.method==="dialog"}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(se(i||null,e),Tt(r)&&($(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);ct(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&Pt(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){De(this.form,this),this._oldForm&&ae(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,features:[u,E]})}return n})();var Fe=new A(""),Zt={provide:p,useExisting:d(()=>Xt)},Xt=(()=>{class n extends p{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new D;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=Ae(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&se(i,this,!1),$(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}be(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&se(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(V,10),o(Fe,8),o(M,8))};static \u0275dir=l({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[c([Zt]),u,E]})}return n})();var Yt={provide:p,useExisting:d(()=>Kt)},Kt=(()=>{class n extends p{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new D;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=Ae(this,s)}ngOnChanges(e){this._added||this._setUpControl(),be(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return ut(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||n)(o(C,13),o(m,10),o(W,10),o(V,10),o(Fe,8))};static \u0275dir=l({type:n,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[c([Yt]),u,E]})}return n})();var Jt={provide:C,useExisting:d(()=>Qt)},Qt=(()=>{class n extends zt{form=null;ngSubmit=new D;get control(){return this.form}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&y("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Jt]),u]})}return n})(),en={provide:V,useExisting:d(()=>gt),multi:!0};function ft(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function tn(n){return n.split(":")[0]}var gt=(()=>{class n extends P{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;appRefInjector=R(ke).injector;destroyRef=R(xe);cdr=R(ce);_queuedWrite=!1;_writeValueAfterRender(){this._queuedWrite||this.appRefInjector.destroyed||(this._queuedWrite=!0,Pe({write:()=>{this.destroyRef.destroyed||(this._queuedWrite=!1,this.writeValue(this.value))}},{injector:this.appRefInjector}))}writeValue(e){this.cdr.markForCheck(),this.value=e;let i=this._getOptionId(e),r=ft(i,e);this.setProperty("value",r)}registerOnChange(e){this.onChange=i=>{this.value=this._getOptionValue(i),e(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),e))return i;return null}_getOptionValue(e){let i=tn(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([en]),u]})}return n})(),Bn=(()=>{class n{_element;_renderer;_select;id;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(e){this._select!=null&&(this._select._optionMap.set(this.id,e),this._setElementValue(ft(this.id,e)),this._select._writeValueAfterRender())}set value(e){this._setElementValue(e),this._select&&this._select._writeValueAfterRender()}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select._writeValueAfterRender())}static \u0275fac=function(i){return new(i||n)(o(w),o(I),o(gt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),nn={provide:V,useExisting:d(()=>pt),multi:!0};function $e(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function rn(n){return n.split(":")[0]}var pt=(()=>{class n extends P{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i;if(Array.isArray(e)){let r=e.map(s=>this._getOptionId(s));i=(s,a)=>{s._setSelected(r.indexOf(a.toString())>-1)}}else i=(r,s)=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(e){this.onChange=i=>{let r=[],s=i.selectedOptions;if(s!==void 0){let a=s;for(let _=0;_<a.length;_++){let Z=a[_],ue=this._getOptionValue(Z.value);r.push(ue)}}else{let a=i.options;for(let _=0;_<a.length;_++){let Z=a[_];if(Z.selected){let ue=this._getOptionValue(Z.value);r.push(ue)}}}this.value=r,e(r)}}_registerOption(e){let i=(this._idCounter++).toString();return this._optionMap.set(i,e),i}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i)._value,e))return i;return null}_getOptionValue(e){let i=rn(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([nn]),u]})}return n})(),Un=(()=>{class n{_element;_renderer;_select;id;_value;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(e){this._select!=null&&(this._value=e,this._setElementValue($e(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue($e(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}_setSelected(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(w),o(I),o(pt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();function sn(n){return typeof n=="number"?n:parseInt(n,10)}function mt(n){return typeof n=="number"?n:parseFloat(n)}var z=(()=>{class n{_validator=Q;_onChange;_enabled;ngOnChanges(e){if(this.inputName in e){let i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Q,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return e!=null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,features:[E]})}return n})(),on={provide:m,useExisting:d(()=>an),multi:!0},an=(()=>{class n extends z{max;inputName="max";normalizeInput=e=>mt(e);createValidator=e=>Ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("max",r._enabled?r.max:null)},inputs:{max:"max"},standalone:!1,features:[c([on]),u]})}return n})(),ln={provide:m,useExisting:d(()=>un),multi:!0},un=(()=>{class n extends z{min;inputName="min";normalizeInput=e=>mt(e);createValidator=e=>ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("min",r._enabled?r.min:null)},inputs:{min:"min"},standalone:!1,features:[c([ln]),u]})}return n})(),dn={provide:m,useExisting:d(()=>cn),multi:!0};var cn=(()=>{class n extends z{required;inputName="required";normalizeInput=he;createValidator=e=>Xe;enabled(e){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){i&2&&S("required",r._enabled?"":null)},inputs:{required:"required"},standalone:!1,features:[c([dn]),u]})}return n})();var hn={provide:m,useExisting:d(()=>fn),multi:!0},fn=(()=>{class n extends z{maxlength;inputName="maxlength";normalizeInput=e=>sn(e);createValidator=e=>Ye(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("maxlength",r._enabled?r.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[c([hn]),u]})}return n})(),gn={provide:m,useExisting:d(()=>pn),multi:!0},pn=(()=>{class n extends z{pattern;inputName="pattern";normalizeInput=e=>e;createValidator=e=>Ke(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},standalone:!1,features:[c([gn]),u]})}return n})();var _t=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({})}return n})();var Hn=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})(),Ln=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:Fe,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})();export{V as a,yt as b,qe as c,je as d,xn as e,Pn as f,L as g,Rn as h,Gt as i,Me as j,jn as k,Ut as l,Gn as m,Lt as n,qt as o,Tn as p,Xt as q,Kt as r,Qt as s,gt as t,Bn as u,pt as v,Un as w,an as x,un as y,cn as z,fn as A,pn as B,Hn as C,Ln as D};
|
|
1
|
+
import{a as fe}from"./chunk-M6KB66ZD.js";import{Aa as w,Lc as N,Sc as ce,U as X,W as d,Wc as he,X as Ne,Xb as y,Y,_ as A,aa as R,d as Ee,db as Pe,h as we,hb as I,ib as o,ic as de,ka as Oe,ma as xe,o as Ie,oa as D,ob as K,pb as l,sa as F,sb as u,u as Se,vb as Re,wa as v,wc as c,xa as E,xb as ke,ya as f,yb as S}from"./chunk-MKV5RAJQ.js";import{a as h,b as g}from"./chunk-B4AJQJMI.js";var We=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(o(I),o(w))};static \u0275dir=l({type:n})}return n})(),P=(()=>{class n extends We{static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,features:[u]})}return n})(),V=new A(""),vt={provide:V,useExisting:d(()=>yt),multi:!0},yt=(()=>{class n extends P{writeValue(e){this.setProperty("checked",e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target.checked)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([vt]),u]})}return n})(),Ct={provide:V,useExisting:d(()=>qe),multi:!0};function Vt(){let n=fe()?fe().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var Dt=new A(""),qe=(()=>{class n extends We{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!Vt())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(o(I),o(w),o(Dt,8))};static \u0275dir=l({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&y("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[c([Ct]),u]})}return n})();function me(n){return n==null||_e(n)===0}function _e(n){return n==null?null:Array.isArray(n)||typeof n=="string"?n.length:n instanceof Set?n.size:null}var m=new A(""),W=new A(""),bt=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,je=class{static min(t){return ze(t)}static max(t){return Ze(t)}static required(t){return Xe(t)}static requiredTrue(t){return At(t)}static email(t){return Mt(t)}static minLength(t){return Ft(t)}static maxLength(t){return Ye(t)}static pattern(t){return Ke(t)}static nullValidator(t){return Q()}static compose(t){return it(t)}static composeAsync(t){return rt(t)}};function ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e<n?{min:{min:n,actual:t.value}}:null}}function Ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function Xe(n){return me(n.value)?{required:!0}:null}function At(n){return n.value===!0?null:{required:!0}}function Mt(n){return me(n.value)||bt.test(n.value)?null:{email:!0}}function Ft(n){return t=>{let e=t.value?.length??_e(t.value);return e===null||e===0?null:e<n?{minlength:{requiredLength:n,actualLength:e}}:null}}function Ye(n){return t=>{let e=t.value?.length??_e(t.value);return e!==null&&e>n?{maxlength:{requiredLength:n,actualLength:e}}:null}}function Ke(n){if(!n)return Q;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(me(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function Q(n){return null}function Je(n){return n!=null}function Qe(n){return Re(n)?we(n):n}function et(n){let t={};return n.forEach(e=>{t=e!=null?h(h({},t),e):t}),Object.keys(t).length===0?null:t}function tt(n,t){return t.map(e=>e(n))}function Et(n){return!n.validate}function nt(n){return n.map(t=>Et(t)?t:e=>t.validate(e))}function it(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){return et(tt(e,t))}}function ve(n){return n!=null?it(nt(n)):null}function rt(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){let i=tt(e,t).map(Qe);return Se(i).pipe(Ie(et))}}function ye(n){return n!=null?rt(nt(n)):null}function Ge(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function st(n){return n._rawValidators}function ot(n){return n._rawAsyncValidators}function ge(n){return n?Array.isArray(n)?n:[n]:[]}function ee(n,t){return Array.isArray(n)?n.includes(t):n===t}function Te(n,t){let e=ge(t);return ge(n).forEach(r=>{ee(e,r)||e.push(r)}),e}function Be(n,t){return ge(t).filter(e=>!ee(n,e))}var te=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=ve(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=ye(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},C=class extends te{name;get formDirective(){return null}get path(){return null}},p=class extends te{_parent=null;name=null;valueAccessor=null},ne=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}};var xn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(p,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&de("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[u]})}return n})(),Pn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(C,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&de("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},standalone:!1,features:[u]})}return n})();var k="VALID",J="INVALID",O="PENDING",j="DISABLED",b=class{},ie=class extends b{value;source;constructor(t,e){super(),this.value=t,this.source=e}},T=class extends b{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},B=class extends b{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},x=class extends b{status;source;constructor(t,e){super(),this.status=t,this.source=e}},re=class extends b{source;constructor(t){super(),this.source=t}},U=class extends b{source;constructor(t){super(),this.source=t}};function Ce(n){return(le(n)?n.validators:n)||null}function wt(n){return Array.isArray(n)?ve(n):n||null}function Ve(n,t){return(le(t)?t.asyncValidators:n)||null}function It(n){return Array.isArray(n)?ye(n):n||null}function le(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function at(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function lt(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new X(1002,"")})}var H=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return v(this.statusReactive)}set status(t){v(()=>this.statusReactive.set(t))}_status=N(()=>this.statusReactive(),{});statusReactive=F(void 0,{});get valid(){return this.status===k}get invalid(){return this.status===J}get pending(){return this.status==O}get disabled(){return this.status===j}get enabled(){return this.status!==j}errors;get pristine(){return v(this.pristineReactive)}set pristine(t){v(()=>this.pristineReactive.set(t))}_pristine=N(()=>this.pristineReactive(),{});pristineReactive=F(!0,{});get dirty(){return!this.pristine}get touched(){return v(this.touchedReactive)}set touched(t){v(()=>this.touchedReactive.set(t))}_touched=N(()=>this.touchedReactive(),{});touchedReactive=F(!1,{});get untouched(){return!this.touched}_events=new Ee;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Te(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Te(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Be(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Be(t,this._rawAsyncValidators))}hasValidator(t){return ee(this._rawValidators,t)}hasAsyncValidator(t){return ee(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new B(!0,i))}markAllAsDirty(t={}){this.markAsDirty({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(t))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new B(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new T(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new T(!0,i))}markAsPending(t={}){this.status=O;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new x(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(g(h({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=j,this.errors=null,this._forEachChild(r=>{r.disable(g(h({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,i)),this._events.next(new x(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(g(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=k,this._forEachChild(i=>{i.enable(g(h({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(g(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===k||this.status===O)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,e)),this._events.next(new x(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(g(h({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?j:k}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=O,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1,shouldHaveEmitted:t!==!1};let i=Qe(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new x(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new D,this.statusChanges=new D}_calculateStatus(){return this._allControlsDisabled()?j:this.errors?J:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(O)?O:this._anyControlsHaveStatus(J)?J:k}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new T(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new B(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){le(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=wt(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=It(this._rawAsyncValidators)}},L=class extends H{constructor(t,e,i){super(Ce(e),Ve(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){lt(this,!0,t),Object.keys(t).forEach(i=>{at(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var Rn=L;var M=new A("",{factory:()=>q}),q="always";function ut(n,t){return[...t.path,n]}function $(n,t,e=q){De(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),Nt(n,t),xt(n,t),Ot(n,t),St(n,t)}function se(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),ae(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function oe(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function St(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function De(n,t){let e=st(n);t.validator!==null?n.setValidators(Ge(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=ot(n);t.asyncValidator!==null?n.setAsyncValidators(Ge(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();oe(t._rawValidators,r),oe(t._rawAsyncValidators,r)}function ae(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=st(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=ot(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return oe(t._rawValidators,i),oe(t._rawAsyncValidators,i),e}function Nt(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&dt(n,t)})}function Ot(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&dt(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function dt(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function xt(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function ct(n,t){n==null,De(n,t)}function Pt(n,t){return ae(n,t)}function be(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function Rt(n){return Object.getPrototypeOf(n.constructor)===P}function ht(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function Ae(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===qe?e=s:Rt(s)?i=s:r=s}),r||i||e||null}function kt(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var jt={provide:C,useExisting:d(()=>Gt)},G=Promise.resolve(),Gt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this.submittedReactive)}_submitted=N(()=>this.submittedReactive(),{});submittedReactive=F(!1,{});_directives=new Set;form;ngSubmit=new D;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new L({},ve(e),ye(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){G.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),$(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){G.then(()=>{let i=this._findContainer(e.path),r=new L({});ct(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){G.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),ht(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&y("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([jt]),u]})}return n})();function Ue(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function He(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Me=class extends H{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(Ce(e),Ve(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),le(e)&&(e.nonNullable||e.initialValueIsDefault)&&(He(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,e?.emitEvent!==!1&&this._events.next(new U(this))}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Ue(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Ue(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){He(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},jn=Me,Tt=n=>n instanceof Me;var Bt={provide:p,useExisting:d(()=>Ut)},Le=Promise.resolve(),Ut=(()=>{class n extends p{_changeDetectorRef;callSetDisabledState;control=new Me;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new D;constructor(e,i,r,s,a,_){super(),this._changeDetectorRef=a,this.callSetDisabledState=_,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=Ae(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),be(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){$(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Le.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&he(i);Le.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?ut(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(o(C,9),o(m,10),o(W,10),o(V,10),o(ce,8),o(M,8))};static \u0275dir=l({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[c([Bt]),u,E]})}return n})();var Gn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return n})(),Ht={provide:V,useExisting:d(()=>Lt),multi:!0},Lt=(()=>{class n extends P{writeValue(e){let i=e??"";this.setProperty("value",i)}registerOnChange(e){this.onChange=i=>{e(i==""?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,r){i&1&&y("input",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([Ht]),u]})}return n})(),$t={provide:V,useExisting:d(()=>qt),multi:!0};var Wt=(()=>{class n{_accessors=[];add(e,i){this._accessors.push([e,i])}remove(e){for(let i=this._accessors.length-1;i>=0;--i)if(this._accessors[i][1]===e){this._accessors.splice(i,1);return}}select(e){this._accessors.forEach(i=>{this._isSameGroup(i,e)&&i[1]!==e&&i[1].fireUncheck(e.value)})}_isSameGroup(e,i){return e[0].control?e[0]._parent===i._control._parent&&e[1].name===i.name:!1}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Ne({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),qt=(()=>{class n extends P{_registry;_injector;_state;_control;_fn;setDisabledStateFired=!1;onChange=()=>{};name;formControlName;value;callSetDisabledState=R(M,{optional:!0})??q;constructor(e,i,r,s){super(e,i),this._registry=r,this._injector=s}ngOnInit(){this._control=this._injector.get(p),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(e){this._state=e===this.value,this.setProperty("checked",this._state)}registerOnChange(e){this._fn=e,this.onChange=()=>{e(this.value),this._registry.select(this)}}setDisabledState(e){(this.setDisabledStateFired||e||this.callSetDisabledState==="whenDisabledForLegacyCode")&&this.setProperty("disabled",e),this.setDisabledStateFired=!0}fireUncheck(e){this.writeValue(e)}_checkName(){this.name&&this.formControlName&&(this.name,this.formControlName),!this.name&&this.formControlName&&(this.name=this.formControlName)}static \u0275fac=function(i){return new(i||n)(o(I),o(w),o(Wt),o(Oe))};static \u0275dir=l({type:n,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(){return r.onChange()})("blur",function(){return r.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},standalone:!1,features:[c([$t]),u]})}return n})();var pe=class extends H{constructor(t,e,i){super(Ce(e),Ve(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){Array.isArray(t)?t.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(this.controls.push(t),this._registerControl(t)),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let r=this._adjustIndex(t);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),e&&(this.controls.splice(r,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){lt(this,!1,t),t.forEach((i,r)=>{at(this,!1,r),this.at(r).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(t.forEach((i,r)=>{this.at(r)&&this.at(r).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,r)=>{i.reset(t[r],g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>i._syncPendingControls()?!0:e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(let t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}},Tn=pe;var zt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=N(()=>this._submittedReactive(),{});_submittedReactive=F(!1,{});_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(ae(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){let i=this.form.get(e.path);return $(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){se(e.control||null,e,!1),kt(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,ht(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.method==="dialog"}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(se(i||null,e),Tt(r)&&($(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);ct(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&Pt(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){De(this.form,this),this._oldForm&&ae(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,features:[u,E]})}return n})();var Fe=new A(""),Zt={provide:p,useExisting:d(()=>Xt)},Xt=(()=>{class n extends p{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new D;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=Ae(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&se(i,this,!1),$(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}be(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&se(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(V,10),o(Fe,8),o(M,8))};static \u0275dir=l({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[c([Zt]),u,E]})}return n})();var Yt={provide:p,useExisting:d(()=>Kt)},Kt=(()=>{class n extends p{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new D;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=Ae(this,s)}ngOnChanges(e){this._added||this._setUpControl(),be(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return ut(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||n)(o(C,13),o(m,10),o(W,10),o(V,10),o(Fe,8))};static \u0275dir=l({type:n,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[c([Yt]),u,E]})}return n})();var Jt={provide:C,useExisting:d(()=>Qt)},Qt=(()=>{class n extends zt{form=null;ngSubmit=new D;get control(){return this.form}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&y("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Jt]),u]})}return n})(),en={provide:V,useExisting:d(()=>gt),multi:!0};function ft(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function tn(n){return n.split(":")[0]}var gt=(()=>{class n extends P{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;appRefInjector=R(ke).injector;destroyRef=R(xe);cdr=R(ce);_queuedWrite=!1;_writeValueAfterRender(){this._queuedWrite||this.appRefInjector.destroyed||(this._queuedWrite=!0,Pe({write:()=>{this.destroyRef.destroyed||(this._queuedWrite=!1,this.writeValue(this.value))}},{injector:this.appRefInjector}))}writeValue(e){this.cdr.markForCheck(),this.value=e;let i=this._getOptionId(e),r=ft(i,e);this.setProperty("value",r)}registerOnChange(e){this.onChange=i=>{this.value=this._getOptionValue(i),e(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),e))return i;return null}_getOptionValue(e){let i=tn(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([en]),u]})}return n})(),Bn=(()=>{class n{_element;_renderer;_select;id;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(e){this._select!=null&&(this._select._optionMap.set(this.id,e),this._setElementValue(ft(this.id,e)),this._select._writeValueAfterRender())}set value(e){this._setElementValue(e),this._select&&this._select._writeValueAfterRender()}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select._writeValueAfterRender())}static \u0275fac=function(i){return new(i||n)(o(w),o(I),o(gt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),nn={provide:V,useExisting:d(()=>pt),multi:!0};function $e(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function rn(n){return n.split(":")[0]}var pt=(()=>{class n extends P{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i;if(Array.isArray(e)){let r=e.map(s=>this._getOptionId(s));i=(s,a)=>{s._setSelected(r.indexOf(a.toString())>-1)}}else i=(r,s)=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(e){this.onChange=i=>{let r=[],s=i.selectedOptions;if(s!==void 0){let a=s;for(let _=0;_<a.length;_++){let Z=a[_],ue=this._getOptionValue(Z.value);r.push(ue)}}else{let a=i.options;for(let _=0;_<a.length;_++){let Z=a[_];if(Z.selected){let ue=this._getOptionValue(Z.value);r.push(ue)}}}this.value=r,e(r)}}_registerOption(e){let i=(this._idCounter++).toString();return this._optionMap.set(i,e),i}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i)._value,e))return i;return null}_getOptionValue(e){let i=rn(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([nn]),u]})}return n})(),Un=(()=>{class n{_element;_renderer;_select;id;_value;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(e){this._select!=null&&(this._value=e,this._setElementValue($e(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue($e(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}_setSelected(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(w),o(I),o(pt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();function sn(n){return typeof n=="number"?n:parseInt(n,10)}function mt(n){return typeof n=="number"?n:parseFloat(n)}var z=(()=>{class n{_validator=Q;_onChange;_enabled;ngOnChanges(e){if(this.inputName in e){let i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Q,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return e!=null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,features:[E]})}return n})(),on={provide:m,useExisting:d(()=>an),multi:!0},an=(()=>{class n extends z{max;inputName="max";normalizeInput=e=>mt(e);createValidator=e=>Ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("max",r._enabled?r.max:null)},inputs:{max:"max"},standalone:!1,features:[c([on]),u]})}return n})(),ln={provide:m,useExisting:d(()=>un),multi:!0},un=(()=>{class n extends z{min;inputName="min";normalizeInput=e=>mt(e);createValidator=e=>ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("min",r._enabled?r.min:null)},inputs:{min:"min"},standalone:!1,features:[c([ln]),u]})}return n})(),dn={provide:m,useExisting:d(()=>cn),multi:!0};var cn=(()=>{class n extends z{required;inputName="required";normalizeInput=he;createValidator=e=>Xe;enabled(e){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){i&2&&S("required",r._enabled?"":null)},inputs:{required:"required"},standalone:!1,features:[c([dn]),u]})}return n})();var hn={provide:m,useExisting:d(()=>fn),multi:!0},fn=(()=>{class n extends z{maxlength;inputName="maxlength";normalizeInput=e=>sn(e);createValidator=e=>Ye(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("maxlength",r._enabled?r.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[c([hn]),u]})}return n})(),gn={provide:m,useExisting:d(()=>pn),multi:!0},pn=(()=>{class n extends z{pattern;inputName="pattern";normalizeInput=e=>e;createValidator=e=>Ke(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},standalone:!1,features:[c([gn]),u]})}return n})();var _t=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({})}return n})();var Hn=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})(),Ln=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:Fe,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})();export{V as a,yt as b,qe as c,je as d,xn as e,Pn as f,L as g,Rn as h,Gt as i,Me as j,jn as k,Ut as l,Gn as m,Lt as n,qt as o,Tn as p,Xt as q,Kt as r,Qt as s,gt as t,Bn as u,pt as v,Un as w,an as x,un as y,cn as z,fn as A,pn as B,Hn as C,Ln as D};
|