From 2ec35e2264f44414db5dac8467b2ca94c5062ea0 Mon Sep 17 00:00:00 2001 From: Jacobus Visagie Date: Sun, 13 Feb 2022 17:26:56 +0000 Subject: [PATCH] proteanSoftware technical assessment for Jacobus visagie --- DeveloperTest/Business/CustomerService.cs | 56 ++++ .../Business/Interfaces/ICustomerService.cs | 13 + DeveloperTest/Business/JobService.cs | 43 ++- .../Controllers/CustomerController.cs | 46 ++++ .../Database/ApplicationDbContext.cs | 8 + DeveloperTest/Database/Models/Customer.cs | 13 + DeveloperTest/Database/Models/Job.cs | 2 + .../20220212174933_iiiitester.Designer.cs | 79 ++++++ .../Migrations/20220212174933_iiiitester.cs | 43 +++ .../ApplicationDbContextModelSnapshot.cs | 23 ++ DeveloperTest/Models/BaseCustomerModel.cs | 11 + DeveloperTest/Models/BaseJobModel.cs | 2 + DeveloperTest/Models/CustomerModel.cs | 13 + DeveloperTest/Models/JobModel.cs | 6 + DeveloperTest/Startup.cs | 1 + ui/dist/ui/3rdpartylicenses.txt | 244 ++++++++++++++++++ ui/dist/ui/favicon.ico | Bin 0 -> 948 bytes ui/dist/ui/index.html | 12 + ui/dist/ui/main.js | 1 + ui/dist/ui/polyfills.js | 1 + ui/dist/ui/runtime.js | 1 + ui/dist/ui/styles.css | 1 + ui/src/app/app-routing.module.ts | 7 +- ui/src/app/app.component.html | 3 +- ui/src/app/app.module.ts | 8 +- .../customer-detail.component.html | 5 + .../customer-detail.component.scss | 0 .../customer-detail.component.spec.ts | 25 ++ .../customer-detail.component.ts | 27 ++ ui/src/app/customer/customer.component.html | 33 +++ ui/src/app/customer/customer.component.scss | 40 +++ .../app/customer/customer.component.spec.ts | 25 ++ ui/src/app/customer/customer.component.ts | 40 +++ .../app/job-detail/job-detail.component.html | 10 +- ui/src/app/job/job.component.html | 10 +- ui/src/app/job/job.component.ts | 13 +- ui/src/app/models/customer.model.ts | 5 + ui/src/app/models/job.model.ts | 3 + ui/src/app/null-with-default.pipe.spec.ts | 8 + ui/src/app/null-with-default.pipe.ts | 16 ++ ui/src/app/services/customer.service.spec.ts | 12 + ui/src/app/services/customer.service.ts | 24 ++ 42 files changed, 910 insertions(+), 23 deletions(-) create mode 100644 DeveloperTest/Business/CustomerService.cs create mode 100644 DeveloperTest/Business/Interfaces/ICustomerService.cs create mode 100644 DeveloperTest/Controllers/CustomerController.cs create mode 100644 DeveloperTest/Database/Models/Customer.cs create mode 100644 DeveloperTest/Migrations/20220212174933_iiiitester.Designer.cs create mode 100644 DeveloperTest/Migrations/20220212174933_iiiitester.cs create mode 100644 DeveloperTest/Models/BaseCustomerModel.cs create mode 100644 DeveloperTest/Models/CustomerModel.cs create mode 100644 ui/dist/ui/3rdpartylicenses.txt create mode 100644 ui/dist/ui/favicon.ico create mode 100644 ui/dist/ui/index.html create mode 100644 ui/dist/ui/main.js create mode 100644 ui/dist/ui/polyfills.js create mode 100644 ui/dist/ui/runtime.js create mode 100644 ui/dist/ui/styles.css create mode 100644 ui/src/app/customer-detail/customer-detail.component.html create mode 100644 ui/src/app/customer-detail/customer-detail.component.scss create mode 100644 ui/src/app/customer-detail/customer-detail.component.spec.ts create mode 100644 ui/src/app/customer-detail/customer-detail.component.ts create mode 100644 ui/src/app/customer/customer.component.html create mode 100644 ui/src/app/customer/customer.component.scss create mode 100644 ui/src/app/customer/customer.component.spec.ts create mode 100644 ui/src/app/customer/customer.component.ts create mode 100644 ui/src/app/models/customer.model.ts create mode 100644 ui/src/app/null-with-default.pipe.spec.ts create mode 100644 ui/src/app/null-with-default.pipe.ts create mode 100644 ui/src/app/services/customer.service.spec.ts create mode 100644 ui/src/app/services/customer.service.ts diff --git a/DeveloperTest/Business/CustomerService.cs b/DeveloperTest/Business/CustomerService.cs new file mode 100644 index 0000000..0598963 --- /dev/null +++ b/DeveloperTest/Business/CustomerService.cs @@ -0,0 +1,56 @@ +using System.Linq; +using DeveloperTest.Business.Interfaces; +using DeveloperTest.Database; +using DeveloperTest.Database.Models; +using DeveloperTest.Models; + +namespace DeveloperTest.Business +{ + public class CustomerService : ICustomerService + { + private readonly ApplicationDbContext context; + + public CustomerService(ApplicationDbContext context) + { + this.context = context; + } + + public CustomerModel[] GetCustomers() + { + return context.Customers.Select(x => new CustomerModel + { + CustomerId = x.CustomerId, + Customer = x.CustomerName, + Type = x.Type + }).ToArray(); + } + + public CustomerModel GetCustomer(int Id) + { + return context.Customers.Where(x => x.CustomerId == Id).Select(x => new CustomerModel + { + CustomerId = x.CustomerId, + Customer = x.CustomerName, + Type = x.Type + }).SingleOrDefault(); + } + + public CustomerModel CreateCustomer(BaseCustomerModel model) + { + var addedCustomer = context.Customers.Add(new Customer + { + CustomerName = model.Customer, + Type = model.Type + }); + + context.SaveChanges(); + + return new CustomerModel + { + CustomerId = addedCustomer.Entity.CustomerId, + Customer = addedCustomer.Entity.CustomerName, + Type = addedCustomer.Entity.Type + }; + } + } +} diff --git a/DeveloperTest/Business/Interfaces/ICustomerService.cs b/DeveloperTest/Business/Interfaces/ICustomerService.cs new file mode 100644 index 0000000..81a48dc --- /dev/null +++ b/DeveloperTest/Business/Interfaces/ICustomerService.cs @@ -0,0 +1,13 @@ +using DeveloperTest.Models; + +namespace DeveloperTest.Business.Interfaces +{ + public interface ICustomerService + { + CustomerModel[] GetCustomers(); + + CustomerModel GetCustomer(int jobId); + + CustomerModel CreateCustomer(BaseCustomerModel model); + } +} diff --git a/DeveloperTest/Business/JobService.cs b/DeveloperTest/Business/JobService.cs index 7eb8f64..f21039a 100644 --- a/DeveloperTest/Business/JobService.cs +++ b/DeveloperTest/Business/JobService.cs @@ -3,6 +3,7 @@ using DeveloperTest.Database; using DeveloperTest.Database.Models; using DeveloperTest.Models; +using Microsoft.EntityFrameworkCore; namespace DeveloperTest.Business { @@ -17,22 +18,37 @@ public JobService(ApplicationDbContext context) public JobModel[] GetJobs() { - return context.Jobs.Select(x => new JobModel - { - JobId = x.JobId, - Engineer = x.Engineer, - When = x.When - }).ToArray(); + var jbs = (from j in context.Jobs + from c in context.Customers + .Where(c => c.CustomerId == j.CustomerId) + .DefaultIfEmpty() + select new JobModel + { + JobId = j.JobId, + Engineer = j.Engineer, + When = j.When, + CustName = c.CustomerName + }).ToArray(); + + return jbs; } public JobModel GetJob(int jobId) { - return context.Jobs.Where(x => x.JobId == jobId).Select(x => new JobModel - { - JobId = x.JobId, - Engineer = x.Engineer, - When = x.When - }).SingleOrDefault(); + var jb = (from j in context.Jobs.Where(x => x.JobId == jobId) + from c in context.Customers + .Where(c => c.CustomerId == j.CustomerId) + .DefaultIfEmpty() + select new JobModel + { + JobId = j.JobId, + Engineer = j.Engineer, + When = j.When, + CustName = c.CustomerName, + CustType = c.Type + }).SingleOrDefault(); + + return jb; } public JobModel CreateJob(BaseJobModel model) @@ -40,7 +56,8 @@ public JobModel CreateJob(BaseJobModel model) var addedJob = context.Jobs.Add(new Job { Engineer = model.Engineer, - When = model.When + When = model.When, + CustomerId = model.CustID }); context.SaveChanges(); diff --git a/DeveloperTest/Controllers/CustomerController.cs b/DeveloperTest/Controllers/CustomerController.cs new file mode 100644 index 0000000..f8e5f26 --- /dev/null +++ b/DeveloperTest/Controllers/CustomerController.cs @@ -0,0 +1,46 @@ +using DeveloperTest.Business.Interfaces; +using DeveloperTest.Models; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace DeveloperTest.Controllers +{ + [Route("[controller]")] + [ApiController] + public class CustomerController : ControllerBase + { + private readonly ICustomerService customerService; + + public CustomerController(ICustomerService customerService) + { + this.customerService = customerService; + } + + [HttpGet] + public IActionResult Get() + { + return Ok(customerService.GetCustomers()); + } + + [HttpGet("{id}")] + public IActionResult Get(int id) + { + var customer = customerService.GetCustomer(id); + + if (customer == null) + { + return NotFound(); + } + + return Ok(customer); + } + + [HttpPost] + public IActionResult Create(BaseCustomerModel model) + { + var customer = customerService.CreateCustomer(model); + + return Created($"customer/{customer.CustomerId}", customer); + } + } +} diff --git a/DeveloperTest/Database/ApplicationDbContext.cs b/DeveloperTest/Database/ApplicationDbContext.cs index f5be4a1..0066542 100644 --- a/DeveloperTest/Database/ApplicationDbContext.cs +++ b/DeveloperTest/Database/ApplicationDbContext.cs @@ -7,6 +7,7 @@ namespace DeveloperTest.Database public class ApplicationDbContext : DbContext { public DbSet Jobs { get; set; } + public DbSet Customers { get; set; } public ApplicationDbContext(DbContextOptions options) : base(options) { @@ -24,6 +25,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .Property(x => x.JobId) .ValueGeneratedOnAdd(); + modelBuilder.Entity() + .HasKey(x => x.CustomerId); + + modelBuilder.Entity() + .Property(x => x.CustomerId) + .ValueGeneratedOnAdd(); + modelBuilder.Entity() .HasData(new Job { diff --git a/DeveloperTest/Database/Models/Customer.cs b/DeveloperTest/Database/Models/Customer.cs new file mode 100644 index 0000000..94ca309 --- /dev/null +++ b/DeveloperTest/Database/Models/Customer.cs @@ -0,0 +1,13 @@ +using System; + +namespace DeveloperTest.Database.Models +{ + public class Customer + { + public int CustomerId { get; set; } + + public string CustomerName { get; set; } + + public string Type { get; set; } + } +} diff --git a/DeveloperTest/Database/Models/Job.cs b/DeveloperTest/Database/Models/Job.cs index 8a2abd0..5a395a8 100644 --- a/DeveloperTest/Database/Models/Job.cs +++ b/DeveloperTest/Database/Models/Job.cs @@ -9,5 +9,7 @@ public class Job public string Engineer { get; set; } public DateTime When { get; set; } + + public int CustomerId { get; set; } } } diff --git a/DeveloperTest/Migrations/20220212174933_iiiitester.Designer.cs b/DeveloperTest/Migrations/20220212174933_iiiitester.Designer.cs new file mode 100644 index 0000000..0a5d941 --- /dev/null +++ b/DeveloperTest/Migrations/20220212174933_iiiitester.Designer.cs @@ -0,0 +1,79 @@ +// +using System; +using DeveloperTest.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace DeveloperTest.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20220212174933_iiiitester")] + partial class iiiitester + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.1") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("DeveloperTest.Database.Models.Customer", b => + { + b.Property("CustomerId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("CustomerId"), 1L, 1); + + b.Property("CustomerName") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("nvarchar(max)"); + + b.HasKey("CustomerId"); + + b.ToTable("Customers"); + }); + + modelBuilder.Entity("DeveloperTest.Database.Models.Job", b => + { + b.Property("JobId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("JobId"), 1L, 1); + + b.Property("CustomerId") + .HasColumnType("int"); + + b.Property("Engineer") + .HasColumnType("nvarchar(max)"); + + b.Property("When") + .HasColumnType("datetime2"); + + b.HasKey("JobId"); + + b.ToTable("Jobs"); + + b.HasData( + new + { + JobId = 1, + CustomerId = 0, + Engineer = "Test", + When = new DateTime(2022, 2, 1, 12, 0, 0, 0, DateTimeKind.Unspecified) + }); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/DeveloperTest/Migrations/20220212174933_iiiitester.cs b/DeveloperTest/Migrations/20220212174933_iiiitester.cs new file mode 100644 index 0000000..be46f69 --- /dev/null +++ b/DeveloperTest/Migrations/20220212174933_iiiitester.cs @@ -0,0 +1,43 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace DeveloperTest.Migrations +{ + public partial class iiiitester : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CustomerId", + table: "Jobs", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.CreateTable( + name: "Customers", + columns: table => new + { + CustomerId = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + CustomerName = table.Column(type: "nvarchar(max)", nullable: true), + Type = table.Column(type: "nvarchar(max)", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Customers", x => x.CustomerId); + }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Customers"); + + migrationBuilder.DropColumn( + name: "CustomerId", + table: "Jobs"); + } + } +} diff --git a/DeveloperTest/Migrations/ApplicationDbContextModelSnapshot.cs b/DeveloperTest/Migrations/ApplicationDbContextModelSnapshot.cs index 0ee623b..e76ab04 100644 --- a/DeveloperTest/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/DeveloperTest/Migrations/ApplicationDbContextModelSnapshot.cs @@ -22,6 +22,25 @@ protected override void BuildModel(ModelBuilder modelBuilder) SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + modelBuilder.Entity("DeveloperTest.Database.Models.Customer", b => + { + b.Property("CustomerId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("CustomerId"), 1L, 1); + + b.Property("CustomerName") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("nvarchar(max)"); + + b.HasKey("CustomerId"); + + b.ToTable("Customers"); + }); + modelBuilder.Entity("DeveloperTest.Database.Models.Job", b => { b.Property("JobId") @@ -30,6 +49,9 @@ protected override void BuildModel(ModelBuilder modelBuilder) SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("JobId"), 1L, 1); + b.Property("CustomerId") + .HasColumnType("int"); + b.Property("Engineer") .HasColumnType("nvarchar(max)"); @@ -44,6 +66,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { JobId = 1, + CustomerId = 0, Engineer = "Test", When = new DateTime(2022, 2, 1, 12, 0, 0, 0, DateTimeKind.Unspecified) }); diff --git a/DeveloperTest/Models/BaseCustomerModel.cs b/DeveloperTest/Models/BaseCustomerModel.cs new file mode 100644 index 0000000..625b6ad --- /dev/null +++ b/DeveloperTest/Models/BaseCustomerModel.cs @@ -0,0 +1,11 @@ +using System; + +namespace DeveloperTest.Models +{ + public class BaseCustomerModel + { + public string Customer { get; set; } + + public string Type { get; set; } + } +} diff --git a/DeveloperTest/Models/BaseJobModel.cs b/DeveloperTest/Models/BaseJobModel.cs index d2bc052..b6d5c2c 100644 --- a/DeveloperTest/Models/BaseJobModel.cs +++ b/DeveloperTest/Models/BaseJobModel.cs @@ -7,5 +7,7 @@ public class BaseJobModel public string Engineer { get; set; } public DateTime When { get; set; } + + public int CustID { get; set; } } } diff --git a/DeveloperTest/Models/CustomerModel.cs b/DeveloperTest/Models/CustomerModel.cs new file mode 100644 index 0000000..eb7cf3a --- /dev/null +++ b/DeveloperTest/Models/CustomerModel.cs @@ -0,0 +1,13 @@ +using System; + +namespace DeveloperTest.Models +{ + public class CustomerModel + { + public int CustomerId { get; set; } + + public string Customer { get; set; } + + public string Type { get; set; } + } +} diff --git a/DeveloperTest/Models/JobModel.cs b/DeveloperTest/Models/JobModel.cs index 8f2b5be..3e2a541 100644 --- a/DeveloperTest/Models/JobModel.cs +++ b/DeveloperTest/Models/JobModel.cs @@ -9,5 +9,11 @@ public class JobModel public string Engineer { get; set; } public DateTime When { get; set; } + + public string CustName { get; set; } + + public string CustType { get; set; } + + public int CustID { get; set; } } } diff --git a/DeveloperTest/Startup.cs b/DeveloperTest/Startup.cs index 5242f22..64012da 100644 --- a/DeveloperTest/Startup.cs +++ b/DeveloperTest/Startup.cs @@ -28,6 +28,7 @@ public void ConfigureServices(IServiceCollection services) options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddTransient(); + services.AddTransient(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/ui/dist/ui/3rdpartylicenses.txt b/ui/dist/ui/3rdpartylicenses.txt new file mode 100644 index 0000000..2e68c7e --- /dev/null +++ b/ui/dist/ui/3rdpartylicenses.txt @@ -0,0 +1,244 @@ +@angular/common +MIT + +@angular/core +MIT + +@angular/forms +MIT + +@angular/platform-browser +MIT + +@angular/router +MIT + +rxjs +Apache-2.0 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +zone.js +MIT +The MIT License + +Copyright (c) 2010-2020 Google LLC. https://angular.io/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/ui/dist/ui/favicon.ico b/ui/dist/ui/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + Ui + + + + + + + + + \ No newline at end of file diff --git a/ui/dist/ui/main.js b/ui/dist/ui/main.js new file mode 100644 index 0000000..cea48d8 --- /dev/null +++ b/ui/dist/ui/main.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkui=self.webpackChunkui||[]).push([[179],{133:()=>{function jn(t){return"function"==typeof t}let uo=!1;const dt={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const e=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+e.stack)}else uo&&console.log("RxJS: Back to a better error behavior. Thank you. <3");uo=t},get useDeprecatedSynchronousErrorHandling(){return uo}};function _n(t){setTimeout(()=>{throw t},0)}const Ai={closed:!0,next(t){},error(t){if(dt.useDeprecatedSynchronousErrorHandling)throw t;_n(t)},complete(){}},Ii=Array.isArray||(t=>t&&"number"==typeof t.length);function Ta(t){return null!==t&&"object"==typeof t}const Ti=(()=>{function t(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((n,r)=>`${r+1}) ${n.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e,this}return t.prototype=Object.create(Error.prototype),t})();class fe{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:r,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof fe)n.remove(this);else if(null!==n)for(let s=0;se.concat(n instanceof Ti?n.errors:n),[])}fe.EMPTY=((t=new fe).closed=!0,t);const xi="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class ce extends fe{constructor(e,n,r){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=Ai;break;case 1:if(!e){this.destination=Ai;break}if("object"==typeof e){e instanceof ce?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new ef(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new ef(this,e,n,r)}}[xi](){return this}static create(e,n,r){const o=new ce(e,n,r);return o.syncErrorThrowable=!1,o}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class ef extends ce{constructor(e,n,r,o){super(),this._parentSubscriber=e;let i,s=this;jn(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==Ai&&(s=Object.create(n),jn(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=i,this._error=r,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:n}=this;dt.useDeprecatedSynchronousErrorHandling&&n.syncErrorThrowable?this.__tryOrSetError(n,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:n}=this,{useDeprecatedSynchronousErrorHandling:r}=dt;if(this._error)r&&n.syncErrorThrowable?(this.__tryOrSetError(n,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(n.syncErrorThrowable)r?(n.syncErrorValue=e,n.syncErrorThrown=!0):_n(e),this.unsubscribe();else{if(this.unsubscribe(),r)throw e;_n(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const n=()=>this._complete.call(this._context);dt.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,n){try{e.call(this._context,n)}catch(r){if(this.unsubscribe(),dt.useDeprecatedSynchronousErrorHandling)throw r;_n(r)}}__tryOrSetError(e,n,r){if(!dt.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{n.call(this._context,r)}catch(o){return dt.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=o,e.syncErrorThrown=!0,!0):(_n(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const lo="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ni(t){return t}let se=(()=>{class t{constructor(n){this._isScalar=!1,n&&(this._subscribe=n)}lift(n){const r=new t;return r.source=this,r.operator=n,r}subscribe(n,r,o){const{operator:i}=this,s=function QD(t,e,n){if(t){if(t instanceof ce)return t;if(t[xi])return t[xi]()}return t||e||n?new ce(t,e,n):new ce(Ai)}(n,r,o);if(s.add(i?i.call(s,this.source):this.source||dt.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),dt.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(n){try{return this._subscribe(n)}catch(r){dt.useDeprecatedSynchronousErrorHandling&&(n.syncErrorThrown=!0,n.syncErrorValue=r),function JD(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof ce?n:null}return!0}(n)?n.error(r):console.warn(r)}}forEach(n,r){return new(r=nf(r))((o,i)=>{let s;s=this.subscribe(a=>{try{n(a)}catch(u){i(u),s&&s.unsubscribe()}},i,o)})}_subscribe(n){const{source:r}=this;return r&&r.subscribe(n)}[lo](){return this}pipe(...n){return 0===n.length?this:function tf(t){return 0===t.length?Ni:1===t.length?t[0]:function(n){return t.reduce((r,o)=>o(r),n)}}(n)(this)}toPromise(n){return new(n=nf(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return t.create=e=>new t(e),t})();function nf(t){if(t||(t=dt.Promise||Promise),!t)throw new Error("no Promise impl found");return t}const ir=(()=>{function t(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return t.prototype=Object.create(Error.prototype),t})();class ZD extends fe{constructor(e,n){super(),this.subject=e,this.subscriber=n,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,n=e.observers;if(this.subject=null,!n||0===n.length||e.isStopped||e.closed)return;const r=n.indexOf(this.subscriber);-1!==r&&n.splice(r,1)}}class rf extends ce{constructor(e){super(e),this.destination=e}}let nn=(()=>{class t extends se{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[xi](){return new rf(this)}lift(n){const r=new of(this,this);return r.operator=n,r}next(n){if(this.closed)throw new ir;if(!this.isStopped){const{observers:r}=this,o=r.length,i=r.slice();for(let s=0;snew of(e,n),t})();class of extends nn{constructor(e,n){super(),this.destination=e,this.source=n}next(e){const{destination:n}=this;n&&n.next&&n.next(e)}error(e){const{destination:n}=this;n&&n.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:n}=this;return n?this.source.subscribe(e):fe.EMPTY}}function Ri(t){return t&&"function"==typeof t.schedule}function Z(t,e){return function(r){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new KD(t,e))}}class KD{constructor(e,n){this.project=e,this.thisArg=n}call(e,n){return n.subscribe(new YD(e,this.project,this.thisArg))}}class YD extends ce{constructor(e,n,r){super(e),this.project=n,this.count=0,this.thisArg=r||this}_next(e){let n;try{n=this.project.call(this.thisArg,e,this.count++)}catch(r){return void this.destination.error(r)}this.destination.next(n)}}const sf=t=>e=>{for(let n=0,r=t.length;nt&&"number"==typeof t.length&&"function"!=typeof t;function uf(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}const xa=t=>{if(t&&"function"==typeof t[lo])return(t=>e=>{const n=t[lo]();if("function"!=typeof n.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return n.subscribe(e)})(t);if(af(t))return sf(t);if(uf(t))return(t=>e=>(t.then(n=>{e.closed||(e.next(n),e.complete())},n=>e.error(n)).then(null,_n),e))(t);if(t&&"function"==typeof t[Fi])return(t=>e=>{const n=t[Fi]();for(;;){let r;try{r=n.next()}catch(o){return e.error(o),e}if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add(()=>{n.return&&n.return()}),e})(t);{const n=`You provided ${Ta(t)?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(n)}};function Na(t,e){return new se(n=>{const r=new fe;let o=0;return r.add(e.schedule(function(){o!==t.length?(n.next(t[o++]),n.closed||r.add(this.schedule())):n.complete()})),r})}function Oe(t,e){return e?function uC(t,e){if(null!=t){if(function sC(t){return t&&"function"==typeof t[lo]}(t))return function rC(t,e){return new se(n=>{const r=new fe;return r.add(e.schedule(()=>{const o=t[lo]();r.add(o.subscribe({next(i){r.add(e.schedule(()=>n.next(i)))},error(i){r.add(e.schedule(()=>n.error(i)))},complete(){r.add(e.schedule(()=>n.complete()))}}))})),r})}(t,e);if(uf(t))return function oC(t,e){return new se(n=>{const r=new fe;return r.add(e.schedule(()=>t.then(o=>{r.add(e.schedule(()=>{n.next(o),r.add(e.schedule(()=>n.complete()))}))},o=>{r.add(e.schedule(()=>n.error(o)))}))),r})}(t,e);if(af(t))return Na(t,e);if(function aC(t){return t&&"function"==typeof t[Fi]}(t)||"string"==typeof t)return function iC(t,e){if(!t)throw new Error("Iterable cannot be null");return new se(n=>{const r=new fe;let o;return r.add(()=>{o&&"function"==typeof o.return&&o.return()}),r.add(e.schedule(()=>{o=t[Fi](),r.add(e.schedule(function(){if(n.closed)return;let i,s;try{const a=o.next();i=a.value,s=a.done}catch(a){return void n.error(a)}s?n.complete():(n.next(i),this.schedule())}))})),r})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}(t,e):t instanceof se?t:new se(xa(t))}class Ra extends ce{constructor(e){super(),this.parent=e}_next(e){this.parent.notifyNext(e)}_error(e){this.parent.notifyError(e),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class Fa extends ce{notifyNext(e){this.destination.next(e)}notifyError(e){this.destination.error(e)}notifyComplete(){this.destination.complete()}}function Oa(t,e){if(e.closed)return;if(t instanceof se)return t.subscribe(e);let n;try{n=xa(t)(e)}catch(r){e.error(r)}return n}function Ne(t,e,n=Number.POSITIVE_INFINITY){return"function"==typeof e?r=>r.pipe(Ne((o,i)=>Oe(t(o,i)).pipe(Z((s,a)=>e(o,s,i,a))),n)):("number"==typeof e&&(n=e),r=>r.lift(new lC(t,n)))}class lC{constructor(e,n=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=n}call(e,n){return n.subscribe(new cC(e,this.project,this.concurrent))}}class cC extends Fa{constructor(e,n,r=Number.POSITIVE_INFINITY){super(e),this.project=n,this.concurrent=r,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function co(t=Number.POSITIVE_INFINITY){return Ne(Ni,t)}function Pa(t,e){return e?Na(t,e):new se(sf(t))}function ka(){return function(e){return e.lift(new fC(e))}}class fC{constructor(e){this.connectable=e}call(e,n){const{connectable:r}=this;r._refCount++;const o=new hC(e,r),i=n.subscribe(o);return o.closed||(o.connection=r.connect()),i}}class hC extends ce{constructor(e,n){super(e),this.connectable=n}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const n=e._refCount;if(n<=0)return void(this.connection=null);if(e._refCount=n-1,n>1)return void(this.connection=null);const{connection:r}=this,o=e._connection;this.connection=null,o&&(!r||o===r)&&o.unsubscribe()}}class lf extends se{constructor(e,n){super(),this.source=e,this.subjectFactory=n,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new fe,e.add(this.source.subscribe(new gC(this.getSubject(),this))),e.closed&&(this._connection=null,e=fe.EMPTY)),e}refCount(){return ka()(this)}}const pC=(()=>{const t=lf.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class gC extends rf{constructor(e,n){super(e),this.connectable=n}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const n=e._connection;e._refCount=0,e._subject=null,e._connection=null,n&&n.unsubscribe()}}}class vC{constructor(e,n){this.subjectFactory=e,this.selector=n}call(e,n){const{selector:r}=this,o=this.subjectFactory(),i=r(o).subscribe(e);return i.add(n.subscribe(o)),i}}function _C(){return new nn}function ee(t){for(let e in t)if(t[e]===ee)return e;throw Error("Could not find renamed property on target object.")}function Va(t,e){for(const n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}function K(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(K).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(null==e)return""+e;const n=e.indexOf("\n");return-1===n?e:e.substring(0,n)}function La(t,e){return null==t||""===t?null===e?"":e:null==e||""===e?t:t+" "+e}const CC=ee({__forward_ref__:ee});function re(t){return t.__forward_ref__=re,t.toString=function(){return K(this())},t}function L(t){return cf(t)?t():t}function cf(t){return"function"==typeof t&&t.hasOwnProperty(CC)&&t.__forward_ref__===re}class J extends Error{constructor(e,n){super(function ja(t,e){return`NG0${Math.abs(t)}${e?": "+e:""}`}(e,n)),this.code=e}}function F(t){return"string"==typeof t?t:null==t?"":String(t)}function Be(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():F(t)}function Oi(t,e){const n=e?` in ${e}`:"";throw new J(-201,`No provider for ${Be(t)} found${n}`)}function Ye(t,e){null==t&&function ae(t,e,n,r){throw new Error(`ASSERTION ERROR: ${t}`+(null==r?"":` [Expected=> ${n} ${r} ${e} <=Actual]`))}(e,t,null,"!=")}function P(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Xe(t){return{providers:t.providers||[],imports:t.imports||[]}}function Ba(t){return df(t,Pi)||df(t,hf)}function df(t,e){return t.hasOwnProperty(e)?t[e]:null}function ff(t){return t&&(t.hasOwnProperty(Ha)||t.hasOwnProperty(IC))?t[Ha]:null}const Pi=ee({\u0275prov:ee}),Ha=ee({\u0275inj:ee}),hf=ee({ngInjectableDef:ee}),IC=ee({ngInjectorDef:ee});var k=(()=>((k=k||{})[k.Default=0]="Default",k[k.Host=1]="Host",k[k.Self=2]="Self",k[k.SkipSelf=4]="SkipSelf",k[k.Optional=8]="Optional",k))();let Ua;function Dn(t){const e=Ua;return Ua=t,e}function pf(t,e,n){const r=Ba(t);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&k.Optional?null:void 0!==e?e:void Oi(K(t),"Injector")}function Cn(t){return{toString:t}.toString()}var bt=(()=>((bt=bt||{})[bt.OnPush=0]="OnPush",bt[bt.Default=1]="Default",bt))(),Lt=(()=>(function(t){t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom"}(Lt||(Lt={})),Lt))();const xC="undefined"!=typeof globalThis&&globalThis,NC="undefined"!=typeof window&&window,RC="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,Y=xC||"undefined"!=typeof global&&global||NC||RC,sr={},te=[],ki=ee({\u0275cmp:ee}),$a=ee({\u0275dir:ee}),Ga=ee({\u0275pipe:ee}),gf=ee({\u0275mod:ee}),on=ee({\u0275fac:ee}),fo=ee({__NG_ELEMENT_ID__:ee});let FC=0;function sn(t){return Cn(()=>{const n={},r={type:t.type,providersResolver:null,decls:t.decls,vars:t.vars,factory:null,template:t.template||null,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputs:null,outputs:null,exportAs:t.exportAs||null,onPush:t.changeDetection===bt.OnPush,directiveDefs:null,pipeDefs:null,selectors:t.selectors||te,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||Lt.Emulated,id:"c",styles:t.styles||te,_:null,setInput:null,schemas:t.schemas||null,tView:null},o=t.directives,i=t.features,s=t.pipes;return r.id+=FC++,r.inputs=_f(t.inputs,n),r.outputs=_f(t.outputs),i&&i.forEach(a=>a(r)),r.directiveDefs=o?()=>("function"==typeof o?o():o).map(mf):null,r.pipeDefs=s?()=>("function"==typeof s?s():s).map(yf):null,r})}function mf(t){return Pe(t)||function bn(t){return t[$a]||null}(t)}function yf(t){return function Bn(t){return t[Ga]||null}(t)}const vf={};function ft(t){return Cn(()=>{const e={type:t.type,bootstrap:t.bootstrap||te,declarations:t.declarations||te,imports:t.imports||te,exports:t.exports||te,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&(vf[t.id]=t.type),e})}function _f(t,e){if(null==t)return sr;const n={};for(const r in t)if(t.hasOwnProperty(r)){let o=t[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,e&&(e[o]=i)}return n}const N=sn;function He(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,onDestroy:t.type.prototype.ngOnDestroy||null}}function Pe(t){return t[ki]||null}function ht(t,e){const n=t[gf]||null;if(!n&&!0===e)throw new Error(`Type ${K(t)} does not have '\u0275mod' property.`);return n}const j=11;function jt(t){return Array.isArray(t)&&"object"==typeof t[1]}function Et(t){return Array.isArray(t)&&!0===t[1]}function Wa(t){return 0!=(8&t.flags)}function Bi(t){return 2==(2&t.flags)}function Hi(t){return 1==(1&t.flags)}function Mt(t){return null!==t.template}function jC(t){return 0!=(512&t[2])}function Gn(t,e){return t.hasOwnProperty(on)?t[on]:null}class UC{constructor(e,n,r){this.previousValue=e,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function tt(){return Cf}function Cf(t){return t.type.prototype.ngOnChanges&&(t.setInput=GC),$C}function $C(){const t=wf(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===sr)t.previous=e;else for(let r in e)n[r]=e[r];t.current=null,this.ngOnChanges(e)}}function GC(t,e,n,r){const o=wf(t)||function zC(t,e){return t[bf]=e}(t,{previous:sr,current:null}),i=o.current||(o.current={}),s=o.previous,a=this.declaredInputs[n],u=s[a];i[a]=new UC(u&&u.currentValue,e,s===sr),t[r]=e}tt.ngInherit=!0;const bf="__ngSimpleChanges__";function wf(t){return t[bf]||null}let Ya;function he(t){return!!t.listen}const Ef={createRenderer:(t,e)=>function Xa(){return void 0!==Ya?Ya:"undefined"!=typeof document?document:void 0}()};function _e(t){for(;Array.isArray(t);)t=t[0];return t}function Ui(t,e){return _e(e[t])}function mt(t,e){return _e(e[t.index])}function eu(t,e){return t.data[e]}function dr(t,e){return t[e]}function nt(t,e){const n=e[t];return jt(n)?n:n[0]}function tu(t){return 128==(128&t[2])}function wn(t,e){return null==e?null:t[e]}function Sf(t){t[18]=0}function nu(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const R={lFrame:Of(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function Af(){return R.bindingsEnabled}function v(){return R.lFrame.lView}function Q(){return R.lFrame.tView}function ru(t){return R.lFrame.contextLView=t,t[8]}function Me(){let t=If();for(;null!==t&&64===t.type;)t=t.parent;return t}function If(){return R.lFrame.currentTNode}function Bt(t,e){const n=R.lFrame;n.currentTNode=t,n.isParent=e}function ou(){return R.lFrame.isParent}function $i(){return R.isInCheckNoChangesMode}function Gi(t){R.isInCheckNoChangesMode=t}function Ue(){const t=R.lFrame;let e=t.bindingRootIndex;return-1===e&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function fr(){return R.lFrame.bindingIndex++}function ub(t,e){const n=R.lFrame;n.bindingIndex=n.bindingRootIndex=t,su(e)}function su(t){R.lFrame.currentDirectiveIndex=t}function uu(t){R.lFrame.currentQueryIndex=t}function cb(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Rf(t,e,n){if(n&k.SkipSelf){let o=e,i=t;for(;!(o=o.parent,null!==o||n&k.Host||(o=cb(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;e=o,t=i}const r=R.lFrame=Ff();return r.currentTNode=e,r.lView=t,!0}function zi(t){const e=Ff(),n=t[1];R.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function Ff(){const t=R.lFrame,e=null===t?null:t.child;return null===e?Of(t):e}function Of(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function Pf(){const t=R.lFrame;return R.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const kf=Pf;function qi(){const t=Pf();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function $e(){return R.lFrame.selectedIndex}function En(t){R.lFrame.selectedIndex=t}function pe(){const t=R.lFrame;return eu(t.tView,t.selectedIndex)}function Wi(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n=r)break}else e[u]<0&&(t[18]+=65536),(a>11>16&&(3&t[2])===e){t[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class yo{constructor(e,n,r){this.factory=e,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function Zi(t,e,n){const r=he(t);let o=0;for(;oe){s=i-1;break}}}for(;i>16}(t),r=e;for(;n>0;)r=r[15],n--;return r}let fu=!0;function Yi(t){const e=fu;return fu=t,e}let Mb=0;function _o(t,e){const n=pu(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,hu(r.data,t),hu(e,null),hu(r.blueprint,null));const o=Xi(t,e),i=t.injectorIndex;if(Bf(o)){const s=hr(o),a=pr(o,e),u=a[1].data;for(let l=0;l<8;l++)e[i+l]=a[s+l]|u[s+l]}return e[i+8]=o,i}function hu(t,e){t.push(0,0,0,0,0,0,0,0,e)}function pu(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function Xi(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,o=e;for(;null!==o;){const i=o[1],s=i.type;if(r=2===s?i.declTNode:1===s?o[6]:null,null===r)return-1;if(n++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return-1}function es(t,e,n){!function Sb(t,e,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(fo)&&(r=n[fo]),null==r&&(r=n[fo]=Mb++);const o=255&r;e.data[t+(o>>5)]|=1<=0?255&e:Ib:e}(n);if("function"==typeof i){if(!Rf(e,t,r))return r&k.Host?$f(o,n,r):Gf(e,n,r,o);try{const s=i(r);if(null!=s||r&k.Optional)return s;Oi(n)}finally{kf()}}else if("number"==typeof i){let s=null,a=pu(t,e),u=-1,l=r&k.Host?e[16][6]:null;for((-1===a||r&k.SkipSelf)&&(u=-1===a?Xi(t,e):e[a+8],-1!==u&&Jf(r,!1)?(s=e[1],a=hr(u),e=pr(u,e)):a=-1);-1!==a;){const c=e[1];if(Wf(i,a,c.data)){const d=Tb(a,e,n,s,r,l);if(d!==qf)return d}u=e[a+8],-1!==u&&Jf(r,e[1].data[a+8]===l)&&Wf(i,a,e)?(s=c,a=hr(u),e=pr(u,e)):a=-1}}}return Gf(e,n,r,o)}const qf={};function Ib(){return new gr(Me(),v())}function Tb(t,e,n,r,o,i){const s=e[1],a=s.data[t+8],c=function ts(t,e,n,r,o){const i=t.providerIndexes,s=e.data,a=1048575&i,u=t.directiveStart,c=i>>20,f=o?a+c:t.directiveEnd;for(let h=r?a:a+c;h=u&&p.type===n)return h}if(o){const h=s[u];if(h&&Mt(h)&&h.type===n)return u}return null}(a,s,n,null==r?Bi(a)&&fu:r!=s&&0!=(3&a.type),o&k.Host&&i===a);return null!==c?Do(e,s,c,a):qf}function Do(t,e,n,r){let o=t[n];const i=e.data;if(function Db(t){return t instanceof yo}(o)){const s=o;s.resolving&&function bC(t,e){const n=e?`. Dependency path: ${e.join(" > ")} > ${t}`:"";throw new J(-200,`Circular dependency in DI detected for ${t}${n}`)}(Be(i[n]));const a=Yi(s.canSeeViewProviders);s.resolving=!0;const u=s.injectImpl?Dn(s.injectImpl):null;Rf(t,r,k.Default);try{o=t[n]=s.factory(void 0,i,t,r),e.firstCreatePass&&n>=r.directiveStart&&function vb(t,e,n){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=e.type.prototype;if(r){const s=Cf(e);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,s)}o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,i))}(n,i[n],e)}finally{null!==u&&Dn(u),Yi(a),s.resolving=!1,kf()}}return o}function Wf(t,e,n){return!!(n[e+(t>>5)]&1<{const e=t.prototype.constructor,n=e[on]||gu(e),r=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==r;){const i=o[on]||gu(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function gu(t){return cf(t)?()=>{const e=gu(L(t));return e&&e()}:Gn(t)}const yr="__parameters__";function _r(t,e,n){return Cn(()=>{const r=function mu(t){return function(...n){if(t){const r=t(...n);for(const o in r)this[o]=r[o]}}}(e);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(u,l,c){const d=u.hasOwnProperty(yr)?u[yr]:Object.defineProperty(u,yr,{value:[]})[yr];for(;d.length<=c;)d.push(null);return(d[c]=d[c]||[]).push(s),u}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}class B{constructor(e,n){this._desc=e,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=P({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Rb=new B("AnalyzeForEntryComponents");function Ht(t,e){t.forEach(n=>Array.isArray(n)?Ht(n,e):e(n))}function Zf(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function ns(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function rt(t,e,n){let r=Dr(t,e);return r>=0?t[1|r]=n:(r=~r,function Pb(t,e,n,r){let o=t.length;if(o==e)t.push(n,r);else if(1===o)t.push(r,t[0]),t[0]=n;else{for(o--,t.push(t[o-1],t[o]);o>e;)t[o]=t[o-2],o--;t[e]=n,t[e+1]=r}}(t,r,e,n)),r}function vu(t,e){const n=Dr(t,e);if(n>=0)return t[1|n]}function Dr(t,e){return function Xf(t,e,n){let r=0,o=t.length>>n;for(;o!==r;){const i=r+(o-r>>1),s=t[i<e?o=i:r=i+1}return~(o<({token:t})),-1),Ut=Ao(_r("Optional"),8),Cr=Ao(_r("SkipSelf"),4);class dh{constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}function Sn(t){return t instanceof dh?t.changingThisBreaksApplicationSecurity:t}const pw=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,gw=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;var De=(()=>((De=De||{})[De.NONE=0]="NONE",De[De.HTML=1]="HTML",De[De.STYLE=2]="STYLE",De[De.SCRIPT=3]="SCRIPT",De[De.URL=4]="URL",De[De.RESOURCE_URL=5]="RESOURCE_URL",De))();function Tu(t){const e=function Ro(){const t=v();return t&&t[12]}();return e?e.sanitize(De.URL,t)||"":function xo(t,e){const n=function cw(t){return t instanceof dh&&t.getTypeName()||null}(t);if(null!=n&&n!==e){if("ResourceURL"===n&&"URL"===e)return!0;throw new Error(`Required a safe ${e}, got a ${n} (see https://g.co/ng/security#xss)`)}return n===e}(t,"URL")?Sn(t):function us(t){return(t=String(t)).match(pw)||t.match(gw)?t:"unsafe:"+t}(F(t))}const Ch="__ngContext__";function Ve(t,e){t[Ch]=e}function Nu(t){const e=function Fo(t){return t[Ch]||null}(t);return e?Array.isArray(e)?e:e.lView:null}function Fu(t){return t.ngOriginalError}function Lw(t,...e){t.error(...e)}class Er{constructor(){this._console=console}handleError(e){const n=this._findOriginalError(e),r=function Vw(t){return t&&t.ngErrorLogger||Lw}(e);r(this._console,"ERROR",e),n&&r(this._console,"ORIGINAL ERROR",n)}_findOriginalError(e){let n=e&&Fu(e);for(;n&&Fu(n);)n=Fu(n);return n||null}}const Sh=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(Y))();function Gt(t){return t instanceof Function?t():t}var ot=(()=>((ot=ot||{})[ot.Important=1]="Important",ot[ot.DashCase=2]="DashCase",ot))();function Pu(t,e){return undefined(t,e)}function Oo(t){const e=t[3];return Et(e)?e[3]:e}function ku(t){return Nh(t[13])}function Vu(t){return Nh(t[4])}function Nh(t){for(;null!==t&&!Et(t);)t=t[4];return t}function Sr(t,e,n,r,o){if(null!=r){let i,s=!1;Et(r)?i=r:jt(r)&&(s=!0,r=r[0]);const a=_e(r);0===t&&null!==n?null==o?Vh(e,n,a):zn(e,n,a,o||null,!0):1===t&&null!==n?zn(e,n,a,o||null,!0):2===t?function Gh(t,e,n){const r=cs(t,e);r&&function aE(t,e,n,r){he(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,a,s):3===t&&e.destroyNode(a),null!=i&&function cE(t,e,n,r,o){const i=n[7];i!==_e(n)&&Sr(e,t,r,i,o);for(let a=10;a0&&(t[n-1][4]=r[4]);const i=ns(t,10+e);!function Xw(t,e){Po(t,e,e[j],2,null,null),e[0]=null,e[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}function Oh(t,e){if(!(256&e[2])){const n=e[j];he(n)&&n.destroyNode&&Po(t,e,n,3,null,null),function nE(t){let e=t[13];if(!e)return Hu(t[1],t);for(;e;){let n=null;if(jt(e))n=e[13];else{const r=e[10];r&&(n=r)}if(!n){for(;e&&!e[4]&&e!==t;)jt(e)&&Hu(e[1],e),e=e[3];null===e&&(e=t),jt(e)&&Hu(e[1],e),n=e&&e[4]}e=n}}(e)}}function Hu(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function sE(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r=0?r[o=l]():r[o=-l].unsubscribe(),i+=2}else{const s=r[o=n[i+1]];n[i].call(s)}if(null!==r){for(let i=o+1;ii?"":o[d+1].toLowerCase();const h=8&r?f:null;if(h&&-1!==Wh(h,l,0)||2&r&&l!==f){if(St(r))return!1;s=!0}}}}else{if(!s&&!St(r)&&!St(u))return!1;if(s&&St(u))continue;s=!1,r=u|1&r}}return St(r)||s}function St(t){return 0==(1&t)}function gE(t,e,n,r){if(null===e)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!St(s)&&(e+=Kh(i,o),o=""),r=s,i=i||!St(r);n++}return""!==o&&(e+=Kh(i,o)),e}const O={};function H(t){Yh(Q(),v(),$e()+t,$i())}function Yh(t,e,n,r){if(!r)if(3==(3&e[2])){const i=t.preOrderCheckHooks;null!==i&&Ji(e,i,n)}else{const i=t.preOrderHooks;null!==i&&Qi(e,i,0,n)}En(n)}function hs(t,e){return t<<17|e<<2}function At(t){return t>>17&32767}function qu(t){return 2|t}function ln(t){return(131068&t)>>2}function Wu(t,e){return-131069&t|e<<2}function Ju(t){return 1|t}function lp(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r20&&Yh(t,e,20,$i()),n(r,o)}finally{En(i)}}function ol(t,e,n){!Af()||(function zE(t,e,n,r){const o=n.directiveStart,i=n.directiveEnd;t.firstCreatePass||_o(n,e),Ve(r,e);const s=n.initialInputs;for(let a=o;a0;){const n=t[--e];if("number"==typeof n&&n<0)return n}return 0})(a)!=u&&a.push(u),a.push(r,o,s)}}function _p(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function Dp(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function QE(t,e,n){if(n){if(e.exportAs)for(let r=0;r0&&ul(n)}}function ul(t){for(let r=ku(t);null!==r;r=Vu(r))for(let o=10;o0&&ul(i)}const n=t[1].components;if(null!==n)for(let r=0;r0&&ul(o)}}function nM(t,e){const n=nt(e,t),r=n[1];(function rM(t,e){for(let n=e.length;nPromise.resolve(null))();function Mp(t){return t[7]||(t[7]=[])}function Sp(t){return t.cleanup||(t.cleanup=[])}function Ip(t,e){const n=t[9],r=n?n.get(Er,null):null;r&&r.handleError(e)}function Tp(t,e,n,r,o){for(let i=0;ithis.processProvider(a,e,n)),Ht([e],a=>this.processInjectorType(a,[],i)),this.records.set(hl,xr(void 0,this));const s=this.records.get(pl);this.scope=null!=s?s.value:null,this.source=o||("object"==typeof e?null:K(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,n=Mo,r=k.Default){this.assertNotDestroyed();const o=nh(this),i=Dn(void 0);try{if(!(r&k.SkipSelf)){let a=this.records.get(e);if(void 0===a){const u=function _M(t){return"function"==typeof t||"object"==typeof t&&t instanceof B}(e)&&Ba(e);a=u&&this.injectableDefInScope(u)?xr(ml(e),Lo):null,this.records.set(e,a)}if(null!=a)return this.hydrate(e,a)}return(r&k.Self?Np():this.parent).get(e,n=r&k.Optional&&n===Mo?null:n)}catch(s){if("NullInjectorError"===s.name){if((s[os]=s[os]||[]).unshift(K(e)),o)throw s;return function Wb(t,e,n,r){const o=t[os];throw e[th]&&o.unshift(e[th]),t.message=function Jb(t,e,n,r=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.substr(2):t;let o=K(e);if(Array.isArray(e))o=e.map(K).join(" -> ");else if("object"==typeof e){let i=[];for(let s in e)if(e.hasOwnProperty(s)){let a=e[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):K(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${t.replace(Ub,"\n ")}`}("\n"+t.message,o,n,r),t.ngTokenPath=o,t[os]=null,t}(s,e,"R3InjectorError",this.source)}throw s}finally{Dn(i),nh(o)}}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(e=>this.get(e))}toString(){const e=[];return this.records.forEach((r,o)=>e.push(K(o))),`R3Injector[${e.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new J(205,"")}processInjectorType(e,n,r){if(!(e=L(e)))return!1;let o=ff(e);const i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==r.indexOf(s);if(void 0!==i&&(o=ff(i)),null==o)return!1;if(null!=o.imports&&!a){let c;r.push(s);try{Ht(o.imports,d=>{this.processInjectorType(d,n,r)&&(void 0===c&&(c=[]),c.push(d))})}finally{}if(void 0!==c)for(let d=0;dthis.processProvider(p,f,h||te))}}this.injectorDefTypes.add(s);const u=Gn(s)||(()=>new s);this.records.set(s,xr(u,Lo));const l=o.providers;if(null!=l&&!a){const c=e;Ht(l,d=>this.processProvider(d,c,l))}return void 0!==i&&void 0!==e.providers}processProvider(e,n,r){let o=Nr(e=L(e))?e:L(e&&e.provide);const i=function hM(t,e,n){return Pp(t)?xr(void 0,t.useValue):xr(Op(t),Lo)}(e);if(Nr(e)||!0!==e.multi)this.records.get(o);else{let s=this.records.get(o);s||(s=xr(void 0,Lo,!0),s.factory=()=>Cu(s.multi),this.records.set(o,s)),o=e,s.multi.push(e)}this.records.set(o,i)}hydrate(e,n){return n.value===Lo&&(n.value=cM,n.value=n.factory()),"object"==typeof n.value&&n.value&&function vM(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(n.value)&&this.onDestroy.add(n.value),n.value}injectableDefInScope(e){if(!e.providedIn)return!1;const n=L(e.providedIn);return"string"==typeof n?"any"===n||n===this.scope:this.injectorDefTypes.has(n)}}function ml(t){const e=Ba(t),n=null!==e?e.factory:Gn(t);if(null!==n)return n;if(t instanceof B)throw new J(204,"");if(t instanceof Function)return function fM(t){const e=t.length;if(e>0)throw function Eo(t,e){const n=[];for(let r=0;rn.factory(t):()=>new t}(t);throw new J(204,"")}function Op(t,e,n){let r;if(Nr(t)){const o=L(t);return Gn(o)||ml(o)}if(Pp(t))r=()=>L(t.useValue);else if(function gM(t){return!(!t||!t.useFactory)}(t))r=()=>t.useFactory(...Cu(t.deps||[]));else if(function pM(t){return!(!t||!t.useExisting)}(t))r=()=>S(L(t.useExisting));else{const o=L(t&&(t.useClass||t.provide));if(!function yM(t){return!!t.deps}(t))return Gn(o)||ml(o);r=()=>new o(...Cu(t.deps))}return r}function xr(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Pp(t){return null!==t&&"object"==typeof t&&Gb in t}function Nr(t){return"function"==typeof t}let Re=(()=>{class t{static create(n,r){var o;if(Array.isArray(n))return Rp({name:""},r,n,"");{const i=null!==(o=n.name)&&void 0!==o?o:"";return Rp({name:i},n.parent,n.providers,i)}}}return t.THROW_IF_NOT_FOUND=Mo,t.NULL=new xp,t.\u0275prov=P({token:t,providedIn:"any",factory:()=>S(hl)}),t.__NG_ELEMENT_ID__=-1,t})();function AM(t,e){Wi(Nu(t)[1],Me())}function X(t){let e=function Wp(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),n=!0;const r=[t];for(;e;){let o;if(Mt(t))o=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new J(903,"");o=e.\u0275dir}if(o){if(n){r.push(o);const s=t;s.inputs=_l(t.inputs),s.declaredInputs=_l(t.declaredInputs),s.outputs=_l(t.outputs);const a=o.hostBindings;a&&NM(t,a);const u=o.viewQuery,l=o.contentQueries;if(u&&TM(t,u),l&&xM(t,l),Va(t.inputs,o.inputs),Va(t.declaredInputs,o.declaredInputs),Va(t.outputs,o.outputs),Mt(o)&&o.data.animation){const c=t.data;c.animation=(c.animation||[]).concat(o.data.animation)}}const i=o.features;if(i)for(let s=0;s=0;r--){const o=t[r];o.hostVars=e+=o.hostVars,o.hostAttrs=Ki(o.hostAttrs,n=Ki(n,o.hostAttrs))}}(r)}function _l(t){return t===sr?{}:t===te?[]:t}function TM(t,e){const n=t.viewQuery;t.viewQuery=n?(r,o)=>{e(r,o),n(r,o)}:e}function xM(t,e){const n=t.contentQueries;t.contentQueries=n?(r,o,i)=>{e(r,o,i),n(r,o,i)}:e}function NM(t,e){const n=t.hostBindings;t.hostBindings=n?(r,o)=>{e(r,o),n(r,o)}:e}let _s=null;function Rr(){if(!_s){const t=Y.Symbol;if(t&&t.iterator)_s=t.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let n=0;na(_e(I[r.index])):r.index;if(he(n)){let I=null;if(!a&&u&&(I=function l0(t,e,n,r){const o=t.cleanup;if(null!=o)for(let i=0;iu?a[u]:null}"string"==typeof s&&(i+=2)}return null}(t,e,o,r.index)),null!==I)(I.__ngLastListenerFn__||I).__ngNextListenerFn__=i,I.__ngLastListenerFn__=i,h=!1;else{i=Tl(r,e,d,i,!1);const W=n.listen(D,o,i);f.push(i,W),c&&c.push(o,M,g,g+1)}}else i=Tl(r,e,d,i,!0),D.addEventListener(o,i,s),f.push(i),c&&c.push(o,M,g,s)}else i=Tl(r,e,d,i,!1);const p=r.outputs;let m;if(h&&null!==p&&(m=p[o])){const _=m.length;if(_)for(let D=0;D<_;D+=2){const ct=e[m[D]][m[D+1]].subscribe(i),or=f.length;f.push(i,ct),c&&c.push(o,r.index,or,-(or+1))}}}(i,o,o[j],s,t,e,!!n,r),Ce}function vg(t,e,n,r){try{return!1!==n(r)}catch(o){return Ip(t,o),!1}}function Tl(t,e,n,r,o){return function i(s){if(s===Function)return r;const a=2&t.flags?nt(t.index,e):e;0==(32&e[2])&&ll(a);let u=vg(e,0,r,s),l=i.__ngNextListenerFn__;for(;l;)u=vg(e,0,l,s)&&u,l=l.__ngNextListenerFn__;return o&&!1===u&&(s.preventDefault(),s.returnValue=!1),u}}function Ig(t,e,n,r,o){const i=t[n+1],s=null===e;let a=r?At(i):ln(i),u=!1;for(;0!==a&&(!1===u||s);){const c=t[a+1];m0(t[a],e)&&(u=!0,t[a+1]=r?Ju(c):qu(c)),a=r?At(c):ln(c)}u&&(t[n+1]=r?qu(i):Ju(i))}function m0(t,e){return null===t||null==e||(Array.isArray(t)?t[1]:t)===e||!(!Array.isArray(t)||"string"!=typeof e)&&Dr(t,e)>=0}function bs(t,e){return function xt(t,e,n,r){const o=v(),i=Q(),s=function un(t){const e=R.lFrame,n=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,n}(2);i.firstUpdatePass&&function Vg(t,e,n,r){const o=t.data;if(null===o[n+1]){const i=o[$e()],s=function kg(t,e){return e>=t.expandoStartIndex}(t,n);(function Hg(t,e){return 0!=(t.flags&(e?16:32))})(i,r)&&null===e&&!s&&(e=!1),e=function M0(t,e,n,r){const o=function au(t){const e=R.lFrame.currentDirectiveIndex;return-1===e?null:t[e]}(t);let i=r?e.residualClasses:e.residualStyles;if(null===o)0===(r?e.classBindings:e.styleBindings)&&(n=$o(n=Nl(null,t,e,n,r),e.attrs,r),i=null);else{const s=e.directiveStylingLast;if(-1===s||t[s]!==o)if(n=Nl(o,t,e,n,r),null===i){let u=function S0(t,e,n){const r=n?e.classBindings:e.styleBindings;if(0!==ln(r))return t[At(r)]}(t,e,r);void 0!==u&&Array.isArray(u)&&(u=Nl(null,t,e,u[1],r),u=$o(u,e.attrs,r),function A0(t,e,n,r){t[At(n?e.classBindings:e.styleBindings)]=r}(t,e,r,u))}else i=function I0(t,e,n){let r;const o=e.directiveEnd;for(let i=1+e.directiveStylingLast;i0)&&(l=!0)}else c=n;if(o)if(0!==u){const f=At(t[a+1]);t[r+1]=hs(f,a),0!==f&&(t[f+1]=Wu(t[f+1],r)),t[a+1]=function wE(t,e){return 131071&t|e<<17}(t[a+1],r)}else t[r+1]=hs(a,0),0!==a&&(t[a+1]=Wu(t[a+1],r)),a=r;else t[r+1]=hs(u,0),0===a?a=r:t[u+1]=Wu(t[u+1],r),u=r;l&&(t[r+1]=qu(t[r+1])),Ig(t,c,r,!0),Ig(t,c,r,!1),function g0(t,e,n,r,o){const i=o?t.residualClasses:t.residualStyles;null!=i&&"string"==typeof e&&Dr(i,e)>=0&&(n[r+1]=Ju(n[r+1]))}(e,c,t,r,i),s=hs(a,u),i?e.classBindings=s:e.styleBindings=s}(o,i,e,n,s,r)}}(i,t,s,r),e!==O&&Le(o,s,e)&&function jg(t,e,n,r,o,i,s,a){if(!(3&e.type))return;const u=t.data,l=u[a+1];ws(function tp(t){return 1==(1&t)}(l)?Bg(u,e,n,o,ln(l),s):void 0)||(ws(i)||function ep(t){return 2==(2&t)}(l)&&(i=Bg(u,null,n,o,a,s)),function dE(t,e,n,r,o){const i=he(t);if(e)o?i?t.addClass(n,r):n.classList.add(r):i?t.removeClass(n,r):n.classList.remove(r);else{let s=-1===r.indexOf("-")?void 0:ot.DashCase;if(null==o)i?t.removeStyle(n,r,s):n.style.removeProperty(r);else{const a="string"==typeof o&&o.endsWith("!important");a&&(o=o.slice(0,-10),s|=ot.Important),i?t.setStyle(n,r,o,s):n.style.setProperty(r,o,a?"important":"")}}}(r,s,Ui($e(),n),o,i))}(i,i.data[$e()],o,o[j],t,o[s+1]=function N0(t,e){return null==t||("string"==typeof e?t+=e:"object"==typeof t&&(t=K(Sn(t)))),t}(e,n),r,s)}(t,e,null,!0),bs}function Nl(t,e,n,r,o){let i=null;const s=n.directiveEnd;let a=n.directiveStylingLast;for(-1===a?a=n.directiveStart:a++;a0;){const u=t[o],l=Array.isArray(u),c=l?u[1]:u,d=null===c;let f=n[o+1];f===O&&(f=d?te:void 0);let h=d?vu(f,r):c===r?f:void 0;if(l&&!ws(h)&&(h=vu(u,r)),ws(h)&&(a=h,s))return a;const p=t[o+1];o=s?At(p):ln(p)}if(null!==e){let u=i?e.residualClasses:e.residualStyles;null!=u&&(a=vu(u,r))}return a}function ws(t){return void 0!==t}function T(t,e=""){const n=v(),r=Q(),o=t+20,i=r.firstCreatePass?Ar(r,o,1,e,null):r.data[o],s=n[o]=function Lu(t,e){return he(t)?t.createText(e):t.createTextNode(e)}(n[j],e);ds(r,n,s,i),Bt(i,!1)}function Kt(t){return Rt("",t,""),Kt}function Rt(t,e,n){const r=v(),o=function Or(t,e,n,r){return Le(t,fr(),n)?e+F(n)+r:O}(r,t,e,n);return o!==O&&cn(r,$e(),o),Rt}const Wn=void 0;var K0=["en",[["a","p"],["AM","PM"],Wn],[["AM","PM"],Wn,Wn],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Wn,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Wn,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Wn,"{1} 'at' {0}",Wn],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function Z0(t){const n=Math.floor(Math.abs(t)),r=t.toString().replace(/^[^.]*\.?/,"").length;return 1===n&&0===r?1:5}];let Gr={};function qe(t){const e=function Y0(t){return t.toLowerCase().replace(/_/g,"-")}(t);let n=um(e);if(n)return n;const r=e.split("-")[0];if(n=um(r),n)return n;if("en"===r)return K0;throw new Error(`Missing locale data for the locale "${t}".`)}function um(t){return t in Gr||(Gr[t]=Y.ng&&Y.ng.common&&Y.ng.common.locales&&Y.ng.common.locales[t]),Gr[t]}var b=(()=>((b=b||{})[b.LocaleId=0]="LocaleId",b[b.DayPeriodsFormat=1]="DayPeriodsFormat",b[b.DayPeriodsStandalone=2]="DayPeriodsStandalone",b[b.DaysFormat=3]="DaysFormat",b[b.DaysStandalone=4]="DaysStandalone",b[b.MonthsFormat=5]="MonthsFormat",b[b.MonthsStandalone=6]="MonthsStandalone",b[b.Eras=7]="Eras",b[b.FirstDayOfWeek=8]="FirstDayOfWeek",b[b.WeekendRange=9]="WeekendRange",b[b.DateFormat=10]="DateFormat",b[b.TimeFormat=11]="TimeFormat",b[b.DateTimeFormat=12]="DateTimeFormat",b[b.NumberSymbols=13]="NumberSymbols",b[b.NumberFormats=14]="NumberFormats",b[b.CurrencyCode=15]="CurrencyCode",b[b.CurrencySymbol=16]="CurrencySymbol",b[b.CurrencyName=17]="CurrencyName",b[b.Currencies=18]="Currencies",b[b.Directionality=19]="Directionality",b[b.PluralCase=20]="PluralCase",b[b.ExtraData=21]="ExtraData",b))();const Es="en-US";let lm=Es;function Ol(t,e,n,r,o){if(t=L(t),Array.isArray(t))for(let i=0;i>20;if(Nr(t)||!t.multi){const h=new yo(u,o,y),p=kl(a,e,o?c:c+f,d);-1===p?(es(_o(l,s),i,a),Pl(i,t,e.length),e.push(a),l.directiveStart++,l.directiveEnd++,o&&(l.providerIndexes+=1048576),n.push(h),s.push(h)):(n[p]=h,s[p]=h)}else{const h=kl(a,e,c+f,d),p=kl(a,e,c,c+f),m=h>=0&&n[h],_=p>=0&&n[p];if(o&&!_||!o&&!m){es(_o(l,s),i,a);const D=function ZS(t,e,n,r,o){const i=new yo(t,n,y);return i.multi=[],i.index=e,i.componentProviders=0,Fm(i,o,r&&!n),i}(o?QS:JS,n.length,o,r,u);!o&&_&&(n[p].providerFactory=D),Pl(i,t,e.length,0),e.push(a),l.directiveStart++,l.directiveEnd++,o&&(l.providerIndexes+=1048576),n.push(D),s.push(D)}else Pl(i,t,h>-1?h:p,Fm(n[o?p:h],u,!o&&r));!o&&r&&_&&n[p].componentProviders++}}}function Pl(t,e,n,r){const o=Nr(e),i=function mM(t){return!!t.useClass}(e);if(o||i){const u=(i?L(e.useClass):e).prototype.ngOnDestroy;if(u){const l=t.destroyHooks||(t.destroyHooks=[]);if(!o&&e.multi){const c=l.indexOf(n);-1===c?l.push(n,[r,u]):l[c+1].push(r,u)}else l.push(n,u)}}}function Fm(t,e,n){return n&&t.componentProviders++,t.multi.push(e)-1}function kl(t,e,n,r){for(let o=n;o{n.providersResolver=(r,o)=>function WS(t,e,n){const r=Q();if(r.firstCreatePass){const o=Mt(t);Ol(n,r.data,r.blueprint,o,!0),Ol(e,r.data,r.blueprint,o,!1)}}(r,o?o(t):t,e)}}class Om{}class XS{resolveComponentFactory(e){throw function YS(t){const e=Error(`No component factory found for ${K(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(e)}}let qr=(()=>{class t{}return t.NULL=new XS,t})();function eA(){return Wr(Me(),v())}function Wr(t,e){return new st(mt(t,e))}let st=(()=>{class t{constructor(n){this.nativeElement=n}}return t.__NG_ELEMENT_ID__=eA,t})();class km{}let dn=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>function rA(){const t=v(),n=nt(Me().index,t);return function nA(t){return t[j]}(jt(n)?n:t)}(),t})(),oA=(()=>{class t{}return t.\u0275prov=P({token:t,providedIn:"root",factory:()=>null}),t})();class Jo{constructor(e){this.full=e,this.major=e.split(".")[0],this.minor=e.split(".")[1],this.patch=e.split(".").slice(2).join(".")}}const iA=new Jo("13.2.0"),Ll={};function Ts(t,e,n,r,o=!1){for(;null!==n;){const i=e[n.index];if(null!==i&&r.push(_e(i)),Et(i))for(let a=10;a-1&&(Bu(e,r),ns(n,r))}this._attachedToViewContainer=!1}Oh(this._lView[1],this._lView)}onDestroy(e){!function gp(t,e,n,r){const o=Mp(e);null===n?o.push(r):(o.push(n),t.firstCreatePass&&Sp(t).push(r,o.length-1))}(this._lView[1],this._lView,null,e)}markForCheck(){ll(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){dl(this._lView[1],this._lView,this.context)}checkNoChanges(){!function iM(t,e,n){Gi(!0);try{dl(t,e,n)}finally{Gi(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new J(902,"");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function tE(t,e){Po(t,e,e[j],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new J(902,"");this._appRef=e}}class sA extends Qo{constructor(e){super(e),this._view=e}detectChanges(){Ep(this._view)}checkNoChanges(){!function sM(t){Gi(!0);try{Ep(t)}finally{Gi(!1)}}(this._view)}get context(){return null}}class Vm extends qr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const n=Pe(e);return new jl(n,this.ngModule)}}function Lm(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const uA=new B("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>Sh});class jl extends Om{constructor(e,n){super(),this.componentDef=e,this.ngModule=n,this.componentType=e.type,this.selector=function CE(t){return t.map(DE).join(",")}(e.selectors),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!n}get inputs(){return Lm(this.componentDef.inputs)}get outputs(){return Lm(this.componentDef.outputs)}create(e,n,r,o){const i=(o=o||this.ngModule)?function lA(t,e){return{get:(n,r,o)=>{const i=t.get(n,Ll,o);return i!==Ll||r===Ll?i:e.get(n,r,o)}}}(e,o.injector):e,s=i.get(km,Ef),a=i.get(oA,null),u=s.createRenderer(null,this.componentDef),l=this.componentDef.selectors[0][0]||"div",c=r?function pp(t,e,n){if(he(t))return t.selectRootElement(e,n===Lt.ShadowDom);let r="string"==typeof e?t.querySelector(e):e;return r.textContent="",r}(u,r,this.componentDef.encapsulation):ju(s.createRenderer(null,this.componentDef),l,function aA(t){const e=t.toLowerCase();return"svg"===e?"svg":"math"===e?"math":null}(l)),d=this.componentDef.onPush?576:528,f=function qp(t,e){return{components:[],scheduler:t||Sh,clean:aM,playerHandler:e||null,flags:0}}(),h=ms(0,null,null,1,0,null,null,null,null,null),p=ko(null,h,f,d,null,null,s,u,a,i);let m,_;zi(p);try{const D=function Gp(t,e,n,r,o,i){const s=n[1];n[20]=t;const u=Ar(s,20,2,"#host",null),l=u.mergedAttrs=e.hostAttrs;null!==l&&(vs(u,l,!0),null!==t&&(Zi(o,t,l),null!==u.classes&&zu(o,t,u.classes),null!==u.styles&&qh(o,t,u.styles)));const c=r.createRenderer(t,e),d=ko(n,fp(e),null,e.onPush?64:16,n[20],u,r,c,i||null,null);return s.firstCreatePass&&(es(_o(u,n),s,e.type),Dp(s,u),Cp(u,n.length,1)),ys(n,d),n[20]=d}(c,this.componentDef,p,s,u);if(c)if(r)Zi(u,c,["ng-version",iA.full]);else{const{attrs:g,classes:M}=function bE(t){const e=[],n=[];let r=1,o=2;for(;r0&&zu(u,c,M.join(" "))}if(_=eu(h,20),void 0!==n){const g=_.projection=[];for(let M=0;Mu(s,e)),e.contentQueries){const u=Me();e.contentQueries(1,s,u.directiveStart)}const a=Me();return!i.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(En(a.index),vp(n[1],a,0,a.directiveStart,a.directiveEnd,e),_p(e,s)),s}(D,this.componentDef,p,f,[AM]),Vo(h,p,null)}finally{qi()}return new dA(this.componentType,m,Wr(_,p),p,_)}}class dA extends class KS{}{constructor(e,n,r,o,i){super(),this.location=r,this._rootLView=o,this._tNode=i,this.instance=n,this.hostView=this.changeDetectorRef=new sA(o),this.componentType=e}get injector(){return new gr(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}}class fn{}class jm{}const Jr=new Map;class Um extends fn{constructor(e,n){super(),this._parent=n,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Vm(this);const r=ht(e);this._bootstrapComponents=Gt(r.bootstrap),this._r3Injector=Fp(e,n,[{provide:fn,useValue:this},{provide:qr,useValue:this.componentFactoryResolver}],K(e)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(e)}get(e,n=Re.THROW_IF_NOT_FOUND,r=k.Default){return e===Re||e===fn||e===hl?this:this._r3Injector.get(e,n,r)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Bl extends jm{constructor(e){super(),this.moduleType=e,null!==ht(e)&&function hA(t){const e=new Set;!function n(r){const o=ht(r,!0),i=o.id;null!==i&&(function Bm(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${K(e)} vs ${K(e.name)}`)}(i,Jr.get(i),r),Jr.set(i,r));const s=Gt(o.imports);for(const a of s)e.has(a)||(e.add(a),n(a))}(t)}(e)}create(e){return new Um(this.moduleType,e)}}function Hl(t,e,n){const r=Ue()+t,o=v();return o[r]===O?qt(o,r,n?e.call(n):e()):function Bo(t,e){return t[e]}(o,r)}function Ul(t,e,n,r){return $m(v(),Ue(),t,e,n,r)}function Zo(t,e){const n=t[e];return n===O?void 0:n}function $m(t,e,n,r,o,i){const s=e+n;return Le(t,s,o)?qt(t,s+1,i?r.call(i,o):r(o)):Zo(t,s+1)}function Gm(t,e,n,r,o,i,s){const a=e+n;return function qn(t,e,n,r){const o=Le(t,e,n);return Le(t,e+1,r)||o}(t,a,o,i)?qt(t,a+2,s?r.call(s,o,i):r(o,i)):Zo(t,a+2)}function Qr(t,e){const n=Q();let r;const o=t+20;n.firstCreatePass?(r=function bA(t,e){if(e)for(let n=e.length-1;n>=0;n--){const r=e[n];if(t===r.name)return r}}(e,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(o,r.onDestroy)):r=n.data[o];const i=r.factory||(r.factory=Gn(r.type)),s=Dn(y);try{const a=Yi(!1),u=i();return Yi(a),function jM(t,e,n,r){n>=t.data.length&&(t.data[n]=null,t.blueprint[n]=null),e[n]=r}(n,v(),o,u),u}finally{Dn(s)}}function xs(t,e,n){const r=t+20,o=v(),i=dr(o,r);return Ko(o,r)?$m(o,Ue(),e,i.transform,n,i):i.transform(n)}function $l(t,e,n,r){const o=t+20,i=v(),s=dr(i,o);return Ko(i,o)?Gm(i,Ue(),e,s.transform,n,r,s):s.transform(n,r)}function Ko(t,e){return t[1].data[e].pure}function Gl(t){return e=>{setTimeout(t,void 0,e)}}const me=class SA extends nn{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,n,r){var o,i,s;let a=e,u=n||(()=>null),l=r;if(e&&"object"==typeof e){const d=e;a=null===(o=d.next)||void 0===o?void 0:o.bind(d),u=null===(i=d.error)||void 0===i?void 0:i.bind(d),l=null===(s=d.complete)||void 0===s?void 0:s.bind(d)}this.__isAsync&&(u=Gl(u),a&&(a=Gl(a)),l&&(l=Gl(l)));const c=super.subscribe({next:a,error:u,complete:l});return e instanceof fe&&e.add(c),c}};Symbol;let hn=(()=>{class t{}return t.__NG_ELEMENT_ID__=xA,t})();const IA=hn,TA=class extends IA{constructor(e,n,r){super(),this._declarationLView=e,this._declarationTContainer=n,this.elementRef=r}createEmbeddedView(e){const n=this._declarationTContainer.tViews,r=ko(this._declarationLView,n,e,16,null,n.declTNode,null,null,null,null);r[17]=this._declarationLView[this._declarationTContainer.index];const i=this._declarationLView[19];return null!==i&&(r[19]=i.createEmbeddedView(n)),Vo(n,r,e),new Qo(r)}};function xA(){return function Ns(t,e){return 4&t.type?new TA(e,t,Wr(t,e)):null}(Me(),v())}let Ft=(()=>{class t{}return t.__NG_ELEMENT_ID__=NA,t})();function NA(){return function Zm(t,e){let n;const r=e[t.index];if(Et(r))n=r;else{let o;if(8&t.type)o=_e(r);else{const i=e[j];o=i.createComment("");const s=mt(t,e);zn(i,cs(i,s),o,function uE(t,e){return he(t)?t.nextSibling(e):e.nextSibling}(i,s),!1)}e[t.index]=n=wp(r,e,o,t),ys(e,n)}return new Jm(n,t,e)}(Me(),v())}const RA=Ft,Jm=class extends RA{constructor(e,n,r){super(),this._lContainer=e,this._hostTNode=n,this._hostLView=r}get element(){return Wr(this._hostTNode,this._hostLView)}get injector(){return new gr(this._hostTNode,this._hostLView)}get parentInjector(){const e=Xi(this._hostTNode,this._hostLView);if(Bf(e)){const n=pr(e,this._hostLView),r=hr(e);return new gr(n[1].data[r+8],n)}return new gr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){const n=Qm(this._lContainer);return null!==n&&n[e]||null}get length(){return this._lContainer.length-10}createEmbeddedView(e,n,r){const o=e.createEmbeddedView(n||{});return this.insert(o,r),o}createComponent(e,n,r,o,i){const s=e&&!function wo(t){return"function"==typeof t}(e);let a;if(s)a=n;else{const d=n||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.ngModuleRef}const u=s?e:new jl(Pe(e)),l=r||this.parentInjector;if(!i&&null==u.ngModule&&l){const d=l.get(fn,null);d&&(i=d)}const c=u.create(l,o,void 0,i);return this.insert(c.hostView,a),c}insert(e,n){const r=e._lView,o=r[1];if(function eb(t){return Et(t[3])}(r)){const c=this.indexOf(e);if(-1!==c)this.detach(c);else{const d=r[3],f=new Jm(d,d[6],d[3]);f.detach(f.indexOf(e))}}const i=this._adjustIndex(n),s=this._lContainer;!function rE(t,e,n,r){const o=10+r,i=n.length;r>0&&(n[o-1][4]=e),r{class t{constructor(n){this.appInits=n,this.resolve=Os,this.reject=Os,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const n=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:u})});n.push(s)}}Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),0===n.length&&r(),this.initialized=!0}}return t.\u0275fac=function(n){return new(n||t)(S(Ps,8))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const Xo=new B("AppId"),sI={provide:Xo,useFactory:function iI(){return`${sc()}${sc()}${sc()}`},deps:[]};function sc(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const vy=new B("Platform Initializer"),ks=new B("Platform ID"),_y=new B("appBootstrapListener");let Dy=(()=>{class t{log(n){console.log(n)}warn(n){console.warn(n)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const Tn=new B("LocaleId"),Cy=new B("DefaultCurrencyCode");class aI{constructor(e,n){this.ngModuleFactory=e,this.componentFactories=n}}let Vs=(()=>{class t{compileModuleSync(n){return new Bl(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const r=this.compileModuleSync(n),i=Gt(ht(n).declarations).reduce((s,a)=>{const u=Pe(a);return u&&s.push(new jl(u)),s},[]);return new aI(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const lI=(()=>Promise.resolve(0))();function ac(t){"undefined"==typeof Zone?lI.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}class Ie{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new me(!1),this.onMicrotaskEmpty=new me(!1),this.onStable=new me(!1),this.onError=new me(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&n,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function cI(){let t=Y.requestAnimationFrame,e=Y.cancelAnimationFrame;if("undefined"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__("OriginalDelegate")];n&&(t=n);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function hI(t){const e=()=>{!function fI(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Y,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,lc(t),t.isCheckStableRunning=!0,uc(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),lc(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,o,i,s,a)=>{try{return by(t),n.invokeTask(o,i,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||t.shouldCoalesceRunChangeDetection)&&e(),wy(t)}},onInvoke:(n,r,o,i,s,a,u)=>{try{return by(t),n.invoke(o,i,s,a,u)}finally{t.shouldCoalesceRunChangeDetection&&e(),wy(t)}},onHasTask:(n,r,o,i)=>{n.hasTask(o,i),r===o&&("microTask"==i.change?(t._hasPendingMicrotasks=i.microTask,lc(t),uc(t)):"macroTask"==i.change&&(t.hasPendingMacrotasks=i.macroTask))},onHandleError:(n,r,o,i)=>(n.handleError(o,i),t.runOutsideAngular(()=>t.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return"undefined"!=typeof Zone&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Ie.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Ie.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(e,n,r){return this._inner.run(e,n,r)}runTask(e,n,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,e,dI,Os,Os);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(e,n,r){return this._inner.runGuarded(e,n,r)}runOutsideAngular(e){return this._outer.run(e)}}const dI={};function uc(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function lc(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function by(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function wy(t){t._nesting--,uc(t)}class pI{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new me,this.onMicrotaskEmpty=new me,this.onStable=new me,this.onError=new me}run(e,n,r){return e.apply(n,r)}runGuarded(e,n,r){return e.apply(n,r)}runOutsideAngular(e){return e()}runTask(e,n,r,o){return e.apply(n,r)}}let cc=(()=>{class t{constructor(n){this._ngZone=n,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Ie.assertNotInAngularZone(),ac(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())ac(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(n,r,o){return[]}}return t.\u0275fac=function(n){return new(n||t)(S(Ie))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})(),Ey=(()=>{class t{constructor(){this._applications=new Map,dc.addToWindow(this)}registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return dc.findTestabilityInTree(this,n,r)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();class gI{addToWindow(e){}findTestabilityInTree(e,n,r){return null}}let Ot,dc=new gI;const My=new B("AllowMultipleToken");class Sy{constructor(e,n){this.name=e,this.token=n}}function Ay(t,e,n=[]){const r=`Platform: ${e}`,o=new B(r);return(i=[])=>{let s=Iy();if(!s||s.injector.get(My,!1))if(t)t(n.concat(i).concat({provide:o,useValue:!0}));else{const a=n.concat(i).concat({provide:o,useValue:!0},{provide:pl,useValue:"platform"});!function _I(t){if(Ot&&!Ot.destroyed&&!Ot.injector.get(My,!1))throw new J(400,"");Ot=t.get(Ty);const e=t.get(vy,null);e&&e.forEach(n=>n())}(Re.create({providers:a,name:r}))}return function DI(t){const e=Iy();if(!e)throw new J(401,"");return e}()}}function Iy(){return Ot&&!Ot.destroyed?Ot:null}let Ty=(()=>{class t{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const a=function CI(t,e){let n;return n="noop"===t?new pI:("zone.js"===t?void 0:t)||new Ie({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!(null==e?void 0:e.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==e?void 0:e.ngZoneRunCoalescing)}),n}(r?r.ngZone:void 0,{ngZoneEventCoalescing:r&&r.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:r&&r.ngZoneRunCoalescing||!1}),u=[{provide:Ie,useValue:a}];return a.run(()=>{const l=Re.create({providers:u,parent:this.injector,name:n.moduleType.name}),c=n.create(l),d=c.injector.get(Er,null);if(!d)throw new J(402,"");return a.runOutsideAngular(()=>{const f=a.onError.subscribe({next:h=>{d.handleError(h)}});c.onDestroy(()=>{fc(this._modules,c),f.unsubscribe()})}),function bI(t,e,n){try{const r=n();return Uo(r)?r.catch(o=>{throw e.runOutsideAngular(()=>t.handleError(o)),o}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(d,a,()=>{const f=c.injector.get(Kr);return f.runInitializers(),f.donePromise.then(()=>(function nS(t){Ye(t,"Expected localeId to be defined"),"string"==typeof t&&(lm=t.toLowerCase().replace(/_/g,"-"))}(c.injector.get(Tn,Es)||Es),this._moduleDoBootstrap(c),c))})})}bootstrapModule(n,r=[]){const o=xy({},r);return function yI(t,e,n){const r=new Bl(n);return Promise.resolve(r)}(0,0,n).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(n){const r=n.injector.get(ei);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!n.instance.ngDoBootstrap)throw new J(403,"");n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new J(404,"");this._modules.slice().forEach(n=>n.destroy()),this._destroyListeners.forEach(n=>n()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\u0275fac=function(n){return new(n||t)(S(Re))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();function xy(t,e){return Array.isArray(e)?e.reduce(xy,t):Object.assign(Object.assign({},t),e)}let ei=(()=>{class t{constructor(n,r,o,i,s){this._zone=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const a=new se(l=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{l.next(this._stable),l.complete()})}),u=new se(l=>{let c;this._zone.runOutsideAngular(()=>{c=this._zone.onStable.subscribe(()=>{Ie.assertNotInAngularZone(),ac(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,l.next(!0))})})});const d=this._zone.onUnstable.subscribe(()=>{Ie.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{l.next(!1)}))});return()=>{c.unsubscribe(),d.unsubscribe()}});this.isStable=function dC(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];return Ri(r)?(n=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(e=t.pop())):"number"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof se?t[0]:co(e)(Pa(t,n))}(a,u.pipe(function DC(){return t=>ka()(function yC(t,e){return function(r){let o;if(o="function"==typeof t?t:function(){return t},"function"==typeof e)return r.lift(new vC(o,e));const i=Object.create(r,pC);return i.source=r,i.subjectFactory=o,i}}(_C)(t))}()))}bootstrap(n,r){if(!this._initStatus.done)throw new J(405,"");let o;o=n instanceof Om?n:this._componentFactoryResolver.resolveComponentFactory(n),this.componentTypes.push(o.componentType);const i=function vI(t){return t.isBoundToModule}(o)?void 0:this._injector.get(fn),a=o.create(Re.NULL,[],r||o.selector,i),u=a.location.nativeElement,l=a.injector.get(cc,null),c=l&&a.injector.get(Ey);return l&&c&&c.registerApplication(u,l),a.onDestroy(()=>{this.detachView(a.hostView),fc(this.components,a),c&&c.unregisterApplication(u)}),this._loadComponent(a),a}tick(){if(this._runningTick)throw new J(101,"");try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;fc(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(_y,[]).concat(this._bootstrapListeners).forEach(o=>o(n))}ngOnDestroy(){this._views.slice().forEach(n=>n.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return t.\u0275fac=function(n){return new(n||t)(S(Ie),S(Re),S(Er),S(qr),S(Kr))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();function fc(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}let hc=(()=>{class t{}return t.__NG_ELEMENT_ID__=MI,t})();function MI(t){return function SI(t,e,n){if(Bi(t)&&!n){const r=nt(t.index,e);return new Qo(r,r)}return 47&t.type?new Qo(e[16],e):null}(Me(),v(),16==(16&t))}class jy{constructor(){}supports(e){return jo(e)}create(e){return new RI(e)}}const NI=(t,e)=>e;class RI{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||NI}forEachItem(e){let n;for(n=this._itHead;null!==n;n=n._next)e(n)}forEachOperation(e){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){const s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),null!==n&&Object.is(n.trackById,s)?(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)):(n=this._mismatch(n,a,s,o),r=!0),n=n._next,o++}),this.length=o;return this._truncate(n),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,n,r,o){let i;return null===e?i=this._itTail:(i=e._prev,this._remove(e)),null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(e.item,n)||this._addIdentityChange(e,n),this._reinsertAfter(e,i,o)):null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(e.item,n)||this._addIdentityChange(e,n),this._moveAfter(e,i,o)):e=this._addAfter(new FI(n,r),i,o),e}_verifyReinsertion(e,n,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?e=this._reinsertAfter(i,e._prev,o):e.currentIndex!=o&&(e.currentIndex=o,this._addToMoves(e,o)),e}_truncate(e){for(;null!==e;){const n=e._next;this._addToRemovals(this._unlink(e)),e=n}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,n,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const o=e._prevRemoved,i=e._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(e,n,r),this._addToMoves(e,r),e}_moveAfter(e,n,r){return this._unlink(e),this._insertAfter(e,n,r),this._addToMoves(e,r),e}_addAfter(e,n,r){return this._insertAfter(e,n,r),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,n,r){const o=null===n?this._itHead:n._next;return e._next=o,e._prev=n,null===o?this._itTail=e:o._prev=e,null===n?this._itHead=e:n._next=e,null===this._linkedRecords&&(this._linkedRecords=new By),this._linkedRecords.put(e),e.currentIndex=r,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const n=e._prev,r=e._next;return null===n?this._itHead=r:n._next=r,null===r?this._itTail=n:r._prev=n,e}_addToMoves(e,n){return e.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e),e}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new By),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,n){return e.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class FI{constructor(e,n){this.item=e,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class OI{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,n){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===n||n<=r.currentIndex)&&Object.is(r.trackById,e))return r;return null}remove(e){const n=e._prevDup,r=e._nextDup;return null===n?this._head=r:n._nextDup=r,null===r?this._tail=n:r._prevDup=n,null===this._head}}class By{constructor(){this.map=new Map}put(e){const n=e.trackById;let r=this.map.get(n);r||(r=new OI,this.map.set(n,r)),r.add(e)}get(e,n){const o=this.map.get(e);return o?o.get(e,n):null}remove(e){const n=e.trackById;return this.map.get(n).remove(e)&&this.map.delete(n),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Hy(t,e,n){const r=t.previousIndex;if(null===r)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{const i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,n){if(e){const r=e._prev;return n._next=e,n._prev=r,e._prev=n,r&&(r._next=n),e===this._mapHead&&(this._mapHead=n),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(e,n){if(this._records.has(e)){const o=this._records.get(e);this._maybeAddToChanges(o,n);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new kI(e);return this._records.set(e,r),r.currentValue=n,this._addToAdditions(r),r}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,n){Object.is(n,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=n,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,n){e instanceof Map?e.forEach(n):Object.keys(e).forEach(r=>n(e[r],r))}}class kI{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function $y(){return new ti([new jy])}let ti=(()=>{class t{constructor(n){this.factories=n}static create(n,r){if(null!=r){const o=r.factories.slice();n=n.concat(o)}return new t(n)}static extend(n){return{provide:t,useFactory:r=>t.create(n,r||$y()),deps:[[t,new Cr,new Ut]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(null!=r)return r;throw new J(901,"")}}return t.\u0275prov=P({token:t,providedIn:"root",factory:$y}),t})();function Gy(){return new Yr([new Uy])}let Yr=(()=>{class t{constructor(n){this.factories=n}static create(n,r){if(r){const o=r.factories.slice();n=n.concat(o)}return new t(n)}static extend(n){return{provide:t,useFactory:r=>t.create(n,r||Gy()),deps:[[t,new Cr,new Ut]]}}find(n){const r=this.factories.find(i=>i.supports(n));if(r)return r;throw new J(901,"")}}return t.\u0275prov=P({token:t,providedIn:"root",factory:Gy}),t})();const VI=[new Uy],jI=new ti([new jy]),BI=new Yr(VI),HI=Ay(null,"core",[{provide:ks,useValue:"unknown"},{provide:Ty,deps:[Re]},{provide:Ey,deps:[]},{provide:Dy,deps:[]}]),qI=[{provide:ei,useClass:ei,deps:[Ie,Re,Er,qr,Kr]},{provide:uA,deps:[Ie],useFactory:function WI(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(n){e.push(n)}}},{provide:Kr,useClass:Kr,deps:[[new Ut,Ps]]},{provide:Vs,useClass:Vs,deps:[]},sI,{provide:ti,useFactory:function UI(){return jI},deps:[]},{provide:Yr,useFactory:function $I(){return BI},deps:[]},{provide:Tn,useFactory:function GI(t){return t||function zI(){return"undefined"!=typeof $localize&&$localize.locale||Es}()},deps:[[new Io(Tn),new Ut,new Cr]]},{provide:Cy,useValue:"USD"}];let JI=(()=>{class t{constructor(n){}}return t.\u0275fac=function(n){return new(n||t)(S(ei))},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({providers:qI}),t})(),js=null;function Yt(){return js}const at=new B("DocumentToken");let Qn=(()=>{class t{historyGo(n){throw new Error("Not implemented")}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=P({token:t,factory:function(){return function YI(){return S(zy)}()},providedIn:"platform"}),t})();const XI=new B("Location Initialized");let zy=(()=>{class t extends Qn{constructor(n){super(),this._doc=n,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Yt().getBaseHref(this._doc)}onPopState(n){const r=Yt().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){const r=Yt().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(n){this.location.pathname=n}pushState(n,r,o){qy()?this._history.pushState(n,r,o):this.location.hash=o}replaceState(n,r,o){qy()?this._history.replaceState(n,r,o):this.location.hash=o}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}}return t.\u0275fac=function(n){return new(n||t)(S(at))},t.\u0275prov=P({token:t,factory:function(){return function eT(){return new zy(S(at))}()},providedIn:"platform"}),t})();function qy(){return!!window.history.pushState}function vc(t,e){if(0==t.length)return e;if(0==e.length)return t;let n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e}function Wy(t){const e=t.match(/#|\?|$/),n=e&&e.index||t.length;return t.slice(0,n-("/"===t[n-1]?1:0))+t.slice(n)}function pn(t){return t&&"?"!==t[0]?"?"+t:t}let Xr=(()=>{class t{historyGo(n){throw new Error("Not implemented")}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=P({token:t,factory:function(){return function tT(t){const e=S(at).location;return new Jy(S(Qn),e&&e.origin||"")}()},providedIn:"root"}),t})();const _c=new B("appBaseHref");let Jy=(()=>{class t extends Xr{constructor(n,r){if(super(),this._platformLocation=n,this._removeListenerFns=[],null==r&&(r=this._platformLocation.getBaseHrefFromDOM()),null==r)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=r}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return vc(this._baseHref,n)}path(n=!1){const r=this._platformLocation.pathname+pn(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){const s=this.prepareExternalUrl(o+pn(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){const s=this.prepareExternalUrl(o+pn(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(n=0){var r,o;null===(o=(r=this._platformLocation).historyGo)||void 0===o||o.call(r,n)}}return t.\u0275fac=function(n){return new(n||t)(S(Qn),S(_c,8))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})(),nT=(()=>{class t extends Xr{constructor(n,r){super(),this._platformLocation=n,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let r=this._platformLocation.hash;return null==r&&(r="#"),r.length>0?r.substring(1):r}prepareExternalUrl(n){const r=vc(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+pn(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+pn(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(n=0){var r,o;null===(o=(r=this._platformLocation).historyGo)||void 0===o||o.call(r,n)}}return t.\u0275fac=function(n){return new(n||t)(S(Qn),S(_c,8))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})(),Dc=(()=>{class t{constructor(n,r){this._subject=new me,this._urlChangeListeners=[],this._platformStrategy=n;const o=this._platformStrategy.getBaseHref();this._platformLocation=r,this._baseHref=Wy(Qy(o)),this._platformStrategy.onPopState(i=>{this._subject.emit({url:this.path(!0),pop:!0,state:i.state,type:i.type})})}path(n=!1){return this.normalize(this._platformStrategy.path(n))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+pn(r))}normalize(n){return t.stripTrailingSlash(function oT(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,Qy(n)))}prepareExternalUrl(n){return n&&"/"!==n[0]&&(n="/"+n),this._platformStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._platformStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+pn(r)),o)}replaceState(n,r="",o=null){this._platformStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+pn(r)),o)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(n=0){var r,o;null===(o=(r=this._platformStrategy).historyGo)||void 0===o||o.call(r,n)}onUrlChange(n){this._urlChangeListeners.push(n),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}))}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r,complete:o})}}return t.normalizeQueryParams=pn,t.joinWithSlash=vc,t.stripTrailingSlash=Wy,t.\u0275fac=function(n){return new(n||t)(S(Xr),S(Qn))},t.\u0275prov=P({token:t,factory:function(){return function rT(){return new Dc(S(Xr),S(Qn))}()},providedIn:"root"}),t})();function Qy(t){return t.replace(/\/index.html$/,"")}var be=(()=>((be=be||{})[be.Zero=0]="Zero",be[be.One=1]="One",be[be.Two=2]="Two",be[be.Few=3]="Few",be[be.Many=4]="Many",be[be.Other=5]="Other",be))(),ve=(()=>((ve=ve||{})[ve.Format=0]="Format",ve[ve.Standalone=1]="Standalone",ve))(),z=(()=>((z=z||{})[z.Narrow=0]="Narrow",z[z.Abbreviated=1]="Abbreviated",z[z.Wide=2]="Wide",z[z.Short=3]="Short",z))(),de=(()=>((de=de||{})[de.Short=0]="Short",de[de.Medium=1]="Medium",de[de.Long=2]="Long",de[de.Full=3]="Full",de))(),A=(()=>((A=A||{})[A.Decimal=0]="Decimal",A[A.Group=1]="Group",A[A.List=2]="List",A[A.PercentSign=3]="PercentSign",A[A.PlusSign=4]="PlusSign",A[A.MinusSign=5]="MinusSign",A[A.Exponential=6]="Exponential",A[A.SuperscriptingExponent=7]="SuperscriptingExponent",A[A.PerMille=8]="PerMille",A[A.Infinity=9]="Infinity",A[A.NaN=10]="NaN",A[A.TimeSeparator=11]="TimeSeparator",A[A.CurrencyDecimal=12]="CurrencyDecimal",A[A.CurrencyGroup=13]="CurrencyGroup",A))();function Bs(t,e){return Dt(qe(t)[b.DateFormat],e)}function Hs(t,e){return Dt(qe(t)[b.TimeFormat],e)}function Us(t,e){return Dt(qe(t)[b.DateTimeFormat],e)}function _t(t,e){const n=qe(t),r=n[b.NumberSymbols][e];if(void 0===r){if(e===A.CurrencyDecimal)return n[b.NumberSymbols][A.Decimal];if(e===A.CurrencyGroup)return n[b.NumberSymbols][A.Group]}return r}const dT=function am(t){return qe(t)[b.PluralCase]};function Ky(t){if(!t[b.ExtraData])throw new Error(`Missing extra locale data for the locale "${t[b.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Dt(t,e){for(let n=e;n>-1;n--)if(void 0!==t[n])return t[n];throw new Error("Locale data API: locale data undefined")}function bc(t){const[e,n]=t.split(":");return{hours:+e,minutes:+n}}const yT=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,ni={},vT=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var Te=(()=>((Te=Te||{})[Te.Short=0]="Short",Te[Te.ShortGMT=1]="ShortGMT",Te[Te.Long=2]="Long",Te[Te.Extended=3]="Extended",Te))(),x=(()=>((x=x||{})[x.FullYear=0]="FullYear",x[x.Month=1]="Month",x[x.Date=2]="Date",x[x.Hours=3]="Hours",x[x.Minutes=4]="Minutes",x[x.Seconds=5]="Seconds",x[x.FractionalSeconds=6]="FractionalSeconds",x[x.Day=7]="Day",x))(),U=(()=>((U=U||{})[U.DayPeriods=0]="DayPeriods",U[U.Days=1]="Days",U[U.Months=2]="Months",U[U.Eras=3]="Eras",U))();function _T(t,e,n,r){let o=function IT(t){if(ev(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[o,i=1,s=1]=t.split("-").map(a=>+a);return $s(o,i-1,s)}const n=parseFloat(t);if(!isNaN(t-n))return new Date(n);let r;if(r=t.match(yT))return function TT(t){const e=new Date(0);let n=0,r=0;const o=t[8]?e.setUTCFullYear:e.setFullYear,i=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=Number(t[9]+t[10]),r=Number(t[9]+t[11])),o.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));const s=Number(t[4]||0)-n,a=Number(t[5]||0)-r,u=Number(t[6]||0),l=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return i.call(e,s,a,u,l),e}(r)}const e=new Date(t);if(!ev(e))throw new Error(`Unable to convert "${t}" into a date`);return e}(t);e=gn(n,e)||e;let a,s=[];for(;e;){if(a=vT.exec(e),!a){s.push(e);break}{s=s.concat(a.slice(1));const c=s.pop();if(!c)break;e=c}}let u=o.getTimezoneOffset();r&&(u=Xy(r,u),o=function AT(t,e,n){const r=n?-1:1,o=t.getTimezoneOffset();return function ST(t,e){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e),t}(t,r*(Xy(e,o)-o))}(o,r,!0));let l="";return s.forEach(c=>{const d=function MT(t){if(Ec[t])return Ec[t];let e;switch(t){case"G":case"GG":case"GGG":e=ie(U.Eras,z.Abbreviated);break;case"GGGG":e=ie(U.Eras,z.Wide);break;case"GGGGG":e=ie(U.Eras,z.Narrow);break;case"y":e=we(x.FullYear,1,0,!1,!0);break;case"yy":e=we(x.FullYear,2,0,!0,!0);break;case"yyy":e=we(x.FullYear,3,0,!1,!0);break;case"yyyy":e=we(x.FullYear,4,0,!1,!0);break;case"Y":e=Ws(1);break;case"YY":e=Ws(2,!0);break;case"YYY":e=Ws(3);break;case"YYYY":e=Ws(4);break;case"M":case"L":e=we(x.Month,1,1);break;case"MM":case"LL":e=we(x.Month,2,1);break;case"MMM":e=ie(U.Months,z.Abbreviated);break;case"MMMM":e=ie(U.Months,z.Wide);break;case"MMMMM":e=ie(U.Months,z.Narrow);break;case"LLL":e=ie(U.Months,z.Abbreviated,ve.Standalone);break;case"LLLL":e=ie(U.Months,z.Wide,ve.Standalone);break;case"LLLLL":e=ie(U.Months,z.Narrow,ve.Standalone);break;case"w":e=wc(1);break;case"ww":e=wc(2);break;case"W":e=wc(1,!0);break;case"d":e=we(x.Date,1);break;case"dd":e=we(x.Date,2);break;case"c":case"cc":e=we(x.Day,1);break;case"ccc":e=ie(U.Days,z.Abbreviated,ve.Standalone);break;case"cccc":e=ie(U.Days,z.Wide,ve.Standalone);break;case"ccccc":e=ie(U.Days,z.Narrow,ve.Standalone);break;case"cccccc":e=ie(U.Days,z.Short,ve.Standalone);break;case"E":case"EE":case"EEE":e=ie(U.Days,z.Abbreviated);break;case"EEEE":e=ie(U.Days,z.Wide);break;case"EEEEE":e=ie(U.Days,z.Narrow);break;case"EEEEEE":e=ie(U.Days,z.Short);break;case"a":case"aa":case"aaa":e=ie(U.DayPeriods,z.Abbreviated);break;case"aaaa":e=ie(U.DayPeriods,z.Wide);break;case"aaaaa":e=ie(U.DayPeriods,z.Narrow);break;case"b":case"bb":case"bbb":e=ie(U.DayPeriods,z.Abbreviated,ve.Standalone,!0);break;case"bbbb":e=ie(U.DayPeriods,z.Wide,ve.Standalone,!0);break;case"bbbbb":e=ie(U.DayPeriods,z.Narrow,ve.Standalone,!0);break;case"B":case"BB":case"BBB":e=ie(U.DayPeriods,z.Abbreviated,ve.Format,!0);break;case"BBBB":e=ie(U.DayPeriods,z.Wide,ve.Format,!0);break;case"BBBBB":e=ie(U.DayPeriods,z.Narrow,ve.Format,!0);break;case"h":e=we(x.Hours,1,-12);break;case"hh":e=we(x.Hours,2,-12);break;case"H":e=we(x.Hours,1);break;case"HH":e=we(x.Hours,2);break;case"m":e=we(x.Minutes,1);break;case"mm":e=we(x.Minutes,2);break;case"s":e=we(x.Seconds,1);break;case"ss":e=we(x.Seconds,2);break;case"S":e=we(x.FractionalSeconds,1);break;case"SS":e=we(x.FractionalSeconds,2);break;case"SSS":e=we(x.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=zs(Te.Short);break;case"ZZZZZ":e=zs(Te.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=zs(Te.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=zs(Te.Long);break;default:return null}return Ec[t]=e,e}(c);l+=d?d(o,n,u):"''"===c?"'":c.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function $s(t,e,n){const r=new Date(0);return r.setFullYear(t,e,n),r.setHours(0,0,0),r}function gn(t,e){const n=function iT(t){return qe(t)[b.LocaleId]}(t);if(ni[n]=ni[n]||{},ni[n][e])return ni[n][e];let r="";switch(e){case"shortDate":r=Bs(t,de.Short);break;case"mediumDate":r=Bs(t,de.Medium);break;case"longDate":r=Bs(t,de.Long);break;case"fullDate":r=Bs(t,de.Full);break;case"shortTime":r=Hs(t,de.Short);break;case"mediumTime":r=Hs(t,de.Medium);break;case"longTime":r=Hs(t,de.Long);break;case"fullTime":r=Hs(t,de.Full);break;case"short":const o=gn(t,"shortTime"),i=gn(t,"shortDate");r=Gs(Us(t,de.Short),[o,i]);break;case"medium":const s=gn(t,"mediumTime"),a=gn(t,"mediumDate");r=Gs(Us(t,de.Medium),[s,a]);break;case"long":const u=gn(t,"longTime"),l=gn(t,"longDate");r=Gs(Us(t,de.Long),[u,l]);break;case"full":const c=gn(t,"fullTime"),d=gn(t,"fullDate");r=Gs(Us(t,de.Full),[c,d])}return r&&(ni[n][e]=r),r}function Gs(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,function(n,r){return null!=e&&r in e?e[r]:n})),t}function Pt(t,e,n="-",r,o){let i="";(t<0||o&&t<=0)&&(o?t=1-t:(t=-t,i=n));let s=String(t);for(;s.length0||a>-n)&&(a+=n),t===x.Hours)0===a&&-12===n&&(a=12);else if(t===x.FractionalSeconds)return function DT(t,e){return Pt(t,3).substr(0,e)}(a,e);const u=_t(s,A.MinusSign);return Pt(a,e,u,r,o)}}function ie(t,e,n=ve.Format,r=!1){return function(o,i){return function bT(t,e,n,r,o,i){switch(n){case U.Months:return function uT(t,e,n){const r=qe(t),i=Dt([r[b.MonthsFormat],r[b.MonthsStandalone]],e);return Dt(i,n)}(e,o,r)[t.getMonth()];case U.Days:return function aT(t,e,n){const r=qe(t),i=Dt([r[b.DaysFormat],r[b.DaysStandalone]],e);return Dt(i,n)}(e,o,r)[t.getDay()];case U.DayPeriods:const s=t.getHours(),a=t.getMinutes();if(i){const l=function fT(t){const e=qe(t);return Ky(e),(e[b.ExtraData][2]||[]).map(r=>"string"==typeof r?bc(r):[bc(r[0]),bc(r[1])])}(e),c=function hT(t,e,n){const r=qe(t);Ky(r);const i=Dt([r[b.ExtraData][0],r[b.ExtraData][1]],e)||[];return Dt(i,n)||[]}(e,o,r),d=l.findIndex(f=>{if(Array.isArray(f)){const[h,p]=f,m=s>=h.hours&&a>=h.minutes,_=s0?Math.floor(o/60):Math.ceil(o/60);switch(t){case Te.Short:return(o>=0?"+":"")+Pt(s,2,i)+Pt(Math.abs(o%60),2,i);case Te.ShortGMT:return"GMT"+(o>=0?"+":"")+Pt(s,1,i);case Te.Long:return"GMT"+(o>=0?"+":"")+Pt(s,2,i)+":"+Pt(Math.abs(o%60),2,i);case Te.Extended:return 0===r?"Z":(o>=0?"+":"")+Pt(s,2,i)+":"+Pt(Math.abs(o%60),2,i);default:throw new Error(`Unknown zone width "${t}"`)}}}function Yy(t){return $s(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function wc(t,e=!1){return function(n,r){let o;if(e){const i=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,s=n.getDate();o=1+Math.floor((s+i)/7)}else{const i=Yy(n),s=function ET(t){const e=$s(t,0,1).getDay();return $s(t,0,1+(e<=4?4:11)-e)}(i.getFullYear()),a=i.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return Pt(o,t,_t(r,A.MinusSign))}}function Ws(t,e=!1){return function(n,r){return Pt(Yy(n).getFullYear(),t,_t(r,A.MinusSign),e)}}const Ec={};function Xy(t,e){t=t.replace(/:/g,"");const n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function ev(t){return t instanceof Date&&!isNaN(t.valueOf())}class Qs{}let BT=(()=>{class t extends Qs{constructor(n){super(),this.locale=n}getPluralCategory(n,r){switch(dT(r||this.locale)(n)){case be.Zero:return"zero";case be.One:return"one";case be.Two:return"two";case be.Few:return"few";case be.Many:return"many";default:return"other"}}}return t.\u0275fac=function(n){return new(n||t)(S(Tn))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();function ov(t,e){e=encodeURIComponent(e);for(const n of t.split(";")){const r=n.indexOf("="),[o,i]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===e)return decodeURIComponent(i)}return null}class $T{constructor(e,n,r,o){this.$implicit=e,this.ngForOf=n,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Tc=(()=>{class t{constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){const n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){const r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new $T(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),iv(a,o)}});for(let o=0,i=r.length;o{iv(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(n,r){return!0}}return t.\u0275fac=function(n){return new(n||t)(y(Ft),y(hn),y(ti))},t.\u0275dir=N({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),t})();function iv(t,e){t.context.$implicit=e.item}let xc=(()=>{class t{constructor(n,r){this._viewContainer=n,this._context=new GT,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){sv("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){sv("ngIfElse",n),this._elseTemplateRef=n,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(n,r){return!0}}return t.\u0275fac=function(n){return new(n||t)(y(Ft),y(hn))},t.\u0275dir=N({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),t})();class GT{constructor(){this.$implicit=null,this.ngIf=null}}function sv(t,e){if(e&&!e.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${K(e)}'.`)}const ix=new B("DATE_PIPE_DEFAULT_TIMEZONE");let Fc=(()=>{class t{constructor(n,r){this.locale=n,this.defaultTimezone=r}transform(n,r="mediumDate",o,i){var s;if(null==n||""===n||n!=n)return null;try{return _T(n,r,i||this.locale,null!==(s=null!=o?o:this.defaultTimezone)&&void 0!==s?s:void 0)}catch(a){throw function kt(t,e){return new J(2100,"")}()}}}return t.\u0275fac=function(n){return new(n||t)(y(Tn,16),y(ix,24))},t.\u0275pipe=He({name:"date",type:t,pure:!0}),t})(),mx=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({providers:[{provide:Qs,useClass:BT}]}),t})();let Dx=(()=>{class t{}return t.\u0275prov=P({token:t,providedIn:"root",factory:()=>new Cx(S(at),window)}),t})();class Cx{constructor(e,n){this.document=e,this.window=n,this.offset=()=>[0,0]}setOffset(e){this.offset=Array.isArray(e)?()=>e:e}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(e){this.supportsScrolling()&&this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){if(!this.supportsScrolling())return;const n=function bx(t,e){const n=t.getElementById(e)||t.getElementsByName(e)[0];if(n)return n;if("function"==typeof t.createTreeWalker&&t.body&&(t.body.createShadowRoot||t.body.attachShadow)){const r=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=r.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(e)||i.querySelector(`[name="${e}"]`);if(s)return s}o=r.nextNode()}}return null}(this.document,e);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(e){if(this.supportScrollRestoration()){const n=this.window.history;n&&n.scrollRestoration&&(n.scrollRestoration=e)}}scrollToElement(e){const n=e.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const e=cv(this.window.history)||cv(Object.getPrototypeOf(this.window.history));return!(!e||!e.writable&&!e.set)}catch(e){return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(e){return!1}}}function cv(t){return Object.getOwnPropertyDescriptor(t,"scrollRestoration")}class dv{}class kc extends class wx extends class KI{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function ZI(t){js||(js=t)}(new kc)}onAndCancel(e,n,r){return e.addEventListener(n,r,!1),()=>{e.removeEventListener(n,r,!1)}}dispatchEvent(e,n){e.dispatchEvent(n)}remove(e){e.parentNode&&e.parentNode.removeChild(e)}createElement(e,n){return(n=n||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,n){return"window"===n?window:"document"===n?e:"body"===n?e.body:null}getBaseHref(e){const n=function Ex(){return oi=oi||document.querySelector("base"),oi?oi.getAttribute("href"):null}();return null==n?null:function Mx(t){Zs=Zs||document.createElement("a"),Zs.setAttribute("href",t);const e=Zs.pathname;return"/"===e.charAt(0)?e:`/${e}`}(n)}resetBaseElement(){oi=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return ov(document.cookie,e)}}let Zs,oi=null;const fv=new B("TRANSITION_ID"),Ax=[{provide:Ps,useFactory:function Sx(t,e,n){return()=>{n.get(Kr).donePromise.then(()=>{const r=Yt(),o=e.querySelectorAll(`style[ng-transition="${t}"]`);for(let i=0;i{const i=e.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},Y.getAllAngularTestabilities=()=>e.getAllTestabilities(),Y.getAllAngularRootElements=()=>e.getAllRootElements(),Y.frameworkStabilizers||(Y.frameworkStabilizers=[]),Y.frameworkStabilizers.push(r=>{const o=Y.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(u){s=s||u,i--,0==i&&r(s)};o.forEach(function(u){u.whenStable(a)})})}findTestabilityInTree(e,n,r){if(null==n)return null;const o=e.getTestability(n);return null!=o?o:r?Yt().isShadowRoot(n)?this.findTestabilityInTree(e,n.host,!0):this.findTestabilityInTree(e,n.parentElement,!0):null}}let Ix=(()=>{class t{build(){return new XMLHttpRequest}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const Ks=new B("EventManagerPlugins");let Ys=(()=>{class t{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(o=>o.manager=this),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}addGlobalEventListener(n,r,o){return this._findPluginFor(r).addGlobalEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){const r=this._eventNameToPlugin.get(n);if(r)return r;const o=this._plugins;for(let i=0;i{class t{constructor(){this._stylesSet=new Set}addStyles(n){const r=new Set;n.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(n){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})(),ii=(()=>{class t extends pv{constructor(n){super(),this._doc=n,this._hostNodes=new Map,this._hostNodes.set(n.head,[])}_addStylesToHost(n,r,o){n.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(n){const r=[];this._addStylesToHost(this._stylesSet,n,r),this._hostNodes.set(n,r)}removeHost(n){const r=this._hostNodes.get(n);r&&r.forEach(gv),this._hostNodes.delete(n)}onStylesAdded(n){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(n,o,r)})}ngOnDestroy(){this._hostNodes.forEach(n=>n.forEach(gv))}}return t.\u0275fac=function(n){return new(n||t)(S(at))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();function gv(t){Yt().remove(t)}const Lc={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},jc=/%COMP%/g;function Xs(t,e,n){for(let r=0;r{if("__ngUnwrap__"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let Bc=(()=>{class t{constructor(n,r,o){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Hc(n)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;switch(r.encapsulation){case Lt.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new Ox(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(n),o}case 1:case Lt.ShadowDom:return new Px(this.eventManager,this.sharedStylesHost,n,r);default:if(!this.rendererByCompId.has(r.id)){const o=Xs(r.id,r.styles,[]);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\u0275fac=function(n){return new(n||t)(S(Ys),S(ii),S(Xo))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();class Hc{constructor(e){this.eventManager=e,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(e,n){return n?document.createElementNS(Lc[n],e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,n){e.appendChild(n)}insertBefore(e,n,r){e&&e.insertBefore(n,r)}removeChild(e,n){e&&e.removeChild(n)}selectRootElement(e,n){let r="string"==typeof e?document.querySelector(e):e;if(!r)throw new Error(`The selector "${e}" did not match any elements`);return n||(r.textContent=""),r}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,n,r,o){if(o){n=o+":"+n;const i=Lc[o];i?e.setAttributeNS(i,n,r):e.setAttribute(n,r)}else e.setAttribute(n,r)}removeAttribute(e,n,r){if(r){const o=Lc[r];o?e.removeAttributeNS(o,n):e.removeAttribute(`${r}:${n}`)}else e.removeAttribute(n)}addClass(e,n){e.classList.add(n)}removeClass(e,n){e.classList.remove(n)}setStyle(e,n,r,o){o&(ot.DashCase|ot.Important)?e.style.setProperty(n,r,o&ot.Important?"important":""):e.style[n]=r}removeStyle(e,n,r){r&ot.DashCase?e.style.removeProperty(n):e.style[n]=""}setProperty(e,n,r){e[n]=r}setValue(e,n){e.nodeValue=n}listen(e,n,r){return"string"==typeof e?this.eventManager.addGlobalEventListener(e,n,vv(r)):this.eventManager.addEventListener(e,n,vv(r))}}class Ox extends Hc{constructor(e,n,r,o){super(e),this.component=r;const i=Xs(o+"-"+r.id,r.styles,[]);n.addStyles(i),this.contentAttr=function Nx(t){return"_ngcontent-%COMP%".replace(jc,t)}(o+"-"+r.id),this.hostAttr=function Rx(t){return"_nghost-%COMP%".replace(jc,t)}(o+"-"+r.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,"")}createElement(e,n){const r=super.createElement(e,n);return super.setAttribute(r,this.contentAttr,""),r}}class Px extends Hc{constructor(e,n,r,o){super(e),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=Xs(o.id,o.styles,[]);for(let s=0;s{class t extends hv{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}}return t.\u0275fac=function(n){return new(n||t)(S(at))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const Dv=["alt","control","meta","shift"],Lx={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},Cv={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},jx={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let Bx=(()=>{class t extends hv{constructor(n){super(n)}supports(n){return null!=t.parseEventName(n)}addEventListener(n,r,o){const i=t.parseEventName(r),s=t.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Yt().onAndCancel(n,i.domEventName,s))}static parseEventName(n){const r=n.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=t._normalizeKey(r.pop());let s="";if(Dv.forEach(u=>{const l=r.indexOf(u);l>-1&&(r.splice(l,1),s+=u+".")}),s+=i,0!=r.length||0===i.length)return null;const a={};return a.domEventName=o,a.fullKey=s,a}static getEventFullKey(n){let r="",o=function Hx(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&Cv.hasOwnProperty(e)&&(e=Cv[e]))}return Lx[e]||e}(n);return o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),Dv.forEach(i=>{i!=o&&jx[i](n)&&(r+=i+".")}),r+=o,r}static eventCallback(n,r,o){return i=>{t.getEventFullKey(i)===n&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return t.\u0275fac=function(n){return new(n||t)(S(at))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const zx=Ay(HI,"browser",[{provide:ks,useValue:"browser"},{provide:vy,useValue:function Ux(){kc.makeCurrent(),Vc.init()},multi:!0},{provide:at,useFactory:function Gx(){return function ZC(t){Ya=t}(document),document},deps:[]}]),qx=[{provide:pl,useValue:"root"},{provide:Er,useFactory:function $x(){return new Er},deps:[]},{provide:Ks,useClass:kx,multi:!0,deps:[at,Ie,ks]},{provide:Ks,useClass:Bx,multi:!0,deps:[at]},{provide:Bc,useClass:Bc,deps:[Ys,ii,Xo]},{provide:km,useExisting:Bc},{provide:pv,useExisting:ii},{provide:ii,useClass:ii,deps:[at]},{provide:cc,useClass:cc,deps:[Ie]},{provide:Ys,useClass:Ys,deps:[Ks,Ie]},{provide:dv,useClass:Ix,deps:[]}];let Wx=(()=>{class t{constructor(n){if(n)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(n){return{ngModule:t,providers:[{provide:Xo,useValue:n.appId},{provide:fv,useExisting:Xo},Ax]}}}return t.\u0275fac=function(n){return new(n||t)(S(t,12))},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({providers:qx,imports:[mx,JI]}),t})();function ea(t,e){return new se(n=>{const r=t.length;if(0===r)return void n.complete();const o=new Array(r);let i=0,s=0;for(let a=0;a{l||(l=!0,s++),o[a]=c},error:c=>n.error(c),complete:()=>{i++,(i===r||!l)&&(s===r&&n.next(e?e.reduce((c,d,f)=>(c[d]=o[f],c),{}):o),n.complete())}}))}})}"undefined"!=typeof window&&window;let Ev=(()=>{class t{constructor(n,r){this._renderer=n,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(n,r){this._renderer.setProperty(this._elementRef.nativeElement,n,r)}registerOnTouched(n){this.onTouched=n}registerOnChange(n){this.onChange=n}setDisabledState(n){this.setProperty("disabled",n)}}return t.\u0275fac=function(n){return new(n||t)(y(dn),y(st))},t.\u0275dir=N({type:t}),t})(),Zn=(()=>{class t extends Ev{}return t.\u0275fac=function(){let e;return function(r){return(e||(e=Ge(t)))(r||t)}}(),t.\u0275dir=N({type:t,features:[X]}),t})();const Xt=new B("NgValueAccessor"),sN={provide:Xt,useExisting:re(()=>si),multi:!0},uN=new B("CompositionEventMode");let si=(()=>{class t extends Ev{constructor(n,r,o){super(n,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function aN(){const t=Yt()?Yt().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(n){this.setProperty("value",null==n?"":n)}_handleInput(n){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(n)}_compositionStart(){this._composing=!0}_compositionEnd(n){this._composing=!1,this._compositionMode&&this.onChange(n)}}return t.\u0275fac=function(n){return new(n||t)(y(dn),y(st),y(uN,8))},t.\u0275dir=N({type:t,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(n,r){1&n&&Ce("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[le([sN]),X]}),t})();function Nn(t){return null==t||0===t.length}const je=new B("NgValidators"),Rn=new B("NgAsyncValidators");function Tv(t){return Nn(t.value)?{required:!0}:null}function ai(t){return null}function Pv(t){return null!=t}function kv(t){const e=Uo(t)?Oe(t):t;return Il(e),e}function Vv(t){let e={};return t.forEach(n=>{e=null!=n?Object.assign(Object.assign({},e),n):e}),0===Object.keys(e).length?null:e}function Lv(t,e){return e.map(n=>n(t))}function jv(t){return t.map(e=>function cN(t){return!t.validate}(e)?e:n=>e.validate(n))}function $c(t){return null!=t?function Bv(t){if(!t)return null;const e=t.filter(Pv);return 0==e.length?null:function(n){return Vv(Lv(n,e))}}(jv(t)):null}function Gc(t){return null!=t?function Hv(t){if(!t)return null;const e=t.filter(Pv);return 0==e.length?null:function(n){return function oN(...t){if(1===t.length){const e=t[0];if(Ii(e))return ea(e,null);if(Ta(e)&&Object.getPrototypeOf(e)===Object.prototype){const n=Object.keys(e);return ea(n.map(r=>e[r]),n)}}if("function"==typeof t[t.length-1]){const e=t.pop();return ea(t=1===t.length&&Ii(t[0])?t[0]:t,null).pipe(Z(n=>e(...n)))}return ea(t,null)}(Lv(n,e).map(kv)).pipe(Z(Vv))}}(jv(t)):null}function Uv(t,e){return null===t?[e]:Array.isArray(t)?[...t,e]:[t,e]}function zc(t){return t?Array.isArray(t)?t:[t]:[]}function ta(t,e){return Array.isArray(t)?t.includes(e):t===e}function zv(t,e){const n=zc(e);return zc(t).forEach(o=>{ta(n,o)||n.push(o)}),n}function qv(t,e){return zc(e).filter(n=>!ta(t,n))}class Wv{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}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}_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=$c(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=Gc(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e){this.control&&this.control.reset(e)}hasError(e,n){return!!this.control&&this.control.hasError(e,n)}getError(e,n){return this.control?this.control.getError(e,n):null}}class Fn extends Wv{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class Je extends Wv{get formDirective(){return null}get path(){return null}}class Jv{constructor(e){this._cd=e}is(e){var n,r,o;return"submitted"===e?!!(null===(n=this._cd)||void 0===n?void 0:n.submitted):!!(null===(o=null===(r=this._cd)||void 0===r?void 0:r.control)||void 0===o?void 0:o[e])}}let qc=(()=>{class t extends Jv{constructor(n){super(n)}}return t.\u0275fac=function(n){return new(n||t)(y(Fn,2))},t.\u0275dir=N({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(n,r){2&n&&bs("ng-untouched",r.is("untouched"))("ng-touched",r.is("touched"))("ng-pristine",r.is("pristine"))("ng-dirty",r.is("dirty"))("ng-valid",r.is("valid"))("ng-invalid",r.is("invalid"))("ng-pending",r.is("pending"))},features:[X]}),t})(),Wc=(()=>{class t extends Jv{constructor(n){super(n)}}return t.\u0275fac=function(n){return new(n||t)(y(Je,10))},t.\u0275dir=N({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(n,r){2&n&&bs("ng-untouched",r.is("untouched"))("ng-touched",r.is("touched"))("ng-pristine",r.is("pristine"))("ng-dirty",r.is("dirty"))("ng-valid",r.is("valid"))("ng-invalid",r.is("invalid"))("ng-pending",r.is("pending"))("ng-submitted",r.is("submitted"))},features:[X]}),t})();function ui(t,e){Zc(t,e),e.valueAccessor.writeValue(t.value),function vN(t,e){e.valueAccessor.registerOnChange(n=>{t._pendingValue=n,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&Zv(t,e)})}(t,e),function DN(t,e){const n=(r,o)=>{e.valueAccessor.writeValue(r),o&&e.viewToModelUpdate(r)};t.registerOnChange(n),e._registerOnDestroy(()=>{t._unregisterOnChange(n)})}(t,e),function _N(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&Zv(t,e),"submit"!==t.updateOn&&t.markAsTouched()})}(t,e),function yN(t,e){if(e.valueAccessor.setDisabledState){const n=r=>{e.valueAccessor.setDisabledState(r)};t.registerOnDisabledChange(n),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(n)})}}(t,e)}function ia(t,e){t.forEach(n=>{n.registerOnValidatorChange&&n.registerOnValidatorChange(e)})}function Zc(t,e){const n=function $v(t){return t._rawValidators}(t);null!==e.validator?t.setValidators(Uv(n,e.validator)):"function"==typeof n&&t.setValidators([n]);const r=function Gv(t){return t._rawAsyncValidators}(t);null!==e.asyncValidator?t.setAsyncValidators(Uv(r,e.asyncValidator)):"function"==typeof r&&t.setAsyncValidators([r]);const o=()=>t.updateValueAndValidity();ia(e._rawValidators,o),ia(e._rawAsyncValidators,o)}function Zv(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function aa(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const li="VALID",ua="INVALID",eo="PENDING",ci="DISABLED";function ed(t){return(la(t)?t.validators:t)||null}function Xv(t){return Array.isArray(t)?$c(t):t||null}function td(t,e){return(la(e)?e.asyncValidators:t)||null}function e_(t){return Array.isArray(t)?Gc(t):t||null}function la(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}const nd=t=>t instanceof od;function n_(t){return(t=>t instanceof i_)(t)?t.value:t.getRawValue()}function r_(t,e){const n=nd(t),r=t.controls;if(!(n?Object.keys(r):r).length)throw new J(1e3,"");if(!r[e])throw new J(1001,"")}function o_(t,e){nd(t),t._forEachChild((r,o)=>{if(void 0===e[o])throw new J(1002,"")})}class rd{constructor(e,n){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=e,this._rawAsyncValidators=n,this._composedValidatorFn=Xv(this._rawValidators),this._composedAsyncValidatorFn=e_(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get valid(){return this.status===li}get invalid(){return this.status===ua}get pending(){return this.status==eo}get disabled(){return this.status===ci}get enabled(){return this.status!==ci}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._rawValidators=e,this._composedValidatorFn=Xv(e)}setAsyncValidators(e){this._rawAsyncValidators=e,this._composedAsyncValidatorFn=e_(e)}addValidators(e){this.setValidators(zv(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(zv(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(qv(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(qv(e,this._rawAsyncValidators))}hasValidator(e){return ta(this._rawValidators,e)}hasAsyncValidator(e){return ta(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(e=>e.markAllAsTouched())}markAsUntouched(e={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(n=>{n.markAsUntouched({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}markAsDirty(e={}){this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)}markAsPristine(e={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(n=>{n.markAsPristine({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}markAsPending(e={}){this.status=eo,!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)}disable(e={}){const n=this._parentMarkedDirty(e.onlySelf);this.status=ci,this.errors=null,this._forEachChild(r=>{r.disable(Object.assign(Object.assign({},e),{onlySelf:!0}))}),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},e),{skipPristineCheck:n})),this._onDisabledChange.forEach(r=>r(!0))}enable(e={}){const n=this._parentMarkedDirty(e.onlySelf);this.status=li,this._forEachChild(r=>{r.enable(Object.assign(Object.assign({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},e),{skipPristineCheck:n})),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(e){this._parent=e}updateValueAndValidity(e={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===li||this.status===eo)&&this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(n=>n._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ci:li}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e){if(this.asyncValidator){this.status=eo,this._hasOwnPendingAsyncValidator=!0;const n=kv(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:e})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(e,n={}){this.errors=e,this._updateControlsErrors(!1!==n.emitEvent)}get(e){return function EN(t,e,n){if(null==e||(Array.isArray(e)||(e=e.split(n)),Array.isArray(e)&&0===e.length))return null;let r=t;return e.forEach(o=>{r=nd(r)?r.controls.hasOwnProperty(o)?r.controls[o]:null:(t=>t instanceof SN)(r)&&r.at(o)||null}),r}(this,e,".")}getError(e,n){const r=n?this.get(n):this;return r&&r.errors?r.errors[e]:null}hasError(e,n){return!!this.getError(e,n)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)}_initObservables(){this.valueChanges=new me,this.statusChanges=new me}_calculateStatus(){return this._allControlsDisabled()?ci:this.errors?ua:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(eo)?eo:this._anyControlsHaveStatus(ua)?ua:li}_anyControlsHaveStatus(e){return this._anyControls(n=>n.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e={}){this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}_updateTouched(e={}){this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}_isBoxedValue(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){la(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){return!e&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class i_ extends rd{constructor(e=null,n,r){super(ed(n),td(r,n)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(e),this._setUpdateStrategy(n),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),la(n)&&n.initialValueIsDefault&&(this.defaultValue=this._isBoxedValue(e)?e.value:e)}setValue(e,n={}){this.value=this._pendingValue=e,this._onChange.length&&!1!==n.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==n.emitViewToModelChange)),this.updateValueAndValidity(n)}patchValue(e,n={}){this.setValue(e,n)}reset(e=this.defaultValue,n={}){this._applyFormState(e),this.markAsPristine(n),this.markAsUntouched(n),this.setValue(this.value,n),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){aa(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){aa(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(e){this._isBoxedValue(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}}class od extends rd{constructor(e,n,r){super(ed(n),td(r,n)),this.controls=e,this._initObservables(),this._setUpdateStrategy(n),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(e,n){return this.controls[e]?this.controls[e]:(this.controls[e]=n,n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange),n)}addControl(e,n,r={}){this.registerControl(e,n),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}removeControl(e,n={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}setControl(e,n,r={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],n&&this.registerControl(e,n),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,n={}){o_(this,e),Object.keys(e).forEach(r=>{r_(this,r),this.controls[r].setValue(e[r],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n)}patchValue(e,n={}){null!=e&&(Object.keys(e).forEach(r=>{this.controls[r]&&this.controls[r].patchValue(e[r],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n))}reset(e={},n={}){this._forEachChild((r,o)=>{r.reset(e[o],{onlySelf:!0,emitEvent:n.emitEvent})}),this._updatePristine(n),this._updateTouched(n),this.updateValueAndValidity(n)}getRawValue(){return this._reduceChildren({},(e,n,r)=>(e[r]=n_(n),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(n,r)=>!!r._syncPendingControls()||n);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){Object.keys(this.controls).forEach(n=>{const r=this.controls[n];r&&e(r,n)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(const n of Object.keys(this.controls)){const r=this.controls[n];if(this.contains(n)&&e(r))return!0}return!1}_reduceValue(){return this._reduceChildren({},(e,n,r)=>((n.enabled||this.disabled)&&(e[r]=n.value),e))}_reduceChildren(e,n){let r=e;return this._forEachChild((o,i)=>{r=n(r,o,i)}),r}_allControlsDisabled(){for(const e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}}class SN extends rd{constructor(e,n,r){super(ed(n),td(r,n)),this.controls=e,this._initObservables(),this._setUpdateStrategy(n),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(e){return this.controls[e]}push(e,n={}){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}insert(e,n,r={}){this.controls.splice(e,0,n),this._registerControl(n),this.updateValueAndValidity({emitEvent:r.emitEvent})}removeAt(e,n={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),this.controls.splice(e,1),this.updateValueAndValidity({emitEvent:n.emitEvent})}setControl(e,n,r={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),this.controls.splice(e,1),n&&(this.controls.splice(e,0,n),this._registerControl(n)),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,n={}){o_(this,e),e.forEach((r,o)=>{r_(this,o),this.at(o).setValue(r,{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n)}patchValue(e,n={}){null!=e&&(e.forEach((r,o)=>{this.at(o)&&this.at(o).patchValue(r,{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n))}reset(e=[],n={}){this._forEachChild((r,o)=>{r.reset(e[o],{onlySelf:!0,emitEvent:n.emitEvent})}),this._updatePristine(n),this._updateTouched(n),this.updateValueAndValidity(n)}getRawValue(){return this.controls.map(e=>n_(e))}clear(e={}){this.controls.length<1||(this._forEachChild(n=>n._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}_syncPendingControls(){let e=this.controls.reduce((n,r)=>!!r._syncPendingControls()||n,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){this.controls.forEach((n,r)=>{e(n,r)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(n=>n.enabled&&e(n))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_allControlsDisabled(){for(const e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}}const AN={provide:Je,useExisting:re(()=>fi)},di=(()=>Promise.resolve(null))();let fi=(()=>{class t extends Je{constructor(n,r){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new me,this.form=new od({},$c(n),Gc(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(n){di.then(()=>{const r=this._findContainer(n.path);n.control=r.registerControl(n.name,n.control),ui(n.control,n),n.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(n)})}getControl(n){return this.form.get(n.path)}removeControl(n){di.then(()=>{const r=this._findContainer(n.path);r&&r.removeControl(n.name),aa(this._directives,n)})}addFormGroup(n){di.then(()=>{const r=this._findContainer(n.path),o=new od({});(function Kv(t,e){Zc(t,e)})(o,n),r.registerControl(n.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(n){di.then(()=>{const r=this._findContainer(n.path);r&&r.removeControl(n.name)})}getFormGroup(n){return this.form.get(n.path)}updateModel(n,r){di.then(()=>{this.form.get(n.path).setValue(r)})}setValue(n){this.control.setValue(n)}onSubmit(n){return this.submitted=!0,function Yv(t,e){t._syncPendingControls(),e.forEach(n=>{const r=n.control;"submit"===r.updateOn&&r._pendingChange&&(n.viewToModelUpdate(r._pendingValue),r._pendingChange=!1)})}(this.form,this._directives),this.ngSubmit.emit(n),!1}onReset(){this.resetForm()}resetForm(n){this.form.reset(n),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(n){return n.pop(),n.length?this.form.get(n):this.form}}return t.\u0275fac=function(n){return new(n||t)(y(je,10),y(Rn,10))},t.\u0275dir=N({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(n,r){1&n&&Ce("submit",function(i){return r.onSubmit(i)})("reset",function(){return r.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[le([AN]),X]}),t})();const TN={provide:Fn,useExisting:re(()=>ca)},u_=(()=>Promise.resolve(null))();let ca=(()=>{class t extends Fn{constructor(n,r,o,i){super(),this.control=new i_,this._registered=!1,this.update=new me,this._parent=n,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Yc(t,e){if(!e)return null;let n,r,o;return Array.isArray(e),e.forEach(i=>{i.constructor===si?n=i:function wN(t){return Object.getPrototypeOf(t.constructor)===Zn}(i)?r=i:o=i}),o||r||n||null}(0,i)}ngOnChanges(n){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in n&&this._updateDisabled(n),function Kc(t,e){if(!t.hasOwnProperty("model"))return!1;const n=t.model;return!!n.isFirstChange()||!Object.is(e,n.currentValue)}(n,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?function ra(t,e){return[...e.path,t]}(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(n){this.viewModel=n,this.update.emit(n)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){ui(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(n){u_.then(()=>{this.control.setValue(n,{emitViewToModelChange:!1})})}_updateDisabled(n){const r=n.isDisabled.currentValue,o=""===r||r&&"false"!==r;u_.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable()})}}return t.\u0275fac=function(n){return new(n||t)(y(Je,9),y(je,10),y(Rn,10),y(Xt,10))},t.\u0275dir=N({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[le([TN]),X,tt]}),t})(),id=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275dir=N({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),t})(),c_=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({}),t})();const jN={provide:Xt,useExisting:re(()=>hi),multi:!0};function y_(t,e){return null==t?`${e}`:(e&&"object"==typeof e&&(e="Object"),`${t}: ${e}`.slice(0,50))}let hi=(()=>{class t extends Zn{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){this.value=n;const r=this._getOptionId(n);null==r&&this.setProperty("selectedIndex",-1);const o=y_(r,n);this.setProperty("value",o)}registerOnChange(n){this.onChange=r=>{this.value=this._getOptionValue(r),n(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(n){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),n))return r;return null}_getOptionValue(n){const r=function BN(t){return t.split(":")[0]}(n);return this._optionMap.has(r)?this._optionMap.get(r):n}}return t.\u0275fac=function(){let e;return function(r){return(e||(e=Ge(t)))(r||t)}}(),t.\u0275dir=N({type:t,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(n,r){1&n&&Ce("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[le([jN]),X]}),t})(),ld=(()=>{class t{constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(n){null!=this._select&&(this._select._optionMap.set(this.id,n),this._setElementValue(y_(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._setElementValue(n),this._select&&this._select.writeValue(this._select.value)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return t.\u0275fac=function(n){return new(n||t)(y(st),y(dn),y(hi,9))},t.\u0275dir=N({type:t,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),t})();const HN={provide:Xt,useExisting:re(()=>cd),multi:!0};function v_(t,e){return null==t?`${e}`:("string"==typeof e&&(e=`'${e}'`),e&&"object"==typeof e&&(e="Object"),`${t}: ${e}`.slice(0,50))}let cd=(()=>{class t extends Zn{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){let r;if(this.value=n,Array.isArray(n)){const o=n.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(n){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class t{constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(n){null!=this._select&&(this._value=n,this._setElementValue(v_(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._select?(this._value=n,this._setElementValue(v_(this.id,n)),this._select.writeValue(this._select.value)):this._setElementValue(n)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}_setSelected(n){this._renderer.setProperty(this._element.nativeElement,"selected",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return t.\u0275fac=function(n){return new(n||t)(y(st),y(dn),y(cd,9))},t.\u0275dir=N({type:t,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),t})();let to=(()=>{class t{constructor(){this._validator=ai}ngOnChanges(n){if(this.inputName in n){const r=this.normalizeInput(n[this.inputName].currentValue);this._enabled=this.enabled(r),this._validator=this._enabled?this.createValidator(r):ai,this._onChange&&this._onChange()}}validate(n){return this._validator(n)}registerOnValidatorChange(n){this._onChange=n}enabled(n){return null!=n}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275dir=N({type:t,features:[tt]}),t})();const qN={provide:je,useExisting:re(()=>pi),multi:!0};let pi=(()=>{class t extends to{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=n=>function $N(t){return null!=t&&!1!==t&&"false"!=`${t}`}(n),this.createValidator=n=>Tv}enabled(n){return n}}return t.\u0275fac=function(){let e;return function(r){return(e||(e=Ge(t)))(r||t)}}(),t.\u0275dir=N({type:t,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(n,r){2&n&&Wt("required",r._enabled?"":null)},inputs:{required:"required"},features:[le([qN]),X]}),t})();const QN={provide:je,useExisting:re(()=>fd),multi:!0};let fd=(()=>{class t extends to{constructor(){super(...arguments),this.inputName="minlength",this.normalizeInput=n=>function __(t){return"number"==typeof t?t:parseInt(t,10)}(n),this.createValidator=n=>function Rv(t){return e=>Nn(e.value)||!function Sv(t){return null!=t&&"number"==typeof t.length}(e.value)?null:e.value.length{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({imports:[[c_]]}),t})(),XN=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({imports:[YN]}),t})();function V(...t){let e=t[t.length-1];return Ri(e)?(t.pop(),Na(t,e)):Pa(t)}function no(t,e){return Ne(t,e,1)}function Kn(t,e){return function(r){return r.lift(new eR(t,e))}}class eR{constructor(e,n){this.predicate=e,this.thisArg=n}call(e,n){return n.subscribe(new tR(e,this.predicate,this.thisArg))}}class tR extends ce{constructor(e,n,r){super(e),this.predicate=n,this.thisArg=r,this.count=0}_next(e){let n;try{n=this.predicate.call(this.thisArg,e,this.count++)}catch(r){return void this.destination.error(r)}n&&this.destination.next(e)}}class A_{}class I_{}class mn{constructor(e){this.normalizedNames=new Map,this.lazyUpdate=null,e?this.lazyInit="string"==typeof e?()=>{this.headers=new Map,e.split("\n").forEach(n=>{const r=n.indexOf(":");if(r>0){const o=n.slice(0,r),i=o.toLowerCase(),s=n.slice(r+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:()=>{this.headers=new Map,Object.keys(e).forEach(n=>{let r=e[n];const o=n.toLowerCase();"string"==typeof r&&(r=[r]),r.length>0&&(this.headers.set(o,r),this.maybeSetNormalizedName(n,o))})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();const n=this.headers.get(e.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,n){return this.clone({name:e,value:n,op:"a"})}set(e,n){return this.clone({name:e,value:n,op:"s"})}delete(e,n){return this.clone({name:e,value:n,op:"d"})}maybeSetNormalizedName(e,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,e)}init(){this.lazyInit&&(this.lazyInit instanceof mn?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(n=>{this.headers.set(n,e.headers.get(n)),this.normalizedNames.set(n,e.normalizedNames.get(n))})}clone(e){const n=new mn;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof mn?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([e]),n}applyUpdate(e){const n=e.name.toLowerCase();switch(e.op){case"a":case"s":let r=e.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(e.name,n);const o=("a"===e.op?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":const i=e.value;if(i){let s=this.headers.get(n);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}else this.headers.delete(n),this.normalizedNames.delete(n)}}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>e(this.normalizedNames.get(n),this.headers.get(n)))}}class nR{encodeKey(e){return T_(e)}encodeValue(e){return T_(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}}const oR=/%(\d[a-f0-9])/gi,iR={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function T_(t){return encodeURIComponent(t).replace(oR,(e,n)=>{var r;return null!==(r=iR[n])&&void 0!==r?r:e})}function x_(t){return`${t}`}class On{constructor(e={}){if(this.updates=null,this.cloneFrom=null,this.encoder=e.encoder||new nR,e.fromString){if(e.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function rR(t,e){const n=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const i=o.indexOf("="),[s,a]=-1==i?[e.decodeKey(o),""]:[e.decodeKey(o.slice(0,i)),e.decodeValue(o.slice(i+1))],u=n.get(s)||[];u.push(a),n.set(s,u)}),n}(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(n=>{const r=e.fromObject[n];this.map.set(n,Array.isArray(r)?r:[r])})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();const n=this.map.get(e);return n?n[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,n){return this.clone({param:e,value:n,op:"a"})}appendAll(e){const n=[];return Object.keys(e).forEach(r=>{const o=e[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(e,n){return this.clone({param:e,value:n,op:"s"})}delete(e,n){return this.clone({param:e,value:n,op:"d"})}toString(){return this.init(),this.keys().map(e=>{const n=this.encoder.encodeKey(e);return this.map.get(e).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(e=>""!==e).join("&")}clone(e){const n=new On({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(e),n}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":const n=("a"===e.op?this.map.get(e.param):void 0)||[];n.push(x_(e.value)),this.map.set(e.param,n);break;case"d":if(void 0===e.value){this.map.delete(e.param);break}{let r=this.map.get(e.param)||[];const o=r.indexOf(x_(e.value));-1!==o&&r.splice(o,1),r.length>0?this.map.set(e.param,r):this.map.delete(e.param)}}}),this.cloneFrom=this.updates=null)}}class sR{constructor(){this.map=new Map}set(e,n){return this.map.set(e,n),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}}function N_(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function R_(t){return"undefined"!=typeof Blob&&t instanceof Blob}function F_(t){return"undefined"!=typeof FormData&&t instanceof FormData}class gi{constructor(e,n,r,o){let i;if(this.url=n,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=e.toUpperCase(),function aR(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==r?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params)),this.headers||(this.headers=new mn),this.context||(this.context=new sR),this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=n;else{const a=n.indexOf("?");this.urlWithParams=n+(-1===a?"?":af.set(h,e.setHeaders[h]),l)),e.setParams&&(c=Object.keys(e.setParams).reduce((f,h)=>f.set(h,e.setParams[h]),c)),new gi(r,o,s,{params:c,headers:l,context:d,reportProgress:u,responseType:i,withCredentials:a})}}var Ee=(()=>((Ee=Ee||{})[Ee.Sent=0]="Sent",Ee[Ee.UploadProgress=1]="UploadProgress",Ee[Ee.ResponseHeader=2]="ResponseHeader",Ee[Ee.DownloadProgress=3]="DownloadProgress",Ee[Ee.Response=4]="Response",Ee[Ee.User=5]="User",Ee))();class hd{constructor(e,n=200,r="OK"){this.headers=e.headers||new mn,this.status=void 0!==e.status?e.status:n,this.statusText=e.statusText||r,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}}class pd extends hd{constructor(e={}){super(e),this.type=Ee.ResponseHeader}clone(e={}){return new pd({headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}class da extends hd{constructor(e={}){super(e),this.type=Ee.Response,this.body=void 0!==e.body?e.body:null}clone(e={}){return new da({body:void 0!==e.body?e.body:this.body,headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}class O_ extends hd{constructor(e){super(e,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${e.url||"(unknown url)"}`:`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}}function gd(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}let fa=(()=>{class t{constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof gi)i=n;else{let u,l;u=o.headers instanceof mn?o.headers:new mn(o.headers),o.params&&(l=o.params instanceof On?o.params:new On({fromObject:o.params})),i=new gi(n,r,void 0!==o.body?o.body:null,{headers:u,context:o.context,params:l,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const s=V(i).pipe(no(u=>this.handler.handle(u)));if(n instanceof gi||"events"===o.observe)return s;const a=s.pipe(Kn(u=>u instanceof da));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(Z(u=>{if(null!==u.body&&!(u.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return u.body}));case"blob":return a.pipe(Z(u=>{if(null!==u.body&&!(u.body instanceof Blob))throw new Error("Response is not a Blob.");return u.body}));case"text":return a.pipe(Z(u=>{if(null!==u.body&&"string"!=typeof u.body)throw new Error("Response is not a string.");return u.body}));default:return a.pipe(Z(u=>u.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:(new On).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,gd(o,r))}post(n,r,o={}){return this.request("POST",n,gd(o,r))}put(n,r,o={}){return this.request("PUT",n,gd(o,r))}}return t.\u0275fac=function(n){return new(n||t)(S(A_))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();class P_{constructor(e,n){this.next=e,this.interceptor=n}handle(e){return this.interceptor.intercept(e,this.next)}}const k_=new B("HTTP_INTERCEPTORS");let lR=(()=>{class t{intercept(n,r){return r.handle(n)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const cR=/^\)\]\}',?\n/;let V_=(()=>{class t{constructor(n){this.xhrFactory=n}handle(n){if("JSONP"===n.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new se(r=>{const o=this.xhrFactory.build();if(o.open(n.method,n.urlWithParams),n.withCredentials&&(o.withCredentials=!0),n.headers.forEach((h,p)=>o.setRequestHeader(h,p.join(","))),n.headers.has("Accept")||o.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){const h=n.detectContentTypeHeader();null!==h&&o.setRequestHeader("Content-Type",h)}if(n.responseType){const h=n.responseType.toLowerCase();o.responseType="json"!==h?h:"text"}const i=n.serializeBody();let s=null;const a=()=>{if(null!==s)return s;const h=1223===o.status?204:o.status,p=o.statusText||"OK",m=new mn(o.getAllResponseHeaders()),_=function dR(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(o)||n.url;return s=new pd({headers:m,status:h,statusText:p,url:_}),s},u=()=>{let{headers:h,status:p,statusText:m,url:_}=a(),D=null;204!==p&&(D=void 0===o.response?o.responseText:o.response),0===p&&(p=D?200:0);let g=p>=200&&p<300;if("json"===n.responseType&&"string"==typeof D){const M=D;D=D.replace(cR,"");try{D=""!==D?JSON.parse(D):null}catch(I){D=M,g&&(g=!1,D={error:I,text:D})}}g?(r.next(new da({body:D,headers:h,status:p,statusText:m,url:_||void 0})),r.complete()):r.error(new O_({error:D,headers:h,status:p,statusText:m,url:_||void 0}))},l=h=>{const{url:p}=a(),m=new O_({error:h,status:o.status||0,statusText:o.statusText||"Unknown Error",url:p||void 0});r.error(m)};let c=!1;const d=h=>{c||(r.next(a()),c=!0);let p={type:Ee.DownloadProgress,loaded:h.loaded};h.lengthComputable&&(p.total=h.total),"text"===n.responseType&&!!o.responseText&&(p.partialText=o.responseText),r.next(p)},f=h=>{let p={type:Ee.UploadProgress,loaded:h.loaded};h.lengthComputable&&(p.total=h.total),r.next(p)};return o.addEventListener("load",u),o.addEventListener("error",l),o.addEventListener("timeout",l),o.addEventListener("abort",l),n.reportProgress&&(o.addEventListener("progress",d),null!==i&&o.upload&&o.upload.addEventListener("progress",f)),o.send(i),r.next({type:Ee.Sent}),()=>{o.removeEventListener("error",l),o.removeEventListener("abort",l),o.removeEventListener("load",u),o.removeEventListener("timeout",l),n.reportProgress&&(o.removeEventListener("progress",d),null!==i&&o.upload&&o.upload.removeEventListener("progress",f)),o.readyState!==o.DONE&&o.abort()}})}}return t.\u0275fac=function(n){return new(n||t)(S(dv))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const md=new B("XSRF_COOKIE_NAME"),yd=new B("XSRF_HEADER_NAME");class L_{}let fR=(()=>{class t{constructor(n,r,o){this.doc=n,this.platform=r,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=ov(n,this.cookieName),this.lastCookieString=n),this.lastToken}}return t.\u0275fac=function(n){return new(n||t)(S(at),S(ks),S(md))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})(),vd=(()=>{class t{constructor(n,r){this.tokenService=n,this.headerName=r}intercept(n,r){const o=n.url.toLowerCase();if("GET"===n.method||"HEAD"===n.method||o.startsWith("http://")||o.startsWith("https://"))return r.handle(n);const i=this.tokenService.getToken();return null!==i&&!n.headers.has(this.headerName)&&(n=n.clone({headers:n.headers.set(this.headerName,i)})),r.handle(n)}}return t.\u0275fac=function(n){return new(n||t)(S(L_),S(yd))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})(),hR=(()=>{class t{constructor(n,r){this.backend=n,this.injector=r,this.chain=null}handle(n){if(null===this.chain){const r=this.injector.get(k_,[]);this.chain=r.reduceRight((o,i)=>new P_(o,i),this.backend)}return this.chain.handle(n)}}return t.\u0275fac=function(n){return new(n||t)(S(I_),S(Re))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})(),pR=(()=>{class t{static disable(){return{ngModule:t,providers:[{provide:vd,useClass:lR}]}}static withOptions(n={}){return{ngModule:t,providers:[n.cookieName?{provide:md,useValue:n.cookieName}:[],n.headerName?{provide:yd,useValue:n.headerName}:[]]}}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({providers:[vd,{provide:k_,useExisting:vd,multi:!0},{provide:L_,useClass:fR},{provide:md,useValue:"XSRF-TOKEN"},{provide:yd,useValue:"X-XSRF-TOKEN"}]}),t})(),gR=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({providers:[fa,{provide:A_,useClass:hR},V_,{provide:I_,useExisting:V_}],imports:[[pR.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),t})();class Vt extends nn{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){const n=super._subscribe(e);return n&&!n.closed&&e.next(this._value),n}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new ir;return this._value}next(e){super.next(this._value=e)}}class mR extends ce{notifyNext(e,n,r,o,i){this.destination.next(n)}notifyError(e,n){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class yR extends ce{constructor(e,n,r){super(),this.parent=e,this.outerValue=n,this.outerIndex=r,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function vR(t,e,n,r,o=new yR(t,n,r)){if(!o.closed)return e instanceof se?e.subscribe(o):xa(e)(o)}const j_={};class DR{constructor(e){this.resultSelector=e}call(e,n){return n.subscribe(new CR(e,this.resultSelector))}}class CR extends mR{constructor(e,n){super(e),this.resultSelector=n,this.active=0,this.values=[],this.observables=[]}_next(e){this.values.push(j_),this.observables.push(e)}_complete(){const e=this.observables,n=e.length;if(0===n)this.destination.complete();else{this.active=n,this.toRespond=n;for(let r=0;r{function t(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return t.prototype=Object.create(Error.prototype),t})();function _d(...t){return function bR(){return co(1)}()(V(...t))}const ro=new se(t=>t.complete());function Dd(t){return t?function wR(t){return new se(e=>t.schedule(()=>e.complete()))}(t):ro}function B_(t){return new se(e=>{let n;try{n=t()}catch(o){return void e.error(o)}return(n?Oe(n):Dd()).subscribe(e)})}function Pn(t,e){return"function"==typeof e?n=>n.pipe(Pn((r,o)=>Oe(t(r,o)).pipe(Z((i,s)=>e(r,i,o,s))))):n=>n.lift(new ER(t))}class ER{constructor(e){this.project=e}call(e,n){return n.subscribe(new MR(e,this.project))}}class MR extends Fa{constructor(e,n){super(e),this.project=n,this.index=0}_next(e){let n;const r=this.index++;try{n=this.project(e,r)}catch(o){return void this.destination.error(o)}this._innerSub(n)}_innerSub(e){const n=this.innerSubscription;n&&n.unsubscribe();const r=new Ra(this),o=this.destination;o.add(r),this.innerSubscription=Oa(e,r),this.innerSubscription!==r&&o.add(this.innerSubscription)}_complete(){const{innerSubscription:e}=this;(!e||e.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(e){this.destination.next(e)}}const H_=(()=>{function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t})();function Cd(t){return e=>0===t?Dd():e.lift(new SR(t))}class SR{constructor(e){if(this.total=e,this.total<0)throw new H_}call(e,n){return n.subscribe(new AR(e,this.total))}}class AR extends ce{constructor(e,n){super(e),this.total=n,this.count=0}_next(e){const n=this.total,r=++this.count;r<=n&&(this.destination.next(e),r===n&&(this.destination.complete(),this.unsubscribe()))}}function U_(t,e){let n=!1;return arguments.length>=2&&(n=!0),function(o){return o.lift(new TR(t,e,n))}}class TR{constructor(e,n,r=!1){this.accumulator=e,this.seed=n,this.hasSeed=r}call(e,n){return n.subscribe(new xR(e,this.accumulator,this.seed,this.hasSeed))}}class xR extends ce{constructor(e,n,r,o){super(e),this.accumulator=n,this._seed=r,this.hasSeed=o,this.index=0}get seed(){return this._seed}set seed(e){this.hasSeed=!0,this._seed=e}_next(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)}_tryNext(e){const n=this.index++;let r;try{r=this.accumulator(this.seed,e,n)}catch(o){this.destination.error(o)}this.seed=r,this.destination.next(r)}}function Yn(t){return function(n){const r=new NR(t),o=n.lift(r);return r.caught=o}}class NR{constructor(e){this.selector=e}call(e,n){return n.subscribe(new RR(e,this.selector,this.caught))}}class RR extends Fa{constructor(e,n,r){super(e),this.selector=n,this.caught=r}error(e){if(!this.isStopped){let n;try{n=this.selector(e,this.caught)}catch(i){return void super.error(i)}this._unsubscribeAndRecycle();const r=new Ra(this);this.add(r);const o=Oa(n,r);o!==r&&this.add(o)}}}function bd(t){return function(n){return 0===t?Dd():n.lift(new FR(t))}}class FR{constructor(e){if(this.total=e,this.total<0)throw new H_}call(e,n){return n.subscribe(new OR(e,this.total))}}class OR extends ce{constructor(e,n){super(e),this.total=n,this.ring=new Array,this.count=0}_next(e){const n=this.ring,r=this.total,o=this.count++;n.length0){const r=this.count>=this.total?this.total:this.count,o=this.ring;for(let i=0;ie.lift(new PR(t))}class PR{constructor(e){this.errorFactory=e}call(e,n){return n.subscribe(new kR(e,this.errorFactory))}}class kR extends ce{constructor(e,n){super(e),this.errorFactory=n,this.hasValue=!1}_next(e){this.hasValue=!0,this.destination.next(e)}_complete(){if(this.hasValue)return this.destination.complete();{let e;try{e=this.errorFactory()}catch(n){e=n}this.destination.error(e)}}}function VR(){return new ha}function G_(t=null){return e=>e.lift(new LR(t))}class LR{constructor(e){this.defaultValue=e}call(e,n){return n.subscribe(new jR(e,this.defaultValue))}}class jR extends ce{constructor(e,n){super(e),this.defaultValue=n,this.isEmpty=!0}_next(e){this.isEmpty=!1,this.destination.next(e)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function oo(t,e){const n=arguments.length>=2;return r=>r.pipe(t?Kn((o,i)=>t(o,i,r)):Ni,Cd(1),n?G_(e):$_(()=>new ha))}function kn(){}function ut(t,e,n){return function(o){return o.lift(new HR(t,e,n))}}class HR{constructor(e,n,r){this.nextOrObserver=e,this.error=n,this.complete=r}call(e,n){return n.subscribe(new UR(e,this.nextOrObserver,this.error,this.complete))}}class UR extends ce{constructor(e,n,r,o){super(e),this._tapNext=kn,this._tapError=kn,this._tapComplete=kn,this._tapError=r||kn,this._tapComplete=o||kn,jn(n)?(this._context=this,this._tapNext=n):n&&(this._context=n,this._tapNext=n.next||kn,this._tapError=n.error||kn,this._tapComplete=n.complete||kn)}_next(e){try{this._tapNext.call(this._context,e)}catch(n){return void this.destination.error(n)}this.destination.next(e)}_error(e){try{this._tapError.call(this._context,e)}catch(n){return void this.destination.error(n)}this.destination.error(e)}_complete(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()}}class GR{constructor(e){this.callback=e}call(e,n){return n.subscribe(new zR(e,this.callback))}}class zR extends ce{constructor(e,n){super(e),this.add(new fe(n))}}class yn{constructor(e,n){this.id=e,this.url=n}}class wd extends yn{constructor(e,n,r="imperative",o=null){super(e,n),this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class mi extends yn{constructor(e,n,r){super(e,n),this.urlAfterRedirects=r}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class z_ extends yn{constructor(e,n,r){super(e,n),this.reason=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class qR extends yn{constructor(e,n,r){super(e,n),this.error=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class WR extends yn{constructor(e,n,r,o){super(e,n),this.urlAfterRedirects=r,this.state=o}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class JR extends yn{constructor(e,n,r,o){super(e,n),this.urlAfterRedirects=r,this.state=o}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class QR extends yn{constructor(e,n,r,o,i){super(e,n),this.urlAfterRedirects=r,this.state=o,this.shouldActivate=i}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class ZR extends yn{constructor(e,n,r,o){super(e,n),this.urlAfterRedirects=r,this.state=o}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class KR extends yn{constructor(e,n,r,o){super(e,n),this.urlAfterRedirects=r,this.state=o}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class q_{constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class W_{constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class YR{constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class XR{constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class eF{constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class tF{constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class J_{constructor(e,n,r){this.routerEvent=e,this.position=n,this.anchor=r}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}const G="primary";class nF{constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){const n=this.params[e];return Array.isArray(n)?n[0]:n}return null}getAll(e){if(this.has(e)){const n=this.params[e];return Array.isArray(n)?n:[n]}return[]}get keys(){return Object.keys(this.params)}}function io(t){return new nF(t)}const Q_="ngNavigationCancelingError";function Ed(t){const e=Error("NavigationCancelingError: "+t);return e[Q_]=!0,e}function oF(t,e,n){const r=n.path.split("/");if(r.length>t.length||"full"===n.pathMatch&&(e.hasChildren()||r.lengthr[i]===o)}return t===e}function K_(t){return Array.prototype.concat.apply([],t)}function Y_(t){return t.length>0?t[t.length-1]:null}function Fe(t,e){for(const n in t)t.hasOwnProperty(n)&&e(t[n],n)}function tn(t){return Il(t)?t:Uo(t)?Oe(Promise.resolve(t)):V(t)}const aF={exact:function tD(t,e,n){if(!er(t.segments,e.segments)||!pa(t.segments,e.segments,n)||t.numberOfChildren!==e.numberOfChildren)return!1;for(const r in e.children)if(!t.children[r]||!tD(t.children[r],e.children[r],n))return!1;return!0},subset:nD},X_={exact:function uF(t,e){return en(t,e)},subset:function lF(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(n=>Z_(t[n],e[n]))},ignored:()=>!0};function eD(t,e,n){return aF[n.paths](t.root,e.root,n.matrixParams)&&X_[n.queryParams](t.queryParams,e.queryParams)&&!("exact"===n.fragment&&t.fragment!==e.fragment)}function nD(t,e,n){return rD(t,e,e.segments,n)}function rD(t,e,n,r){if(t.segments.length>n.length){const o=t.segments.slice(0,n.length);return!(!er(o,n)||e.hasChildren()||!pa(o,n,r))}if(t.segments.length===n.length){if(!er(t.segments,n)||!pa(t.segments,n,r))return!1;for(const o in e.children)if(!t.children[o]||!nD(t.children[o],e.children[o],r))return!1;return!0}{const o=n.slice(0,t.segments.length),i=n.slice(t.segments.length);return!!(er(t.segments,o)&&pa(t.segments,o,r)&&t.children[G])&&rD(t.children[G],e,i,r)}}function pa(t,e,n){return e.every((r,o)=>X_[n](t[o].parameters,r.parameters))}class Xn{constructor(e,n,r){this.root=e,this.queryParams=n,this.fragment=r}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=io(this.queryParams)),this._queryParamMap}toString(){return fF.serialize(this)}}class q{constructor(e,n){this.segments=e,this.children=n,this.parent=null,Fe(n,(r,o)=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return ga(this)}}class yi{constructor(e,n){this.path=e,this.parameters=n}get parameterMap(){return this._parameterMap||(this._parameterMap=io(this.parameters)),this._parameterMap}toString(){return uD(this)}}function er(t,e){return t.length===e.length&&t.every((n,r)=>n.path===e[r].path)}class oD{}class iD{parse(e){const n=new CF(e);return new Xn(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())}serialize(e){const n=`/${vi(e.root,!0)}`,r=function gF(t){const e=Object.keys(t).map(n=>{const r=t[n];return Array.isArray(r)?r.map(o=>`${ma(n)}=${ma(o)}`).join("&"):`${ma(n)}=${ma(r)}`}).filter(n=>!!n);return e.length?`?${e.join("&")}`:""}(e.queryParams),o="string"==typeof e.fragment?`#${function hF(t){return encodeURI(t)}(e.fragment)}`:"";return`${n}${r}${o}`}}const fF=new iD;function ga(t){return t.segments.map(e=>uD(e)).join("/")}function vi(t,e){if(!t.hasChildren())return ga(t);if(e){const n=t.children[G]?vi(t.children[G],!1):"",r=[];return Fe(t.children,(o,i)=>{i!==G&&r.push(`${i}:${vi(o,!1)}`)}),r.length>0?`${n}(${r.join("//")})`:n}{const n=function dF(t,e){let n=[];return Fe(t.children,(r,o)=>{o===G&&(n=n.concat(e(r,o)))}),Fe(t.children,(r,o)=>{o!==G&&(n=n.concat(e(r,o)))}),n}(t,(r,o)=>o===G?[vi(t.children[G],!1)]:[`${o}:${vi(r,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[G]?`${ga(t)}/${n[0]}`:`${ga(t)}/(${n.join("//")})`}}function sD(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function ma(t){return sD(t).replace(/%3B/gi,";")}function Md(t){return sD(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function ya(t){return decodeURIComponent(t)}function aD(t){return ya(t.replace(/\+/g,"%20"))}function uD(t){return`${Md(t.path)}${function pF(t){return Object.keys(t).map(e=>`;${Md(e)}=${Md(t[e])}`).join("")}(t.parameters)}`}const mF=/^[^\/()?;=#]+/;function va(t){const e=t.match(mF);return e?e[0]:""}const yF=/^[^=?&#]+/,_F=/^[^&#]+/;class CF{constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new q([],{}):new q([],this.parseChildren())}parseQueryParams(){const e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let n={};this.peekStartsWith("/(")&&(this.capture("/"),n=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(e.length>0||Object.keys(n).length>0)&&(r[G]=new q(e,n)),r}parseSegment(){const e=va(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(e),new yi(ya(e),this.parseMatrixParams())}parseMatrixParams(){const e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){const n=va(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const o=va(this.remaining);o&&(r=o,this.capture(r))}e[ya(n)]=ya(r)}parseQueryParam(e){const n=function vF(t){const e=t.match(yF);return e?e[0]:""}(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const s=function DF(t){const e=t.match(_F);return e?e[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=aD(n),i=aD(r);if(e.hasOwnProperty(o)){let s=e[o];Array.isArray(s)||(s=[s],e[o]=s),s.push(i)}else e[o]=i}parseParens(e){const n={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=va(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new Error(`Cannot parse url '${this.url}'`);let i;r.indexOf(":")>-1?(i=r.substr(0,r.indexOf(":")),this.capture(i),this.capture(":")):e&&(i=G);const s=this.parseChildren();n[i]=1===Object.keys(s).length?s[G]:new q([],s),this.consumeOptional("//")}return n}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}capture(e){if(!this.consumeOptional(e))throw new Error(`Expected "${e}".`)}}class lD{constructor(e){this._root=e}get root(){return this._root.value}parent(e){const n=this.pathFromRoot(e);return n.length>1?n[n.length-2]:null}children(e){const n=Sd(e,this._root);return n?n.children.map(r=>r.value):[]}firstChild(e){const n=Sd(e,this._root);return n&&n.children.length>0?n.children[0].value:null}siblings(e){const n=Ad(e,this._root);return n.length<2?[]:n[n.length-2].children.map(o=>o.value).filter(o=>o!==e)}pathFromRoot(e){return Ad(e,this._root).map(n=>n.value)}}function Sd(t,e){if(t===e.value)return e;for(const n of e.children){const r=Sd(t,n);if(r)return r}return null}function Ad(t,e){if(t===e.value)return[e];for(const n of e.children){const r=Ad(t,n);if(r.length)return r.unshift(e),r}return[]}class vn{constructor(e,n){this.value=e,this.children=n}toString(){return`TreeNode(${this.value})`}}function so(t){const e={};return t&&t.children.forEach(n=>e[n.value.outlet]=n),e}class cD extends lD{constructor(e,n){super(e),this.snapshot=n,Id(this,e)}toString(){return this.snapshot.toString()}}function dD(t,e){const n=function bF(t,e){const s=new _a([],{},{},"",{},G,e,null,t.root,-1,{});return new hD("",new vn(s,[]))}(t,e),r=new Vt([new yi("",{})]),o=new Vt({}),i=new Vt({}),s=new Vt({}),a=new Vt(""),u=new Vn(r,o,s,a,i,G,e,n.root);return u.snapshot=n.root,new cD(new vn(u,[]),n)}class Vn{constructor(e,n,r,o,i,s,a,u){this.url=e,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this._futureSnapshot=u}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(Z(e=>io(e)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Z(e=>io(e)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function fD(t,e="emptyOnly"){const n=t.pathFromRoot;let r=0;if("always"!==e)for(r=n.length-1;r>=1;){const o=n[r],i=n[r-1];if(o.routeConfig&&""===o.routeConfig.path)r--;else{if(i.component)break;r--}}return function wF(t){return t.reduce((e,n)=>({params:Object.assign(Object.assign({},e.params),n.params),data:Object.assign(Object.assign({},e.data),n.data),resolve:Object.assign(Object.assign({},e.resolve),n._resolvedData)}),{params:{},data:{},resolve:{}})}(n.slice(r))}class _a{constructor(e,n,r,o,i,s,a,u,l,c,d){this.url=e,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.routeConfig=u,this._urlSegment=l,this._lastPathIndex=c,this._resolve=d}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=io(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=io(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class hD extends lD{constructor(e,n){super(n),this.url=e,Id(this,n)}toString(){return pD(this._root)}}function Id(t,e){e.value._routerState=t,e.children.forEach(n=>Id(t,n))}function pD(t){const e=t.children.length>0?` { ${t.children.map(pD).join(", ")} } `:"";return`${t.value}${e}`}function Td(t){if(t.snapshot){const e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,en(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),en(e.params,n.params)||t.params.next(n.params),function iF(t,e){if(t.length!==e.length)return!1;for(let n=0;nen(n.parameters,e[r].parameters))}(t.url,e.url);return n&&!(!t.parent!=!e.parent)&&(!t.parent||xd(t.parent,e.parent))}function _i(t,e,n){if(n&&t.shouldReuseRoute(e.value,n.value.snapshot)){const r=n.value;r._futureSnapshot=e.value;const o=function MF(t,e,n){return e.children.map(r=>{for(const o of n.children)if(t.shouldReuseRoute(r.value,o.value.snapshot))return _i(t,r,o);return _i(t,r)})}(t,e,n);return new vn(r,o)}{if(t.shouldAttach(e.value)){const i=t.retrieve(e.value);if(null!==i){const s=i.route;return s.value._futureSnapshot=e.value,s.children=e.children.map(a=>_i(t,a)),s}}const r=function SF(t){return new Vn(new Vt(t.url),new Vt(t.params),new Vt(t.queryParams),new Vt(t.fragment),new Vt(t.data),t.outlet,t.component,t)}(e.value),o=e.children.map(i=>_i(t,i));return new vn(r,o)}}function Da(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function Di(t){return"object"==typeof t&&null!=t&&t.outlets}function Nd(t,e,n,r,o){let i={};return r&&Fe(r,(s,a)=>{i[a]=Array.isArray(s)?s.map(u=>`${u}`):`${s}`}),new Xn(n.root===t?e:gD(n.root,t,e),i,o)}function gD(t,e,n){const r={};return Fe(t.children,(o,i)=>{r[i]=o===e?n:gD(o,e,n)}),new q(t.segments,r)}class mD{constructor(e,n,r){if(this.isAbsolute=e,this.numberOfDoubleDots=n,this.commands=r,e&&r.length>0&&Da(r[0]))throw new Error("Root segment cannot have matrix parameters");const o=r.find(Di);if(o&&o!==Y_(r))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Rd{constructor(e,n,r){this.segmentGroup=e,this.processChildren=n,this.index=r}}function yD(t,e,n){if(t||(t=new q([],{})),0===t.segments.length&&t.hasChildren())return Ca(t,e,n);const r=function RF(t,e,n){let r=0,o=e;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=n.length)return i;const s=t.segments[o],a=n[r];if(Di(a))break;const u=`${a}`,l=r0&&void 0===u)break;if(u&&l&&"object"==typeof l&&void 0===l.outlets){if(!_D(u,l,s))return i;r+=2}else{if(!_D(u,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}(t,e,n),o=n.slice(r.commandIndex);if(r.match&&r.pathIndex{"string"==typeof i&&(i=[i]),null!==i&&(o[s]=yD(t.children[s],e,i))}),Fe(t.children,(i,s)=>{void 0===r[s]&&(o[s]=i)}),new q(t.segments,o)}}function Fd(t,e,n){const r=t.segments.slice(0,e);let o=0;for(;o{"string"==typeof n&&(n=[n]),null!==n&&(e[r]=Fd(new q([],{}),0,n))}),e}function vD(t){const e={};return Fe(t,(n,r)=>e[r]=`${n}`),e}function _D(t,e,n){return t==n.path&&en(e,n.parameters)}class PF{constructor(e,n,r,o){this.routeReuseStrategy=e,this.futureState=n,this.currState=r,this.forwardEvent=o}activate(e){const n=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(n,r,e),Td(this.futureState.root),this.activateChildRoutes(n,r,e)}deactivateChildRoutes(e,n,r){const o=so(n);e.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],r),delete o[s]}),Fe(o,(i,s)=>{this.deactivateRouteAndItsChildren(i,r)})}deactivateRoutes(e,n,r){const o=e.value,i=n?n.value:null;if(o===i)if(o.component){const s=r.getContext(o.outlet);s&&this.deactivateChildRoutes(e,n,s.children)}else this.deactivateChildRoutes(e,n,r);else i&&this.deactivateRouteAndItsChildren(n,r)}deactivateRouteAndItsChildren(e,n){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,n):this.deactivateRouteAndOutlet(e,n)}detachAndStoreRouteSubtree(e,n){const r=n.getContext(e.value.outlet),o=r&&e.value.component?r.children:n,i=so(e);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);if(r&&r.outlet){const s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:s,route:e,contexts:a})}}deactivateRouteAndOutlet(e,n){const r=n.getContext(e.value.outlet),o=r&&e.value.component?r.children:n,i=so(e);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);r&&r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated(),r.attachRef=null,r.resolver=null,r.route=null)}activateChildRoutes(e,n,r){const o=so(n);e.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new tF(i.value.snapshot))}),e.children.length&&this.forwardEvent(new XR(e.value.snapshot))}activateRoutes(e,n,r){const o=e.value,i=n?n.value:null;if(Td(o),o===i)if(o.component){const s=r.getOrCreateContext(o.outlet);this.activateChildRoutes(e,n,s.children)}else this.activateChildRoutes(e,n,r);else if(o.component){const s=r.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Td(a.route.value),this.activateChildRoutes(e,null,s.children)}else{const a=function kF(t){for(let e=t.parent;e;e=e.parent){const n=e.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig;if(n&&n.component)return null}return null}(o.snapshot),u=a?a.module.componentFactoryResolver:null;s.attachRef=null,s.route=o,s.resolver=u,s.outlet&&s.outlet.activateWith(o,u),this.activateChildRoutes(e,null,s.children)}}else this.activateChildRoutes(e,null,r)}}class Od{constructor(e,n){this.routes=e,this.module=n}}function Ln(t){return"function"==typeof t}function tr(t){return t instanceof Xn}const Ci=Symbol("INITIAL_VALUE");function bi(){return Pn(t=>function _R(...t){let e,n;return Ri(t[t.length-1])&&(n=t.pop()),"function"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&Ii(t[0])&&(t=t[0]),Pa(t,n).lift(new DR(e))}(t.map(e=>e.pipe(Cd(1),function IR(...t){const e=t[t.length-1];return Ri(e)?(t.pop(),n=>_d(t,n,e)):n=>_d(t,n)}(Ci)))).pipe(U_((e,n)=>{let r=!1;return n.reduce((o,i,s)=>o!==Ci?o:(i===Ci&&(r=!0),r||!1!==i&&s!==n.length-1&&!tr(i)?o:i),e)},Ci),Kn(e=>e!==Ci),Z(e=>tr(e)?e:!0===e),Cd(1)))}class UF{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new wi,this.attachRef=null}}class wi{constructor(){this.contexts=new Map}onChildOutletCreated(e,n){const r=this.getOrCreateContext(e);r.outlet=n,this.contexts.set(e,r)}onChildOutletDestroyed(e){const n=this.getContext(e);n&&(n.outlet=null,n.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let n=this.getContext(e);return n||(n=new UF,this.contexts.set(e,n)),n}getContext(e){return this.contexts.get(e)||null}}let Pd=(()=>{class t{constructor(n,r,o,i,s){this.parentContexts=n,this.location=r,this.resolver=o,this.changeDetector=s,this.activated=null,this._activatedRoute=null,this.activateEvents=new me,this.deactivateEvents=new me,this.attachEvents=new me,this.detachEvents=new me,this.name=i||G,n.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const n=this.parentContexts.getContext(this.name);n&&n.route&&(n.attachRef?this.attach(n.attachRef,n.route):this.activateWith(n.route,n.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const n=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(n.instance),n}attach(n,r){this.activated=n,this._activatedRoute=r,this.location.insert(n.hostView),this.attachEvents.emit(n.instance)}deactivate(){if(this.activated){const n=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(n)}}activateWith(n,r){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=n;const s=(r=r||this.resolver).resolveComponentFactory(n._futureSnapshot.routeConfig.component),a=this.parentContexts.getOrCreateContext(this.name).children,u=new $F(n,a,this.location.injector);this.activated=this.location.createComponent(s,this.location.length,u),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return t.\u0275fac=function(n){return new(n||t)(y(wi),y(Ft),y(qr),function Co(t){return function Ab(t,e){if("class"===e)return t.classes;if("style"===e)return t.styles;const n=t.attrs;if(n){const r=n.length;let o=0;for(;o{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=sn({type:t,selectors:[["ng-component"]],decls:1,vars:0,template:function(n,r){1&n&&Ho(0,"router-outlet")},directives:[Pd],encapsulation:2}),t})();function CD(t,e=""){for(let n=0;nCt(r)===e);return n.push(...t.filter(r=>Ct(r)!==e)),n}const wD={matched:!1,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};function ba(t,e,n){var r;if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?Object.assign({},wD):{matched:!0,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};const i=(e.matcher||oF)(n,t,e);if(!i)return Object.assign({},wD);const s={};Fe(i.posParams,(u,l)=>{s[l]=u.path});const a=i.consumed.length>0?Object.assign(Object.assign({},s),i.consumed[i.consumed.length-1].parameters):s;return{matched:!0,consumedSegments:i.consumed,lastChild:i.consumed.length,parameters:a,positionalParamSegments:null!==(r=i.posParams)&&void 0!==r?r:{}}}function wa(t,e,n,r,o="corrected"){if(n.length>0&&function JF(t,e,n){return n.some(r=>Ea(t,e,r)&&Ct(r)!==G)}(t,n,r)){const s=new q(e,function WF(t,e,n,r){const o={};o[G]=r,r._sourceSegment=t,r._segmentIndexShift=e.length;for(const i of n)if(""===i.path&&Ct(i)!==G){const s=new q([],{});s._sourceSegment=t,s._segmentIndexShift=e.length,o[Ct(i)]=s}return o}(t,e,r,new q(n,t.children)));return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:[]}}if(0===n.length&&function QF(t,e,n){return n.some(r=>Ea(t,e,r))}(t,n,r)){const s=new q(t.segments,function qF(t,e,n,r,o,i){const s={};for(const a of r)if(Ea(t,n,a)&&!o[Ct(a)]){const u=new q([],{});u._sourceSegment=t,u._segmentIndexShift="legacy"===i?t.segments.length:e.length,s[Ct(a)]=u}return Object.assign(Object.assign({},o),s)}(t,e,n,r,t.children,o));return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:n}}const i=new q(t.segments,t.children);return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}function Ea(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path}function ED(t,e,n,r){return!!(Ct(t)===r||r!==G&&Ea(e,n,t))&&("**"===t.path||ba(e,t,n).matched)}function MD(t,e,n){return 0===e.length&&!t.children[n]}class Ei{constructor(e){this.segmentGroup=e||null}}class SD{constructor(e){this.urlTree=e}}function Ma(t){return new se(e=>e.error(new Ei(t)))}function AD(t){return new se(e=>e.error(new SD(t)))}function ZF(t){return new se(e=>e.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${t}'`)))}class XF{constructor(e,n,r,o,i){this.configLoader=n,this.urlSerializer=r,this.urlTree=o,this.config=i,this.allowRedirects=!0,this.ngModule=e.get(fn)}apply(){const e=wa(this.urlTree.root,[],[],this.config).segmentGroup,n=new q(e.segments,e.children);return this.expandSegmentGroup(this.ngModule,this.config,n,G).pipe(Z(i=>this.createUrlTree(Vd(i),this.urlTree.queryParams,this.urlTree.fragment))).pipe(Yn(i=>{if(i instanceof SD)return this.allowRedirects=!1,this.match(i.urlTree);throw i instanceof Ei?this.noMatchError(i):i}))}match(e){return this.expandSegmentGroup(this.ngModule,this.config,e.root,G).pipe(Z(o=>this.createUrlTree(Vd(o),e.queryParams,e.fragment))).pipe(Yn(o=>{throw o instanceof Ei?this.noMatchError(o):o}))}noMatchError(e){return new Error(`Cannot match any routes. URL Segment: '${e.segmentGroup}'`)}createUrlTree(e,n,r){const o=e.segments.length>0?new q([],{[G]:e}):e;return new Xn(o,n,r)}expandSegmentGroup(e,n,r,o){return 0===r.segments.length&&r.hasChildren()?this.expandChildren(e,n,r).pipe(Z(i=>new q([],i))):this.expandSegment(e,r,n,r.segments,o,!0)}expandChildren(e,n,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return Oe(o).pipe(no(i=>{const s=r.children[i],a=bD(n,i);return this.expandSegmentGroup(e,a,s,i).pipe(Z(u=>({segment:u,outlet:i})))}),U_((i,s)=>(i[s.outlet]=s.segment,i),{}),function BR(t,e){const n=arguments.length>=2;return r=>r.pipe(t?Kn((o,i)=>t(o,i,r)):Ni,bd(1),n?G_(e):$_(()=>new ha))}())}expandSegment(e,n,r,o,i,s){return Oe(r).pipe(no(a=>this.expandSegmentAgainstRoute(e,n,r,a,o,i,s).pipe(Yn(l=>{if(l instanceof Ei)return V(null);throw l}))),oo(a=>!!a),Yn((a,u)=>{if(a instanceof ha||"EmptyError"===a.name){if(MD(n,o,i))return V(new q([],{}));throw new Ei(n)}throw a}))}expandSegmentAgainstRoute(e,n,r,o,i,s,a){return ED(o,n,i,s)?void 0===o.redirectTo?this.matchSegmentAgainstRoute(e,n,o,i,s):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,n,r,o,i,s):Ma(n):Ma(n)}expandSegmentAgainstRouteUsingRedirect(e,n,r,o,i,s){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,r,o,s):this.expandRegularSegmentAgainstRouteUsingRedirect(e,n,r,o,i,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(e,n,r,o){const i=this.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?AD(i):this.lineralizeSegments(r,i).pipe(Ne(s=>{const a=new q(s,{});return this.expandSegment(e,a,n,s,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(e,n,r,o,i,s){const{matched:a,consumedSegments:u,lastChild:l,positionalParamSegments:c}=ba(n,o,i);if(!a)return Ma(n);const d=this.applyRedirectCommands(u,o.redirectTo,c);return o.redirectTo.startsWith("/")?AD(d):this.lineralizeSegments(o,d).pipe(Ne(f=>this.expandSegment(e,n,r,f.concat(i.slice(l)),s,!1)))}matchSegmentAgainstRoute(e,n,r,o,i){if("**"===r.path)return r.loadChildren?(r._loadedConfig?V(r._loadedConfig):this.configLoader.load(e.injector,r)).pipe(Z(f=>(r._loadedConfig=f,new q(o,{})))):V(new q(o,{}));const{matched:s,consumedSegments:a,lastChild:u}=ba(n,r,o);if(!s)return Ma(n);const l=o.slice(u);return this.getChildConfig(e,r,o).pipe(Ne(d=>{const f=d.module,h=d.routes,{segmentGroup:p,slicedSegments:m}=wa(n,a,l,h),_=new q(p.segments,p.children);if(0===m.length&&_.hasChildren())return this.expandChildren(f,h,_).pipe(Z(I=>new q(a,I)));if(0===h.length&&0===m.length)return V(new q(a,{}));const D=Ct(r)===i;return this.expandSegment(f,_,h,m,D?G:i,!0).pipe(Z(M=>new q(a.concat(M.segments),M.children)))}))}getChildConfig(e,n,r){return n.children?V(new Od(n.children,e)):n.loadChildren?void 0!==n._loadedConfig?V(n._loadedConfig):this.runCanLoadGuards(e.injector,n,r).pipe(Ne(o=>o?this.configLoader.load(e.injector,n).pipe(Z(i=>(n._loadedConfig=i,i))):function KF(t){return new se(e=>e.error(Ed(`Cannot load children because the guard of the route "path: '${t.path}'" returned false`)))}(n))):V(new Od([],e))}runCanLoadGuards(e,n,r){const o=n.canLoad;if(!o||0===o.length)return V(!0);const i=o.map(s=>{const a=e.get(s);let u;if(function LF(t){return t&&Ln(t.canLoad)}(a))u=a.canLoad(n,r);else{if(!Ln(a))throw new Error("Invalid CanLoad guard");u=a(n,r)}return tn(u)});return V(i).pipe(bi(),ut(s=>{if(!tr(s))return;const a=Ed(`Redirecting to "${this.urlSerializer.serialize(s)}"`);throw a.url=s,a}),Z(s=>!0===s))}lineralizeSegments(e,n){let r=[],o=n.root;for(;;){if(r=r.concat(o.segments),0===o.numberOfChildren)return V(r);if(o.numberOfChildren>1||!o.children[G])return ZF(e.redirectTo);o=o.children[G]}}applyRedirectCommands(e,n,r){return this.applyRedirectCreatreUrlTree(n,this.urlSerializer.parse(n),e,r)}applyRedirectCreatreUrlTree(e,n,r,o){const i=this.createSegmentGroup(e,n.root,r,o);return new Xn(i,this.createQueryParams(n.queryParams,this.urlTree.queryParams),n.fragment)}createQueryParams(e,n){const r={};return Fe(e,(o,i)=>{if("string"==typeof o&&o.startsWith(":")){const a=o.substring(1);r[i]=n[a]}else r[i]=o}),r}createSegmentGroup(e,n,r,o){const i=this.createSegments(e,n.segments,r,o);let s={};return Fe(n.children,(a,u)=>{s[u]=this.createSegmentGroup(e,a,r,o)}),new q(i,s)}createSegments(e,n,r,o){return n.map(i=>i.path.startsWith(":")?this.findPosParam(e,i,o):this.findOrReturn(i,r))}findPosParam(e,n,r){const o=r[n.path.substring(1)];if(!o)throw new Error(`Cannot redirect to '${e}'. Cannot find '${n.path}'.`);return o}findOrReturn(e,n){let r=0;for(const o of n){if(o.path===e.path)return n.splice(r),o;r++}return e}}function Vd(t){const e={};for(const r of Object.keys(t.children)){const i=Vd(t.children[r]);(i.segments.length>0||i.hasChildren())&&(e[r]=i)}return function eO(t){if(1===t.numberOfChildren&&t.children[G]){const e=t.children[G];return new q(t.segments.concat(e.segments),e.children)}return t}(new q(t.segments,e))}class ID{constructor(e){this.path=e,this.route=this.path[this.path.length-1]}}class Sa{constructor(e,n){this.component=e,this.route=n}}function nO(t,e,n){const r=t._root;return Mi(r,e?e._root:null,n,[r.value])}function Aa(t,e,n){const r=function oO(t){if(!t)return null;for(let e=t.parent;e;e=e.parent){const n=e.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}(e);return(r?r.module.injector:n).get(t)}function Mi(t,e,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=so(e);return t.children.forEach(s=>{(function iO(t,e,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=t.value,s=e?e.value:null,a=n?n.getContext(t.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const u=function sO(t,e,n){if("function"==typeof n)return n(t,e);switch(n){case"pathParamsChange":return!er(t.url,e.url);case"pathParamsOrQueryParamsChange":return!er(t.url,e.url)||!en(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!xd(t,e)||!en(t.queryParams,e.queryParams);default:return!xd(t,e)}}(s,i,i.routeConfig.runGuardsAndResolvers);u?o.canActivateChecks.push(new ID(r)):(i.data=s.data,i._resolvedData=s._resolvedData),Mi(t,e,i.component?a?a.children:null:n,r,o),u&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new Sa(a.outlet.component,s))}else s&&Si(e,a,o),o.canActivateChecks.push(new ID(r)),Mi(t,null,i.component?a?a.children:null:n,r,o)})(s,i[s.value.outlet],n,r.concat([s.value]),o),delete i[s.value.outlet]}),Fe(i,(s,a)=>Si(s,n.getContext(a),o)),o}function Si(t,e,n){const r=so(t),o=t.value;Fe(r,(i,s)=>{Si(i,o.component?e?e.children.getContext(s):null:e,n)}),n.canDeactivateChecks.push(new Sa(o.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,o))}class gO{}function TD(t){return new se(e=>e.error(t))}class yO{constructor(e,n,r,o,i,s){this.rootComponentType=e,this.config=n,this.urlTree=r,this.url=o,this.paramsInheritanceStrategy=i,this.relativeLinkResolution=s}recognize(){const e=wa(this.urlTree.root,[],[],this.config.filter(s=>void 0===s.redirectTo),this.relativeLinkResolution).segmentGroup,n=this.processSegmentGroup(this.config,e,G);if(null===n)return null;const r=new _a([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},G,this.rootComponentType,null,this.urlTree.root,-1,{}),o=new vn(r,n),i=new hD(this.url,o);return this.inheritParamsAndData(i._root),i}inheritParamsAndData(e){const n=e.value,r=fD(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),e.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(e,n,r){return 0===n.segments.length&&n.hasChildren()?this.processChildren(e,n):this.processSegment(e,n,n.segments,r)}processChildren(e,n){const r=[];for(const i of Object.keys(n.children)){const s=n.children[i],a=bD(e,i),u=this.processSegmentGroup(a,s,i);if(null===u)return null;r.push(...u)}const o=xD(r);return function vO(t){t.sort((e,n)=>e.value.outlet===G?-1:n.value.outlet===G?1:e.value.outlet.localeCompare(n.value.outlet))}(o),o}processSegment(e,n,r,o){for(const i of e){const s=this.processSegmentAgainstRoute(i,n,r,o);if(null!==s)return s}return MD(n,r,o)?[]:null}processSegmentAgainstRoute(e,n,r,o){if(e.redirectTo||!ED(e,n,r,o))return null;let i,s=[],a=[];if("**"===e.path){const h=r.length>0?Y_(r).parameters:{};i=new _a(r,h,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,FD(e),Ct(e),e.component,e,ND(n),RD(n)+r.length,OD(e))}else{const h=ba(n,e,r);if(!h.matched)return null;s=h.consumedSegments,a=r.slice(h.lastChild),i=new _a(s,h.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,FD(e),Ct(e),e.component,e,ND(n),RD(n)+s.length,OD(e))}const u=function _O(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(e),{segmentGroup:l,slicedSegments:c}=wa(n,s,a,u.filter(h=>void 0===h.redirectTo),this.relativeLinkResolution);if(0===c.length&&l.hasChildren()){const h=this.processChildren(u,l);return null===h?null:[new vn(i,h)]}if(0===u.length&&0===c.length)return[new vn(i,[])];const d=Ct(e)===o,f=this.processSegment(u,l,c,d?G:o);return null===f?null:[new vn(i,f)]}}function DO(t){const e=t.value.routeConfig;return e&&""===e.path&&void 0===e.redirectTo}function xD(t){const e=[],n=new Set;for(const r of t){if(!DO(r)){e.push(r);continue}const o=e.find(i=>r.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...r.children),n.add(o)):e.push(r)}for(const r of n){const o=xD(r.children);e.push(new vn(r.value,o))}return e.filter(r=>!n.has(r))}function ND(t){let e=t;for(;e._sourceSegment;)e=e._sourceSegment;return e}function RD(t){let e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;for(;e._sourceSegment;)e=e._sourceSegment,n+=e._segmentIndexShift?e._segmentIndexShift:0;return n-1}function FD(t){return t.data||{}}function OD(t){return t.resolve||{}}function PD(t){return[...Object.keys(t),...Object.getOwnPropertySymbols(t)]}function Ld(t){return Pn(e=>{const n=t(e);return n?Oe(n).pipe(Z(()=>e)):V(e)})}class IO extends class AO{shouldDetach(e){return!1}store(e,n){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,n){return e.routeConfig===n.routeConfig}}{}const jd=new B("ROUTES");class kD{constructor(e,n,r,o){this.injector=e,this.compiler=n,this.onLoadStartListener=r,this.onLoadEndListener=o}load(e,n){if(n._loader$)return n._loader$;this.onLoadStartListener&&this.onLoadStartListener(n);const o=this.loadModuleFactory(n.loadChildren).pipe(Z(i=>{this.onLoadEndListener&&this.onLoadEndListener(n);const s=i.create(e);return new Od(K_(s.injector.get(jd,void 0,k.Self|k.Optional)).map(kd),s)}),Yn(i=>{throw n._loader$=void 0,i}));return n._loader$=new lf(o,()=>new nn).pipe(ka()),n._loader$}loadModuleFactory(e){return tn(e()).pipe(Ne(n=>n instanceof jm?V(n):Oe(this.compiler.compileModuleAsync(n))))}}class xO{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,n){return e}}function NO(t){throw t}function RO(t,e,n){return e.parse("/")}function VD(t,e){return V(null)}const FO={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},OO={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let lt=(()=>{class t{constructor(n,r,o,i,s,a,u){this.rootComponentType=n,this.urlSerializer=r,this.rootContexts=o,this.location=i,this.config=u,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new nn,this.errorHandler=NO,this.malformedUriErrorHandler=RO,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:VD,afterPreactivation:VD},this.urlHandlingStrategy=new xO,this.routeReuseStrategy=new IO,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.ngModule=s.get(fn),this.console=s.get(Dy);const d=s.get(Ie);this.isNgZoneEnabled=d instanceof Ie&&Ie.isInAngularZone(),this.resetConfig(u),this.currentUrlTree=function sF(){return new Xn(new q([],{}),{},null)}(),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new kD(s,a,f=>this.triggerEvent(new q_(f)),f=>this.triggerEvent(new W_(f))),this.routerState=dD(this.currentUrlTree,this.rootComponentType),this.transitions=new Vt({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){var n;return null===(n=this.location.getState())||void 0===n?void 0:n.\u0275routerPageId}setupNavigations(n){const r=this.events;return n.pipe(Kn(o=>0!==o.id),Z(o=>Object.assign(Object.assign({},o),{extractedUrl:this.urlHandlingStrategy.extract(o.rawUrl)})),Pn(o=>{let i=!1,s=!1;return V(o).pipe(ut(a=>{this.currentNavigation={id:a.id,initialUrl:a.currentRawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),Pn(a=>{const u=this.browserUrlTree.toString(),l=!this.navigated||a.extractedUrl.toString()!==u||u!==this.currentUrlTree.toString();if(("reload"===this.onSameUrlNavigation||l)&&this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return Ia(a.source)&&(this.browserUrlTree=a.extractedUrl),V(a).pipe(Pn(d=>{const f=this.transitions.getValue();return r.next(new wd(d.id,this.serializeUrl(d.extractedUrl),d.source,d.restoredState)),f!==this.transitions.getValue()?ro:Promise.resolve(d)}),function tO(t,e,n,r){return Pn(o=>function YF(t,e,n,r,o){return new XF(t,e,n,r,o).apply()}(t,e,n,o.extractedUrl,r).pipe(Z(i=>Object.assign(Object.assign({},o),{urlAfterRedirects:i}))))}(this.ngModule.injector,this.configLoader,this.urlSerializer,this.config),ut(d=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:d.urlAfterRedirects})}),function CO(t,e,n,r,o){return Ne(i=>function mO(t,e,n,r,o="emptyOnly",i="legacy"){try{const s=new yO(t,e,n,r,o,i).recognize();return null===s?TD(new gO):V(s)}catch(s){return TD(s)}}(t,e,i.urlAfterRedirects,n(i.urlAfterRedirects),r,o).pipe(Z(s=>Object.assign(Object.assign({},i),{targetSnapshot:s}))))}(this.rootComponentType,this.config,d=>this.serializeUrl(d),this.paramsInheritanceStrategy,this.relativeLinkResolution),ut(d=>{if("eager"===this.urlUpdateStrategy){if(!d.extras.skipLocationChange){const h=this.urlHandlingStrategy.merge(d.urlAfterRedirects,d.rawUrl);this.setBrowserUrl(h,d)}this.browserUrlTree=d.urlAfterRedirects}const f=new WR(d.id,this.serializeUrl(d.extractedUrl),this.serializeUrl(d.urlAfterRedirects),d.targetSnapshot);r.next(f)}));if(l&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:f,extractedUrl:h,source:p,restoredState:m,extras:_}=a,D=new wd(f,this.serializeUrl(h),p,m);r.next(D);const g=dD(h,this.rootComponentType).snapshot;return V(Object.assign(Object.assign({},a),{targetSnapshot:g,urlAfterRedirects:h,extras:Object.assign(Object.assign({},_),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=a.rawUrl,a.resolve(null),ro}),Ld(a=>{const{targetSnapshot:u,id:l,extractedUrl:c,rawUrl:d,extras:{skipLocationChange:f,replaceUrl:h}}=a;return this.hooks.beforePreactivation(u,{navigationId:l,appliedUrlTree:c,rawUrlTree:d,skipLocationChange:!!f,replaceUrl:!!h})}),ut(a=>{const u=new JR(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot);this.triggerEvent(u)}),Z(a=>Object.assign(Object.assign({},a),{guards:nO(a.targetSnapshot,a.currentSnapshot,this.rootContexts)})),function aO(t,e){return Ne(n=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=n;return 0===s.length&&0===i.length?V(Object.assign(Object.assign({},n),{guardsResult:!0})):function uO(t,e,n,r){return Oe(t).pipe(Ne(o=>function pO(t,e,n,r,o){const i=e&&e.routeConfig?e.routeConfig.canDeactivate:null;return i&&0!==i.length?V(i.map(a=>{const u=Aa(a,e,o);let l;if(function HF(t){return t&&Ln(t.canDeactivate)}(u))l=tn(u.canDeactivate(t,e,n,r));else{if(!Ln(u))throw new Error("Invalid CanDeactivate guard");l=tn(u(t,e,n,r))}return l.pipe(oo())})).pipe(bi()):V(!0)}(o.component,o.route,n,e,r)),oo(o=>!0!==o,!0))}(s,r,o,t).pipe(Ne(a=>a&&function VF(t){return"boolean"==typeof t}(a)?function lO(t,e,n,r){return Oe(e).pipe(no(o=>_d(function dO(t,e){return null!==t&&e&&e(new YR(t)),V(!0)}(o.route.parent,r),function cO(t,e){return null!==t&&e&&e(new eF(t)),V(!0)}(o.route,r),function hO(t,e,n){const r=e[e.length-1],i=e.slice(0,e.length-1).reverse().map(s=>function rO(t){const e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(s)).filter(s=>null!==s).map(s=>B_(()=>V(s.guards.map(u=>{const l=Aa(u,s.node,n);let c;if(function BF(t){return t&&Ln(t.canActivateChild)}(l))c=tn(l.canActivateChild(r,t));else{if(!Ln(l))throw new Error("Invalid CanActivateChild guard");c=tn(l(r,t))}return c.pipe(oo())})).pipe(bi())));return V(i).pipe(bi())}(t,o.path,n),function fO(t,e,n){const r=e.routeConfig?e.routeConfig.canActivate:null;if(!r||0===r.length)return V(!0);const o=r.map(i=>B_(()=>{const s=Aa(i,e,n);let a;if(function jF(t){return t&&Ln(t.canActivate)}(s))a=tn(s.canActivate(e,t));else{if(!Ln(s))throw new Error("Invalid CanActivate guard");a=tn(s(e,t))}return a.pipe(oo())}));return V(o).pipe(bi())}(t,o.route,n))),oo(o=>!0!==o,!0))}(r,i,t,e):V(a)),Z(a=>Object.assign(Object.assign({},n),{guardsResult:a})))})}(this.ngModule.injector,a=>this.triggerEvent(a)),ut(a=>{if(tr(a.guardsResult)){const l=Ed(`Redirecting to "${this.serializeUrl(a.guardsResult)}"`);throw l.url=a.guardsResult,l}const u=new QR(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.triggerEvent(u)}),Kn(a=>!!a.guardsResult||(this.restoreHistory(a),this.cancelNavigationTransition(a,""),!1)),Ld(a=>{if(a.guards.canActivateChecks.length)return V(a).pipe(ut(u=>{const l=new ZR(u.id,this.serializeUrl(u.extractedUrl),this.serializeUrl(u.urlAfterRedirects),u.targetSnapshot);this.triggerEvent(l)}),Pn(u=>{let l=!1;return V(u).pipe(function bO(t,e){return Ne(n=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=n;if(!o.length)return V(n);let i=0;return Oe(o).pipe(no(s=>function wO(t,e,n,r){return function EO(t,e,n,r){const o=PD(t);if(0===o.length)return V({});const i={};return Oe(o).pipe(Ne(s=>function MO(t,e,n,r){const o=Aa(t,e,r);return tn(o.resolve?o.resolve(e,n):o(e,n))}(t[s],e,n,r).pipe(ut(a=>{i[s]=a}))),bd(1),Ne(()=>PD(i).length===o.length?V(i):ro))}(t._resolve,t,e,r).pipe(Z(i=>(t._resolvedData=i,t.data=Object.assign(Object.assign({},t.data),fD(t,n).resolve),null)))}(s.route,r,t,e)),ut(()=>i++),bd(1),Ne(s=>i===o.length?V(n):ro))})}(this.paramsInheritanceStrategy,this.ngModule.injector),ut({next:()=>l=!0,complete:()=>{l||(this.restoreHistory(u),this.cancelNavigationTransition(u,"At least one route resolver didn't emit any value."))}}))}),ut(u=>{const l=new KR(u.id,this.serializeUrl(u.extractedUrl),this.serializeUrl(u.urlAfterRedirects),u.targetSnapshot);this.triggerEvent(l)}))}),Ld(a=>{const{targetSnapshot:u,id:l,extractedUrl:c,rawUrl:d,extras:{skipLocationChange:f,replaceUrl:h}}=a;return this.hooks.afterPreactivation(u,{navigationId:l,appliedUrlTree:c,rawUrlTree:d,skipLocationChange:!!f,replaceUrl:!!h})}),Z(a=>{const u=function EF(t,e,n){const r=_i(t,e._root,n?n._root:void 0);return new cD(r,e)}(this.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return Object.assign(Object.assign({},a),{targetRouterState:u})}),ut(a=>{this.currentUrlTree=a.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),this.routerState=a.targetRouterState,"deferred"===this.urlUpdateStrategy&&(a.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,a),this.browserUrlTree=a.urlAfterRedirects)}),((t,e,n)=>Z(r=>(new PF(e,r.targetRouterState,r.currentRouterState,n).activate(t),r)))(this.rootContexts,this.routeReuseStrategy,a=>this.triggerEvent(a)),ut({next(){i=!0},complete(){i=!0}}),function $R(t){return e=>e.lift(new GR(t))}(()=>{var a;i||s||this.cancelNavigationTransition(o,`Navigation ID ${o.id} is not equal to the current navigation id ${this.navigationId}`),(null===(a=this.currentNavigation)||void 0===a?void 0:a.id)===o.id&&(this.currentNavigation=null)}),Yn(a=>{if(s=!0,function rF(t){return t&&t[Q_]}(a)){const u=tr(a.url);u||(this.navigated=!0,this.restoreHistory(o,!0));const l=new z_(o.id,this.serializeUrl(o.extractedUrl),a.message);r.next(l),u?setTimeout(()=>{const c=this.urlHandlingStrategy.merge(a.url,this.rawUrlTree),d={skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||Ia(o.source)};this.scheduleNavigation(c,"imperative",null,d,{resolve:o.resolve,reject:o.reject,promise:o.promise})},0):o.resolve(!1)}else{this.restoreHistory(o,!0);const u=new qR(o.id,this.serializeUrl(o.extractedUrl),a);r.next(u);try{o.resolve(this.errorHandler(a))}catch(l){o.reject(l)}}return ro}))}))}resetRootComponentType(n){this.rootComponentType=n,this.routerState.root.component=this.rootComponentType}setTransition(n){this.transitions.next(Object.assign(Object.assign({},this.transitions.value),n))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(n=>{const r="popstate"===n.type?"popstate":"hashchange";"popstate"===r&&setTimeout(()=>{var o;const i={replaceUrl:!0},s=(null===(o=n.state)||void 0===o?void 0:o.navigationId)?n.state:null;if(s){const u=Object.assign({},s);delete u.navigationId,delete u.\u0275routerPageId,0!==Object.keys(u).length&&(i.state=u)}const a=this.parseUrl(n.url);this.scheduleNavigation(a,r,s,i)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(n){this.events.next(n)}resetConfig(n){CD(n),this.config=n.map(kd),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(n,r={}){const{relativeTo:o,queryParams:i,fragment:s,queryParamsHandling:a,preserveFragment:u}=r,l=o||this.routerState.root,c=u?this.currentUrlTree.fragment:s;let d=null;switch(a){case"merge":d=Object.assign(Object.assign({},this.currentUrlTree.queryParams),i);break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=i||null}return null!==d&&(d=this.removeEmptyProps(d)),function AF(t,e,n,r,o){if(0===n.length)return Nd(e.root,e.root,e,r,o);const i=function IF(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new mD(!0,0,t);let e=0,n=!1;const r=t.reduce((o,i,s)=>{if("object"==typeof i&&null!=i){if(i.outlets){const a={};return Fe(i.outlets,(u,l)=>{a[l]="string"==typeof u?u.split("/"):u}),[...o,{outlets:a}]}if(i.segmentPath)return[...o,i.segmentPath]}return"string"!=typeof i?[...o,i]:0===s?(i.split("/").forEach((a,u)=>{0==u&&"."===a||(0==u&&""===a?n=!0:".."===a?e++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new mD(n,e,r)}(n);if(i.toRoot())return Nd(e.root,new q([],{}),e,r,o);const s=function TF(t,e,n){if(t.isAbsolute)return new Rd(e.root,!0,0);if(-1===n.snapshot._lastPathIndex){const i=n.snapshot._urlSegment;return new Rd(i,i===e.root,0)}const r=Da(t.commands[0])?0:1;return function xF(t,e,n){let r=t,o=e,i=n;for(;i>o;){if(i-=o,r=r.parent,!r)throw new Error("Invalid number of '../'");o=r.segments.length}return new Rd(r,!1,o-i)}(n.snapshot._urlSegment,n.snapshot._lastPathIndex+r,t.numberOfDoubleDots)}(i,e,t),a=s.processChildren?Ca(s.segmentGroup,s.index,i.commands):yD(s.segmentGroup,s.index,i.commands);return Nd(s.segmentGroup,a,e,r,o)}(l,this.currentUrlTree,n,d,null!=c?c:null)}navigateByUrl(n,r={skipLocationChange:!1}){const o=tr(n)?n:this.parseUrl(n),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,"imperative",null,r)}navigate(n,r={skipLocationChange:!1}){return function PO(t){for(let e=0;e{const i=n[o];return null!=i&&(r[o]=i),r},{})}processNavigations(){this.navigations.subscribe(n=>{this.navigated=!0,this.lastSuccessfulId=n.id,this.currentPageId=n.targetPageId,this.events.next(new mi(n.id,this.serializeUrl(n.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,n.resolve(!0)},n=>{this.console.warn(`Unhandled Navigation Error: ${n}`)})}scheduleNavigation(n,r,o,i,s){var a,u,l;if(this.disposed)return Promise.resolve(!1);const c=this.transitions.value,d=Ia(r)&&c&&!Ia(c.source),f=c.rawUrl.toString()===n.toString(),h=c.id===(null===(a=this.currentNavigation)||void 0===a?void 0:a.id);if(d&&f&&h)return Promise.resolve(!0);let m,_,D;s?(m=s.resolve,_=s.reject,D=s.promise):D=new Promise((I,W)=>{m=I,_=W});const g=++this.navigationId;let M;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(o=this.location.getState()),M=o&&o.\u0275routerPageId?o.\u0275routerPageId:i.replaceUrl||i.skipLocationChange?null!==(u=this.browserPageId)&&void 0!==u?u:0:(null!==(l=this.browserPageId)&&void 0!==l?l:0)+1):M=0,this.setTransition({id:g,targetPageId:M,source:r,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:n,extras:i,resolve:m,reject:_,promise:D,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),D.catch(I=>Promise.reject(I))}setBrowserUrl(n,r){const o=this.urlSerializer.serialize(n),i=Object.assign(Object.assign({},r.extras.state),this.generateNgRouterState(r.id,r.targetPageId));this.location.isCurrentPathEqualTo(o)||r.extras.replaceUrl?this.location.replaceState(o,"",i):this.location.go(o,"",i)}restoreHistory(n,r=!1){var o,i;if("computed"===this.canceledNavigationResolution){const s=this.currentPageId-n.targetPageId;"popstate"!==n.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==(null===(o=this.currentNavigation)||void 0===o?void 0:o.finalUrl)||0===s?this.currentUrlTree===(null===(i=this.currentNavigation)||void 0===i?void 0:i.finalUrl)&&0===s&&(this.resetState(n),this.browserUrlTree=n.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(s)}else"replace"===this.canceledNavigationResolution&&(r&&this.resetState(n),this.resetUrlToCurrentUrlTree())}resetState(n){this.routerState=n.currentRouterState,this.currentUrlTree=n.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(n,r){const o=new z_(n.id,this.serializeUrl(n.extractedUrl),r);this.triggerEvent(o),n.resolve(!1)}generateNgRouterState(n,r){return"computed"===this.canceledNavigationResolution?{navigationId:n,\u0275routerPageId:r}:{navigationId:n}}}return t.\u0275fac=function(n){Ml()},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();function Ia(t){return"imperative"!==t}let nr=(()=>{class t{constructor(n,r,o){this.router=n,this.route=r,this.locationStrategy=o,this.commands=null,this.href=null,this.onChanges=new nn,this.subscription=n.events.subscribe(i=>{i instanceof mi&&this.updateTargetUrlAndHref()})}set routerLink(n){this.commands=null!=n?Array.isArray(n)?n:[n]:null}ngOnChanges(n){this.updateTargetUrlAndHref(),this.onChanges.next(this)}ngOnDestroy(){this.subscription.unsubscribe()}onClick(n,r,o,i,s){if(0!==n||r||o||i||s||"string"==typeof this.target&&"_self"!=this.target||null===this.urlTree)return!0;const a={skipLocationChange:ao(this.skipLocationChange),replaceUrl:ao(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,a),!1}updateTargetUrlAndHref(){this.href=null!==this.urlTree?this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:ao(this.preserveFragment)})}}return t.\u0275fac=function(n){return new(n||t)(y(lt),y(Vn),y(Xr))},t.\u0275dir=N({type:t,selectors:[["a","routerLink",""],["area","routerLink",""]],hostVars:2,hostBindings:function(n,r){1&n&&Ce("click",function(i){return r.onClick(i.button,i.ctrlKey,i.shiftKey,i.altKey,i.metaKey)}),2&n&&Wt("target",r.target)("href",r.href,Tu)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo",routerLink:"routerLink"},features:[tt]}),t})();function ao(t){return""===t||!!t}class LD{}class jD{preload(e,n){return V(null)}}let BD=(()=>{class t{constructor(n,r,o,i){this.router=n,this.injector=o,this.preloadingStrategy=i,this.loader=new kD(o,r,u=>n.triggerEvent(new q_(u)),u=>n.triggerEvent(new W_(u)))}setUpPreloading(){this.subscription=this.router.events.pipe(Kn(n=>n instanceof mi),no(()=>this.preload())).subscribe(()=>{})}preload(){const n=this.injector.get(fn);return this.processRoutes(n,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(n,r){const o=[];for(const i of r)if(i.loadChildren&&!i.canLoad&&i._loadedConfig){const s=i._loadedConfig;o.push(this.processRoutes(s.module,s.routes))}else i.loadChildren&&!i.canLoad?o.push(this.preloadConfig(n,i)):i.children&&o.push(this.processRoutes(n,i.children));return Oe(o).pipe(co(),Z(i=>{}))}preloadConfig(n,r){return this.preloadingStrategy.preload(r,()=>(r._loadedConfig?V(r._loadedConfig):this.loader.load(n.injector,r)).pipe(Ne(i=>(r._loadedConfig=i,this.processRoutes(i.module,i.routes)))))}}return t.\u0275fac=function(n){return new(n||t)(S(lt),S(Vs),S(Re),S(LD))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})(),Hd=(()=>{class t{constructor(n,r,o={}){this.router=n,this.viewportScroller=r,this.options=o,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},o.scrollPositionRestoration=o.scrollPositionRestoration||"disabled",o.anchorScrolling=o.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(n=>{n instanceof wd?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof mi&&(this.lastId=n.id,this.scheduleScrollEvent(n,this.router.parseUrl(n.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(n=>{n instanceof J_&&(n.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(n.position):n.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(n.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(n,r){this.router.triggerEvent(new J_(n,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return t.\u0275fac=function(n){Ml()},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();const rr=new B("ROUTER_CONFIGURATION"),HD=new B("ROUTER_FORROOT_GUARD"),jO=[Dc,{provide:oD,useClass:iD},{provide:lt,useFactory:function GO(t,e,n,r,o,i,s={},a,u){const l=new lt(null,t,e,n,r,o,K_(i));return a&&(l.urlHandlingStrategy=a),u&&(l.routeReuseStrategy=u),function zO(t,e){t.errorHandler&&(e.errorHandler=t.errorHandler),t.malformedUriErrorHandler&&(e.malformedUriErrorHandler=t.malformedUriErrorHandler),t.onSameUrlNavigation&&(e.onSameUrlNavigation=t.onSameUrlNavigation),t.paramsInheritanceStrategy&&(e.paramsInheritanceStrategy=t.paramsInheritanceStrategy),t.relativeLinkResolution&&(e.relativeLinkResolution=t.relativeLinkResolution),t.urlUpdateStrategy&&(e.urlUpdateStrategy=t.urlUpdateStrategy),t.canceledNavigationResolution&&(e.canceledNavigationResolution=t.canceledNavigationResolution)}(s,l),s.enableTracing&&l.events.subscribe(c=>{var d,f;null===(d=console.group)||void 0===d||d.call(console,`Router Event: ${c.constructor.name}`),console.log(c.toString()),console.log(c),null===(f=console.groupEnd)||void 0===f||f.call(console)}),l},deps:[oD,wi,Dc,Re,Vs,jd,rr,[class TO{},new Ut],[class SO{},new Ut]]},wi,{provide:Vn,useFactory:function qO(t){return t.routerState.root},deps:[lt]},BD,jD,class LO{preload(e,n){return n().pipe(Yn(()=>V(null)))}},{provide:rr,useValue:{enableTracing:!1}}];function BO(){return new Sy("Router",lt)}let UD=(()=>{class t{constructor(n,r){}static forRoot(n,r){return{ngModule:t,providers:[jO,$D(n),{provide:HD,useFactory:$O,deps:[[lt,new Ut,new Cr]]},{provide:rr,useValue:r||{}},{provide:Xr,useFactory:UO,deps:[Qn,[new Io(_c),new Ut],rr]},{provide:Hd,useFactory:HO,deps:[lt,Dx,rr]},{provide:LD,useExisting:r&&r.preloadingStrategy?r.preloadingStrategy:jD},{provide:Sy,multi:!0,useFactory:BO},[Ud,{provide:Ps,multi:!0,useFactory:WO,deps:[Ud]},{provide:GD,useFactory:JO,deps:[Ud]},{provide:_y,multi:!0,useExisting:GD}]]}}static forChild(n){return{ngModule:t,providers:[$D(n)]}}}return t.\u0275fac=function(n){return new(n||t)(S(HD,8),S(lt,8))},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({}),t})();function HO(t,e,n){return n.scrollOffset&&e.setOffset(n.scrollOffset),new Hd(t,e,n)}function UO(t,e,n={}){return n.useHash?new nT(t,e):new Jy(t,e)}function $O(t){return"guarded"}function $D(t){return[{provide:Rb,multi:!0,useValue:t},{provide:jd,multi:!0,useValue:t}]}let Ud=(()=>{class t{constructor(n){this.injector=n,this.initNavigation=!1,this.destroyed=!1,this.resultOfPreactivationDone=new nn}appInitializer(){return this.injector.get(XI,Promise.resolve(null)).then(()=>{if(this.destroyed)return Promise.resolve(!0);let r=null;const o=new Promise(a=>r=a),i=this.injector.get(lt),s=this.injector.get(rr);return"disabled"===s.initialNavigation?(i.setUpLocationChangeListener(),r(!0)):"enabled"===s.initialNavigation||"enabledBlocking"===s.initialNavigation?(i.hooks.afterPreactivation=()=>this.initNavigation?V(null):(this.initNavigation=!0,r(!0),this.resultOfPreactivationDone),i.initialNavigation()):r(!0),o})}bootstrapListener(n){const r=this.injector.get(rr),o=this.injector.get(BD),i=this.injector.get(Hd),s=this.injector.get(lt),a=this.injector.get(ei);n===a.components[0]&&(("enabledNonBlocking"===r.initialNavigation||void 0===r.initialNavigation)&&s.initialNavigation(),o.setUpPreloading(),i.init(),s.resetRootComponentType(a.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}ngOnDestroy(){this.destroyed=!0}}return t.\u0275fac=function(n){return new(n||t)(S(Re))},t.\u0275prov=P({token:t,factory:t.\u0275fac}),t})();function WO(t){return t.appInitializer.bind(t)}function JO(t){return t.bootstrapListener.bind(t)}const GD=new B("Router Initializer");let ZO=(()=>{class t{constructor(n){this.httpClient=n}GetEngineers(){return this.httpClient.get("http://localhost:63235/engineer")}}return t.\u0275fac=function(n){return new(n||t)(S(fa))},t.\u0275prov=P({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),$d=(()=>{class t{constructor(n){this.httpClient=n}GetCustomers(){return this.httpClient.get("http://localhost:63235/customer")}GetCustomer(n){return this.httpClient.get(`http://localhost:63235/customer/${n}`)}CreateCustomer(n){return this.httpClient.post("http://localhost:63235/customer",n).toPromise()}}return t.\u0275fac=function(n){return new(n||t)(S(fa))},t.\u0275prov=P({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),zD=(()=>{class t{constructor(n){this.httpClient=n}GetJobs(){return this.httpClient.get("http://localhost:63235/job")}GetJob(n){return this.httpClient.get(`http://localhost:63235/job/${n}`)}CreateJob(n){return this.httpClient.post("http://localhost:63235/job",n).toPromise()}}return t.\u0275fac=function(n){return new(n||t)(S(fa))},t.\u0275prov=P({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),qD=(()=>{class t{transform(n,r="Unknown"){return null==n?r:n}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275pipe=He({name:"nullWithDefault",type:t,pure:!0}),t})();function KO(t,e){if(1&t&&(w(0,"option"),T(1),E()),2&t){const n=e.$implicit;H(1),Kt(n)}}function YO(t,e){1&t&&(w(0,"small"),T(1,"Please select an engineer"),E())}function XO(t,e){1&t&&(w(0,"small"),T(1,"Please select a valid date"),E())}function eP(t,e){if(1&t&&(w(0,"option",17),T(1),E()),2&t){const n=e.$implicit;ne("ngValue",n.customerId),H(1),Kt(n.customer)}}function tP(t,e){1&t&&(w(0,"small"),T(1,"Please select a customer"),E())}const nP=function(t){return["/job",t]};function rP(t,e){if(1&t&&(w(0,"tr"),w(1,"td"),T(2),E(),w(3,"td"),T(4),Qr(5,"date"),E(),w(6,"td"),T(7),Qr(8,"nullWithDefault"),E(),w(9,"td"),w(10,"a",18),T(11,"Open"),E(),E(),E()),2&t){const n=e.$implicit;H(2),Kt(n.engineer),H(2),Kt($l(5,4,n.when,"shortDate")),H(3),Kt(xs(8,7,n.custName)),H(3),ne("routerLink",Ul(9,nP,n.jobId))}}let oP=(()=>{class t{constructor(n,r,o){this.engineerService=n,this.customerService=r,this.jobService=o,this.engineers=[],this.customers=[],this.jobs=[],this.newJob={jobId:null,engineer:null,when:null,custName:null,custType:null,custID:null}}ngOnInit(){this.engineerService.GetEngineers().subscribe(n=>this.engineers=n),this.customerService.GetCustomers().subscribe(n=>this.customers=n),this.jobService.GetJobs().subscribe(n=>this.jobs=n)}createJob(n){n.invalid?alert("form is not valid"):this.jobService.CreateJob(this.newJob).then(()=>{this.jobService.GetJobs().subscribe(r=>this.jobs=r)}).catch(r=>{alert(r.error)})}}return t.\u0275fac=function(n){return new(n||t)(y(ZO),y($d),y(zD))},t.\u0275cmp=sn({type:t,selectors:[["app-job"]],decls:41,vars:12,consts:[[3,"ngSubmit"],["jobForm","ngForm"],["for","engineer"],["name","engineer","required","","ngModel","","placeholder","Please select",3,"ngModel","ngModelChange"],["engineer","ngModel"],["selected","",3,"ngValue"],[4,"ngFor","ngForOf"],[4,"ngIf"],["for","when"],["type","date","name","when","ngModel","","required","",3,"ngModel","ngModelChange"],["when","ngModel"],["for","customer"],["name","customer","required","","ngModel","","placeholder","Please select",3,"ngModel","ngModelChange"],["customer","ngModel"],[3,"ngValue",4,"ngFor","ngForOf"],["type","submit",3,"disabled"],["spacing","0"],[3,"ngValue"],[3,"routerLink"]],template:function(n,r){if(1&n){const o=Al();w(0,"h2"),T(1,"New job form"),E(),w(2,"form",0,1),Ce("ngSubmit",function(){ru(o);const s=Jt(3);return r.createJob(s)}),w(4,"label",2),T(5,"Engineer"),E(),w(6,"select",3,4),Ce("ngModelChange",function(s){return r.newJob.engineer=s}),w(8,"option",5),T(9,"Please select"),E(),Tt(10,KO,2,1,"option",6),E(),Tt(11,YO,2,0,"small",7),w(12,"label",8),T(13,"When"),E(),w(14,"input",9,10),Ce("ngModelChange",function(s){return r.newJob.when=s}),E(),Tt(16,XO,2,0,"small",7),w(17,"label",11),T(18,"Customers"),E(),w(19,"select",12,13),Ce("ngModelChange",function(s){return r.newJob.custID=s}),w(21,"option",5),T(22,"Please select"),E(),Tt(23,eP,2,2,"option",14),E(),Tt(24,tP,2,0,"small",7),w(25,"button",15),T(26,"Add Job"),E(),E(),w(27,"h2"),T(28,"Jobs list"),E(),w(29,"table",16),w(30,"thead"),w(31,"tr"),w(32,"th"),T(33,"Engineer"),E(),w(34,"th"),T(35,"When"),E(),w(36,"th"),T(37,"Customer"),E(),Ho(38,"th"),E(),E(),w(39,"tbody"),Tt(40,rP,12,11,"tr",6),E(),E()}if(2&n){const o=Jt(3),i=Jt(7),s=Jt(15),a=Jt(20);H(6),ne("ngModel",r.newJob.engineer),H(2),ne("ngValue",void 0),H(2),ne("ngForOf",r.engineers),H(1),ne("ngIf",i.invalid),H(3),ne("ngModel",r.newJob.when),H(2),ne("ngIf",s.invalid),H(3),ne("ngModel",r.newJob.custID),H(2),ne("ngValue",void 0),H(2),ne("ngForOf",r.customers),H(1),ne("ngIf",a.invalid),H(1),ne("disabled",o.invalid),H(15),ne("ngForOf",r.jobs)}},directives:[id,Wc,fi,hi,pi,qc,ca,ld,dd,Tc,xc,si,nr],pipes:[Fc,qD],styles:["h2[_ngcontent-%COMP%]{margin-left:15px}form[_ngcontent-%COMP%]{margin:15px}form[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:block}form[_ngcontent-%COMP%] input[_ngcontent-%COMP%], form[_ngcontent-%COMP%] select[_ngcontent-%COMP%], form[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:block;width:250px;margin-bottom:15px}form[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:red;margin-top:-12px;margin-bottom:15px;display:block}table[_ngcontent-%COMP%]{margin:15px;border-collapse:collapse}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border:1px solid #ddd;padding:5px;min-width:100px;text-align:left}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background-color:#ddd}"]}),t})(),WD=(()=>{class t{constructor(){}ngOnInit(){}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=sn({type:t,selectors:[["app-home"]],decls:2,vars:0,template:function(n,r){1&n&&(w(0,"h1"),T(1,"Welcome to ServiceSight"),E())},styles:[""]}),t})();const iP=function(){return["/jobs"]};let sP=(()=>{class t{constructor(n,r){this.route=n,this.jobService=r,this.jobId=n.snapshot.params.id}ngOnInit(){this.jobService.GetJob(this.jobId).subscribe(n=>this.job=n)}}return t.\u0275fac=function(n){return new(n||t)(y(Vn),y(zD))},t.\u0275cmp=sn({type:t,selectors:[["app-job-detail"]],decls:15,vars:14,consts:[[3,"routerLink"]],template:function(n,r){1&n&&(w(0,"p"),T(1),E(),w(2,"p"),T(3),E(),w(4,"p"),T(5),Qr(6,"date"),E(),w(7,"p"),T(8),Qr(9,"nullWithDefault"),E(),w(10,"p"),T(11),Qr(12,"nullWithDefault"),E(),w(13,"a",0),T(14,"Back"),E()),2&n&&(H(1),Rt("JobId: ",null==r.job?null:r.job.jobId,""),H(2),Rt("Engineer: ",null==r.job?null:r.job.engineer,""),H(2),Rt("When: ",$l(6,6,null==r.job?null:r.job.when,"shortDate"),""),H(3),Rt("Customer Name: ",xs(9,9,null==r.job?null:r.job.custName),""),H(3),Rt("Customer Type: ",xs(12,11,null==r.job?null:r.job.custType),""),H(2),ne("routerLink",Hl(13,iP)))},directives:[nr],pipes:[Fc,qD],styles:[""]}),t})();function aP(t,e){1&t&&(w(0,"small"),T(1,"Please make Name longer than 5 letters."),E())}function uP(t,e){if(1&t&&(w(0,"option"),T(1),E()),2&t){const n=e.$implicit;H(1),Kt(n)}}function lP(t,e){1&t&&(w(0,"small"),T(1,"Please select a Size"),E())}const cP=function(t){return["/customer",t]};function dP(t,e){if(1&t&&(w(0,"tr"),w(1,"td"),T(2),E(),w(3,"td"),T(4),E(),w(5,"td"),w(6,"a",13),T(7,"Open"),E(),E(),E()),2&t){const n=e.$implicit;H(2),Kt(n.customer),H(2),Kt(n.type),H(2),ne("routerLink",Ul(3,cP,n.customerId))}}let fP=(()=>{class t{constructor(n){this.customerService=n,this.sizes=["Large","Small"],this.customers=[],this.newCustomer={customerId:null,customer:null,type:null}}ngOnInit(){this.customerService.GetCustomers().subscribe(n=>this.customers=n)}createCustomer(n){n.invalid?alert("form is not valid"):this.customerService.CreateCustomer(this.newCustomer).then(()=>{this.customerService.GetCustomers().subscribe(r=>this.customers=r)})}}return t.\u0275fac=function(n){return new(n||t)(y($d))},t.\u0275cmp=sn({type:t,selectors:[["app-customer"]],decls:31,vars:8,consts:[[3,"ngSubmit"],["customerForm","ngForm"],["for","customer"],["name","customer","type","text","required","","minlength","5","ngModel","",3,"ngModel","ngModelChange"],["customer","ngModel"],[4,"ngIf"],["for","type"],["name","type","required","","ngModel","","placeholder","Please select",3,"ngModel","ngModelChange"],["type","ngModel"],["selected","",3,"ngValue"],[4,"ngFor","ngForOf"],["type","submit",3,"disabled"],["spacing","0"],[3,"routerLink"]],template:function(n,r){if(1&n){const o=Al();w(0,"h2"),T(1,"New Customer form"),E(),w(2,"form",0,1),Ce("ngSubmit",function(){ru(o);const s=Jt(3);return r.createCustomer(s)}),w(4,"label",2),T(5,"Customer"),E(),w(6,"input",3,4),Ce("ngModelChange",function(s){return r.newCustomer.customer=s}),E(),Tt(8,aP,2,0,"small",5),w(9,"label",6),T(10,"Size"),E(),w(11,"select",7,8),Ce("ngModelChange",function(s){return r.newCustomer.type=s}),w(13,"option",9),T(14,"Please select"),E(),Tt(15,uP,2,1,"option",10),E(),Tt(16,lP,2,0,"small",5),w(17,"button",11),T(18,"Add Customer"),E(),E(),w(19,"h2"),T(20,"Customer list"),E(),w(21,"table",12),w(22,"thead"),w(23,"tr"),w(24,"th"),T(25,"Customer"),E(),w(26,"th"),T(27,"Type"),E(),Ho(28,"th"),E(),E(),w(29,"tbody"),Tt(30,dP,8,5,"tr",10),E(),E()}if(2&n){const o=Jt(3),i=Jt(7),s=Jt(12);H(6),ne("ngModel",r.newCustomer.customer),H(2),ne("ngIf",i.invalid),H(3),ne("ngModel",r.newCustomer.type),H(2),ne("ngValue",void 0),H(2),ne("ngForOf",r.sizes),H(1),ne("ngIf",s.invalid),H(1),ne("disabled",o.invalid),H(13),ne("ngForOf",r.customers)}},directives:[id,Wc,fi,si,pi,fd,qc,ca,xc,hi,ld,dd,Tc,nr],styles:["h2[_ngcontent-%COMP%]{margin-left:15px}form[_ngcontent-%COMP%]{margin:15px}form[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:block}form[_ngcontent-%COMP%] input[_ngcontent-%COMP%], form[_ngcontent-%COMP%] select[_ngcontent-%COMP%], form[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:block;width:250px;margin-bottom:15px}form[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:red;margin-top:-12px;margin-bottom:15px;display:block}table[_ngcontent-%COMP%]{margin:15px;border-collapse:collapse}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border:1px solid #ddd;padding:5px;min-width:100px;text-align:left}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background-color:#ddd}"]}),t})();const hP=function(){return["/customers"]},pP=[{path:"",component:WD},{path:"home",component:WD},{path:"jobs",component:oP},{path:"job/:id",component:sP},{path:"customers",component:fP},{path:"customer/:id",component:(()=>{class t{constructor(n,r){this.route=n,this.customerService=r,this.customerId=n.snapshot.params.id}ngOnInit(){this.customerService.GetCustomer(this.customerId).subscribe(n=>this.customer=n)}}return t.\u0275fac=function(n){return new(n||t)(y(Vn),y($d))},t.\u0275cmp=sn({type:t,selectors:[["app-customer-detail"]],decls:8,vars:5,consts:[[3,"routerLink"]],template:function(n,r){1&n&&(w(0,"p"),T(1),E(),w(2,"p"),T(3),E(),w(4,"p"),T(5),E(),w(6,"a",0),T(7,"Back"),E()),2&n&&(H(1),Rt("CustomerId: ",null==r.customer?null:r.customer.customerId,""),H(2),Rt("Name: ",null==r.customer?null:r.customer.customer,""),H(2),Rt("Type: ",null==r.customer?null:r.customer.type,""),H(1),ne("routerLink",Hl(4,hP)))},directives:[nr],styles:[""]}),t})()}];let gP=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=ft({type:t}),t.\u0275inj=Xe({imports:[[UD.forRoot(pP)],UD]}),t})(),mP=(()=>{class t{constructor(){this.title="ui"}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=sn({type:t,selectors:[["app-root"]],decls:8,vars:0,consts:[["href","/home"],["href","/jobs"],["href","/customers"]],template:function(n,r){1&n&&(w(0,"nav"),w(1,"a",0),T(2,"home"),E(),w(3,"a",1),T(4,"jobs"),E(),w(5,"a",2),T(6,"customers"),E(),E(),Ho(7,"router-outlet"))},directives:[Pd],styles:["nav[_ngcontent-%COMP%]{background-color:#002987}nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#fff;padding:20px 50px;display:inline-block;text-decoration:none;text-transform:capitalize;border-right:1px solid green}"]}),t})(),yP=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=ft({type:t,bootstrap:[mP]}),t.\u0275inj=Xe({providers:[],imports:[[XN,Wx,gR,gP]]}),t})();zx().bootstrapModule(yP).catch(t=>console.error(t))}},jn=>{jn(jn.s=133)}]); \ No newline at end of file diff --git a/ui/dist/ui/polyfills.js b/ui/dist/ui/polyfills.js new file mode 100644 index 0000000..d8b940f --- /dev/null +++ b/ui/dist/ui/polyfills.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkui=self.webpackChunkui||[]).push([[429],{435:(Ee,Pe,Oe)=>{Oe(609)},609:(Ee,Pe,Oe)=>{var De;void 0!==(De=function(){!function(e){var r=e.performance;function t(h){r&&r.mark&&r.mark(h)}function n(h,a){r&&r.measure&&r.measure(h,a)}t("Zone");var u=e.__Zone_symbol_prefix||"__zone_symbol__";function c(h){return u+h}var l=!0===e[c("forceDuplicateZoneCheck")];if(e.Zone){if(l||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}var v=function(){function h(a,o){this._parent=a,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new d(this,this._parent&&this._parent._zoneDelegate,o)}return h.assertZonePatched=function(){if(e.Promise!==F.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(h,"root",{get:function(){for(var a=h.current;a.parent;)a=a.parent;return a},enumerable:!1,configurable:!0}),Object.defineProperty(h,"current",{get:function(){return A.zone},enumerable:!1,configurable:!0}),Object.defineProperty(h,"currentTask",{get:function(){return ie},enumerable:!1,configurable:!0}),h.__load_patch=function(a,o,i){if(void 0===i&&(i=!1),F.hasOwnProperty(a)){if(!i&&l)throw Error("Already loaded patch: "+a)}else if(!e["__Zone_disable_"+a]){var P="Zone:"+a;t(P),F[a]=o(e,h,O),n(P,P)}},Object.defineProperty(h.prototype,"parent",{get:function(){return this._parent},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"name",{get:function(){return this._name},enumerable:!1,configurable:!0}),h.prototype.get=function(a){var o=this.getZoneWith(a);if(o)return o._properties[a]},h.prototype.getZoneWith=function(a){for(var o=this;o;){if(o._properties.hasOwnProperty(a))return o;o=o._parent}return null},h.prototype.fork=function(a){if(!a)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,a)},h.prototype.wrap=function(a,o){if("function"!=typeof a)throw new Error("Expecting function got: "+a);var i=this._zoneDelegate.intercept(this,a,o),P=this;return function(){return P.runGuarded(i,this,arguments,o)}},h.prototype.run=function(a,o,i,P){A={parent:A,zone:this};try{return this._zoneDelegate.invoke(this,a,o,i,P)}finally{A=A.parent}},h.prototype.runGuarded=function(a,o,i,P){void 0===o&&(o=null),A={parent:A,zone:this};try{try{return this._zoneDelegate.invoke(this,a,o,i,P)}catch(z){if(this._zoneDelegate.handleError(this,z))throw z}}finally{A=A.parent}},h.prototype.runTask=function(a,o,i){if(a.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(a.zone||B).name+"; Execution: "+this.name+")");if(a.state!==j||a.type!==R&&a.type!==Y){var P=a.state!=k;P&&a._transitionTo(k,U),a.runCount++;var z=ie;ie=a,A={parent:A,zone:this};try{a.type==Y&&a.data&&!a.data.isPeriodic&&(a.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,a,o,i)}catch(se){if(this._zoneDelegate.handleError(this,se))throw se}}finally{a.state!==j&&a.state!==I&&(a.type==R||a.data&&a.data.isPeriodic?P&&a._transitionTo(U,k):(a.runCount=0,this._updateTaskCount(a,-1),P&&a._transitionTo(j,k,j))),A=A.parent,ie=z}}},h.prototype.scheduleTask=function(a){if(a.zone&&a.zone!==this)for(var o=this;o;){if(o===a.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+a.zone.name);o=o.parent}a._transitionTo(V,j);var i=[];a._zoneDelegates=i,a._zone=this;try{a=this._zoneDelegate.scheduleTask(this,a)}catch(P){throw a._transitionTo(I,V,j),this._zoneDelegate.handleError(this,P),P}return a._zoneDelegates===i&&this._updateTaskCount(a,1),a.state==V&&a._transitionTo(U,V),a},h.prototype.scheduleMicroTask=function(a,o,i,P){return this.scheduleTask(new p(ee,a,o,i,P,void 0))},h.prototype.scheduleMacroTask=function(a,o,i,P,z){return this.scheduleTask(new p(Y,a,o,i,P,z))},h.prototype.scheduleEventTask=function(a,o,i,P,z){return this.scheduleTask(new p(R,a,o,i,P,z))},h.prototype.cancelTask=function(a){if(a.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(a.zone||B).name+"; Execution: "+this.name+")");a._transitionTo($,U,k);try{this._zoneDelegate.cancelTask(this,a)}catch(o){throw a._transitionTo(I,$),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(a,-1),a._transitionTo(j,$),a.runCount=0,a},h.prototype._updateTaskCount=function(a,o){var i=a._zoneDelegates;-1==o&&(a._zoneDelegates=null);for(var P=0;P0,macroTask:i.macroTask>0,eventTask:i.eventTask>0,change:a})},h}(),p=function(){function h(a,o,i,P,z,se){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=a,this.source=o,this.data=P,this.scheduleFn=z,this.cancelFn=se,!i)throw new Error("callback is not defined");this.callback=i;var f=this;this.invoke=a===R&&P&&P.useG?h.invokeTask:function(){return h.invokeTask.call(e,f,this,arguments)}}return h.invokeTask=function(a,o,i){a||(a=this),ne++;try{return a.runCount++,a.zone.runTask(a,o,i)}finally{1==ne&&m(),ne--}},Object.defineProperty(h.prototype,"zone",{get:function(){return this._zone},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"state",{get:function(){return this._state},enumerable:!1,configurable:!0}),h.prototype.cancelScheduleRequest=function(){this._transitionTo(j,V)},h.prototype._transitionTo=function(a,o,i){if(this._state!==o&&this._state!==i)throw new Error(this.type+" '"+this.source+"': can not transition to '"+a+"', expecting state '"+o+"'"+(i?" or '"+i+"'":"")+", was '"+this._state+"'.");this._state=a,a==j&&(this._zoneDelegates=null)},h.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)},h.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}},h}(),y=c("setTimeout"),b=c("Promise"),w=c("then"),N=[],M=!1;function g(h){if(0===ne&&0===N.length)if(X||e[b]&&(X=e[b].resolve(0)),X){var a=X[w];a||(a=X.then),a.call(X,m)}else e[y](m,0);h&&N.push(h)}function m(){if(!M){for(M=!0;N.length;){var h=N;N=[];for(var a=0;a=0;t--)"function"==typeof e[t]&&(e[t]=ze(e[t],r+"_"+t));return e}function rr(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&void 0===e.set)}var tr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,Ne=!("nw"in J)&&void 0!==J.process&&"[object process]"==={}.toString.call(J.process),qe=!Ne&&!tr&&!(!Ze||!ye.HTMLElement),nr=void 0!==J.process&&"[object process]"==={}.toString.call(J.process)&&!tr&&!(!Ze||!ye.HTMLElement),Le={},or=function(e){if(e=e||J.event){var r=Le[e.type];r||(r=Le[e.type]=G("ON_PROPERTY"+e.type));var u,t=this||e.target||J,n=t[r];return qe&&t===ye&&"error"===e.type?!0===(u=n&&n.call(this,e.message,e.filename,e.lineno,e.colno,e.error))&&e.preventDefault():null!=(u=n&&n.apply(this,arguments))&&!u&&e.preventDefault(),u}};function ar(e,r,t){var n=we(e,r);if(!n&&t&&we(t,r)&&(n={enumerable:!0,configurable:!0}),n&&n.configurable){var c=G("on"+r+"patched");if(!e.hasOwnProperty(c)||!e[c]){delete n.writable,delete n.value;var l=n.get,v=n.set,T=r.substr(2),d=Le[T];d||(d=Le[T]=G("ON_PROPERTY"+T)),n.set=function(p){var y=this;!y&&e===J&&(y=J),y&&(y[d]&&y.removeEventListener(T,or),v&&v.apply(y,Sr),"function"==typeof p?(y[d]=p,y.addEventListener(T,or,!1)):y[d]=null)},n.get=function(){var p=this;if(!p&&e===J&&(p=J),!p)return null;var y=p[d];if(y)return y;if(l){var b=l&&l.call(this);if(b)return n.set.call(this,b),"function"==typeof p.removeAttribute&&p.removeAttribute(r),b}return null},xe(e,r,n),e[c]=!0}}}function ir(e,r,t){if(r)for(var n=0;n=0&&"function"==typeof v[T.cbIdx]?We(T.name,v[T.cbIdx],T,u):c.apply(l,v)}})}function he(e,r){e[G("OriginalDelegate")]=r}var sr=!1,Ye=!1;function Zr(){if(sr)return Ye;sr=!0;try{var e=ye.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(Ye=!0)}catch(r){}return Ye}Zone.__load_patch("ZoneAwarePromise",function(e,r,t){var n=Object.getOwnPropertyDescriptor,u=Object.defineProperty;var l=t.symbol,v=[],T=!0===e[l("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],d=l("Promise"),p=l("then");t.onUnhandledError=function(f){if(t.showUncaughtError()){var E=f&&f.rejection;E?console.error("Unhandled Promise rejection:",E instanceof Error?E.message:E,"; Zone:",f.zone.name,"; Task:",f.task&&f.task.source,"; Value:",E,E instanceof Error?E.stack:void 0):console.error(f)}},t.microtaskDrainDone=function(){for(var f=function(){var E=v.shift();try{E.zone.runGuarded(function(){throw E.throwOriginal?E.rejection:E})}catch(s){!function w(f){t.onUnhandledError(f);try{var E=r[b];"function"==typeof E&&E.call(this,f)}catch(s){}}(s)}};v.length;)f()};var b=l("unhandledPromiseRejectionHandler");function N(f){return f&&f.then}function M(f){return f}function X(f){return o.reject(f)}var g=l("state"),m=l("value"),B=l("finally"),j=l("parentPromiseValue"),V=l("parentPromiseState"),k=null,$=!0,I=!1;function Y(f,E){return function(s){try{A(f,E,s)}catch(_){A(f,!1,_)}}}var O=l("currentTaskTrace");function A(f,E,s){var _=function(){var f=!1;return function(s){return function(){f||(f=!0,s.apply(null,arguments))}}}();if(f===s)throw new TypeError("Promise resolved with itself");if(f[g]===k){var S=null;try{("object"==typeof s||"function"==typeof s)&&(S=s&&s.then)}catch(Z){return _(function(){A(f,!1,Z)})(),f}if(E!==I&&s instanceof o&&s.hasOwnProperty(g)&&s.hasOwnProperty(m)&&s[g]!==k)ne(s),A(f,s[g],s[m]);else if(E!==I&&"function"==typeof S)try{S.call(s,_(Y(f,E)),_(Y(f,!1)))}catch(Z){_(function(){A(f,!1,Z)})()}else{f[g]=E;var C=f[m];if(f[m]=s,f[B]===B&&E===$&&(f[g]=f[V],f[m]=f[j]),E===I&&s instanceof Error){var L=r.currentTask&&r.currentTask.data&&r.currentTask.data.__creationTrace__;L&&u(s,O,{configurable:!0,enumerable:!1,writable:!0,value:L})}for(var x=0;x1?new c(T,d):new c(T),w=e.ObjectGetOwnPropertyDescriptor(p,"onmessage");return w&&!1===w.configurable?(y=e.ObjectCreate(p),b=p,[n,u,"send","close"].forEach(function(N){y[N]=function(){var M=e.ArraySlice.call(arguments);if(N===n||N===u){var X=M.length>0?M[0]:void 0;if(X){var g=Zone.__symbol__("ON_PROPERTY"+X);p[g]=y[g]}}return p[N].apply(p,M)}})):y=p,e.patchOnProperties(y,["close","error","message","open"],b),y};var l=r.WebSocket;for(var v in c)l[v]=c[v]}(e,r),Zone[e.symbol("patchEvents")]=!0}}Zone.__load_patch("util",function(e,r,t){t.patchOnProperties=ir,t.patchMethod=ve,t.bindArguments=Xe,t.patchMacroTask=Cr;var n=r.__symbol__("BLACK_LISTED_EVENTS"),u=r.__symbol__("UNPATCHED_EVENTS");e[u]&&(e[n]=e[u]),e[n]&&(r[n]=r[u]=e[n]),t.patchEventPrototype=Mr,t.patchEventTarget=Lr,t.isIEOrEdge=Zr,t.ObjectDefineProperty=xe,t.ObjectGetOwnPropertyDescriptor=we,t.ObjectCreate=Pr,t.ArraySlice=Or,t.patchClass=Re,t.wrapWithCurrentZone=ze,t.filterProperties=_r,t.attachOriginToPatched=he,t._redefineProperty=Object.defineProperty,t.patchCallbacks=Ir,t.getGlobalObjects=function(){return{globalSources:ur,zoneSymbolEventNames:ae,eventNames:ge,isBrowser:qe,isMix:nr,isNode:Ne,TRUE_STR:fe,FALSE_STR:le,ZONE_SYMBOL_PREFIX:Se,ADD_EVENT_LISTENER_STR:Fe,REMOVE_EVENT_LISTENER_STR:Ge}}}),e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r=e.__Zone_symbol_prefix||"__zone_symbol__",e[function t(n){return r+n}("legacyPatch")]=function(){var n=e.Zone;n.__load_patch("defineProperty",function(u,c,l){l._redefineProperty=Yr,function qr(){Ie=Zone.__symbol__,Ae=Object[Ie("defineProperty")]=Object.defineProperty,pr=Object[Ie("getOwnPropertyDescriptor")]=Object.getOwnPropertyDescriptor,Er=Object.create,pe=Ie("unconfigurables"),Object.defineProperty=function(e,r,t){if(yr(e,r))throw new TypeError("Cannot assign to read only property '"+r+"' of "+e);var n=t.configurable;return"prototype"!==r&&(t=Qe(e,r,t)),mr(e,r,t,n)},Object.defineProperties=function(e,r){return Object.keys(r).forEach(function(t){Object.defineProperty(e,t,r[t])}),e},Object.create=function(e,r){return"object"==typeof r&&!Object.isFrozen(r)&&Object.keys(r).forEach(function(t){r[t]=Qe(e,t,r[t])}),Er(e,r)},Object.getOwnPropertyDescriptor=function(e,r){var t=pr(e,r);return t&&yr(e,r)&&(t.configurable=!1),t}}()}),n.__load_patch("registerElement",function(u,c,l){!function rt(e,r){var t=r.getGlobalObjects();(t.isBrowser||t.isMix)&&"registerElement"in e.document&&r.patchCallbacks(r,document,"Document","registerElement",["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"])}(u,l)}),n.__load_patch("EventTargetLegacy",function(u,c,l){(function Kr(e,r){var t=r.getGlobalObjects(),n=t.eventNames,u=t.globalSources,c=t.zoneSymbolEventNames,l=t.TRUE_STR,v=t.FALSE_STR,T=t.ZONE_SYMBOL_PREFIX,p="ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket".split(","),y="EventTarget",b=[],w=e.wtf,N="Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video".split(",");w?b=N.map(function(H){return"HTML"+H+"Element"}).concat(p):e[y]?b.push(y):b=p;for(var M=e.__Zone_disable_IE_check||!1,X=e.__Zone_enable_cross_context_check||!1,g=r.isIEOrEdge(),B="[object FunctionWrapper]",j="function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }",V={MSPointerCancel:"pointercancel",MSPointerDown:"pointerdown",MSPointerEnter:"pointerenter",MSPointerHover:"pointerhover",MSPointerLeave:"pointerleave",MSPointerMove:"pointermove",MSPointerOut:"pointerout",MSPointerOver:"pointerover",MSPointerUp:"pointerup"},U=0;U0){var h=R.invoke;R.invoke=function(){for(var a=O[r.__symbol__("loadfalse")],o=0;o{Ee(Ee.s=435)}]); \ No newline at end of file diff --git a/ui/dist/ui/runtime.js b/ui/dist/ui/runtime.js new file mode 100644 index 0000000..c51d3cc --- /dev/null +++ b/ui/dist/ui/runtime.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,_={},i={};function n(e){var a=i[e];if(void 0!==a)return a.exports;var r=i[e]={exports:{}};return _[e](r,r.exports,n),r.exports}n.m=_,e=[],n.O=(a,r,t,u)=>{if(!r){var o=1/0;for(f=0;f=u)&&Object.keys(n.O).every(h=>n.O[h](r[l]))?r.splice(l--,1):(s=!1,u0&&e[f-1][2]>u;f--)e[f]=e[f-1];e[f]=[r,t,u]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=t=>0===e[t];var a=(t,u)=>{var l,c,[f,o,s]=u,v=0;if(f.some(d=>0!==e[d])){for(l in o)n.o(o,l)&&(n.m[l]=o[l]);if(s)var b=s(n)}for(t&&t(u);v home jobs + customers - \ No newline at end of file + diff --git a/ui/src/app/app.module.ts b/ui/src/app/app.module.ts index 0d1f678..ef2beb7 100644 --- a/ui/src/app/app.module.ts +++ b/ui/src/app/app.module.ts @@ -8,13 +8,19 @@ import { AppComponent } from './app.component'; import { JobComponent } from './job/job.component'; import { HomeComponent } from './home/home.component'; import { JobDetailComponent } from './job-detail/job-detail.component'; +import { CustomerComponent } from './customer/customer.component'; +import { CustomerDetailComponent } from './customer-detail/customer-detail.component'; +import { NullWithDefaultPipe } from './null-with-default.pipe'; @NgModule({ declarations: [ AppComponent, JobComponent, HomeComponent, - JobDetailComponent + JobDetailComponent, + CustomerComponent, + CustomerDetailComponent, + NullWithDefaultPipe ], imports: [ FormsModule, diff --git a/ui/src/app/customer-detail/customer-detail.component.html b/ui/src/app/customer-detail/customer-detail.component.html new file mode 100644 index 0000000..a1bd150 --- /dev/null +++ b/ui/src/app/customer-detail/customer-detail.component.html @@ -0,0 +1,5 @@ +

CustomerId: {{customer?.customerId}}

+

Name: {{customer?.customer}}

+

Type: {{customer?.type}}

+ +Back diff --git a/ui/src/app/customer-detail/customer-detail.component.scss b/ui/src/app/customer-detail/customer-detail.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/ui/src/app/customer-detail/customer-detail.component.spec.ts b/ui/src/app/customer-detail/customer-detail.component.spec.ts new file mode 100644 index 0000000..8ae027e --- /dev/null +++ b/ui/src/app/customer-detail/customer-detail.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CustomerDetailComponent } from './customer-detail.component'; + +describe('CustomerDetailComponent', () => { + let component: CustomerDetailComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ CustomerDetailComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(CustomerDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/src/app/customer-detail/customer-detail.component.ts b/ui/src/app/customer-detail/customer-detail.component.ts new file mode 100644 index 0000000..68dccc7 --- /dev/null +++ b/ui/src/app/customer-detail/customer-detail.component.ts @@ -0,0 +1,27 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { CustomerService } from '../services/customer.service'; +import { CustomerModel } from '../models/customer.model'; + +@Component({ + selector: 'app-customer-detail', + templateUrl: './customer-detail.component.html', + styleUrls: ['./customer-detail.component.scss'] +}) +export class CustomerDetailComponent implements OnInit { + + private customerId: number; + + public customer: CustomerModel; + + constructor( + private route: ActivatedRoute, + private customerService: CustomerService) { + this.customerId = route.snapshot.params.id; + } + + ngOnInit() { + this.customerService.GetCustomer(this.customerId).subscribe(customer => this.customer = customer); + } + +} diff --git a/ui/src/app/customer/customer.component.html b/ui/src/app/customer/customer.component.html new file mode 100644 index 0000000..4cd1d5a --- /dev/null +++ b/ui/src/app/customer/customer.component.html @@ -0,0 +1,33 @@ +

New Customer form

+
+ + + Please make Name longer than 5 letters. + + + Please select a Size + +
+ +

Customer list

+ + + + + + + + + + + + + + + +
CustomerType
{{cust.customer}}{{cust.type}} + Open +
diff --git a/ui/src/app/customer/customer.component.scss b/ui/src/app/customer/customer.component.scss new file mode 100644 index 0000000..7e06a36 --- /dev/null +++ b/ui/src/app/customer/customer.component.scss @@ -0,0 +1,40 @@ +h2 { + margin-left: 15px; +} + +form { + margin: 15px; + + label { + display: block; + } + + input, select, button { + display: block; + width: 250px; + margin-bottom: 15px; + } + + small { + color: red; + margin-top: -12px; + margin-bottom: 15px; + display: block; + } +} + +table { + margin: 15px; + border-collapse: collapse; + + th, td { + border: 1px solid #ddd; + padding: 5px; + min-width: 100px; + text-align: left; + } + + th { + background-color: #ddd; + } +} diff --git a/ui/src/app/customer/customer.component.spec.ts b/ui/src/app/customer/customer.component.spec.ts new file mode 100644 index 0000000..c3f31f5 --- /dev/null +++ b/ui/src/app/customer/customer.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CustomerComponent } from './customer.component'; + +describe('CustomerComponent', () => { + let component: CustomerComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + TestBed.configureTestingModule({ + declarations: [ CustomerComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(CustomerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/src/app/customer/customer.component.ts b/ui/src/app/customer/customer.component.ts new file mode 100644 index 0000000..d9cabaa --- /dev/null +++ b/ui/src/app/customer/customer.component.ts @@ -0,0 +1,40 @@ +import { Component, OnInit } from '@angular/core'; +import { NgForm } from '@angular/forms'; +import { CustomerService } from '../services/customer.service'; +import { CustomerModel } from '../models/customer.model'; + +@Component({ + selector: 'app-customer', + templateUrl: './customer.component.html', + styleUrls: ['./customer.component.scss'] +}) +export class CustomerComponent implements OnInit { + + public sizes: string[] = ["Large", "Small"]; + + public customers: CustomerModel[] = []; + + public newCustomer: CustomerModel = { + customerId: null, + customer: null, + type: null + }; + + constructor( + private customerService: CustomerService) { } + + ngOnInit(): void { + this.customerService.GetCustomers().subscribe(customers => this.customers = customers); + } + + public createCustomer(form: NgForm): void { + if (form.invalid) { + alert('form is not valid'); + } + else { + this.customerService.CreateCustomer(this.newCustomer).then(() => { + this.customerService.GetCustomers().subscribe(customers => this.customers = customers); + }); + } + } +} diff --git a/ui/src/app/job-detail/job-detail.component.html b/ui/src/app/job-detail/job-detail.component.html index b92e031..216327b 100644 --- a/ui/src/app/job-detail/job-detail.component.html +++ b/ui/src/app/job-detail/job-detail.component.html @@ -1,5 +1,7 @@ -

JobId: {{job.jobId}}

-

Engineer: {{job.engineer}}

-

When: {{job.when | date:'shortDate'}}

+

JobId: {{job?.jobId}}

+

Engineer: {{job?.engineer}}

+

When: {{job?.when | date:'shortDate'}}

+

Customer Name: {{job?.custName | nullWithDefault }}

+

Customer Type: {{job?.custType | nullWithDefault }}

-Back \ No newline at end of file +Back diff --git a/ui/src/app/job/job.component.html b/ui/src/app/job/job.component.html index 085c531..ff274f7 100644 --- a/ui/src/app/job/job.component.html +++ b/ui/src/app/job/job.component.html @@ -9,6 +9,12 @@

New job form

Please select a valid date + + + Please select a customer @@ -18,6 +24,7 @@

Jobs list

Engineer When + Customer @@ -25,9 +32,10 @@

Jobs list

{{job.engineer}} {{job.when | date:'shortDate'}} + {{job.custName | nullWithDefault }} Open - \ No newline at end of file + diff --git a/ui/src/app/job/job.component.ts b/ui/src/app/job/job.component.ts index e9de751..8631701 100644 --- a/ui/src/app/job/job.component.ts +++ b/ui/src/app/job/job.component.ts @@ -3,6 +3,8 @@ import { NgForm } from '@angular/forms'; import { EngineerService } from '../services/engineer.service'; import { JobService } from '../services/job.service'; import { JobModel } from '../models/job.model'; +import { CustomerService } from '../services/customer.service'; +import { CustomerModel } from '../models/customer.model'; @Component({ selector: 'app-job', @@ -13,20 +15,27 @@ export class JobComponent implements OnInit { public engineers: string[] = []; + public customers: CustomerModel[] = []; + public jobs: JobModel[] = []; public newJob: JobModel = { jobId: null, engineer: null, - when: null + when: null, + custName: null, + custType: null, + custID: null, }; constructor( private engineerService: EngineerService, + private customerService: CustomerService, private jobService: JobService) { } ngOnInit() { this.engineerService.GetEngineers().subscribe(engineers => this.engineers = engineers); + this.customerService.GetCustomers().subscribe(customers => this.customers = customers); this.jobService.GetJobs().subscribe(jobs => this.jobs = jobs); } @@ -36,6 +45,8 @@ export class JobComponent implements OnInit { } else { this.jobService.CreateJob(this.newJob).then(() => { this.jobService.GetJobs().subscribe(jobs => this.jobs = jobs); + }).catch(error => { + alert(error.error); }); } } diff --git a/ui/src/app/models/customer.model.ts b/ui/src/app/models/customer.model.ts new file mode 100644 index 0000000..dc52762 --- /dev/null +++ b/ui/src/app/models/customer.model.ts @@ -0,0 +1,5 @@ +export interface CustomerModel { + customerId: number; + customer: string; + type: string;//Large, Small +} diff --git a/ui/src/app/models/job.model.ts b/ui/src/app/models/job.model.ts index 5c3342c..ed7c844 100644 --- a/ui/src/app/models/job.model.ts +++ b/ui/src/app/models/job.model.ts @@ -2,4 +2,7 @@ export interface JobModel { jobId: number; engineer: string; when: Date; + custName: string; + custType: string; + custID: number; } diff --git a/ui/src/app/null-with-default.pipe.spec.ts b/ui/src/app/null-with-default.pipe.spec.ts new file mode 100644 index 0000000..44760bf --- /dev/null +++ b/ui/src/app/null-with-default.pipe.spec.ts @@ -0,0 +1,8 @@ +import { NullWithDefaultPipe } from './null-with-default.pipe'; + +describe('NullWithDefaultPipe', () => { + it('create an instance', () => { + const pipe = new NullWithDefaultPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/ui/src/app/null-with-default.pipe.ts b/ui/src/app/null-with-default.pipe.ts new file mode 100644 index 0000000..75306af --- /dev/null +++ b/ui/src/app/null-with-default.pipe.ts @@ -0,0 +1,16 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'nullWithDefault' +}) +export class NullWithDefaultPipe implements PipeTransform { + + transform(value: any, defaultText: string = 'Unknown'): any { + if (typeof value === 'undefined' || value === null) { + return defaultText; + } + + return value; + } + +} diff --git a/ui/src/app/services/customer.service.spec.ts b/ui/src/app/services/customer.service.spec.ts new file mode 100644 index 0000000..ef2692f --- /dev/null +++ b/ui/src/app/services/customer.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { CustomerService } from './customer.service'; + +describe('CustomerService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: CustomerService = TestBed.get(CustomerService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/src/app/services/customer.service.ts b/ui/src/app/services/customer.service.ts new file mode 100644 index 0000000..a2fbf3a --- /dev/null +++ b/ui/src/app/services/customer.service.ts @@ -0,0 +1,24 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { CustomerModel } from '../models/customer.model'; + +@Injectable({ + providedIn: 'root' +}) +export class CustomerService { + + constructor(private httpClient: HttpClient) { } + + public GetCustomers(): Observable { + return this.httpClient.get('http://localhost:63235/customer'); + } + + public GetCustomer(customerId: number): Observable { + return this.httpClient.get(`http://localhost:63235/customer/${customerId}`); + } + + public CreateCustomer(customer: CustomerModel): Promise { + return this.httpClient.post('http://localhost:63235/customer', customer).toPromise(); + } +}