@idsoftsource/initial-process 0.0.4 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Injectable, Optional, Inject, EventEmitter, Output, Input, Directive, forwardRef, NgModule, Component, signal, Pipe, computed, effect, ElementRef, ViewChild } from '@angular/core';
3
- import * as i7 from '@angular/common';
3
+ import * as i1$1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i3 from '@angular/forms';
6
6
  import { NG_VALUE_ACCESSOR, COMPOSITION_BUFFER_MODE, Validators, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -9,7 +9,7 @@ import { RouterModule } from '@angular/router';
9
9
  import { map, of, tap, Subscription, switchMap, finalize, catchError, EMPTY, Subject, takeUntil } from 'rxjs';
10
10
  import * as i1 from '@angular/common/http';
11
11
  import { HttpClient, HttpParams, HttpHeaders, HttpErrorResponse } from '@angular/common/http';
12
- import * as i7$1 from 'ngx-bootstrap/modal';
12
+ import * as i7 from 'ngx-bootstrap/modal';
13
13
  import * as i9 from '@auth0/auth0-angular';
14
14
  import * as i6 from '@rangs/auth0-lib';
15
15
  import * as i10 from '@ng-select/ng-select';
@@ -610,6 +610,9 @@ class UserDetailService {
610
610
  updateMyProfile(model) {
611
611
  return this.http.post(`${this.baseUrl}/UpdateMyProfile`, model);
612
612
  }
613
+ AddUserIndustry(payload) {
614
+ return this.http.post(`${this.baseUrl}/AddUserIndustry`, payload);
615
+ }
613
616
  /* ==============================
614
617
  INITIAL SETUP
615
618
  ============================== */
@@ -911,6 +914,11 @@ class ProviderContractorSubCategoryService {
911
914
  params: this.buildParams(query)
912
915
  });
913
916
  }
917
+ get(query) {
918
+ return this.http.get(`${this.baseUrl}/GetContractorDetails`, {
919
+ params: this.buildParams(query),
920
+ });
921
+ }
914
922
  getUserAccounts(query) {
915
923
  return this.http.get(`${this.baseUrl}/GetUserAccounts`, {
916
924
  params: this.buildParams(query)
@@ -1176,11 +1184,11 @@ class TermsConditionsComponent {
1176
1184
  branding;
1177
1185
  PrivacyAndTerms;
1178
1186
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TermsConditionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1179
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: TermsConditionsComponent, isStandalone: false, selector: "app-terms-conditions", inputs: { title: "title", branding: "branding", PrivacyAndTerms: "PrivacyAndTerms" }, ngImport: i0, template: "<div class=\"privacy-policy-modal\">\r\n <!-- Header -->\r\n <div class=\"header\">\r\n <h1>Website Terms of Use</h1>\r\n </div>\r\n\r\n <!-- Logo and Address -->\r\n <div class=\"logo-section\">\r\n <img [src]=\"branding?.logo\" [alt]=\"branding?.displayName\" />\r\n\r\n <p class=\"address\">\r\n {{ PrivacyAndTerms?.address1 }}\r\n {{ PrivacyAndTerms?.city }}\r\n {{ PrivacyAndTerms?.state }}\r\n {{ PrivacyAndTerms?.country }} {{ PrivacyAndTerms?.zipCode }}\r\n\r\n </p>\r\n </div>\r\n</div>\r\n\r\n<div style=\"margin-left: 60px;margin-right: 60px;font-size: 13.5px;\">\r\n Last Modified: {{PrivacyAndTerms?.modifiedDate}}\r\n <br>\r\n <br>\r\n <div class=\"section-title\">1. Acceptance of the Terms of Use</div>\r\n These terms of use are entered into by and between You and {{PrivacyAndTerms?.companyName}}, LLC\r\n <br>\r\n (\"Company,\" \"we,\" or \"us\"). (<span class=\"h\">\"Company,\" \"we,\" or \"us\"</span>). The following terms and conditions,\r\n together with any documents\r\n they expressly incorporate by reference (collectively,<span class=\"h\"> \u201CTerms of Use\"</span>), govern your access to\r\n and use of {{PrivacyAndTerms?.websiteurl}}, including any content, functionality, and services offered on\r\n or through {{PrivacyAndTerms?.websiteurl}} (the <span class=\"h\">\"Website\"</span> ), whether as a guest or a registered\r\n user.\r\n <br>\r\n <br>\r\n Please read the Terms of Use carefully before you start to use the Website. <span class=\"h\">By using the\r\n Website or by clicking to accept or agree to the Terms of Use when this option is made\r\n available to you, you accept and agree to be bound and abide by these Terms of Use and\r\n our Privacy Policy, found at {{PrivacyAndTerms?.privacyPolicyUrl}}, incorporated herein by reference.</span>\r\n <br>\r\n If you do not want to agree to these Terms of Use or the Privacy Policy, you must not access or\r\n use the Website.\r\n <br>\r\n <br>\r\n This Website is offered and available to users who are 18 years of age or older and reside in the\r\n United States or any of its territories or possessions. By using this Website, you represent and\r\n warrant that you are of legal age to form a binding contract with the Company and meet all of the\r\n foregoing eligibility requirements. If you do not meet all of these requirements, you must not\r\n access or use the Website.\r\n <br>\r\n <br>\r\n <span class=\"h\">PLEASE BE AWARE THAT THE TERMS BELOW CONTAINS AN ARBITRATION\r\n <br>\r\n AGREEMENT THAT APPLIES TO ALL USERS LOCATED IN THE UNITED STATES.\r\n PLEASE READ IT CAREFULLY.\r\n <br>\r\n <br>\r\n THE ARBITRATION AGREEMENT PROVIDES, WITH LIMITED EXCEPTIONS,\r\n THAT YOU AND THE COMPANY: (1) WILL ONLY BE PERMITTED TO PURSUE\r\n DISPUTES AGAINST EACH OTHER OR OTHER USERS THROUGH BINDING,\r\n FINAL ARBITRATION; (2) WAIVE ALL RIGHTS TO BRING OR PARTICIPATE IN A\r\n DISPUTE ON A CLASS, COLLECTIVE, OR REPRESENTATIVE BASIS; AND (3)\r\n WAIVE ALL RIGHTS TO PURSUE DISPUTES IN A COURT OF LAW AND TO HAVE\r\n A JURY TRIAL.\r\n <br>\r\n <br>\r\n PLEASE BE AWARE THAT THE TERMS BELOW CONTAIN A LIMITATION OF\r\n LIABILITY AND WAIVER OF DAMAGES CLAUSE THAT LIMITS OUR LIABILITY.\r\n PLEASE READ IT CAREFULLY.</span>\r\n\r\n <br>\r\n <br>\r\n\r\n <div class=\"section-title\">2. Changes to the Terms of Use</div>\r\n We may revise and update these Terms of Use from time to time in our sole discretion. All\r\n changes are effective immediately when we post them and apply to all access to and use of the\r\n Website thereafter. However, any changes to the dispute resolution provisions set out in\r\n Governing Law and Jurisdiction will not apply to any disputes for which the parties have actual\r\n notice [on or] before the date the change is posted on the Website.\r\n <br>\r\n Your continued use of the Website following the posting of revised Terms of Use means that you\r\n accept and agree to the changes. You are expected to check this page each time you access this\r\n Website, so you are aware of any changes, as they are binding on you.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">3. Accessing the Website and Account Security</div>\r\n We reserve the right to withdraw or amend this Website, and any service or material we provide\r\n on the Website, in our sole discretion without notice. We will not be liable if for any reason all or\r\n any part of the Website is unavailable at any time or for any period. From time to time, we may\r\n restrict access to some parts of the Website, or the entire website, to users, including registered\r\n users.\r\n <br>\r\n <br>\r\n You are responsible for both:\r\n <div style=\"padding-left: 30px;\">\r\n\r\n \u2022 Making all arrangements necessary for you to have access to the Website.\r\n <br>\r\n \u2022 Ensuring that all persons who access the Website through your internet connection are\r\n aware of these Terms of Use and comply with them.\r\n <br>\r\n <br>\r\n </div>\r\n To access the Website or some of the resources it offers, you may be asked to provide certain\r\n registration details or other information. It is a condition of your use of the Website that all the\r\n information you provide on the Website is correct, current, and complete. You agree that all\r\n information you provide to register with this Website or otherwise, including, but not limited to,\r\n through the use of any interactive features on the Website, is governed by our Privacy Policy\r\n {{PrivacyAndTerms?.privacyPolicyUrl}}, and you consent to all actions we take with respect to your\r\n information consistent with our Privacy Policy.\r\n <br>\r\n <br>\r\n If you choose, or are provided with, a username, password, or any other piece of information as\r\n part of our security procedures, you must treat such information as confidential, and you must\r\n not disclose it to any other person or entity. You also acknowledge that your account is personal\r\n to you and agree not to provide any other person with access to this Website or portions of it\r\n using your username, password, or other security information. You agree to notify us\r\n immediately of any unauthorized access to or use of your username or password or any other\r\n breach of security. You also agree to ensure that you exit from your account at the end of each\r\n session. You should use caution when accessing your account from a public or shared computer\r\n so that others are not able to view or record your password or other personal information.\r\n <br>\r\n <br>\r\n We have the right to disable any username, password, or other identifier, whether chosen by you\r\n or provided by us, at any time in our sole discretion for any or no reason, including if, in our\r\n opinion, you have violated any provision of these Terms of Use.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">4. Intellectual Property Rights</div>\r\n The Website and its entire contents, features, and functionality (including but not limited to all\r\n information, software, text, displays, images, video, and audio, and the design, selection, and\r\n arrangement thereof) are owned by the Company, its licensors, or other providers of such\r\n material and are protected by United States and international copyright, trademark, patent, trade\r\n secret, and other intellectual property or proprietary rights laws.\r\n <br>\r\n <br>\r\n These Terms of Use permit you to use the Website for your personal, non-commercial use only,\r\n except as otherwise permitted. You must not reproduce, distribute, modify, create derivative\r\n works of, publicly display, perform, republish, download, store, or transmit any of the material\r\n on our Website, except as follows:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Your computer may temporarily store copies of such materials in RAM incidental to your\r\n accessing and viewing those materials.\r\n <br>\r\n \u2022 You may store files that are automatically cached by your Web browser for display\r\n enhancement purposes.\r\n <br>\r\n \u2022 You may print one copy of a reasonable number of pages of the Website for your own\r\n personal, non-commercial use and not for further reproduction, publication, or\r\n distribution.\r\n <br>\r\n \u2022 If we provide desktop, mobile, or other applications for download, you may download a\r\n single copy to your computer or mobile device solely for your own personal, non\u0002commercial use, provided you agree\r\n to be bound by our end user license agreement for\r\n such applications.\r\n <br>\r\n \u2022 If we provide social media features with certain content, you may take such actions as are\r\n enabled by such features.\r\n </div>\r\n <br>\r\n You must not:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Modify copies of any materials from this site.\r\n <br>\r\n \u2022 Use any illustrations, photographs, video or audio sequences, or any graphics separately\r\n from the accompanying text.\r\n <br>\r\n \u2022 Delete or alter any copyright, trademark, or other proprietary rights notices from copies\r\n of materials from this site.\r\n </div>\r\n <br>\r\n You must not access or use for any commercial purposes any part of the Website or any services\r\n or materials available through the Website.\r\n <br>\r\n <br>\r\n If you print, copy, modify, download, or otherwise use or provide any other person with access\r\n to any part of the Website in breach of the Terms of Use, your right to use the Website will stop\r\n immediately and you must, at our option, return or destroy any copies of the materials you have\r\n made. No right, title, or interest in or to the Website or any content on the Website is transferred\r\n to you, and all rights not expressly granted are reserved by the Company. Any use of the Website\r\n not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate\r\n copyright, trademark, and other laws.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">5. Trademarks</div>\r\n\r\n The Company name, the terms {{PrivacyAndTerms?.companyTrademarks}}, the Company logo,\r\n and all related names, logos, product and service names, designs, and slogans are trademarks of\r\n the Company or its affiliates or licensors. You must not use such marks without the prior written\r\n permission of the Company. All other names, logos, product and service names, designs, and\r\n slogans on this Website are the trademarks of their respective owners.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">6. Prohibited Uses</div>\r\n You may use the Website only for lawful purposes and in accordance with these Terms of Use.\r\n You agree not to use the Website:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 In any way that violates any applicable federal, state, local, or international law or\r\n regulation (including, without limitation, any laws regarding the export of data or\r\n software to and from the US or other countries).\r\n <br>\r\n \u2022 For the purpose of exploiting, harming, or attempting to exploit or harm minors in any\r\n way by exposing them to inappropriate content, asking for personally identifiable\r\n information, or otherwise.\r\n <br>\r\n \u2022 To send, knowingly receive, upload, download, use, or re-use any material that does not\r\n comply with the Content Standards set out in these Terms of Use.\r\n <br>\r\n \u2022 To transmit, or procure the sending of, any advertising or promotional material [without\r\n our prior written consent], including any \"junk mail,\" \"chain letter,\" \"spam,\" or any other\r\n similar solicitation.\r\n <br>\r\n\r\n\r\n \u2022 To impersonate or attempt to impersonate the Company, a Company employee, another\r\n user, or any other person or entity (including, without limitation, by using email\r\n addresses or screen names associated with any of the foregoing).\r\n <br>\r\n \u2022 To engage in any other conduct that restricts or inhibits anyone's use or enjoyment of the\r\n Website, or which, as determined by us, may harm the Company or users of the Website,\r\n or expose them to liability.\r\n <br>\r\n <br>\r\n\r\n Additionally, you agree not to:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Use the Website in any manner that could disable, overburden, damage, or impair the site\r\n or interfere with any other party's use of the Website, including their ability to engage in\r\n real time activities through the Website.\r\n <br>\r\n \u2022 Use any robot, spider, or other automatic device, process, or means to access the Website\r\n for any purpose, including monitoring or copying any of the material on the Website.\r\n <br>\r\n \u2022 Use any manual process to monitor or copy any of the material on the Website, or for any\r\n other purpose not expressly authorized in these Terms of Use, without our prior written\r\n consent.\r\n <br>\r\n \u2022 Use any device, software, or routine that interferes with the proper working of the\r\n Website.\r\n <br>\r\n \u2022 Introduce any viruses, Trojan horses, worms, logic bombs, or other material that is\r\n malicious or technologically harmful.\r\n <br>\r\n \u2022 Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of the\r\n Website, the server on which the Website is stored, or any server, computer, or database\r\n connected to the Website.\r\n <br>\r\n \u2022 Attack the Website via a denial-of-service attack or a distributed denial-of-service attack.\r\n <br>\r\n \u2022 Otherwise attempt to interfere with the proper working of the Website.\r\n </div>\r\n <br>\r\n\r\n <div class=\"section-title\">7. User Contributions</div>\r\n\r\n The Website may contain message boards, chat rooms, personal web pages or profiles, forums,\r\n bulletin boards, and other interactive features (collectively, <span class=\"h\">\"Interactive Services\"</span> ) that\r\n allow\r\n users to post, submit, publish, display, or transmit to other users or other persons (hereinafter,\r\n \"post\") content or materials (collectively, <span class=\"h\">\"User Contributions\"</span> ) on or through the Website.\r\n <br>\r\n All User Contributions must comply with the Content Standards set out in these Terms of Use.\r\n <br>\r\n Any User Contribution you post to the site will be considered non-confidential and non\u0002proprietary.\r\n <br>\r\n By providing any User Contribution on the Website, you grant us and our affiliates\r\n and service providers, and each of their and our respective licensees, successors, and assigns the\r\n right to use, reproduce, modify, perform, distribute, and otherwise disclose to third parties any\r\n such material.\r\n <br>\r\n You represent and warrant that:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 You own or control all rights in and to the User Contributions and have the right to grant\r\n the license granted above to us and our affiliates and service providers, and each of their\r\n and our respective licensees, successors, and assigns.\r\n <br>\r\n \u2022 All of your User Contributions do and will comply with these Terms of Use.\r\n </div>\r\n <br>\r\n You understand and acknowledge that you are responsible for any User Contributions you\r\n submit or contribute, and you, not the Company, have full responsibility for such content,\r\n including its legality, reliability, accuracy, and appropriateness.\r\n We are not responsible or liable to any third party for the content or accuracy of any User\r\n Contributions posted by you or any other user of the Website.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">8. Monitoring and Enforcement; Termination</div>\r\n We have the right to:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Remove or refuse to post any User Contributions for any or no reason in our sole\r\n discretion.\r\n <br>\r\n \u2022 Take any action with respect to any User Contribution that we deem necessary or\r\n appropriate in our sole discretion, including if we believe that such User Contribution\r\n violates the Terms of Use, including the Content Standards, infringes any intellectual\r\n property right or other right of any person or entity, threatens the personal safety of users\r\n of the Website or the public, or could create liability for the Company.\r\n <br>\r\n \u2022 Disclose your identity or other information about you to any third party who claims that\r\n material posted by you violates their rights, including their intellectual property rights or\r\n their right to privacy.\r\n <br>\r\n \u2022 Take appropriate legal action, including without limitation, referral to law enforcement,\r\n for any illegal or unauthorized use of the Website.\r\n <br>\r\n \u2022 Terminate or suspend your access to all or part of the Website for any or no reason,\r\n including without limitation, any violation of these Terms of Use.\r\n </div>\r\n <br>\r\n Without limiting the foregoing, we have the right to cooperate fully with any law enforcement\r\n authorities or court order requesting or directing us to disclose the identity or other information\r\n of anyone posting any materials on or through the Website.<span class=\"h\">YOU WAIVE AND HOLD\r\n HARMLESS THE COMPANY AND ITS AFFILIATES, LICENSEES, AND SERVICE\r\n PROVIDERS FROM ANY CLAIMS RESULTING FROM ANY ACTION TAKEN BY THE\r\n COMPANY OR ANY OF THE FOREGOING PARTIES DURING, OR TAKEN AS A\r\n CONSEQUENCE OF, INVESTIGATIONS BY EITHER THE COMPANY OR SUCH\r\n PARTIES OR LAW ENFORCEMENT AUTHORITIES.</span>\r\n <br>\r\n <br>\r\n However, we cannot/ review all material before it is posted on the Website and cannot ensure\r\n prompt removal of objectionable material after it has been posted. Accordingly, we assume no\r\n liability for any action or inaction regarding transmissions, communications, or content provided\r\n by any user or third party. We have no liability or responsibility to anyone for performance or\r\n nonperformance of the activities described in this section.\r\n <br><br>\r\n <div class=\"section-title\">9. Content Standards</div>\r\n\r\n These content standards apply to any and all User Contributions and use of Interactive Services.\r\n User Contributions must in their entirety comply with all applicable federal, state, local, and\r\n international laws and regulations. Without limiting the foregoing, User Contributions must not:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Contain any material that is defamatory, obscene, indecent, abusive, offensive, harassing,\r\n violent, hateful, inflammatory, or otherwise objectionable.\r\n <br>\r\n \u2022 Promote sexually explicit or pornographic material, violence, or discrimination based on\r\n race, sex, religion, nationality, disability, sexual orientation, or age.\r\n <br>\r\n \u2022 Infringe any patent, trademark, trade secret, copyright, or other intellectual property or\r\n other rights of any other person.\r\n <br>\r\n \u2022 Violate the legal rights (including the rights of publicity and privacy) of others or contain\r\n any material that could give rise to any civil or criminal liability under applicable laws or\r\n regulations or that otherwise may be in conflict with these Terms of Use and our Privacy\r\n Policy {{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n <br>\r\n \u2022 Be likely to deceive any person.\r\n <br>\r\n \u2022 Promote any illegal activity, or advocate, promote, or assist any unlawful act.\r\n <br>\r\n \u2022 Cause annoyance, inconvenience, or needless anxiety or be likely to upset, embarrass,\r\n alarm, or annoy any other person.\r\n <br>\r\n \u2022 Impersonate any person or misrepresent your identity or affiliation with any person or\r\n organization.\r\n <br>\r\n \u2022 Involve commercial activities or sales, such as contests, sweepstakes, and other sales\r\n promotions, barter, or advertising.\r\n <br>\r\n \u2022 Give the impression that they emanate from or are endorsed by us or any other person or\r\n entity, if this is not the case.\r\n </div>\r\n <br><br>\r\n <div class=\"section-title\">10. Copyright Infringement</div>\r\n\r\n\r\n If you believe that any User Contributions violate your copyright, please see our Copyright\r\n Policy {{PrivacyAndTerms?.copyrightPolicyLink}} for instructions on sending us a notice of copyright\r\n infringement. It is the policy of the Company to terminate the user accounts of repeat infringers.\r\n <br><br>\r\n <div class=\"section-title\">11. Reliance on Information Posted</div>\r\n\r\n\r\n The information presented on or through the Website is made available solely for general\r\n information purposes. We do not warrant the accuracy, completeness, or usefulness of this\r\n information. Any reliance you place on such information is strictly at your own risk. We\r\n disclaim all liability and responsibility arising from any reliance placed on such materials by you\r\n or any other visitor to the Website, or by anyone who may be informed of any of its contents.\r\n <br><br>\r\n This Website may include content provided by third parties, including materials provided by\r\n other users, bloggers, and third-party licensors, syndicators, aggregators, and/or reporting\r\n services. All statements and/or opinions expressed in these materials, and all articles and\r\n responses to questions and other content, other than the content provided by the Company, are\r\n solely the opinions and the responsibility of the person or entity providing those materials. These\r\n materials do not necessarily reflect the opinion of the Company. We are not responsible, or liable\r\n to you or any third party, for the content or accuracy of any materials provided by any third\r\n parties.\r\n <br><br>\r\n <div class=\"section-title\">12. Changes to the Website</div>\r\n\r\n We may update the content on this Website from time to time, but its content is not necessarily\r\n complete or up to date. Any of the material on the Website may be out of date at any given time,\r\n and we are under no obligation to update such material.\r\n <br><br>\r\n <div class=\"section-title\">13. Information About You and Your Visits to the Website</div>\r\n\r\n\r\n All information we collect on this Website is subject to our Privacy Policy {{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n By using the Website, you consent to all actions taken by us with respect to your\r\n information in compliance with the Privacy Policy.\r\n <br><br>\r\n <div class=\"section-title\">14. Online Purchases and Other Terms and Conditions</div>\r\n\r\n\r\n All purchases through our site or other transactions for the sale of goods, services, or information\r\n formed through the Website, or resulting from visits made by you, are governed by our Terms of\r\n Sale {{PrivacyAndTerms?.termsOfSaleLink}}, which are hereby incorporated into these Terms of Use.\r\n <br>\r\n\r\n Additional terms and conditions may also apply to specific portions, services, or features of the\r\n Website. All such additional terms and conditions are hereby incorporated by this reference into\r\n these Terms of Use.\r\n <br><br>\r\n <div class=\"section-title\">15. Linking to the Website and Social Media Features</div>\r\n\r\n\r\n You may link to our homepage, provided you do so in a way that is fair and legal and does not\r\n damage our reputation or take advantage of it, but you must not establish a link in such a way as\r\n to suggest any form of association, approval, or endorsement on our part without our express\r\n written consent.\r\n <br>\r\n This Website may provide certain social media features that enable you to:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Link from your own or certain third-party websites to certain content on this Website.\r\n <br>\r\n \u2022 Send emails or other communications with certain content, or links to certain content, on\r\n this Website.\r\n <br>\r\n \u2022 Cause limited portions of content on this Website to be displayed or appear to be\r\n displayed on your own or certain third-party websites.\r\n </div>\r\n <br>\r\n You may use these features solely as they are provided by us, and solely with respect to the\r\n content they are displayed with, and otherwise in accordance with any additional terms and\r\n conditions we provide with respect to such features. Subject to the foregoing, you must not:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Establish a link from any website that is not owned by you.\r\n <br>\r\n \u2022 Cause the Website or portions of it to be displayed on, or appear to be displayed by, any\r\n other site, for example, framing, deep linking, or in-line linking.\r\n <br>\r\n \u2022 Link to any part of the Website other than the homepage.\r\n <br>\r\n \u2022 Otherwise take any action with respect to the materials on this Website that is\r\n inconsistent with any other provision of these Terms of Use.\r\n </div>\r\n <br>\r\n\r\n The website from which you are linking, or on which you make certain content accessible, must\r\n comply in all respects with the Content Standards set out in these Terms of Use.\r\n <br>\r\n <br>\r\n You agree to cooperate with us in causing any unauthorized framing or linking immediately to\r\n stop. We reserve the right to withdraw linking permission without notice.\r\n <br>\r\n <br>\r\n We may disable all or any social media features and any links at any time without notice in our\r\n discretion.\r\n <br><br>\r\n <div class=\"section-title\">16. Links from the Website</div>\r\n\r\n If the Website contains links to other sites and resources provided by third parties, these links are\r\n provided for your convenience only. This includes links contained in advertisements, including\r\n banner advertisements and sponsored links. We have no control over the contents of those sites\r\n or resources and accept no responsibility for them or for any loss or damage that may arise from\r\n your use of them. If you decide to access any of the third-party websites linked to this Website,\r\n you do so entirely at your own risk and subject to the terms and conditions of use for such\r\n websites.\r\n <br><br>\r\n <div class=\"section-title\">17. Geographic Restrictions</div>\r\n\r\n\r\n The owner of the Website is based in the State of {{PrivacyAndTerms?.state}} in the United States. We provide this\r\n Website for use only by persons located in the United States. We make no claims that the\r\n Website or any of its content is accessible or appropriate outside of the United States. Access to\r\n the Website may not be legal by certain people or in certain countries. If you access the Website\r\n from outside the United States, you do so on your own initiative and are responsible for\r\n compliance with local laws.\r\n <br><br>\r\n <div class=\"section-title\">18. Disclaimer of Warranties</div>\r\n\r\n\r\n You understand that we cannot and do not guarantee or warrant that files available for\r\n downloading from the internet or the Website will be free of viruses or other destructive code.\r\n You are responsible for implementing sufficient procedures and checkpoints to satisfy your\r\n particular requirements for anti-virus protection and accuracy of data input and output, and for\r\n maintaining a means external to our site for any reconstruction of any lost data.\r\n <br>\r\n <span class=\"h\">TO THE FULLEST EXTENT PROVIDED BY LAW, WE WILL NOT BE LIABLE FOR ANY LOSS\r\n OR DAMAGE CAUSED BY A DISTRIBUTED DENIAL-OF-SERVICE ATTACK, VIRUSES,\r\n OR OTHER TECHNOLOGICALLY HARMFUL MATERIAL THAT MAY INFECT YOUR\r\n COMPUTER EQUIPMENT, COMPUTER PROGRAMS, DATA, OR OTHER\r\n PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITE OR ANY SERVICES\r\n OR ITEMS OBTAINED THROUGH THE WEBSITE OR TO YOUR DOWNLOADING OF\r\n ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITE LINKED TO IT.\r\n <br>\r\n <br>\r\n YOUR USE OF THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS\r\n OBTAINED THROUGH THE WEBSITE IS AT YOUR OWN RISK.\r\n <br>\r\n THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE\r\n ARE PROVIDED ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS, WITHOUT ANY\r\n WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE\r\n COMPANY NOR ANY PERSON ASSOCIATED WITH THE COMPANY MAKES ANY\r\n WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS,\r\n SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE\r\n WEBSITE.\r\n <br>\r\n <br>\r\n WITHOUT LIMITING THE FOREGOING, NEITHER THE COMPANY NOR\r\n ANYONE ASSOCIATED WITH THE COMPANY REPRESENTS OR WARRANTS THAT\r\n THE WEBSITE, ITS CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH\r\n THE WEBSITE WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR\r\n UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE\r\n SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL\r\n COMPONENTS, OR THAT THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED\r\n THROUGH THE WEBSITE WILL OTHERWISE MEET YOUR NEEDS OR\r\n EXPECTATIONS.\r\n <br>\r\n <br>\r\n TO THE FULLEST EXTENT PROVIDED BY LAW, THE COMPANY HEREBY\r\n DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED,\r\n STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY\r\n WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR\r\n PARTICULAR PURPOSE.\r\n <br>\r\n <br>\r\n THE FOREGOING DOES NOT AFFECT ANY WARRANTIES THAT CANNOT BE\r\n EXCLUDED OR LIMITED UNDER APPLICABLE LAW.</span>\r\n\r\n <br><br>\r\n <div class=\"section-title\">19. Limitation on Liability</div>\r\n\r\n <span class=\"h\">\r\n TO THE FULLEST EXTENT PROVIDED BY LAW, IN NO EVENT WILL THE COMPANY,\r\n ITS AFFILIATES, OR THEIR LICENSORS, SERVICE PROVIDERS, EMPLOYEES,\r\n AGENTS, OFFICERS, OR DIRECTORS BE LIABLE FOR DAMAGES OF ANY KIND,\r\n UNDER ANY LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH YOUR\r\n USE, OR INABILITY TO USE, THE WEBSITE, ANY WEBSITES LINKED TO IT, ANY\r\n CONTENT ON THE WEBSITE OR SUCH OTHER WEBSITES, INCLUDING ANY DIRECT,\r\n INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES,\r\n INCLUDING BUT NOT LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING,\r\n EMOTIONAL DISTRESS, LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS\r\n OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA,\r\n AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF\r\n CONTRACT, OR OTHERWISE, EVEN IF FORESEEABLE.\r\n <br>\r\n <br>\r\n THE FOREGOING DOES NOT AFFECT ANY LIABILITY THAT CANNOT BE\r\n EXCLUDED OR LIMITED UNDER APPLICABLE LAW.</span>\r\n <br><br>\r\n <div class=\"section-title\">20. Indemnification</div>\r\n\r\n\r\n You agree to defend, indemnify, and hold harmless the Company, its affiliates, licensors, and\r\n service providers, and its and their respective officers, directors, employees, contractors, agents,\r\n licensors, suppliers, successors, and assigns from and against any claims, liabilities, damages,\r\n judgments, awards, losses, costs, expenses, or fees (including reasonable attorneys' fees) arising\r\n out of or relating to your violation of these Terms of Use or your use of the Website, including,\r\n but not limited to, your User Contributions, any use of the Website's content, services, and\r\n products other than as expressly authorized in these Terms of Use, or your use of any\r\n information obtained from the Website.\r\n <br><br>\r\n <div class=\"section-title\">21. Governing Law and Jurisdiction</div>\r\n\r\n\r\n All matters relating to the Website and these Terms of Use, and any dispute or claim arising\r\n therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be\r\n governed by and construed in accordance with the internal laws of the State of Florida without\r\n giving effect to any choice or conflict of law provision or rule.\r\n <br>\r\n <br>\r\n Any legal suit, action, or proceeding arising out of, or related to, these Terms of Use or the\r\n Website shall be instituted exclusively in the federal courts of the United States or the courts of\r\n the State of Florida, in each case located in the City of Jacksonville and County of Duval. You\r\n waive any and all objections to the exercise of jurisdiction over you by such courts and to venue\r\n in such courts.\r\n <br><br>\r\n <div class=\"section-title\">22. Arbitration</div>\r\n\r\n\r\n At Company's sole discretion, it may require You to submit any disputes arising from these\r\n Terms of Use or use of the Website, including disputes arising from or concerning their\r\n interpretation, violation, invalidity, non-performance, or termination, to final and binding\r\n arbitration under the Rules of Arbitration of the American Arbitration Association applying\r\n FLORIDA.\r\n <br><br>\r\n <div class=\"section-title\">23. Limitation on Time to File Claims</div>\r\n <span class=\"h\">ANY CAUSE OF ACTION OR CLAIM YOU MAY HAVE ARISING OUT OF OR\r\n RELATING TO THESE TERMS OF USE OR THE WEBSITE MUST BE COMMENCED\r\n WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES; OTHERWISE,\r\n SUCH CAUSE OF ACTION OR CLAIM IS PERMANENTLY BARRED.</span>\r\n\r\n\r\n <br><br>\r\n <div class=\"section-title\">24. Waiver and Severability</div>\r\n\r\n\r\n No waiver by the Company of any term or condition set out in these Terms of Use shall be\r\n deemed a further or continuing waiver of such term or condition or a waiver of any other term or\r\n condition, and any failure of the Company to assert a right or provision under these Terms of Use\r\n shall not constitute a waiver of such right or provision.\r\n <br>\r\n <br>\r\n If any provision of these Terms of Use is held by a court or other tribunal of competent\r\n jurisdiction to be invalid, illegal, or unenforceable for any reason, such provision shall be\r\n eliminated or limited to the minimum extent such that the remaining provisions of the Terms of\r\n Use will continue in full force and effect.\r\n <br><br>\r\n <div class=\"section-title\">25. Entire Agreement</div>\r\n The Terms of Use and everything incorporated herein constitute the sole and entire agreement\r\n between you and {{PrivacyAndTerms?.companyName}} regarding the Website and supersede all prior and\r\n contemporaneous understandings, agreements, representations, and warranties, both written and\r\n oral, regarding the Website.\r\n <br><br>\r\n <div class=\"section-title\">26. Your Comments and Concerns</div>\r\n This website is operated by {{PrivacyAndTerms?.companyName}} {{PrivacyAndTerms?.address1}}.\r\n <br>\r\n <br>\r\n All notices of copyright infringement claims should be sent to the copyright agent designated in\r\n our Copyright Policy {{PrivacyAndTerms?.privacyPolicyUrl}} in the manner and by the means set\r\n out therein.\r\n <br>\r\n <br>\r\n All other feedback, comments, requests for technical support, and other communications relating\r\n to the Website should be directed to: {{PrivacyAndTerms?.email}}\r\n </div>\r\n <div class=\"content\">\r\n <p style=\"font-size: 12px;\">\r\n \u00A92025 {{PrivacyAndTerms?.companyName}}.<br>\r\n Proprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}} approved customers\r\n only.<br>\r\n Duplication or alteration is strictly prohibited without prior written consent.\r\n </p>\r\n </div>", styles: [".privacy-policy-modal{background:#fff;padding:30px 20px;max-width:650px;margin:auto;font-family:Arial,sans-serif;display:flex;flex-direction:column;align-items:center}.privacy-policy-modal .header{text-align:center;margin-bottom:40px}.privacy-policy-modal .header h1{font-size:26px;font-weight:700;margin:0}.privacy-policy-modal .logo-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:40px;width:100%;overflow:visible;min-height:100px}.privacy-policy-modal .logo-section img{display:block;max-width:180px;height:auto;margin-bottom:15px;position:relative;z-index:2}.privacy-policy-modal .logo-section .address{font-size:14px;line-height:1.6;margin-bottom:10px}.privacy-policy-modal .logo-section .address a{color:#007bff;text-decoration:none}.privacy-policy-modal .logo-section .address a:hover{text-decoration:underline}.privacy-policy-modal .logo-section .policy-title{font-weight:700;font-size:16px;margin-top:5px}.privacy-policy-modal .modal-footer{width:100%;display:flex;justify-content:center}.privacy-policy-modal .modal-footer .btn{padding:8px 25px;font-size:12px}.section-title{color:#000;text-decoration:underline;font-weight:700}.content{font-size:14px;line-height:1.7;text-align:center;margin-bottom:40px;margin-top:80px}.content .last-modified{margin-top:20px;font-size:12px;color:gray}.h{color:#000;font-weight:700}\n"] });
1187
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: TermsConditionsComponent, isStandalone: false, selector: "app-terms-conditions", inputs: { title: "title", branding: "branding", PrivacyAndTerms: "PrivacyAndTerms" }, ngImport: i0, template: "<div class=\"privacy-policy-modal\">\r\n <!-- Header -->\r\n <div class=\"header\">\r\n <h1>Website Terms of Use</h1>\r\n </div>\r\n\r\n <!-- Logo and Address -->\r\n <div class=\"logo-section\">\r\n <img [src]=\"branding?.logo\" [alt]=\"branding?.displayName\" />\r\n\r\n <p class=\"address\">\r\n {{ PrivacyAndTerms?.address1 }}\r\n {{ PrivacyAndTerms?.city }}\r\n {{ PrivacyAndTerms?.state }}\r\n {{ PrivacyAndTerms?.country }} {{ PrivacyAndTerms?.zipCode }}\r\n\r\n </p>\r\n </div>\r\n</div>\r\n\r\n<div style=\"margin-left: 10px;margin-right: 0px;font-size: 13.5px;\">\r\n Last Modified: {{PrivacyAndTerms?.modifiedDate}}\r\n <br>\r\n <br>\r\n <div class=\"section-title\">1. Acceptance of the Terms of Use</div>\r\n These terms of use are entered into by and between You and {{PrivacyAndTerms?.companyName}}, LLC\r\n <br>\r\n (\"Company,\" \"we,\" or \"us\"). (<span class=\"h\">\"Company,\" \"we,\" or \"us\"</span>). The following terms and conditions,\r\n together with any documents\r\n they expressly incorporate by reference (collectively,<span class=\"h\"> \u201CTerms of Use\"</span>), govern your access to\r\n and use of {{PrivacyAndTerms?.websiteurl}}, including any content, functionality, and services offered on\r\n or through {{PrivacyAndTerms?.websiteurl}} (the <span class=\"h\">\"Website\"</span> ), whether as a guest or a registered\r\n user.\r\n <br>\r\n <br>\r\n Please read the Terms of Use carefully before you start to use the Website. <span class=\"h\">By using the\r\n Website or by clicking to accept or agree to the Terms of Use when this option is made\r\n available to you, you accept and agree to be bound and abide by these Terms of Use and\r\n our Privacy Policy, found at {{PrivacyAndTerms?.privacyPolicyUrl}}, incorporated herein by reference.</span>\r\n <br>\r\n If you do not want to agree to these Terms of Use or the Privacy Policy, you must not access or\r\n use the Website.\r\n <br>\r\n <br>\r\n This Website is offered and available to users who are 18 years of age or older and reside in the\r\n United States or any of its territories or possessions. By using this Website, you represent and\r\n warrant that you are of legal age to form a binding contract with the Company and meet all of the\r\n foregoing eligibility requirements. If you do not meet all of these requirements, you must not\r\n access or use the Website.\r\n <br>\r\n <br>\r\n <span class=\"h\">PLEASE BE AWARE THAT THE TERMS BELOW CONTAINS AN ARBITRATION\r\n <br>\r\n AGREEMENT THAT APPLIES TO ALL USERS LOCATED IN THE UNITED STATES.\r\n PLEASE READ IT CAREFULLY.\r\n <br>\r\n <br>\r\n THE ARBITRATION AGREEMENT PROVIDES, WITH LIMITED EXCEPTIONS,\r\n THAT YOU AND THE COMPANY: (1) WILL ONLY BE PERMITTED TO PURSUE\r\n DISPUTES AGAINST EACH OTHER OR OTHER USERS THROUGH BINDING,\r\n FINAL ARBITRATION; (2) WAIVE ALL RIGHTS TO BRING OR PARTICIPATE IN A\r\n DISPUTE ON A CLASS, COLLECTIVE, OR REPRESENTATIVE BASIS; AND (3)\r\n WAIVE ALL RIGHTS TO PURSUE DISPUTES IN A COURT OF LAW AND TO HAVE\r\n A JURY TRIAL.\r\n <br>\r\n <br>\r\n PLEASE BE AWARE THAT THE TERMS BELOW CONTAIN A LIMITATION OF\r\n LIABILITY AND WAIVER OF DAMAGES CLAUSE THAT LIMITS OUR LIABILITY.\r\n PLEASE READ IT CAREFULLY.</span>\r\n\r\n <br>\r\n <br>\r\n\r\n <div class=\"section-title\">2. Changes to the Terms of Use</div>\r\n We may revise and update these Terms of Use from time to time in our sole discretion. All\r\n changes are effective immediately when we post them and apply to all access to and use of the\r\n Website thereafter. However, any changes to the dispute resolution provisions set out in\r\n Governing Law and Jurisdiction will not apply to any disputes for which the parties have actual\r\n notice [on or] before the date the change is posted on the Website.\r\n <br>\r\n Your continued use of the Website following the posting of revised Terms of Use means that you\r\n accept and agree to the changes. You are expected to check this page each time you access this\r\n Website, so you are aware of any changes, as they are binding on you.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">3. Accessing the Website and Account Security</div>\r\n We reserve the right to withdraw or amend this Website, and any service or material we provide\r\n on the Website, in our sole discretion without notice. We will not be liable if for any reason all or\r\n any part of the Website is unavailable at any time or for any period. From time to time, we may\r\n restrict access to some parts of the Website, or the entire website, to users, including registered\r\n users.\r\n <br>\r\n <br>\r\n You are responsible for both:\r\n <div style=\"padding-left: 30px;\">\r\n\r\n \u2022 Making all arrangements necessary for you to have access to the Website.\r\n <br>\r\n \u2022 Ensuring that all persons who access the Website through your internet connection are\r\n aware of these Terms of Use and comply with them.\r\n <br>\r\n <br>\r\n </div>\r\n To access the Website or some of the resources it offers, you may be asked to provide certain\r\n registration details or other information. It is a condition of your use of the Website that all the\r\n information you provide on the Website is correct, current, and complete. You agree that all\r\n information you provide to register with this Website or otherwise, including, but not limited to,\r\n through the use of any interactive features on the Website, is governed by our Privacy Policy\r\n {{PrivacyAndTerms?.privacyPolicyUrl}}, and you consent to all actions we take with respect to your\r\n information consistent with our Privacy Policy.\r\n <br>\r\n <br>\r\n If you choose, or are provided with, a username, password, or any other piece of information as\r\n part of our security procedures, you must treat such information as confidential, and you must\r\n not disclose it to any other person or entity. You also acknowledge that your account is personal\r\n to you and agree not to provide any other person with access to this Website or portions of it\r\n using your username, password, or other security information. You agree to notify us\r\n immediately of any unauthorized access to or use of your username or password or any other\r\n breach of security. You also agree to ensure that you exit from your account at the end of each\r\n session. You should use caution when accessing your account from a public or shared computer\r\n so that others are not able to view or record your password or other personal information.\r\n <br>\r\n <br>\r\n We have the right to disable any username, password, or other identifier, whether chosen by you\r\n or provided by us, at any time in our sole discretion for any or no reason, including if, in our\r\n opinion, you have violated any provision of these Terms of Use.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">4. Intellectual Property Rights</div>\r\n The Website and its entire contents, features, and functionality (including but not limited to all\r\n information, software, text, displays, images, video, and audio, and the design, selection, and\r\n arrangement thereof) are owned by the Company, its licensors, or other providers of such\r\n material and are protected by United States and international copyright, trademark, patent, trade\r\n secret, and other intellectual property or proprietary rights laws.\r\n <br>\r\n <br>\r\n These Terms of Use permit you to use the Website for your personal, non-commercial use only,\r\n except as otherwise permitted. You must not reproduce, distribute, modify, create derivative\r\n works of, publicly display, perform, republish, download, store, or transmit any of the material\r\n on our Website, except as follows:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Your computer may temporarily store copies of such materials in RAM incidental to your\r\n accessing and viewing those materials.\r\n <br>\r\n \u2022 You may store files that are automatically cached by your Web browser for display\r\n enhancement purposes.\r\n <br>\r\n \u2022 You may print one copy of a reasonable number of pages of the Website for your own\r\n personal, non-commercial use and not for further reproduction, publication, or\r\n distribution.\r\n <br>\r\n \u2022 If we provide desktop, mobile, or other applications for download, you may download a\r\n single copy to your computer or mobile device solely for your own personal, non\u0002commercial use, provided you agree\r\n to be bound by our end user license agreement for\r\n such applications.\r\n <br>\r\n \u2022 If we provide social media features with certain content, you may take such actions as are\r\n enabled by such features.\r\n </div>\r\n <br>\r\n You must not:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Modify copies of any materials from this site.\r\n <br>\r\n \u2022 Use any illustrations, photographs, video or audio sequences, or any graphics separately\r\n from the accompanying text.\r\n <br>\r\n \u2022 Delete or alter any copyright, trademark, or other proprietary rights notices from copies\r\n of materials from this site.\r\n </div>\r\n <br>\r\n You must not access or use for any commercial purposes any part of the Website or any services\r\n or materials available through the Website.\r\n <br>\r\n <br>\r\n If you print, copy, modify, download, or otherwise use or provide any other person with access\r\n to any part of the Website in breach of the Terms of Use, your right to use the Website will stop\r\n immediately and you must, at our option, return or destroy any copies of the materials you have\r\n made. No right, title, or interest in or to the Website or any content on the Website is transferred\r\n to you, and all rights not expressly granted are reserved by the Company. Any use of the Website\r\n not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate\r\n copyright, trademark, and other laws.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">5. Trademarks</div>\r\n\r\n The Company name, the terms {{PrivacyAndTerms?.companyTrademarks}}, the Company logo,\r\n and all related names, logos, product and service names, designs, and slogans are trademarks of\r\n the Company or its affiliates or licensors. You must not use such marks without the prior written\r\n permission of the Company. All other names, logos, product and service names, designs, and\r\n slogans on this Website are the trademarks of their respective owners.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">6. Prohibited Uses</div>\r\n You may use the Website only for lawful purposes and in accordance with these Terms of Use.\r\n You agree not to use the Website:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 In any way that violates any applicable federal, state, local, or international law or\r\n regulation (including, without limitation, any laws regarding the export of data or\r\n software to and from the US or other countries).\r\n <br>\r\n \u2022 For the purpose of exploiting, harming, or attempting to exploit or harm minors in any\r\n way by exposing them to inappropriate content, asking for personally identifiable\r\n information, or otherwise.\r\n <br>\r\n \u2022 To send, knowingly receive, upload, download, use, or re-use any material that does not\r\n comply with the Content Standards set out in these Terms of Use.\r\n <br>\r\n \u2022 To transmit, or procure the sending of, any advertising or promotional material [without\r\n our prior written consent], including any \"junk mail,\" \"chain letter,\" \"spam,\" or any other\r\n similar solicitation.\r\n <br>\r\n\r\n\r\n \u2022 To impersonate or attempt to impersonate the Company, a Company employee, another\r\n user, or any other person or entity (including, without limitation, by using email\r\n addresses or screen names associated with any of the foregoing).\r\n <br>\r\n \u2022 To engage in any other conduct that restricts or inhibits anyone's use or enjoyment of the\r\n Website, or which, as determined by us, may harm the Company or users of the Website,\r\n or expose them to liability.\r\n <br>\r\n <br>\r\n </div>\r\n\r\n Additionally, you agree not to:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Use the Website in any manner that could disable, overburden, damage, or impair the site\r\n or interfere with any other party's use of the Website, including their ability to engage in\r\n real time activities through the Website.\r\n <br>\r\n \u2022 Use any robot, spider, or other automatic device, process, or means to access the Website\r\n for any purpose, including monitoring or copying any of the material on the Website.\r\n <br>\r\n \u2022 Use any manual process to monitor or copy any of the material on the Website, or for any\r\n other purpose not expressly authorized in these Terms of Use, without our prior written\r\n consent.\r\n <br>\r\n \u2022 Use any device, software, or routine that interferes with the proper working of the\r\n Website.\r\n <br>\r\n \u2022 Introduce any viruses, Trojan horses, worms, logic bombs, or other material that is\r\n malicious or technologically harmful.\r\n <br>\r\n \u2022 Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of the\r\n Website, the server on which the Website is stored, or any server, computer, or database\r\n connected to the Website.\r\n <br>\r\n \u2022 Attack the Website via a denial-of-service attack or a distributed denial-of-service attack.\r\n <br>\r\n \u2022 Otherwise attempt to interfere with the proper working of the Website.\r\n </div>\r\n <br>\r\n\r\n <div class=\"section-title\">7. User Contributions</div>\r\n\r\n The Website may contain message boards, chat rooms, personal web pages or profiles, forums,\r\n bulletin boards, and other interactive features (collectively, <span class=\"h\">\"Interactive Services\"</span> ) that\r\n allow\r\n users to post, submit, publish, display, or transmit to other users or other persons (hereinafter,\r\n \"post\") content or materials (collectively, <span class=\"h\">\"User Contributions\"</span> ) on or through the Website.\r\n <br>\r\n All User Contributions must comply with the Content Standards set out in these Terms of Use.\r\n <br>\r\n Any User Contribution you post to the site will be considered non-confidential and non\u0002proprietary.\r\n <br>\r\n By providing any User Contribution on the Website, you grant us and our affiliates\r\n and service providers, and each of their and our respective licensees, successors, and assigns the\r\n right to use, reproduce, modify, perform, distribute, and otherwise disclose to third parties any\r\n such material.\r\n <br>\r\n You represent and warrant that:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 You own or control all rights in and to the User Contributions and have the right to grant\r\n the license granted above to us and our affiliates and service providers, and each of their\r\n and our respective licensees, successors, and assigns.\r\n <br>\r\n \u2022 All of your User Contributions do and will comply with these Terms of Use.\r\n </div>\r\n <br>\r\n You understand and acknowledge that you are responsible for any User Contributions you\r\n submit or contribute, and you, not the Company, have full responsibility for such content,\r\n including its legality, reliability, accuracy, and appropriateness.\r\n We are not responsible or liable to any third party for the content or accuracy of any User\r\n Contributions posted by you or any other user of the Website.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">8. Monitoring and Enforcement; Termination</div>\r\n We have the right to:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Remove or refuse to post any User Contributions for any or no reason in our sole\r\n discretion.\r\n <br>\r\n \u2022 Take any action with respect to any User Contribution that we deem necessary or\r\n appropriate in our sole discretion, including if we believe that such User Contribution\r\n violates the Terms of Use, including the Content Standards, infringes any intellectual\r\n property right or other right of any person or entity, threatens the personal safety of users\r\n of the Website or the public, or could create liability for the Company.\r\n <br>\r\n \u2022 Disclose your identity or other information about you to any third party who claims that\r\n material posted by you violates their rights, including their intellectual property rights or\r\n their right to privacy.\r\n <br>\r\n \u2022 Take appropriate legal action, including without limitation, referral to law enforcement,\r\n for any illegal or unauthorized use of the Website.\r\n <br>\r\n \u2022 Terminate or suspend your access to all or part of the Website for any or no reason,\r\n including without limitation, any violation of these Terms of Use.\r\n </div>\r\n <br>\r\n Without limiting the foregoing, we have the right to cooperate fully with any law enforcement\r\n authorities or court order requesting or directing us to disclose the identity or other information\r\n of anyone posting any materials on or through the Website.<span class=\"h\">YOU WAIVE AND HOLD\r\n HARMLESS THE COMPANY AND ITS AFFILIATES, LICENSEES, AND SERVICE\r\n PROVIDERS FROM ANY CLAIMS RESULTING FROM ANY ACTION TAKEN BY THE\r\n COMPANY OR ANY OF THE FOREGOING PARTIES DURING, OR TAKEN AS A\r\n CONSEQUENCE OF, INVESTIGATIONS BY EITHER THE COMPANY OR SUCH\r\n PARTIES OR LAW ENFORCEMENT AUTHORITIES.</span>\r\n <br>\r\n <br>\r\n However, we cannot/ review all material before it is posted on the Website and cannot ensure\r\n prompt removal of objectionable material after it has been posted. Accordingly, we assume no\r\n liability for any action or inaction regarding transmissions, communications, or content provided\r\n by any user or third party. We have no liability or responsibility to anyone for performance or\r\n nonperformance of the activities described in this section.\r\n <br><br>\r\n <div class=\"section-title\">9. Content Standards</div>\r\n\r\n These content standards apply to any and all User Contributions and use of Interactive Services.\r\n User Contributions must in their entirety comply with all applicable federal, state, local, and\r\n international laws and regulations. Without limiting the foregoing, User Contributions must not:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Contain any material that is defamatory, obscene, indecent, abusive, offensive, harassing,\r\n violent, hateful, inflammatory, or otherwise objectionable.\r\n <br>\r\n \u2022 Promote sexually explicit or pornographic material, violence, or discrimination based on\r\n race, sex, religion, nationality, disability, sexual orientation, or age.\r\n <br>\r\n \u2022 Infringe any patent, trademark, trade secret, copyright, or other intellectual property or\r\n other rights of any other person.\r\n <br>\r\n \u2022 Violate the legal rights (including the rights of publicity and privacy) of others or contain\r\n any material that could give rise to any civil or criminal liability under applicable laws or\r\n regulations or that otherwise may be in conflict with these Terms of Use and our Privacy\r\n Policy {{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n <br>\r\n \u2022 Be likely to deceive any person.\r\n <br>\r\n \u2022 Promote any illegal activity, or advocate, promote, or assist any unlawful act.\r\n <br>\r\n \u2022 Cause annoyance, inconvenience, or needless anxiety or be likely to upset, embarrass,\r\n alarm, or annoy any other person.\r\n <br>\r\n \u2022 Impersonate any person or misrepresent your identity or affiliation with any person or\r\n organization.\r\n <br>\r\n \u2022 Involve commercial activities or sales, such as contests, sweepstakes, and other sales\r\n promotions, barter, or advertising.\r\n <br>\r\n \u2022 Give the impression that they emanate from or are endorsed by us or any other person or\r\n entity, if this is not the case.\r\n </div>\r\n <br><br>\r\n <div class=\"section-title\">10. Copyright Infringement</div>\r\n\r\n\r\n If you believe that any User Contributions violate your copyright, please see our Copyright\r\n Policy {{PrivacyAndTerms?.copyrightPolicyLink}} for instructions on sending us a notice of copyright\r\n infringement. It is the policy of the Company to terminate the user accounts of repeat infringers.\r\n <br><br>\r\n <div class=\"section-title\">11. Reliance on Information Posted</div>\r\n\r\n\r\n The information presented on or through the Website is made available solely for general\r\n information purposes. We do not warrant the accuracy, completeness, or usefulness of this\r\n information. Any reliance you place on such information is strictly at your own risk. We\r\n disclaim all liability and responsibility arising from any reliance placed on such materials by you\r\n or any other visitor to the Website, or by anyone who may be informed of any of its contents.\r\n <br><br>\r\n This Website may include content provided by third parties, including materials provided by\r\n other users, bloggers, and third-party licensors, syndicators, aggregators, and/or reporting\r\n services. All statements and/or opinions expressed in these materials, and all articles and\r\n responses to questions and other content, other than the content provided by the Company, are\r\n solely the opinions and the responsibility of the person or entity providing those materials. These\r\n materials do not necessarily reflect the opinion of the Company. We are not responsible, or liable\r\n to you or any third party, for the content or accuracy of any materials provided by any third\r\n parties.\r\n <br><br>\r\n <div class=\"section-title\">12. Changes to the Website</div>\r\n\r\n We may update the content on this Website from time to time, but its content is not necessarily\r\n complete or up to date. Any of the material on the Website may be out of date at any given time,\r\n and we are under no obligation to update such material.\r\n <br><br>\r\n <div class=\"section-title\">13. Information About You and Your Visits to the Website</div>\r\n\r\n\r\n All information we collect on this Website is subject to our Privacy Policy {{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n By using the Website, you consent to all actions taken by us with respect to your\r\n information in compliance with the Privacy Policy.\r\n <br><br>\r\n <div class=\"section-title\">14. Online Purchases and Other Terms and Conditions</div>\r\n\r\n\r\n All purchases through our site or other transactions for the sale of goods, services, or information\r\n formed through the Website, or resulting from visits made by you, are governed by our Terms of\r\n Sale {{PrivacyAndTerms?.termsOfSaleLink}}, which are hereby incorporated into these Terms of Use.\r\n <br>\r\n\r\n Additional terms and conditions may also apply to specific portions, services, or features of the\r\n Website. All such additional terms and conditions are hereby incorporated by this reference into\r\n these Terms of Use.\r\n <br><br>\r\n <div class=\"section-title\">15. Linking to the Website and Social Media Features</div>\r\n\r\n\r\n You may link to our homepage, provided you do so in a way that is fair and legal and does not\r\n damage our reputation or take advantage of it, but you must not establish a link in such a way as\r\n to suggest any form of association, approval, or endorsement on our part without our express\r\n written consent.\r\n <br>\r\n This Website may provide certain social media features that enable you to:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Link from your own or certain third-party websites to certain content on this Website.\r\n <br>\r\n \u2022 Send emails or other communications with certain content, or links to certain content, on\r\n this Website.\r\n <br>\r\n \u2022 Cause limited portions of content on this Website to be displayed or appear to be\r\n displayed on your own or certain third-party websites.\r\n </div>\r\n <br>\r\n You may use these features solely as they are provided by us, and solely with respect to the\r\n content they are displayed with, and otherwise in accordance with any additional terms and\r\n conditions we provide with respect to such features. Subject to the foregoing, you must not:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Establish a link from any website that is not owned by you.\r\n <br>\r\n \u2022 Cause the Website or portions of it to be displayed on, or appear to be displayed by, any\r\n other site, for example, framing, deep linking, or in-line linking.\r\n <br>\r\n \u2022 Link to any part of the Website other than the homepage.\r\n <br>\r\n \u2022 Otherwise take any action with respect to the materials on this Website that is\r\n inconsistent with any other provision of these Terms of Use.\r\n </div>\r\n <br>\r\n\r\n The website from which you are linking, or on which you make certain content accessible, must\r\n comply in all respects with the Content Standards set out in these Terms of Use.\r\n <br>\r\n <br>\r\n You agree to cooperate with us in causing any unauthorized framing or linking immediately to\r\n stop. We reserve the right to withdraw linking permission without notice.\r\n <br>\r\n <br>\r\n We may disable all or any social media features and any links at any time without notice in our\r\n discretion.\r\n <br><br>\r\n <div class=\"section-title\">16. Links from the Website</div>\r\n\r\n If the Website contains links to other sites and resources provided by third parties, these links are\r\n provided for your convenience only. This includes links contained in advertisements, including\r\n banner advertisements and sponsored links. We have no control over the contents of those sites\r\n or resources and accept no responsibility for them or for any loss or damage that may arise from\r\n your use of them. If you decide to access any of the third-party websites linked to this Website,\r\n you do so entirely at your own risk and subject to the terms and conditions of use for such\r\n websites.\r\n <br><br>\r\n <div class=\"section-title\">17. Geographic Restrictions</div>\r\n\r\n\r\n The owner of the Website is based in the State of {{PrivacyAndTerms?.state}} in the United States. We provide this\r\n Website for use only by persons located in the United States. We make no claims that the\r\n Website or any of its content is accessible or appropriate outside of the United States. Access to\r\n the Website may not be legal by certain people or in certain countries. If you access the Website\r\n from outside the United States, you do so on your own initiative and are responsible for\r\n compliance with local laws.\r\n <br><br>\r\n <div class=\"section-title\">18. Disclaimer of Warranties</div>\r\n\r\n\r\n You understand that we cannot and do not guarantee or warrant that files available for\r\n downloading from the internet or the Website will be free of viruses or other destructive code.\r\n You are responsible for implementing sufficient procedures and checkpoints to satisfy your\r\n particular requirements for anti-virus protection and accuracy of data input and output, and for\r\n maintaining a means external to our site for any reconstruction of any lost data.\r\n <br>\r\n <span class=\"h\">TO THE FULLEST EXTENT PROVIDED BY LAW, WE WILL NOT BE LIABLE FOR ANY LOSS\r\n OR DAMAGE CAUSED BY A DISTRIBUTED DENIAL-OF-SERVICE ATTACK, VIRUSES,\r\n OR OTHER TECHNOLOGICALLY HARMFUL MATERIAL THAT MAY INFECT YOUR\r\n COMPUTER EQUIPMENT, COMPUTER PROGRAMS, DATA, OR OTHER\r\n PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITE OR ANY SERVICES\r\n OR ITEMS OBTAINED THROUGH THE WEBSITE OR TO YOUR DOWNLOADING OF\r\n ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITE LINKED TO IT.\r\n <br>\r\n <br>\r\n YOUR USE OF THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS\r\n OBTAINED THROUGH THE WEBSITE IS AT YOUR OWN RISK.\r\n <br>\r\n THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE\r\n ARE PROVIDED ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS, WITHOUT ANY\r\n WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE\r\n COMPANY NOR ANY PERSON ASSOCIATED WITH THE COMPANY MAKES ANY\r\n WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS,\r\n SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE\r\n WEBSITE.\r\n <br>\r\n <br>\r\n WITHOUT LIMITING THE FOREGOING, NEITHER THE COMPANY NOR\r\n ANYONE ASSOCIATED WITH THE COMPANY REPRESENTS OR WARRANTS THAT\r\n THE WEBSITE, ITS CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH\r\n THE WEBSITE WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR\r\n UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE\r\n SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL\r\n COMPONENTS, OR THAT THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED\r\n THROUGH THE WEBSITE WILL OTHERWISE MEET YOUR NEEDS OR\r\n EXPECTATIONS.\r\n <br>\r\n <br>\r\n TO THE FULLEST EXTENT PROVIDED BY LAW, THE COMPANY HEREBY\r\n DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED,\r\n STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY\r\n WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR\r\n PARTICULAR PURPOSE.\r\n <br>\r\n <br>\r\n THE FOREGOING DOES NOT AFFECT ANY WARRANTIES THAT CANNOT BE\r\n EXCLUDED OR LIMITED UNDER APPLICABLE LAW.</span>\r\n\r\n <br><br>\r\n <div class=\"section-title\">19. Limitation on Liability</div>\r\n\r\n <span class=\"h\">\r\n TO THE FULLEST EXTENT PROVIDED BY LAW, IN NO EVENT WILL THE COMPANY,\r\n ITS AFFILIATES, OR THEIR LICENSORS, SERVICE PROVIDERS, EMPLOYEES,\r\n AGENTS, OFFICERS, OR DIRECTORS BE LIABLE FOR DAMAGES OF ANY KIND,\r\n UNDER ANY LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH YOUR\r\n USE, OR INABILITY TO USE, THE WEBSITE, ANY WEBSITES LINKED TO IT, ANY\r\n CONTENT ON THE WEBSITE OR SUCH OTHER WEBSITES, INCLUDING ANY DIRECT,\r\n INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES,\r\n INCLUDING BUT NOT LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING,\r\n EMOTIONAL DISTRESS, LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS\r\n OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA,\r\n AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF\r\n CONTRACT, OR OTHERWISE, EVEN IF FORESEEABLE.\r\n <br>\r\n <br>\r\n THE FOREGOING DOES NOT AFFECT ANY LIABILITY THAT CANNOT BE\r\n EXCLUDED OR LIMITED UNDER APPLICABLE LAW.</span>\r\n <br><br>\r\n <div class=\"section-title\">20. Indemnification</div>\r\n\r\n\r\n You agree to defend, indemnify, and hold harmless the Company, its affiliates, licensors, and\r\n service providers, and its and their respective officers, directors, employees, contractors, agents,\r\n licensors, suppliers, successors, and assigns from and against any claims, liabilities, damages,\r\n judgments, awards, losses, costs, expenses, or fees (including reasonable attorneys' fees) arising\r\n out of or relating to your violation of these Terms of Use or your use of the Website, including,\r\n but not limited to, your User Contributions, any use of the Website's content, services, and\r\n products other than as expressly authorized in these Terms of Use, or your use of any\r\n information obtained from the Website.\r\n <br><br>\r\n <div class=\"section-title\">21. Governing Law and Jurisdiction</div>\r\n\r\n\r\n All matters relating to the Website and these Terms of Use, and any dispute or claim arising\r\n therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be\r\n governed by and construed in accordance with the internal laws of the State of Florida without\r\n giving effect to any choice or conflict of law provision or rule.\r\n <br>\r\n <br>\r\n Any legal suit, action, or proceeding arising out of, or related to, these Terms of Use or the\r\n Website shall be instituted exclusively in the federal courts of the United States or the courts of\r\n the State of Florida, in each case located in the City of Jacksonville and County of Duval. You\r\n waive any and all objections to the exercise of jurisdiction over you by such courts and to venue\r\n in such courts.\r\n <br><br>\r\n <div class=\"section-title\">22. Arbitration</div>\r\n\r\n\r\n At Company's sole discretion, it may require You to submit any disputes arising from these\r\n Terms of Use or use of the Website, including disputes arising from or concerning their\r\n interpretation, violation, invalidity, non-performance, or termination, to final and binding\r\n arbitration under the Rules of Arbitration of the American Arbitration Association applying\r\n FLORIDA.\r\n <br><br>\r\n <div class=\"section-title\">23. Limitation on Time to File Claims</div>\r\n <span class=\"h\">ANY CAUSE OF ACTION OR CLAIM YOU MAY HAVE ARISING OUT OF OR\r\n RELATING TO THESE TERMS OF USE OR THE WEBSITE MUST BE COMMENCED\r\n WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES; OTHERWISE,\r\n SUCH CAUSE OF ACTION OR CLAIM IS PERMANENTLY BARRED.</span>\r\n\r\n\r\n <br><br>\r\n <div class=\"section-title\">24. Waiver and Severability</div>\r\n\r\n\r\n No waiver by the Company of any term or condition set out in these Terms of Use shall be\r\n deemed a further or continuing waiver of such term or condition or a waiver of any other term or\r\n condition, and any failure of the Company to assert a right or provision under these Terms of Use\r\n shall not constitute a waiver of such right or provision.\r\n <br>\r\n <br>\r\n If any provision of these Terms of Use is held by a court or other tribunal of competent\r\n jurisdiction to be invalid, illegal, or unenforceable for any reason, such provision shall be\r\n eliminated or limited to the minimum extent such that the remaining provisions of the Terms of\r\n Use will continue in full force and effect.\r\n <br><br>\r\n <div class=\"section-title\">25. Entire Agreement</div>\r\n The Terms of Use and everything incorporated herein constitute the sole and entire agreement\r\n between you and {{PrivacyAndTerms?.companyName}} regarding the Website and supersede all prior and\r\n contemporaneous understandings, agreements, representations, and warranties, both written and\r\n oral, regarding the Website.\r\n <br><br>\r\n <div class=\"section-title\">26. Your Comments and Concerns</div>\r\n This website is operated by {{PrivacyAndTerms?.companyName}} {{PrivacyAndTerms?.address1}}.\r\n <br>\r\n <br>\r\n All notices of copyright infringement claims should be sent to the copyright agent designated in\r\n our Copyright Policy {{PrivacyAndTerms?.privacyPolicyUrl}} in the manner and by the means set\r\n out therein.\r\n <br>\r\n <br>\r\n All other feedback, comments, requests for technical support, and other communications relating\r\n to the Website should be directed to: {{PrivacyAndTerms?.email}}\r\n <div class=\"content\">\r\n <p style=\"font-size: 12px;\">\r\n \u00A9{{PrivacyAndTerms?.currentYear}} {{PrivacyAndTerms?.companyName}}.<br>\r\n Proprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}} approved customers\r\n only.<br>\r\n Duplication or alteration is strictly prohibited without prior written consent.\r\n </p>\r\n </div>", styles: [".privacy-policy-modal{background:#fff;padding:0 20px;max-width:650px;margin:auto;font-family:Arial,sans-serif;display:flex;flex-direction:column;align-items:center}.privacy-policy-modal .header{text-align:center;margin-bottom:40px}.privacy-policy-modal .header h1{font-size:26px;font-weight:700;margin:0}.privacy-policy-modal .logo-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:-10px;width:100%;overflow:visible;min-height:100px}.privacy-policy-modal .logo-section img{display:block;max-width:180px;height:auto;margin-bottom:15px;position:relative;z-index:2}.privacy-policy-modal .logo-section .address{font-size:14px;line-height:1.6;margin-bottom:10px}.privacy-policy-modal .logo-section .address a{color:#007bff;text-decoration:none}.privacy-policy-modal .logo-section .address a:hover{text-decoration:underline}.privacy-policy-modal .logo-section .policy-title{font-weight:700;font-size:16px;margin-top:5px}.privacy-policy-modal .modal-footer{width:100%;display:flex;justify-content:center}.privacy-policy-modal .modal-footer .btn{padding:8px 25px;font-size:12px}.section-title{color:#000;text-decoration:underline;font-weight:700}.content{font-size:14px;line-height:1.7;text-align:center;margin-bottom:40px;margin-top:80px}.content .last-modified{margin-top:20px;font-size:12px;color:gray}.h{color:#000;font-weight:700}\n"] });
1180
1188
  }
1181
1189
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TermsConditionsComponent, decorators: [{
1182
1190
  type: Component,
1183
- args: [{ standalone: false, selector: 'app-terms-conditions', template: "<div class=\"privacy-policy-modal\">\r\n <!-- Header -->\r\n <div class=\"header\">\r\n <h1>Website Terms of Use</h1>\r\n </div>\r\n\r\n <!-- Logo and Address -->\r\n <div class=\"logo-section\">\r\n <img [src]=\"branding?.logo\" [alt]=\"branding?.displayName\" />\r\n\r\n <p class=\"address\">\r\n {{ PrivacyAndTerms?.address1 }}\r\n {{ PrivacyAndTerms?.city }}\r\n {{ PrivacyAndTerms?.state }}\r\n {{ PrivacyAndTerms?.country }} {{ PrivacyAndTerms?.zipCode }}\r\n\r\n </p>\r\n </div>\r\n</div>\r\n\r\n<div style=\"margin-left: 60px;margin-right: 60px;font-size: 13.5px;\">\r\n Last Modified: {{PrivacyAndTerms?.modifiedDate}}\r\n <br>\r\n <br>\r\n <div class=\"section-title\">1. Acceptance of the Terms of Use</div>\r\n These terms of use are entered into by and between You and {{PrivacyAndTerms?.companyName}}, LLC\r\n <br>\r\n (\"Company,\" \"we,\" or \"us\"). (<span class=\"h\">\"Company,\" \"we,\" or \"us\"</span>). The following terms and conditions,\r\n together with any documents\r\n they expressly incorporate by reference (collectively,<span class=\"h\"> \u201CTerms of Use\"</span>), govern your access to\r\n and use of {{PrivacyAndTerms?.websiteurl}}, including any content, functionality, and services offered on\r\n or through {{PrivacyAndTerms?.websiteurl}} (the <span class=\"h\">\"Website\"</span> ), whether as a guest or a registered\r\n user.\r\n <br>\r\n <br>\r\n Please read the Terms of Use carefully before you start to use the Website. <span class=\"h\">By using the\r\n Website or by clicking to accept or agree to the Terms of Use when this option is made\r\n available to you, you accept and agree to be bound and abide by these Terms of Use and\r\n our Privacy Policy, found at {{PrivacyAndTerms?.privacyPolicyUrl}}, incorporated herein by reference.</span>\r\n <br>\r\n If you do not want to agree to these Terms of Use or the Privacy Policy, you must not access or\r\n use the Website.\r\n <br>\r\n <br>\r\n This Website is offered and available to users who are 18 years of age or older and reside in the\r\n United States or any of its territories or possessions. By using this Website, you represent and\r\n warrant that you are of legal age to form a binding contract with the Company and meet all of the\r\n foregoing eligibility requirements. If you do not meet all of these requirements, you must not\r\n access or use the Website.\r\n <br>\r\n <br>\r\n <span class=\"h\">PLEASE BE AWARE THAT THE TERMS BELOW CONTAINS AN ARBITRATION\r\n <br>\r\n AGREEMENT THAT APPLIES TO ALL USERS LOCATED IN THE UNITED STATES.\r\n PLEASE READ IT CAREFULLY.\r\n <br>\r\n <br>\r\n THE ARBITRATION AGREEMENT PROVIDES, WITH LIMITED EXCEPTIONS,\r\n THAT YOU AND THE COMPANY: (1) WILL ONLY BE PERMITTED TO PURSUE\r\n DISPUTES AGAINST EACH OTHER OR OTHER USERS THROUGH BINDING,\r\n FINAL ARBITRATION; (2) WAIVE ALL RIGHTS TO BRING OR PARTICIPATE IN A\r\n DISPUTE ON A CLASS, COLLECTIVE, OR REPRESENTATIVE BASIS; AND (3)\r\n WAIVE ALL RIGHTS TO PURSUE DISPUTES IN A COURT OF LAW AND TO HAVE\r\n A JURY TRIAL.\r\n <br>\r\n <br>\r\n PLEASE BE AWARE THAT THE TERMS BELOW CONTAIN A LIMITATION OF\r\n LIABILITY AND WAIVER OF DAMAGES CLAUSE THAT LIMITS OUR LIABILITY.\r\n PLEASE READ IT CAREFULLY.</span>\r\n\r\n <br>\r\n <br>\r\n\r\n <div class=\"section-title\">2. Changes to the Terms of Use</div>\r\n We may revise and update these Terms of Use from time to time in our sole discretion. All\r\n changes are effective immediately when we post them and apply to all access to and use of the\r\n Website thereafter. However, any changes to the dispute resolution provisions set out in\r\n Governing Law and Jurisdiction will not apply to any disputes for which the parties have actual\r\n notice [on or] before the date the change is posted on the Website.\r\n <br>\r\n Your continued use of the Website following the posting of revised Terms of Use means that you\r\n accept and agree to the changes. You are expected to check this page each time you access this\r\n Website, so you are aware of any changes, as they are binding on you.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">3. Accessing the Website and Account Security</div>\r\n We reserve the right to withdraw or amend this Website, and any service or material we provide\r\n on the Website, in our sole discretion without notice. We will not be liable if for any reason all or\r\n any part of the Website is unavailable at any time or for any period. From time to time, we may\r\n restrict access to some parts of the Website, or the entire website, to users, including registered\r\n users.\r\n <br>\r\n <br>\r\n You are responsible for both:\r\n <div style=\"padding-left: 30px;\">\r\n\r\n \u2022 Making all arrangements necessary for you to have access to the Website.\r\n <br>\r\n \u2022 Ensuring that all persons who access the Website through your internet connection are\r\n aware of these Terms of Use and comply with them.\r\n <br>\r\n <br>\r\n </div>\r\n To access the Website or some of the resources it offers, you may be asked to provide certain\r\n registration details or other information. It is a condition of your use of the Website that all the\r\n information you provide on the Website is correct, current, and complete. You agree that all\r\n information you provide to register with this Website or otherwise, including, but not limited to,\r\n through the use of any interactive features on the Website, is governed by our Privacy Policy\r\n {{PrivacyAndTerms?.privacyPolicyUrl}}, and you consent to all actions we take with respect to your\r\n information consistent with our Privacy Policy.\r\n <br>\r\n <br>\r\n If you choose, or are provided with, a username, password, or any other piece of information as\r\n part of our security procedures, you must treat such information as confidential, and you must\r\n not disclose it to any other person or entity. You also acknowledge that your account is personal\r\n to you and agree not to provide any other person with access to this Website or portions of it\r\n using your username, password, or other security information. You agree to notify us\r\n immediately of any unauthorized access to or use of your username or password or any other\r\n breach of security. You also agree to ensure that you exit from your account at the end of each\r\n session. You should use caution when accessing your account from a public or shared computer\r\n so that others are not able to view or record your password or other personal information.\r\n <br>\r\n <br>\r\n We have the right to disable any username, password, or other identifier, whether chosen by you\r\n or provided by us, at any time in our sole discretion for any or no reason, including if, in our\r\n opinion, you have violated any provision of these Terms of Use.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">4. Intellectual Property Rights</div>\r\n The Website and its entire contents, features, and functionality (including but not limited to all\r\n information, software, text, displays, images, video, and audio, and the design, selection, and\r\n arrangement thereof) are owned by the Company, its licensors, or other providers of such\r\n material and are protected by United States and international copyright, trademark, patent, trade\r\n secret, and other intellectual property or proprietary rights laws.\r\n <br>\r\n <br>\r\n These Terms of Use permit you to use the Website for your personal, non-commercial use only,\r\n except as otherwise permitted. You must not reproduce, distribute, modify, create derivative\r\n works of, publicly display, perform, republish, download, store, or transmit any of the material\r\n on our Website, except as follows:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Your computer may temporarily store copies of such materials in RAM incidental to your\r\n accessing and viewing those materials.\r\n <br>\r\n \u2022 You may store files that are automatically cached by your Web browser for display\r\n enhancement purposes.\r\n <br>\r\n \u2022 You may print one copy of a reasonable number of pages of the Website for your own\r\n personal, non-commercial use and not for further reproduction, publication, or\r\n distribution.\r\n <br>\r\n \u2022 If we provide desktop, mobile, or other applications for download, you may download a\r\n single copy to your computer or mobile device solely for your own personal, non\u0002commercial use, provided you agree\r\n to be bound by our end user license agreement for\r\n such applications.\r\n <br>\r\n \u2022 If we provide social media features with certain content, you may take such actions as are\r\n enabled by such features.\r\n </div>\r\n <br>\r\n You must not:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Modify copies of any materials from this site.\r\n <br>\r\n \u2022 Use any illustrations, photographs, video or audio sequences, or any graphics separately\r\n from the accompanying text.\r\n <br>\r\n \u2022 Delete or alter any copyright, trademark, or other proprietary rights notices from copies\r\n of materials from this site.\r\n </div>\r\n <br>\r\n You must not access or use for any commercial purposes any part of the Website or any services\r\n or materials available through the Website.\r\n <br>\r\n <br>\r\n If you print, copy, modify, download, or otherwise use or provide any other person with access\r\n to any part of the Website in breach of the Terms of Use, your right to use the Website will stop\r\n immediately and you must, at our option, return or destroy any copies of the materials you have\r\n made. No right, title, or interest in or to the Website or any content on the Website is transferred\r\n to you, and all rights not expressly granted are reserved by the Company. Any use of the Website\r\n not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate\r\n copyright, trademark, and other laws.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">5. Trademarks</div>\r\n\r\n The Company name, the terms {{PrivacyAndTerms?.companyTrademarks}}, the Company logo,\r\n and all related names, logos, product and service names, designs, and slogans are trademarks of\r\n the Company or its affiliates or licensors. You must not use such marks without the prior written\r\n permission of the Company. All other names, logos, product and service names, designs, and\r\n slogans on this Website are the trademarks of their respective owners.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">6. Prohibited Uses</div>\r\n You may use the Website only for lawful purposes and in accordance with these Terms of Use.\r\n You agree not to use the Website:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 In any way that violates any applicable federal, state, local, or international law or\r\n regulation (including, without limitation, any laws regarding the export of data or\r\n software to and from the US or other countries).\r\n <br>\r\n \u2022 For the purpose of exploiting, harming, or attempting to exploit or harm minors in any\r\n way by exposing them to inappropriate content, asking for personally identifiable\r\n information, or otherwise.\r\n <br>\r\n \u2022 To send, knowingly receive, upload, download, use, or re-use any material that does not\r\n comply with the Content Standards set out in these Terms of Use.\r\n <br>\r\n \u2022 To transmit, or procure the sending of, any advertising or promotional material [without\r\n our prior written consent], including any \"junk mail,\" \"chain letter,\" \"spam,\" or any other\r\n similar solicitation.\r\n <br>\r\n\r\n\r\n \u2022 To impersonate or attempt to impersonate the Company, a Company employee, another\r\n user, or any other person or entity (including, without limitation, by using email\r\n addresses or screen names associated with any of the foregoing).\r\n <br>\r\n \u2022 To engage in any other conduct that restricts or inhibits anyone's use or enjoyment of the\r\n Website, or which, as determined by us, may harm the Company or users of the Website,\r\n or expose them to liability.\r\n <br>\r\n <br>\r\n\r\n Additionally, you agree not to:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Use the Website in any manner that could disable, overburden, damage, or impair the site\r\n or interfere with any other party's use of the Website, including their ability to engage in\r\n real time activities through the Website.\r\n <br>\r\n \u2022 Use any robot, spider, or other automatic device, process, or means to access the Website\r\n for any purpose, including monitoring or copying any of the material on the Website.\r\n <br>\r\n \u2022 Use any manual process to monitor or copy any of the material on the Website, or for any\r\n other purpose not expressly authorized in these Terms of Use, without our prior written\r\n consent.\r\n <br>\r\n \u2022 Use any device, software, or routine that interferes with the proper working of the\r\n Website.\r\n <br>\r\n \u2022 Introduce any viruses, Trojan horses, worms, logic bombs, or other material that is\r\n malicious or technologically harmful.\r\n <br>\r\n \u2022 Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of the\r\n Website, the server on which the Website is stored, or any server, computer, or database\r\n connected to the Website.\r\n <br>\r\n \u2022 Attack the Website via a denial-of-service attack or a distributed denial-of-service attack.\r\n <br>\r\n \u2022 Otherwise attempt to interfere with the proper working of the Website.\r\n </div>\r\n <br>\r\n\r\n <div class=\"section-title\">7. User Contributions</div>\r\n\r\n The Website may contain message boards, chat rooms, personal web pages or profiles, forums,\r\n bulletin boards, and other interactive features (collectively, <span class=\"h\">\"Interactive Services\"</span> ) that\r\n allow\r\n users to post, submit, publish, display, or transmit to other users or other persons (hereinafter,\r\n \"post\") content or materials (collectively, <span class=\"h\">\"User Contributions\"</span> ) on or through the Website.\r\n <br>\r\n All User Contributions must comply with the Content Standards set out in these Terms of Use.\r\n <br>\r\n Any User Contribution you post to the site will be considered non-confidential and non\u0002proprietary.\r\n <br>\r\n By providing any User Contribution on the Website, you grant us and our affiliates\r\n and service providers, and each of their and our respective licensees, successors, and assigns the\r\n right to use, reproduce, modify, perform, distribute, and otherwise disclose to third parties any\r\n such material.\r\n <br>\r\n You represent and warrant that:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 You own or control all rights in and to the User Contributions and have the right to grant\r\n the license granted above to us and our affiliates and service providers, and each of their\r\n and our respective licensees, successors, and assigns.\r\n <br>\r\n \u2022 All of your User Contributions do and will comply with these Terms of Use.\r\n </div>\r\n <br>\r\n You understand and acknowledge that you are responsible for any User Contributions you\r\n submit or contribute, and you, not the Company, have full responsibility for such content,\r\n including its legality, reliability, accuracy, and appropriateness.\r\n We are not responsible or liable to any third party for the content or accuracy of any User\r\n Contributions posted by you or any other user of the Website.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">8. Monitoring and Enforcement; Termination</div>\r\n We have the right to:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Remove or refuse to post any User Contributions for any or no reason in our sole\r\n discretion.\r\n <br>\r\n \u2022 Take any action with respect to any User Contribution that we deem necessary or\r\n appropriate in our sole discretion, including if we believe that such User Contribution\r\n violates the Terms of Use, including the Content Standards, infringes any intellectual\r\n property right or other right of any person or entity, threatens the personal safety of users\r\n of the Website or the public, or could create liability for the Company.\r\n <br>\r\n \u2022 Disclose your identity or other information about you to any third party who claims that\r\n material posted by you violates their rights, including their intellectual property rights or\r\n their right to privacy.\r\n <br>\r\n \u2022 Take appropriate legal action, including without limitation, referral to law enforcement,\r\n for any illegal or unauthorized use of the Website.\r\n <br>\r\n \u2022 Terminate or suspend your access to all or part of the Website for any or no reason,\r\n including without limitation, any violation of these Terms of Use.\r\n </div>\r\n <br>\r\n Without limiting the foregoing, we have the right to cooperate fully with any law enforcement\r\n authorities or court order requesting or directing us to disclose the identity or other information\r\n of anyone posting any materials on or through the Website.<span class=\"h\">YOU WAIVE AND HOLD\r\n HARMLESS THE COMPANY AND ITS AFFILIATES, LICENSEES, AND SERVICE\r\n PROVIDERS FROM ANY CLAIMS RESULTING FROM ANY ACTION TAKEN BY THE\r\n COMPANY OR ANY OF THE FOREGOING PARTIES DURING, OR TAKEN AS A\r\n CONSEQUENCE OF, INVESTIGATIONS BY EITHER THE COMPANY OR SUCH\r\n PARTIES OR LAW ENFORCEMENT AUTHORITIES.</span>\r\n <br>\r\n <br>\r\n However, we cannot/ review all material before it is posted on the Website and cannot ensure\r\n prompt removal of objectionable material after it has been posted. Accordingly, we assume no\r\n liability for any action or inaction regarding transmissions, communications, or content provided\r\n by any user or third party. We have no liability or responsibility to anyone for performance or\r\n nonperformance of the activities described in this section.\r\n <br><br>\r\n <div class=\"section-title\">9. Content Standards</div>\r\n\r\n These content standards apply to any and all User Contributions and use of Interactive Services.\r\n User Contributions must in their entirety comply with all applicable federal, state, local, and\r\n international laws and regulations. Without limiting the foregoing, User Contributions must not:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Contain any material that is defamatory, obscene, indecent, abusive, offensive, harassing,\r\n violent, hateful, inflammatory, or otherwise objectionable.\r\n <br>\r\n \u2022 Promote sexually explicit or pornographic material, violence, or discrimination based on\r\n race, sex, religion, nationality, disability, sexual orientation, or age.\r\n <br>\r\n \u2022 Infringe any patent, trademark, trade secret, copyright, or other intellectual property or\r\n other rights of any other person.\r\n <br>\r\n \u2022 Violate the legal rights (including the rights of publicity and privacy) of others or contain\r\n any material that could give rise to any civil or criminal liability under applicable laws or\r\n regulations or that otherwise may be in conflict with these Terms of Use and our Privacy\r\n Policy {{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n <br>\r\n \u2022 Be likely to deceive any person.\r\n <br>\r\n \u2022 Promote any illegal activity, or advocate, promote, or assist any unlawful act.\r\n <br>\r\n \u2022 Cause annoyance, inconvenience, or needless anxiety or be likely to upset, embarrass,\r\n alarm, or annoy any other person.\r\n <br>\r\n \u2022 Impersonate any person or misrepresent your identity or affiliation with any person or\r\n organization.\r\n <br>\r\n \u2022 Involve commercial activities or sales, such as contests, sweepstakes, and other sales\r\n promotions, barter, or advertising.\r\n <br>\r\n \u2022 Give the impression that they emanate from or are endorsed by us or any other person or\r\n entity, if this is not the case.\r\n </div>\r\n <br><br>\r\n <div class=\"section-title\">10. Copyright Infringement</div>\r\n\r\n\r\n If you believe that any User Contributions violate your copyright, please see our Copyright\r\n Policy {{PrivacyAndTerms?.copyrightPolicyLink}} for instructions on sending us a notice of copyright\r\n infringement. It is the policy of the Company to terminate the user accounts of repeat infringers.\r\n <br><br>\r\n <div class=\"section-title\">11. Reliance on Information Posted</div>\r\n\r\n\r\n The information presented on or through the Website is made available solely for general\r\n information purposes. We do not warrant the accuracy, completeness, or usefulness of this\r\n information. Any reliance you place on such information is strictly at your own risk. We\r\n disclaim all liability and responsibility arising from any reliance placed on such materials by you\r\n or any other visitor to the Website, or by anyone who may be informed of any of its contents.\r\n <br><br>\r\n This Website may include content provided by third parties, including materials provided by\r\n other users, bloggers, and third-party licensors, syndicators, aggregators, and/or reporting\r\n services. All statements and/or opinions expressed in these materials, and all articles and\r\n responses to questions and other content, other than the content provided by the Company, are\r\n solely the opinions and the responsibility of the person or entity providing those materials. These\r\n materials do not necessarily reflect the opinion of the Company. We are not responsible, or liable\r\n to you or any third party, for the content or accuracy of any materials provided by any third\r\n parties.\r\n <br><br>\r\n <div class=\"section-title\">12. Changes to the Website</div>\r\n\r\n We may update the content on this Website from time to time, but its content is not necessarily\r\n complete or up to date. Any of the material on the Website may be out of date at any given time,\r\n and we are under no obligation to update such material.\r\n <br><br>\r\n <div class=\"section-title\">13. Information About You and Your Visits to the Website</div>\r\n\r\n\r\n All information we collect on this Website is subject to our Privacy Policy {{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n By using the Website, you consent to all actions taken by us with respect to your\r\n information in compliance with the Privacy Policy.\r\n <br><br>\r\n <div class=\"section-title\">14. Online Purchases and Other Terms and Conditions</div>\r\n\r\n\r\n All purchases through our site or other transactions for the sale of goods, services, or information\r\n formed through the Website, or resulting from visits made by you, are governed by our Terms of\r\n Sale {{PrivacyAndTerms?.termsOfSaleLink}}, which are hereby incorporated into these Terms of Use.\r\n <br>\r\n\r\n Additional terms and conditions may also apply to specific portions, services, or features of the\r\n Website. All such additional terms and conditions are hereby incorporated by this reference into\r\n these Terms of Use.\r\n <br><br>\r\n <div class=\"section-title\">15. Linking to the Website and Social Media Features</div>\r\n\r\n\r\n You may link to our homepage, provided you do so in a way that is fair and legal and does not\r\n damage our reputation or take advantage of it, but you must not establish a link in such a way as\r\n to suggest any form of association, approval, or endorsement on our part without our express\r\n written consent.\r\n <br>\r\n This Website may provide certain social media features that enable you to:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Link from your own or certain third-party websites to certain content on this Website.\r\n <br>\r\n \u2022 Send emails or other communications with certain content, or links to certain content, on\r\n this Website.\r\n <br>\r\n \u2022 Cause limited portions of content on this Website to be displayed or appear to be\r\n displayed on your own or certain third-party websites.\r\n </div>\r\n <br>\r\n You may use these features solely as they are provided by us, and solely with respect to the\r\n content they are displayed with, and otherwise in accordance with any additional terms and\r\n conditions we provide with respect to such features. Subject to the foregoing, you must not:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Establish a link from any website that is not owned by you.\r\n <br>\r\n \u2022 Cause the Website or portions of it to be displayed on, or appear to be displayed by, any\r\n other site, for example, framing, deep linking, or in-line linking.\r\n <br>\r\n \u2022 Link to any part of the Website other than the homepage.\r\n <br>\r\n \u2022 Otherwise take any action with respect to the materials on this Website that is\r\n inconsistent with any other provision of these Terms of Use.\r\n </div>\r\n <br>\r\n\r\n The website from which you are linking, or on which you make certain content accessible, must\r\n comply in all respects with the Content Standards set out in these Terms of Use.\r\n <br>\r\n <br>\r\n You agree to cooperate with us in causing any unauthorized framing or linking immediately to\r\n stop. We reserve the right to withdraw linking permission without notice.\r\n <br>\r\n <br>\r\n We may disable all or any social media features and any links at any time without notice in our\r\n discretion.\r\n <br><br>\r\n <div class=\"section-title\">16. Links from the Website</div>\r\n\r\n If the Website contains links to other sites and resources provided by third parties, these links are\r\n provided for your convenience only. This includes links contained in advertisements, including\r\n banner advertisements and sponsored links. We have no control over the contents of those sites\r\n or resources and accept no responsibility for them or for any loss or damage that may arise from\r\n your use of them. If you decide to access any of the third-party websites linked to this Website,\r\n you do so entirely at your own risk and subject to the terms and conditions of use for such\r\n websites.\r\n <br><br>\r\n <div class=\"section-title\">17. Geographic Restrictions</div>\r\n\r\n\r\n The owner of the Website is based in the State of {{PrivacyAndTerms?.state}} in the United States. We provide this\r\n Website for use only by persons located in the United States. We make no claims that the\r\n Website or any of its content is accessible or appropriate outside of the United States. Access to\r\n the Website may not be legal by certain people or in certain countries. If you access the Website\r\n from outside the United States, you do so on your own initiative and are responsible for\r\n compliance with local laws.\r\n <br><br>\r\n <div class=\"section-title\">18. Disclaimer of Warranties</div>\r\n\r\n\r\n You understand that we cannot and do not guarantee or warrant that files available for\r\n downloading from the internet or the Website will be free of viruses or other destructive code.\r\n You are responsible for implementing sufficient procedures and checkpoints to satisfy your\r\n particular requirements for anti-virus protection and accuracy of data input and output, and for\r\n maintaining a means external to our site for any reconstruction of any lost data.\r\n <br>\r\n <span class=\"h\">TO THE FULLEST EXTENT PROVIDED BY LAW, WE WILL NOT BE LIABLE FOR ANY LOSS\r\n OR DAMAGE CAUSED BY A DISTRIBUTED DENIAL-OF-SERVICE ATTACK, VIRUSES,\r\n OR OTHER TECHNOLOGICALLY HARMFUL MATERIAL THAT MAY INFECT YOUR\r\n COMPUTER EQUIPMENT, COMPUTER PROGRAMS, DATA, OR OTHER\r\n PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITE OR ANY SERVICES\r\n OR ITEMS OBTAINED THROUGH THE WEBSITE OR TO YOUR DOWNLOADING OF\r\n ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITE LINKED TO IT.\r\n <br>\r\n <br>\r\n YOUR USE OF THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS\r\n OBTAINED THROUGH THE WEBSITE IS AT YOUR OWN RISK.\r\n <br>\r\n THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE\r\n ARE PROVIDED ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS, WITHOUT ANY\r\n WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE\r\n COMPANY NOR ANY PERSON ASSOCIATED WITH THE COMPANY MAKES ANY\r\n WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS,\r\n SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE\r\n WEBSITE.\r\n <br>\r\n <br>\r\n WITHOUT LIMITING THE FOREGOING, NEITHER THE COMPANY NOR\r\n ANYONE ASSOCIATED WITH THE COMPANY REPRESENTS OR WARRANTS THAT\r\n THE WEBSITE, ITS CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH\r\n THE WEBSITE WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR\r\n UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE\r\n SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL\r\n COMPONENTS, OR THAT THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED\r\n THROUGH THE WEBSITE WILL OTHERWISE MEET YOUR NEEDS OR\r\n EXPECTATIONS.\r\n <br>\r\n <br>\r\n TO THE FULLEST EXTENT PROVIDED BY LAW, THE COMPANY HEREBY\r\n DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED,\r\n STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY\r\n WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR\r\n PARTICULAR PURPOSE.\r\n <br>\r\n <br>\r\n THE FOREGOING DOES NOT AFFECT ANY WARRANTIES THAT CANNOT BE\r\n EXCLUDED OR LIMITED UNDER APPLICABLE LAW.</span>\r\n\r\n <br><br>\r\n <div class=\"section-title\">19. Limitation on Liability</div>\r\n\r\n <span class=\"h\">\r\n TO THE FULLEST EXTENT PROVIDED BY LAW, IN NO EVENT WILL THE COMPANY,\r\n ITS AFFILIATES, OR THEIR LICENSORS, SERVICE PROVIDERS, EMPLOYEES,\r\n AGENTS, OFFICERS, OR DIRECTORS BE LIABLE FOR DAMAGES OF ANY KIND,\r\n UNDER ANY LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH YOUR\r\n USE, OR INABILITY TO USE, THE WEBSITE, ANY WEBSITES LINKED TO IT, ANY\r\n CONTENT ON THE WEBSITE OR SUCH OTHER WEBSITES, INCLUDING ANY DIRECT,\r\n INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES,\r\n INCLUDING BUT NOT LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING,\r\n EMOTIONAL DISTRESS, LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS\r\n OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA,\r\n AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF\r\n CONTRACT, OR OTHERWISE, EVEN IF FORESEEABLE.\r\n <br>\r\n <br>\r\n THE FOREGOING DOES NOT AFFECT ANY LIABILITY THAT CANNOT BE\r\n EXCLUDED OR LIMITED UNDER APPLICABLE LAW.</span>\r\n <br><br>\r\n <div class=\"section-title\">20. Indemnification</div>\r\n\r\n\r\n You agree to defend, indemnify, and hold harmless the Company, its affiliates, licensors, and\r\n service providers, and its and their respective officers, directors, employees, contractors, agents,\r\n licensors, suppliers, successors, and assigns from and against any claims, liabilities, damages,\r\n judgments, awards, losses, costs, expenses, or fees (including reasonable attorneys' fees) arising\r\n out of or relating to your violation of these Terms of Use or your use of the Website, including,\r\n but not limited to, your User Contributions, any use of the Website's content, services, and\r\n products other than as expressly authorized in these Terms of Use, or your use of any\r\n information obtained from the Website.\r\n <br><br>\r\n <div class=\"section-title\">21. Governing Law and Jurisdiction</div>\r\n\r\n\r\n All matters relating to the Website and these Terms of Use, and any dispute or claim arising\r\n therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be\r\n governed by and construed in accordance with the internal laws of the State of Florida without\r\n giving effect to any choice or conflict of law provision or rule.\r\n <br>\r\n <br>\r\n Any legal suit, action, or proceeding arising out of, or related to, these Terms of Use or the\r\n Website shall be instituted exclusively in the federal courts of the United States or the courts of\r\n the State of Florida, in each case located in the City of Jacksonville and County of Duval. You\r\n waive any and all objections to the exercise of jurisdiction over you by such courts and to venue\r\n in such courts.\r\n <br><br>\r\n <div class=\"section-title\">22. Arbitration</div>\r\n\r\n\r\n At Company's sole discretion, it may require You to submit any disputes arising from these\r\n Terms of Use or use of the Website, including disputes arising from or concerning their\r\n interpretation, violation, invalidity, non-performance, or termination, to final and binding\r\n arbitration under the Rules of Arbitration of the American Arbitration Association applying\r\n FLORIDA.\r\n <br><br>\r\n <div class=\"section-title\">23. Limitation on Time to File Claims</div>\r\n <span class=\"h\">ANY CAUSE OF ACTION OR CLAIM YOU MAY HAVE ARISING OUT OF OR\r\n RELATING TO THESE TERMS OF USE OR THE WEBSITE MUST BE COMMENCED\r\n WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES; OTHERWISE,\r\n SUCH CAUSE OF ACTION OR CLAIM IS PERMANENTLY BARRED.</span>\r\n\r\n\r\n <br><br>\r\n <div class=\"section-title\">24. Waiver and Severability</div>\r\n\r\n\r\n No waiver by the Company of any term or condition set out in these Terms of Use shall be\r\n deemed a further or continuing waiver of such term or condition or a waiver of any other term or\r\n condition, and any failure of the Company to assert a right or provision under these Terms of Use\r\n shall not constitute a waiver of such right or provision.\r\n <br>\r\n <br>\r\n If any provision of these Terms of Use is held by a court or other tribunal of competent\r\n jurisdiction to be invalid, illegal, or unenforceable for any reason, such provision shall be\r\n eliminated or limited to the minimum extent such that the remaining provisions of the Terms of\r\n Use will continue in full force and effect.\r\n <br><br>\r\n <div class=\"section-title\">25. Entire Agreement</div>\r\n The Terms of Use and everything incorporated herein constitute the sole and entire agreement\r\n between you and {{PrivacyAndTerms?.companyName}} regarding the Website and supersede all prior and\r\n contemporaneous understandings, agreements, representations, and warranties, both written and\r\n oral, regarding the Website.\r\n <br><br>\r\n <div class=\"section-title\">26. Your Comments and Concerns</div>\r\n This website is operated by {{PrivacyAndTerms?.companyName}} {{PrivacyAndTerms?.address1}}.\r\n <br>\r\n <br>\r\n All notices of copyright infringement claims should be sent to the copyright agent designated in\r\n our Copyright Policy {{PrivacyAndTerms?.privacyPolicyUrl}} in the manner and by the means set\r\n out therein.\r\n <br>\r\n <br>\r\n All other feedback, comments, requests for technical support, and other communications relating\r\n to the Website should be directed to: {{PrivacyAndTerms?.email}}\r\n </div>\r\n <div class=\"content\">\r\n <p style=\"font-size: 12px;\">\r\n \u00A92025 {{PrivacyAndTerms?.companyName}}.<br>\r\n Proprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}} approved customers\r\n only.<br>\r\n Duplication or alteration is strictly prohibited without prior written consent.\r\n </p>\r\n </div>", styles: [".privacy-policy-modal{background:#fff;padding:30px 20px;max-width:650px;margin:auto;font-family:Arial,sans-serif;display:flex;flex-direction:column;align-items:center}.privacy-policy-modal .header{text-align:center;margin-bottom:40px}.privacy-policy-modal .header h1{font-size:26px;font-weight:700;margin:0}.privacy-policy-modal .logo-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:40px;width:100%;overflow:visible;min-height:100px}.privacy-policy-modal .logo-section img{display:block;max-width:180px;height:auto;margin-bottom:15px;position:relative;z-index:2}.privacy-policy-modal .logo-section .address{font-size:14px;line-height:1.6;margin-bottom:10px}.privacy-policy-modal .logo-section .address a{color:#007bff;text-decoration:none}.privacy-policy-modal .logo-section .address a:hover{text-decoration:underline}.privacy-policy-modal .logo-section .policy-title{font-weight:700;font-size:16px;margin-top:5px}.privacy-policy-modal .modal-footer{width:100%;display:flex;justify-content:center}.privacy-policy-modal .modal-footer .btn{padding:8px 25px;font-size:12px}.section-title{color:#000;text-decoration:underline;font-weight:700}.content{font-size:14px;line-height:1.7;text-align:center;margin-bottom:40px;margin-top:80px}.content .last-modified{margin-top:20px;font-size:12px;color:gray}.h{color:#000;font-weight:700}\n"] }]
1191
+ args: [{ standalone: false, selector: 'app-terms-conditions', template: "<div class=\"privacy-policy-modal\">\r\n <!-- Header -->\r\n <div class=\"header\">\r\n <h1>Website Terms of Use</h1>\r\n </div>\r\n\r\n <!-- Logo and Address -->\r\n <div class=\"logo-section\">\r\n <img [src]=\"branding?.logo\" [alt]=\"branding?.displayName\" />\r\n\r\n <p class=\"address\">\r\n {{ PrivacyAndTerms?.address1 }}\r\n {{ PrivacyAndTerms?.city }}\r\n {{ PrivacyAndTerms?.state }}\r\n {{ PrivacyAndTerms?.country }} {{ PrivacyAndTerms?.zipCode }}\r\n\r\n </p>\r\n </div>\r\n</div>\r\n\r\n<div style=\"margin-left: 10px;margin-right: 0px;font-size: 13.5px;\">\r\n Last Modified: {{PrivacyAndTerms?.modifiedDate}}\r\n <br>\r\n <br>\r\n <div class=\"section-title\">1. Acceptance of the Terms of Use</div>\r\n These terms of use are entered into by and between You and {{PrivacyAndTerms?.companyName}}, LLC\r\n <br>\r\n (\"Company,\" \"we,\" or \"us\"). (<span class=\"h\">\"Company,\" \"we,\" or \"us\"</span>). The following terms and conditions,\r\n together with any documents\r\n they expressly incorporate by reference (collectively,<span class=\"h\"> \u201CTerms of Use\"</span>), govern your access to\r\n and use of {{PrivacyAndTerms?.websiteurl}}, including any content, functionality, and services offered on\r\n or through {{PrivacyAndTerms?.websiteurl}} (the <span class=\"h\">\"Website\"</span> ), whether as a guest or a registered\r\n user.\r\n <br>\r\n <br>\r\n Please read the Terms of Use carefully before you start to use the Website. <span class=\"h\">By using the\r\n Website or by clicking to accept or agree to the Terms of Use when this option is made\r\n available to you, you accept and agree to be bound and abide by these Terms of Use and\r\n our Privacy Policy, found at {{PrivacyAndTerms?.privacyPolicyUrl}}, incorporated herein by reference.</span>\r\n <br>\r\n If you do not want to agree to these Terms of Use or the Privacy Policy, you must not access or\r\n use the Website.\r\n <br>\r\n <br>\r\n This Website is offered and available to users who are 18 years of age or older and reside in the\r\n United States or any of its territories or possessions. By using this Website, you represent and\r\n warrant that you are of legal age to form a binding contract with the Company and meet all of the\r\n foregoing eligibility requirements. If you do not meet all of these requirements, you must not\r\n access or use the Website.\r\n <br>\r\n <br>\r\n <span class=\"h\">PLEASE BE AWARE THAT THE TERMS BELOW CONTAINS AN ARBITRATION\r\n <br>\r\n AGREEMENT THAT APPLIES TO ALL USERS LOCATED IN THE UNITED STATES.\r\n PLEASE READ IT CAREFULLY.\r\n <br>\r\n <br>\r\n THE ARBITRATION AGREEMENT PROVIDES, WITH LIMITED EXCEPTIONS,\r\n THAT YOU AND THE COMPANY: (1) WILL ONLY BE PERMITTED TO PURSUE\r\n DISPUTES AGAINST EACH OTHER OR OTHER USERS THROUGH BINDING,\r\n FINAL ARBITRATION; (2) WAIVE ALL RIGHTS TO BRING OR PARTICIPATE IN A\r\n DISPUTE ON A CLASS, COLLECTIVE, OR REPRESENTATIVE BASIS; AND (3)\r\n WAIVE ALL RIGHTS TO PURSUE DISPUTES IN A COURT OF LAW AND TO HAVE\r\n A JURY TRIAL.\r\n <br>\r\n <br>\r\n PLEASE BE AWARE THAT THE TERMS BELOW CONTAIN A LIMITATION OF\r\n LIABILITY AND WAIVER OF DAMAGES CLAUSE THAT LIMITS OUR LIABILITY.\r\n PLEASE READ IT CAREFULLY.</span>\r\n\r\n <br>\r\n <br>\r\n\r\n <div class=\"section-title\">2. Changes to the Terms of Use</div>\r\n We may revise and update these Terms of Use from time to time in our sole discretion. All\r\n changes are effective immediately when we post them and apply to all access to and use of the\r\n Website thereafter. However, any changes to the dispute resolution provisions set out in\r\n Governing Law and Jurisdiction will not apply to any disputes for which the parties have actual\r\n notice [on or] before the date the change is posted on the Website.\r\n <br>\r\n Your continued use of the Website following the posting of revised Terms of Use means that you\r\n accept and agree to the changes. You are expected to check this page each time you access this\r\n Website, so you are aware of any changes, as they are binding on you.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">3. Accessing the Website and Account Security</div>\r\n We reserve the right to withdraw or amend this Website, and any service or material we provide\r\n on the Website, in our sole discretion without notice. We will not be liable if for any reason all or\r\n any part of the Website is unavailable at any time or for any period. From time to time, we may\r\n restrict access to some parts of the Website, or the entire website, to users, including registered\r\n users.\r\n <br>\r\n <br>\r\n You are responsible for both:\r\n <div style=\"padding-left: 30px;\">\r\n\r\n \u2022 Making all arrangements necessary for you to have access to the Website.\r\n <br>\r\n \u2022 Ensuring that all persons who access the Website through your internet connection are\r\n aware of these Terms of Use and comply with them.\r\n <br>\r\n <br>\r\n </div>\r\n To access the Website or some of the resources it offers, you may be asked to provide certain\r\n registration details or other information. It is a condition of your use of the Website that all the\r\n information you provide on the Website is correct, current, and complete. You agree that all\r\n information you provide to register with this Website or otherwise, including, but not limited to,\r\n through the use of any interactive features on the Website, is governed by our Privacy Policy\r\n {{PrivacyAndTerms?.privacyPolicyUrl}}, and you consent to all actions we take with respect to your\r\n information consistent with our Privacy Policy.\r\n <br>\r\n <br>\r\n If you choose, or are provided with, a username, password, or any other piece of information as\r\n part of our security procedures, you must treat such information as confidential, and you must\r\n not disclose it to any other person or entity. You also acknowledge that your account is personal\r\n to you and agree not to provide any other person with access to this Website or portions of it\r\n using your username, password, or other security information. You agree to notify us\r\n immediately of any unauthorized access to or use of your username or password or any other\r\n breach of security. You also agree to ensure that you exit from your account at the end of each\r\n session. You should use caution when accessing your account from a public or shared computer\r\n so that others are not able to view or record your password or other personal information.\r\n <br>\r\n <br>\r\n We have the right to disable any username, password, or other identifier, whether chosen by you\r\n or provided by us, at any time in our sole discretion for any or no reason, including if, in our\r\n opinion, you have violated any provision of these Terms of Use.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">4. Intellectual Property Rights</div>\r\n The Website and its entire contents, features, and functionality (including but not limited to all\r\n information, software, text, displays, images, video, and audio, and the design, selection, and\r\n arrangement thereof) are owned by the Company, its licensors, or other providers of such\r\n material and are protected by United States and international copyright, trademark, patent, trade\r\n secret, and other intellectual property or proprietary rights laws.\r\n <br>\r\n <br>\r\n These Terms of Use permit you to use the Website for your personal, non-commercial use only,\r\n except as otherwise permitted. You must not reproduce, distribute, modify, create derivative\r\n works of, publicly display, perform, republish, download, store, or transmit any of the material\r\n on our Website, except as follows:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Your computer may temporarily store copies of such materials in RAM incidental to your\r\n accessing and viewing those materials.\r\n <br>\r\n \u2022 You may store files that are automatically cached by your Web browser for display\r\n enhancement purposes.\r\n <br>\r\n \u2022 You may print one copy of a reasonable number of pages of the Website for your own\r\n personal, non-commercial use and not for further reproduction, publication, or\r\n distribution.\r\n <br>\r\n \u2022 If we provide desktop, mobile, or other applications for download, you may download a\r\n single copy to your computer or mobile device solely for your own personal, non\u0002commercial use, provided you agree\r\n to be bound by our end user license agreement for\r\n such applications.\r\n <br>\r\n \u2022 If we provide social media features with certain content, you may take such actions as are\r\n enabled by such features.\r\n </div>\r\n <br>\r\n You must not:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Modify copies of any materials from this site.\r\n <br>\r\n \u2022 Use any illustrations, photographs, video or audio sequences, or any graphics separately\r\n from the accompanying text.\r\n <br>\r\n \u2022 Delete or alter any copyright, trademark, or other proprietary rights notices from copies\r\n of materials from this site.\r\n </div>\r\n <br>\r\n You must not access or use for any commercial purposes any part of the Website or any services\r\n or materials available through the Website.\r\n <br>\r\n <br>\r\n If you print, copy, modify, download, or otherwise use or provide any other person with access\r\n to any part of the Website in breach of the Terms of Use, your right to use the Website will stop\r\n immediately and you must, at our option, return or destroy any copies of the materials you have\r\n made. No right, title, or interest in or to the Website or any content on the Website is transferred\r\n to you, and all rights not expressly granted are reserved by the Company. Any use of the Website\r\n not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate\r\n copyright, trademark, and other laws.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">5. Trademarks</div>\r\n\r\n The Company name, the terms {{PrivacyAndTerms?.companyTrademarks}}, the Company logo,\r\n and all related names, logos, product and service names, designs, and slogans are trademarks of\r\n the Company or its affiliates or licensors. You must not use such marks without the prior written\r\n permission of the Company. All other names, logos, product and service names, designs, and\r\n slogans on this Website are the trademarks of their respective owners.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">6. Prohibited Uses</div>\r\n You may use the Website only for lawful purposes and in accordance with these Terms of Use.\r\n You agree not to use the Website:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 In any way that violates any applicable federal, state, local, or international law or\r\n regulation (including, without limitation, any laws regarding the export of data or\r\n software to and from the US or other countries).\r\n <br>\r\n \u2022 For the purpose of exploiting, harming, or attempting to exploit or harm minors in any\r\n way by exposing them to inappropriate content, asking for personally identifiable\r\n information, or otherwise.\r\n <br>\r\n \u2022 To send, knowingly receive, upload, download, use, or re-use any material that does not\r\n comply with the Content Standards set out in these Terms of Use.\r\n <br>\r\n \u2022 To transmit, or procure the sending of, any advertising or promotional material [without\r\n our prior written consent], including any \"junk mail,\" \"chain letter,\" \"spam,\" or any other\r\n similar solicitation.\r\n <br>\r\n\r\n\r\n \u2022 To impersonate or attempt to impersonate the Company, a Company employee, another\r\n user, or any other person or entity (including, without limitation, by using email\r\n addresses or screen names associated with any of the foregoing).\r\n <br>\r\n \u2022 To engage in any other conduct that restricts or inhibits anyone's use or enjoyment of the\r\n Website, or which, as determined by us, may harm the Company or users of the Website,\r\n or expose them to liability.\r\n <br>\r\n <br>\r\n </div>\r\n\r\n Additionally, you agree not to:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Use the Website in any manner that could disable, overburden, damage, or impair the site\r\n or interfere with any other party's use of the Website, including their ability to engage in\r\n real time activities through the Website.\r\n <br>\r\n \u2022 Use any robot, spider, or other automatic device, process, or means to access the Website\r\n for any purpose, including monitoring or copying any of the material on the Website.\r\n <br>\r\n \u2022 Use any manual process to monitor or copy any of the material on the Website, or for any\r\n other purpose not expressly authorized in these Terms of Use, without our prior written\r\n consent.\r\n <br>\r\n \u2022 Use any device, software, or routine that interferes with the proper working of the\r\n Website.\r\n <br>\r\n \u2022 Introduce any viruses, Trojan horses, worms, logic bombs, or other material that is\r\n malicious or technologically harmful.\r\n <br>\r\n \u2022 Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of the\r\n Website, the server on which the Website is stored, or any server, computer, or database\r\n connected to the Website.\r\n <br>\r\n \u2022 Attack the Website via a denial-of-service attack or a distributed denial-of-service attack.\r\n <br>\r\n \u2022 Otherwise attempt to interfere with the proper working of the Website.\r\n </div>\r\n <br>\r\n\r\n <div class=\"section-title\">7. User Contributions</div>\r\n\r\n The Website may contain message boards, chat rooms, personal web pages or profiles, forums,\r\n bulletin boards, and other interactive features (collectively, <span class=\"h\">\"Interactive Services\"</span> ) that\r\n allow\r\n users to post, submit, publish, display, or transmit to other users or other persons (hereinafter,\r\n \"post\") content or materials (collectively, <span class=\"h\">\"User Contributions\"</span> ) on or through the Website.\r\n <br>\r\n All User Contributions must comply with the Content Standards set out in these Terms of Use.\r\n <br>\r\n Any User Contribution you post to the site will be considered non-confidential and non\u0002proprietary.\r\n <br>\r\n By providing any User Contribution on the Website, you grant us and our affiliates\r\n and service providers, and each of their and our respective licensees, successors, and assigns the\r\n right to use, reproduce, modify, perform, distribute, and otherwise disclose to third parties any\r\n such material.\r\n <br>\r\n You represent and warrant that:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 You own or control all rights in and to the User Contributions and have the right to grant\r\n the license granted above to us and our affiliates and service providers, and each of their\r\n and our respective licensees, successors, and assigns.\r\n <br>\r\n \u2022 All of your User Contributions do and will comply with these Terms of Use.\r\n </div>\r\n <br>\r\n You understand and acknowledge that you are responsible for any User Contributions you\r\n submit or contribute, and you, not the Company, have full responsibility for such content,\r\n including its legality, reliability, accuracy, and appropriateness.\r\n We are not responsible or liable to any third party for the content or accuracy of any User\r\n Contributions posted by you or any other user of the Website.\r\n <br>\r\n <br>\r\n <div class=\"section-title\">8. Monitoring and Enforcement; Termination</div>\r\n We have the right to:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Remove or refuse to post any User Contributions for any or no reason in our sole\r\n discretion.\r\n <br>\r\n \u2022 Take any action with respect to any User Contribution that we deem necessary or\r\n appropriate in our sole discretion, including if we believe that such User Contribution\r\n violates the Terms of Use, including the Content Standards, infringes any intellectual\r\n property right or other right of any person or entity, threatens the personal safety of users\r\n of the Website or the public, or could create liability for the Company.\r\n <br>\r\n \u2022 Disclose your identity or other information about you to any third party who claims that\r\n material posted by you violates their rights, including their intellectual property rights or\r\n their right to privacy.\r\n <br>\r\n \u2022 Take appropriate legal action, including without limitation, referral to law enforcement,\r\n for any illegal or unauthorized use of the Website.\r\n <br>\r\n \u2022 Terminate or suspend your access to all or part of the Website for any or no reason,\r\n including without limitation, any violation of these Terms of Use.\r\n </div>\r\n <br>\r\n Without limiting the foregoing, we have the right to cooperate fully with any law enforcement\r\n authorities or court order requesting or directing us to disclose the identity or other information\r\n of anyone posting any materials on or through the Website.<span class=\"h\">YOU WAIVE AND HOLD\r\n HARMLESS THE COMPANY AND ITS AFFILIATES, LICENSEES, AND SERVICE\r\n PROVIDERS FROM ANY CLAIMS RESULTING FROM ANY ACTION TAKEN BY THE\r\n COMPANY OR ANY OF THE FOREGOING PARTIES DURING, OR TAKEN AS A\r\n CONSEQUENCE OF, INVESTIGATIONS BY EITHER THE COMPANY OR SUCH\r\n PARTIES OR LAW ENFORCEMENT AUTHORITIES.</span>\r\n <br>\r\n <br>\r\n However, we cannot/ review all material before it is posted on the Website and cannot ensure\r\n prompt removal of objectionable material after it has been posted. Accordingly, we assume no\r\n liability for any action or inaction regarding transmissions, communications, or content provided\r\n by any user or third party. We have no liability or responsibility to anyone for performance or\r\n nonperformance of the activities described in this section.\r\n <br><br>\r\n <div class=\"section-title\">9. Content Standards</div>\r\n\r\n These content standards apply to any and all User Contributions and use of Interactive Services.\r\n User Contributions must in their entirety comply with all applicable federal, state, local, and\r\n international laws and regulations. Without limiting the foregoing, User Contributions must not:\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Contain any material that is defamatory, obscene, indecent, abusive, offensive, harassing,\r\n violent, hateful, inflammatory, or otherwise objectionable.\r\n <br>\r\n \u2022 Promote sexually explicit or pornographic material, violence, or discrimination based on\r\n race, sex, religion, nationality, disability, sexual orientation, or age.\r\n <br>\r\n \u2022 Infringe any patent, trademark, trade secret, copyright, or other intellectual property or\r\n other rights of any other person.\r\n <br>\r\n \u2022 Violate the legal rights (including the rights of publicity and privacy) of others or contain\r\n any material that could give rise to any civil or criminal liability under applicable laws or\r\n regulations or that otherwise may be in conflict with these Terms of Use and our Privacy\r\n Policy {{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n <br>\r\n \u2022 Be likely to deceive any person.\r\n <br>\r\n \u2022 Promote any illegal activity, or advocate, promote, or assist any unlawful act.\r\n <br>\r\n \u2022 Cause annoyance, inconvenience, or needless anxiety or be likely to upset, embarrass,\r\n alarm, or annoy any other person.\r\n <br>\r\n \u2022 Impersonate any person or misrepresent your identity or affiliation with any person or\r\n organization.\r\n <br>\r\n \u2022 Involve commercial activities or sales, such as contests, sweepstakes, and other sales\r\n promotions, barter, or advertising.\r\n <br>\r\n \u2022 Give the impression that they emanate from or are endorsed by us or any other person or\r\n entity, if this is not the case.\r\n </div>\r\n <br><br>\r\n <div class=\"section-title\">10. Copyright Infringement</div>\r\n\r\n\r\n If you believe that any User Contributions violate your copyright, please see our Copyright\r\n Policy {{PrivacyAndTerms?.copyrightPolicyLink}} for instructions on sending us a notice of copyright\r\n infringement. It is the policy of the Company to terminate the user accounts of repeat infringers.\r\n <br><br>\r\n <div class=\"section-title\">11. Reliance on Information Posted</div>\r\n\r\n\r\n The information presented on or through the Website is made available solely for general\r\n information purposes. We do not warrant the accuracy, completeness, or usefulness of this\r\n information. Any reliance you place on such information is strictly at your own risk. We\r\n disclaim all liability and responsibility arising from any reliance placed on such materials by you\r\n or any other visitor to the Website, or by anyone who may be informed of any of its contents.\r\n <br><br>\r\n This Website may include content provided by third parties, including materials provided by\r\n other users, bloggers, and third-party licensors, syndicators, aggregators, and/or reporting\r\n services. All statements and/or opinions expressed in these materials, and all articles and\r\n responses to questions and other content, other than the content provided by the Company, are\r\n solely the opinions and the responsibility of the person or entity providing those materials. These\r\n materials do not necessarily reflect the opinion of the Company. We are not responsible, or liable\r\n to you or any third party, for the content or accuracy of any materials provided by any third\r\n parties.\r\n <br><br>\r\n <div class=\"section-title\">12. Changes to the Website</div>\r\n\r\n We may update the content on this Website from time to time, but its content is not necessarily\r\n complete or up to date. Any of the material on the Website may be out of date at any given time,\r\n and we are under no obligation to update such material.\r\n <br><br>\r\n <div class=\"section-title\">13. Information About You and Your Visits to the Website</div>\r\n\r\n\r\n All information we collect on this Website is subject to our Privacy Policy {{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n By using the Website, you consent to all actions taken by us with respect to your\r\n information in compliance with the Privacy Policy.\r\n <br><br>\r\n <div class=\"section-title\">14. Online Purchases and Other Terms and Conditions</div>\r\n\r\n\r\n All purchases through our site or other transactions for the sale of goods, services, or information\r\n formed through the Website, or resulting from visits made by you, are governed by our Terms of\r\n Sale {{PrivacyAndTerms?.termsOfSaleLink}}, which are hereby incorporated into these Terms of Use.\r\n <br>\r\n\r\n Additional terms and conditions may also apply to specific portions, services, or features of the\r\n Website. All such additional terms and conditions are hereby incorporated by this reference into\r\n these Terms of Use.\r\n <br><br>\r\n <div class=\"section-title\">15. Linking to the Website and Social Media Features</div>\r\n\r\n\r\n You may link to our homepage, provided you do so in a way that is fair and legal and does not\r\n damage our reputation or take advantage of it, but you must not establish a link in such a way as\r\n to suggest any form of association, approval, or endorsement on our part without our express\r\n written consent.\r\n <br>\r\n This Website may provide certain social media features that enable you to:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Link from your own or certain third-party websites to certain content on this Website.\r\n <br>\r\n \u2022 Send emails or other communications with certain content, or links to certain content, on\r\n this Website.\r\n <br>\r\n \u2022 Cause limited portions of content on this Website to be displayed or appear to be\r\n displayed on your own or certain third-party websites.\r\n </div>\r\n <br>\r\n You may use these features solely as they are provided by us, and solely with respect to the\r\n content they are displayed with, and otherwise in accordance with any additional terms and\r\n conditions we provide with respect to such features. Subject to the foregoing, you must not:\r\n <br>\r\n <br>\r\n <div style=\"padding-left: 30px;\">\r\n \u2022 Establish a link from any website that is not owned by you.\r\n <br>\r\n \u2022 Cause the Website or portions of it to be displayed on, or appear to be displayed by, any\r\n other site, for example, framing, deep linking, or in-line linking.\r\n <br>\r\n \u2022 Link to any part of the Website other than the homepage.\r\n <br>\r\n \u2022 Otherwise take any action with respect to the materials on this Website that is\r\n inconsistent with any other provision of these Terms of Use.\r\n </div>\r\n <br>\r\n\r\n The website from which you are linking, or on which you make certain content accessible, must\r\n comply in all respects with the Content Standards set out in these Terms of Use.\r\n <br>\r\n <br>\r\n You agree to cooperate with us in causing any unauthorized framing or linking immediately to\r\n stop. We reserve the right to withdraw linking permission without notice.\r\n <br>\r\n <br>\r\n We may disable all or any social media features and any links at any time without notice in our\r\n discretion.\r\n <br><br>\r\n <div class=\"section-title\">16. Links from the Website</div>\r\n\r\n If the Website contains links to other sites and resources provided by third parties, these links are\r\n provided for your convenience only. This includes links contained in advertisements, including\r\n banner advertisements and sponsored links. We have no control over the contents of those sites\r\n or resources and accept no responsibility for them or for any loss or damage that may arise from\r\n your use of them. If you decide to access any of the third-party websites linked to this Website,\r\n you do so entirely at your own risk and subject to the terms and conditions of use for such\r\n websites.\r\n <br><br>\r\n <div class=\"section-title\">17. Geographic Restrictions</div>\r\n\r\n\r\n The owner of the Website is based in the State of {{PrivacyAndTerms?.state}} in the United States. We provide this\r\n Website for use only by persons located in the United States. We make no claims that the\r\n Website or any of its content is accessible or appropriate outside of the United States. Access to\r\n the Website may not be legal by certain people or in certain countries. If you access the Website\r\n from outside the United States, you do so on your own initiative and are responsible for\r\n compliance with local laws.\r\n <br><br>\r\n <div class=\"section-title\">18. Disclaimer of Warranties</div>\r\n\r\n\r\n You understand that we cannot and do not guarantee or warrant that files available for\r\n downloading from the internet or the Website will be free of viruses or other destructive code.\r\n You are responsible for implementing sufficient procedures and checkpoints to satisfy your\r\n particular requirements for anti-virus protection and accuracy of data input and output, and for\r\n maintaining a means external to our site for any reconstruction of any lost data.\r\n <br>\r\n <span class=\"h\">TO THE FULLEST EXTENT PROVIDED BY LAW, WE WILL NOT BE LIABLE FOR ANY LOSS\r\n OR DAMAGE CAUSED BY A DISTRIBUTED DENIAL-OF-SERVICE ATTACK, VIRUSES,\r\n OR OTHER TECHNOLOGICALLY HARMFUL MATERIAL THAT MAY INFECT YOUR\r\n COMPUTER EQUIPMENT, COMPUTER PROGRAMS, DATA, OR OTHER\r\n PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITE OR ANY SERVICES\r\n OR ITEMS OBTAINED THROUGH THE WEBSITE OR TO YOUR DOWNLOADING OF\r\n ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITE LINKED TO IT.\r\n <br>\r\n <br>\r\n YOUR USE OF THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS\r\n OBTAINED THROUGH THE WEBSITE IS AT YOUR OWN RISK.\r\n <br>\r\n THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE\r\n ARE PROVIDED ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS, WITHOUT ANY\r\n WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE\r\n COMPANY NOR ANY PERSON ASSOCIATED WITH THE COMPANY MAKES ANY\r\n WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS,\r\n SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE\r\n WEBSITE.\r\n <br>\r\n <br>\r\n WITHOUT LIMITING THE FOREGOING, NEITHER THE COMPANY NOR\r\n ANYONE ASSOCIATED WITH THE COMPANY REPRESENTS OR WARRANTS THAT\r\n THE WEBSITE, ITS CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH\r\n THE WEBSITE WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR\r\n UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE\r\n SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL\r\n COMPONENTS, OR THAT THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED\r\n THROUGH THE WEBSITE WILL OTHERWISE MEET YOUR NEEDS OR\r\n EXPECTATIONS.\r\n <br>\r\n <br>\r\n TO THE FULLEST EXTENT PROVIDED BY LAW, THE COMPANY HEREBY\r\n DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED,\r\n STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY\r\n WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR\r\n PARTICULAR PURPOSE.\r\n <br>\r\n <br>\r\n THE FOREGOING DOES NOT AFFECT ANY WARRANTIES THAT CANNOT BE\r\n EXCLUDED OR LIMITED UNDER APPLICABLE LAW.</span>\r\n\r\n <br><br>\r\n <div class=\"section-title\">19. Limitation on Liability</div>\r\n\r\n <span class=\"h\">\r\n TO THE FULLEST EXTENT PROVIDED BY LAW, IN NO EVENT WILL THE COMPANY,\r\n ITS AFFILIATES, OR THEIR LICENSORS, SERVICE PROVIDERS, EMPLOYEES,\r\n AGENTS, OFFICERS, OR DIRECTORS BE LIABLE FOR DAMAGES OF ANY KIND,\r\n UNDER ANY LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH YOUR\r\n USE, OR INABILITY TO USE, THE WEBSITE, ANY WEBSITES LINKED TO IT, ANY\r\n CONTENT ON THE WEBSITE OR SUCH OTHER WEBSITES, INCLUDING ANY DIRECT,\r\n INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES,\r\n INCLUDING BUT NOT LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING,\r\n EMOTIONAL DISTRESS, LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS\r\n OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA,\r\n AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF\r\n CONTRACT, OR OTHERWISE, EVEN IF FORESEEABLE.\r\n <br>\r\n <br>\r\n THE FOREGOING DOES NOT AFFECT ANY LIABILITY THAT CANNOT BE\r\n EXCLUDED OR LIMITED UNDER APPLICABLE LAW.</span>\r\n <br><br>\r\n <div class=\"section-title\">20. Indemnification</div>\r\n\r\n\r\n You agree to defend, indemnify, and hold harmless the Company, its affiliates, licensors, and\r\n service providers, and its and their respective officers, directors, employees, contractors, agents,\r\n licensors, suppliers, successors, and assigns from and against any claims, liabilities, damages,\r\n judgments, awards, losses, costs, expenses, or fees (including reasonable attorneys' fees) arising\r\n out of or relating to your violation of these Terms of Use or your use of the Website, including,\r\n but not limited to, your User Contributions, any use of the Website's content, services, and\r\n products other than as expressly authorized in these Terms of Use, or your use of any\r\n information obtained from the Website.\r\n <br><br>\r\n <div class=\"section-title\">21. Governing Law and Jurisdiction</div>\r\n\r\n\r\n All matters relating to the Website and these Terms of Use, and any dispute or claim arising\r\n therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be\r\n governed by and construed in accordance with the internal laws of the State of Florida without\r\n giving effect to any choice or conflict of law provision or rule.\r\n <br>\r\n <br>\r\n Any legal suit, action, or proceeding arising out of, or related to, these Terms of Use or the\r\n Website shall be instituted exclusively in the federal courts of the United States or the courts of\r\n the State of Florida, in each case located in the City of Jacksonville and County of Duval. You\r\n waive any and all objections to the exercise of jurisdiction over you by such courts and to venue\r\n in such courts.\r\n <br><br>\r\n <div class=\"section-title\">22. Arbitration</div>\r\n\r\n\r\n At Company's sole discretion, it may require You to submit any disputes arising from these\r\n Terms of Use or use of the Website, including disputes arising from or concerning their\r\n interpretation, violation, invalidity, non-performance, or termination, to final and binding\r\n arbitration under the Rules of Arbitration of the American Arbitration Association applying\r\n FLORIDA.\r\n <br><br>\r\n <div class=\"section-title\">23. Limitation on Time to File Claims</div>\r\n <span class=\"h\">ANY CAUSE OF ACTION OR CLAIM YOU MAY HAVE ARISING OUT OF OR\r\n RELATING TO THESE TERMS OF USE OR THE WEBSITE MUST BE COMMENCED\r\n WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES; OTHERWISE,\r\n SUCH CAUSE OF ACTION OR CLAIM IS PERMANENTLY BARRED.</span>\r\n\r\n\r\n <br><br>\r\n <div class=\"section-title\">24. Waiver and Severability</div>\r\n\r\n\r\n No waiver by the Company of any term or condition set out in these Terms of Use shall be\r\n deemed a further or continuing waiver of such term or condition or a waiver of any other term or\r\n condition, and any failure of the Company to assert a right or provision under these Terms of Use\r\n shall not constitute a waiver of such right or provision.\r\n <br>\r\n <br>\r\n If any provision of these Terms of Use is held by a court or other tribunal of competent\r\n jurisdiction to be invalid, illegal, or unenforceable for any reason, such provision shall be\r\n eliminated or limited to the minimum extent such that the remaining provisions of the Terms of\r\n Use will continue in full force and effect.\r\n <br><br>\r\n <div class=\"section-title\">25. Entire Agreement</div>\r\n The Terms of Use and everything incorporated herein constitute the sole and entire agreement\r\n between you and {{PrivacyAndTerms?.companyName}} regarding the Website and supersede all prior and\r\n contemporaneous understandings, agreements, representations, and warranties, both written and\r\n oral, regarding the Website.\r\n <br><br>\r\n <div class=\"section-title\">26. Your Comments and Concerns</div>\r\n This website is operated by {{PrivacyAndTerms?.companyName}} {{PrivacyAndTerms?.address1}}.\r\n <br>\r\n <br>\r\n All notices of copyright infringement claims should be sent to the copyright agent designated in\r\n our Copyright Policy {{PrivacyAndTerms?.privacyPolicyUrl}} in the manner and by the means set\r\n out therein.\r\n <br>\r\n <br>\r\n All other feedback, comments, requests for technical support, and other communications relating\r\n to the Website should be directed to: {{PrivacyAndTerms?.email}}\r\n <div class=\"content\">\r\n <p style=\"font-size: 12px;\">\r\n \u00A9{{PrivacyAndTerms?.currentYear}} {{PrivacyAndTerms?.companyName}}.<br>\r\n Proprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}} approved customers\r\n only.<br>\r\n Duplication or alteration is strictly prohibited without prior written consent.\r\n </p>\r\n </div>", styles: [".privacy-policy-modal{background:#fff;padding:0 20px;max-width:650px;margin:auto;font-family:Arial,sans-serif;display:flex;flex-direction:column;align-items:center}.privacy-policy-modal .header{text-align:center;margin-bottom:40px}.privacy-policy-modal .header h1{font-size:26px;font-weight:700;margin:0}.privacy-policy-modal .logo-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:-10px;width:100%;overflow:visible;min-height:100px}.privacy-policy-modal .logo-section img{display:block;max-width:180px;height:auto;margin-bottom:15px;position:relative;z-index:2}.privacy-policy-modal .logo-section .address{font-size:14px;line-height:1.6;margin-bottom:10px}.privacy-policy-modal .logo-section .address a{color:#007bff;text-decoration:none}.privacy-policy-modal .logo-section .address a:hover{text-decoration:underline}.privacy-policy-modal .logo-section .policy-title{font-weight:700;font-size:16px;margin-top:5px}.privacy-policy-modal .modal-footer{width:100%;display:flex;justify-content:center}.privacy-policy-modal .modal-footer .btn{padding:8px 25px;font-size:12px}.section-title{color:#000;text-decoration:underline;font-weight:700}.content{font-size:14px;line-height:1.7;text-align:center;margin-bottom:40px;margin-top:80px}.content .last-modified{margin-top:20px;font-size:12px;color:gray}.h{color:#000;font-weight:700}\n"] }]
1184
1192
  }], propDecorators: { title: [{
1185
1193
  type: Input
1186
1194
  }], branding: [{
@@ -1194,11 +1202,11 @@ class PrivacyPolicyComponent {
1194
1202
  branding;
1195
1203
  PrivacyAndTerms;
1196
1204
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PrivacyPolicyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1197
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: PrivacyPolicyComponent, isStandalone: false, selector: "app-privacy-policy", inputs: { title: "title", branding: "branding", PrivacyAndTerms: "PrivacyAndTerms" }, ngImport: i0, template: "<div class=\"privacy-policy-modal\">\r\n <!-- Header -->\r\n <div class=\"header\">\r\n <h1>Website Privacy Policy</h1>\r\n </div>\r\n\r\n <!-- Logo and Address -->\r\n<div class=\"logo-section\" >\r\n <img [src]=\"branding?.logo\" [alt]=\"branding?.displayName\" />\r\n\r\n <p class=\"address\">\r\n {{ PrivacyAndTerms?.address1 }}\r\n {{ PrivacyAndTerms?.city }}\r\n {{ PrivacyAndTerms?.state }}\r\n {{ PrivacyAndTerms?.country }} {{ PrivacyAndTerms?.zipCode }}\r\n \r\n </p>\r\n</div>\r\n\r\n</div>\r\n\r\n<div style=\"margin-left: 60px;margin-right: 60px;font-size: 13.5px;\">\r\nLast modified: {{PrivacyAndTerms?.modifiedDate}}\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Introduction</div>\r\n{{PrivacyAndTerms?.companyName}}, LLC, a {{PrivacyAndTerms?.state}} limited liability company ( <span class=\"h\">\"Company\"</span> or <span class=\"h\">\"We\"</span>), \r\nrespect your privacy and are committed to protecting it through our compliance with this \r\npolicy. \r\n\r\n<br>\r\nThis policy describes the types of information we may collect from you or that you may \r\nprovide when you visit the website www.bootog.com (our \"Website\") and our practices \r\nfor collecting, using, maintaining, protecting, and disclosing that information. \r\n<br>\r\nThis policy applies to information we collect: \r\n<br>\r\nOn this Website. \r\n<br>\r\nIn email, text, and other electronic messages between you and this Website. \r\nThrough mobile and desktop applications you download from this Website, which \r\nprovide dedicated non-browser-based interaction between you and this Website. \r\nWhen you interact with our advertising and applications on third-party websites and \r\nservices. \r\n<br>\r\nIt does not apply to information collected by: \r\n<br>\r\nUs offline or through any other means, including on any other website operated by \r\nCompany or any third party (including our affiliates and subsidiaries); or \r\nAny third party (including our affiliates and subsidiaries), including through any \r\napplication or content (including advertising) that may link to or be accessible from or \r\nthrough the Website. \r\n<br>\r\nPlease read this policy carefully to understand our policies and practices regarding your \r\ninformation and how we will treat it. If you do not agree with our policies and practices, \r\nyour choice is not to use our Website. By accessing or using this Website, you agree to \r\nthis privacy policy. This policy may change from time to time (see Changes to Our \r\nPrivacy Policy). Your continued use of this Website after we make changes is deemed \r\nto be acceptance of those changes, so please check the policy periodically for updates. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Children Under the Age of 16</div> \r\nOur Website is not intended for children under 16 years of age. No one under age 16 \r\nmay provide any information to or on the Website. We do not knowingly collect personal \r\ninformation from children under 16. If you are under 16, do not use or provide any \r\ninformation on this Website or through any of its features, register on the Website, make \r\nany purchases through the Website, use any of the interactive or public comment \r\nfeatures of this Website, or provide any information about yourself to us, including your \r\nname, address, telephone number, email address, or any screen name or user name \r\nyou may use. If we learn we have collected or received personal information from a \r\nchild under 16 without verification of parental consent, we will delete that information. If \r\nyou believe we might have any information from or about a child under 16, please \r\ncontact us at {{PrivacyAndTerms?.email}}. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Information We Collect About You and How We Collect It </div>\r\n\r\nWe collect several types of information from and about users of our Website, including \r\ninformation: \r\n<br>\r\nBy which you may be personally identified, such as name, postal address, email \r\naddress, telephone number, social security number, any other personally identifiable \r\ninformation or any other identifier by which you may be contacted online or offline \r\n(<span class=\"h\">\"personal information\"</span>) \r\n<br>\r\nThat is about you but individually does not identify you; and/or \r\n<br>\r\nAbout your internet connection, the equipment you use to access our Website, and \r\nusage details. <br>\r\nWe collect this information: \r\n<br>\r\nDirectly from you when you provide it to us. \r\n<br>\r\nAutomatically as you navigate through the site. Information collected automatically may \r\ninclude usage details, IP addresses, and information collected through cookies, web \r\nbeacons, and other tracking technologies. \r\nFrom third parties, for example, our business partners. \r\nInformation You Provide to Us \r\n<br>\r\nThe information we collect on or through our Website may include: \r\n<br>\r\nInformation that you provide by filling in forms on our Website. This includes information \r\nprovided at the time of registering to use our Website, subscribing to our service, \r\nposting material, or requesting further services. We may also ask you for information \r\nwhen you report a problem with our Website. \r\n<br>\r\nRecords and copies of your correspondence (including email addresses), if you contact \r\nus. \r\n<br>\r\nYour responses to surveys that we might ask you to complete for research purposes. \r\nDetails of transactions you carry out through our Website and of the fulfillment of your \r\norders. You may be required to provide financial information before placing an order \r\nthrough our Website. \r\n<br>\r\nYour search queries on the Website. \r\n<br>\r\nAny other information you may provide by using the Website. \r\n<br>\r\nYou also may provide information to be published or displayed (hereinafter, <span class=\"h\">\"posted\"</span> ) \r\non public areas of the Website, or transmitted to other users of the Website or third \r\nparties (collectively, <span class=\"h\">\"User Contributions\"</span> ). Your User Contributions are posted on and \r\ntransmitted to others at your own risk. Although we limit access to certain pages, please \r\nbe aware that no security measures are perfect or impenetrable. Additionally, we cannot \r\ncontrol the actions of other users of the Website with whom you may choose to share \r\nyour User Contributions. Therefore, we cannot and do not guarantee that your User \r\nContributions will not be viewed by unauthorized persons. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">IInformation We Collect Through Automatic Data Collection Technologies</div>\r\n\r\n \r\nAs you navigate through and interact with our Website, we may use automatic data \r\ncollection technologies to collect certain information about your equipment, browsing \r\nactions, and patterns, including: \r\n<br>\r\nDetails of your visits to our Website, including but not limited to traffic data, location data, \r\nlogs, and other communication data and the resources that you access and use on the \r\nWebsite. \r\n<br>\r\nInformation about your computer and internet connection, including your IP address, \r\noperating system, and browser type. \r\n<br>\r\nThe information we collect automatically may include personal information, or we may \r\nmaintain it or associate it with personal information we collect in other ways or receive \r\nfrom third parties. It helps us to improve our Website and to deliver a better and more\r\npersonalized service, including by enabling us to:\r\n<br>\r\nEstimate our audience size and usage patterns.\r\n<br>\r\nStore information about your preferences, allowing us to customize our Website \r\naccording to your individual interests.\r\n<br>\r\nSpeed up your searches.\r\n<br>\r\nRecognize you when you return to our Website.\r\n<br>\r\nThe technologies we use for this automatic data collection may include:\r\n<br>\r\n<span class=\"h\">Cookies (or browser cookies).</span> A cookie is a small file placed on the hard drive of your \r\ncomputer. You may refuse to accept browser cookies by activating the appropriate \r\nsetting on your browser. However, if you select this setting you may be unable to access \r\ncertain parts of our Website. Unless you have adjusted your browser setting so that it \r\nwill refuse cookies, our system will issue cookies when you direct your browser to our \r\nWebsite. \r\n<br>\r\n<span class=\"h\">Web Beacons.</span> Pages of our Website and our emails may contain small electronic files \r\nknown as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) \r\nthat permit the Company, for example, to count users who have visited those pages or \r\nopened an email and for other related website statistics (for example, recording the \r\npopularity of certain website content and verifying system and server integrity). \r\n<br>\r\n<span class=\"h\">Flash Cookies.</span> Certain features of our Website may use local stored objects (or Flash \r\ncookies) to collect and store information about your preferences and navigation to, from, \r\nand on our Website. Flash cookies are not managed by the same browser settings as \r\nare used for browser cookies. For information about managing your privacy and security \r\nsettings for Flash cookies, see Choices About How We Use and Disclose Your \r\nInformation.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Third-Party Use of Cookies and Other Tracking Technologies</div>\r\n\r\nSome content or applications, including advertisements, on the Website may be served \r\nby third-parties, including advertisers, ad networks and servers, content providers, and \r\napplication providers. These third parties may use cookies alone or in conjunction with \r\nweb beacons or other tracking technologies to collect information about you when you \r\nuse our website. The information they collect may be associated with your personal \r\ninformation or they may collect information, including personal information, about your \r\nonline activities over time and across different websites and other online services. They \r\nmay use this information to provide you with interest-based (behavioral) advertising or \r\nother targeted content. \r\n<br>\r\nWe do not control these third parties' tracking technologies or how they may be used. If \r\nyou have any questions about an advertisement or other targeted content, you should \r\ncontact the responsible provider directly. For information about how you can opt out of \r\nreceiving targeted advertising from many providers, see Choices About How We Use \r\nand Disclose Your Information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">How We Use Your Information</div>\r\n\r\nWe use information that we collect about you or that you provide to us, including any \r\npersonal information:\r\n<br>\r\nTo present our Website and its contents to you.\r\n<br>\r\nTo provide you with information, products, or services that you request from us.\r\n<br>\r\nTo fulfill any other purpose for which you provide it.\r\n<br>\r\nTo provide you with notices about your account or subscription, including expiration and \r\n\u00A92025 {{PrivacyAndTerms?.companyName}}\r\n<br>\r\nProprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}} approved customers only.\r\n<br>\r\nDuplication or alteration is strictly prohibited without prior written consent.\r\nrenewal notices.\r\n<br>\r\nTo carry out our obligations and enforce our rights arising from any contracts entered \r\ninto between you and us, including for billing and collection.\r\n<br>\r\nTo notify you about changes to our Website or any products or services we offer or \r\nprovide though it.\r\n<br>\r\nTo allow you to participate in interactive features on our Website.\r\n<br>\r\nIn any other way we may describe when you provide the information.\r\n<br>\r\nFor any other purpose with your consent.\r\n<br>\r\nWe may also use your information to contact you about goods and services that may be \r\nof interest to you. If you do not want us to use your information in this way, please \r\n[check the relevant box located on the form on which we collect your data adjust your \r\nuser preferences in your account profile. For more information, see Choices About How \r\nWe Use and Disclose Your Information.\r\n<br>\r\nWe may use the information we have collected from you to enable us to display \r\nadvertisements to our advertisers' target audiences. Even though we do not disclose \r\nyour personal information for these purposes without your consent, if you click on or \r\notherwise interact with an advertisement, the advertiser may assume that you meet its \r\ntarget criteria.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Disclosure of Your Information</div>\r\n\r\nWe may disclose aggregated information about our users without restriction. \r\nWe may disclose personal information that we collect or you provide as described in this \r\nprivacy policy:\r\n<br>\r\nTo our subsidiaries and affiliates.\r\n<br>\r\nTo contractors, service providers, and other third parties we use to support our business.\r\n<br>\r\nTo a buyer or other successor in the event of a merger, divestiture, restructuring, \r\nreorganization, dissolution, or other sale or transfer of some or all of our assets, whether \r\nas a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which \r\npersonal information held by us about our Website users is among the assets \r\ntransferred.\r\n<br>\r\nTo third parties to market their products or services to you if you have not opted out of \r\nthese disclosures. For more information, see Choices About How We Use and Disclose \r\nYour Information.\r\n<br>\r\nTo fulfill the purpose for which you provide it. \r\n<br>\r\nFor any other purpose disclosed by us when you provide the information.\r\n<br>\r\nWith your consent.\r\n<br>\r\nWe may also disclose your personal information:\r\n<br>\r\nTo comply with any court order, law, or legal process, including to respond to any \r\ngovernment or regulatory request.\r\n<br>\r\nTo enforce or apply our terms of use and other agreements, including for billing and \r\ncollection purposes.\r\n<br>\r\nIf we believe disclosure is necessary or appropriate to protect the rights, property, or \r\nsafety of our company, our customers, or others. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Choices About How We Use and Disclose Your Information</div>\r\n\r\nWe strive to provide you with choices regarding the personal information you provide to \r\nus. We have created mechanisms to provide you with the following control over your \r\ninformation: \r\n<br>\r\n<span class=\"h\">Tracking Technologies and Advertising.</span> You can set your browser to refuse all or \r\nsome browser cookies, or to alert you when cookies are being sent. If you disable or \r\nrefuse cookies, please note that some parts of this site may then be inaccessible or not \r\nfunction properly.\r\n<br>\r\n<span class=\"h\">Disclosure of Your Information for Third-Party Advertising.</span> If you do not want us to \r\nshare your personal information with unaffiliated or non-agent third parties for \r\npromotional purposes, you can opt-out by logging into the Website and adjusting your \r\nuser preferences in your account profile or by sending us an email with your request to \r\n{{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n<br>\r\n<span class=\"h\">Promotional Offers from the Company.</span> If you do not wish to have your email address \r\nor contact information used by the Company to promote our own or third parties' \r\nproducts or services, you can opt-out by logging into the Website and adjusting your \r\nuser preferences in your account profile or by sending us an email stating your request \r\nto {{PrivacyAndTerms?.email}}. If we have sent you a promotional email, you may send us a \r\nreturn email asking to be omitted from future email distributions.\r\n<br> \r\n<span class=\"h\">Targeted Advertising.</span> If you do not want us to use information that we collect or that \r\nyou provide to us to deliver advertisements according to our advertisers' target\u0002audience preferences, you can opt-out by sending us an email stating your request to \r\n{{PrivacyAndTerms?.email}}.\r\n<br> \r\nWe do not control third parties' collection or use of your information to serve interest\u0002based advertising. However these third parties may provide you with ways to choose \r\nnot to have your information collected or used in this way. You can opt out of receiving \r\ntargeted ads from members of the Network Advertising Initiative (\"NAI\") on the NAI's \r\nwebsite.\r\n<br>\r\nResidents of certain states, such as California, Nevada, Colorado, Connecticut, Virginia, \r\nand Utah may have additional personal information rights and choices. Please see Your \r\nState Privacy Rights for more information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Accessing and Correcting Your Information</div>\r\nYou can review and change your personal information by logging into the Website and \r\nvisiting your account profile page.\r\n<br>\r\nResidents of certain states, such as California, Nevada, Colorado, Virginia, and Utah \r\nmay have additional personal information rights and choices. Please see Your State \r\nPrivacy Rights for more information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Your State Privacy Rights</div>\r\nState consumer privacy laws may provide their residents with additional rights regarding \r\nour use of their personal information.\r\n<br> \r\nColorado, Connecticut, Virginia, and Utah each provide their state residents with rights \r\nto:\r\n<br>\r\nConfirm whether we process their personal information.\r\n<br>\r\nAccess and delete certain personal information.\r\n<br>\r\nData portability.\r\n<br>\r\nOpt-out of personal data processing for targeted advertising and sales.\r\n<br>\r\nColorado, Connecticut, and Virginia also provide their state residents with rights to:\r\n<br>\r\nCorrect inaccuracies in their personal information, taking into account the information's \r\nnature processing purpose.\r\n<br>\r\nOpt-out of profiling in furtherance of decisions that produce legal or similarly significant\r\neffects. \r\n<br>\r\nTo exercise any of these rights please send an email to {{PrivacyAndTerms?.copyrightPolicyLink}}. To appeal a \r\ndecision regarding a consumer rights request send an email to {{PrivacyAndTerms?.email}}.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">For California Residents Only:</div>\r\n<span class=\"h\">California Privacy Rights</span> \r\n<br>\r\nThis section applies solely to individuals who reside in the State of California \r\n(\u201Cconsumers\u201D or \u201Cyou\u201D). We adopt this notice to comply with the California Consumer \r\nPrivacy Act of 2018 (CCPA), as amended by the California Privacy Rights Act of 2020 \r\n(CPRA), and any terms defined in the CCPA/CPRA have the same meaning when used \r\nin this section.\r\n<br>\r\n<span class=\"h\">Your Rights Under California Law</span>\r\n\r\n<br>\r\nIf you are a California resident, you have the following rights with respect to your \r\npersonal information:\r\n<br>\r\n<span class=\"h\">Right to Know/Access \u2013</span>\r\n You may request that we disclose to you the categories and \r\nspecific pieces of personal information we have collected about you, as well as the \r\nsources, purposes for collection, and categories of third parties to whom the information \r\nis disclosed.\r\n<br>\r\n<span class=\"h\">Right to Delete \u2013</span>\r\n You may request that we delete personal information we have \r\ncollected from you, subject to certain exceptions.\r\n<br>\r\n<span class=\"h\">Right to Correct \u2013</span>\r\n You may request that we correct inaccurate personal information \r\nthat we maintain about you.\r\n<br>\r\n<span class=\"h\">Right to Opt Out of Sale/Sharing \u2013 </span>\r\nYou may request that we do not \u201Csell\u201D or \u201Cshare\u201D \r\nyour personal information (as those terms are defined under the CCPA/CPRA). We do \r\nnot sell your personal information in the traditional sense, but if our practices change we \r\nwill update this policy and provide you with a method to exercise this right.\r\n<br>\r\n<span class=\"h\">Right to Limit Use of Sensitive Personal Information \u2013</span>\r\n\r\n If we collect sensitive \r\npersonal information (such as government ID numbers, precise geolocation, or financial \r\naccount information), you may direct us to limit its use to what is reasonably necessary \r\nto provide the services requested.\r\n<br>\r\n<span class=\"h\">Right of Non-Discrimination \u2013</span>\r\n\r\n We will not discriminate against you for exercising your \r\nprivacy rights.\r\n<br>\r\n<span class=\"h\">Exercising Your Rights</span>\r\n\r\n\r\n<br>\r\nTo exercise any of the rights described above, please submit a verifiable consumer \r\nrequest to us by:\r\n<br>\r\nEmail: {{PrivacyAndTerms?.email}}\r\n<br>\r\nPhone: {{PrivacyAndTerms?.phone}}\r\n<br>\r\nOnline request form: {{PrivacyAndTerms?.requestForm}}\r\n<br>\r\nOnly you, or someone legally authorized to act on your behalf, may make a verifiable \r\nconsumer request.\r\n<br>\r\n<span class=\"h\">Information We Collect\r\n</span>\r\n\r\n<br>\r\nIn the past 12 months, we may have collected the following categories of personal \r\ninformation about consumers:\r\n<br>\r\nIdentifiers (such as name, email address, phone number)\r\n<br>\r\nInternet or network activity (such as browsing history on our website)\r\n<br>\r\nCommercial information (such as records of products or services purchased)\r\n<br>\r\n\r\nGeolocation data (if you enable location services)\r\n<br>\r\nInferences drawn from other personal information (such as preferences or interests)\r\nWe collect this information for the purposes described in the \u201CHow We Use Your \r\nInformation\u201D section of our general Privacy Policy.\r\n<br>\r\n<span class=\"h\">Data Retention </span>\r\n\r\n<br>\r\nWe retain personal information for as long as necessary to fulfill the purposes described \r\nin this Privacy Policy, unless a longer retention period is required or permitted by law.\r\n<br>\r\n<span class=\"h\">Shine the Light Law </span>\r\n\r\n\r\n<br>\r\nCalifornia residents may also request certain information regarding our disclosure of \r\npersonal information to third parties for their direct marketing purposes under California \r\nCivil Code \u00A71798.83 (\u201CShine the Light\u201D law). To make such a request, please contact us \r\nat [Insert contact email].\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Data Security</div>\r\nUnfortunately, the transmission of information via the internet is not completely secure. \r\nAlthough we do our best to protect your personal information, we cannot guarantee the \r\nsecurity of your personal information transmitted to our Website. Any transmission of \r\npersonal information is at your own risk. We are not responsible for circumvention of \r\nany privacy settings or security measures contained on the Website.] \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Changes to Our Privacy Policy</div>\r\nIt is our policy to post any changes we make to our privacy policy on this page. If we \r\nmake material changes to how we treat our users' personal information, we will notify \r\nyou through a notice on the Website home page. The date the privacy policy was last \r\nrevised is identified at the top of the page. You are responsible for ensuring we have an \r\nup-to-date active and deliverable email address for you, and for periodically visiting our \r\nWebsite and this privacy policy to check for any changes.\r\n<br>\r\nContact Information\r\n<br>\r\nTo ask questions or comment about this privacy policy and our privacy practices, \r\ncontact us at: \r\n<br>\r\n{{PrivacyAndTerms?.email}}\r\n</div>\r\n\r\n\r\n<div class=\"content\">\r\n <p>\r\n \u00A92025 {{PrivacyAndTerms?.companyName}}.<br>\r\n Proprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}}t approved customers only.<br>\r\n Duplication or alteration is strictly prohibited without prior written consent.\r\n </p>\r\n <p class=\"last-modified\">Last modified: {{PrivacyAndTerms?.modifiedDate}}</p>\r\n </div>\r\n", styles: [".privacy-policy-modal{background:#fff;padding:30px 20px;max-width:650px;margin:auto;font-family:Arial,sans-serif;display:flex;flex-direction:column;align-items:center}.privacy-policy-modal .header{text-align:center;margin-bottom:40px}.privacy-policy-modal .header h1{font-size:26px;font-weight:700;margin:0}.privacy-policy-modal .logo-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:40px;width:100%;overflow:visible;min-height:100px}.privacy-policy-modal .logo-section img{display:block;max-width:180px;height:auto;margin-bottom:15px;position:relative;z-index:2}.privacy-policy-modal .logo-section .address{font-size:14px;line-height:1.6;margin-bottom:10px}.privacy-policy-modal .logo-section .address a{color:#007bff;text-decoration:none}.privacy-policy-modal .logo-section .address a:hover{text-decoration:underline}.privacy-policy-modal .logo-section .policy-title{font-weight:700;font-size:16px;margin-top:5px}.privacy-policy-modal .modal-footer{width:100%;display:flex;justify-content:center}.privacy-policy-modal .modal-footer .btn{padding:8px 25px;font-size:14px}.section-title{color:#000;text-decoration:underline;font-weight:700}.content{font-size:14px;line-height:1.7;text-align:center;margin-bottom:40px;margin-top:80px}.content .last-modified{margin-top:20px;font-size:12px;color:gray}.h{color:#000;font-weight:700}\n"] });
1205
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: PrivacyPolicyComponent, isStandalone: false, selector: "app-privacy-policy", inputs: { title: "title", branding: "branding", PrivacyAndTerms: "PrivacyAndTerms" }, ngImport: i0, template: "<div class=\"privacy-policy-modal\">\r\n <!-- Header -->\r\n <div class=\"header\">\r\n <h1>Website Privacy Policy</h1>\r\n </div>\r\n\r\n <!-- Logo and Address -->\r\n<div class=\"logo-section\" >\r\n <img [src]=\"branding?.logo\" [alt]=\"branding?.displayName\" />\r\n\r\n <p class=\"address\">\r\n {{ PrivacyAndTerms?.address1 }}\r\n {{ PrivacyAndTerms?.city }}\r\n {{ PrivacyAndTerms?.state }}\r\n {{ PrivacyAndTerms?.country }} {{ PrivacyAndTerms?.zipCode }}\r\n \r\n </p>\r\n</div>\r\n\r\n</div>\r\n\r\n<div style=\"margin-left: 10px;margin-right: 0px;font-size: 13.5px;\">\r\nLast modified: {{PrivacyAndTerms?.modifiedDate}}\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Introduction</div>\r\n{{PrivacyAndTerms?.companyName}}, LLC, a {{PrivacyAndTerms?.state}} limited liability company ( <span class=\"h\">\"Company\"</span> or <span class=\"h\">\"We\"</span>), \r\nrespect your privacy and are committed to protecting it through our compliance with this \r\npolicy. \r\n\r\n<br>\r\nThis policy describes the types of information we may collect from you or that you may \r\nprovide when you visit the website www.bootog.com (our \"Website\") and our practices \r\nfor collecting, using, maintaining, protecting, and disclosing that information. \r\n<br>\r\nThis policy applies to information we collect: \r\n<br>\r\nOn this Website. \r\n<br>\r\nIn email, text, and other electronic messages between you and this Website. \r\nThrough mobile and desktop applications you download from this Website, which \r\nprovide dedicated non-browser-based interaction between you and this Website. \r\nWhen you interact with our advertising and applications on third-party websites and \r\nservices. \r\n<br>\r\nIt does not apply to information collected by: \r\n<br>\r\nUs offline or through any other means, including on any other website operated by \r\nCompany or any third party (including our affiliates and subsidiaries); or \r\nAny third party (including our affiliates and subsidiaries), including through any \r\napplication or content (including advertising) that may link to or be accessible from or \r\nthrough the Website. \r\n<br>\r\nPlease read this policy carefully to understand our policies and practices regarding your \r\ninformation and how we will treat it. If you do not agree with our policies and practices, \r\nyour choice is not to use our Website. By accessing or using this Website, you agree to \r\nthis privacy policy. This policy may change from time to time (see Changes to Our \r\nPrivacy Policy). Your continued use of this Website after we make changes is deemed \r\nto be acceptance of those changes, so please check the policy periodically for updates. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Children Under the Age of 16</div> \r\nOur Website is not intended for children under 16 years of age. No one under age 16 \r\nmay provide any information to or on the Website. We do not knowingly collect personal \r\ninformation from children under 16. If you are under 16, do not use or provide any \r\ninformation on this Website or through any of its features, register on the Website, make \r\nany purchases through the Website, use any of the interactive or public comment \r\nfeatures of this Website, or provide any information about yourself to us, including your \r\nname, address, telephone number, email address, or any screen name or user name \r\nyou may use. If we learn we have collected or received personal information from a \r\nchild under 16 without verification of parental consent, we will delete that information. If \r\nyou believe we might have any information from or about a child under 16, please \r\ncontact us at {{PrivacyAndTerms?.email}}. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Information We Collect About You and How We Collect It </div>\r\n\r\nWe collect several types of information from and about users of our Website, including \r\ninformation: \r\n<br>\r\nBy which you may be personally identified, such as name, postal address, email \r\naddress, telephone number, social security number, any other personally identifiable \r\ninformation or any other identifier by which you may be contacted online or offline \r\n(<span class=\"h\">\"personal information\"</span>) \r\n<br>\r\nThat is about you but individually does not identify you; and/or \r\n<br>\r\nAbout your internet connection, the equipment you use to access our Website, and \r\nusage details. <br>\r\nWe collect this information: \r\n<br>\r\nDirectly from you when you provide it to us. \r\n<br>\r\nAutomatically as you navigate through the site. Information collected automatically may \r\ninclude usage details, IP addresses, and information collected through cookies, web \r\nbeacons, and other tracking technologies. \r\nFrom third parties, for example, our business partners. \r\nInformation You Provide to Us \r\n<br>\r\nThe information we collect on or through our Website may include: \r\n<br>\r\nInformation that you provide by filling in forms on our Website. This includes information \r\nprovided at the time of registering to use our Website, subscribing to our service, \r\nposting material, or requesting further services. We may also ask you for information \r\nwhen you report a problem with our Website. \r\n<br>\r\nRecords and copies of your correspondence (including email addresses), if you contact \r\nus. \r\n<br>\r\nYour responses to surveys that we might ask you to complete for research purposes. \r\nDetails of transactions you carry out through our Website and of the fulfillment of your \r\norders. You may be required to provide financial information before placing an order \r\nthrough our Website. \r\n<br>\r\nYour search queries on the Website. \r\n<br>\r\nAny other information you may provide by using the Website. \r\n<br>\r\nYou also may provide information to be published or displayed (hereinafter, <span class=\"h\">\"posted\"</span> ) \r\non public areas of the Website, or transmitted to other users of the Website or third \r\nparties (collectively, <span class=\"h\">\"User Contributions\"</span> ). Your User Contributions are posted on and \r\ntransmitted to others at your own risk. Although we limit access to certain pages, please \r\nbe aware that no security measures are perfect or impenetrable. Additionally, we cannot \r\ncontrol the actions of other users of the Website with whom you may choose to share \r\nyour User Contributions. Therefore, we cannot and do not guarantee that your User \r\nContributions will not be viewed by unauthorized persons. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">IInformation We Collect Through Automatic Data Collection Technologies</div>\r\n\r\n \r\nAs you navigate through and interact with our Website, we may use automatic data \r\ncollection technologies to collect certain information about your equipment, browsing \r\nactions, and patterns, including: \r\n<br>\r\nDetails of your visits to our Website, including but not limited to traffic data, location data, \r\nlogs, and other communication data and the resources that you access and use on the \r\nWebsite. \r\n<br>\r\nInformation about your computer and internet connection, including your IP address, \r\noperating system, and browser type. \r\n<br>\r\nThe information we collect automatically may include personal information, or we may \r\nmaintain it or associate it with personal information we collect in other ways or receive \r\nfrom third parties. It helps us to improve our Website and to deliver a better and more\r\npersonalized service, including by enabling us to:\r\n<br>\r\nEstimate our audience size and usage patterns.\r\n<br>\r\nStore information about your preferences, allowing us to customize our Website \r\naccording to your individual interests.\r\n<br>\r\nSpeed up your searches.\r\n<br>\r\nRecognize you when you return to our Website.\r\n<br>\r\nThe technologies we use for this automatic data collection may include:\r\n<br>\r\n<span class=\"h\">Cookies (or browser cookies).</span> A cookie is a small file placed on the hard drive of your \r\ncomputer. You may refuse to accept browser cookies by activating the appropriate \r\nsetting on your browser. However, if you select this setting you may be unable to access \r\ncertain parts of our Website. Unless you have adjusted your browser setting so that it \r\nwill refuse cookies, our system will issue cookies when you direct your browser to our \r\nWebsite. \r\n<br>\r\n<span class=\"h\">Web Beacons.</span> Pages of our Website and our emails may contain small electronic files \r\nknown as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) \r\nthat permit the Company, for example, to count users who have visited those pages or \r\nopened an email and for other related website statistics (for example, recording the \r\npopularity of certain website content and verifying system and server integrity). \r\n<br>\r\n<span class=\"h\">Flash Cookies.</span> Certain features of our Website may use local stored objects (or Flash \r\ncookies) to collect and store information about your preferences and navigation to, from, \r\nand on our Website. Flash cookies are not managed by the same browser settings as \r\nare used for browser cookies. For information about managing your privacy and security \r\nsettings for Flash cookies, see Choices About How We Use and Disclose Your \r\nInformation.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Third-Party Use of Cookies and Other Tracking Technologies</div>\r\n\r\nSome content or applications, including advertisements, on the Website may be served \r\nby third-parties, including advertisers, ad networks and servers, content providers, and \r\napplication providers. These third parties may use cookies alone or in conjunction with \r\nweb beacons or other tracking technologies to collect information about you when you \r\nuse our website. The information they collect may be associated with your personal \r\ninformation or they may collect information, including personal information, about your \r\nonline activities over time and across different websites and other online services. They \r\nmay use this information to provide you with interest-based (behavioral) advertising or \r\nother targeted content. \r\n<br>\r\nWe do not control these third parties' tracking technologies or how they may be used. If \r\nyou have any questions about an advertisement or other targeted content, you should \r\ncontact the responsible provider directly. For information about how you can opt out of \r\nreceiving targeted advertising from many providers, see Choices About How We Use \r\nand Disclose Your Information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">How We Use Your Information</div>\r\n\r\nWe use information that we collect about you or that you provide to us, including any \r\npersonal information:\r\n<br>\r\nTo present our Website and its contents to you.\r\n<br>\r\nTo provide you with information, products, or services that you request from us.\r\n<br>\r\nTo fulfill any other purpose for which you provide it.\r\n<br>\r\nTo provide you with notices about your account or subscription, including expiration and \r\n\u00A92025 {{PrivacyAndTerms?.companyName}}\r\n<br>\r\nProprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}} approved customers only.\r\n<br>\r\nDuplication or alteration is strictly prohibited without prior written consent.\r\nrenewal notices.\r\n<br>\r\nTo carry out our obligations and enforce our rights arising from any contracts entered \r\ninto between you and us, including for billing and collection.\r\n<br>\r\nTo notify you about changes to our Website or any products or services we offer or \r\nprovide though it.\r\n<br>\r\nTo allow you to participate in interactive features on our Website.\r\n<br>\r\nIn any other way we may describe when you provide the information.\r\n<br>\r\nFor any other purpose with your consent.\r\n<br>\r\nWe may also use your information to contact you about goods and services that may be \r\nof interest to you. If you do not want us to use your information in this way, please \r\n[check the relevant box located on the form on which we collect your data adjust your \r\nuser preferences in your account profile. For more information, see Choices About How \r\nWe Use and Disclose Your Information.\r\n<br>\r\nWe may use the information we have collected from you to enable us to display \r\nadvertisements to our advertisers' target audiences. Even though we do not disclose \r\nyour personal information for these purposes without your consent, if you click on or \r\notherwise interact with an advertisement, the advertiser may assume that you meet its \r\ntarget criteria.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Disclosure of Your Information</div>\r\n\r\nWe may disclose aggregated information about our users without restriction. \r\nWe may disclose personal information that we collect or you provide as described in this \r\nprivacy policy:\r\n<br>\r\nTo our subsidiaries and affiliates.\r\n<br>\r\nTo contractors, service providers, and other third parties we use to support our business.\r\n<br>\r\nTo a buyer or other successor in the event of a merger, divestiture, restructuring, \r\nreorganization, dissolution, or other sale or transfer of some or all of our assets, whether \r\nas a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which \r\npersonal information held by us about our Website users is among the assets \r\ntransferred.\r\n<br>\r\nTo third parties to market their products or services to you if you have not opted out of \r\nthese disclosures. For more information, see Choices About How We Use and Disclose \r\nYour Information.\r\n<br>\r\nTo fulfill the purpose for which you provide it. \r\n<br>\r\nFor any other purpose disclosed by us when you provide the information.\r\n<br>\r\nWith your consent.\r\n<br>\r\nWe may also disclose your personal information:\r\n<br>\r\nTo comply with any court order, law, or legal process, including to respond to any \r\ngovernment or regulatory request.\r\n<br>\r\nTo enforce or apply our terms of use and other agreements, including for billing and \r\ncollection purposes.\r\n<br>\r\nIf we believe disclosure is necessary or appropriate to protect the rights, property, or \r\nsafety of our company, our customers, or others. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Choices About How We Use and Disclose Your Information</div>\r\n\r\nWe strive to provide you with choices regarding the personal information you provide to \r\nus. We have created mechanisms to provide you with the following control over your \r\ninformation: \r\n<br>\r\n<span class=\"h\">Tracking Technologies and Advertising.</span> You can set your browser to refuse all or \r\nsome browser cookies, or to alert you when cookies are being sent. If you disable or \r\nrefuse cookies, please note that some parts of this site may then be inaccessible or not \r\nfunction properly.\r\n<br>\r\n<span class=\"h\">Disclosure of Your Information for Third-Party Advertising.</span> If you do not want us to \r\nshare your personal information with unaffiliated or non-agent third parties for \r\npromotional purposes, you can opt-out by logging into the Website and adjusting your \r\nuser preferences in your account profile or by sending us an email with your request to \r\n{{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n<br>\r\n<span class=\"h\">Promotional Offers from the Company.</span> If you do not wish to have your email address \r\nor contact information used by the Company to promote our own or third parties' \r\nproducts or services, you can opt-out by logging into the Website and adjusting your \r\nuser preferences in your account profile or by sending us an email stating your request \r\nto {{PrivacyAndTerms?.email}}. If we have sent you a promotional email, you may send us a \r\nreturn email asking to be omitted from future email distributions.\r\n<br> \r\n<span class=\"h\">Targeted Advertising.</span> If you do not want us to use information that we collect or that \r\nyou provide to us to deliver advertisements according to our advertisers' target\u0002audience preferences, you can opt-out by sending us an email stating your request to \r\n{{PrivacyAndTerms?.email}}.\r\n<br> \r\nWe do not control third parties' collection or use of your information to serve interest\u0002based advertising. However these third parties may provide you with ways to choose \r\nnot to have your information collected or used in this way. You can opt out of receiving \r\ntargeted ads from members of the Network Advertising Initiative (\"NAI\") on the NAI's \r\nwebsite.\r\n<br>\r\nResidents of certain states, such as California, Nevada, Colorado, Connecticut, Virginia, \r\nand Utah may have additional personal information rights and choices. Please see Your \r\nState Privacy Rights for more information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Accessing and Correcting Your Information</div>\r\nYou can review and change your personal information by logging into the Website and \r\nvisiting your account profile page.\r\n<br>\r\nResidents of certain states, such as California, Nevada, Colorado, Virginia, and Utah \r\nmay have additional personal information rights and choices. Please see Your State \r\nPrivacy Rights for more information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Your State Privacy Rights</div>\r\nState consumer privacy laws may provide their residents with additional rights regarding \r\nour use of their personal information.\r\n<br> \r\nColorado, Connecticut, Virginia, and Utah each provide their state residents with rights \r\nto:\r\n<br>\r\nConfirm whether we process their personal information.\r\n<br>\r\nAccess and delete certain personal information.\r\n<br>\r\nData portability.\r\n<br>\r\nOpt-out of personal data processing for targeted advertising and sales.\r\n<br>\r\nColorado, Connecticut, and Virginia also provide their state residents with rights to:\r\n<br>\r\nCorrect inaccuracies in their personal information, taking into account the information's \r\nnature processing purpose.\r\n<br>\r\nOpt-out of profiling in furtherance of decisions that produce legal or similarly significant\r\neffects. \r\n<br>\r\nTo exercise any of these rights please send an email to {{PrivacyAndTerms?.copyrightPolicyLink}}. To appeal a \r\ndecision regarding a consumer rights request send an email to {{PrivacyAndTerms?.email}}.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">For California Residents Only:</div>\r\n<span class=\"h\">California Privacy Rights</span> \r\n<br>\r\nThis section applies solely to individuals who reside in the State of California \r\n(\u201Cconsumers\u201D or \u201Cyou\u201D). We adopt this notice to comply with the California Consumer \r\nPrivacy Act of 2018 (CCPA), as amended by the California Privacy Rights Act of 2020 \r\n(CPRA), and any terms defined in the CCPA/CPRA have the same meaning when used \r\nin this section.\r\n<br>\r\n<span class=\"h\">Your Rights Under California Law</span>\r\n\r\n<br>\r\nIf you are a California resident, you have the following rights with respect to your \r\npersonal information:\r\n<br>\r\n<span class=\"h\">Right to Know/Access \u2013</span>\r\n You may request that we disclose to you the categories and \r\nspecific pieces of personal information we have collected about you, as well as the \r\nsources, purposes for collection, and categories of third parties to whom the information \r\nis disclosed.\r\n<br>\r\n<span class=\"h\">Right to Delete \u2013</span>\r\n You may request that we delete personal information we have \r\ncollected from you, subject to certain exceptions.\r\n<br>\r\n<span class=\"h\">Right to Correct \u2013</span>\r\n You may request that we correct inaccurate personal information \r\nthat we maintain about you.\r\n<br>\r\n<span class=\"h\">Right to Opt Out of Sale/Sharing \u2013 </span>\r\nYou may request that we do not \u201Csell\u201D or \u201Cshare\u201D \r\nyour personal information (as those terms are defined under the CCPA/CPRA). We do \r\nnot sell your personal information in the traditional sense, but if our practices change we \r\nwill update this policy and provide you with a method to exercise this right.\r\n<br>\r\n<span class=\"h\">Right to Limit Use of Sensitive Personal Information \u2013</span>\r\n\r\n If we collect sensitive \r\npersonal information (such as government ID numbers, precise geolocation, or financial \r\naccount information), you may direct us to limit its use to what is reasonably necessary \r\nto provide the services requested.\r\n<br>\r\n<span class=\"h\">Right of Non-Discrimination \u2013</span>\r\n\r\n We will not discriminate against you for exercising your \r\nprivacy rights.\r\n<br>\r\n<span class=\"h\">Exercising Your Rights</span>\r\n\r\n\r\n<br>\r\nTo exercise any of the rights described above, please submit a verifiable consumer \r\nrequest to us by:\r\n<br>\r\nEmail: {{PrivacyAndTerms?.email}}\r\n<br>\r\nPhone: {{PrivacyAndTerms?.phone}}\r\n<br>\r\nOnline request form: {{PrivacyAndTerms?.requestForm}}\r\n<br>\r\nOnly you, or someone legally authorized to act on your behalf, may make a verifiable \r\nconsumer request.\r\n<br>\r\n<span class=\"h\">Information We Collect\r\n</span>\r\n\r\n<br>\r\nIn the past 12 months, we may have collected the following categories of personal \r\ninformation about consumers:\r\n<br>\r\nIdentifiers (such as name, email address, phone number)\r\n<br>\r\nInternet or network activity (such as browsing history on our website)\r\n<br>\r\nCommercial information (such as records of products or services purchased)\r\n<br>\r\n\r\nGeolocation data (if you enable location services)\r\n<br>\r\nInferences drawn from other personal information (such as preferences or interests)\r\nWe collect this information for the purposes described in the \u201CHow We Use Your \r\nInformation\u201D section of our general Privacy Policy.\r\n<br>\r\n<span class=\"h\">Data Retention </span>\r\n\r\n<br>\r\nWe retain personal information for as long as necessary to fulfill the purposes described \r\nin this Privacy Policy, unless a longer retention period is required or permitted by law.\r\n<br>\r\n<span class=\"h\">Shine the Light Law </span>\r\n\r\n\r\n<br>\r\nCalifornia residents may also request certain information regarding our disclosure of \r\npersonal information to third parties for their direct marketing purposes under California \r\nCivil Code \u00A71798.83 (\u201CShine the Light\u201D law). To make such a request, please contact us \r\nat [Insert contact email].\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Data Security</div>\r\nUnfortunately, the transmission of information via the internet is not completely secure. \r\nAlthough we do our best to protect your personal information, we cannot guarantee the \r\nsecurity of your personal information transmitted to our Website. Any transmission of \r\npersonal information is at your own risk. We are not responsible for circumvention of \r\nany privacy settings or security measures contained on the Website.] \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Changes to Our Privacy Policy</div>\r\nIt is our policy to post any changes we make to our privacy policy on this page. If we \r\nmake material changes to how we treat our users' personal information, we will notify \r\nyou through a notice on the Website home page. The date the privacy policy was last \r\nrevised is identified at the top of the page. You are responsible for ensuring we have an \r\nup-to-date active and deliverable email address for you, and for periodically visiting our \r\nWebsite and this privacy policy to check for any changes.\r\n<br>\r\nContact Information\r\n<br>\r\nTo ask questions or comment about this privacy policy and our privacy practices, \r\ncontact us at: \r\n<br>\r\n{{PrivacyAndTerms?.email}}\r\n</div>\r\n\r\n\r\n<div class=\"content\">\r\n <p>\r\n \u00A9{{PrivacyAndTerms?.currentYear}} {{PrivacyAndTerms?.companyName}}.<br>\r\n Proprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}}t approved customers only.<br>\r\n Duplication or alteration is strictly prohibited without prior written consent.\r\n </p>\r\n <p class=\"last-modified\">Last modified: {{PrivacyAndTerms?.modifiedDate}}</p>\r\n </div>\r\n", styles: [".privacy-policy-modal{background:#fff;padding:0 20px;max-width:650px;margin:auto;font-family:Arial,sans-serif;display:flex;flex-direction:column;align-items:center}.privacy-policy-modal .header{text-align:center;margin-bottom:40px}.privacy-policy-modal .header h1{font-size:26px;font-weight:700;margin:0}.privacy-policy-modal .logo-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:-10px;width:100%;overflow:visible;min-height:100px}.privacy-policy-modal .logo-section img{display:block;max-width:180px;height:auto;margin-bottom:15px;position:relative;z-index:2}.privacy-policy-modal .logo-section .address{font-size:14px;line-height:1.6;margin-bottom:10px}.privacy-policy-modal .logo-section .address a{color:#007bff;text-decoration:none}.privacy-policy-modal .logo-section .address a:hover{text-decoration:underline}.privacy-policy-modal .logo-section .policy-title{font-weight:700;font-size:16px;margin-top:5px}.privacy-policy-modal .modal-footer{width:100%;display:flex;justify-content:center}.privacy-policy-modal .modal-footer .btn{padding:8px 25px;font-size:14px}.section-title{color:#000;text-decoration:underline;font-weight:700}.content{font-size:14px;line-height:1.7;text-align:center;margin-bottom:40px;margin-top:80px}.content .last-modified{margin-top:20px;font-size:12px;color:gray}.h{color:#000;font-weight:700}\n"] });
1198
1206
  }
1199
1207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PrivacyPolicyComponent, decorators: [{
1200
1208
  type: Component,
1201
- args: [{ standalone: false, selector: 'app-privacy-policy', template: "<div class=\"privacy-policy-modal\">\r\n <!-- Header -->\r\n <div class=\"header\">\r\n <h1>Website Privacy Policy</h1>\r\n </div>\r\n\r\n <!-- Logo and Address -->\r\n<div class=\"logo-section\" >\r\n <img [src]=\"branding?.logo\" [alt]=\"branding?.displayName\" />\r\n\r\n <p class=\"address\">\r\n {{ PrivacyAndTerms?.address1 }}\r\n {{ PrivacyAndTerms?.city }}\r\n {{ PrivacyAndTerms?.state }}\r\n {{ PrivacyAndTerms?.country }} {{ PrivacyAndTerms?.zipCode }}\r\n \r\n </p>\r\n</div>\r\n\r\n</div>\r\n\r\n<div style=\"margin-left: 60px;margin-right: 60px;font-size: 13.5px;\">\r\nLast modified: {{PrivacyAndTerms?.modifiedDate}}\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Introduction</div>\r\n{{PrivacyAndTerms?.companyName}}, LLC, a {{PrivacyAndTerms?.state}} limited liability company ( <span class=\"h\">\"Company\"</span> or <span class=\"h\">\"We\"</span>), \r\nrespect your privacy and are committed to protecting it through our compliance with this \r\npolicy. \r\n\r\n<br>\r\nThis policy describes the types of information we may collect from you or that you may \r\nprovide when you visit the website www.bootog.com (our \"Website\") and our practices \r\nfor collecting, using, maintaining, protecting, and disclosing that information. \r\n<br>\r\nThis policy applies to information we collect: \r\n<br>\r\nOn this Website. \r\n<br>\r\nIn email, text, and other electronic messages between you and this Website. \r\nThrough mobile and desktop applications you download from this Website, which \r\nprovide dedicated non-browser-based interaction between you and this Website. \r\nWhen you interact with our advertising and applications on third-party websites and \r\nservices. \r\n<br>\r\nIt does not apply to information collected by: \r\n<br>\r\nUs offline or through any other means, including on any other website operated by \r\nCompany or any third party (including our affiliates and subsidiaries); or \r\nAny third party (including our affiliates and subsidiaries), including through any \r\napplication or content (including advertising) that may link to or be accessible from or \r\nthrough the Website. \r\n<br>\r\nPlease read this policy carefully to understand our policies and practices regarding your \r\ninformation and how we will treat it. If you do not agree with our policies and practices, \r\nyour choice is not to use our Website. By accessing or using this Website, you agree to \r\nthis privacy policy. This policy may change from time to time (see Changes to Our \r\nPrivacy Policy). Your continued use of this Website after we make changes is deemed \r\nto be acceptance of those changes, so please check the policy periodically for updates. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Children Under the Age of 16</div> \r\nOur Website is not intended for children under 16 years of age. No one under age 16 \r\nmay provide any information to or on the Website. We do not knowingly collect personal \r\ninformation from children under 16. If you are under 16, do not use or provide any \r\ninformation on this Website or through any of its features, register on the Website, make \r\nany purchases through the Website, use any of the interactive or public comment \r\nfeatures of this Website, or provide any information about yourself to us, including your \r\nname, address, telephone number, email address, or any screen name or user name \r\nyou may use. If we learn we have collected or received personal information from a \r\nchild under 16 without verification of parental consent, we will delete that information. If \r\nyou believe we might have any information from or about a child under 16, please \r\ncontact us at {{PrivacyAndTerms?.email}}. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Information We Collect About You and How We Collect It </div>\r\n\r\nWe collect several types of information from and about users of our Website, including \r\ninformation: \r\n<br>\r\nBy which you may be personally identified, such as name, postal address, email \r\naddress, telephone number, social security number, any other personally identifiable \r\ninformation or any other identifier by which you may be contacted online or offline \r\n(<span class=\"h\">\"personal information\"</span>) \r\n<br>\r\nThat is about you but individually does not identify you; and/or \r\n<br>\r\nAbout your internet connection, the equipment you use to access our Website, and \r\nusage details. <br>\r\nWe collect this information: \r\n<br>\r\nDirectly from you when you provide it to us. \r\n<br>\r\nAutomatically as you navigate through the site. Information collected automatically may \r\ninclude usage details, IP addresses, and information collected through cookies, web \r\nbeacons, and other tracking technologies. \r\nFrom third parties, for example, our business partners. \r\nInformation You Provide to Us \r\n<br>\r\nThe information we collect on or through our Website may include: \r\n<br>\r\nInformation that you provide by filling in forms on our Website. This includes information \r\nprovided at the time of registering to use our Website, subscribing to our service, \r\nposting material, or requesting further services. We may also ask you for information \r\nwhen you report a problem with our Website. \r\n<br>\r\nRecords and copies of your correspondence (including email addresses), if you contact \r\nus. \r\n<br>\r\nYour responses to surveys that we might ask you to complete for research purposes. \r\nDetails of transactions you carry out through our Website and of the fulfillment of your \r\norders. You may be required to provide financial information before placing an order \r\nthrough our Website. \r\n<br>\r\nYour search queries on the Website. \r\n<br>\r\nAny other information you may provide by using the Website. \r\n<br>\r\nYou also may provide information to be published or displayed (hereinafter, <span class=\"h\">\"posted\"</span> ) \r\non public areas of the Website, or transmitted to other users of the Website or third \r\nparties (collectively, <span class=\"h\">\"User Contributions\"</span> ). Your User Contributions are posted on and \r\ntransmitted to others at your own risk. Although we limit access to certain pages, please \r\nbe aware that no security measures are perfect or impenetrable. Additionally, we cannot \r\ncontrol the actions of other users of the Website with whom you may choose to share \r\nyour User Contributions. Therefore, we cannot and do not guarantee that your User \r\nContributions will not be viewed by unauthorized persons. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">IInformation We Collect Through Automatic Data Collection Technologies</div>\r\n\r\n \r\nAs you navigate through and interact with our Website, we may use automatic data \r\ncollection technologies to collect certain information about your equipment, browsing \r\nactions, and patterns, including: \r\n<br>\r\nDetails of your visits to our Website, including but not limited to traffic data, location data, \r\nlogs, and other communication data and the resources that you access and use on the \r\nWebsite. \r\n<br>\r\nInformation about your computer and internet connection, including your IP address, \r\noperating system, and browser type. \r\n<br>\r\nThe information we collect automatically may include personal information, or we may \r\nmaintain it or associate it with personal information we collect in other ways or receive \r\nfrom third parties. It helps us to improve our Website and to deliver a better and more\r\npersonalized service, including by enabling us to:\r\n<br>\r\nEstimate our audience size and usage patterns.\r\n<br>\r\nStore information about your preferences, allowing us to customize our Website \r\naccording to your individual interests.\r\n<br>\r\nSpeed up your searches.\r\n<br>\r\nRecognize you when you return to our Website.\r\n<br>\r\nThe technologies we use for this automatic data collection may include:\r\n<br>\r\n<span class=\"h\">Cookies (or browser cookies).</span> A cookie is a small file placed on the hard drive of your \r\ncomputer. You may refuse to accept browser cookies by activating the appropriate \r\nsetting on your browser. However, if you select this setting you may be unable to access \r\ncertain parts of our Website. Unless you have adjusted your browser setting so that it \r\nwill refuse cookies, our system will issue cookies when you direct your browser to our \r\nWebsite. \r\n<br>\r\n<span class=\"h\">Web Beacons.</span> Pages of our Website and our emails may contain small electronic files \r\nknown as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) \r\nthat permit the Company, for example, to count users who have visited those pages or \r\nopened an email and for other related website statistics (for example, recording the \r\npopularity of certain website content and verifying system and server integrity). \r\n<br>\r\n<span class=\"h\">Flash Cookies.</span> Certain features of our Website may use local stored objects (or Flash \r\ncookies) to collect and store information about your preferences and navigation to, from, \r\nand on our Website. Flash cookies are not managed by the same browser settings as \r\nare used for browser cookies. For information about managing your privacy and security \r\nsettings for Flash cookies, see Choices About How We Use and Disclose Your \r\nInformation.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Third-Party Use of Cookies and Other Tracking Technologies</div>\r\n\r\nSome content or applications, including advertisements, on the Website may be served \r\nby third-parties, including advertisers, ad networks and servers, content providers, and \r\napplication providers. These third parties may use cookies alone or in conjunction with \r\nweb beacons or other tracking technologies to collect information about you when you \r\nuse our website. The information they collect may be associated with your personal \r\ninformation or they may collect information, including personal information, about your \r\nonline activities over time and across different websites and other online services. They \r\nmay use this information to provide you with interest-based (behavioral) advertising or \r\nother targeted content. \r\n<br>\r\nWe do not control these third parties' tracking technologies or how they may be used. If \r\nyou have any questions about an advertisement or other targeted content, you should \r\ncontact the responsible provider directly. For information about how you can opt out of \r\nreceiving targeted advertising from many providers, see Choices About How We Use \r\nand Disclose Your Information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">How We Use Your Information</div>\r\n\r\nWe use information that we collect about you or that you provide to us, including any \r\npersonal information:\r\n<br>\r\nTo present our Website and its contents to you.\r\n<br>\r\nTo provide you with information, products, or services that you request from us.\r\n<br>\r\nTo fulfill any other purpose for which you provide it.\r\n<br>\r\nTo provide you with notices about your account or subscription, including expiration and \r\n\u00A92025 {{PrivacyAndTerms?.companyName}}\r\n<br>\r\nProprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}} approved customers only.\r\n<br>\r\nDuplication or alteration is strictly prohibited without prior written consent.\r\nrenewal notices.\r\n<br>\r\nTo carry out our obligations and enforce our rights arising from any contracts entered \r\ninto between you and us, including for billing and collection.\r\n<br>\r\nTo notify you about changes to our Website or any products or services we offer or \r\nprovide though it.\r\n<br>\r\nTo allow you to participate in interactive features on our Website.\r\n<br>\r\nIn any other way we may describe when you provide the information.\r\n<br>\r\nFor any other purpose with your consent.\r\n<br>\r\nWe may also use your information to contact you about goods and services that may be \r\nof interest to you. If you do not want us to use your information in this way, please \r\n[check the relevant box located on the form on which we collect your data adjust your \r\nuser preferences in your account profile. For more information, see Choices About How \r\nWe Use and Disclose Your Information.\r\n<br>\r\nWe may use the information we have collected from you to enable us to display \r\nadvertisements to our advertisers' target audiences. Even though we do not disclose \r\nyour personal information for these purposes without your consent, if you click on or \r\notherwise interact with an advertisement, the advertiser may assume that you meet its \r\ntarget criteria.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Disclosure of Your Information</div>\r\n\r\nWe may disclose aggregated information about our users without restriction. \r\nWe may disclose personal information that we collect or you provide as described in this \r\nprivacy policy:\r\n<br>\r\nTo our subsidiaries and affiliates.\r\n<br>\r\nTo contractors, service providers, and other third parties we use to support our business.\r\n<br>\r\nTo a buyer or other successor in the event of a merger, divestiture, restructuring, \r\nreorganization, dissolution, or other sale or transfer of some or all of our assets, whether \r\nas a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which \r\npersonal information held by us about our Website users is among the assets \r\ntransferred.\r\n<br>\r\nTo third parties to market their products or services to you if you have not opted out of \r\nthese disclosures. For more information, see Choices About How We Use and Disclose \r\nYour Information.\r\n<br>\r\nTo fulfill the purpose for which you provide it. \r\n<br>\r\nFor any other purpose disclosed by us when you provide the information.\r\n<br>\r\nWith your consent.\r\n<br>\r\nWe may also disclose your personal information:\r\n<br>\r\nTo comply with any court order, law, or legal process, including to respond to any \r\ngovernment or regulatory request.\r\n<br>\r\nTo enforce or apply our terms of use and other agreements, including for billing and \r\ncollection purposes.\r\n<br>\r\nIf we believe disclosure is necessary or appropriate to protect the rights, property, or \r\nsafety of our company, our customers, or others. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Choices About How We Use and Disclose Your Information</div>\r\n\r\nWe strive to provide you with choices regarding the personal information you provide to \r\nus. We have created mechanisms to provide you with the following control over your \r\ninformation: \r\n<br>\r\n<span class=\"h\">Tracking Technologies and Advertising.</span> You can set your browser to refuse all or \r\nsome browser cookies, or to alert you when cookies are being sent. If you disable or \r\nrefuse cookies, please note that some parts of this site may then be inaccessible or not \r\nfunction properly.\r\n<br>\r\n<span class=\"h\">Disclosure of Your Information for Third-Party Advertising.</span> If you do not want us to \r\nshare your personal information with unaffiliated or non-agent third parties for \r\npromotional purposes, you can opt-out by logging into the Website and adjusting your \r\nuser preferences in your account profile or by sending us an email with your request to \r\n{{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n<br>\r\n<span class=\"h\">Promotional Offers from the Company.</span> If you do not wish to have your email address \r\nor contact information used by the Company to promote our own or third parties' \r\nproducts or services, you can opt-out by logging into the Website and adjusting your \r\nuser preferences in your account profile or by sending us an email stating your request \r\nto {{PrivacyAndTerms?.email}}. If we have sent you a promotional email, you may send us a \r\nreturn email asking to be omitted from future email distributions.\r\n<br> \r\n<span class=\"h\">Targeted Advertising.</span> If you do not want us to use information that we collect or that \r\nyou provide to us to deliver advertisements according to our advertisers' target\u0002audience preferences, you can opt-out by sending us an email stating your request to \r\n{{PrivacyAndTerms?.email}}.\r\n<br> \r\nWe do not control third parties' collection or use of your information to serve interest\u0002based advertising. However these third parties may provide you with ways to choose \r\nnot to have your information collected or used in this way. You can opt out of receiving \r\ntargeted ads from members of the Network Advertising Initiative (\"NAI\") on the NAI's \r\nwebsite.\r\n<br>\r\nResidents of certain states, such as California, Nevada, Colorado, Connecticut, Virginia, \r\nand Utah may have additional personal information rights and choices. Please see Your \r\nState Privacy Rights for more information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Accessing and Correcting Your Information</div>\r\nYou can review and change your personal information by logging into the Website and \r\nvisiting your account profile page.\r\n<br>\r\nResidents of certain states, such as California, Nevada, Colorado, Virginia, and Utah \r\nmay have additional personal information rights and choices. Please see Your State \r\nPrivacy Rights for more information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Your State Privacy Rights</div>\r\nState consumer privacy laws may provide their residents with additional rights regarding \r\nour use of their personal information.\r\n<br> \r\nColorado, Connecticut, Virginia, and Utah each provide their state residents with rights \r\nto:\r\n<br>\r\nConfirm whether we process their personal information.\r\n<br>\r\nAccess and delete certain personal information.\r\n<br>\r\nData portability.\r\n<br>\r\nOpt-out of personal data processing for targeted advertising and sales.\r\n<br>\r\nColorado, Connecticut, and Virginia also provide their state residents with rights to:\r\n<br>\r\nCorrect inaccuracies in their personal information, taking into account the information's \r\nnature processing purpose.\r\n<br>\r\nOpt-out of profiling in furtherance of decisions that produce legal or similarly significant\r\neffects. \r\n<br>\r\nTo exercise any of these rights please send an email to {{PrivacyAndTerms?.copyrightPolicyLink}}. To appeal a \r\ndecision regarding a consumer rights request send an email to {{PrivacyAndTerms?.email}}.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">For California Residents Only:</div>\r\n<span class=\"h\">California Privacy Rights</span> \r\n<br>\r\nThis section applies solely to individuals who reside in the State of California \r\n(\u201Cconsumers\u201D or \u201Cyou\u201D). We adopt this notice to comply with the California Consumer \r\nPrivacy Act of 2018 (CCPA), as amended by the California Privacy Rights Act of 2020 \r\n(CPRA), and any terms defined in the CCPA/CPRA have the same meaning when used \r\nin this section.\r\n<br>\r\n<span class=\"h\">Your Rights Under California Law</span>\r\n\r\n<br>\r\nIf you are a California resident, you have the following rights with respect to your \r\npersonal information:\r\n<br>\r\n<span class=\"h\">Right to Know/Access \u2013</span>\r\n You may request that we disclose to you the categories and \r\nspecific pieces of personal information we have collected about you, as well as the \r\nsources, purposes for collection, and categories of third parties to whom the information \r\nis disclosed.\r\n<br>\r\n<span class=\"h\">Right to Delete \u2013</span>\r\n You may request that we delete personal information we have \r\ncollected from you, subject to certain exceptions.\r\n<br>\r\n<span class=\"h\">Right to Correct \u2013</span>\r\n You may request that we correct inaccurate personal information \r\nthat we maintain about you.\r\n<br>\r\n<span class=\"h\">Right to Opt Out of Sale/Sharing \u2013 </span>\r\nYou may request that we do not \u201Csell\u201D or \u201Cshare\u201D \r\nyour personal information (as those terms are defined under the CCPA/CPRA). We do \r\nnot sell your personal information in the traditional sense, but if our practices change we \r\nwill update this policy and provide you with a method to exercise this right.\r\n<br>\r\n<span class=\"h\">Right to Limit Use of Sensitive Personal Information \u2013</span>\r\n\r\n If we collect sensitive \r\npersonal information (such as government ID numbers, precise geolocation, or financial \r\naccount information), you may direct us to limit its use to what is reasonably necessary \r\nto provide the services requested.\r\n<br>\r\n<span class=\"h\">Right of Non-Discrimination \u2013</span>\r\n\r\n We will not discriminate against you for exercising your \r\nprivacy rights.\r\n<br>\r\n<span class=\"h\">Exercising Your Rights</span>\r\n\r\n\r\n<br>\r\nTo exercise any of the rights described above, please submit a verifiable consumer \r\nrequest to us by:\r\n<br>\r\nEmail: {{PrivacyAndTerms?.email}}\r\n<br>\r\nPhone: {{PrivacyAndTerms?.phone}}\r\n<br>\r\nOnline request form: {{PrivacyAndTerms?.requestForm}}\r\n<br>\r\nOnly you, or someone legally authorized to act on your behalf, may make a verifiable \r\nconsumer request.\r\n<br>\r\n<span class=\"h\">Information We Collect\r\n</span>\r\n\r\n<br>\r\nIn the past 12 months, we may have collected the following categories of personal \r\ninformation about consumers:\r\n<br>\r\nIdentifiers (such as name, email address, phone number)\r\n<br>\r\nInternet or network activity (such as browsing history on our website)\r\n<br>\r\nCommercial information (such as records of products or services purchased)\r\n<br>\r\n\r\nGeolocation data (if you enable location services)\r\n<br>\r\nInferences drawn from other personal information (such as preferences or interests)\r\nWe collect this information for the purposes described in the \u201CHow We Use Your \r\nInformation\u201D section of our general Privacy Policy.\r\n<br>\r\n<span class=\"h\">Data Retention </span>\r\n\r\n<br>\r\nWe retain personal information for as long as necessary to fulfill the purposes described \r\nin this Privacy Policy, unless a longer retention period is required or permitted by law.\r\n<br>\r\n<span class=\"h\">Shine the Light Law </span>\r\n\r\n\r\n<br>\r\nCalifornia residents may also request certain information regarding our disclosure of \r\npersonal information to third parties for their direct marketing purposes under California \r\nCivil Code \u00A71798.83 (\u201CShine the Light\u201D law). To make such a request, please contact us \r\nat [Insert contact email].\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Data Security</div>\r\nUnfortunately, the transmission of information via the internet is not completely secure. \r\nAlthough we do our best to protect your personal information, we cannot guarantee the \r\nsecurity of your personal information transmitted to our Website. Any transmission of \r\npersonal information is at your own risk. We are not responsible for circumvention of \r\nany privacy settings or security measures contained on the Website.] \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Changes to Our Privacy Policy</div>\r\nIt is our policy to post any changes we make to our privacy policy on this page. If we \r\nmake material changes to how we treat our users' personal information, we will notify \r\nyou through a notice on the Website home page. The date the privacy policy was last \r\nrevised is identified at the top of the page. You are responsible for ensuring we have an \r\nup-to-date active and deliverable email address for you, and for periodically visiting our \r\nWebsite and this privacy policy to check for any changes.\r\n<br>\r\nContact Information\r\n<br>\r\nTo ask questions or comment about this privacy policy and our privacy practices, \r\ncontact us at: \r\n<br>\r\n{{PrivacyAndTerms?.email}}\r\n</div>\r\n\r\n\r\n<div class=\"content\">\r\n <p>\r\n \u00A92025 {{PrivacyAndTerms?.companyName}}.<br>\r\n Proprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}}t approved customers only.<br>\r\n Duplication or alteration is strictly prohibited without prior written consent.\r\n </p>\r\n <p class=\"last-modified\">Last modified: {{PrivacyAndTerms?.modifiedDate}}</p>\r\n </div>\r\n", styles: [".privacy-policy-modal{background:#fff;padding:30px 20px;max-width:650px;margin:auto;font-family:Arial,sans-serif;display:flex;flex-direction:column;align-items:center}.privacy-policy-modal .header{text-align:center;margin-bottom:40px}.privacy-policy-modal .header h1{font-size:26px;font-weight:700;margin:0}.privacy-policy-modal .logo-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:40px;width:100%;overflow:visible;min-height:100px}.privacy-policy-modal .logo-section img{display:block;max-width:180px;height:auto;margin-bottom:15px;position:relative;z-index:2}.privacy-policy-modal .logo-section .address{font-size:14px;line-height:1.6;margin-bottom:10px}.privacy-policy-modal .logo-section .address a{color:#007bff;text-decoration:none}.privacy-policy-modal .logo-section .address a:hover{text-decoration:underline}.privacy-policy-modal .logo-section .policy-title{font-weight:700;font-size:16px;margin-top:5px}.privacy-policy-modal .modal-footer{width:100%;display:flex;justify-content:center}.privacy-policy-modal .modal-footer .btn{padding:8px 25px;font-size:14px}.section-title{color:#000;text-decoration:underline;font-weight:700}.content{font-size:14px;line-height:1.7;text-align:center;margin-bottom:40px;margin-top:80px}.content .last-modified{margin-top:20px;font-size:12px;color:gray}.h{color:#000;font-weight:700}\n"] }]
1209
+ args: [{ standalone: false, selector: 'app-privacy-policy', template: "<div class=\"privacy-policy-modal\">\r\n <!-- Header -->\r\n <div class=\"header\">\r\n <h1>Website Privacy Policy</h1>\r\n </div>\r\n\r\n <!-- Logo and Address -->\r\n<div class=\"logo-section\" >\r\n <img [src]=\"branding?.logo\" [alt]=\"branding?.displayName\" />\r\n\r\n <p class=\"address\">\r\n {{ PrivacyAndTerms?.address1 }}\r\n {{ PrivacyAndTerms?.city }}\r\n {{ PrivacyAndTerms?.state }}\r\n {{ PrivacyAndTerms?.country }} {{ PrivacyAndTerms?.zipCode }}\r\n \r\n </p>\r\n</div>\r\n\r\n</div>\r\n\r\n<div style=\"margin-left: 10px;margin-right: 0px;font-size: 13.5px;\">\r\nLast modified: {{PrivacyAndTerms?.modifiedDate}}\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Introduction</div>\r\n{{PrivacyAndTerms?.companyName}}, LLC, a {{PrivacyAndTerms?.state}} limited liability company ( <span class=\"h\">\"Company\"</span> or <span class=\"h\">\"We\"</span>), \r\nrespect your privacy and are committed to protecting it through our compliance with this \r\npolicy. \r\n\r\n<br>\r\nThis policy describes the types of information we may collect from you or that you may \r\nprovide when you visit the website www.bootog.com (our \"Website\") and our practices \r\nfor collecting, using, maintaining, protecting, and disclosing that information. \r\n<br>\r\nThis policy applies to information we collect: \r\n<br>\r\nOn this Website. \r\n<br>\r\nIn email, text, and other electronic messages between you and this Website. \r\nThrough mobile and desktop applications you download from this Website, which \r\nprovide dedicated non-browser-based interaction between you and this Website. \r\nWhen you interact with our advertising and applications on third-party websites and \r\nservices. \r\n<br>\r\nIt does not apply to information collected by: \r\n<br>\r\nUs offline or through any other means, including on any other website operated by \r\nCompany or any third party (including our affiliates and subsidiaries); or \r\nAny third party (including our affiliates and subsidiaries), including through any \r\napplication or content (including advertising) that may link to or be accessible from or \r\nthrough the Website. \r\n<br>\r\nPlease read this policy carefully to understand our policies and practices regarding your \r\ninformation and how we will treat it. If you do not agree with our policies and practices, \r\nyour choice is not to use our Website. By accessing or using this Website, you agree to \r\nthis privacy policy. This policy may change from time to time (see Changes to Our \r\nPrivacy Policy). Your continued use of this Website after we make changes is deemed \r\nto be acceptance of those changes, so please check the policy periodically for updates. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Children Under the Age of 16</div> \r\nOur Website is not intended for children under 16 years of age. No one under age 16 \r\nmay provide any information to or on the Website. We do not knowingly collect personal \r\ninformation from children under 16. If you are under 16, do not use or provide any \r\ninformation on this Website or through any of its features, register on the Website, make \r\nany purchases through the Website, use any of the interactive or public comment \r\nfeatures of this Website, or provide any information about yourself to us, including your \r\nname, address, telephone number, email address, or any screen name or user name \r\nyou may use. If we learn we have collected or received personal information from a \r\nchild under 16 without verification of parental consent, we will delete that information. If \r\nyou believe we might have any information from or about a child under 16, please \r\ncontact us at {{PrivacyAndTerms?.email}}. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Information We Collect About You and How We Collect It </div>\r\n\r\nWe collect several types of information from and about users of our Website, including \r\ninformation: \r\n<br>\r\nBy which you may be personally identified, such as name, postal address, email \r\naddress, telephone number, social security number, any other personally identifiable \r\ninformation or any other identifier by which you may be contacted online or offline \r\n(<span class=\"h\">\"personal information\"</span>) \r\n<br>\r\nThat is about you but individually does not identify you; and/or \r\n<br>\r\nAbout your internet connection, the equipment you use to access our Website, and \r\nusage details. <br>\r\nWe collect this information: \r\n<br>\r\nDirectly from you when you provide it to us. \r\n<br>\r\nAutomatically as you navigate through the site. Information collected automatically may \r\ninclude usage details, IP addresses, and information collected through cookies, web \r\nbeacons, and other tracking technologies. \r\nFrom third parties, for example, our business partners. \r\nInformation You Provide to Us \r\n<br>\r\nThe information we collect on or through our Website may include: \r\n<br>\r\nInformation that you provide by filling in forms on our Website. This includes information \r\nprovided at the time of registering to use our Website, subscribing to our service, \r\nposting material, or requesting further services. We may also ask you for information \r\nwhen you report a problem with our Website. \r\n<br>\r\nRecords and copies of your correspondence (including email addresses), if you contact \r\nus. \r\n<br>\r\nYour responses to surveys that we might ask you to complete for research purposes. \r\nDetails of transactions you carry out through our Website and of the fulfillment of your \r\norders. You may be required to provide financial information before placing an order \r\nthrough our Website. \r\n<br>\r\nYour search queries on the Website. \r\n<br>\r\nAny other information you may provide by using the Website. \r\n<br>\r\nYou also may provide information to be published or displayed (hereinafter, <span class=\"h\">\"posted\"</span> ) \r\non public areas of the Website, or transmitted to other users of the Website or third \r\nparties (collectively, <span class=\"h\">\"User Contributions\"</span> ). Your User Contributions are posted on and \r\ntransmitted to others at your own risk. Although we limit access to certain pages, please \r\nbe aware that no security measures are perfect or impenetrable. Additionally, we cannot \r\ncontrol the actions of other users of the Website with whom you may choose to share \r\nyour User Contributions. Therefore, we cannot and do not guarantee that your User \r\nContributions will not be viewed by unauthorized persons. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">IInformation We Collect Through Automatic Data Collection Technologies</div>\r\n\r\n \r\nAs you navigate through and interact with our Website, we may use automatic data \r\ncollection technologies to collect certain information about your equipment, browsing \r\nactions, and patterns, including: \r\n<br>\r\nDetails of your visits to our Website, including but not limited to traffic data, location data, \r\nlogs, and other communication data and the resources that you access and use on the \r\nWebsite. \r\n<br>\r\nInformation about your computer and internet connection, including your IP address, \r\noperating system, and browser type. \r\n<br>\r\nThe information we collect automatically may include personal information, or we may \r\nmaintain it or associate it with personal information we collect in other ways or receive \r\nfrom third parties. It helps us to improve our Website and to deliver a better and more\r\npersonalized service, including by enabling us to:\r\n<br>\r\nEstimate our audience size and usage patterns.\r\n<br>\r\nStore information about your preferences, allowing us to customize our Website \r\naccording to your individual interests.\r\n<br>\r\nSpeed up your searches.\r\n<br>\r\nRecognize you when you return to our Website.\r\n<br>\r\nThe technologies we use for this automatic data collection may include:\r\n<br>\r\n<span class=\"h\">Cookies (or browser cookies).</span> A cookie is a small file placed on the hard drive of your \r\ncomputer. You may refuse to accept browser cookies by activating the appropriate \r\nsetting on your browser. However, if you select this setting you may be unable to access \r\ncertain parts of our Website. Unless you have adjusted your browser setting so that it \r\nwill refuse cookies, our system will issue cookies when you direct your browser to our \r\nWebsite. \r\n<br>\r\n<span class=\"h\">Web Beacons.</span> Pages of our Website and our emails may contain small electronic files \r\nknown as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) \r\nthat permit the Company, for example, to count users who have visited those pages or \r\nopened an email and for other related website statistics (for example, recording the \r\npopularity of certain website content and verifying system and server integrity). \r\n<br>\r\n<span class=\"h\">Flash Cookies.</span> Certain features of our Website may use local stored objects (or Flash \r\ncookies) to collect and store information about your preferences and navigation to, from, \r\nand on our Website. Flash cookies are not managed by the same browser settings as \r\nare used for browser cookies. For information about managing your privacy and security \r\nsettings for Flash cookies, see Choices About How We Use and Disclose Your \r\nInformation.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Third-Party Use of Cookies and Other Tracking Technologies</div>\r\n\r\nSome content or applications, including advertisements, on the Website may be served \r\nby third-parties, including advertisers, ad networks and servers, content providers, and \r\napplication providers. These third parties may use cookies alone or in conjunction with \r\nweb beacons or other tracking technologies to collect information about you when you \r\nuse our website. The information they collect may be associated with your personal \r\ninformation or they may collect information, including personal information, about your \r\nonline activities over time and across different websites and other online services. They \r\nmay use this information to provide you with interest-based (behavioral) advertising or \r\nother targeted content. \r\n<br>\r\nWe do not control these third parties' tracking technologies or how they may be used. If \r\nyou have any questions about an advertisement or other targeted content, you should \r\ncontact the responsible provider directly. For information about how you can opt out of \r\nreceiving targeted advertising from many providers, see Choices About How We Use \r\nand Disclose Your Information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">How We Use Your Information</div>\r\n\r\nWe use information that we collect about you or that you provide to us, including any \r\npersonal information:\r\n<br>\r\nTo present our Website and its contents to you.\r\n<br>\r\nTo provide you with information, products, or services that you request from us.\r\n<br>\r\nTo fulfill any other purpose for which you provide it.\r\n<br>\r\nTo provide you with notices about your account or subscription, including expiration and \r\n\u00A92025 {{PrivacyAndTerms?.companyName}}\r\n<br>\r\nProprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}} approved customers only.\r\n<br>\r\nDuplication or alteration is strictly prohibited without prior written consent.\r\nrenewal notices.\r\n<br>\r\nTo carry out our obligations and enforce our rights arising from any contracts entered \r\ninto between you and us, including for billing and collection.\r\n<br>\r\nTo notify you about changes to our Website or any products or services we offer or \r\nprovide though it.\r\n<br>\r\nTo allow you to participate in interactive features on our Website.\r\n<br>\r\nIn any other way we may describe when you provide the information.\r\n<br>\r\nFor any other purpose with your consent.\r\n<br>\r\nWe may also use your information to contact you about goods and services that may be \r\nof interest to you. If you do not want us to use your information in this way, please \r\n[check the relevant box located on the form on which we collect your data adjust your \r\nuser preferences in your account profile. For more information, see Choices About How \r\nWe Use and Disclose Your Information.\r\n<br>\r\nWe may use the information we have collected from you to enable us to display \r\nadvertisements to our advertisers' target audiences. Even though we do not disclose \r\nyour personal information for these purposes without your consent, if you click on or \r\notherwise interact with an advertisement, the advertiser may assume that you meet its \r\ntarget criteria.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Disclosure of Your Information</div>\r\n\r\nWe may disclose aggregated information about our users without restriction. \r\nWe may disclose personal information that we collect or you provide as described in this \r\nprivacy policy:\r\n<br>\r\nTo our subsidiaries and affiliates.\r\n<br>\r\nTo contractors, service providers, and other third parties we use to support our business.\r\n<br>\r\nTo a buyer or other successor in the event of a merger, divestiture, restructuring, \r\nreorganization, dissolution, or other sale or transfer of some or all of our assets, whether \r\nas a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which \r\npersonal information held by us about our Website users is among the assets \r\ntransferred.\r\n<br>\r\nTo third parties to market their products or services to you if you have not opted out of \r\nthese disclosures. For more information, see Choices About How We Use and Disclose \r\nYour Information.\r\n<br>\r\nTo fulfill the purpose for which you provide it. \r\n<br>\r\nFor any other purpose disclosed by us when you provide the information.\r\n<br>\r\nWith your consent.\r\n<br>\r\nWe may also disclose your personal information:\r\n<br>\r\nTo comply with any court order, law, or legal process, including to respond to any \r\ngovernment or regulatory request.\r\n<br>\r\nTo enforce or apply our terms of use and other agreements, including for billing and \r\ncollection purposes.\r\n<br>\r\nIf we believe disclosure is necessary or appropriate to protect the rights, property, or \r\nsafety of our company, our customers, or others. \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Choices About How We Use and Disclose Your Information</div>\r\n\r\nWe strive to provide you with choices regarding the personal information you provide to \r\nus. We have created mechanisms to provide you with the following control over your \r\ninformation: \r\n<br>\r\n<span class=\"h\">Tracking Technologies and Advertising.</span> You can set your browser to refuse all or \r\nsome browser cookies, or to alert you when cookies are being sent. If you disable or \r\nrefuse cookies, please note that some parts of this site may then be inaccessible or not \r\nfunction properly.\r\n<br>\r\n<span class=\"h\">Disclosure of Your Information for Third-Party Advertising.</span> If you do not want us to \r\nshare your personal information with unaffiliated or non-agent third parties for \r\npromotional purposes, you can opt-out by logging into the Website and adjusting your \r\nuser preferences in your account profile or by sending us an email with your request to \r\n{{PrivacyAndTerms?.privacyPolicyUrl}}.\r\n<br>\r\n<span class=\"h\">Promotional Offers from the Company.</span> If you do not wish to have your email address \r\nor contact information used by the Company to promote our own or third parties' \r\nproducts or services, you can opt-out by logging into the Website and adjusting your \r\nuser preferences in your account profile or by sending us an email stating your request \r\nto {{PrivacyAndTerms?.email}}. If we have sent you a promotional email, you may send us a \r\nreturn email asking to be omitted from future email distributions.\r\n<br> \r\n<span class=\"h\">Targeted Advertising.</span> If you do not want us to use information that we collect or that \r\nyou provide to us to deliver advertisements according to our advertisers' target\u0002audience preferences, you can opt-out by sending us an email stating your request to \r\n{{PrivacyAndTerms?.email}}.\r\n<br> \r\nWe do not control third parties' collection or use of your information to serve interest\u0002based advertising. However these third parties may provide you with ways to choose \r\nnot to have your information collected or used in this way. You can opt out of receiving \r\ntargeted ads from members of the Network Advertising Initiative (\"NAI\") on the NAI's \r\nwebsite.\r\n<br>\r\nResidents of certain states, such as California, Nevada, Colorado, Connecticut, Virginia, \r\nand Utah may have additional personal information rights and choices. Please see Your \r\nState Privacy Rights for more information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Accessing and Correcting Your Information</div>\r\nYou can review and change your personal information by logging into the Website and \r\nvisiting your account profile page.\r\n<br>\r\nResidents of certain states, such as California, Nevada, Colorado, Virginia, and Utah \r\nmay have additional personal information rights and choices. Please see Your State \r\nPrivacy Rights for more information.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Your State Privacy Rights</div>\r\nState consumer privacy laws may provide their residents with additional rights regarding \r\nour use of their personal information.\r\n<br> \r\nColorado, Connecticut, Virginia, and Utah each provide their state residents with rights \r\nto:\r\n<br>\r\nConfirm whether we process their personal information.\r\n<br>\r\nAccess and delete certain personal information.\r\n<br>\r\nData portability.\r\n<br>\r\nOpt-out of personal data processing for targeted advertising and sales.\r\n<br>\r\nColorado, Connecticut, and Virginia also provide their state residents with rights to:\r\n<br>\r\nCorrect inaccuracies in their personal information, taking into account the information's \r\nnature processing purpose.\r\n<br>\r\nOpt-out of profiling in furtherance of decisions that produce legal or similarly significant\r\neffects. \r\n<br>\r\nTo exercise any of these rights please send an email to {{PrivacyAndTerms?.copyrightPolicyLink}}. To appeal a \r\ndecision regarding a consumer rights request send an email to {{PrivacyAndTerms?.email}}.\r\n<br>\r\n<br>\r\n<div class=\"section-title\">For California Residents Only:</div>\r\n<span class=\"h\">California Privacy Rights</span> \r\n<br>\r\nThis section applies solely to individuals who reside in the State of California \r\n(\u201Cconsumers\u201D or \u201Cyou\u201D). We adopt this notice to comply with the California Consumer \r\nPrivacy Act of 2018 (CCPA), as amended by the California Privacy Rights Act of 2020 \r\n(CPRA), and any terms defined in the CCPA/CPRA have the same meaning when used \r\nin this section.\r\n<br>\r\n<span class=\"h\">Your Rights Under California Law</span>\r\n\r\n<br>\r\nIf you are a California resident, you have the following rights with respect to your \r\npersonal information:\r\n<br>\r\n<span class=\"h\">Right to Know/Access \u2013</span>\r\n You may request that we disclose to you the categories and \r\nspecific pieces of personal information we have collected about you, as well as the \r\nsources, purposes for collection, and categories of third parties to whom the information \r\nis disclosed.\r\n<br>\r\n<span class=\"h\">Right to Delete \u2013</span>\r\n You may request that we delete personal information we have \r\ncollected from you, subject to certain exceptions.\r\n<br>\r\n<span class=\"h\">Right to Correct \u2013</span>\r\n You may request that we correct inaccurate personal information \r\nthat we maintain about you.\r\n<br>\r\n<span class=\"h\">Right to Opt Out of Sale/Sharing \u2013 </span>\r\nYou may request that we do not \u201Csell\u201D or \u201Cshare\u201D \r\nyour personal information (as those terms are defined under the CCPA/CPRA). We do \r\nnot sell your personal information in the traditional sense, but if our practices change we \r\nwill update this policy and provide you with a method to exercise this right.\r\n<br>\r\n<span class=\"h\">Right to Limit Use of Sensitive Personal Information \u2013</span>\r\n\r\n If we collect sensitive \r\npersonal information (such as government ID numbers, precise geolocation, or financial \r\naccount information), you may direct us to limit its use to what is reasonably necessary \r\nto provide the services requested.\r\n<br>\r\n<span class=\"h\">Right of Non-Discrimination \u2013</span>\r\n\r\n We will not discriminate against you for exercising your \r\nprivacy rights.\r\n<br>\r\n<span class=\"h\">Exercising Your Rights</span>\r\n\r\n\r\n<br>\r\nTo exercise any of the rights described above, please submit a verifiable consumer \r\nrequest to us by:\r\n<br>\r\nEmail: {{PrivacyAndTerms?.email}}\r\n<br>\r\nPhone: {{PrivacyAndTerms?.phone}}\r\n<br>\r\nOnline request form: {{PrivacyAndTerms?.requestForm}}\r\n<br>\r\nOnly you, or someone legally authorized to act on your behalf, may make a verifiable \r\nconsumer request.\r\n<br>\r\n<span class=\"h\">Information We Collect\r\n</span>\r\n\r\n<br>\r\nIn the past 12 months, we may have collected the following categories of personal \r\ninformation about consumers:\r\n<br>\r\nIdentifiers (such as name, email address, phone number)\r\n<br>\r\nInternet or network activity (such as browsing history on our website)\r\n<br>\r\nCommercial information (such as records of products or services purchased)\r\n<br>\r\n\r\nGeolocation data (if you enable location services)\r\n<br>\r\nInferences drawn from other personal information (such as preferences or interests)\r\nWe collect this information for the purposes described in the \u201CHow We Use Your \r\nInformation\u201D section of our general Privacy Policy.\r\n<br>\r\n<span class=\"h\">Data Retention </span>\r\n\r\n<br>\r\nWe retain personal information for as long as necessary to fulfill the purposes described \r\nin this Privacy Policy, unless a longer retention period is required or permitted by law.\r\n<br>\r\n<span class=\"h\">Shine the Light Law </span>\r\n\r\n\r\n<br>\r\nCalifornia residents may also request certain information regarding our disclosure of \r\npersonal information to third parties for their direct marketing purposes under California \r\nCivil Code \u00A71798.83 (\u201CShine the Light\u201D law). To make such a request, please contact us \r\nat [Insert contact email].\r\n<br>\r\n<br>\r\n<div class=\"section-title\">Data Security</div>\r\nUnfortunately, the transmission of information via the internet is not completely secure. \r\nAlthough we do our best to protect your personal information, we cannot guarantee the \r\nsecurity of your personal information transmitted to our Website. Any transmission of \r\npersonal information is at your own risk. We are not responsible for circumvention of \r\nany privacy settings or security measures contained on the Website.] \r\n<br>\r\n<br>\r\n<div class=\"section-title\">Changes to Our Privacy Policy</div>\r\nIt is our policy to post any changes we make to our privacy policy on this page. If we \r\nmake material changes to how we treat our users' personal information, we will notify \r\nyou through a notice on the Website home page. The date the privacy policy was last \r\nrevised is identified at the top of the page. You are responsible for ensuring we have an \r\nup-to-date active and deliverable email address for you, and for periodically visiting our \r\nWebsite and this privacy policy to check for any changes.\r\n<br>\r\nContact Information\r\n<br>\r\nTo ask questions or comment about this privacy policy and our privacy practices, \r\ncontact us at: \r\n<br>\r\n{{PrivacyAndTerms?.email}}\r\n</div>\r\n\r\n\r\n<div class=\"content\">\r\n <p>\r\n \u00A9{{PrivacyAndTerms?.currentYear}} {{PrivacyAndTerms?.companyName}}.<br>\r\n Proprietary and Confidential Information. Strictly for use by {{PrivacyAndTerms?.companyName}}t approved customers only.<br>\r\n Duplication or alteration is strictly prohibited without prior written consent.\r\n </p>\r\n <p class=\"last-modified\">Last modified: {{PrivacyAndTerms?.modifiedDate}}</p>\r\n </div>\r\n", styles: [".privacy-policy-modal{background:#fff;padding:0 20px;max-width:650px;margin:auto;font-family:Arial,sans-serif;display:flex;flex-direction:column;align-items:center}.privacy-policy-modal .header{text-align:center;margin-bottom:40px}.privacy-policy-modal .header h1{font-size:26px;font-weight:700;margin:0}.privacy-policy-modal .logo-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:-10px;width:100%;overflow:visible;min-height:100px}.privacy-policy-modal .logo-section img{display:block;max-width:180px;height:auto;margin-bottom:15px;position:relative;z-index:2}.privacy-policy-modal .logo-section .address{font-size:14px;line-height:1.6;margin-bottom:10px}.privacy-policy-modal .logo-section .address a{color:#007bff;text-decoration:none}.privacy-policy-modal .logo-section .address a:hover{text-decoration:underline}.privacy-policy-modal .logo-section .policy-title{font-weight:700;font-size:16px;margin-top:5px}.privacy-policy-modal .modal-footer{width:100%;display:flex;justify-content:center}.privacy-policy-modal .modal-footer .btn{padding:8px 25px;font-size:14px}.section-title{color:#000;text-decoration:underline;font-weight:700}.content{font-size:14px;line-height:1.7;text-align:center;margin-bottom:40px;margin-top:80px}.content .last-modified{margin-top:20px;font-size:12px;color:gray}.h{color:#000;font-weight:700}\n"] }]
1202
1210
  }], propDecorators: { title: [{
1203
1211
  type: Input
1204
1212
  }], branding: [{
@@ -1400,7 +1408,7 @@ class StepperComponent {
1400
1408
  }
1401
1409
  }
1402
1410
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperComponent, deps: [{ token: CredentialingStore }], target: i0.ɵɵFactoryTarget.Component });
1403
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: StepperComponent, isStandalone: false, selector: "app-stepper", ngImport: i0, template: "<div class=\"stepper-wrapper\">\r\n <div class=\"tabs\">\r\n <div\r\n *ngFor=\"let step of steps; let i = index\"\r\n class=\"tab\"\r\n [class.active]=\"store.currentStep() === i + 1\"\r\n [class.completed]=\"store.currentStep() > i + 1\"\r\n (click)=\"goToStep(i)\"\r\n >\r\n {{ step }}\r\n </div>\r\n <div class=\"align-items-center d-flex step-count\">\r\n Step {{ store.currentStep() }}/{{ steps.length }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".stepper-wrapper{display:flex;align-items:center}.stepper-wrapper .tabs{width:130%;display:flex;justify-content:center}.stepper-wrapper .tabs .tab{padding:9px 28px;cursor:pointer;background-color:#f1f4fa;color:#4077ad;font-weight:500;transition:all .3s;min-width:9%;text-align:center}.stepper-wrapper .tabs .tab.active,.stepper-wrapper .tabs .tab.completed{background-color:#4077ad;color:#fff}.stepper-wrapper .step-count{font-weight:500;color:#fff;background:#4077ad;width:10%;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1411
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: StepperComponent, isStandalone: false, selector: "app-stepper", ngImport: i0, template: "<div class=\"stepper-wrapper\">\r\n <div class=\"tabs\">\r\n <div\r\n *ngFor=\"let step of steps; let i = index\"\r\n class=\"tab\"\r\n [class.active]=\"store.currentStep() === i + 1\"\r\n [class.completed]=\"store.currentStep() > i + 1\"\r\n (click)=\"goToStep(i)\"\r\n >\r\n {{ step }}\r\n </div>\r\n <div class=\"align-items-center d-flex step-count\">\r\n Step {{ store.currentStep() }}/{{ steps.length }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".stepper-wrapper{display:flex;align-items:center}.stepper-wrapper .tabs{width:130%;display:flex;justify-content:center}.stepper-wrapper .tabs .tab{padding:9px 28px;cursor:pointer;background-color:#f1f4fa;color:#4077ad;font-weight:500;transition:all .3s;min-width:9%;text-align:center}.stepper-wrapper .tabs .tab.active,.stepper-wrapper .tabs .tab.completed{background-color:#4077ad;color:#fff}.stepper-wrapper .step-count{font-weight:500;color:#fff;background:#4077ad;width:10%;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1404
1412
  }
1405
1413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperComponent, decorators: [{
1406
1414
  type: Component,
@@ -1765,7 +1773,7 @@ class Ng2LoadingSpinnerComponent {
1765
1773
 
1766
1774
  <ng-container *ngTemplateOutlet="template"></ng-container>
1767
1775
  </div>
1768
- `, isInline: true, styles: [".backdrop{background-color:#0000004d;position:absolute;inset:0;z-index:2000}.wrapper{position:absolute;z-index:2001}.left{top:50%;left:5px;transform:translateY(-50%)}.right{top:50%;right:5px;transform:translateY(-50%)}.top{top:5px;left:50%;transform:translate(-50%)}.bottom{bottom:5px;left:50%;transform:translate(-50%)}.top-right{top:5px;right:5px}.top-left{top:5px;left:5px}.bottom-right{bottom:5px;right:5px}.bottom-left{bottom:5px;left:5px}.center{top:50%;left:50%;transform:translate(-50%,-50%)}.xs{font-size:.5rem}.sm{font-size:1rem}.md{font-size:1.5rem}.lg{font-size:2rem}.xl{font-size:2.5rem}.dual-circle{display:inline-block}.dual-circle:after{content:\" \";display:block;width:1.5em;height:1.5em;border-radius:50%;border:.1em solid currentColor;border-color:currentColor transparent currentColor transparent;animation:dual-cricle-anim 1.2s linear infinite}@keyframes dual-cricle-anim{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.center .scaling-bars,.top .scaling-bars,.bottom .scaling-bars{left:0}.left .scaling-bars,.top-left .scaling-bars,.top-bottom .scaling-bars{left:1.5em}.right .scaling-bars,.top-right .scaling-bars,.bottom-right .scaling-bars{right:1.5em}.scaling-bars,.scaling-bars:before,.scaling-bars:after{background:currentColor;-webkit-animation:scaling-bars-anim 1s infinite ease-in-out;animation:scaling-bars-anim 1s infinite ease-in-out;width:1em;height:2em}.scaling-bars{color:currentColor;text-indent:-9999em;position:relative;font-size:.5em;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation-delay:-.16s;animation-delay:-.16s}.scaling-bars:before,.scaling-bars:after{position:absolute;top:0;content:\"\"}.scaling-bars:before{left:-1.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.scaling-bars:after{left:1.5em}@-webkit-keyframes scaling-bars-anim{0%,80%,to{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}@keyframes scaling-bars-anim{0%,80%,to{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}.chasing-dots{color:currentColor;font-size:1.5em;text-indent:-9999em;overflow:hidden;width:1em;height:1em;border-radius:50%;position:relative;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load6 1.7s infinite ease,round 1.7s infinite ease;animation:load6 1.7s infinite ease,round 1.7s infinite ease}@-webkit-keyframes load6{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}to{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@keyframes load6{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}to{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@-webkit-keyframes round{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes round{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.bouncing-dots{font-size:inherit;text-align:center}.bouncing-dots>div{width:1em;height:1em;background-color:currentColor;border-radius:100%;display:inline-block;-webkit-animation:sk-bouncedelay 1.4s infinite ease-in-out both;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.bouncing-dots .bounce-1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.bouncing-dots .bounce-2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes sk-bouncedelay{0%,80%,to{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes sk-bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.fading-circle{font-size:inherit;width:2em;height:2em;position:relative}.fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.fading-circle .sk-circle:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;background-color:currentColor;border-radius:100%;-webkit-animation:sk-circleFadeDelay 1.2s infinite ease-in-out both;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.fading-circle .sk-circle2{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);transform:rotate(30deg)}.fading-circle .sk-circle3{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg)}.fading-circle .sk-circle4{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fading-circle .sk-circle5{-webkit-transform:rotate(120deg);-ms-transform:rotate(120deg);transform:rotate(120deg)}.fading-circle .sk-circle6{-webkit-transform:rotate(150deg);-ms-transform:rotate(150deg);transform:rotate(150deg)}.fading-circle .sk-circle7{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fading-circle .sk-circle8{-webkit-transform:rotate(210deg);-ms-transform:rotate(210deg);transform:rotate(210deg)}.fading-circle .sk-circle9{-webkit-transform:rotate(240deg);-ms-transform:rotate(240deg);transform:rotate(240deg)}.fading-circle .sk-circle10{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fading-circle .sk-circle11{-webkit-transform:rotate(300deg);-ms-transform:rotate(300deg);transform:rotate(300deg)}.fading-circle .sk-circle12{-webkit-transform:rotate(330deg);-ms-transform:rotate(330deg);transform:rotate(330deg)}.fading-circle .sk-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.fading-circle .sk-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.fading-circle .sk-circle4:before{-webkit-animation-delay:-.9s;animation-delay:-.9s}.fading-circle .sk-circle5:before{-webkit-animation-delay:-.8s;animation-delay:-.8s}.fading-circle .sk-circle6:before{-webkit-animation-delay:-.7s;animation-delay:-.7s}.fading-circle .sk-circle7:before{-webkit-animation-delay:-.6s;animation-delay:-.6s}.fading-circle .sk-circle8:before{-webkit-animation-delay:-.5s;animation-delay:-.5s}.fading-circle .sk-circle9:before{-webkit-animation-delay:-.4s;animation-delay:-.4s}.fading-circle .sk-circle10:before{-webkit-animation-delay:-.3s;animation-delay:-.3s}.fading-circle .sk-circle11:before{-webkit-animation-delay:-.2s;animation-delay:-.2s}.fading-circle .sk-circle12:before{-webkit-animation-delay:-.1s;animation-delay:-.1s}@-webkit-keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}@keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}.half-circle{width:2em;height:2em;display:inline-block;border:.2em solid transparent;border-left-color:currentColor;border-top-color:currentColor;animation:rotate .6s infinite linear;border-radius:50%}@keyframes rotate{to{transform:rotate(1turn)}}.sk-cube-grid{width:2em;height:2em}.sk-cube-grid .sk-cube{width:33%;height:33%;float:left;-webkit-animation:sk-cubeGridScaleDelay 1.3s infinite ease-in-out;animation:sk-cubeGridScaleDelay 1.3s infinite ease-in-out}.sk-cube-grid .sk-cube1{-webkit-animation-delay:.2s;animation-delay:.2s}.sk-cube-grid .sk-cube2{-webkit-animation-delay:.3s;animation-delay:.3s}.sk-cube-grid .sk-cube3{-webkit-animation-delay:.4s;animation-delay:.4s}.sk-cube-grid .sk-cube4{-webkit-animation-delay:.1s;animation-delay:.1s}.sk-cube-grid .sk-cube5{-webkit-animation-delay:.2s;animation-delay:.2s}.sk-cube-grid .sk-cube6{-webkit-animation-delay:.3s;animation-delay:.3s}.sk-cube-grid .sk-cube7{-webkit-animation-delay:0s;animation-delay:0s}.sk-cube-grid .sk-cube8{-webkit-animation-delay:.1s;animation-delay:.1s}.sk-cube-grid .sk-cube9{-webkit-animation-delay:.2s;animation-delay:.2s}@-webkit-keyframes sk-cubeGridScaleDelay{0%,70%,to{-webkit-transform:scale3D(1,1,1);transform:scaleZ(1)}35%{-webkit-transform:scale3D(0,0,1);transform:scale3D(0,0,1)}}@keyframes sk-cubeGridScaleDelay{0%,70%,to{-webkit-transform:scale3D(1,1,1);transform:scaleZ(1)}35%{-webkit-transform:scale3D(0,0,1);transform:scale3D(0,0,1)}}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1776
+ `, isInline: true, styles: [".backdrop{background-color:#0000004d;position:absolute;inset:0;z-index:2000}.wrapper{position:absolute;z-index:2001}.left{top:50%;left:5px;transform:translateY(-50%)}.right{top:50%;right:5px;transform:translateY(-50%)}.top{top:5px;left:50%;transform:translate(-50%)}.bottom{bottom:5px;left:50%;transform:translate(-50%)}.top-right{top:5px;right:5px}.top-left{top:5px;left:5px}.bottom-right{bottom:5px;right:5px}.bottom-left{bottom:5px;left:5px}.center{top:50%;left:50%;transform:translate(-50%,-50%)}.xs{font-size:.5rem}.sm{font-size:1rem}.md{font-size:1.5rem}.lg{font-size:2rem}.xl{font-size:2.5rem}.dual-circle{display:inline-block}.dual-circle:after{content:\" \";display:block;width:1.5em;height:1.5em;border-radius:50%;border:.1em solid currentColor;border-color:currentColor transparent currentColor transparent;animation:dual-cricle-anim 1.2s linear infinite}@keyframes dual-cricle-anim{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.center .scaling-bars,.top .scaling-bars,.bottom .scaling-bars{left:0}.left .scaling-bars,.top-left .scaling-bars,.top-bottom .scaling-bars{left:1.5em}.right .scaling-bars,.top-right .scaling-bars,.bottom-right .scaling-bars{right:1.5em}.scaling-bars,.scaling-bars:before,.scaling-bars:after{background:currentColor;-webkit-animation:scaling-bars-anim 1s infinite ease-in-out;animation:scaling-bars-anim 1s infinite ease-in-out;width:1em;height:2em}.scaling-bars{color:currentColor;text-indent:-9999em;position:relative;font-size:.5em;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation-delay:-.16s;animation-delay:-.16s}.scaling-bars:before,.scaling-bars:after{position:absolute;top:0;content:\"\"}.scaling-bars:before{left:-1.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.scaling-bars:after{left:1.5em}@-webkit-keyframes scaling-bars-anim{0%,80%,to{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}@keyframes scaling-bars-anim{0%,80%,to{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}.chasing-dots{color:currentColor;font-size:1.5em;text-indent:-9999em;overflow:hidden;width:1em;height:1em;border-radius:50%;position:relative;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load6 1.7s infinite ease,round 1.7s infinite ease;animation:load6 1.7s infinite ease,round 1.7s infinite ease}@-webkit-keyframes load6{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}to{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@keyframes load6{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}to{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@-webkit-keyframes round{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes round{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.bouncing-dots{font-size:inherit;text-align:center}.bouncing-dots>div{width:1em;height:1em;background-color:currentColor;border-radius:100%;display:inline-block;-webkit-animation:sk-bouncedelay 1.4s infinite ease-in-out both;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.bouncing-dots .bounce-1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.bouncing-dots .bounce-2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes sk-bouncedelay{0%,80%,to{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes sk-bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.fading-circle{font-size:inherit;width:2em;height:2em;position:relative}.fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.fading-circle .sk-circle:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;background-color:currentColor;border-radius:100%;-webkit-animation:sk-circleFadeDelay 1.2s infinite ease-in-out both;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.fading-circle .sk-circle2{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);transform:rotate(30deg)}.fading-circle .sk-circle3{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg)}.fading-circle .sk-circle4{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fading-circle .sk-circle5{-webkit-transform:rotate(120deg);-ms-transform:rotate(120deg);transform:rotate(120deg)}.fading-circle .sk-circle6{-webkit-transform:rotate(150deg);-ms-transform:rotate(150deg);transform:rotate(150deg)}.fading-circle .sk-circle7{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fading-circle .sk-circle8{-webkit-transform:rotate(210deg);-ms-transform:rotate(210deg);transform:rotate(210deg)}.fading-circle .sk-circle9{-webkit-transform:rotate(240deg);-ms-transform:rotate(240deg);transform:rotate(240deg)}.fading-circle .sk-circle10{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fading-circle .sk-circle11{-webkit-transform:rotate(300deg);-ms-transform:rotate(300deg);transform:rotate(300deg)}.fading-circle .sk-circle12{-webkit-transform:rotate(330deg);-ms-transform:rotate(330deg);transform:rotate(330deg)}.fading-circle .sk-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.fading-circle .sk-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.fading-circle .sk-circle4:before{-webkit-animation-delay:-.9s;animation-delay:-.9s}.fading-circle .sk-circle5:before{-webkit-animation-delay:-.8s;animation-delay:-.8s}.fading-circle .sk-circle6:before{-webkit-animation-delay:-.7s;animation-delay:-.7s}.fading-circle .sk-circle7:before{-webkit-animation-delay:-.6s;animation-delay:-.6s}.fading-circle .sk-circle8:before{-webkit-animation-delay:-.5s;animation-delay:-.5s}.fading-circle .sk-circle9:before{-webkit-animation-delay:-.4s;animation-delay:-.4s}.fading-circle .sk-circle10:before{-webkit-animation-delay:-.3s;animation-delay:-.3s}.fading-circle .sk-circle11:before{-webkit-animation-delay:-.2s;animation-delay:-.2s}.fading-circle .sk-circle12:before{-webkit-animation-delay:-.1s;animation-delay:-.1s}@-webkit-keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}@keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}.half-circle{width:2em;height:2em;display:inline-block;border:.2em solid transparent;border-left-color:currentColor;border-top-color:currentColor;animation:rotate .6s infinite linear;border-radius:50%}@keyframes rotate{to{transform:rotate(1turn)}}.sk-cube-grid{width:2em;height:2em}.sk-cube-grid .sk-cube{width:33%;height:33%;float:left;-webkit-animation:sk-cubeGridScaleDelay 1.3s infinite ease-in-out;animation:sk-cubeGridScaleDelay 1.3s infinite ease-in-out}.sk-cube-grid .sk-cube1{-webkit-animation-delay:.2s;animation-delay:.2s}.sk-cube-grid .sk-cube2{-webkit-animation-delay:.3s;animation-delay:.3s}.sk-cube-grid .sk-cube3{-webkit-animation-delay:.4s;animation-delay:.4s}.sk-cube-grid .sk-cube4{-webkit-animation-delay:.1s;animation-delay:.1s}.sk-cube-grid .sk-cube5{-webkit-animation-delay:.2s;animation-delay:.2s}.sk-cube-grid .sk-cube6{-webkit-animation-delay:.3s;animation-delay:.3s}.sk-cube-grid .sk-cube7{-webkit-animation-delay:0s;animation-delay:0s}.sk-cube-grid .sk-cube8{-webkit-animation-delay:.1s;animation-delay:.1s}.sk-cube-grid .sk-cube9{-webkit-animation-delay:.2s;animation-delay:.2s}@-webkit-keyframes sk-cubeGridScaleDelay{0%,70%,to{-webkit-transform:scale3D(1,1,1);transform:scaleZ(1)}35%{-webkit-transform:scale3D(0,0,1);transform:scale3D(0,0,1)}}@keyframes sk-cubeGridScaleDelay{0%,70%,to{-webkit-transform:scale3D(1,1,1);transform:scaleZ(1)}35%{-webkit-transform:scale3D(0,0,1);transform:scale3D(0,0,1)}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1769
1777
  }
1770
1778
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: Ng2LoadingSpinnerComponent, decorators: [{
1771
1779
  type: Component,
@@ -2371,7 +2379,7 @@ class EducationComponent {
2371
2379
  this.store.nextStep();
2372
2380
  }
2373
2381
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EducationComponent, deps: [{ token: UserEducationService }, { token: CredentialingStore }, { token: EducationStore }, { token: CountryServices }, { token: PostalCodeServices }, { token: i6.TokenService }, { token: i3.FormBuilder }, { token: FileService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
2374
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: EducationComponent, isStandalone: false, selector: "app-education", ngImport: i0, template: "<div *ngIf=\"!showpreview()\">\r\n <div class=\"education-container\">\r\n <h3>Add Education</h3>\r\n <p class=\"hint\">\r\n Please list your educational story. This can cover anything from GED to college degree\r\n </p>\r\n <form [formGroup]=\"educationForm\">\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">General Equivalency Diploma / Degree</div>\r\n <input type=\"text\" placeholder=\"Enter your Diploma here\" formControlName=\"courseName\" />\r\n <small class=\"error\" *ngIf=\"educationForm.get('courseName')?.touched &&\r\n educationForm.get('courseName')?.hasError('required')\">\r\n Degree is required\r\n </small>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">Diploma / Degree Type</div>\r\n <input type=\"text\" placeholder=\"Enter your Diploma / Degree Type\" formControlName=\"courseType\" />\r\n <small class=\"error\" *ngIf=\"educationForm.get('courseType')?.touched &&\r\n educationForm.get('courseType')?.hasError('required')\">\r\n Diploma / Degree Type is required\r\n </small>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Institution Name</div>\r\n <input type=\"text\" placeholder=\"Enter institution name here\" formControlName=\"instituteName\" />\r\n <small class=\"error\" *ngIf=\"educationForm.get('instituteName')?.touched &&\r\n educationForm.get('instituteName')?.hasError('required')\">\r\n Institution name is required\r\n </small>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Country</div>\r\n <ng-select formControlName=\"country\" [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode2\"\r\n [clearable]=\"false\" placeholder=\"Select Country\" (change)=\"onCountryChange($event)\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" readonly />\r\n &nbsp;{{ item.country }}\r\n </ng-template>\r\n <!-- <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\" let-item$=\"item$\" let-index=\"index\">\r\n <span class=\"ng-value-label\">\r\n {{item.country}}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span> &nbsp;\r\n </ng-template> -->\r\n </ng-select>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">State</div>\r\n <ng-select formControlName=\"state\" [items]=\"states\" bindLabel=\"stateName\" bindValue=\"stateCode\"\r\n placeholder=\"Select State\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" />\r\n &nbsp;{{ item.stateName }}\r\n </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">\r\n {{ item.stateName }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n\r\n </div>\r\n </div>\r\n <div class=\"row form-row\">\r\n <div class=\"field city\">\r\n <div class=\"head\">City</div>\r\n <input type=\"text\" placeholder=\"Enter City here\" formControlName=\"city\" />\r\n <small class=\"error\" *ngIf=\"educationForm.get('city')?.touched &&\r\n educationForm.get('instituteName')?.hasError('required')\">\r\n Enter City\r\n </small>\r\n </div>\r\n <div class=\"field date\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Start Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Start date\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !educationForm.get('startDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"startDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"field date\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">To Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"To date\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !educationForm.get('endDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"endDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Comments</div>\r\n <textarea placeholder=\"Description\" formControlName=\"comments\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"upload-wrapper\">\r\n <p class=\"upload-title\">Upload</p>\r\n <p class=\"upload-subtitle\">Add documents such as Diploma, Degree</p>\r\n <button type=\"button\" class=\"upload-btn\" (click)=\"fileInput.click()\">\r\n Upload Documents\r\n </button>\r\n <input #fileInput type=\"file\" accept=\".pdf,.doc,.docx\" (change)=\"selectFile($event)\" hidden />\r\n <p class=\"file-name\" *ngIf=\"fileName\">\r\n Selected: {{ fileName }}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\"> \r\n <button type=\"button\" class=\"secondary\" (click)=\"nextStep()\" >\r\n Skip\r\n </button> \r\n <button type=\"button\" class=\"primary\" [disabled]=\"proposalLoader\" [ng2-loading]=\"proposalLoader\"\r\n (click)=\"saveFile()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"work-preview\" *ngIf=\"showpreview()\">\r\n <div class=\"preview-header\" style=\"margin-left: 400px;\">\r\n <h3>Education Preview</h3>\r\n </div>\r\n <div class=\"accordion\" style=\"margin: 20px 100px;\">\r\n\r\n <div *ngFor=\"let exp of workStore.experiences(); let i = index\" style=\"margin-bottom: 20px;\"\r\n class=\"accordion-item border-0\">\r\n\r\n <!-- HEADER (preview) -->\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#edu_' + i\">\r\n\r\n <!-- LEFT : TITLE -->\r\n <span class=\"accordion-title\">\r\n {{ exp.courseName }}\r\n </span>\r\n\r\n <!-- RIGHT : EDIT ICON -->\r\n <span class=\"accordion-actions\">\r\n <img src=\"/assets/images/icons/edit-text.png\" class=\"edit-icon icon-color\"\r\n (click)=\"edit(i); $event.stopPropagation()\" alt=\"Edit\" />\r\n </span>\r\n\r\n </button>\r\n </h2>\r\n\r\n\r\n <!-- BODY -->\r\n <div [id]=\"'edu_' + i\" class=\"accordion-collapse collapse\" style=\"margin-bottom: 20px;\">\r\n <div class=\"accordion-body\">\r\n\r\n <!-- GRID DATA (2 or 3 columns) -->\r\n <div class=\"detail-grid\">\r\n\r\n <div>\r\n <strong>Course Name</strong><br />\r\n <span class=\"job-title\"> {{ exp.courseName }}</span>\r\n </div>\r\n <div>\r\n <strong>Course Type</strong><br />\r\n <span class=\"job-title\"> {{ exp.courseType }}</span>\r\n </div>\r\n <div>\r\n <strong>Institute Name</strong><br />\r\n <span class=\"job-title\"> {{ exp.instituteName }}</span>\r\n </div>\r\n <div>\r\n <strong>From Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.startDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n <div>\r\n <strong>To Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.endDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n <div>\r\n <strong>State</strong><br />\r\n <span class=\"job-title\"> {{ exp.state | stateName }}</span>\r\n </div> <div>\r\n <strong>City</strong><br />\r\n <span class=\"job-title\"> {{ exp.city }}</span>\r\n </div>\r\n \r\n <div *ngIf=\"exp.fileUrl\" class=\"full-width\">\r\n <strong>Document</strong><br />\r\n <a [href]=\"cloudfront + exp.fileUrl\" target=\"_blank\">\r\n <span class=\"job-title\"> {{ exp.fileName }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"full-width mt-3\">\r\n <strong>Comments</strong><br />\r\n <span class=\"job-title\"> {{ exp.comments }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"primary\" (click)=\"add()\" style=\"background-color: #1f4d5f;width: 200px;\">\r\n Add More Educations\r\n </button>\r\n <button type=\"button\" class=\"primary\" (click)=\"nextStep()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".education-container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:300px}h3{font-size:18px;font-weight:600;margin-bottom:4px}.hint{font-size:14px;color:#6b7280;margin-bottom:24px}.row{display:flex;margin-bottom:16px}.field{flex:1;display:flex;flex-direction:column}.field.full-width{flex:1 1 100%}input,select,textarea{width:100%;height:44px;padding:10px 12px;border:2px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;box-sizing:border-box;height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}textarea{height:90px;resize:none}.error{margin-top:4px;font-size:12px;color:#dc2626}.actions{display:flex;justify-content:space-between;margin-top:24px}button{height:44px;min-width:120px;border-radius:4px;border:none;font-size:14px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff}button.secondary{background-color:#f3f4f6;color:#374151}button:disabled{background-color:#9ca3af;cursor:not-allowed}.head{color:#6b7280;font-size:14px;font-weight:500;margin-bottom:5px}::ng-deep .today-highlight{color:#fff!important;background:#1e2541!important}.form-row{display:flex}.field{display:flex;flex-direction:column}.field.city{flex:0 0 50%}.field.date{flex:0 0 25%}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#757575;font-size:14px}.close-btn-select{width:16px;height:16px;color:#00f;display:inline-block}.upload-wrapper{margin-top:37px}.upload-title{font-weight:600;margin-bottom:4px}.upload-subtitle{font-size:13px;color:#6c757d;margin-bottom:12px}.upload-btn{background-color:#1f4d5f;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer}.upload-btn:hover{background-color:#173b4a}.file-name{margin-top:8px;font-size:13px;color:#495057}.right-actions{display:flex;gap:16px}.date-time-filter{padding-right:40px;background-image:url(/assets/images/icons/calendar.svg);background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px;cursor:pointer}.work-preview{max-width:1000px;padding:20px;margin:15px auto;background-color:#f4f6f8;font-family:Segoe UI,Arial,sans-serif}.preview-card{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 3px 8px #0000001a;padding:20px 25px;margin-bottom:20px;margin-top:20px;transition:box-shadow .2s ease}.preview-card:hover{box-shadow:0 6px 15px #00000026}.edit-btn{position:absolute;top:15px;right:15px;width:20px;height:20px;cursor:pointer}.card-top h4{margin:0;font-size:18px;color:#1f4d5f}.card-top .job-title{display:block;font-size:14px;color:#555;margin-top:2px}.card-meta{margin:10px 0;font-size:13px;color:#777;display:flex;justify-content:space-between}.card-meta .dates{font-style:italic}.job-description{font-size:14px;color:#333;line-height:1.5;margin-bottom:8px}.file-link{font-size:13px;color:#4077ad;text-decoration:underline;display:inline-block;margin-top:5px}.actions{display:flex;justify-content:space-between;margin-top:25px}button.secondary{background-color:#e0e0e0;color:#6c757dc7;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}@media (max-width: 600px){.preview-card{padding:15px}.edit-btn{top:10px;right:10px;width:18px;height:18px}.card-meta{flex-direction:column;gap:3px}}::ng-deep ng-dropdown-panel input[type=checkbox]{margin-right:0!important;padding:9px;margin-top:0}.form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{font-size:14px}::ng-deep .ng-value-label{font-size:14px}::ng-deep .bs-datepicker-head{background-color:#1e2541!important}::ng-deep .theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td[class*=select-] span:after{background-color:#1e2541!important}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.accordion-button{display:flex;align-items:center}.accordion-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-actions{display:flex;align-items:center;margin-right:12px}.edit-icon{cursor:pointer}::ng-deep .accordion-item:first-of-type>.accordion-header .accordion-button{margin-bottom:20px}.job-title{color:#6c757d;font-weight:400;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i11.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i11.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
2382
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: EducationComponent, isStandalone: false, selector: "app-education", ngImport: i0, template: "<div *ngIf=\"!showpreview()\">\r\n <div class=\"education-container\">\r\n <h3>Add Education</h3>\r\n <p class=\"hint\">\r\n Please list your educational story. This can cover anything from GED to college degree\r\n </p>\r\n <form [formGroup]=\"educationForm\">\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">General Equivalency Diploma / Degree</div>\r\n <input type=\"text\" placeholder=\"Enter your Diploma here\" formControlName=\"courseName\" />\r\n <small class=\"error\" *ngIf=\"educationForm.get('courseName')?.touched &&\r\n educationForm.get('courseName')?.hasError('required')\">\r\n Degree is required\r\n </small>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">Diploma / Degree Type</div>\r\n <input type=\"text\" placeholder=\"Enter your Diploma / Degree Type\" formControlName=\"courseType\" />\r\n <small class=\"error\" *ngIf=\"educationForm.get('courseType')?.touched &&\r\n educationForm.get('courseType')?.hasError('required')\">\r\n Diploma / Degree Type is required\r\n </small>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Institution Name</div>\r\n <input type=\"text\" placeholder=\"Enter institution name here\" formControlName=\"instituteName\" />\r\n <small class=\"error\" *ngIf=\"educationForm.get('instituteName')?.touched &&\r\n educationForm.get('instituteName')?.hasError('required')\">\r\n Institution name is required\r\n </small>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Country</div>\r\n <ng-select formControlName=\"country\" [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode2\"\r\n [clearable]=\"false\" placeholder=\"Select Country\" (change)=\"onCountryChange($event)\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" readonly />\r\n &nbsp;{{ item.country }}\r\n </ng-template>\r\n <!-- <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\" let-item$=\"item$\" let-index=\"index\">\r\n <span class=\"ng-value-label\">\r\n {{item.country}}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span> &nbsp;\r\n </ng-template> -->\r\n </ng-select>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">State</div>\r\n <ng-select formControlName=\"state\" [items]=\"states\" bindLabel=\"stateName\" bindValue=\"stateCode\"\r\n placeholder=\"Select State\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" />\r\n &nbsp;{{ item.stateName }}\r\n </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">\r\n {{ item.stateName }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n\r\n </div>\r\n </div>\r\n <div class=\"row form-row\">\r\n <div class=\"field city\">\r\n <div class=\"head\">City</div>\r\n <input type=\"text\" placeholder=\"Enter City here\" formControlName=\"city\" />\r\n <small class=\"error\" *ngIf=\"educationForm.get('city')?.touched &&\r\n educationForm.get('instituteName')?.hasError('required')\">\r\n Enter City\r\n </small>\r\n </div>\r\n <div class=\"field date\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Start Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Start date\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !educationForm.get('startDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"startDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"field date\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">To Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"To date\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !educationForm.get('endDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"endDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Comments</div>\r\n <textarea placeholder=\"Description\" formControlName=\"comments\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"upload-wrapper\">\r\n <p class=\"upload-title\">Upload</p>\r\n <p class=\"upload-subtitle\">Add documents such as Diploma, Degree</p>\r\n <button type=\"button\" class=\"upload-btn\" (click)=\"fileInput.click()\">\r\n Upload Documents\r\n </button>\r\n <input #fileInput type=\"file\" accept=\".pdf,.doc,.docx\" (change)=\"selectFile($event)\" hidden />\r\n <p class=\"file-name\" *ngIf=\"fileName\">\r\n Selected: {{ fileName }}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\"> \r\n <button type=\"button\" class=\"secondary\" (click)=\"nextStep()\" >\r\n Skip\r\n </button> \r\n <button type=\"button\" class=\"primary\" [disabled]=\"proposalLoader\" [ng2-loading]=\"proposalLoader\"\r\n (click)=\"saveFile()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"work-preview\" *ngIf=\"showpreview()\">\r\n <div class=\"preview-header\" style=\"margin-left: 400px;\">\r\n <h3>Education Preview</h3>\r\n </div>\r\n <div class=\"accordion\" style=\"margin: 20px 100px;\">\r\n\r\n <div *ngFor=\"let exp of workStore.experiences(); let i = index\" style=\"margin-bottom: 20px;\"\r\n class=\"accordion-item border-0\">\r\n\r\n <!-- HEADER (preview) -->\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#edu_' + i\">\r\n\r\n <!-- LEFT : TITLE -->\r\n <span class=\"accordion-title\">\r\n {{ exp.courseName }}\r\n </span>\r\n\r\n <!-- RIGHT : EDIT ICON -->\r\n <span class=\"accordion-actions\">\r\n <img src=\"/assets/images/icons/edit-text.png\" class=\"edit-icon icon-color\"\r\n (click)=\"edit(i); $event.stopPropagation()\" alt=\"Edit\" />\r\n </span>\r\n\r\n </button>\r\n </h2>\r\n\r\n\r\n <!-- BODY -->\r\n <div [id]=\"'edu_' + i\" class=\"accordion-collapse collapse\" style=\"margin-bottom: 20px;\">\r\n <div class=\"accordion-body\">\r\n\r\n <!-- GRID DATA (2 or 3 columns) -->\r\n <div class=\"detail-grid\">\r\n\r\n <div>\r\n <strong>Course Name</strong><br />\r\n <span class=\"job-title\"> {{ exp.courseName }}</span>\r\n </div>\r\n <div>\r\n <strong>Course Type</strong><br />\r\n <span class=\"job-title\"> {{ exp.courseType }}</span>\r\n </div>\r\n <div>\r\n <strong>Institute Name</strong><br />\r\n <span class=\"job-title\"> {{ exp.instituteName }}</span>\r\n </div>\r\n <div>\r\n <strong>From Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.startDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n <div>\r\n <strong>To Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.endDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n <div>\r\n <strong>State</strong><br />\r\n <span class=\"job-title\"> {{ exp.state | stateName }}</span>\r\n </div> <div>\r\n <strong>City</strong><br />\r\n <span class=\"job-title\"> {{ exp.city }}</span>\r\n </div>\r\n \r\n <div *ngIf=\"exp.fileUrl\" class=\"full-width\">\r\n <strong>Document</strong><br />\r\n <a [href]=\"cloudfront + exp.fileUrl\" target=\"_blank\">\r\n <span class=\"job-title\"> {{ exp.fileName }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"full-width mt-3\">\r\n <strong>Comments</strong><br />\r\n <span class=\"job-title\"> {{ exp.comments }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"primary\" (click)=\"add()\" style=\"background-color: #1f4d5f;width: 200px;\">\r\n Add More Educations\r\n </button>\r\n <button type=\"button\" class=\"primary\" (click)=\"nextStep()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".education-container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:300px}h3{font-size:18px;font-weight:600;margin-bottom:4px}.hint{font-size:14px;color:#6b7280;margin-bottom:24px}.row{display:flex;margin-bottom:16px}.field{flex:1;display:flex;flex-direction:column}.field.full-width{flex:1 1 100%}input,select,textarea{width:100%;height:44px;padding:10px 12px;border:2px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;box-sizing:border-box;height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}textarea{height:90px;resize:none}.error{margin-top:4px;font-size:12px;color:#dc2626}.actions{display:flex;justify-content:space-between;margin-top:24px}button{height:44px;min-width:120px;border-radius:4px;border:none;font-size:14px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff}button.secondary{background-color:#f3f4f6;color:#374151}button:disabled{background-color:#9ca3af;cursor:not-allowed}.head{color:#6b7280;font-size:14px;font-weight:500;margin-bottom:5px}::ng-deep .today-highlight{color:#fff!important;background:#1e2541!important}.form-row{display:flex}.field{display:flex;flex-direction:column}.field.city{flex:0 0 50%}.field.date{flex:0 0 25%}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#757575;font-size:14px}.close-btn-select{width:16px;height:16px;color:#00f;display:inline-block}.upload-wrapper{margin-top:37px}.upload-title{font-weight:600;margin-bottom:4px}.upload-subtitle{font-size:13px;color:#6c757d;margin-bottom:12px}.upload-btn{background-color:#1f4d5f;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer}.upload-btn:hover{background-color:#173b4a}.file-name{margin-top:8px;font-size:13px;color:#495057}.right-actions{display:flex;gap:16px}.date-time-filter{padding-right:40px;background-image:url(/assets/images/icons/calendar.svg);background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px;cursor:pointer}.work-preview{max-width:1000px;padding:20px;margin:15px auto;background-color:#f4f6f8;font-family:Segoe UI,Arial,sans-serif}.preview-card{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 3px 8px #0000001a;padding:20px 25px;margin-bottom:20px;margin-top:20px;transition:box-shadow .2s ease}.preview-card:hover{box-shadow:0 6px 15px #00000026}.edit-btn{position:absolute;top:15px;right:15px;width:20px;height:20px;cursor:pointer}.card-top h4{margin:0;font-size:18px;color:#1f4d5f}.card-top .job-title{display:block;font-size:14px;color:#555;margin-top:2px}.card-meta{margin:10px 0;font-size:13px;color:#777;display:flex;justify-content:space-between}.card-meta .dates{font-style:italic}.job-description{font-size:14px;color:#333;line-height:1.5;margin-bottom:8px}.file-link{font-size:13px;color:#4077ad;text-decoration:underline;display:inline-block;margin-top:5px}.actions{display:flex;justify-content:space-between;margin-top:25px}button.secondary{background-color:#e0e0e0;color:#6c757dc7;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}@media (max-width: 600px){.preview-card{padding:15px}.edit-btn{top:10px;right:10px;width:18px;height:18px}.card-meta{flex-direction:column;gap:3px}}::ng-deep ng-dropdown-panel input[type=checkbox]{margin-right:0!important;padding:9px;margin-top:0}.form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{font-size:14px}::ng-deep .ng-value-label{font-size:14px}::ng-deep .bs-datepicker-head{background-color:#1e2541!important}::ng-deep .theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td[class*=select-] span:after{background-color:#1e2541!important}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.accordion-button{display:flex;align-items:center}.accordion-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-actions{display:flex;align-items:center;margin-right:12px}.edit-icon{cursor:pointer}::ng-deep .accordion-item:first-of-type>.accordion-header .accordion-button{margin-bottom:20px}.job-title{color:#6c757d;font-weight:400;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i11.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i11.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
2375
2383
  }
2376
2384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EducationComponent, decorators: [{
2377
2385
  type: Component,
@@ -2765,7 +2773,7 @@ class CertificationComponent {
2765
2773
  this.store.nextStep();
2766
2774
  }
2767
2775
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CertificationComponent, deps: [{ token: UserDocumentService }, { token: CredentialingStore }, { token: CertificationStore }, { token: i6.TokenService }, { token: PostalCodeServices }, { token: i3.FormBuilder }, { token: FileService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
2768
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CertificationComponent, isStandalone: false, selector: "app-certification", ngImport: i0, template: "<div class=\"education-container\" *ngIf=\"!showpreview()\">\r\n <h3>Add Certificates</h3>\r\n <p class=\"hint\">\r\n Recommended for your role\r\n </p>\r\n <div class=\"document-container\">\r\n <input type=\"text\" class=\"search-input\" placeholder=\"Search documents here...\" [formControl]=\"searchControl\" />\r\n\r\n <div class=\"grid\">\r\n <div *ngFor=\"let item of documentTypes\">\r\n <label class=\"checkbox-row\">\r\n <input type=\"checkbox\" [checked]=\"isChecked(item.id)\" (change)=\"toggleSelection(item, $event)\" />\r\n <span class=\"title\">{{ item.type }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"certificateForm\">\r\n <div class=\"row\" style=\"margin-top: 20px;\">\r\n <div class=\"field\">\r\n <div class=\"head\">Certificate Number</div>\r\n <input type=\"text\" placeholder=\"Enter your Certificate Number here\" formControlName=\"number\" />\r\n <small class=\"error\" *ngIf=\"certificateForm.get('number')?.touched &&\r\n certificateForm.get('number')?.hasError('required')\">\r\n Certificate number is required\r\n </small>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">Certificate Issued By</div>\r\n <input type=\"text\" placeholder=\"Enter Certificate Issued By here\" formControlName=\"issuedBy\" />\r\n <small class=\"error\" *ngIf=\"certificateForm.get('issuedBy')?.touched &&\r\n certificateForm.get('issuedBy')?.hasError('required')\">\r\n Certificate issued by is required\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Issued State</div>\r\n <ng-select formControlName=\"issuedState\" [items]=\"states\" bindLabel=\"stateName\" bindValue=\"stateCode\"\r\n placeholder=\"Select State\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" />\r\n &nbsp;{{ item.stateName }}\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">\r\n {{ item.stateName }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Issued Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Issued On\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true, showWeekNumbers: false,\r\n isAnimated: true, customTodayClass: !certificateForm.get('issueDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"issueDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n <small class=\"error\" *ngIf=\"certificateForm.get('issueDate')?.touched &&\r\n certificateForm.get('issueDate')?.hasError('required')\">\r\n Issued date is required\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Expiration Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Expired On\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !certificateForm.get('expiryDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"expiryDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n <small class=\"error\" *ngIf=\"certificateForm.get('expiryDate')?.touched &&\r\n certificateForm.get('expiryDate')?.hasError('required')\">\r\n Expiry date is required\r\n </small>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Comments</div>\r\n <textarea placeholder=\"Description\" formControlName=\"notes\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"upload-wrapper\">\r\n\r\n <p class=\"upload-title\">Upload</p>\r\n <p class=\"upload-subtitle\">Add certificates below</p>\r\n\r\n <button type=\"button\" class=\"upload-btn\" (click)=\"fileInput.click()\">\r\n Upload Certifications\r\n </button>\r\n\r\n <input #fileInput type=\"file\" accept=\".pdf,.doc,.docx\" (change)=\"selectFile($event)\" hidden />\r\n\r\n <p class=\"file-name\" *ngIf=\"fileName\">\r\n Selected: {{ fileName }}\r\n </p>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"nextStep()\">\r\n Skip\r\n </button>\r\n <button type=\"button\" class=\"primary\" [disabled]=\"proposalLoader\" [ng2-loading]=\"proposalLoader\"\r\n (click)=\"saveFile()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"work-preview\" *ngIf=\"showpreview()\">\r\n <div class=\"preview-header\" style=\"margin-left: 350px;\">\r\n <h3>Certifications Preview</h3>\r\n </div>\r\n <div class=\"accordion\" style=\"margin: 20px 100px;\">\r\n\r\n <div *ngFor=\"let exp of workStore.experiences(); let i = index\" style=\"margin-bottom: 20px;\"\r\n class=\"accordion-item border-0\">\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#edu_' + i\">\r\n <span class=\"accordion-title\">\r\n {{ exp.documentTypeName }}\r\n </span>\r\n <span class=\"accordion-actions\">\r\n <img src=\"/assets/images/icons/edit-text.png\" class=\"edit-icon icon-color\"\r\n (click)=\"edit(i); $event.stopPropagation()\" alt=\"Edit\" />\r\n </span>\r\n </button>\r\n </h2>\r\n\r\n\r\n <div [id]=\"'edu_' + i\" class=\"accordion-collapse collapse\" style=\"margin-bottom: 20px;\">\r\n <div class=\"accordion-body\">\r\n <div class=\"detail-grid\">\r\n <div>\r\n <strong>Certificate Name</strong><br />\r\n <span class=\"job-title\"> {{ exp.documentTypeName }}</span>\r\n </div>\r\n <div>\r\n <strong>Certificate Number</strong><br />\r\n <span class=\"job-title\"> {{ exp.number }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued By</strong><br />\r\n <span class=\"job-title\"> {{ exp.issuedBy }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued State</strong><br />\r\n <span class=\"job-title\"> {{ exp.issuedState | stateName }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.issueDate | date:'yyyy/MM/dd' }} </span>\r\n </div>\r\n <div>\r\n <strong>Expiry Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.expiryDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n\r\n <div *ngIf=\"exp.fileUrl\" class=\"full-width\">\r\n <strong>Document</strong><br />\r\n <a [href]=\"cloudfront + exp.fileUrl\" target=\"_blank\">\r\n <span class=\"job-title\"> {{ exp.fileName }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"full-width mt-3\">\r\n <strong>Description</strong><br />\r\n <span class=\"job-title\"> {{ exp.notes }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"primary\" (click)=\"add()\" style=\"background-color: #1f4d5f;width: 200px;\">\r\n Add More Certifications\r\n </button>\r\n <button type=\"button\" class=\"primary\" (click)=\"nextStep()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".education-container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:300px}h3{font-size:23px;font-weight:600;margin-bottom:4px}.hint{font-size:14px;color:#6b7280;margin-bottom:24px}.row{display:flex;margin-bottom:16px}.field{flex:1;display:flex;flex-direction:column}.field.full-width{flex:1 1 100%}input[type=text],input[type=email],input[type=number],input[type=password],select,textarea{width:100%;height:44px;padding:10px 12px;border:2px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;box-sizing:border-box;color:#374151}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}textarea{height:90px;resize:none}.error{margin-top:4px;font-size:12px;color:#dc2626}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border-radius:4px;border:none;font-size:14px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff}button.secondary{background-color:#f3f4f6;color:#374151}button:disabled{background-color:#9ca3af;cursor:not-allowed}.head{color:#6b7280;font-size:14px;font-weight:500;margin-bottom:5px}::ng-deep .today-highlight{color:#fff!important;background:#1e2541!important}.form-row{display:flex}.field{display:flex;flex-direction:column}.field.city{flex:0 0 50%}.field.date{flex:0 0 25%}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#757575;font-size:14px}.close-btn-select{width:16px;height:16px;color:#00f;display:inline-block}.upload-wrapper{margin-top:37px}.upload-title{font-weight:600;margin-bottom:4px}.upload-subtitle{font-size:13px;color:#6c757d;margin-bottom:12px}.upload-btn{background-color:#1f4d5f;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer}.upload-btn:hover{background-color:#173b4a}.file-name{margin-top:8px;font-size:13px;color:#495057}.right-actions{display:flex;gap:16px}.date-time-filter{padding-right:40px;background-image:url(/assets/images/icons/calendar.svg);background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px;cursor:pointer}.document-container{max-width:1100px;margin:auto}.search-input{width:100%;max-width:400px;height:44px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{display:flex;align-items:center;min-height:48px}.checkbox{margin-top:4px}.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer}.content .title{font-weight:600;font-size:14px}.checkbox-row input{margin:0}.title{font-size:14px;font-weight:600}.content .desc{font-size:12px;color:#666;margin-top:4px}.save-btn{margin-top:20px;padding:10px 18px;border-radius:6px;border:none;background:#4077ad;color:#fff;cursor:pointer}@media (max-width: 1024px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.grid{grid-template-columns:1fr}}::ng-deep ng-dropdown-panel input[type=checkbox]{margin-right:0!important;padding:9px;margin-top:0}.form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{font-size:14px}::ng-deep .ng-value-label{font-size:14px}::ng-deep .bs-datepicker-head{background-color:#1e2541!important}::ng-deep .theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td[class*=select-] span:after{background-color:#1e2541!important}.work-preview{max-width:1000px;padding:15px;margin:15px auto;background-color:#f4f6f8;font-family:Segoe UI,Arial,sans-serif}.preview-card{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 3px 8px #0000001a;padding:20px 25px;margin-bottom:20px;transition:box-shadow .2s ease}.preview-card:hover{box-shadow:0 6px 15px #00000026}.edit-btn{position:absolute;top:15px;right:15px;width:20px;height:20px;cursor:pointer}.card-top h4{margin:0;font-size:18px;color:#1f4d5f}.card-top .job-title{display:block;font-size:14px;color:#555;margin-top:2px}.card-meta{margin:10px 0;font-size:13px;color:#777;display:flex;justify-content:space-between}.card-meta .dates{font-style:italic}.job-description{font-size:14px;color:#333;line-height:1.5;margin-bottom:8px}.file-link{font-size:13px;color:#4077ad;text-decoration:underline;display:inline-block;margin-top:5px}.actions{display:flex;justify-content:space-between;margin-top:25px}button.secondary{background-color:#e0e0e0;color:#6c757dc7;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}@media (max-width: 600px){.preview-card{padding:15px}.edit-btn{top:10px;right:10px;width:18px;height:18px}.card-meta{flex-direction:column;gap:3px}}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.accordion-button{display:flex;align-items:center}.accordion-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-actions{display:flex;align-items:center;margin-right:12px}.edit-icon{cursor:pointer}::ng-deep .accordion-item:first-of-type>.accordion-header .accordion-button{margin-bottom:20px}.job-title{color:#6c757d;font-weight:400;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i11.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i11.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
2776
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CertificationComponent, isStandalone: false, selector: "app-certification", ngImport: i0, template: "<div class=\"education-container\" *ngIf=\"!showpreview()\">\r\n <h3>Add Certificates</h3>\r\n <p class=\"hint\">\r\n Recommended for your role\r\n </p>\r\n <div class=\"document-container\">\r\n <input type=\"text\" class=\"search-input\" placeholder=\"Search documents here...\" [formControl]=\"searchControl\" />\r\n\r\n <div class=\"grid\">\r\n <div *ngFor=\"let item of documentTypes\">\r\n <label class=\"checkbox-row\">\r\n <input type=\"checkbox\" [checked]=\"isChecked(item.id)\" (change)=\"toggleSelection(item, $event)\" />\r\n <span class=\"title\">{{ item.type }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"certificateForm\">\r\n <div class=\"row\" style=\"margin-top: 20px;\">\r\n <div class=\"field\">\r\n <div class=\"head\">Certificate Number</div>\r\n <input type=\"text\" placeholder=\"Enter your Certificate Number here\" formControlName=\"number\" />\r\n <small class=\"error\" *ngIf=\"certificateForm.get('number')?.touched &&\r\n certificateForm.get('number')?.hasError('required')\">\r\n Certificate number is required\r\n </small>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">Certificate Issued By</div>\r\n <input type=\"text\" placeholder=\"Enter Certificate Issued By here\" formControlName=\"issuedBy\" />\r\n <small class=\"error\" *ngIf=\"certificateForm.get('issuedBy')?.touched &&\r\n certificateForm.get('issuedBy')?.hasError('required')\">\r\n Certificate issued by is required\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Issued State</div>\r\n <ng-select formControlName=\"issuedState\" [items]=\"states\" bindLabel=\"stateName\" bindValue=\"stateCode\"\r\n placeholder=\"Select State\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" />\r\n &nbsp;{{ item.stateName }}\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">\r\n {{ item.stateName }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Issued Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Issued On\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true, showWeekNumbers: false,\r\n isAnimated: true, customTodayClass: !certificateForm.get('issueDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"issueDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n <small class=\"error\" *ngIf=\"certificateForm.get('issueDate')?.touched &&\r\n certificateForm.get('issueDate')?.hasError('required')\">\r\n Issued date is required\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Expiration Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Expired On\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !certificateForm.get('expiryDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"expiryDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n <small class=\"error\" *ngIf=\"certificateForm.get('expiryDate')?.touched &&\r\n certificateForm.get('expiryDate')?.hasError('required')\">\r\n Expiry date is required\r\n </small>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Comments</div>\r\n <textarea placeholder=\"Description\" formControlName=\"notes\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"upload-wrapper\">\r\n\r\n <p class=\"upload-title\">Upload</p>\r\n <p class=\"upload-subtitle\">Add certificates below</p>\r\n\r\n <button type=\"button\" class=\"upload-btn\" (click)=\"fileInput.click()\">\r\n Upload Certifications\r\n </button>\r\n\r\n <input #fileInput type=\"file\" accept=\".pdf,.doc,.docx\" (change)=\"selectFile($event)\" hidden />\r\n\r\n <p class=\"file-name\" *ngIf=\"fileName\">\r\n Selected: {{ fileName }}\r\n </p>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"nextStep()\">\r\n Skip\r\n </button>\r\n <button type=\"button\" class=\"primary\" [disabled]=\"proposalLoader\" [ng2-loading]=\"proposalLoader\"\r\n (click)=\"saveFile()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"work-preview\" *ngIf=\"showpreview()\">\r\n <div class=\"preview-header\" style=\"margin-left: 350px;\">\r\n <h3>Certifications Preview</h3>\r\n </div>\r\n <div class=\"accordion\" style=\"margin: 20px 100px;\">\r\n\r\n <div *ngFor=\"let exp of workStore.experiences(); let i = index\" style=\"margin-bottom: 20px;\"\r\n class=\"accordion-item border-0\">\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#edu_' + i\">\r\n <span class=\"accordion-title\">\r\n {{ exp.documentTypeName }}\r\n </span>\r\n <span class=\"accordion-actions\">\r\n <img src=\"/assets/images/icons/edit-text.png\" class=\"edit-icon icon-color\"\r\n (click)=\"edit(i); $event.stopPropagation()\" alt=\"Edit\" />\r\n </span>\r\n </button>\r\n </h2>\r\n\r\n\r\n <div [id]=\"'edu_' + i\" class=\"accordion-collapse collapse\" style=\"margin-bottom: 20px;\">\r\n <div class=\"accordion-body\">\r\n <div class=\"detail-grid\">\r\n <div>\r\n <strong>Certificate Name</strong><br />\r\n <span class=\"job-title\"> {{ exp.documentTypeName }}</span>\r\n </div>\r\n <div>\r\n <strong>Certificate Number</strong><br />\r\n <span class=\"job-title\"> {{ exp.number }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued By</strong><br />\r\n <span class=\"job-title\"> {{ exp.issuedBy }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued State</strong><br />\r\n <span class=\"job-title\"> {{ exp.issuedState | stateName }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.issueDate | date:'yyyy/MM/dd' }} </span>\r\n </div>\r\n <div>\r\n <strong>Expiry Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.expiryDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n\r\n <div *ngIf=\"exp.fileUrl\" class=\"full-width\">\r\n <strong>Document</strong><br />\r\n <a [href]=\"cloudfront + exp.fileUrl\" target=\"_blank\">\r\n <span class=\"job-title\"> {{ exp.fileName }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"full-width mt-3\">\r\n <strong>Description</strong><br />\r\n <span class=\"job-title\"> {{ exp.notes }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"primary\" (click)=\"add()\" style=\"background-color: #1f4d5f;width: 200px;\">\r\n Add More Certifications\r\n </button>\r\n <button type=\"button\" class=\"primary\" (click)=\"nextStep()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".education-container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:300px}h3{font-size:23px;font-weight:600;margin-bottom:4px}.hint{font-size:14px;color:#6b7280;margin-bottom:24px}.row{display:flex;margin-bottom:16px}.field{flex:1;display:flex;flex-direction:column}.field.full-width{flex:1 1 100%}input[type=text],input[type=email],input[type=number],input[type=password],select,textarea{width:100%;height:44px;padding:10px 12px;border:2px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;box-sizing:border-box;color:#374151}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}textarea{height:90px;resize:none}.error{margin-top:4px;font-size:12px;color:#dc2626}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border-radius:4px;border:none;font-size:14px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff}button.secondary{background-color:#f3f4f6;color:#374151}button:disabled{background-color:#9ca3af;cursor:not-allowed}.head{color:#6b7280;font-size:14px;font-weight:500;margin-bottom:5px}::ng-deep .today-highlight{color:#fff!important;background:#1e2541!important}.form-row{display:flex}.field{display:flex;flex-direction:column}.field.city{flex:0 0 50%}.field.date{flex:0 0 25%}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#757575;font-size:14px}.close-btn-select{width:16px;height:16px;color:#00f;display:inline-block}.upload-wrapper{margin-top:37px}.upload-title{font-weight:600;margin-bottom:4px}.upload-subtitle{font-size:13px;color:#6c757d;margin-bottom:12px}.upload-btn{background-color:#1f4d5f;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer}.upload-btn:hover{background-color:#173b4a}.file-name{margin-top:8px;font-size:13px;color:#495057}.right-actions{display:flex;gap:16px}.date-time-filter{padding-right:40px;background-image:url(/assets/images/icons/calendar.svg);background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px;cursor:pointer}.document-container{max-width:1100px;margin:auto}.search-input{width:100%;max-width:400px;height:44px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{display:flex;align-items:center;min-height:48px}.checkbox{margin-top:4px}.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer}.content .title{font-weight:600;font-size:14px}.checkbox-row input{margin:0}.title{font-size:14px;font-weight:600}.content .desc{font-size:12px;color:#666;margin-top:4px}.save-btn{margin-top:20px;padding:10px 18px;border-radius:6px;border:none;background:#4077ad;color:#fff;cursor:pointer}@media (max-width: 1024px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.grid{grid-template-columns:1fr}}::ng-deep ng-dropdown-panel input[type=checkbox]{margin-right:0!important;padding:9px;margin-top:0}.form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{font-size:14px}::ng-deep .ng-value-label{font-size:14px}::ng-deep .bs-datepicker-head{background-color:#1e2541!important}::ng-deep .theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td[class*=select-] span:after{background-color:#1e2541!important}.work-preview{max-width:1000px;padding:15px;margin:15px auto;background-color:#f4f6f8;font-family:Segoe UI,Arial,sans-serif}.preview-card{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 3px 8px #0000001a;padding:20px 25px;margin-bottom:20px;transition:box-shadow .2s ease}.preview-card:hover{box-shadow:0 6px 15px #00000026}.edit-btn{position:absolute;top:15px;right:15px;width:20px;height:20px;cursor:pointer}.card-top h4{margin:0;font-size:18px;color:#1f4d5f}.card-top .job-title{display:block;font-size:14px;color:#555;margin-top:2px}.card-meta{margin:10px 0;font-size:13px;color:#777;display:flex;justify-content:space-between}.card-meta .dates{font-style:italic}.job-description{font-size:14px;color:#333;line-height:1.5;margin-bottom:8px}.file-link{font-size:13px;color:#4077ad;text-decoration:underline;display:inline-block;margin-top:5px}.actions{display:flex;justify-content:space-between;margin-top:25px}button.secondary{background-color:#e0e0e0;color:#6c757dc7;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}@media (max-width: 600px){.preview-card{padding:15px}.edit-btn{top:10px;right:10px;width:18px;height:18px}.card-meta{flex-direction:column;gap:3px}}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.accordion-button{display:flex;align-items:center}.accordion-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-actions{display:flex;align-items:center;margin-right:12px}.edit-icon{cursor:pointer}::ng-deep .accordion-item:first-of-type>.accordion-header .accordion-button{margin-bottom:20px}.job-title{color:#6c757d;font-weight:400;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i11.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i11.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
2769
2777
  }
2770
2778
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CertificationComponent, decorators: [{
2771
2779
  type: Component,
@@ -3253,7 +3261,7 @@ class NgxStarsComponent {
3253
3261
  return `star-${starType}`;
3254
3262
  }
3255
3263
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxStarsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3256
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: NgxStarsComponent, isStandalone: false, selector: "ngx-stars", inputs: { maxStars: "maxStars", initialStars: "initialStars", readonly: "readonly", size: "size", color: "color", animation: "animation", animationSpeed: "animationSpeed", customPadding: "customPadding", wholeStars: "wholeStars", customStarIcons: "customStarIcons" }, outputs: { ratingOutput: "ratingOutput" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"stars-line\" (mouseleave)=\"readonly ? noop() : onStarsUnhover()\">\r\n <span class=\"star zero-star\" [ngStyle]=\"starSize()\" aria-hidden=\"true\" (click)=\"onZeroStarClick()\" (mousemove)=\"readonly ? noop() : onZeroStarHover()\"></span>\r\n <div *ngFor=\"let star of editableStars;\" [ngStyle]=\"starPadding()\" (click)=\"readonly ? noop() : onStarClick($event, star)\" (mousemove)=\"readonly ? noop() : onStarHover($event, star)\">\r\n <span class=\"star\" [ngClass]=\"star.classname\" [ngStyle]=\"starColorAndSize()\" aria-hidden=\"true\"></span>\r\n </div>\r\n</div>\r\n", styles: [".stars-line{display:flex;align-items:center;position:relative}.stars-line>div{z-index:999}.zero-star{color:transparent;position:absolute;left:-16px}span.star.star-empty{background-color:#c8cccc}span.star.star-full,span.star.star-half{background-color:#eec900}.star{display:inline-block;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.star-empty{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\")}.star-half{-webkit-mask-image:url(\"data:image/svg+xml,%3C!-- had to hack this one's viewbox otherwise it didn't line up with the other two --%3E%3C!-- changed viewbox from '0 0 536 512' to '-20 0 576 512' --%3E%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star-half-alt' class='svg-inline--fa fa-star-half-alt fa-w-17' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='-20 0 576 512'%3E%3Cpath fill='currentColor' d='M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z'%3E%3C/path%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3C!-- had to hack this one's viewbox otherwise it didn't line up with the other two --%3E%3C!-- changed viewbox from '0 0 536 512' to '-20 0 576 512' --%3E%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star-half-alt' class='svg-inline--fa fa-star-half-alt fa-w-17' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='-20 0 576 512'%3E%3Cpath fill='currentColor' d='M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z'%3E%3C/path%3E%3C/svg%3E\")}.star-full{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\")}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
3264
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: NgxStarsComponent, isStandalone: false, selector: "ngx-stars", inputs: { maxStars: "maxStars", initialStars: "initialStars", readonly: "readonly", size: "size", color: "color", animation: "animation", animationSpeed: "animationSpeed", customPadding: "customPadding", wholeStars: "wholeStars", customStarIcons: "customStarIcons" }, outputs: { ratingOutput: "ratingOutput" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"stars-line\" (mouseleave)=\"readonly ? noop() : onStarsUnhover()\">\r\n <span class=\"star zero-star\" [ngStyle]=\"starSize()\" aria-hidden=\"true\" (click)=\"onZeroStarClick()\" (mousemove)=\"readonly ? noop() : onZeroStarHover()\"></span>\r\n <div *ngFor=\"let star of editableStars;\" [ngStyle]=\"starPadding()\" (click)=\"readonly ? noop() : onStarClick($event, star)\" (mousemove)=\"readonly ? noop() : onStarHover($event, star)\">\r\n <span class=\"star\" [ngClass]=\"star.classname\" [ngStyle]=\"starColorAndSize()\" aria-hidden=\"true\"></span>\r\n </div>\r\n</div>\r\n", styles: [".stars-line{display:flex;align-items:center;position:relative}.stars-line>div{z-index:999}.zero-star{color:transparent;position:absolute;left:-16px}span.star.star-empty{background-color:#c8cccc}span.star.star-full,span.star.star-half{background-color:#eec900}.star{display:inline-block;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.star-empty{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\")}.star-half{-webkit-mask-image:url(\"data:image/svg+xml,%3C!-- had to hack this one's viewbox otherwise it didn't line up with the other two --%3E%3C!-- changed viewbox from '0 0 536 512' to '-20 0 576 512' --%3E%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star-half-alt' class='svg-inline--fa fa-star-half-alt fa-w-17' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='-20 0 576 512'%3E%3Cpath fill='currentColor' d='M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z'%3E%3C/path%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3C!-- had to hack this one's viewbox otherwise it didn't line up with the other two --%3E%3C!-- changed viewbox from '0 0 536 512' to '-20 0 576 512' --%3E%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star-half-alt' class='svg-inline--fa fa-star-half-alt fa-w-17' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='-20 0 576 512'%3E%3Cpath fill='currentColor' d='M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z'%3E%3C/path%3E%3C/svg%3E\")}.star-full{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\")}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
3257
3265
  }
3258
3266
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxStarsComponent, decorators: [{
3259
3267
  type: Component,
@@ -3738,7 +3746,7 @@ class SkillsComponent {
3738
3746
  this.userSkillsSub?.unsubscribe();
3739
3747
  }
3740
3748
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SkillsComponent, deps: [{ token: SkillSetService }, { token: UserSkillSetService }, { token: i3.UntypedFormBuilder }, { token: UtilsService }, { token: i6.RoleContextService }, { token: CredentialingStore }, { token: i6.TokenService }], target: i0.ɵɵFactoryTarget.Component });
3741
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SkillsComponent, isStandalone: false, selector: "app-skills", ngImport: i0, template: "<!-- SKILL PREVIEW LIST -->\r\n<div class=\"skills-container\" *ngIf=\"store.stepView() === 'preview'\">\r\n <h5 class=\"title text-secondary\">Skills Preview</h5>\r\n <p class=\"subtitle\">First-time users should enter skillsets with Inspector Match, Once you setup skillsets in your\r\n business profile you can add skills under</p>\r\n <accordion [closeOthers]=\"true\" [isAnimated]=\"true\">\r\n <accordion-group *ngFor=\"let skill of userSkillsPreview\" #accGroup\r\n (isOpenChange)=\"onSkillAccordionChange(skill, $event)\">\r\n <!-- HEADER -->\r\n <div accordion-heading class=\"skill-preview-header\">\r\n <span class=\"fw-semibold text-secondary\">\r\n {{ skill.skillSetName }}\r\n </span>\r\n <div class=\"actions\">\r\n <ng-container *ngIf=\"!isEditMode || getSkillKey(model) !== getSkillKey(skill)\">\r\n <button type=\"button\" class=\"me-3\" (click)=\"editSkillFromPreview(skill, accGroup, $event)\">\r\n <img class=\"icon-color\" src=\"assets/images/icons/edit-text.png\" alt=\"icon\" />\r\n </button>\r\n <img class=\"icon-color edit\" src=\"assets/images/icons/arrow-down.svg\" alt=\"icon\"\r\n [class.rotate]=\"accGroup.isOpen\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"isEditMode && getSkillKey(model) === getSkillKey(skill)\">\r\n <button class=\"back-btn edit me-3\" type=\"button\" (click)=\"backToSkill(accGroup)\">\r\n Cancel\r\n </button>\r\n <button class=\"continue-btn edit\" type=\"button\" (click)=\"saveUserSkillset()\" \r\n [disabled]=\"showLoader\">\r\n Update\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- BODY -->\r\n <div class=\"skill-preview-body content-part\">\r\n <!-- DISPLAY MODE -->\r\n <div *ngIf=\"!isEditMode || model?.skillSetId !== skill.skillSetId\"\r\n class=\"d-flex justify-content-between align-items-center flex-wrap gap-3\">\r\n <div>\r\n <label>Service Provider</label> <br>\r\n {{ skill.providerName }}\r\n </div>\r\n <div>\r\n <label>Skill</label> <br>\r\n {{ skill.skillSetName }}\r\n </div>\r\n <div style=\"pointer-events: none;\">\r\n <label>Self Ability Rating</label> <br>\r\n <ngx-stars [initialStars]=\"skill.starRating/2\" [maxStars]=\"5\"></ngx-stars>\r\n </div>\r\n <div>\r\n <label class=\"mb-0 pb-0 label\">Years of Experience</label> <br>\r\n {{ skill?.year }}\r\n </div>\r\n <div>\r\n <label>Visible</label> <br>\r\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"skill.profileVisibility\" disabled>\r\n </div>\r\n <div class=\"w-100 mt-3\">\r\n <label>Description</label> <br>\r\n {{ skill.notes }}\r\n </div>\r\n </div>\r\n <!-- EDIT MODE -->\r\n <div *ngIf=\"isEditMode && model?.skillSetId === skill.skillSetId\" [formGroup]=\"tab.at(0)\">\r\n <div class=\"d-flex justify-content-between align-items-center flex-wrap gap-3\">\r\n <div>\r\n <label>Service Provider</label> <br>\r\n {{ skill.providerName }}\r\n </div>\r\n <div>\r\n <label>Skill</label> <br>\r\n {{ skill.skillSetName }}\r\n </div>\r\n <div>\r\n <label>Self Ability Rating</label> <br>\r\n <ngx-stars *ngIf=\"tab.at(0)?.get('starRating')?.value !== null\" [key]=\"tab.at(0).get('starRating')?.value\"\r\n [initialStars]=\"(tab.at(0).get('starRating')?.value || 0) / 2\" [maxStars]=\"5\"\r\n (rate)=\"onEditRating($event)\">\r\n </ngx-stars>\r\n </div>\r\n <div style=\"width: 200px;\">\r\n <label class=\"mb-0 label pb-0\">Years of Experience</label> <br>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [clearable]=\"false\" bindLabel=\"text\" formControlName=\"year\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\" bindValue=\"value\"\r\n [closeOnSelect]=\"true\" placeholder=\"Select\" id=\"reqStates\"></ng-select>\r\n </div>\r\n <div>\r\n <label>Visible</label> <br>\r\n <input class=\"form-check-input \" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\">\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <label>Description</label> <br>\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"notes\" placeholder=\"Enter notes\"\r\n style=\"height: 80px;\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </accordion-group>\r\n </accordion>\r\n</div>\r\n\r\n<!-- Add part -->\r\n<div class=\"skills-container\" *ngIf=\"store.stepView() === 'add'\">\r\n <h2 class=\"title text-secondary\">Add Skills</h2>\r\n <p class=\"subtitle\">A minimum of 5 skills is needed</p>\r\n <div class=\"content-part\">\r\n <h6 class=\"text-secondary\"> {{ form?.value?.id ? \"Update Skill Category\" : \"Create Skill Category\" }}</h6>\r\n <div class=\"sub-section\">\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12 col-md-12 col-sm-12\">\r\n <div class=\"search-part\">\r\n <input type=\"text\" placeholder=\"Search / Add Skillsets here\" [(ngModel)]=\"searchSkillQry\"\r\n (input)=\"getSkillSets()\" />\r\n <button class=\"btn\" (click)=\"createNewSkills()\" tooltip=\"Add Skillset\">\r\n <img src=\"../../../../../../assets/images/icons/plus.svg\" alt=\"search\" class=\"create-plus\" width=\"18\"\r\n height=\"18\" />\r\n </button>\r\n </div>\r\n <div *ngIf=\"errMsg\" class=\"invalid-feedback is-invalid d-block\">\r\n Please Enter Skillsets Name\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"nameError\" class=\"invalid-feedback is-invalid d-block\">\r\n {{nameError}}\r\n </div>\r\n <div class=\"col skills-section\" [ngClass]=\"showLoading && !isEditMode ? 'loader':''\">\r\n <div class=\"row mt-2\" [ngStyle]=\"showLoader && !isEditMode ? {'min-height': '150px'} : {}\">\r\n <div class=\"col-12 col-md-4\" *ngFor=\"let skill of skillSets\">\r\n <div class=\"mt-2 gap-1 d-flex align-items-start\">\r\n <input \r\n type=\"checkbox\"\r\n [checked]=\"skill.selected\"\r\n (change)=\"onSelectedSkillsets($event, skill)\"\r\n id=\"{{skill.id}}\"\r\n name=\"{{skill.id}}\">\r\n<label class=\"text-title\" for=\"{{skill.id}}\">\r\n {{ skill.name }}\r\n</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [ngClass]=\"{ 'loader': showLoading && !isEditMode,'pt-3': !showLoading && !isEditMode,'edit-mode': isEditMode}\">\r\n <!-- <loader [show]=\"showLoading\" [small]=\"true\"></loader> -->\r\n <tabset #tabSet>\r\n <tab (selectTab)=\"setTabGroup(group)\" *ngFor=\"let group of tab.controls; let index = index\"\r\n [label]=\"tabs[index]\" tab1 id={{tabs[index]}} #{{tabs[index]}}>\r\n <ng-template tabHeading *ngIf=\"!isEditMode\">\r\n <span class=\"text-secondary\">{{tabs[index]}}</span>\r\n <button class=\"btn btn-sm\" (click)=\"removeTab(index, group.controls.skillSetId.value)\">\r\n <img src=\"assets/images/icons/close-x-mark.svg\" alt=\"search\" width=\"16px\" height=\"16px\" />\r\n </button>\r\n </ng-template>\r\n <div [formGroup]=\"group\" class=\"tab-card\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"initialStarts\" (ratingOutput)=\"onRatingSet($event,index)\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.starRating?.errors }\" [maxStars]=\"5\">\r\n </ngx-stars>\r\n <div *ngIf=\"userSkillSubmitted && k?.starRating?.errors\" class=\"invalid-feedback\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.starRating?.errors }\">\r\n <div *ngIf=\"k?.starRating?.errors?.required\">Star\r\n Rating is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label \">Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [clearable]=\"false\" bindLabel=\"text\"\r\n formControlName=\"year\" [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\"\r\n bindValue=\"value\" [closeOnSelect]=\"true\" placeholder=\"Select\" id=\"reqStates\"\r\n (change)=\"onYearChange(group)\"></ng-select>\r\n\r\n <div *ngIf=\"userSkillSubmitted && k?.year?.errors\" class=\"invalid-feedback\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\">\r\n <div *ngIf=\"k?.year?.errors?.required\">Year is\r\n required</div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1 text-center\">\r\n <label class=\"label\">Profile\r\n Visibility</label><br />\r\n <input class=\"form-check-input \" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\">\r\n </div>\r\n\r\n <div class=\"col-12 col-md-2 mt-1\" *ngIf=\"tab.controls.length>1 && index == copyOptionIndex\">\r\n <label class=\"mb-2 label\">Copy to All Tabs</label>\r\n <input class=\"form-check-input\" type=\"checkbox\" (click)=\"setCopyToAllTabs(index,group.value)\"\r\n role=\"switch\">\r\n </div>\r\n </div>\r\n <div>\r\n <label class=\"label\">Description</label>\r\n <div class=\"col-12 col-md-12 mt-1\">\r\n <textarea placeholder=\"Description of your Skill here\" formControlName=\"notes\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.notes?.errors }\" rows=\"5\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n <!-- <div class=\"row pt-3\">\r\n <div class=\"pt-3 text-end\">\r\n <button class=\"back-btn\" (click)=\"reset()\">Reset</button>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Footer buttons -->\r\n<div class=\"skills-container last footer-actions\">\r\n <button class=\"back-btn\" (click)=\"back()\">Back</button>\r\n <div>\r\n <button class=\"back-btn me-3\" *ngIf=\"store.stepView() === 'add'\" (click)=\"next()\">Skip</button>\r\n <button class=\"continue-btn add me-3\" *ngIf=\"store.stepView() === 'preview'\" (click)=\"store.goToAdd()\">\r\n Add More Skills\r\n </button>\r\n <button class=\"continue-btn\" (click)=\"onContinue()\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\">\r\n Continue</button>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.skills-container{max-width:1000px;margin:40px auto;min-height:300px}.skills-container.last{min-height:unset}.title{font-size:22px;margin-bottom:4px}.subtitle{font-size:13px;color:#777;margin-bottom:30px}.content-part{background:#fff}.content-part p,.content-part div{font-size:small}.content-part .card{margin-top:15px;background-color:#fff;border-radius:10px}.content-part .card .row{margin-top:-15px}.content-part .card .sub-section{padding:0 10px}.content-part .card .sub-section .title{font-size:16px;font-weight:400;color:var(--font-primary)}.content-part .card .sub-section .info-title{font-size:12px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .card .sub-section .content{font-size:12px}.content-part .card .sub-section .subsection{font-weight:600;padding-top:10px;font-size:12px}.content-part .card .sub-section .subsection input{width:30%}.content-part .card .sub-section .icon{width:35px;filter:opacity(.5)}.content-part .tab-card{background-color:#fff;border-radius:5px;color:var(--font-primary);margin-top:15px}.content-part .tab-card .row{margin-top:2px}.content-part .search-part{width:100%;position:relative;border-radius:5px;border:1px solid #d3dae6;padding:10px 0 10px 15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;height:45px}.content-part .search-part input{width:auto;flex:1;color:var(--font-dark);font-size:var(--font12-input);font-weight:400;border:none;background:none}.content-part .search-part .btn{background:#1e2541;border-radius:5px;padding:5px;width:41px;height:36px;margin-right:3px}.content-part .search-part .btn img{filter:brightness(0) invert(1)}.content-part textarea{width:100%;height:100px;background:none}.content-part .skills-section{margin-left:5px}.content-part .skills-section .category-title{margin-bottom:5px;font-size:13px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .skills-section .text-title{font-size:13px;margin-left:3px;color:var(--font-primary);display:contents}.content-part .skills-section input[type=checkbox]{border:2px solid #000!important;height:14px!important;width:15px!important;border-radius:2px!important;margin:2px}.content-part .skills-section input[type=checkbox]:checked{background-color:#000!important;border:2px solid #000!important}.content-part .skills-section input[type=checkbox]:checked:after{content:\"\\2713\";color:#fff;font-size:11px;position:relative;left:50%;bottom:-7px;transform:translate(-50%,-50%);font-weight:900;background:#000;width:15px;display:flex;justify-content:center;border:2px solid #000;height:14px;align-items:center;border-radius:2px}.content-part .form-check-input{width:43px;height:21px;margin:0 5px;background-color:#c7c7c7!important;background-image:url(/assets/images/icons/toogle-circle.svg);background-position:left 4px top 2px;background-size:15px;border:1px solid #c7c7c7;outline:none!important;box-shadow:none!important;border-radius:25px;cursor:pointer}.content-part .form-check-input:checked{background-position:right 4px top 2px;background-image:url(/assets/images/icons/toogle-circle.svg);background-color:#237b4b!important;border:1px solid #237b4b!important}::ng-deep .ng-select.ng-select-opened>.ng-select-container{background:#f1f4fa}::ng-deep .ng-select .ng-select-container{background:#f1f4fa;border:1px solid #ccc;border-radius:5px}.back-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background:#d3dae6;color:#fff;border-radius:5px;padding:6px 8px}.save-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px}.create-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px;height:40px;min-width:9rem}.form-control{color:#333;background:none!important;min-height:36px;font-size:small;height:43px}.form-control:focus{box-shadow:none!important}.close-popup{position:absolute;right:7px;top:4px;width:25px}.label{font-size:12px;font-weight:700;padding-bottom:8px}.form-control:focus{border:var(--bs-border-width) solid var(--bs-border-color)}::ng-deep .nav-link{color:#000!important}.loader{filter:blur(3px);height:40px}.edit-mode ::ng-deep .nav-tabs{display:none!important}.footer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:100px}.skip-btn,.back-btn{background:#d3dae6;color:#6c757dc7;font-size:14px;border-radius:5px;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px}.skip-btn.edit,.back-btn.edit{padding:5px 15px;min-height:20px;min-width:auto}.continue-btn{padding:7px 23px;background-color:#4077ad;color:#fff;border-radius:5px;min-width:8rem;min-height:45px}.continue-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.continue-btn.edit{padding:5px 15px;min-height:20px;min-width:auto}.continue-btn.add{background-color:#2e5b70}.skill-preview-wrapper{margin-bottom:24px}.skill-preview-card{border-radius:12px;margin-bottom:12px;transition:box-shadow .35s ease,transform .25s ease,border-color .25s ease;overflow:hidden}::ng-deep accordion-group+accordion-group{margin-top:20px}.skill-preview-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.rotate{transform:rotate(-180deg)}.skill-preview-body label{font-weight:500;font-size:13px;color:#6b7280}.skill-preview-body p{margin:0}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "component", type: NgxStarsComponent, selector: "ngx-stars", inputs: ["maxStars", "initialStars", "readonly", "size", "color", "animation", "animationSpeed", "customPadding", "wholeStars", "customStarIcons"], outputs: ["ratingOutput"] }, { kind: "directive", type: i11$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i12.TabDirective, selector: "tab, [tab]", inputs: ["heading", "id", "disabled", "removable", "tabOrder", "customClass", "active"], outputs: ["selectTab", "deselect", "removed"], exportAs: ["tab"] }, { kind: "component", type: i12.TabsetComponent, selector: "tabset", inputs: ["vertical", "justified", "type"] }, { kind: "directive", type: i12.TabHeadingDirective, selector: "[tabHeading]" }, { kind: "component", type: i13.AccordionComponent, selector: "accordion", inputs: ["isAnimated", "closeOthers"] }, { kind: "component", type: i13.AccordionPanelComponent, selector: "accordion-group, accordion-panel", inputs: ["heading", "panelClass", "isDisabled", "isOpen"], outputs: ["isOpenChange"] }], animations: [
3749
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SkillsComponent, isStandalone: false, selector: "app-skills", ngImport: i0, template: "<!-- SKILL PREVIEW LIST -->\r\n<div class=\"skills-container\" *ngIf=\"store.stepView() === 'preview'\">\r\n <h5 class=\"title text-secondary\">Skills Preview</h5>\r\n <p class=\"subtitle\">First-time users should enter skillsets with Inspector Match, Once you setup skillsets in your\r\n business profile you can add skills under</p>\r\n <accordion [closeOthers]=\"true\" [isAnimated]=\"true\">\r\n <accordion-group *ngFor=\"let skill of userSkillsPreview\" #accGroup\r\n (isOpenChange)=\"onSkillAccordionChange(skill, $event)\">\r\n <!-- HEADER -->\r\n <div accordion-heading class=\"skill-preview-header\">\r\n <span class=\"fw-semibold text-secondary\">\r\n {{ skill.skillSetName }}\r\n </span>\r\n <div class=\"actions\">\r\n <ng-container *ngIf=\"!isEditMode || getSkillKey(model) !== getSkillKey(skill)\">\r\n <button type=\"button\" class=\"me-3\" (click)=\"editSkillFromPreview(skill, accGroup, $event)\">\r\n <img class=\"icon-color\" src=\"/assets/images/icons/edit-text.png\" alt=\"icon\" />\r\n </button>\r\n <img class=\"icon-color edit\" src=\"/assets/images/icons/arrow-down.svg\" alt=\"icon\"\r\n [class.rotate]=\"accGroup.isOpen\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"isEditMode && getSkillKey(model) === getSkillKey(skill)\">\r\n <button class=\"back-btn edit me-3\" type=\"button\" (click)=\"backToSkill(accGroup)\">\r\n Cancel\r\n </button>\r\n <button class=\"continue-btn edit\" type=\"button\" (click)=\"saveUserSkillset()\" \r\n [disabled]=\"showLoader\">\r\n Update\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- BODY -->\r\n <div class=\"skill-preview-body content-part\">\r\n <!-- DISPLAY MODE -->\r\n <div *ngIf=\"!isEditMode || model?.skillSetId !== skill.skillSetId\"\r\n class=\"d-flex justify-content-between align-items-center flex-wrap gap-3\">\r\n <div>\r\n <label>Service Provider</label> <br>\r\n {{ skill.providerName }}\r\n </div>\r\n <div>\r\n <label>Skill</label> <br>\r\n {{ skill.skillSetName }}\r\n </div>\r\n <div style=\"pointer-events: none;\">\r\n <label>Self Ability Rating</label> <br>\r\n <ngx-stars [initialStars]=\"skill.starRating/2\" [maxStars]=\"5\"></ngx-stars>\r\n </div>\r\n <div>\r\n <label class=\"mb-0 pb-0 label\">Years of Experience</label> <br>\r\n {{ skill?.year }}\r\n </div>\r\n <div>\r\n <label>Visible</label> <br>\r\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"skill.profileVisibility\" disabled>\r\n </div>\r\n <div class=\"w-100 mt-3\">\r\n <label>Description</label> <br>\r\n {{ skill.notes }}\r\n </div>\r\n </div>\r\n <!-- EDIT MODE -->\r\n <div *ngIf=\"isEditMode && model?.skillSetId === skill.skillSetId\" [formGroup]=\"tab.at(0)\">\r\n <div class=\"d-flex justify-content-between align-items-center flex-wrap gap-3\">\r\n <div>\r\n <label>Service Provider</label> <br>\r\n {{ skill.providerName }}\r\n </div>\r\n <div>\r\n <label>Skill</label> <br>\r\n {{ skill.skillSetName }}\r\n </div>\r\n <div>\r\n <label>Self Ability Rating</label> <br>\r\n <ngx-stars *ngIf=\"tab.at(0)?.get('starRating')?.value !== null\" [key]=\"tab.at(0).get('starRating')?.value\"\r\n [initialStars]=\"(tab.at(0).get('starRating')?.value || 0) / 2\" [maxStars]=\"5\"\r\n (rate)=\"onEditRating($event)\">\r\n </ngx-stars>\r\n </div>\r\n <div style=\"width: 200px;\">\r\n <label class=\"mb-0 label pb-0\">Years of Experience</label> <br>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [clearable]=\"false\" bindLabel=\"text\" formControlName=\"year\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\" bindValue=\"value\"\r\n [closeOnSelect]=\"true\" placeholder=\"Select\" id=\"reqStates\"></ng-select>\r\n </div>\r\n <div>\r\n <label>Visible</label> <br>\r\n <input class=\"form-check-input \" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\">\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <label>Description</label> <br>\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"notes\" placeholder=\"Enter notes\"\r\n style=\"height: 80px;\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </accordion-group>\r\n </accordion>\r\n</div>\r\n\r\n<!-- Add part -->\r\n<div class=\"skills-container\" *ngIf=\"store.stepView() === 'add'\">\r\n <h2 class=\"title text-secondary\">Add Skills</h2>\r\n <p class=\"subtitle\">A minimum of 5 skills is needed</p>\r\n <div class=\"content-part\">\r\n <h6 class=\"text-secondary\"> {{ form?.value?.id ? \"Update Skill Category\" : \"Create Skill Category\" }}</h6>\r\n <div class=\"sub-section\">\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12 col-md-12 col-sm-12\">\r\n <div class=\"search-part\">\r\n <input type=\"text\" placeholder=\"Search / Add Skillsets here\" [(ngModel)]=\"searchSkillQry\"\r\n (input)=\"getSkillSets()\" />\r\n <button class=\"btn\" (click)=\"createNewSkills()\" tooltip=\"Add Skillset\">\r\n <img src=\"/assets/images/icons/plus.svg\" alt=\"search\" class=\"create-plus\" width=\"18\"\r\n height=\"18\" />\r\n </button>\r\n </div>\r\n <div *ngIf=\"errMsg\" class=\"invalid-feedback is-invalid d-block\">\r\n Please Enter Skillsets Name\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"nameError\" class=\"invalid-feedback is-invalid d-block\">\r\n {{nameError}}\r\n </div>\r\n <div class=\"col skills-section\" [ngClass]=\"showLoading && !isEditMode ? 'loader':''\">\r\n <div class=\"row mt-2\" [ngStyle]=\"showLoader && !isEditMode ? {'min-height': '150px'} : {}\">\r\n <div class=\"col-12 col-md-4\" *ngFor=\"let skill of skillSets\">\r\n <div class=\"mt-2 gap-1 d-flex align-items-start\">\r\n <input \r\n type=\"checkbox\"\r\n [checked]=\"skill.selected\"\r\n (change)=\"onSelectedSkillsets($event, skill)\"\r\n id=\"{{skill.id}}\"\r\n name=\"{{skill.id}}\">\r\n<label class=\"text-title\" for=\"{{skill.id}}\">\r\n {{ skill.name }}\r\n</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [ngClass]=\"{ 'loader': showLoading && !isEditMode,'pt-3': !showLoading && !isEditMode,'edit-mode': isEditMode}\">\r\n <!-- <loader [show]=\"showLoading\" [small]=\"true\"></loader> -->\r\n <tabset #tabSet>\r\n <tab (selectTab)=\"setTabGroup(group)\" *ngFor=\"let group of tab.controls; let index = index\"\r\n [label]=\"tabs[index]\" tab1 id={{tabs[index]}} #{{tabs[index]}}>\r\n <ng-template tabHeading *ngIf=\"!isEditMode\">\r\n <span class=\"text-secondary\">{{tabs[index]}}</span>\r\n <button class=\"btn btn-sm\" (click)=\"removeTab(index, group.controls.skillSetId.value)\">\r\n <img src=\"/assets/images/icons/close-x-mark.svg\" alt=\"search\" width=\"16px\" height=\"16px\" />\r\n </button>\r\n </ng-template>\r\n <div [formGroup]=\"group\" class=\"tab-card\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"initialStarts\" (ratingOutput)=\"onRatingSet($event,index)\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.starRating?.errors }\" [maxStars]=\"5\">\r\n </ngx-stars>\r\n <div *ngIf=\"userSkillSubmitted && k?.starRating?.errors\" class=\"invalid-feedback\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.starRating?.errors }\">\r\n <div *ngIf=\"k?.starRating?.errors?.required\">Star\r\n Rating is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label \">Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [clearable]=\"false\" bindLabel=\"text\"\r\n formControlName=\"year\" [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\"\r\n bindValue=\"value\" [closeOnSelect]=\"true\" placeholder=\"Select\" id=\"reqStates\"\r\n (change)=\"onYearChange(group)\"></ng-select>\r\n\r\n <div *ngIf=\"userSkillSubmitted && k?.year?.errors\" class=\"invalid-feedback\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\">\r\n <div *ngIf=\"k?.year?.errors?.required\">Year is\r\n required</div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1 text-center\">\r\n <label class=\"label\">Profile\r\n Visibility</label><br />\r\n <input class=\"form-check-input \" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\">\r\n </div>\r\n\r\n <div class=\"col-12 col-md-2 mt-1\" *ngIf=\"tab.controls.length>1 && index == copyOptionIndex\">\r\n <label class=\"mb-2 label\">Copy to All Tabs</label>\r\n <input class=\"form-check-input\" type=\"checkbox\" (click)=\"setCopyToAllTabs(index,group.value)\"\r\n role=\"switch\">\r\n </div>\r\n </div>\r\n <div>\r\n <label class=\"label\">Description</label>\r\n <div class=\"col-12 col-md-12 mt-1\">\r\n <textarea placeholder=\"Description of your Skill here\" formControlName=\"notes\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.notes?.errors }\" rows=\"5\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n <!-- <div class=\"row pt-3\">\r\n <div class=\"pt-3 text-end\">\r\n <button class=\"back-btn\" (click)=\"reset()\">Reset</button>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Footer buttons -->\r\n<div class=\"skills-container last footer-actions\">\r\n <button class=\"back-btn\" (click)=\"back()\">Back</button>\r\n <div>\r\n <button class=\"back-btn me-3\" *ngIf=\"store.stepView() === 'add'\" (click)=\"next()\">Skip</button>\r\n <button class=\"continue-btn add me-3\" *ngIf=\"store.stepView() === 'preview'\" (click)=\"store.goToAdd()\">\r\n Add More Skills\r\n </button>\r\n <button class=\"continue-btn\" (click)=\"onContinue()\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\">\r\n Continue</button>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.skills-container{max-width:1000px;margin:40px auto;min-height:300px}.skills-container.last{min-height:unset}.title{font-size:22px;margin-bottom:4px}.subtitle{font-size:13px;color:#777;margin-bottom:30px}.content-part{background:#fff}.content-part p,.content-part div{font-size:small}.content-part .card{margin-top:15px;background-color:#fff;border-radius:10px}.content-part .card .row{margin-top:-15px}.content-part .card .sub-section{padding:0 10px}.content-part .card .sub-section .title{font-size:16px;font-weight:400;color:var(--font-primary)}.content-part .card .sub-section .info-title{font-size:12px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .card .sub-section .content{font-size:12px}.content-part .card .sub-section .subsection{font-weight:600;padding-top:10px;font-size:12px}.content-part .card .sub-section .subsection input{width:30%}.content-part .card .sub-section .icon{width:35px;filter:opacity(.5)}.content-part .tab-card{background-color:#fff;border-radius:5px;color:var(--font-primary);margin-top:15px}.content-part .tab-card .row{margin-top:2px}.content-part .search-part{width:100%;position:relative;border-radius:5px;border:1px solid #d3dae6;padding:10px 0 10px 15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;height:45px}.content-part .search-part input{width:auto;flex:1;color:var(--font-dark);font-size:var(--font12-input);font-weight:400;border:none;background:none;outline:none}.content-part .search-part .btn{background:#1e2541;border-radius:5px;padding:5px;width:41px;height:36px;margin-right:3px}.content-part .search-part .btn img{filter:brightness(0) invert(1)}.content-part textarea{width:100%;height:100px;background:none}.content-part .skills-section{margin-left:5px}.content-part .skills-section .category-title{margin-bottom:5px;font-size:13px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .skills-section .text-title{font-size:13px;margin-left:3px;color:var(--font-primary);display:contents}.content-part .skills-section input[type=checkbox]{border:2px solid #000!important;height:14px!important;width:15px!important;border-radius:2px!important;margin:2px}.content-part .skills-section input[type=checkbox]:checked{background-color:#000!important;border:2px solid #000!important}.content-part .skills-section input[type=checkbox]:checked:after{content:\"\\2713\";color:#fff;font-size:11px;position:relative;left:50%;bottom:-7px;transform:translate(-50%,-50%);font-weight:900;background:#000;width:15px;display:flex;justify-content:center;border:2px solid #000;height:14px;align-items:center;border-radius:2px}.content-part .form-check-input{width:43px;height:21px;margin:0 5px;background-color:#c7c7c7!important;background-image:url(/assets/images/icons/toogle-circle.svg);background-position:left 4px top 2px;background-size:15px;border:1px solid #c7c7c7;outline:none!important;box-shadow:none!important;border-radius:25px;cursor:pointer}.content-part .form-check-input:checked{background-position:right 4px top 2px;background-image:url(/assets/images/icons/toogle-circle.svg);background-color:#237b4b!important;border:1px solid #237b4b!important}::ng-deep .ng-select.ng-select-opened>.ng-select-container{background:#f1f4fa}::ng-deep .ng-select .ng-select-container{background:#f1f4fa;border:1px solid #ccc;border-radius:5px}.back-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background:#d3dae6;color:#fff;border-radius:5px;padding:6px 8px}.save-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px}.create-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px;height:40px;min-width:9rem}.form-control{color:#333;background:none!important;min-height:36px;font-size:small;height:43px}.form-control:focus{box-shadow:none!important}.close-popup{position:absolute;right:7px;top:4px;width:25px}.label{font-size:12px;font-weight:700;padding-bottom:8px}.form-control:focus{border:var(--bs-border-width) solid var(--bs-border-color)}::ng-deep .nav-link{color:#000!important}.loader{filter:blur(3px);height:40px}.edit-mode ::ng-deep .nav-tabs{display:none!important}.footer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:100px}.skip-btn,.back-btn{background:#d3dae6;color:#6c757dc7;font-size:14px;border-radius:5px;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px}.skip-btn.edit,.back-btn.edit{padding:5px 15px;min-height:20px;min-width:auto}.continue-btn{padding:7px 23px;background-color:#4077ad;color:#fff;border-radius:5px;min-width:8rem;min-height:45px;border:white}.continue-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.continue-btn.edit{padding:5px 15px;min-height:20px;min-width:auto}.continue-btn.add{background-color:#2e5b70}.skill-preview-wrapper{margin-bottom:24px}.skill-preview-card{border-radius:12px;margin-bottom:12px;transition:box-shadow .35s ease,transform .25s ease,border-color .25s ease;overflow:hidden}::ng-deep accordion-group+accordion-group{margin-top:20px}.skill-preview-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.icon-color{cursor:pointer;width:20px;height:20px;background:transparent;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.rotate{transform:rotate(-180deg)}.skill-preview-body label{font-weight:500;font-size:13px;color:#6b7280}.skill-preview-body p{margin:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "component", type: NgxStarsComponent, selector: "ngx-stars", inputs: ["maxStars", "initialStars", "readonly", "size", "color", "animation", "animationSpeed", "customPadding", "wholeStars", "customStarIcons"], outputs: ["ratingOutput"] }, { kind: "directive", type: i11$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i12.TabDirective, selector: "tab, [tab]", inputs: ["heading", "id", "disabled", "removable", "tabOrder", "customClass", "active"], outputs: ["selectTab", "deselect", "removed"], exportAs: ["tab"] }, { kind: "component", type: i12.TabsetComponent, selector: "tabset", inputs: ["vertical", "justified", "type"] }, { kind: "directive", type: i12.TabHeadingDirective, selector: "[tabHeading]" }, { kind: "component", type: i13.AccordionComponent, selector: "accordion", inputs: ["isAnimated", "closeOthers"] }, { kind: "component", type: i13.AccordionPanelComponent, selector: "accordion-group, accordion-panel", inputs: ["heading", "panelClass", "isDisabled", "isOpen"], outputs: ["isOpenChange"] }], animations: [
3742
3750
  trigger('expandCollapse', [
3743
3751
  state('open', style({
3744
3752
  height: '*',
@@ -3776,7 +3784,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3776
3784
  })),
3777
3785
  transition('open <=> closed', animate('300ms ease'))
3778
3786
  ])
3779
- ], template: "<!-- SKILL PREVIEW LIST -->\r\n<div class=\"skills-container\" *ngIf=\"store.stepView() === 'preview'\">\r\n <h5 class=\"title text-secondary\">Skills Preview</h5>\r\n <p class=\"subtitle\">First-time users should enter skillsets with Inspector Match, Once you setup skillsets in your\r\n business profile you can add skills under</p>\r\n <accordion [closeOthers]=\"true\" [isAnimated]=\"true\">\r\n <accordion-group *ngFor=\"let skill of userSkillsPreview\" #accGroup\r\n (isOpenChange)=\"onSkillAccordionChange(skill, $event)\">\r\n <!-- HEADER -->\r\n <div accordion-heading class=\"skill-preview-header\">\r\n <span class=\"fw-semibold text-secondary\">\r\n {{ skill.skillSetName }}\r\n </span>\r\n <div class=\"actions\">\r\n <ng-container *ngIf=\"!isEditMode || getSkillKey(model) !== getSkillKey(skill)\">\r\n <button type=\"button\" class=\"me-3\" (click)=\"editSkillFromPreview(skill, accGroup, $event)\">\r\n <img class=\"icon-color\" src=\"assets/images/icons/edit-text.png\" alt=\"icon\" />\r\n </button>\r\n <img class=\"icon-color edit\" src=\"assets/images/icons/arrow-down.svg\" alt=\"icon\"\r\n [class.rotate]=\"accGroup.isOpen\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"isEditMode && getSkillKey(model) === getSkillKey(skill)\">\r\n <button class=\"back-btn edit me-3\" type=\"button\" (click)=\"backToSkill(accGroup)\">\r\n Cancel\r\n </button>\r\n <button class=\"continue-btn edit\" type=\"button\" (click)=\"saveUserSkillset()\" \r\n [disabled]=\"showLoader\">\r\n Update\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- BODY -->\r\n <div class=\"skill-preview-body content-part\">\r\n <!-- DISPLAY MODE -->\r\n <div *ngIf=\"!isEditMode || model?.skillSetId !== skill.skillSetId\"\r\n class=\"d-flex justify-content-between align-items-center flex-wrap gap-3\">\r\n <div>\r\n <label>Service Provider</label> <br>\r\n {{ skill.providerName }}\r\n </div>\r\n <div>\r\n <label>Skill</label> <br>\r\n {{ skill.skillSetName }}\r\n </div>\r\n <div style=\"pointer-events: none;\">\r\n <label>Self Ability Rating</label> <br>\r\n <ngx-stars [initialStars]=\"skill.starRating/2\" [maxStars]=\"5\"></ngx-stars>\r\n </div>\r\n <div>\r\n <label class=\"mb-0 pb-0 label\">Years of Experience</label> <br>\r\n {{ skill?.year }}\r\n </div>\r\n <div>\r\n <label>Visible</label> <br>\r\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"skill.profileVisibility\" disabled>\r\n </div>\r\n <div class=\"w-100 mt-3\">\r\n <label>Description</label> <br>\r\n {{ skill.notes }}\r\n </div>\r\n </div>\r\n <!-- EDIT MODE -->\r\n <div *ngIf=\"isEditMode && model?.skillSetId === skill.skillSetId\" [formGroup]=\"tab.at(0)\">\r\n <div class=\"d-flex justify-content-between align-items-center flex-wrap gap-3\">\r\n <div>\r\n <label>Service Provider</label> <br>\r\n {{ skill.providerName }}\r\n </div>\r\n <div>\r\n <label>Skill</label> <br>\r\n {{ skill.skillSetName }}\r\n </div>\r\n <div>\r\n <label>Self Ability Rating</label> <br>\r\n <ngx-stars *ngIf=\"tab.at(0)?.get('starRating')?.value !== null\" [key]=\"tab.at(0).get('starRating')?.value\"\r\n [initialStars]=\"(tab.at(0).get('starRating')?.value || 0) / 2\" [maxStars]=\"5\"\r\n (rate)=\"onEditRating($event)\">\r\n </ngx-stars>\r\n </div>\r\n <div style=\"width: 200px;\">\r\n <label class=\"mb-0 label pb-0\">Years of Experience</label> <br>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [clearable]=\"false\" bindLabel=\"text\" formControlName=\"year\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\" bindValue=\"value\"\r\n [closeOnSelect]=\"true\" placeholder=\"Select\" id=\"reqStates\"></ng-select>\r\n </div>\r\n <div>\r\n <label>Visible</label> <br>\r\n <input class=\"form-check-input \" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\">\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <label>Description</label> <br>\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"notes\" placeholder=\"Enter notes\"\r\n style=\"height: 80px;\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </accordion-group>\r\n </accordion>\r\n</div>\r\n\r\n<!-- Add part -->\r\n<div class=\"skills-container\" *ngIf=\"store.stepView() === 'add'\">\r\n <h2 class=\"title text-secondary\">Add Skills</h2>\r\n <p class=\"subtitle\">A minimum of 5 skills is needed</p>\r\n <div class=\"content-part\">\r\n <h6 class=\"text-secondary\"> {{ form?.value?.id ? \"Update Skill Category\" : \"Create Skill Category\" }}</h6>\r\n <div class=\"sub-section\">\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12 col-md-12 col-sm-12\">\r\n <div class=\"search-part\">\r\n <input type=\"text\" placeholder=\"Search / Add Skillsets here\" [(ngModel)]=\"searchSkillQry\"\r\n (input)=\"getSkillSets()\" />\r\n <button class=\"btn\" (click)=\"createNewSkills()\" tooltip=\"Add Skillset\">\r\n <img src=\"../../../../../../assets/images/icons/plus.svg\" alt=\"search\" class=\"create-plus\" width=\"18\"\r\n height=\"18\" />\r\n </button>\r\n </div>\r\n <div *ngIf=\"errMsg\" class=\"invalid-feedback is-invalid d-block\">\r\n Please Enter Skillsets Name\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"nameError\" class=\"invalid-feedback is-invalid d-block\">\r\n {{nameError}}\r\n </div>\r\n <div class=\"col skills-section\" [ngClass]=\"showLoading && !isEditMode ? 'loader':''\">\r\n <div class=\"row mt-2\" [ngStyle]=\"showLoader && !isEditMode ? {'min-height': '150px'} : {}\">\r\n <div class=\"col-12 col-md-4\" *ngFor=\"let skill of skillSets\">\r\n <div class=\"mt-2 gap-1 d-flex align-items-start\">\r\n <input \r\n type=\"checkbox\"\r\n [checked]=\"skill.selected\"\r\n (change)=\"onSelectedSkillsets($event, skill)\"\r\n id=\"{{skill.id}}\"\r\n name=\"{{skill.id}}\">\r\n<label class=\"text-title\" for=\"{{skill.id}}\">\r\n {{ skill.name }}\r\n</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [ngClass]=\"{ 'loader': showLoading && !isEditMode,'pt-3': !showLoading && !isEditMode,'edit-mode': isEditMode}\">\r\n <!-- <loader [show]=\"showLoading\" [small]=\"true\"></loader> -->\r\n <tabset #tabSet>\r\n <tab (selectTab)=\"setTabGroup(group)\" *ngFor=\"let group of tab.controls; let index = index\"\r\n [label]=\"tabs[index]\" tab1 id={{tabs[index]}} #{{tabs[index]}}>\r\n <ng-template tabHeading *ngIf=\"!isEditMode\">\r\n <span class=\"text-secondary\">{{tabs[index]}}</span>\r\n <button class=\"btn btn-sm\" (click)=\"removeTab(index, group.controls.skillSetId.value)\">\r\n <img src=\"assets/images/icons/close-x-mark.svg\" alt=\"search\" width=\"16px\" height=\"16px\" />\r\n </button>\r\n </ng-template>\r\n <div [formGroup]=\"group\" class=\"tab-card\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"initialStarts\" (ratingOutput)=\"onRatingSet($event,index)\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.starRating?.errors }\" [maxStars]=\"5\">\r\n </ngx-stars>\r\n <div *ngIf=\"userSkillSubmitted && k?.starRating?.errors\" class=\"invalid-feedback\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.starRating?.errors }\">\r\n <div *ngIf=\"k?.starRating?.errors?.required\">Star\r\n Rating is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label \">Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [clearable]=\"false\" bindLabel=\"text\"\r\n formControlName=\"year\" [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\"\r\n bindValue=\"value\" [closeOnSelect]=\"true\" placeholder=\"Select\" id=\"reqStates\"\r\n (change)=\"onYearChange(group)\"></ng-select>\r\n\r\n <div *ngIf=\"userSkillSubmitted && k?.year?.errors\" class=\"invalid-feedback\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\">\r\n <div *ngIf=\"k?.year?.errors?.required\">Year is\r\n required</div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1 text-center\">\r\n <label class=\"label\">Profile\r\n Visibility</label><br />\r\n <input class=\"form-check-input \" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\">\r\n </div>\r\n\r\n <div class=\"col-12 col-md-2 mt-1\" *ngIf=\"tab.controls.length>1 && index == copyOptionIndex\">\r\n <label class=\"mb-2 label\">Copy to All Tabs</label>\r\n <input class=\"form-check-input\" type=\"checkbox\" (click)=\"setCopyToAllTabs(index,group.value)\"\r\n role=\"switch\">\r\n </div>\r\n </div>\r\n <div>\r\n <label class=\"label\">Description</label>\r\n <div class=\"col-12 col-md-12 mt-1\">\r\n <textarea placeholder=\"Description of your Skill here\" formControlName=\"notes\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.notes?.errors }\" rows=\"5\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n <!-- <div class=\"row pt-3\">\r\n <div class=\"pt-3 text-end\">\r\n <button class=\"back-btn\" (click)=\"reset()\">Reset</button>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Footer buttons -->\r\n<div class=\"skills-container last footer-actions\">\r\n <button class=\"back-btn\" (click)=\"back()\">Back</button>\r\n <div>\r\n <button class=\"back-btn me-3\" *ngIf=\"store.stepView() === 'add'\" (click)=\"next()\">Skip</button>\r\n <button class=\"continue-btn add me-3\" *ngIf=\"store.stepView() === 'preview'\" (click)=\"store.goToAdd()\">\r\n Add More Skills\r\n </button>\r\n <button class=\"continue-btn\" (click)=\"onContinue()\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\">\r\n Continue</button>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.skills-container{max-width:1000px;margin:40px auto;min-height:300px}.skills-container.last{min-height:unset}.title{font-size:22px;margin-bottom:4px}.subtitle{font-size:13px;color:#777;margin-bottom:30px}.content-part{background:#fff}.content-part p,.content-part div{font-size:small}.content-part .card{margin-top:15px;background-color:#fff;border-radius:10px}.content-part .card .row{margin-top:-15px}.content-part .card .sub-section{padding:0 10px}.content-part .card .sub-section .title{font-size:16px;font-weight:400;color:var(--font-primary)}.content-part .card .sub-section .info-title{font-size:12px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .card .sub-section .content{font-size:12px}.content-part .card .sub-section .subsection{font-weight:600;padding-top:10px;font-size:12px}.content-part .card .sub-section .subsection input{width:30%}.content-part .card .sub-section .icon{width:35px;filter:opacity(.5)}.content-part .tab-card{background-color:#fff;border-radius:5px;color:var(--font-primary);margin-top:15px}.content-part .tab-card .row{margin-top:2px}.content-part .search-part{width:100%;position:relative;border-radius:5px;border:1px solid #d3dae6;padding:10px 0 10px 15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;height:45px}.content-part .search-part input{width:auto;flex:1;color:var(--font-dark);font-size:var(--font12-input);font-weight:400;border:none;background:none}.content-part .search-part .btn{background:#1e2541;border-radius:5px;padding:5px;width:41px;height:36px;margin-right:3px}.content-part .search-part .btn img{filter:brightness(0) invert(1)}.content-part textarea{width:100%;height:100px;background:none}.content-part .skills-section{margin-left:5px}.content-part .skills-section .category-title{margin-bottom:5px;font-size:13px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .skills-section .text-title{font-size:13px;margin-left:3px;color:var(--font-primary);display:contents}.content-part .skills-section input[type=checkbox]{border:2px solid #000!important;height:14px!important;width:15px!important;border-radius:2px!important;margin:2px}.content-part .skills-section input[type=checkbox]:checked{background-color:#000!important;border:2px solid #000!important}.content-part .skills-section input[type=checkbox]:checked:after{content:\"\\2713\";color:#fff;font-size:11px;position:relative;left:50%;bottom:-7px;transform:translate(-50%,-50%);font-weight:900;background:#000;width:15px;display:flex;justify-content:center;border:2px solid #000;height:14px;align-items:center;border-radius:2px}.content-part .form-check-input{width:43px;height:21px;margin:0 5px;background-color:#c7c7c7!important;background-image:url(/assets/images/icons/toogle-circle.svg);background-position:left 4px top 2px;background-size:15px;border:1px solid #c7c7c7;outline:none!important;box-shadow:none!important;border-radius:25px;cursor:pointer}.content-part .form-check-input:checked{background-position:right 4px top 2px;background-image:url(/assets/images/icons/toogle-circle.svg);background-color:#237b4b!important;border:1px solid #237b4b!important}::ng-deep .ng-select.ng-select-opened>.ng-select-container{background:#f1f4fa}::ng-deep .ng-select .ng-select-container{background:#f1f4fa;border:1px solid #ccc;border-radius:5px}.back-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background:#d3dae6;color:#fff;border-radius:5px;padding:6px 8px}.save-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px}.create-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px;height:40px;min-width:9rem}.form-control{color:#333;background:none!important;min-height:36px;font-size:small;height:43px}.form-control:focus{box-shadow:none!important}.close-popup{position:absolute;right:7px;top:4px;width:25px}.label{font-size:12px;font-weight:700;padding-bottom:8px}.form-control:focus{border:var(--bs-border-width) solid var(--bs-border-color)}::ng-deep .nav-link{color:#000!important}.loader{filter:blur(3px);height:40px}.edit-mode ::ng-deep .nav-tabs{display:none!important}.footer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:100px}.skip-btn,.back-btn{background:#d3dae6;color:#6c757dc7;font-size:14px;border-radius:5px;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px}.skip-btn.edit,.back-btn.edit{padding:5px 15px;min-height:20px;min-width:auto}.continue-btn{padding:7px 23px;background-color:#4077ad;color:#fff;border-radius:5px;min-width:8rem;min-height:45px}.continue-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.continue-btn.edit{padding:5px 15px;min-height:20px;min-width:auto}.continue-btn.add{background-color:#2e5b70}.skill-preview-wrapper{margin-bottom:24px}.skill-preview-card{border-radius:12px;margin-bottom:12px;transition:box-shadow .35s ease,transform .25s ease,border-color .25s ease;overflow:hidden}::ng-deep accordion-group+accordion-group{margin-top:20px}.skill-preview-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.rotate{transform:rotate(-180deg)}.skill-preview-body label{font-weight:500;font-size:13px;color:#6b7280}.skill-preview-body p{margin:0}\n"] }]
3787
+ ], template: "<!-- SKILL PREVIEW LIST -->\r\n<div class=\"skills-container\" *ngIf=\"store.stepView() === 'preview'\">\r\n <h5 class=\"title text-secondary\">Skills Preview</h5>\r\n <p class=\"subtitle\">First-time users should enter skillsets with Inspector Match, Once you setup skillsets in your\r\n business profile you can add skills under</p>\r\n <accordion [closeOthers]=\"true\" [isAnimated]=\"true\">\r\n <accordion-group *ngFor=\"let skill of userSkillsPreview\" #accGroup\r\n (isOpenChange)=\"onSkillAccordionChange(skill, $event)\">\r\n <!-- HEADER -->\r\n <div accordion-heading class=\"skill-preview-header\">\r\n <span class=\"fw-semibold text-secondary\">\r\n {{ skill.skillSetName }}\r\n </span>\r\n <div class=\"actions\">\r\n <ng-container *ngIf=\"!isEditMode || getSkillKey(model) !== getSkillKey(skill)\">\r\n <button type=\"button\" class=\"me-3\" (click)=\"editSkillFromPreview(skill, accGroup, $event)\">\r\n <img class=\"icon-color\" src=\"/assets/images/icons/edit-text.png\" alt=\"icon\" />\r\n </button>\r\n <img class=\"icon-color edit\" src=\"/assets/images/icons/arrow-down.svg\" alt=\"icon\"\r\n [class.rotate]=\"accGroup.isOpen\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"isEditMode && getSkillKey(model) === getSkillKey(skill)\">\r\n <button class=\"back-btn edit me-3\" type=\"button\" (click)=\"backToSkill(accGroup)\">\r\n Cancel\r\n </button>\r\n <button class=\"continue-btn edit\" type=\"button\" (click)=\"saveUserSkillset()\" \r\n [disabled]=\"showLoader\">\r\n Update\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- BODY -->\r\n <div class=\"skill-preview-body content-part\">\r\n <!-- DISPLAY MODE -->\r\n <div *ngIf=\"!isEditMode || model?.skillSetId !== skill.skillSetId\"\r\n class=\"d-flex justify-content-between align-items-center flex-wrap gap-3\">\r\n <div>\r\n <label>Service Provider</label> <br>\r\n {{ skill.providerName }}\r\n </div>\r\n <div>\r\n <label>Skill</label> <br>\r\n {{ skill.skillSetName }}\r\n </div>\r\n <div style=\"pointer-events: none;\">\r\n <label>Self Ability Rating</label> <br>\r\n <ngx-stars [initialStars]=\"skill.starRating/2\" [maxStars]=\"5\"></ngx-stars>\r\n </div>\r\n <div>\r\n <label class=\"mb-0 pb-0 label\">Years of Experience</label> <br>\r\n {{ skill?.year }}\r\n </div>\r\n <div>\r\n <label>Visible</label> <br>\r\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"skill.profileVisibility\" disabled>\r\n </div>\r\n <div class=\"w-100 mt-3\">\r\n <label>Description</label> <br>\r\n {{ skill.notes }}\r\n </div>\r\n </div>\r\n <!-- EDIT MODE -->\r\n <div *ngIf=\"isEditMode && model?.skillSetId === skill.skillSetId\" [formGroup]=\"tab.at(0)\">\r\n <div class=\"d-flex justify-content-between align-items-center flex-wrap gap-3\">\r\n <div>\r\n <label>Service Provider</label> <br>\r\n {{ skill.providerName }}\r\n </div>\r\n <div>\r\n <label>Skill</label> <br>\r\n {{ skill.skillSetName }}\r\n </div>\r\n <div>\r\n <label>Self Ability Rating</label> <br>\r\n <ngx-stars *ngIf=\"tab.at(0)?.get('starRating')?.value !== null\" [key]=\"tab.at(0).get('starRating')?.value\"\r\n [initialStars]=\"(tab.at(0).get('starRating')?.value || 0) / 2\" [maxStars]=\"5\"\r\n (rate)=\"onEditRating($event)\">\r\n </ngx-stars>\r\n </div>\r\n <div style=\"width: 200px;\">\r\n <label class=\"mb-0 label pb-0\">Years of Experience</label> <br>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [clearable]=\"false\" bindLabel=\"text\" formControlName=\"year\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\" bindValue=\"value\"\r\n [closeOnSelect]=\"true\" placeholder=\"Select\" id=\"reqStates\"></ng-select>\r\n </div>\r\n <div>\r\n <label>Visible</label> <br>\r\n <input class=\"form-check-input \" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\">\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <label>Description</label> <br>\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"notes\" placeholder=\"Enter notes\"\r\n style=\"height: 80px;\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </accordion-group>\r\n </accordion>\r\n</div>\r\n\r\n<!-- Add part -->\r\n<div class=\"skills-container\" *ngIf=\"store.stepView() === 'add'\">\r\n <h2 class=\"title text-secondary\">Add Skills</h2>\r\n <p class=\"subtitle\">A minimum of 5 skills is needed</p>\r\n <div class=\"content-part\">\r\n <h6 class=\"text-secondary\"> {{ form?.value?.id ? \"Update Skill Category\" : \"Create Skill Category\" }}</h6>\r\n <div class=\"sub-section\">\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12 col-md-12 col-sm-12\">\r\n <div class=\"search-part\">\r\n <input type=\"text\" placeholder=\"Search / Add Skillsets here\" [(ngModel)]=\"searchSkillQry\"\r\n (input)=\"getSkillSets()\" />\r\n <button class=\"btn\" (click)=\"createNewSkills()\" tooltip=\"Add Skillset\">\r\n <img src=\"/assets/images/icons/plus.svg\" alt=\"search\" class=\"create-plus\" width=\"18\"\r\n height=\"18\" />\r\n </button>\r\n </div>\r\n <div *ngIf=\"errMsg\" class=\"invalid-feedback is-invalid d-block\">\r\n Please Enter Skillsets Name\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"nameError\" class=\"invalid-feedback is-invalid d-block\">\r\n {{nameError}}\r\n </div>\r\n <div class=\"col skills-section\" [ngClass]=\"showLoading && !isEditMode ? 'loader':''\">\r\n <div class=\"row mt-2\" [ngStyle]=\"showLoader && !isEditMode ? {'min-height': '150px'} : {}\">\r\n <div class=\"col-12 col-md-4\" *ngFor=\"let skill of skillSets\">\r\n <div class=\"mt-2 gap-1 d-flex align-items-start\">\r\n <input \r\n type=\"checkbox\"\r\n [checked]=\"skill.selected\"\r\n (change)=\"onSelectedSkillsets($event, skill)\"\r\n id=\"{{skill.id}}\"\r\n name=\"{{skill.id}}\">\r\n<label class=\"text-title\" for=\"{{skill.id}}\">\r\n {{ skill.name }}\r\n</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [ngClass]=\"{ 'loader': showLoading && !isEditMode,'pt-3': !showLoading && !isEditMode,'edit-mode': isEditMode}\">\r\n <!-- <loader [show]=\"showLoading\" [small]=\"true\"></loader> -->\r\n <tabset #tabSet>\r\n <tab (selectTab)=\"setTabGroup(group)\" *ngFor=\"let group of tab.controls; let index = index\"\r\n [label]=\"tabs[index]\" tab1 id={{tabs[index]}} #{{tabs[index]}}>\r\n <ng-template tabHeading *ngIf=\"!isEditMode\">\r\n <span class=\"text-secondary\">{{tabs[index]}}</span>\r\n <button class=\"btn btn-sm\" (click)=\"removeTab(index, group.controls.skillSetId.value)\">\r\n <img src=\"/assets/images/icons/close-x-mark.svg\" alt=\"search\" width=\"16px\" height=\"16px\" />\r\n </button>\r\n </ng-template>\r\n <div [formGroup]=\"group\" class=\"tab-card\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"initialStarts\" (ratingOutput)=\"onRatingSet($event,index)\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.starRating?.errors }\" [maxStars]=\"5\">\r\n </ngx-stars>\r\n <div *ngIf=\"userSkillSubmitted && k?.starRating?.errors\" class=\"invalid-feedback\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.starRating?.errors }\">\r\n <div *ngIf=\"k?.starRating?.errors?.required\">Star\r\n Rating is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label \">Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [clearable]=\"false\" bindLabel=\"text\"\r\n formControlName=\"year\" [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\"\r\n bindValue=\"value\" [closeOnSelect]=\"true\" placeholder=\"Select\" id=\"reqStates\"\r\n (change)=\"onYearChange(group)\"></ng-select>\r\n\r\n <div *ngIf=\"userSkillSubmitted && k?.year?.errors\" class=\"invalid-feedback\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.year?.errors }\">\r\n <div *ngIf=\"k?.year?.errors?.required\">Year is\r\n required</div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1 text-center\">\r\n <label class=\"label\">Profile\r\n Visibility</label><br />\r\n <input class=\"form-check-input \" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\">\r\n </div>\r\n\r\n <div class=\"col-12 col-md-2 mt-1\" *ngIf=\"tab.controls.length>1 && index == copyOptionIndex\">\r\n <label class=\"mb-2 label\">Copy to All Tabs</label>\r\n <input class=\"form-check-input\" type=\"checkbox\" (click)=\"setCopyToAllTabs(index,group.value)\"\r\n role=\"switch\">\r\n </div>\r\n </div>\r\n <div>\r\n <label class=\"label\">Description</label>\r\n <div class=\"col-12 col-md-12 mt-1\">\r\n <textarea placeholder=\"Description of your Skill here\" formControlName=\"notes\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': userSkillSubmitted && k?.notes?.errors }\" rows=\"5\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n <!-- <div class=\"row pt-3\">\r\n <div class=\"pt-3 text-end\">\r\n <button class=\"back-btn\" (click)=\"reset()\">Reset</button>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Footer buttons -->\r\n<div class=\"skills-container last footer-actions\">\r\n <button class=\"back-btn\" (click)=\"back()\">Back</button>\r\n <div>\r\n <button class=\"back-btn me-3\" *ngIf=\"store.stepView() === 'add'\" (click)=\"next()\">Skip</button>\r\n <button class=\"continue-btn add me-3\" *ngIf=\"store.stepView() === 'preview'\" (click)=\"store.goToAdd()\">\r\n Add More Skills\r\n </button>\r\n <button class=\"continue-btn\" (click)=\"onContinue()\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\">\r\n Continue</button>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.skills-container{max-width:1000px;margin:40px auto;min-height:300px}.skills-container.last{min-height:unset}.title{font-size:22px;margin-bottom:4px}.subtitle{font-size:13px;color:#777;margin-bottom:30px}.content-part{background:#fff}.content-part p,.content-part div{font-size:small}.content-part .card{margin-top:15px;background-color:#fff;border-radius:10px}.content-part .card .row{margin-top:-15px}.content-part .card .sub-section{padding:0 10px}.content-part .card .sub-section .title{font-size:16px;font-weight:400;color:var(--font-primary)}.content-part .card .sub-section .info-title{font-size:12px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .card .sub-section .content{font-size:12px}.content-part .card .sub-section .subsection{font-weight:600;padding-top:10px;font-size:12px}.content-part .card .sub-section .subsection input{width:30%}.content-part .card .sub-section .icon{width:35px;filter:opacity(.5)}.content-part .tab-card{background-color:#fff;border-radius:5px;color:var(--font-primary);margin-top:15px}.content-part .tab-card .row{margin-top:2px}.content-part .search-part{width:100%;position:relative;border-radius:5px;border:1px solid #d3dae6;padding:10px 0 10px 15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;height:45px}.content-part .search-part input{width:auto;flex:1;color:var(--font-dark);font-size:var(--font12-input);font-weight:400;border:none;background:none;outline:none}.content-part .search-part .btn{background:#1e2541;border-radius:5px;padding:5px;width:41px;height:36px;margin-right:3px}.content-part .search-part .btn img{filter:brightness(0) invert(1)}.content-part textarea{width:100%;height:100px;background:none}.content-part .skills-section{margin-left:5px}.content-part .skills-section .category-title{margin-bottom:5px;font-size:13px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .skills-section .text-title{font-size:13px;margin-left:3px;color:var(--font-primary);display:contents}.content-part .skills-section input[type=checkbox]{border:2px solid #000!important;height:14px!important;width:15px!important;border-radius:2px!important;margin:2px}.content-part .skills-section input[type=checkbox]:checked{background-color:#000!important;border:2px solid #000!important}.content-part .skills-section input[type=checkbox]:checked:after{content:\"\\2713\";color:#fff;font-size:11px;position:relative;left:50%;bottom:-7px;transform:translate(-50%,-50%);font-weight:900;background:#000;width:15px;display:flex;justify-content:center;border:2px solid #000;height:14px;align-items:center;border-radius:2px}.content-part .form-check-input{width:43px;height:21px;margin:0 5px;background-color:#c7c7c7!important;background-image:url(/assets/images/icons/toogle-circle.svg);background-position:left 4px top 2px;background-size:15px;border:1px solid #c7c7c7;outline:none!important;box-shadow:none!important;border-radius:25px;cursor:pointer}.content-part .form-check-input:checked{background-position:right 4px top 2px;background-image:url(/assets/images/icons/toogle-circle.svg);background-color:#237b4b!important;border:1px solid #237b4b!important}::ng-deep .ng-select.ng-select-opened>.ng-select-container{background:#f1f4fa}::ng-deep .ng-select .ng-select-container{background:#f1f4fa;border:1px solid #ccc;border-radius:5px}.back-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background:#d3dae6;color:#fff;border-radius:5px;padding:6px 8px}.save-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px}.create-btn{font-size:12px;transition:.2s;border:none;height:auto;font-weight:600;min-width:6rem;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px;height:40px;min-width:9rem}.form-control{color:#333;background:none!important;min-height:36px;font-size:small;height:43px}.form-control:focus{box-shadow:none!important}.close-popup{position:absolute;right:7px;top:4px;width:25px}.label{font-size:12px;font-weight:700;padding-bottom:8px}.form-control:focus{border:var(--bs-border-width) solid var(--bs-border-color)}::ng-deep .nav-link{color:#000!important}.loader{filter:blur(3px);height:40px}.edit-mode ::ng-deep .nav-tabs{display:none!important}.footer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:100px}.skip-btn,.back-btn{background:#d3dae6;color:#6c757dc7;font-size:14px;border-radius:5px;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px}.skip-btn.edit,.back-btn.edit{padding:5px 15px;min-height:20px;min-width:auto}.continue-btn{padding:7px 23px;background-color:#4077ad;color:#fff;border-radius:5px;min-width:8rem;min-height:45px;border:white}.continue-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.continue-btn.edit{padding:5px 15px;min-height:20px;min-width:auto}.continue-btn.add{background-color:#2e5b70}.skill-preview-wrapper{margin-bottom:24px}.skill-preview-card{border-radius:12px;margin-bottom:12px;transition:box-shadow .35s ease,transform .25s ease,border-color .25s ease;overflow:hidden}::ng-deep accordion-group+accordion-group{margin-top:20px}.skill-preview-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.icon-color{cursor:pointer;width:20px;height:20px;background:transparent;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.rotate{transform:rotate(-180deg)}.skill-preview-body label{font-weight:500;font-size:13px;color:#6b7280}.skill-preview-body p{margin:0}\n"] }]
3780
3788
  }], ctorParameters: () => [{ type: SkillSetService }, { type: UserSkillSetService }, { type: i3.UntypedFormBuilder }, { type: UtilsService }, { type: i6.RoleContextService }, { type: CredentialingStore }, { type: i6.TokenService }] });
3781
3789
 
3782
3790
  class LicenseStore {
@@ -4106,7 +4114,7 @@ class LicensesComponent {
4106
4114
  this.store.nextStep();
4107
4115
  }
4108
4116
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LicensesComponent, deps: [{ token: UserDocumentService }, { token: CredentialingStore }, { token: LicenseStore }, { token: i6.TokenService }, { token: PostalCodeServices }, { token: i3.FormBuilder }, { token: FileService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
4109
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LicensesComponent, isStandalone: false, selector: "app-licenses", ngImport: i0, template: "<div class=\"education-container\" *ngIf=\"!showpreview()\">\r\n\r\n <h3>Add Licenses</h3>\r\n <p class=\"hint\">\r\n Recommended for your role\r\n </p>\r\n <div class=\"document-container\">\r\n <input type=\"text\" class=\"search-input\" placeholder=\"Search documents here...\" [formControl]=\"searchControl\" />\r\n <div class=\"grid\">\r\n <div *ngFor=\"let item of documentTypes\">\r\n <label class=\"checkbox-row\">\r\n <input type=\"checkbox\" [checked]=\"isChecked(item.id)\" (change)=\"toggleSelection(item, $event)\" />\r\n <span class=\"title\">{{ item.type }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"certificateForm\">\r\n <div class=\"row\" style=\"margin-top: 20px;\">\r\n <div class=\"field\">\r\n <div class=\"head\">Certificate Number</div>\r\n <input type=\"text\" placeholder=\"Enter your Certificate Number here\" formControlName=\"number\" />\r\n <small class=\"error\" *ngIf=\"certificateForm.get('number')?.touched &&\r\n certificateForm.get('number')?.hasError('required')\">\r\n Certificate number is required\r\n </small>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">Certificate Issued By</div>\r\n <input type=\"text\" placeholder=\"Enter Certificate Issued By here\" formControlName=\"issuedBy\" />\r\n <small class=\"error\" *ngIf=\"certificateForm.get('issuedBy')?.touched &&\r\n certificateForm.get('issuedBy')?.hasError('required')\">\r\n Certificate issued by is required\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Issued State</div>\r\n <ng-select formControlName=\"issuedState\" [items]=\"states\" bindLabel=\"stateName\" bindValue=\"stateCode\"\r\n placeholder=\"Select State\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" />\r\n &nbsp;{{ item.stateName }}\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">\r\n {{ item.stateName }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Issued Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Issued On\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true, showWeekNumbers: false,\r\n isAnimated: true, customTodayClass: !certificateForm.get('issueDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"issueDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n <small class=\"error\" *ngIf=\"certificateForm.get('issueDate')?.touched &&\r\n certificateForm.get('issueDate')?.hasError('required')\">\r\n Issued date is required\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Expiration Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Expired On\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !certificateForm.get('expiryDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"expiryDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n <small class=\"error\" *ngIf=\"certificateForm.get('expiryDate')?.touched &&\r\n certificateForm.get('expiryDate')?.hasError('required')\">\r\n Expiry date is required\r\n </small>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Comments</div>\r\n <textarea placeholder=\"Description\" formControlName=\"notes\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"upload-wrapper\">\r\n <p class=\"upload-title\">Upload</p>\r\n <p class=\"upload-subtitle\">Add licenses below</p>\r\n <button type=\"button\" class=\"upload-btn\" (click)=\"fileInput.click()\">\r\n Upload Licenses\r\n </button>\r\n <input #fileInput type=\"file\" accept=\".pdf,.doc,.docx\" (change)=\"selectFile($event)\" hidden />\r\n <p class=\"file-name\" *ngIf=\"fileName\">\r\n Selected: {{ fileName }}\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"nextStep()\">\r\n Skip\r\n </button>\r\n <button type=\"button\" class=\"primary\" [disabled]=\"proposalLoader\" [ng2-loading]=\"proposalLoader\"\r\n (click)=\"saveFile()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"work-preview\" *ngIf=\"showpreview()\">\r\n <div class=\"preview-header\" style=\"margin-left: 350px;\">\r\n <h3>Licenses Preview</h3>\r\n </div>\r\n <div class=\"accordion\" style=\"margin: 20px 100px;\">\r\n <div *ngFor=\"let exp of workStore.experiences(); let i = index\" style=\"margin-bottom: 20px;\"\r\n class=\"accordion-item border-0\">\r\n\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#edu_' + i\">\r\n <span class=\"accordion-title\">\r\n {{ exp.documentTypeName }}\r\n </span>\r\n <span class=\"accordion-actions\">\r\n <img src=\"/assets/images/icons/edit-text.png\" class=\"edit-icon icon-color\"\r\n (click)=\"edit(i); $event.stopPropagation()\" alt=\"Edit\" />\r\n </span>\r\n </button>\r\n </h2>\r\n <div [id]=\"'edu_' + i\" class=\"accordion-collapse collapse\" style=\"margin-bottom: 20px;\">\r\n <div class=\"accordion-body\">\r\n <div class=\"detail-grid\">\r\n <div>\r\n <strong>Certificate Name</strong><br />\r\n <span class=\"job-title\"> {{ exp.documentTypeName }}</span>\r\n </div>\r\n <div>\r\n <strong>Certificate Number</strong><br />\r\n <span class=\"job-title\"> {{ exp.number }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued By</strong><br />\r\n <span class=\"job-title\"> {{ exp.issuedBy }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued State</strong><br />\r\n <span class=\"job-title\"> {{ exp.issuedState | stateName }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.issueDate | date:'yyyy/MM/dd' }} </span>\r\n </div>\r\n <div>\r\n <strong>Expiry Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.expiryDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n\r\n <div *ngIf=\"exp.fileUrl\" class=\"full-width\">\r\n <strong>Document</strong><br />\r\n <a [href]=\"cloudfront + exp.fileUrl\" target=\"_blank\">\r\n <span class=\"job-title\"> {{ exp.fileName }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"full-width mt-3\">\r\n <strong>Description</strong><br />\r\n <span class=\"job-title\"> {{ exp.notes }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"primary\" (click)=\"add()\" style=\"background-color: #1f4d5f;width: 200px;\">\r\n Add More Licenses\r\n </button>\r\n <button type=\"button\" class=\"primary\" (click)=\"nextStep()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".education-container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:300px}h3{font-size:23px;font-weight:600;margin-bottom:4px}.hint{font-size:14px;color:#6b7280;margin-bottom:24px}.row{display:flex;margin-bottom:16px}.field{flex:1;display:flex;flex-direction:column}.field.full-width{flex:1 1 100%}input[type=text],input[type=email],input[type=number],input[type=password],select,textarea{width:100%;height:44px;padding:10px 12px;border:2px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;box-sizing:border-box;color:#374151}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}textarea{height:90px;resize:none}.error{margin-top:4px;font-size:12px;color:#dc2626}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border-radius:4px;border:none;font-size:14px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff}button.secondary{background-color:#f3f4f6;color:#374151}button:disabled{background-color:#9ca3af;cursor:not-allowed}.head{color:#6b7280;font-size:14px;font-weight:500;margin-bottom:5px}::ng-deep .today-highlight{color:#fff!important;background:#1e2541!important}.form-row{display:flex}.field{display:flex;flex-direction:column}.field.city{flex:0 0 50%}.field.date{flex:0 0 25%}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#757575;font-size:14px}.close-btn-select{width:16px;height:16px;color:#00f;display:inline-block}.upload-wrapper{margin-top:37px}.upload-title{font-weight:600;margin-bottom:4px}.upload-subtitle{font-size:13px;color:#6c757d;margin-bottom:12px}.upload-btn{background-color:#1f4d5f;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer}.upload-btn:hover{background-color:#173b4a}.file-name{margin-top:8px;font-size:13px;color:#495057}.right-actions{display:flex;gap:16px}.date-time-filter{padding-right:40px;background-image:url(/assets/images/icons/calendar.svg);background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px;cursor:pointer}.document-container{max-width:1100px;margin:auto}.search-input{width:100%;max-width:400px;height:44px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{display:flex;align-items:center;min-height:48px}.checkbox{margin-top:4px}.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer}.content .title{font-weight:600;font-size:14px}.checkbox-row input{margin:0}.title{font-size:14px;font-weight:600}.content .desc{font-size:12px;color:#666;margin-top:4px}.save-btn{margin-top:20px;padding:10px 18px;border-radius:6px;border:none;background:#4077ad;color:#fff;cursor:pointer}@media (max-width: 1024px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.grid{grid-template-columns:1fr}}::ng-deep ng-dropdown-panel input[type=checkbox]{margin-right:0!important;padding:9px;margin-top:0}.form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{font-size:14px}::ng-deep .ng-value-label{font-size:14px}::ng-deep .bs-datepicker-head{background-color:#1e2541!important}::ng-deep .theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td[class*=select-] span:after{background-color:#1e2541!important}.work-preview{max-width:1000px;padding:20px;margin:15px auto;background-color:#f4f6f8;font-family:Segoe UI,Arial,sans-serif}.preview-card{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 3px 8px #0000001a;padding:20px 25px;margin-bottom:20px;transition:box-shadow .2s ease}.preview-card:hover{box-shadow:0 6px 15px #00000026}.edit-btn{position:absolute;top:15px;right:15px;width:20px;height:20px;cursor:pointer}.card-top h4{margin:0;font-size:18px;color:#1f4d5f}.card-top .job-title{display:block;font-size:14px;color:#555;margin-top:2px}.card-meta{margin:10px 0;font-size:13px;color:#777;display:flex;justify-content:space-between}.card-meta .dates{font-style:italic}.job-description{font-size:14px;color:#333;line-height:1.5;margin-bottom:8px}.file-link{font-size:13px;color:#4077ad;text-decoration:underline;display:inline-block;margin-top:5px}.actions{display:flex;justify-content:space-between;margin-top:25px}button.secondary{background-color:#e0e0e0;color:#6c757dc7;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}@media (max-width: 600px){.preview-card{padding:15px}.edit-btn{top:10px;right:10px;width:18px;height:18px}.card-meta{flex-direction:column;gap:3px}}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.accordion-button{display:flex;align-items:center}.accordion-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-actions{display:flex;align-items:center;margin-right:12px}.edit-icon{cursor:pointer}::ng-deep .accordion-item:first-of-type>.accordion-header .accordion-button{margin-bottom:20px}.job-title{color:#6c757d;font-weight:400;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i11.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i11.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
4117
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LicensesComponent, isStandalone: false, selector: "app-licenses", ngImport: i0, template: "<div class=\"education-container\" *ngIf=\"!showpreview()\">\r\n\r\n <h3>Add Licenses</h3>\r\n <p class=\"hint\">\r\n Recommended for your role\r\n </p>\r\n <div class=\"document-container\">\r\n <input type=\"text\" class=\"search-input\" placeholder=\"Search documents here...\" [formControl]=\"searchControl\" />\r\n <div class=\"grid\">\r\n <div *ngFor=\"let item of documentTypes\">\r\n <label class=\"checkbox-row\">\r\n <input type=\"checkbox\" [checked]=\"isChecked(item.id)\" (change)=\"toggleSelection(item, $event)\" />\r\n <span class=\"title\">{{ item.type }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"certificateForm\">\r\n <div class=\"row\" style=\"margin-top: 20px;\">\r\n <div class=\"field\">\r\n <div class=\"head\">Certificate Number</div>\r\n <input type=\"text\" placeholder=\"Enter your Certificate Number here\" formControlName=\"number\" />\r\n <small class=\"error\" *ngIf=\"certificateForm.get('number')?.touched &&\r\n certificateForm.get('number')?.hasError('required')\">\r\n Certificate number is required\r\n </small>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">Certificate Issued By</div>\r\n <input type=\"text\" placeholder=\"Enter Certificate Issued By here\" formControlName=\"issuedBy\" />\r\n <small class=\"error\" *ngIf=\"certificateForm.get('issuedBy')?.touched &&\r\n certificateForm.get('issuedBy')?.hasError('required')\">\r\n Certificate issued by is required\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Issued State</div>\r\n <ng-select formControlName=\"issuedState\" [items]=\"states\" bindLabel=\"stateName\" bindValue=\"stateCode\"\r\n placeholder=\"Select State\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" />\r\n &nbsp;{{ item.stateName }}\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">\r\n {{ item.stateName }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Issued Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Issued On\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true, showWeekNumbers: false,\r\n isAnimated: true, customTodayClass: !certificateForm.get('issueDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"issueDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n <small class=\"error\" *ngIf=\"certificateForm.get('issueDate')?.touched &&\r\n certificateForm.get('issueDate')?.hasError('required')\">\r\n Issued date is required\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Expiration Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Expired On\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !certificateForm.get('expiryDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"expiryDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n <small class=\"error\" *ngIf=\"certificateForm.get('expiryDate')?.touched &&\r\n certificateForm.get('expiryDate')?.hasError('required')\">\r\n Expiry date is required\r\n </small>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Comments</div>\r\n <textarea placeholder=\"Description\" formControlName=\"notes\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"upload-wrapper\">\r\n <p class=\"upload-title\">Upload</p>\r\n <p class=\"upload-subtitle\">Add licenses below</p>\r\n <button type=\"button\" class=\"upload-btn\" (click)=\"fileInput.click()\">\r\n Upload Licenses\r\n </button>\r\n <input #fileInput type=\"file\" accept=\".pdf,.doc,.docx\" (change)=\"selectFile($event)\" hidden />\r\n <p class=\"file-name\" *ngIf=\"fileName\">\r\n Selected: {{ fileName }}\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"nextStep()\">\r\n Skip\r\n </button>\r\n <button type=\"button\" class=\"primary\" [disabled]=\"proposalLoader\" [ng2-loading]=\"proposalLoader\"\r\n (click)=\"saveFile()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"work-preview\" *ngIf=\"showpreview()\">\r\n <div class=\"preview-header\" style=\"margin-left: 350px;\">\r\n <h3>Licenses Preview</h3>\r\n </div>\r\n <div class=\"accordion\" style=\"margin: 20px 100px;\">\r\n <div *ngFor=\"let exp of workStore.experiences(); let i = index\" style=\"margin-bottom: 20px;\"\r\n class=\"accordion-item border-0\">\r\n\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#edu_' + i\">\r\n <span class=\"accordion-title\">\r\n {{ exp.documentTypeName }}\r\n </span>\r\n <span class=\"accordion-actions\">\r\n <img src=\"/assets/images/icons/edit-text.png\" class=\"edit-icon icon-color\"\r\n (click)=\"edit(i); $event.stopPropagation()\" alt=\"Edit\" />\r\n </span>\r\n </button>\r\n </h2>\r\n <div [id]=\"'edu_' + i\" class=\"accordion-collapse collapse\" style=\"margin-bottom: 20px;\">\r\n <div class=\"accordion-body\">\r\n <div class=\"detail-grid\">\r\n <div>\r\n <strong>Certificate Name</strong><br />\r\n <span class=\"job-title\"> {{ exp.documentTypeName }}</span>\r\n </div>\r\n <div>\r\n <strong>Certificate Number</strong><br />\r\n <span class=\"job-title\"> {{ exp.number }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued By</strong><br />\r\n <span class=\"job-title\"> {{ exp.issuedBy }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued State</strong><br />\r\n <span class=\"job-title\"> {{ exp.issuedState | stateName }}</span>\r\n </div>\r\n <div>\r\n <strong>Issued Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.issueDate | date:'yyyy/MM/dd' }} </span>\r\n </div>\r\n <div>\r\n <strong>Expiry Date</strong><br />\r\n <span class=\"job-title\"> {{ exp.expiryDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n\r\n <div *ngIf=\"exp.fileUrl\" class=\"full-width\">\r\n <strong>Document</strong><br />\r\n <a [href]=\"cloudfront + exp.fileUrl\" target=\"_blank\">\r\n <span class=\"job-title\"> {{ exp.fileName }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"full-width mt-3\">\r\n <strong>Description</strong><br />\r\n <span class=\"job-title\"> {{ exp.notes }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"primary\" (click)=\"add()\" style=\"background-color: #1f4d5f;width: 200px;\">\r\n Add More Licenses\r\n </button>\r\n <button type=\"button\" class=\"primary\" (click)=\"nextStep()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".education-container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:300px}h3{font-size:23px;font-weight:600;margin-bottom:4px}.hint{font-size:14px;color:#6b7280;margin-bottom:24px}.row{display:flex;margin-bottom:16px}.field{flex:1;display:flex;flex-direction:column}.field.full-width{flex:1 1 100%}input[type=text],input[type=email],input[type=number],input[type=password],select,textarea{width:100%;height:44px;padding:10px 12px;border:2px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;box-sizing:border-box;color:#374151}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}textarea{height:90px;resize:none}.error{margin-top:4px;font-size:12px;color:#dc2626}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border-radius:4px;border:none;font-size:14px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff}button.secondary{background-color:#f3f4f6;color:#374151}button:disabled{background-color:#9ca3af;cursor:not-allowed}.head{color:#6b7280;font-size:14px;font-weight:500;margin-bottom:5px}::ng-deep .today-highlight{color:#fff!important;background:#1e2541!important}.form-row{display:flex}.field{display:flex;flex-direction:column}.field.city{flex:0 0 50%}.field.date{flex:0 0 25%}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#757575;font-size:14px}.close-btn-select{width:16px;height:16px;color:#00f;display:inline-block}.upload-wrapper{margin-top:37px}.upload-title{font-weight:600;margin-bottom:4px}.upload-subtitle{font-size:13px;color:#6c757d;margin-bottom:12px}.upload-btn{background-color:#1f4d5f;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer}.upload-btn:hover{background-color:#173b4a}.file-name{margin-top:8px;font-size:13px;color:#495057}.right-actions{display:flex;gap:16px}.date-time-filter{padding-right:40px;background-image:url(/assets/images/icons/calendar.svg);background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px;cursor:pointer}.document-container{max-width:1100px;margin:auto}.search-input{width:100%;max-width:400px;height:44px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{display:flex;align-items:center;min-height:48px}.checkbox{margin-top:4px}.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer}.content .title{font-weight:600;font-size:14px}.checkbox-row input{margin:0}.title{font-size:14px;font-weight:600}.content .desc{font-size:12px;color:#666;margin-top:4px}.save-btn{margin-top:20px;padding:10px 18px;border-radius:6px;border:none;background:#4077ad;color:#fff;cursor:pointer}@media (max-width: 1024px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.grid{grid-template-columns:1fr}}::ng-deep ng-dropdown-panel input[type=checkbox]{margin-right:0!important;padding:9px;margin-top:0}.form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{font-size:14px}::ng-deep .ng-value-label{font-size:14px}::ng-deep .bs-datepicker-head{background-color:#1e2541!important}::ng-deep .theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td[class*=select-] span:after{background-color:#1e2541!important}.work-preview{max-width:1000px;padding:20px;margin:15px auto;background-color:#f4f6f8;font-family:Segoe UI,Arial,sans-serif}.preview-card{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 3px 8px #0000001a;padding:20px 25px;margin-bottom:20px;transition:box-shadow .2s ease}.preview-card:hover{box-shadow:0 6px 15px #00000026}.edit-btn{position:absolute;top:15px;right:15px;width:20px;height:20px;cursor:pointer}.card-top h4{margin:0;font-size:18px;color:#1f4d5f}.card-top .job-title{display:block;font-size:14px;color:#555;margin-top:2px}.card-meta{margin:10px 0;font-size:13px;color:#777;display:flex;justify-content:space-between}.card-meta .dates{font-style:italic}.job-description{font-size:14px;color:#333;line-height:1.5;margin-bottom:8px}.file-link{font-size:13px;color:#4077ad;text-decoration:underline;display:inline-block;margin-top:5px}.actions{display:flex;justify-content:space-between;margin-top:25px}button.secondary{background-color:#e0e0e0;color:#6c757dc7;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}@media (max-width: 600px){.preview-card{padding:15px}.edit-btn{top:10px;right:10px;width:18px;height:18px}.card-meta{flex-direction:column;gap:3px}}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.accordion-button{display:flex;align-items:center}.accordion-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-actions{display:flex;align-items:center;margin-right:12px}.edit-icon{cursor:pointer}::ng-deep .accordion-item:first-of-type>.accordion-header .accordion-button{margin-bottom:20px}.job-title{color:#6c757d;font-weight:400;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i11.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i11.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
4110
4118
  }
4111
4119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LicensesComponent, decorators: [{
4112
4120
  type: Component,
@@ -4235,6 +4243,7 @@ class ToolsComponent {
4235
4243
  store;
4236
4244
  tokenService;
4237
4245
  userDetailService;
4246
+ libConfig;
4238
4247
  roleData;
4239
4248
  form;
4240
4249
  submitted = false;
@@ -4272,7 +4281,7 @@ class ToolsComponent {
4272
4281
  userToolsPreview = [];
4273
4282
  userDetails;
4274
4283
  userdata;
4275
- constructor(toolService, userToolService, formBuilder, utils, store, tokenService, userDetailService) {
4284
+ constructor(toolService, userToolService, formBuilder, utils, store, tokenService, userDetailService, libConfig) {
4276
4285
  this.toolService = toolService;
4277
4286
  this.userToolService = userToolService;
4278
4287
  this.formBuilder = formBuilder;
@@ -4280,6 +4289,8 @@ class ToolsComponent {
4280
4289
  this.store = store;
4281
4290
  this.tokenService = tokenService;
4282
4291
  this.userDetailService = userDetailService;
4292
+ this.libConfig = libConfig;
4293
+ console.log('url from provider:', this.libConfig.dashboardUrl);
4283
4294
  this.getYears();
4284
4295
  effect(() => {
4285
4296
  const tools = this.store.userTools();
@@ -4749,7 +4760,8 @@ class ToolsComponent {
4749
4760
  console.log('Initial setup completed successfully', res);
4750
4761
  setTimeout(() => {
4751
4762
  this.homeLoader = false;
4752
- // window.location.href = this.config.dashboardUrl;
4763
+ window.location.href = this.libConfig.dashboardUrl;
4764
+ ;
4753
4765
  }, 2000); // 2 seconds
4754
4766
  },
4755
4767
  error: (err) => {
@@ -4757,8 +4769,8 @@ class ToolsComponent {
4757
4769
  }
4758
4770
  });
4759
4771
  }
4760
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ToolsComponent, deps: [{ token: ToolService }, { token: UserToolService }, { token: i3.UntypedFormBuilder }, { token: UtilsService }, { token: CredentialingStore }, { token: i6.TokenService }, { token: UserDetailService }], target: i0.ɵɵFactoryTarget.Component });
4761
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ToolsComponent, isStandalone: false, selector: "app-tools", inputs: { roleData: "roleData" }, ngImport: i0, template: "<!-- Tool PREVIEW LIST -->\r\n<div class=\"tools-container\" *ngIf=\"store.toolStepView() === 'preview'\">\r\n <h5 class=\"title text-secondary\">Tools</h5>\r\n <p class=\"subtitle\">First-time users should enter tools with Inspector Match, Once you setup tools in your\r\n business profile you can add skills under that!</p>\r\n <accordion [closeOthers]=\"true\" [isAnimated]=\"true\">\r\n <accordion-group *ngFor=\"let tool of userToolsPreview\" #accGroup (isOpenChange)=\"onAccordionChange(tool, $event)\">\r\n <div accordion-heading class=\"skill-preview-header d-flex justify-content-between align-items-center\">\r\n <span class=\"fw-semibold text-secondary\">\r\n {{ tool.toolName }}\r\n </span>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- EDIT MODE BUTTONS -->\r\n <ng-container *ngIf=\"isEditMode && editingToolKey === getToolKey(tool); else viewActions\">\r\n <button class=\"back-btn edit me-3\" type=\"button\" (click)=\"backTool(accGroup)\">\r\n Cancel\r\n </button>\r\n <button class=\"continue-btn edit\" type=\"button\" (click)=\"saveUserTools()\" \r\n [disabled]=\"showLoader\">\r\n Update\r\n </button>\r\n </ng-container>\r\n <!-- VIEW MODE ACTIONS -->\r\n <ng-template #viewActions>\r\n <button type=\"button\" class=\"me-3\" (click)=\"editToolFromPreview(tool, accGroup, $event)\">\r\n <img class=\"icon-color\" src=\"assets/images/icons/edit-text.png\" />\r\n </button>\r\n <!-- Arrow (ngx controls click) -->\r\n <img class=\"icon-color edit\" src=\"assets/images/icons/arrow-down.svg\" alt=\"icon\"\r\n [class.rotate]=\"accGroup.isOpen\" />\r\n </ng-template>\r\n </div>\r\n </div>\r\n <!-- BODY -->\r\n <div class=\"skill-preview-body content-part mt-3\">\r\n <ng-container *ngIf=\"!isEditMode || editingToolKey !== getToolKey(tool)\">\r\n <div class=\"row g-3 row-gap-2\">\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Service Provider</label>\r\n <div class=\"value\">{{ tool.providerName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Manufacturer</label>\r\n <div class=\"value\">{{ tool.make }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Years of Experience</label>\r\n <div class=\"value\">{{ tool.year }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"tool.starRating\" [maxStars]=\"5\" style=\"pointer-events: none\">\r\n </ngx-stars>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Active</label><br />\r\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"tool.profileVisibility\" disabled>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Tools / Equipment</label>\r\n <div class=\"value\">{{ tool.toolName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Model</label>\r\n <div class=\"value\">{{ tool.model }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Serial Number</label>\r\n <div class=\"value\">{{ tool.serialNumber }}</div>\r\n </div>\r\n <div class=\"col-12\">\r\n <label>Description</label>\r\n <div class=\"value\">{{ tool.notes }}</div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Edit Mode -->\r\n <ng-container *ngIf=\"isEditMode && editingToolKey === getToolKey(tool)\" [formGroup]=\"tab.at(0)\">\r\n <div class=\"row g-3\">\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Service Provider</label>\r\n <div class=\"value\">{{ tool.providerName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Manufacturer</label> <br />\r\n <input class=\"form-control\" type=\"text\" formControlName=\"make\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" bindLabel=\"text\" bindValue=\"value\" formControlName=\"year\"\r\n [clearable]=\"false\" placeholder=\"Select\">\r\n </ng-select>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"(tab.at(0).get('starRating')?.value || 0) / 2\" [maxStars]=\"5\"\r\n (rate)=\"onRatingSets($event)\">\r\n </ngx-stars>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Active</label><br />\r\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"profileVisibility\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Tools / Equipment</label>\r\n <input class=\"form-control\" [value]=\"tool.toolName\" readonly>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Model</label>\r\n <input class=\"form-control\" formControlName=\"model\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Serial Number</label>\r\n <input class=\"form-control\" formControlName=\"serialNumber\">\r\n </div>\r\n <div class=\"col-12\">\r\n <label>Description</label>\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"notes\"></textarea>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </accordion-group>\r\n </accordion>\r\n</div>\r\n\r\n<!-- Tool LIST -->\r\n<div class=\"tools-container\" *ngIf=\"store.toolStepView() === 'add'\">\r\n <h3 class=\"text-secondary\">Add Tools</h3>\r\n <p class=\"info\">Manage specialty tools and equipment</p>\r\n <div class=\"content-part\">\r\n <h6 class=\"text-secondary\"> Add User Tool</h6>\r\n <div class=\"sub-section\">\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12 col-md-12 col-sm-12 ps-lg-0\">\r\n <div class=\"search-part\" *ngIf=\"!isEditMode\">\r\n <input type=\"text\" placeholder=\"Search / Add Tools here\" [(ngModel)]=\"searchToolQry\" (input)=\"getTools()\" />\r\n <button class=\"btn\" (click)=\"createNewTools()\" tooltip=\"Add Tool\">\r\n <img src=\"assets/images/icons/plus.svg\" alt=\"search\" class=\"create-plus\" width=\"18px\" height=\"18px\" />\r\n </button>\r\n </div>\r\n <div *ngIf=\"!searchToolQry && toolSubmittedValue\" class=\"invalid-feedback is-invalid d-block\">\r\n Please Enter Tools Name\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"nameError\" class=\"invalid-feedback is-invalid d-block\">\r\n {{ nameError }}\r\n </div>\r\n <div class=\"col tools-section\" [ngClass]=\"showLoading ? 'loader':''\">\r\n <div class=\"row mt-2\" [ngStyle]=\"showLoader ? {'min-height': '150px'} : {}\">\r\n <div class=\"col-12 col-md-4\" *ngFor=\"let Tool of tools\">\r\n <div class=\"mt-2 d-flex\">\r\n <input (change)=\"onSelectedTools($event, Tool)\" [checked]=\"Tool.selected == true\" id=\"{{ Tool.id }}\"\r\n name=\"{{ Tool.id }}\" type=\"checkbox\" />\r\n <label class=\"text-title\" for=\"{{ Tool.id }}\">\r\n {{ Tool.name }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{ 'loader': showLoading,'pt-3': !showLoading,'edit-mode': isEditMode}\">\r\n <tabset #tabSet>\r\n <tab (selectTab)=\"setTabGroup(group)\" *ngFor=\"let group of tab?.controls; let index = index\"\r\n [label]=\"tabs[index]\" tab1 id=\"{{ tabs[index] }}\" #{{tabs[index]}}>\r\n <ng-template tabHeading *ngIf=\"!isEditMode\">\r\n <span class=\"text-secondary\">{{ tabs[index] }}</span>\r\n <button class=\"btn btn-sm\" (click)=\"removeTab(index, group.controls.toolId.value)\">\r\n <img src=\"assets/images/icons/close-x-mark.svg\" alt=\"search\" width=\"16px\" height=\"16px\" />\r\n </button>\r\n </ng-template>\r\n <div [formGroup]=\"group\" class=\"tab-card\">\r\n <div class=\"card-body mt-3 position-relative\">\r\n <div class=\"col-12 col-md-3 mt-1 copyAll\" *ngIf=\"\r\n tab.controls.length > 1 && index == copyOptionIndex\r\n \">\r\n <label class=\"label\">Copy to All Tabs</label>\r\n <input class=\"form-check-input\" type=\"checkbox\" (click)=\"setCopyToAllTabs(index, group.value,viewTab)\"\r\n role=\"switch\" />\r\n </div>\r\n <div class=\"row\" [ngClass]=\"index == 0 && tab.controls.length > 1 ? 'mt-5' : '' \">\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Self-ability Rating</label>\r\n <ngx-stars [initialStars]=\"initialStarts\" (ratingOutput)=\"onRatingSet($event,index)\"\r\n [ngClass]=\"{ 'is-invalid': userToolSubmitted && k.starRating.errors }\" [maxStars]=\"5\">\r\n </ngx-stars>\r\n <div *ngIf=\"userToolSubmitted && k.starRating.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid':\r\n userToolSubmitted && k.starRating.errors\r\n }\">\r\n <div *ngIf=\"k.starRating.errors.required\">\r\n Star Rating is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Profile Visibility</label><br />\r\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\" />\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" bindLabel=\"text\" (change)=\"onYearChange(group)\"\r\n formControlName=\"year\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.year.errors\r\n }\" bindValue=\"value\" [closeOnSelect]=\"true\" [clearable]=\"false\" placeholder=\"Select\"\r\n id=\"reqStates\"></ng-select>\r\n\r\n <div *ngIf=\"userToolSubmitted && k.year.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.year.errors\r\n }\">\r\n <div *ngIf=\"k.year.errors.required\">\r\n Year is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Manufacturer</label>\r\n <input id=\"make\" formControlName=\"make\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Manufacturer here\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.make.errors\r\n }\" (change)=\"onYearChange(group)\" />\r\n <div *ngIf=\"userToolSubmitted && k.make.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.make.errors\r\n }\">\r\n <div *ngIf=\"k.make.errors.required\">\r\n Manufacturer is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row pt-2\">\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Model</label>\r\n <input id=\"model\" formControlName=\"model\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Model here\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.model.errors\r\n }\" (change)=\"onYearChange(group)\" />\r\n <div *ngIf=\"userToolSubmitted && k.model.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.model.errors\r\n }\">\r\n <div *ngIf=\"k.model.errors.required\">\r\n Model is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\" label\">Serial Number</label>\r\n <input id=\"serialNumber\" formControlName=\"serialNumber\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Serial Number here\" [ngClass]=\"{\r\n 'is-invalid':\r\n userToolSubmitted && k.serialNumber.errors\r\n }\" />\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Comment</label>\r\n <textarea placeholder=\"Enter your comment here\" formControlName=\"notes\" class=\"form-control\"\r\n [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.notes.errors\r\n }\" rows=\"2\"></textarea>\r\n <div *ngIf=\"userToolSubmitted && k.notes.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.notes.errors\r\n }\">\r\n <div *ngIf=\"k.notes.errors.required\">\r\n Description is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"tools-container last pt-5 mt-5\">\r\n <div class=\"d-flex justify-content-between pt-3\">\r\n <!-- (click)=\"reset()\" -->\r\n <button class=\"back-btn\" (click)=\"goBack()\">Back</button>\r\n <div>\r\n <button class=\"back-btn me-3 add\" *ngIf=\"store.toolStepView() === 'preview'\" (click)=\"store.goToToolAdd()\">\r\n Add More Tools\r\n </button>\r\n <button style=\"margin-left: 15px;\" [disabled]=\"homeLoader\" [ng2-loading]=\"homeLoader\" (click)=\"saveFinal()\"\r\n class=\"float-end save-btn\">\r\n Go To Home\r\n </button>\r\n <button (click)=\"onToolContinue()\" *ngIf=\"store.toolStepView() === 'add'\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\" class=\"float-end save-btn\">\r\n Add\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.tools-container{max-width:1000px;margin:40px auto;min-height:300px}.tools-container.last{min-height:unset}.tools-container h3{margin-bottom:5px;font-size:22px;font-weight:500}.tools-container .info{font-size:13px;color:#666;margin-bottom:30px}.content-part{background:#fff}.content-part p,.content-part div{font-size:small}.content-part div .label{font-size:12px!important;font-weight:700!important;padding-bottom:5px!important}.content-part .row{margin-top:-15px}.content-part .sub-section{padding:0 10px}.content-part .sub-section .title{font-size:16px;font-weight:400;color:var(--font-primary)}.content-part .sub-section .info-title{font-size:12px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .sub-section .content{font-size:12px}.content-part .sub-section .subsection{font-weight:600;padding-top:10px;font-size:12px}.content-part .sub-section .subsection input{width:30%}.content-part .sub-section .icon{width:35px;filter:opacity(.5)}.content-part .tab-card{background-color:#fff;border-radius:5px;color:var(--font-primary)}.content-part .tab-card .row{margin-top:2px}.content-part .search-part{width:100%;height:45px;position:relative;border-radius:5px;border:1px solid #d3dae6;padding:10px 0 10px 15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.content-part .search-part input{width:auto;flex:1;color:var(--font-dark);font-size:var(--font12-input);font-weight:400;border:none;background:none}.content-part .search-part .btn{background:#1e2541;border-radius:5px;padding:5px;width:41px;height:36px;margin-right:3px}.content-part .search-part .btn img{filter:brightness(0) invert(1)}.content-part textarea{width:100%;background:none}.content-part .tools-section{margin-left:5px}.content-part .tools-section .category-title{margin-bottom:5px;font-size:13px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .tools-section .text-title{font-size:13px;margin-left:3px;color:var(--font-primary)}.content-part .tools-section input[type=checkbox]{border:2px solid #000!important;height:14px!important;width:15px!important;border-radius:2px!important;margin:2px}.content-part .tools-section input[type=checkbox]:checked{background-color:#000!important;border:2px solid #000!important}.content-part .tools-section input[type=checkbox]:checked:after{content:\"\\2713\";color:#fff;font-size:11px;position:relative;left:50%;bottom:-7px;transform:translate(-50%,-50%);font-weight:900;background:#000;width:15px;display:flex;justify-content:center;border:2px solid #000;height:14px;align-items:center;border-radius:2px}.content-part .form-check-input{width:43px;height:21px;margin:0 5px;background-color:#c7c7c7!important;background-image:url(/assets/images/icons/toogle-circle.svg);background-position:left 4px top 2px;background-size:15px;border:1px solid #c7c7c7;outline:none!important;box-shadow:none!important;border-radius:25px;cursor:pointer}.content-part .form-check-input:checked{background-position:right 4px top 2px;background-image:url(/assets/images/icons/toogle-circle.svg);background-color:#237b4b!important;border:1px solid #237b4b!important}.copyAll{position:absolute;right:0;text-align:end;top:-40px}.close-popup{position:absolute;right:7px;top:4px;width:25px}.form-control:focus{border:var(--bs-border-width) solid var(--bs-border-color)}::ng-deep .nav-link{color:#000!important}.back-btn{font-size:14px;transition:.2s;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background:#d3dae6;color:#6c757dc7;border-radius:5px}.back-btn.edit{padding:5px 20px;min-height:20px;min-width:auto}.back-btn.add{background:#2e5b70;color:#fff}.save-btn{font-size:14px;transition:.2s;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background-color:#4077ad;color:#fff;border-radius:5px}.create-btn{font-size:14px;transition:.2s;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px;height:40px;min-width:9rem}.form-control{color:#333;background:none!important;font-size:small;height:45px}.form-control:focus{box-shadow:none!important}@media only screen and (min-width: 300px) and (max-width: 450px){.modal-content .close-popup{width:16px}}.loader{filter:blur(3px)}.edit-mode ::ng-deep .nav-tabs{display:none!important}::ng-deep accordion-group+accordion-group{margin-top:20px}.skill-preview-body label{font-weight:500;font-size:14px;color:#6b7280;padding-bottom:5px}.skill-preview-body p{margin:0}.skill-preview-body .value{font-size:13px;color:#212529}.skill-preview-card{border-radius:12px;margin-bottom:12px;transition:box-shadow .35s ease,transform .25s ease,border-color .25s ease;overflow:hidden}.continue-btn{background-color:#4077ad;padding:5px 20px;min-height:20px;font-weight:500;color:#fff;border-radius:5px}.action-btns{display:flex;justify-content:space-between;align-items:center}.actions{display:flex;justify-content:flex-end;gap:12px;margin-top:15px}.actions button{padding:10px 22px;border:none;border-radius:6px;font-size:14px;transition:all .2s ease;font-weight:500;min-width:8rem;min-height:45px}.actions .secondary{color:#6c757dc7;background-color:#e0e0e0}.actions .secondary:hover{background-color:#d5d5d5}.actions .primary{background-color:#2196f3;color:#fff}.actions .primary:hover{background-color:#1976d2}@media (max-width: 600px){.actions{flex-direction:column;align-items:stretch}.actions button{width:100%}}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .2s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.icon-color.rotate{transform:rotate(180deg)}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "component", type: NgxStarsComponent, selector: "ngx-stars", inputs: ["maxStars", "initialStars", "readonly", "size", "color", "animation", "animationSpeed", "customPadding", "wholeStars", "customStarIcons"], outputs: ["ratingOutput"] }, { kind: "directive", type: i11$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i12.TabDirective, selector: "tab, [tab]", inputs: ["heading", "id", "disabled", "removable", "tabOrder", "customClass", "active"], outputs: ["selectTab", "deselect", "removed"], exportAs: ["tab"] }, { kind: "component", type: i12.TabsetComponent, selector: "tabset", inputs: ["vertical", "justified", "type"] }, { kind: "directive", type: i12.TabHeadingDirective, selector: "[tabHeading]" }, { kind: "component", type: i13.AccordionComponent, selector: "accordion", inputs: ["isAnimated", "closeOthers"] }, { kind: "component", type: i13.AccordionPanelComponent, selector: "accordion-group, accordion-panel", inputs: ["heading", "panelClass", "isDisabled", "isOpen"], outputs: ["isOpenChange"] }], animations: [
4772
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ToolsComponent, deps: [{ token: ToolService }, { token: UserToolService }, { token: i3.UntypedFormBuilder }, { token: UtilsService }, { token: CredentialingStore }, { token: i6.TokenService }, { token: UserDetailService }, { token: LIBRARY_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
4773
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ToolsComponent, isStandalone: false, selector: "app-tools", inputs: { roleData: "roleData" }, ngImport: i0, template: "<!-- Tool PREVIEW LIST -->\r\n<div class=\"tools-container\" *ngIf=\"store.toolStepView() === 'preview'\">\r\n <h5 class=\"title text-secondary\">Tools</h5>\r\n <p class=\"subtitle\">First-time users should enter tools with Inspector Match, Once you setup tools in your\r\n business profile you can add skills under that!</p>\r\n <accordion [closeOthers]=\"true\" [isAnimated]=\"true\">\r\n <accordion-group *ngFor=\"let tool of userToolsPreview\" #accGroup (isOpenChange)=\"onAccordionChange(tool, $event)\">\r\n <div accordion-heading class=\"skill-preview-header d-flex justify-content-between align-items-center\">\r\n <span class=\"fw-semibold text-secondary\">\r\n {{ tool.toolName }}\r\n </span>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- EDIT MODE BUTTONS -->\r\n <ng-container *ngIf=\"isEditMode && editingToolKey === getToolKey(tool); else viewActions\">\r\n <button class=\"back-btn edit me-3\" type=\"button\" (click)=\"backTool(accGroup)\">\r\n Cancel\r\n </button>\r\n <button class=\"continue-btn edit\" type=\"button\" (click)=\"saveUserTools()\" \r\n [disabled]=\"showLoader\">\r\n Update\r\n </button>\r\n </ng-container>\r\n <!-- VIEW MODE ACTIONS -->\r\n <ng-template #viewActions>\r\n <button type=\"button\" class=\"me-3\" (click)=\"editToolFromPreview(tool, accGroup, $event)\">\r\n <img class=\"icon-color\" src=\"/assets/images/icons/edit-text.png\" />\r\n </button>\r\n <!-- Arrow (ngx controls click) -->\r\n <img class=\"icon-color edit\" src=\"/assets/images/icons/arrow-down.svg\" alt=\"icon\"\r\n [class.rotate]=\"accGroup.isOpen\" />\r\n </ng-template>\r\n </div>\r\n </div>\r\n <!-- BODY -->\r\n <div class=\"skill-preview-body content-part mt-3\">\r\n <ng-container *ngIf=\"!isEditMode || editingToolKey !== getToolKey(tool)\">\r\n <div class=\"row g-3 row-gap-2\">\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Service Provider</label>\r\n <div class=\"value\">{{ tool.providerName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Manufacturer</label>\r\n <div class=\"value\">{{ tool.make }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Years of Experience</label>\r\n <div class=\"value\">{{ tool.year }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"tool.starRating\" [maxStars]=\"5\" style=\"pointer-events: none\">\r\n </ngx-stars>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Active</label><br />\r\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"tool.profileVisibility\" disabled>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Tools / Equipment</label>\r\n <div class=\"value\">{{ tool.toolName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Model</label>\r\n <div class=\"value\">{{ tool.model }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Serial Number</label>\r\n <div class=\"value\">{{ tool.serialNumber }}</div>\r\n </div>\r\n <div class=\"col-12\">\r\n <label>Description</label>\r\n <div class=\"value\">{{ tool.notes }}</div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Edit Mode -->\r\n <ng-container *ngIf=\"isEditMode && editingToolKey === getToolKey(tool)\" [formGroup]=\"tab.at(0)\">\r\n <div class=\"row g-3\">\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Service Provider</label>\r\n <div class=\"value\">{{ tool.providerName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Manufacturer</label> <br />\r\n <input class=\"form-control\" type=\"text\" formControlName=\"make\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" bindLabel=\"text\" bindValue=\"value\" formControlName=\"year\"\r\n [clearable]=\"false\" placeholder=\"Select\">\r\n </ng-select>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"(tab.at(0).get('starRating')?.value || 0) / 2\" [maxStars]=\"5\"\r\n (rate)=\"onRatingSets($event)\">\r\n </ngx-stars>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Active</label><br />\r\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"profileVisibility\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Tools / Equipment</label>\r\n <input class=\"form-control\" [value]=\"tool.toolName\" readonly>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Model</label>\r\n <input class=\"form-control\" formControlName=\"model\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Serial Number</label>\r\n <input class=\"form-control\" formControlName=\"serialNumber\">\r\n </div>\r\n <div class=\"col-12\">\r\n <label>Description</label>\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"notes\"></textarea>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </accordion-group>\r\n </accordion>\r\n</div>\r\n\r\n<!-- Tool LIST -->\r\n<div class=\"tools-container\" *ngIf=\"store.toolStepView() === 'add'\">\r\n <h3 class=\"text-secondary\">Add Tools</h3>\r\n <p class=\"info\">Manage specialty tools and equipment</p>\r\n <div class=\"content-part\">\r\n <h6 class=\"text-secondary\"> Add User Tool</h6>\r\n <div class=\"sub-section\">\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12 col-md-12 col-sm-12 ps-lg-0\">\r\n <div class=\"search-part\" *ngIf=\"!isEditMode\">\r\n <input type=\"text\" placeholder=\"Search / Add Tools here\" [(ngModel)]=\"searchToolQry\" (input)=\"getTools()\" />\r\n <button class=\"btn\" (click)=\"createNewTools()\" tooltip=\"Add Tool\">\r\n <img src=\"/assets/images/icons/plus.svg\" alt=\"search\" class=\"create-plus\" width=\"18px\" height=\"18px\" />\r\n </button>\r\n </div>\r\n <div *ngIf=\"!searchToolQry && toolSubmittedValue\" class=\"invalid-feedback is-invalid d-block\">\r\n Please Enter Tools Name\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"nameError\" class=\"invalid-feedback is-invalid d-block\">\r\n {{ nameError }}\r\n </div>\r\n <div class=\"col tools-section\" [ngClass]=\"showLoading ? 'loader':''\">\r\n <div class=\"row mt-2\" [ngStyle]=\"showLoader ? {'min-height': '150px'} : {}\">\r\n <div class=\"col-12 col-md-4\" *ngFor=\"let Tool of tools\">\r\n <div class=\"mt-2 d-flex\">\r\n <input (change)=\"onSelectedTools($event, Tool)\" [checked]=\"Tool.selected == true\" id=\"{{ Tool.id }}\"\r\n name=\"{{ Tool.id }}\" type=\"checkbox\" />\r\n <label class=\"text-title\" for=\"{{ Tool.id }}\">\r\n {{ Tool.name }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{ 'loader': showLoading,'pt-3': !showLoading,'edit-mode': isEditMode}\">\r\n <tabset #tabSet>\r\n <tab (selectTab)=\"setTabGroup(group)\" *ngFor=\"let group of tab?.controls; let index = index\"\r\n [label]=\"tabs[index]\" tab1 id=\"{{ tabs[index] }}\" #{{tabs[index]}}>\r\n <ng-template tabHeading *ngIf=\"!isEditMode\">\r\n <span class=\"text-secondary\">{{ tabs[index] }}</span>\r\n <button class=\"btn btn-sm\" (click)=\"removeTab(index, group.controls.toolId.value)\">\r\n <img src=\"/assets/images/icons/close-x-mark.svg\" alt=\"search\" width=\"16px\" height=\"16px\" />\r\n </button>\r\n </ng-template>\r\n <div [formGroup]=\"group\" class=\"tab-card\">\r\n <div class=\"card-body mt-3 position-relative\">\r\n <div class=\"col-12 col-md-3 mt-1 copyAll\" *ngIf=\"\r\n tab.controls.length > 1 && index == copyOptionIndex\r\n \">\r\n <label class=\"label\">Copy to All Tabs</label>\r\n <input class=\"form-check-input\" type=\"checkbox\" (click)=\"setCopyToAllTabs(index, group.value,viewTab)\"\r\n role=\"switch\" />\r\n </div>\r\n <div class=\"row\" [ngClass]=\"index == 0 && tab.controls.length > 1 ? 'mt-5' : '' \">\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Self-ability Rating</label>\r\n <ngx-stars [initialStars]=\"initialStarts\" (ratingOutput)=\"onRatingSet($event,index)\"\r\n [ngClass]=\"{ 'is-invalid': userToolSubmitted && k.starRating.errors }\" [maxStars]=\"5\">\r\n </ngx-stars>\r\n <div *ngIf=\"userToolSubmitted && k.starRating.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid':\r\n userToolSubmitted && k.starRating.errors\r\n }\">\r\n <div *ngIf=\"k.starRating.errors.required\">\r\n Star Rating is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Profile Visibility</label><br />\r\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\" />\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" bindLabel=\"text\" (change)=\"onYearChange(group)\"\r\n formControlName=\"year\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.year.errors\r\n }\" bindValue=\"value\" [closeOnSelect]=\"true\" [clearable]=\"false\" placeholder=\"Select\"\r\n id=\"reqStates\"></ng-select>\r\n\r\n <div *ngIf=\"userToolSubmitted && k.year.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.year.errors\r\n }\">\r\n <div *ngIf=\"k.year.errors.required\">\r\n Year is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Manufacturer</label>\r\n <input id=\"make\" formControlName=\"make\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Manufacturer here\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.make.errors\r\n }\" (change)=\"onYearChange(group)\" />\r\n <div *ngIf=\"userToolSubmitted && k.make.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.make.errors\r\n }\">\r\n <div *ngIf=\"k.make.errors.required\">\r\n Manufacturer is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row pt-2\">\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Model</label>\r\n <input id=\"model\" formControlName=\"model\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Model here\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.model.errors\r\n }\" (change)=\"onYearChange(group)\" />\r\n <div *ngIf=\"userToolSubmitted && k.model.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.model.errors\r\n }\">\r\n <div *ngIf=\"k.model.errors.required\">\r\n Model is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\" label\">Serial Number</label>\r\n <input id=\"serialNumber\" formControlName=\"serialNumber\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Serial Number here\" [ngClass]=\"{\r\n 'is-invalid':\r\n userToolSubmitted && k.serialNumber.errors\r\n }\" />\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Comment</label>\r\n <textarea placeholder=\"Enter your comment here\" formControlName=\"notes\" class=\"form-control\"\r\n [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.notes.errors\r\n }\" rows=\"2\"></textarea>\r\n <div *ngIf=\"userToolSubmitted && k.notes.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.notes.errors\r\n }\">\r\n <div *ngIf=\"k.notes.errors.required\">\r\n Description is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"tools-container last pt-5 mt-5\">\r\n <div class=\"d-flex justify-content-between pt-3\">\r\n <!-- (click)=\"reset()\" -->\r\n <button class=\"back-btn\" (click)=\"goBack()\">Back</button>\r\n <div>\r\n <button class=\"back-btn me-3 add\" *ngIf=\"store.toolStepView() === 'preview'\" (click)=\"store.goToToolAdd()\">\r\n Add More Tools\r\n </button>\r\n <button style=\"margin-left: 15px;\" [disabled]=\"homeLoader\" [ng2-loading]=\"homeLoader\" (click)=\"saveFinal()\"\r\n class=\"float-end save-btn\">\r\n Go To Home\r\n </button>\r\n <button (click)=\"onToolContinue()\" *ngIf=\"store.toolStepView() === 'add'\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\" class=\"float-end save-btn\">\r\n Add\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.tools-container{max-width:1000px;margin:40px auto;min-height:300px}.tools-container.last{min-height:unset}.tools-container h3{margin-bottom:5px;font-size:22px;font-weight:500}.tools-container .info{font-size:13px;color:#666;margin-bottom:30px}.content-part{background:#fff}.content-part p,.content-part div{font-size:small}.content-part div .label{font-size:12px!important;font-weight:700!important;padding-bottom:5px!important}.content-part .row{margin-top:-15px}.content-part .sub-section{padding:0 10px}.content-part .sub-section .title{font-size:16px;font-weight:400;color:var(--font-primary)}.content-part .sub-section .info-title{font-size:12px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .sub-section .content{font-size:12px}.content-part .sub-section .subsection{font-weight:600;padding-top:10px;font-size:12px}.content-part .sub-section .subsection input{width:30%}.content-part .sub-section .icon{width:35px;filter:opacity(.5)}.content-part .tab-card{background-color:#fff;border-radius:5px;color:var(--font-primary)}.content-part .tab-card .row{margin-top:2px}.content-part .search-part{width:100%;height:45px;position:relative;border-radius:5px;border:1px solid #d3dae6;padding:10px 0 10px 15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.content-part .search-part input{width:auto;flex:1;color:var(--font-dark);font-size:var(--font12-input);font-weight:400;border:none;background:none;outline:none}.content-part .search-part .btn{background:#1e2541;border-radius:5px;padding:5px;width:41px;height:36px;margin-right:3px}.content-part .search-part .btn img{filter:brightness(0) invert(1)}.content-part textarea{width:100%;background:none}.content-part .tools-section{margin-left:5px}.content-part .tools-section .category-title{margin-bottom:5px;font-size:13px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .tools-section .text-title{font-size:13px;margin-left:3px;color:var(--font-primary)}.content-part .tools-section input[type=checkbox]{border:2px solid #000!important;height:14px!important;width:15px!important;border-radius:2px!important;margin:2px}.content-part .tools-section input[type=checkbox]:checked{background-color:#000!important;border:2px solid #000!important}.content-part .tools-section input[type=checkbox]:checked:after{content:\"\\2713\";color:#fff;font-size:11px;position:relative;left:50%;bottom:-7px;transform:translate(-50%,-50%);font-weight:900;background:#000;width:15px;display:flex;justify-content:center;border:2px solid #000;height:14px;align-items:center;border-radius:2px}.content-part .form-check-input{width:43px;height:21px;margin:0 5px;background-color:#c7c7c7!important;background-image:url(/assets/images/icons/toogle-circle.svg);background-position:left 4px top 2px;background-size:15px;border:1px solid #c7c7c7;outline:none!important;box-shadow:none!important;border-radius:25px;cursor:pointer}.content-part .form-check-input:checked{background-position:right 4px top 2px;background-image:url(/assets/images/icons/toogle-circle.svg);background-color:#237b4b!important;border:1px solid #237b4b!important}.copyAll{position:absolute;right:0;text-align:end;top:-40px}.close-popup{position:absolute;right:7px;top:4px;width:25px}.form-control:focus{border:var(--bs-border-width) solid var(--bs-border-color)}::ng-deep .nav-link{color:#000!important}.back-btn{font-size:14px;transition:.2s;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background:#d3dae6;color:#6c757dc7;border-radius:5px}.back-btn.edit{padding:5px 20px;min-height:20px;min-width:auto}.back-btn.add{background:#2e5b70;color:#fff}.save-btn{font-size:14px;transition:.2s;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background-color:#4077ad;color:#fff;border-radius:5px}.create-btn{font-size:14px;transition:.2s;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px;height:40px;min-width:9rem}.form-control{color:#333;background:none!important;font-size:small;height:45px}.form-control:focus{box-shadow:none!important}@media only screen and (min-width: 300px) and (max-width: 450px){.modal-content .close-popup{width:16px}}.loader{filter:blur(3px)}.edit-mode ::ng-deep .nav-tabs{display:none!important}::ng-deep accordion-group+accordion-group{margin-top:20px}.skill-preview-body label{font-weight:500;font-size:14px;color:#6b7280;padding-bottom:5px}.skill-preview-body p{margin:0}.skill-preview-body .value{font-size:13px;color:#212529}.skill-preview-card{border-radius:12px;margin-bottom:12px;transition:box-shadow .35s ease,transform .25s ease,border-color .25s ease;overflow:hidden}.continue-btn{background-color:#4077ad;padding:5px 20px;min-height:20px;font-weight:500;color:#fff;border-radius:5px}.action-btns{display:flex;justify-content:space-between;align-items:center}.actions{display:flex;justify-content:flex-end;gap:12px;margin-top:15px}.actions button{padding:10px 22px;border:none;border-radius:6px;font-size:14px;transition:all .2s ease;font-weight:500;min-width:8rem;min-height:45px}.actions .secondary{color:#6c757dc7;background-color:#e0e0e0}.actions .secondary:hover{background-color:#d5d5d5}.actions .primary{background-color:#2196f3;color:#fff}.actions .primary:hover{background-color:#1976d2}@media (max-width: 600px){.actions{flex-direction:column;align-items:stretch}.actions button{width:100%}}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .2s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.icon-color.rotate{transform:rotate(180deg)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "component", type: NgxStarsComponent, selector: "ngx-stars", inputs: ["maxStars", "initialStars", "readonly", "size", "color", "animation", "animationSpeed", "customPadding", "wholeStars", "customStarIcons"], outputs: ["ratingOutput"] }, { kind: "directive", type: i11$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i12.TabDirective, selector: "tab, [tab]", inputs: ["heading", "id", "disabled", "removable", "tabOrder", "customClass", "active"], outputs: ["selectTab", "deselect", "removed"], exportAs: ["tab"] }, { kind: "component", type: i12.TabsetComponent, selector: "tabset", inputs: ["vertical", "justified", "type"] }, { kind: "directive", type: i12.TabHeadingDirective, selector: "[tabHeading]" }, { kind: "component", type: i13.AccordionComponent, selector: "accordion", inputs: ["isAnimated", "closeOthers"] }, { kind: "component", type: i13.AccordionPanelComponent, selector: "accordion-group, accordion-panel", inputs: ["heading", "panelClass", "isDisabled", "isOpen"], outputs: ["isOpenChange"] }], animations: [
4762
4774
  trigger('expandCollapse', [
4763
4775
  state('open', style({
4764
4776
  height: '*',
@@ -4796,8 +4808,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4796
4808
  })),
4797
4809
  transition('open <=> closed', animate('300ms ease'))
4798
4810
  ])
4799
- ], template: "<!-- Tool PREVIEW LIST -->\r\n<div class=\"tools-container\" *ngIf=\"store.toolStepView() === 'preview'\">\r\n <h5 class=\"title text-secondary\">Tools</h5>\r\n <p class=\"subtitle\">First-time users should enter tools with Inspector Match, Once you setup tools in your\r\n business profile you can add skills under that!</p>\r\n <accordion [closeOthers]=\"true\" [isAnimated]=\"true\">\r\n <accordion-group *ngFor=\"let tool of userToolsPreview\" #accGroup (isOpenChange)=\"onAccordionChange(tool, $event)\">\r\n <div accordion-heading class=\"skill-preview-header d-flex justify-content-between align-items-center\">\r\n <span class=\"fw-semibold text-secondary\">\r\n {{ tool.toolName }}\r\n </span>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- EDIT MODE BUTTONS -->\r\n <ng-container *ngIf=\"isEditMode && editingToolKey === getToolKey(tool); else viewActions\">\r\n <button class=\"back-btn edit me-3\" type=\"button\" (click)=\"backTool(accGroup)\">\r\n Cancel\r\n </button>\r\n <button class=\"continue-btn edit\" type=\"button\" (click)=\"saveUserTools()\" \r\n [disabled]=\"showLoader\">\r\n Update\r\n </button>\r\n </ng-container>\r\n <!-- VIEW MODE ACTIONS -->\r\n <ng-template #viewActions>\r\n <button type=\"button\" class=\"me-3\" (click)=\"editToolFromPreview(tool, accGroup, $event)\">\r\n <img class=\"icon-color\" src=\"assets/images/icons/edit-text.png\" />\r\n </button>\r\n <!-- Arrow (ngx controls click) -->\r\n <img class=\"icon-color edit\" src=\"assets/images/icons/arrow-down.svg\" alt=\"icon\"\r\n [class.rotate]=\"accGroup.isOpen\" />\r\n </ng-template>\r\n </div>\r\n </div>\r\n <!-- BODY -->\r\n <div class=\"skill-preview-body content-part mt-3\">\r\n <ng-container *ngIf=\"!isEditMode || editingToolKey !== getToolKey(tool)\">\r\n <div class=\"row g-3 row-gap-2\">\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Service Provider</label>\r\n <div class=\"value\">{{ tool.providerName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Manufacturer</label>\r\n <div class=\"value\">{{ tool.make }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Years of Experience</label>\r\n <div class=\"value\">{{ tool.year }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"tool.starRating\" [maxStars]=\"5\" style=\"pointer-events: none\">\r\n </ngx-stars>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Active</label><br />\r\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"tool.profileVisibility\" disabled>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Tools / Equipment</label>\r\n <div class=\"value\">{{ tool.toolName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Model</label>\r\n <div class=\"value\">{{ tool.model }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Serial Number</label>\r\n <div class=\"value\">{{ tool.serialNumber }}</div>\r\n </div>\r\n <div class=\"col-12\">\r\n <label>Description</label>\r\n <div class=\"value\">{{ tool.notes }}</div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Edit Mode -->\r\n <ng-container *ngIf=\"isEditMode && editingToolKey === getToolKey(tool)\" [formGroup]=\"tab.at(0)\">\r\n <div class=\"row g-3\">\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Service Provider</label>\r\n <div class=\"value\">{{ tool.providerName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Manufacturer</label> <br />\r\n <input class=\"form-control\" type=\"text\" formControlName=\"make\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" bindLabel=\"text\" bindValue=\"value\" formControlName=\"year\"\r\n [clearable]=\"false\" placeholder=\"Select\">\r\n </ng-select>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"(tab.at(0).get('starRating')?.value || 0) / 2\" [maxStars]=\"5\"\r\n (rate)=\"onRatingSets($event)\">\r\n </ngx-stars>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Active</label><br />\r\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"profileVisibility\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Tools / Equipment</label>\r\n <input class=\"form-control\" [value]=\"tool.toolName\" readonly>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Model</label>\r\n <input class=\"form-control\" formControlName=\"model\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Serial Number</label>\r\n <input class=\"form-control\" formControlName=\"serialNumber\">\r\n </div>\r\n <div class=\"col-12\">\r\n <label>Description</label>\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"notes\"></textarea>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </accordion-group>\r\n </accordion>\r\n</div>\r\n\r\n<!-- Tool LIST -->\r\n<div class=\"tools-container\" *ngIf=\"store.toolStepView() === 'add'\">\r\n <h3 class=\"text-secondary\">Add Tools</h3>\r\n <p class=\"info\">Manage specialty tools and equipment</p>\r\n <div class=\"content-part\">\r\n <h6 class=\"text-secondary\"> Add User Tool</h6>\r\n <div class=\"sub-section\">\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12 col-md-12 col-sm-12 ps-lg-0\">\r\n <div class=\"search-part\" *ngIf=\"!isEditMode\">\r\n <input type=\"text\" placeholder=\"Search / Add Tools here\" [(ngModel)]=\"searchToolQry\" (input)=\"getTools()\" />\r\n <button class=\"btn\" (click)=\"createNewTools()\" tooltip=\"Add Tool\">\r\n <img src=\"assets/images/icons/plus.svg\" alt=\"search\" class=\"create-plus\" width=\"18px\" height=\"18px\" />\r\n </button>\r\n </div>\r\n <div *ngIf=\"!searchToolQry && toolSubmittedValue\" class=\"invalid-feedback is-invalid d-block\">\r\n Please Enter Tools Name\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"nameError\" class=\"invalid-feedback is-invalid d-block\">\r\n {{ nameError }}\r\n </div>\r\n <div class=\"col tools-section\" [ngClass]=\"showLoading ? 'loader':''\">\r\n <div class=\"row mt-2\" [ngStyle]=\"showLoader ? {'min-height': '150px'} : {}\">\r\n <div class=\"col-12 col-md-4\" *ngFor=\"let Tool of tools\">\r\n <div class=\"mt-2 d-flex\">\r\n <input (change)=\"onSelectedTools($event, Tool)\" [checked]=\"Tool.selected == true\" id=\"{{ Tool.id }}\"\r\n name=\"{{ Tool.id }}\" type=\"checkbox\" />\r\n <label class=\"text-title\" for=\"{{ Tool.id }}\">\r\n {{ Tool.name }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{ 'loader': showLoading,'pt-3': !showLoading,'edit-mode': isEditMode}\">\r\n <tabset #tabSet>\r\n <tab (selectTab)=\"setTabGroup(group)\" *ngFor=\"let group of tab?.controls; let index = index\"\r\n [label]=\"tabs[index]\" tab1 id=\"{{ tabs[index] }}\" #{{tabs[index]}}>\r\n <ng-template tabHeading *ngIf=\"!isEditMode\">\r\n <span class=\"text-secondary\">{{ tabs[index] }}</span>\r\n <button class=\"btn btn-sm\" (click)=\"removeTab(index, group.controls.toolId.value)\">\r\n <img src=\"assets/images/icons/close-x-mark.svg\" alt=\"search\" width=\"16px\" height=\"16px\" />\r\n </button>\r\n </ng-template>\r\n <div [formGroup]=\"group\" class=\"tab-card\">\r\n <div class=\"card-body mt-3 position-relative\">\r\n <div class=\"col-12 col-md-3 mt-1 copyAll\" *ngIf=\"\r\n tab.controls.length > 1 && index == copyOptionIndex\r\n \">\r\n <label class=\"label\">Copy to All Tabs</label>\r\n <input class=\"form-check-input\" type=\"checkbox\" (click)=\"setCopyToAllTabs(index, group.value,viewTab)\"\r\n role=\"switch\" />\r\n </div>\r\n <div class=\"row\" [ngClass]=\"index == 0 && tab.controls.length > 1 ? 'mt-5' : '' \">\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Self-ability Rating</label>\r\n <ngx-stars [initialStars]=\"initialStarts\" (ratingOutput)=\"onRatingSet($event,index)\"\r\n [ngClass]=\"{ 'is-invalid': userToolSubmitted && k.starRating.errors }\" [maxStars]=\"5\">\r\n </ngx-stars>\r\n <div *ngIf=\"userToolSubmitted && k.starRating.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid':\r\n userToolSubmitted && k.starRating.errors\r\n }\">\r\n <div *ngIf=\"k.starRating.errors.required\">\r\n Star Rating is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Profile Visibility</label><br />\r\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\" />\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" bindLabel=\"text\" (change)=\"onYearChange(group)\"\r\n formControlName=\"year\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.year.errors\r\n }\" bindValue=\"value\" [closeOnSelect]=\"true\" [clearable]=\"false\" placeholder=\"Select\"\r\n id=\"reqStates\"></ng-select>\r\n\r\n <div *ngIf=\"userToolSubmitted && k.year.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.year.errors\r\n }\">\r\n <div *ngIf=\"k.year.errors.required\">\r\n Year is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Manufacturer</label>\r\n <input id=\"make\" formControlName=\"make\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Manufacturer here\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.make.errors\r\n }\" (change)=\"onYearChange(group)\" />\r\n <div *ngIf=\"userToolSubmitted && k.make.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.make.errors\r\n }\">\r\n <div *ngIf=\"k.make.errors.required\">\r\n Manufacturer is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row pt-2\">\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Model</label>\r\n <input id=\"model\" formControlName=\"model\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Model here\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.model.errors\r\n }\" (change)=\"onYearChange(group)\" />\r\n <div *ngIf=\"userToolSubmitted && k.model.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.model.errors\r\n }\">\r\n <div *ngIf=\"k.model.errors.required\">\r\n Model is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\" label\">Serial Number</label>\r\n <input id=\"serialNumber\" formControlName=\"serialNumber\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Serial Number here\" [ngClass]=\"{\r\n 'is-invalid':\r\n userToolSubmitted && k.serialNumber.errors\r\n }\" />\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Comment</label>\r\n <textarea placeholder=\"Enter your comment here\" formControlName=\"notes\" class=\"form-control\"\r\n [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.notes.errors\r\n }\" rows=\"2\"></textarea>\r\n <div *ngIf=\"userToolSubmitted && k.notes.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.notes.errors\r\n }\">\r\n <div *ngIf=\"k.notes.errors.required\">\r\n Description is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"tools-container last pt-5 mt-5\">\r\n <div class=\"d-flex justify-content-between pt-3\">\r\n <!-- (click)=\"reset()\" -->\r\n <button class=\"back-btn\" (click)=\"goBack()\">Back</button>\r\n <div>\r\n <button class=\"back-btn me-3 add\" *ngIf=\"store.toolStepView() === 'preview'\" (click)=\"store.goToToolAdd()\">\r\n Add More Tools\r\n </button>\r\n <button style=\"margin-left: 15px;\" [disabled]=\"homeLoader\" [ng2-loading]=\"homeLoader\" (click)=\"saveFinal()\"\r\n class=\"float-end save-btn\">\r\n Go To Home\r\n </button>\r\n <button (click)=\"onToolContinue()\" *ngIf=\"store.toolStepView() === 'add'\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\" class=\"float-end save-btn\">\r\n Add\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.tools-container{max-width:1000px;margin:40px auto;min-height:300px}.tools-container.last{min-height:unset}.tools-container h3{margin-bottom:5px;font-size:22px;font-weight:500}.tools-container .info{font-size:13px;color:#666;margin-bottom:30px}.content-part{background:#fff}.content-part p,.content-part div{font-size:small}.content-part div .label{font-size:12px!important;font-weight:700!important;padding-bottom:5px!important}.content-part .row{margin-top:-15px}.content-part .sub-section{padding:0 10px}.content-part .sub-section .title{font-size:16px;font-weight:400;color:var(--font-primary)}.content-part .sub-section .info-title{font-size:12px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .sub-section .content{font-size:12px}.content-part .sub-section .subsection{font-weight:600;padding-top:10px;font-size:12px}.content-part .sub-section .subsection input{width:30%}.content-part .sub-section .icon{width:35px;filter:opacity(.5)}.content-part .tab-card{background-color:#fff;border-radius:5px;color:var(--font-primary)}.content-part .tab-card .row{margin-top:2px}.content-part .search-part{width:100%;height:45px;position:relative;border-radius:5px;border:1px solid #d3dae6;padding:10px 0 10px 15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.content-part .search-part input{width:auto;flex:1;color:var(--font-dark);font-size:var(--font12-input);font-weight:400;border:none;background:none}.content-part .search-part .btn{background:#1e2541;border-radius:5px;padding:5px;width:41px;height:36px;margin-right:3px}.content-part .search-part .btn img{filter:brightness(0) invert(1)}.content-part textarea{width:100%;background:none}.content-part .tools-section{margin-left:5px}.content-part .tools-section .category-title{margin-bottom:5px;font-size:13px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .tools-section .text-title{font-size:13px;margin-left:3px;color:var(--font-primary)}.content-part .tools-section input[type=checkbox]{border:2px solid #000!important;height:14px!important;width:15px!important;border-radius:2px!important;margin:2px}.content-part .tools-section input[type=checkbox]:checked{background-color:#000!important;border:2px solid #000!important}.content-part .tools-section input[type=checkbox]:checked:after{content:\"\\2713\";color:#fff;font-size:11px;position:relative;left:50%;bottom:-7px;transform:translate(-50%,-50%);font-weight:900;background:#000;width:15px;display:flex;justify-content:center;border:2px solid #000;height:14px;align-items:center;border-radius:2px}.content-part .form-check-input{width:43px;height:21px;margin:0 5px;background-color:#c7c7c7!important;background-image:url(/assets/images/icons/toogle-circle.svg);background-position:left 4px top 2px;background-size:15px;border:1px solid #c7c7c7;outline:none!important;box-shadow:none!important;border-radius:25px;cursor:pointer}.content-part .form-check-input:checked{background-position:right 4px top 2px;background-image:url(/assets/images/icons/toogle-circle.svg);background-color:#237b4b!important;border:1px solid #237b4b!important}.copyAll{position:absolute;right:0;text-align:end;top:-40px}.close-popup{position:absolute;right:7px;top:4px;width:25px}.form-control:focus{border:var(--bs-border-width) solid var(--bs-border-color)}::ng-deep .nav-link{color:#000!important}.back-btn{font-size:14px;transition:.2s;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background:#d3dae6;color:#6c757dc7;border-radius:5px}.back-btn.edit{padding:5px 20px;min-height:20px;min-width:auto}.back-btn.add{background:#2e5b70;color:#fff}.save-btn{font-size:14px;transition:.2s;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background-color:#4077ad;color:#fff;border-radius:5px}.create-btn{font-size:14px;transition:.2s;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px;height:40px;min-width:9rem}.form-control{color:#333;background:none!important;font-size:small;height:45px}.form-control:focus{box-shadow:none!important}@media only screen and (min-width: 300px) and (max-width: 450px){.modal-content .close-popup{width:16px}}.loader{filter:blur(3px)}.edit-mode ::ng-deep .nav-tabs{display:none!important}::ng-deep accordion-group+accordion-group{margin-top:20px}.skill-preview-body label{font-weight:500;font-size:14px;color:#6b7280;padding-bottom:5px}.skill-preview-body p{margin:0}.skill-preview-body .value{font-size:13px;color:#212529}.skill-preview-card{border-radius:12px;margin-bottom:12px;transition:box-shadow .35s ease,transform .25s ease,border-color .25s ease;overflow:hidden}.continue-btn{background-color:#4077ad;padding:5px 20px;min-height:20px;font-weight:500;color:#fff;border-radius:5px}.action-btns{display:flex;justify-content:space-between;align-items:center}.actions{display:flex;justify-content:flex-end;gap:12px;margin-top:15px}.actions button{padding:10px 22px;border:none;border-radius:6px;font-size:14px;transition:all .2s ease;font-weight:500;min-width:8rem;min-height:45px}.actions .secondary{color:#6c757dc7;background-color:#e0e0e0}.actions .secondary:hover{background-color:#d5d5d5}.actions .primary{background-color:#2196f3;color:#fff}.actions .primary:hover{background-color:#1976d2}@media (max-width: 600px){.actions{flex-direction:column;align-items:stretch}.actions button{width:100%}}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .2s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.icon-color.rotate{transform:rotate(180deg)}\n"] }]
4800
- }], ctorParameters: () => [{ type: ToolService }, { type: UserToolService }, { type: i3.UntypedFormBuilder }, { type: UtilsService }, { type: CredentialingStore }, { type: i6.TokenService }, { type: UserDetailService }], propDecorators: { roleData: [{
4811
+ ], template: "<!-- Tool PREVIEW LIST -->\r\n<div class=\"tools-container\" *ngIf=\"store.toolStepView() === 'preview'\">\r\n <h5 class=\"title text-secondary\">Tools</h5>\r\n <p class=\"subtitle\">First-time users should enter tools with Inspector Match, Once you setup tools in your\r\n business profile you can add skills under that!</p>\r\n <accordion [closeOthers]=\"true\" [isAnimated]=\"true\">\r\n <accordion-group *ngFor=\"let tool of userToolsPreview\" #accGroup (isOpenChange)=\"onAccordionChange(tool, $event)\">\r\n <div accordion-heading class=\"skill-preview-header d-flex justify-content-between align-items-center\">\r\n <span class=\"fw-semibold text-secondary\">\r\n {{ tool.toolName }}\r\n </span>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- EDIT MODE BUTTONS -->\r\n <ng-container *ngIf=\"isEditMode && editingToolKey === getToolKey(tool); else viewActions\">\r\n <button class=\"back-btn edit me-3\" type=\"button\" (click)=\"backTool(accGroup)\">\r\n Cancel\r\n </button>\r\n <button class=\"continue-btn edit\" type=\"button\" (click)=\"saveUserTools()\" \r\n [disabled]=\"showLoader\">\r\n Update\r\n </button>\r\n </ng-container>\r\n <!-- VIEW MODE ACTIONS -->\r\n <ng-template #viewActions>\r\n <button type=\"button\" class=\"me-3\" (click)=\"editToolFromPreview(tool, accGroup, $event)\">\r\n <img class=\"icon-color\" src=\"/assets/images/icons/edit-text.png\" />\r\n </button>\r\n <!-- Arrow (ngx controls click) -->\r\n <img class=\"icon-color edit\" src=\"/assets/images/icons/arrow-down.svg\" alt=\"icon\"\r\n [class.rotate]=\"accGroup.isOpen\" />\r\n </ng-template>\r\n </div>\r\n </div>\r\n <!-- BODY -->\r\n <div class=\"skill-preview-body content-part mt-3\">\r\n <ng-container *ngIf=\"!isEditMode || editingToolKey !== getToolKey(tool)\">\r\n <div class=\"row g-3 row-gap-2\">\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Service Provider</label>\r\n <div class=\"value\">{{ tool.providerName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Manufacturer</label>\r\n <div class=\"value\">{{ tool.make }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Years of Experience</label>\r\n <div class=\"value\">{{ tool.year }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"tool.starRating\" [maxStars]=\"5\" style=\"pointer-events: none\">\r\n </ngx-stars>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Active</label><br />\r\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"tool.profileVisibility\" disabled>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Tools / Equipment</label>\r\n <div class=\"value\">{{ tool.toolName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Model</label>\r\n <div class=\"value\">{{ tool.model }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Serial Number</label>\r\n <div class=\"value\">{{ tool.serialNumber }}</div>\r\n </div>\r\n <div class=\"col-12\">\r\n <label>Description</label>\r\n <div class=\"value\">{{ tool.notes }}</div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Edit Mode -->\r\n <ng-container *ngIf=\"isEditMode && editingToolKey === getToolKey(tool)\" [formGroup]=\"tab.at(0)\">\r\n <div class=\"row g-3\">\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Service Provider</label>\r\n <div class=\"value\">{{ tool.providerName }}</div>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Manufacturer</label> <br />\r\n <input class=\"form-control\" type=\"text\" formControlName=\"make\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" bindLabel=\"text\" bindValue=\"value\" formControlName=\"year\"\r\n [clearable]=\"false\" placeholder=\"Select\">\r\n </ng-select>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Self Ability Rating</label>\r\n <ngx-stars [initialStars]=\"(tab.at(0).get('starRating')?.value || 0) / 2\" [maxStars]=\"5\"\r\n (rate)=\"onRatingSets($event)\">\r\n </ngx-stars>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Active</label><br />\r\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"profileVisibility\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Tools / Equipment</label>\r\n <input class=\"form-control\" [value]=\"tool.toolName\" readonly>\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Model</label>\r\n <input class=\"form-control\" formControlName=\"model\">\r\n </div>\r\n <div class=\"col-lg-3 col-md-4 col-sm-6 col-12\">\r\n <label>Serial Number</label>\r\n <input class=\"form-control\" formControlName=\"serialNumber\">\r\n </div>\r\n <div class=\"col-12\">\r\n <label>Description</label>\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"notes\"></textarea>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </accordion-group>\r\n </accordion>\r\n</div>\r\n\r\n<!-- Tool LIST -->\r\n<div class=\"tools-container\" *ngIf=\"store.toolStepView() === 'add'\">\r\n <h3 class=\"text-secondary\">Add Tools</h3>\r\n <p class=\"info\">Manage specialty tools and equipment</p>\r\n <div class=\"content-part\">\r\n <h6 class=\"text-secondary\"> Add User Tool</h6>\r\n <div class=\"sub-section\">\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12 col-md-12 col-sm-12 ps-lg-0\">\r\n <div class=\"search-part\" *ngIf=\"!isEditMode\">\r\n <input type=\"text\" placeholder=\"Search / Add Tools here\" [(ngModel)]=\"searchToolQry\" (input)=\"getTools()\" />\r\n <button class=\"btn\" (click)=\"createNewTools()\" tooltip=\"Add Tool\">\r\n <img src=\"/assets/images/icons/plus.svg\" alt=\"search\" class=\"create-plus\" width=\"18px\" height=\"18px\" />\r\n </button>\r\n </div>\r\n <div *ngIf=\"!searchToolQry && toolSubmittedValue\" class=\"invalid-feedback is-invalid d-block\">\r\n Please Enter Tools Name\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"nameError\" class=\"invalid-feedback is-invalid d-block\">\r\n {{ nameError }}\r\n </div>\r\n <div class=\"col tools-section\" [ngClass]=\"showLoading ? 'loader':''\">\r\n <div class=\"row mt-2\" [ngStyle]=\"showLoader ? {'min-height': '150px'} : {}\">\r\n <div class=\"col-12 col-md-4\" *ngFor=\"let Tool of tools\">\r\n <div class=\"mt-2 d-flex\">\r\n <input (change)=\"onSelectedTools($event, Tool)\" [checked]=\"Tool.selected == true\" id=\"{{ Tool.id }}\"\r\n name=\"{{ Tool.id }}\" type=\"checkbox\" />\r\n <label class=\"text-title\" for=\"{{ Tool.id }}\">\r\n {{ Tool.name }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{ 'loader': showLoading,'pt-3': !showLoading,'edit-mode': isEditMode}\">\r\n <tabset #tabSet>\r\n <tab (selectTab)=\"setTabGroup(group)\" *ngFor=\"let group of tab?.controls; let index = index\"\r\n [label]=\"tabs[index]\" tab1 id=\"{{ tabs[index] }}\" #{{tabs[index]}}>\r\n <ng-template tabHeading *ngIf=\"!isEditMode\">\r\n <span class=\"text-secondary\">{{ tabs[index] }}</span>\r\n <button class=\"btn btn-sm\" (click)=\"removeTab(index, group.controls.toolId.value)\">\r\n <img src=\"/assets/images/icons/close-x-mark.svg\" alt=\"search\" width=\"16px\" height=\"16px\" />\r\n </button>\r\n </ng-template>\r\n <div [formGroup]=\"group\" class=\"tab-card\">\r\n <div class=\"card-body mt-3 position-relative\">\r\n <div class=\"col-12 col-md-3 mt-1 copyAll\" *ngIf=\"\r\n tab.controls.length > 1 && index == copyOptionIndex\r\n \">\r\n <label class=\"label\">Copy to All Tabs</label>\r\n <input class=\"form-check-input\" type=\"checkbox\" (click)=\"setCopyToAllTabs(index, group.value,viewTab)\"\r\n role=\"switch\" />\r\n </div>\r\n <div class=\"row\" [ngClass]=\"index == 0 && tab.controls.length > 1 ? 'mt-5' : '' \">\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Self-ability Rating</label>\r\n <ngx-stars [initialStars]=\"initialStarts\" (ratingOutput)=\"onRatingSet($event,index)\"\r\n [ngClass]=\"{ 'is-invalid': userToolSubmitted && k.starRating.errors }\" [maxStars]=\"5\">\r\n </ngx-stars>\r\n <div *ngIf=\"userToolSubmitted && k.starRating.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid':\r\n userToolSubmitted && k.starRating.errors\r\n }\">\r\n <div *ngIf=\"k.starRating.errors.required\">\r\n Star Rating is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-2 mt-1\">\r\n <label class=\"label\">Profile Visibility</label><br />\r\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"profileVisibility\" role=\"switch\" />\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Years of Experience</label>\r\n <ng-select class=\"w-100\" [items]=\"expYears\" bindLabel=\"text\" (change)=\"onYearChange(group)\"\r\n formControlName=\"year\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.year.errors\r\n }\" bindValue=\"value\" [closeOnSelect]=\"true\" [clearable]=\"false\" placeholder=\"Select\"\r\n id=\"reqStates\"></ng-select>\r\n\r\n <div *ngIf=\"userToolSubmitted && k.year.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.year.errors\r\n }\">\r\n <div *ngIf=\"k.year.errors.required\">\r\n Year is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Manufacturer</label>\r\n <input id=\"make\" formControlName=\"make\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Manufacturer here\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.make.errors\r\n }\" (change)=\"onYearChange(group)\" />\r\n <div *ngIf=\"userToolSubmitted && k.make.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.make.errors\r\n }\">\r\n <div *ngIf=\"k.make.errors.required\">\r\n Manufacturer is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row pt-2\">\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Model</label>\r\n <input id=\"model\" formControlName=\"model\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Model here\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.model.errors\r\n }\" (change)=\"onYearChange(group)\" />\r\n <div *ngIf=\"userToolSubmitted && k.model.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.model.errors\r\n }\">\r\n <div *ngIf=\"k.model.errors.required\">\r\n Model is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\" label\">Serial Number</label>\r\n <input id=\"serialNumber\" formControlName=\"serialNumber\" class=\"form-control\" type=\"text\"\r\n placeholder=\"Enter Serial Number here\" [ngClass]=\"{\r\n 'is-invalid':\r\n userToolSubmitted && k.serialNumber.errors\r\n }\" />\r\n </div>\r\n <div class=\"col-12 col-md-4 mt-1\">\r\n <label class=\"label\">Comment</label>\r\n <textarea placeholder=\"Enter your comment here\" formControlName=\"notes\" class=\"form-control\"\r\n [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.notes.errors\r\n }\" rows=\"2\"></textarea>\r\n <div *ngIf=\"userToolSubmitted && k.notes.errors\" class=\"invalid-feedback\" [ngClass]=\"{\r\n 'is-invalid': userToolSubmitted && k.notes.errors\r\n }\">\r\n <div *ngIf=\"k.notes.errors.required\">\r\n Description is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"tools-container last pt-5 mt-5\">\r\n <div class=\"d-flex justify-content-between pt-3\">\r\n <!-- (click)=\"reset()\" -->\r\n <button class=\"back-btn\" (click)=\"goBack()\">Back</button>\r\n <div>\r\n <button class=\"back-btn me-3 add\" *ngIf=\"store.toolStepView() === 'preview'\" (click)=\"store.goToToolAdd()\">\r\n Add More Tools\r\n </button>\r\n <button style=\"margin-left: 15px;\" [disabled]=\"homeLoader\" [ng2-loading]=\"homeLoader\" (click)=\"saveFinal()\"\r\n class=\"float-end save-btn\">\r\n Go To Home\r\n </button>\r\n <button (click)=\"onToolContinue()\" *ngIf=\"store.toolStepView() === 'add'\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\" class=\"float-end save-btn\">\r\n Add\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.tools-container{max-width:1000px;margin:40px auto;min-height:300px}.tools-container.last{min-height:unset}.tools-container h3{margin-bottom:5px;font-size:22px;font-weight:500}.tools-container .info{font-size:13px;color:#666;margin-bottom:30px}.content-part{background:#fff}.content-part p,.content-part div{font-size:small}.content-part div .label{font-size:12px!important;font-weight:700!important;padding-bottom:5px!important}.content-part .row{margin-top:-15px}.content-part .sub-section{padding:0 10px}.content-part .sub-section .title{font-size:16px;font-weight:400;color:var(--font-primary)}.content-part .sub-section .info-title{font-size:12px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .sub-section .content{font-size:12px}.content-part .sub-section .subsection{font-weight:600;padding-top:10px;font-size:12px}.content-part .sub-section .subsection input{width:30%}.content-part .sub-section .icon{width:35px;filter:opacity(.5)}.content-part .tab-card{background-color:#fff;border-radius:5px;color:var(--font-primary)}.content-part .tab-card .row{margin-top:2px}.content-part .search-part{width:100%;height:45px;position:relative;border-radius:5px;border:1px solid #d3dae6;padding:10px 0 10px 15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.content-part .search-part input{width:auto;flex:1;color:var(--font-dark);font-size:var(--font12-input);font-weight:400;border:none;background:none;outline:none}.content-part .search-part .btn{background:#1e2541;border-radius:5px;padding:5px;width:41px;height:36px;margin-right:3px}.content-part .search-part .btn img{filter:brightness(0) invert(1)}.content-part textarea{width:100%;background:none}.content-part .tools-section{margin-left:5px}.content-part .tools-section .category-title{margin-bottom:5px;font-size:13px;font-weight:400;color:var(--font-primary);margin-left:5px}.content-part .tools-section .text-title{font-size:13px;margin-left:3px;color:var(--font-primary)}.content-part .tools-section input[type=checkbox]{border:2px solid #000!important;height:14px!important;width:15px!important;border-radius:2px!important;margin:2px}.content-part .tools-section input[type=checkbox]:checked{background-color:#000!important;border:2px solid #000!important}.content-part .tools-section input[type=checkbox]:checked:after{content:\"\\2713\";color:#fff;font-size:11px;position:relative;left:50%;bottom:-7px;transform:translate(-50%,-50%);font-weight:900;background:#000;width:15px;display:flex;justify-content:center;border:2px solid #000;height:14px;align-items:center;border-radius:2px}.content-part .form-check-input{width:43px;height:21px;margin:0 5px;background-color:#c7c7c7!important;background-image:url(/assets/images/icons/toogle-circle.svg);background-position:left 4px top 2px;background-size:15px;border:1px solid #c7c7c7;outline:none!important;box-shadow:none!important;border-radius:25px;cursor:pointer}.content-part .form-check-input:checked{background-position:right 4px top 2px;background-image:url(/assets/images/icons/toogle-circle.svg);background-color:#237b4b!important;border:1px solid #237b4b!important}.copyAll{position:absolute;right:0;text-align:end;top:-40px}.close-popup{position:absolute;right:7px;top:4px;width:25px}.form-control:focus{border:var(--bs-border-width) solid var(--bs-border-color)}::ng-deep .nav-link{color:#000!important}.back-btn{font-size:14px;transition:.2s;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background:#d3dae6;color:#6c757dc7;border-radius:5px}.back-btn.edit{padding:5px 20px;min-height:20px;min-width:auto}.back-btn.add{background:#2e5b70;color:#fff}.save-btn{font-size:14px;transition:.2s;padding:7px 23px;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background-color:#4077ad;color:#fff;border-radius:5px}.create-btn{font-size:14px;transition:.2s;border:none;height:auto;font-weight:500;min-width:8rem;min-height:45px;background-color:#4077ad;color:#fff;border-radius:5px;padding:6px 8px;height:40px;min-width:9rem}.form-control{color:#333;background:none!important;font-size:small;height:45px}.form-control:focus{box-shadow:none!important}@media only screen and (min-width: 300px) and (max-width: 450px){.modal-content .close-popup{width:16px}}.loader{filter:blur(3px)}.edit-mode ::ng-deep .nav-tabs{display:none!important}::ng-deep accordion-group+accordion-group{margin-top:20px}.skill-preview-body label{font-weight:500;font-size:14px;color:#6b7280;padding-bottom:5px}.skill-preview-body p{margin:0}.skill-preview-body .value{font-size:13px;color:#212529}.skill-preview-card{border-radius:12px;margin-bottom:12px;transition:box-shadow .35s ease,transform .25s ease,border-color .25s ease;overflow:hidden}.continue-btn{background-color:#4077ad;padding:5px 20px;min-height:20px;font-weight:500;color:#fff;border-radius:5px}.action-btns{display:flex;justify-content:space-between;align-items:center}.actions{display:flex;justify-content:flex-end;gap:12px;margin-top:15px}.actions button{padding:10px 22px;border:none;border-radius:6px;font-size:14px;transition:all .2s ease;font-weight:500;min-width:8rem;min-height:45px}.actions .secondary{color:#6c757dc7;background-color:#e0e0e0}.actions .secondary:hover{background-color:#d5d5d5}.actions .primary{background-color:#2196f3;color:#fff}.actions .primary:hover{background-color:#1976d2}@media (max-width: 600px){.actions{flex-direction:column;align-items:stretch}.actions button{width:100%}}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .2s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.icon-color.rotate{transform:rotate(180deg)}\n"] }]
4812
+ }], ctorParameters: () => [{ type: ToolService }, { type: UserToolService }, { type: i3.UntypedFormBuilder }, { type: UtilsService }, { type: CredentialingStore }, { type: i6.TokenService }, { type: UserDetailService }, { type: undefined, decorators: [{
4813
+ type: Inject,
4814
+ args: [LIBRARY_CONFIG]
4815
+ }] }], propDecorators: { roleData: [{
4801
4816
  type: Input
4802
4817
  }] } });
4803
4818
 
@@ -4815,13 +4830,76 @@ const EmployeeDesignationList = [
4815
4830
  { value: 4, text: 'Contract Employee', selected: false },
4816
4831
  ];
4817
4832
 
4818
- class RoleSelectionComponent {
4833
+ var UserJobTitles;
4834
+ (function (UserJobTitles) {
4835
+ UserJobTitles[UserJobTitles["Inspector"] = 1] = "Inspector";
4836
+ UserJobTitles[UserJobTitles["Adjuster"] = 2] = "Adjuster";
4837
+ UserJobTitles[UserJobTitles["DronePilot"] = 3] = "DronePilot";
4838
+ UserJobTitles[UserJobTitles["MoldTester"] = 4] = "MoldTester";
4839
+ UserJobTitles[UserJobTitles["EnergyAuditor"] = 5] = "EnergyAuditor";
4840
+ UserJobTitles[UserJobTitles["Photographer"] = 6] = "Photographer";
4841
+ UserJobTitles[UserJobTitles["surveyor"] = 7] = "surveyor";
4842
+ })(UserJobTitles || (UserJobTitles = {}));
4843
+ const UserJobTitlesList = [
4844
+ { value: 1, text: 'Inspector', selected: false },
4845
+ { value: 2, text: 'Adjuster', selected: false },
4846
+ { value: 3, text: 'Drone Pilot', selected: false },
4847
+ { value: 4, text: 'Mold Tester', selected: false },
4848
+ { value: 5, text: 'Energy Auditor', selected: false },
4849
+ { value: 6, text: 'Photographer', selected: false },
4850
+ { value: 7, text: 'surveyor', selected: false },
4851
+ ];
4852
+
4853
+ class IndustryService {
4854
+ http = inject(HttpClient);
4855
+ // 🔥 Define base URL manually
4856
+ baseUrl = `Industry`;
4857
+ getUserIndustry(query) {
4858
+ return this.http.get(`${this.baseUrl}/GetIndustries`, {
4859
+ params: this.buildParams(query)
4860
+ });
4861
+ }
4862
+ /* ==============================
4863
+ PARAM BUILDER
4864
+ ============================== */
4865
+ buildParams(query) {
4866
+ let params = new HttpParams();
4867
+ if (!query)
4868
+ return params;
4869
+ Object.keys(query).forEach(key => {
4870
+ if (query[key] !== null && query[key] !== undefined) {
4871
+ params = params.set(key, query[key]);
4872
+ }
4873
+ });
4874
+ return params;
4875
+ }
4876
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IndustryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4877
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IndustryService, providedIn: 'root' });
4878
+ }
4879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IndustryService, decorators: [{
4880
+ type: Injectable,
4881
+ args: [{
4882
+ providedIn: 'root',
4883
+ }]
4884
+ }] });
4885
+
4886
+ class RoleSelectComponent {
4819
4887
  store;
4820
4888
  router;
4889
+ industrydata;
4821
4890
  userDetailService;
4822
4891
  fileService;
4823
4892
  tokenService;
4824
4893
  fb;
4894
+ previewUrl = null;
4895
+ selectedTab;
4896
+ industries = [];
4897
+ selectedIndustries = [];
4898
+ isIndustriesLoading = false;
4899
+ expYears = [];
4900
+ jobTitles = UserJobTitlesList;
4901
+ selectedIndustryIds = []; // only IDs from ng-select
4902
+ selectedIndustryObjects = []; // mapped full objects
4825
4903
  uploadToAws = true;
4826
4904
  backToParent = new EventEmitter();
4827
4905
  roleData;
@@ -4853,15 +4931,19 @@ class RoleSelectionComponent {
4853
4931
  selectedJobs = signal([], ...(ngDevMode ? [{ debugName: "selectedJobs" }] : []));
4854
4932
  selectedJobValues = [];
4855
4933
  provider;
4856
- constructor(store, router, userDetailService, fileService, tokenService, fb) {
4934
+ constructor(store, router, industrydata, userDetailService, fileService, tokenService, fb) {
4857
4935
  this.store = store;
4858
4936
  this.router = router;
4937
+ this.industrydata = industrydata;
4859
4938
  this.userDetailService = userDetailService;
4860
4939
  this.fileService = fileService;
4861
4940
  this.tokenService = tokenService;
4862
4941
  this.fb = fb;
4863
4942
  }
4943
+ cloudfrontUrl;
4864
4944
  async ngOnInit() {
4945
+ this.getYears();
4946
+ this.getIndustries();
4865
4947
  this.userForm = new FormGroup({
4866
4948
  firstName: new FormControl('', Validators.required),
4867
4949
  lastName: new FormControl('', Validators.required),
@@ -4875,12 +4957,68 @@ class RoleSelectionComponent {
4875
4957
  county: new FormControl(''),
4876
4958
  latitude: new FormControl(''),
4877
4959
  longitude: new FormControl(''),
4878
- phoneNumber: new FormControl('', Validators.required)
4960
+ phoneNumber: new FormControl('', Validators.required),
4961
+ userJobTitle: new FormControl('', Validators.required),
4962
+ yearsOfExperince: new FormControl(null, Validators.required),
4963
+ industries: new FormControl([], Validators.required),
4879
4964
  });
4880
4965
  this.userId = await this.tokenService.getUserId();
4881
4966
  this.useremail = await this.tokenService.getUserEmail();
4882
4967
  this.getUserDetail();
4883
4968
  }
4969
+ getYears() {
4970
+ if (this.expYears?.length)
4971
+ return;
4972
+ for (let i = 1; i < 30; i++) {
4973
+ this.expYears.push({
4974
+ text: `${i} Year`,
4975
+ value: i, // ✅ NUMBER (important)
4976
+ selected: false,
4977
+ });
4978
+ }
4979
+ }
4980
+ getIndustries() {
4981
+ this.isIndustriesLoading = true;
4982
+ const query = {
4983
+ page: 1,
4984
+ pageSize: 100,
4985
+ filter: 'isActive=true,providerId='
4986
+ };
4987
+ this.industrydata
4988
+ .getUserIndustry(query)
4989
+ .subscribe({
4990
+ next: (res) => {
4991
+ this.industries = res?.data ?? [];
4992
+ this.isIndustriesLoading = false;
4993
+ },
4994
+ error: (err) => {
4995
+ console.error(err);
4996
+ this.isIndustriesLoading = false;
4997
+ }
4998
+ });
4999
+ }
5000
+ saveUserIndustries() {
5001
+ const ids = this.userForm.get('industries').value;
5002
+ if (!ids || !ids.length)
5003
+ return;
5004
+ const payload = this.industries
5005
+ .filter(ind => ids.includes(ind.id))
5006
+ .map(ind => ({
5007
+ userIndustryName: ind.industryName,
5008
+ userIndustryId: ind.id,
5009
+ userId: this.userId,
5010
+ userName: `${this.userForm.value.firstName} ${this.userForm.value.lastName}`
5011
+ }));
5012
+ this.userDetailService.AddUserIndustry(payload).subscribe({
5013
+ next: () => { },
5014
+ error: () => alert('Failed to save industries')
5015
+ });
5016
+ }
5017
+ setSelectedIndustries(ids) {
5018
+ console.log('Selected IDs:', ids);
5019
+ const selectedObjects = this.industries.filter(i => ids.includes(i.id));
5020
+ console.log('Selected objects:', selectedObjects);
5021
+ }
4884
5022
  onBackClick() {
4885
5023
  this.backToParent.emit();
4886
5024
  }
@@ -4901,6 +5039,11 @@ class RoleSelectionComponent {
4901
5039
  ...data
4902
5040
  }
4903
5041
  });
5042
+ console.log(this.industries);
5043
+ console.log(data.userIndustryNames);
5044
+ const selectedIds = this.industries
5045
+ .filter(i => data.userIndustryNames.includes(i.industryName))
5046
+ .map(i => i.id);
4904
5047
  this.userForm.patchValue({
4905
5048
  firstName: data.firstName || '',
4906
5049
  lastName: data.lastName || '',
@@ -4914,7 +5057,10 @@ class RoleSelectionComponent {
4914
5057
  county: data.county || '',
4915
5058
  latitude: data.latitude || '',
4916
5059
  longitude: data.longitude || '',
4917
- phoneNumber: data.phoneNumber || ''
5060
+ phoneNumber: data.phoneNumber || '',
5061
+ userJobTitle: data.userJobTitle || '',
5062
+ yearsOfExperince: data.yearsOfExperince || '',
5063
+ industries: selectedIds
4918
5064
  });
4919
5065
  this.userForm.markAsPristine();
4920
5066
  this.userForm.markAsUntouched();
@@ -4924,6 +5070,10 @@ class RoleSelectionComponent {
4924
5070
  this.user.headshotFileId = data.headshotFileId;
4925
5071
  this.user.headshotUrl = data.headshotUrl;
4926
5072
  }
5073
+ if (this.user?.headshotUrl) {
5074
+ this.previewUrl = this.cloudfrontUrl + this.user.headshotUrl;
5075
+ console.log(this.previewUrl);
5076
+ }
4927
5077
  if (data.employeeType != null) {
4928
5078
  this.selectedJobValue = data.employeeType;
4929
5079
  this.initialJobValue = data.employeeType;
@@ -4932,6 +5082,9 @@ class RoleSelectionComponent {
4932
5082
  error: (err) => console.log('Error', err)
4933
5083
  });
4934
5084
  }
5085
+ onYearChange(group) {
5086
+ this.selectedTab = group;
5087
+ }
4935
5088
  hasChanges() {
4936
5089
  const formChanged = this.userForm.dirty;
4937
5090
  const jobChanged = this.selectedJobValue !== this.initialJobValue;
@@ -4976,8 +5129,7 @@ class RoleSelectionComponent {
4976
5129
  }
4977
5130
  }
4978
5131
  go() {
4979
- if (this.userForm.invalid)
4980
- return;
5132
+ // if (this.userForm.invalid) return;
4981
5133
  const saved = profileSignal();
4982
5134
  const hasExistingImage = saved?.userDetail?.headshotFileId || this.user?.headshotFileId;
4983
5135
  const hasNewImage = this.fileDataUser;
@@ -5025,6 +5177,8 @@ class RoleSelectionComponent {
5025
5177
  encrypted: true,
5026
5178
  publicUrl: uploaded.publicUrl
5027
5179
  };
5180
+ fileModel.fileLocation = fileModel.fileLocation.replace(/^https?:\/\/[^/]+\//, '');
5181
+ fileModel.publicUrl = fileModel.publicUrl.replace(/^https?:\/\/[^/]+\//, '');
5028
5182
  const response = await this.fileService.awsFileUpload([fileModel]).toPromise();
5029
5183
  const result = response?.[0];
5030
5184
  if (!result?.fileId) {
@@ -5033,6 +5187,10 @@ class RoleSelectionComponent {
5033
5187
  }
5034
5188
  this.user.headshotFileId = result.fileId;
5035
5189
  this.user.headshotUrl = result.publicUrl;
5190
+ if (this.user?.headshotUrl) {
5191
+ this.previewUrl = this.cloudfrontUrl + this.user.headshotUrl;
5192
+ console.log(this.previewUrl);
5193
+ }
5036
5194
  saveProfile({
5037
5195
  ...saved,
5038
5196
  userDetail: {
@@ -5044,7 +5202,6 @@ class RoleSelectionComponent {
5044
5202
  employeeType: this.selectedJobValue,
5045
5203
  submitted: true
5046
5204
  });
5047
- this.saveFinal();
5048
5205
  }
5049
5206
  catch (err) {
5050
5207
  console.error('Error uploading headshot:', err);
@@ -5053,6 +5210,16 @@ class RoleSelectionComponent {
5053
5210
  }
5054
5211
  saveFinal() {
5055
5212
  const saved = profileSignal();
5213
+ const hasExistingImage = saved?.userDetail?.headshotFileId || this.user?.headshotFileId;
5214
+ const hasNewImage = this.fileDataUser;
5215
+ if (!hasExistingImage && !hasNewImage) {
5216
+ this.isImageRequired = true;
5217
+ return;
5218
+ }
5219
+ if (!this.hasChanges()) {
5220
+ this.store.nextStep();
5221
+ return;
5222
+ }
5056
5223
  const model = {
5057
5224
  providerName: 'Inspector Match',
5058
5225
  employeeType: this.selectedJobValue,
@@ -5079,6 +5246,7 @@ class RoleSelectionComponent {
5079
5246
  this.userForm.markAsPristine();
5080
5247
  this.initialJobValue = this.selectedJobValue;
5081
5248
  this.fileDataUser = null;
5249
+ this.saveUserIndustries();
5082
5250
  this.store.nextStep();
5083
5251
  });
5084
5252
  }
@@ -5086,6 +5254,9 @@ class RoleSelectionComponent {
5086
5254
  const form = this.userForm.value;
5087
5255
  const saved = profileSignal();
5088
5256
  const now = this.formatDateTime(new Date());
5257
+ const jobTitleValues = UserJobTitlesList
5258
+ .filter(x => form.userJobTitle?.includes(x.value))
5259
+ .map(x => x.text);
5089
5260
  return {
5090
5261
  userBio: '',
5091
5262
  firstName: form.firstName,
@@ -5106,6 +5277,8 @@ class RoleSelectionComponent {
5106
5277
  isInitialSetupCompleted: false,
5107
5278
  id: this.userId,
5108
5279
  phoneNumber: form.phoneNumber,
5280
+ yearsOfExperince: Number(form.yearsOfExperince),
5281
+ userJobTitle: jobTitleValues,
5109
5282
  timeZone: 'Central Standard Time',
5110
5283
  datePattern: now.mmddyyyy,
5111
5284
  dateTimePattern: now.mmddyyyyhhmmtt,
@@ -5188,16 +5361,18 @@ class RoleSelectionComponent {
5188
5361
  });
5189
5362
  }
5190
5363
  }
5191
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RoleSelectionComponent, deps: [{ token: CredentialingStore }, { token: i2.Router }, { token: UserDetailService }, { token: FileService }, { token: i6.TokenService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
5192
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: RoleSelectionComponent, isStandalone: false, selector: "app-role-selection", inputs: { roleData: "roleData" }, outputs: { backToParent: "backToParent" }, ngImport: i0, template: "<div class=\"role-selection-container\">\r\n <h2>Basic Details</h2>\r\n <p class=\"note\">We need basic information's and headshot for your profile</p>\r\n <div class=\"profile-field\">\r\n <form [formGroup]=\"userForm\" class=\"form pb-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u?.firstName?.invalid && (u?.firstName?.touched || u?.firstName?.dirty) }\"\r\n type=\"text\" class=\"form-control\" placeholder=\"Fist Name\" formControlName=\"firstName\" id=\"firstName\">\r\n <div *ngIf=\" u?.firstName?.invalid &&\r\n (u?.firstName?.touched || u?.firstName?.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u?.firstName?.errors?.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Last Name\" formControlName=\"lastName\" id=\"lastName\"\r\n [ngClass]=\"{\r\n 'is-invalid':\r\n u.lastName.invalid && (u.lastName.touched || u.lastName.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.lastName.invalid &&\r\n (u.lastName.touched || u.lastName.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.lastName.errors?.required\">\r\n Last Name is required\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Email\" formControlName=\"email\" id=\"email\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.email.invalid && (u.email.touched || u.email.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.email.invalid &&\r\n (u.email.touched || u.email.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors?.required\">\r\n Email is required\r\n </div>\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors?.email\">\r\n Please enter a valid email address\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Home Address 1\" formControlName=\"address1\" id=\"address1\"\r\n ngx-google-places-autocomplete [options]=\"options\" (onAddressChange)=\"AddressChangeUser($event)\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.address1.invalid && (u.address1.touched || u.address1.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.address1.invalid &&\r\n (u.address1.touched || u.address1.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.address1.errors?.required\">\r\n Home Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"homeAddress2\" formControlName=\"address2\"\r\n placeholder=\"Home Address 2\" />\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"City\" placeholder=\"City\" formControlName=\"city\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.city.invalid && (u.city.touched || u.city.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.city.invalid &&\r\n (u.city.touched || u.city.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.city.errors?.required\">\r\n City is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.state.invalid && (u.state.touched || u.state.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.state.invalid &&\r\n (u.state.touched || u.state.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.state.errors?.required\">\r\n State is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\"\r\n [textMask]=\"{ mask: zipcodeMask }\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.zipcode.invalid && (u.zipcode.touched || u.zipcode.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.zipcode.invalid &&\r\n (u.zipcode.touched || u.zipcode.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.zipcode.errors?.required\">\r\n Zipcode is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\"\r\n [ngClass]=\"{\r\n 'is-invalid': u['country'].invalid && (u['country'].touched || u['country'].dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"u['country'].invalid && (u['country'].touched || u['country'].dirty)\">\r\n <div class=\"ms-1\" *ngIf=\"u['country'].errors?.['required']\">\r\n Country is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control block shadow-none\" id=\"inputPhone\" name=\"inputPhone\"\r\n placeholder=\"Phone Number\" autocomplete=\"off\" formControlName=\"phoneNumber\" maxlength=\"14\"\r\n (input)=\"phoneMask($event)\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.phoneNumber.invalid &&\r\n (u.phoneNumber.touched || u.phoneNumber.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.phoneNumber.invalid &&\r\n (u.phoneNumber.touched || u.phoneNumber.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.phoneNumber.errors?.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"form-group mb-2 mt-3 position-relative\">\r\n <input #uploadFile type=\"file\" accept=\"image/*\" (change)=\"uploadUserImage($event)\" class=\"d-none\" />\r\n <input [(ngModel)]=\"fileName\" readonly type=\"text\" class=\"form-control pe-5\" placeholder=\"Upload Profile Picture\"\r\n (click)=\"uploadFile.click()\" />\r\n <img src=\"assets/images/icons/upload.svg\" alt=\"Upload\" class=\"upload-icon\" (click)=\"uploadFile.click()\" />\r\n <div *ngIf=\"isImageRequired\" class=\"invalid-feedback d-block ms-1\">\r\n Please Upload Profile Image\r\n </div>\r\n </div>\r\n <div *ngIf=\"userError\" class=\"invalid-feedback\">\r\n <div>\r\n {{userError}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"producer-type-container\">\r\n <h2 class=\"mb-2\" style=\"margin-top: 50px;\">Type of jobs</h2>\r\n <p class=\"notes\">What type of job are you interested in</p>\r\n <div class=\"job-list\">\r\n <div class=\"job-item\" *ngFor=\"let job of jobTypes\" [class.selected]=\"isSelected(job)\" (click)=\"toggleJob(job)\">\r\n <span class=\"plus\">+</span> {{ job.text }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"onBackClick()\">Back</button>\r\n <div class=\"right-actions\">\r\n\r\n <button type=\"button\" class=\"primary\" [disabled]=\"showLoader || userForm.invalid\" [ng2-loading]=\"showLoader\" (click)=\"go()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".upload-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;cursor:pointer}::ng-deep .ng-select .ng-select-container{width:289%}.form-control{font-size:14px}.role-selection-container{max-width:950px;margin:0 auto;min-height:300px;padding:2rem}.role-selection-container h2{margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.role-selection-container .note{font-size:.875rem;color:#6b7280;margin-bottom:1rem}.role-selection-container .dropdown-wrapper{display:flex;gap:.5rem;margin-bottom:1rem}.role-selection-container .dropdown-wrapper select{flex:1;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem}.role-selection-container .dropdown-wrapper .add-btn{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border:none;border-radius:.375rem;cursor:pointer}.role-selection-container .dropdown-wrapper .add-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.role-selection-container .selected-roles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.role-selection-container .selected-roles .role-card{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-radius:.375rem;background-color:#fef3c7;color:#92400e}.role-selection-container .selected-roles .role-card .remove-btn{background:none;border:none;font-size:1.2rem;font-weight:700;cursor:pointer;color:#b91c1c}.role-selection-container .navigation-buttons{display:flex;justify-content:flex-end;gap:1rem;margin-top:70px;margin-bottom:50px}.role-selection-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer;min-width:18%;min-height:50px}.role-selection-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer;min-width:18%;min-height:50px}.role-selection-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px;width:550px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}.profile-field{margin-top:-10px}.profile-field input{line-height:30px;margin:-10px 3px 3px}.producer-type-container{max-width:1000px;margin:0 auto;min-height:300px}.producer-type-container h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.producer-type-container p{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.producer-type-container .job-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.producer-type-container .job-list .job-item{padding:.75rem 1rem;font-size:14px;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.producer-type-container .job-list .job-item.selected{border-color:#4077ad;background-color:#eff6ff}.producer-type-container .job-list .job-item .plus{font-weight:700}.producer-type-container .navigation-buttons{display:flex;justify-content:flex-end;gap:.5rem;margin:50px 0}.producer-type-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer}.producer-type-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer}.producer-type-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}.right-actions{display:flex;gap:16px}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border:none;font-size:14px;cursor:pointer;border-radius:5px}button.primary{background-color:#4077ad;color:#fff;border-radius:5px}button.secondary{background-color:#d5d6da;color:#525862;border-radius:5px}button:disabled{background-color:#9ca3af;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "directive", type: GooglePlaceDirective, selector: "[ngx-google-places-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "directive", type: MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }] });
5364
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RoleSelectComponent, deps: [{ token: CredentialingStore }, { token: i2.Router }, { token: IndustryService }, { token: UserDetailService }, { token: FileService }, { token: i6.TokenService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
5365
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: RoleSelectComponent, isStandalone: false, selector: "app-role-select", inputs: { roleData: "roleData", cloudfrontUrl: "cloudfrontUrl" }, outputs: { backToParent: "backToParent" }, ngImport: i0, template: "<div class=\"role-selection-container\">\r\n <h2>Basic Details</h2>\r\n <p class=\"note\">We need basic information and a headshot for your profile</p>\r\n <div class=\"profile-field\">\r\n <form [formGroup]=\"userForm\" class=\"form pb-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.firstName.invalid && (u.firstName.touched || u.firstName.dirty) }\"\r\n type=\"text\" class=\"form-control\" placeholder=\"Fist Name\" formControlName=\"firstName\" id=\"firstName\">\r\n <div *ngIf=\" u.firstName.invalid &&\r\n (u.firstName.touched || u.firstName.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.firstName.errors.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Last Name\" formControlName=\"lastName\" id=\"lastName\"\r\n [ngClass]=\"{\r\n 'is-invalid':\r\n u.lastName.invalid && (u.lastName.touched || u.lastName.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.lastName.invalid &&\r\n (u.lastName.touched || u.lastName.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.lastName.errors?.required\">\r\n Last Name is required\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Email\" formControlName=\"email\" id=\"email\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.email.invalid && (u.email.touched || u.email.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.email.invalid &&\r\n (u.email.touched || u.email.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors?.required\">\r\n Email is required\r\n </div>\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors?.email\">\r\n Please enter a valid email address\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Home Address 1\" formControlName=\"address1\" id=\"address1\"\r\n ngx-google-places-autocomplete [options]=\"options\" (onAddressChange)=\"AddressChangeUser($event)\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.address1.invalid && (u.address1.touched || u.address1.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.address1.invalid &&\r\n (u.address1.touched || u.address1.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.address1.errors?.required\">\r\n Home Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"homeAddress2\" formControlName=\"address2\"\r\n placeholder=\"Home Address 2\" />\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"City\" placeholder=\"City\" formControlName=\"city\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.city.invalid && (u.city.touched || u.city.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.city.invalid &&\r\n (u.city.touched || u.city.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.city.errors?.required\">\r\n City is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.state.invalid && (u.state.touched || u.state.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.state.invalid &&\r\n (u.state.touched || u.state.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.state.errors?.required\">\r\n State is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\"\r\n [textMask]=\"{ mask: zipcodeMask }\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.zipcode.invalid && (u.zipcode.touched || u.zipcode.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.zipcode.invalid &&\r\n (u.zipcode.touched || u.zipcode.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.zipcode.errors?.required\">\r\n Zipcode is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\"\r\n [ngClass]=\"{\r\n 'is-invalid':\r\n u.country.invalid && (u.country.touched || u.country.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.country.invalid &&\r\n (u.country.touched || u.country.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.country.errors?.required\">\r\n Country is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control block shadow-none\" id=\"inputPhone\" name=\"inputPhone\"\r\n placeholder=\"Phone Number\" autocomplete=\"off\" formControlName=\"phoneNumber\" maxlength=\"14\"\r\n (input)=\"phoneMask($event)\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.phoneNumber.invalid &&\r\n (u.phoneNumber.touched || u.phoneNumber.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.phoneNumber.invalid &&\r\n (u.phoneNumber.touched || u.phoneNumber.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.phoneNumber.errors?.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12\r\n mt-3 mb-2\">\r\n <ng-select class=\"w-100\" [items]=\"jobTitles\" bindLabel=\"text\" bindValue=\"value\" [multiple]=\"true\"\r\n [searchable]=\"false\" [clearable]=\"false\" [ngClass]=\"{ 'is-invalid':u?.userJobTitle?.errors }\"\r\n id=\"userJobTitle\" [closeOnSelect]=\"false\" placeholder=\"Select Job Titles\" formControlName=\"userJobTitle\">\r\n </ng-select>\r\n <div *ngIf=\" u.userJobTitle.invalid &&\r\n (u.userJobTitle.touched || u.userJobTitle.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.userJobTitle.errors.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [searchable]=\"false\" [clearable]=\"false\" bindLabel=\"text\"\r\n formControlName=\"yearsOfExperince\" [ngClass]=\"{ 'is-invalid':u?.yearsOfExperince?.errors }\"\r\n bindValue=\"value\" [closeOnSelect]=\"true\" placeholder=\"Years of experience\"\r\n id=\"yearsOfExperince\"></ng-select>\r\n\r\n <div *ngIf=\" u.yearsOfExperince.invalid &&\r\n (u.yearsOfExperince.touched || u.yearsOfExperince.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.yearsOfExperince.errors.required\">\r\n YearsOfExperience is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <ng-select class=\"w-100\" formControlName=\"industries\" [items]=\"industries\" [multiple]=\"true\"\r\n [searchable]=\"false\" [clearable]=\"true\" [ngClass]=\"{ 'is-invalid':u?.industries?.errors }\"\r\n bindLabel=\"industryName\" bindValue=\"id\" [closeOnSelect]=\"false\" id=\"industries\"\r\n placeholder=\"Select Industry\" [loading]=\"isIndustriesLoading\">\r\n\r\n <!-- Dropdown option -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <span class=\"form-check\">\r\n <span class=\"form-check-input-wrapper\">\r\n <span class=\"custom-checkbox1\" [class.checked]=\"item$.selected\"></span>\r\n </span>\r\n {{ item.industryName }}\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Selected label -->\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">{{ item.industryName }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" />\r\n </span>\r\n </ng-template>\r\n <div *ngIf=\"u.industries.invalid &&\r\n (u.industries.touched || u.industries.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.industries.errors.required\">\r\n Industry is required\r\n </div>\r\n </div>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n\r\n <div class=\"form-group mb-2 mt-3 position-relative\">\r\n <input #uploadFile type=\"file\" accept=\"image/*\" (change)=\"uploadUserImage($event)\" class=\"d-none\" />\r\n <input [(ngModel)]=\"fileName\" readonly type=\"text\" class=\"form-control pe-5\"\r\n placeholder=\"Upload Profile Picture\" (click)=\"uploadFile.click()\" />\r\n <img src=\"assets/images/icons/upload.svg\" alt=\"Upload\" class=\"upload-icon\" (click)=\"uploadFile.click()\" />\r\n <img *ngIf=\"previewUrl\" [src]=\"previewUrl\" alt=\"Profile Preview\" class=\"preview-image mt-2\" />\r\n <div *ngIf=\"isImageRequired\" class=\"invalid-feedback d-block ms-1\">\r\n Please Upload Profile Image\r\n </div>\r\n </div>\r\n <div *ngIf=\"userError\" class=\"invalid-feedback\">\r\n <div>\r\n {{userError}}\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"producer-type-container\">\r\n <h2 class=\"mb-2\" style=\"margin-top: 50px;\">Type of jobs</h2>\r\n <p class=\"notes\">What type of job are you interested in</p>\r\n <div class=\"job-list\">\r\n <div class=\"job-item\" *ngFor=\"let job of jobTypes\" [class.selected]=\"isSelected(job)\" (click)=\"toggleJob(job)\">\r\n <span class=\"plus\">+</span> {{ job.text }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"onBackClick()\">Back</button>\r\n <div class=\"right-actions\">\r\n\r\n <button type=\"button\" class=\"primary\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\" (click)=\"saveFinal()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".preview-image{width:250px;height:100px;object-fit:contain;margin-top:5px;border-radius:5px}.upload-icon{position:absolute;right:25px;top:12px;width:20px;height:20px;cursor:pointer}::ng-deep .ng-select .ng-select-container{width:101%}.form-control{font-size:14px}.role-selection-container{max-width:950px;margin:0 auto;min-height:300px;padding:2rem}.role-selection-container h2{margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.role-selection-container .note{font-size:.875rem;color:#6b7280;margin-bottom:1rem}.role-selection-container .dropdown-wrapper{display:flex;gap:.5rem;margin-bottom:1rem}.role-selection-container .dropdown-wrapper select{flex:1;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem}.role-selection-container .dropdown-wrapper .add-btn{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border:none;border-radius:.375rem;cursor:pointer}.role-selection-container .dropdown-wrapper .add-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.role-selection-container .selected-roles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.role-selection-container .selected-roles .role-card{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-radius:.375rem;background-color:#fef3c7;color:#92400e}.role-selection-container .selected-roles .role-card .remove-btn{background:none;border:none;font-size:1.2rem;font-weight:700;cursor:pointer;color:#b91c1c}.role-selection-container .navigation-buttons{display:flex;justify-content:flex-end;gap:1rem;margin-top:70px;margin-bottom:50px}.role-selection-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer;min-width:18%;min-height:50px}.role-selection-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer;min-width:18%;min-height:50px}.role-selection-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}::ng-deep .ng-select .ng-select-container{height:45px;border-radius:7px;padding-top:0}ng-select.ng-select-multiple .ng-value-container{align-items:center!important}ng-select.ng-select-multiple .ng-placeholder{position:absolute;top:50%;transform:translateY(-50%);color:#000;font-size:14px;padding-left:2px;padding-top:3px}.profile-field{margin-top:-10px}.profile-field input{line-height:30px;margin:-10px 3px 3px}.producer-type-container{max-width:1000px;margin:0 auto;min-height:300px}.producer-type-container h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.producer-type-container p{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.producer-type-container .job-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.producer-type-container .job-list .job-item{padding:.75rem 1rem;font-size:14px;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.producer-type-container .job-list .job-item.selected{border-color:#4077ad;background-color:#eff6ff}.producer-type-container .job-list .job-item .plus{font-weight:700}.producer-type-container .navigation-buttons{display:flex;justify-content:flex-end;gap:.5rem;margin:50px 0}.producer-type-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer}.producer-type-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer}.producer-type-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}.right-actions{display:flex;gap:16px}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border:none;font-size:14px;cursor:pointer;border-radius:5px}button.primary{background-color:#4077ad;color:#fff;border-radius:5px}button.secondary{background-color:#d5d6da;color:#525862;border-radius:5px}button:disabled{background-color:#9ca3af;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "directive", type: GooglePlaceDirective, selector: "[ngx-google-places-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "directive", type: MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }] });
5193
5366
  }
5194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RoleSelectionComponent, decorators: [{
5367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RoleSelectComponent, decorators: [{
5195
5368
  type: Component,
5196
- args: [{ selector: 'app-role-selection', standalone: false, template: "<div class=\"role-selection-container\">\r\n <h2>Basic Details</h2>\r\n <p class=\"note\">We need basic information's and headshot for your profile</p>\r\n <div class=\"profile-field\">\r\n <form [formGroup]=\"userForm\" class=\"form pb-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u?.firstName?.invalid && (u?.firstName?.touched || u?.firstName?.dirty) }\"\r\n type=\"text\" class=\"form-control\" placeholder=\"Fist Name\" formControlName=\"firstName\" id=\"firstName\">\r\n <div *ngIf=\" u?.firstName?.invalid &&\r\n (u?.firstName?.touched || u?.firstName?.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u?.firstName?.errors?.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Last Name\" formControlName=\"lastName\" id=\"lastName\"\r\n [ngClass]=\"{\r\n 'is-invalid':\r\n u.lastName.invalid && (u.lastName.touched || u.lastName.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.lastName.invalid &&\r\n (u.lastName.touched || u.lastName.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.lastName.errors?.required\">\r\n Last Name is required\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Email\" formControlName=\"email\" id=\"email\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.email.invalid && (u.email.touched || u.email.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.email.invalid &&\r\n (u.email.touched || u.email.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors?.required\">\r\n Email is required\r\n </div>\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors?.email\">\r\n Please enter a valid email address\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Home Address 1\" formControlName=\"address1\" id=\"address1\"\r\n ngx-google-places-autocomplete [options]=\"options\" (onAddressChange)=\"AddressChangeUser($event)\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.address1.invalid && (u.address1.touched || u.address1.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.address1.invalid &&\r\n (u.address1.touched || u.address1.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.address1.errors?.required\">\r\n Home Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"homeAddress2\" formControlName=\"address2\"\r\n placeholder=\"Home Address 2\" />\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"City\" placeholder=\"City\" formControlName=\"city\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.city.invalid && (u.city.touched || u.city.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.city.invalid &&\r\n (u.city.touched || u.city.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.city.errors?.required\">\r\n City is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.state.invalid && (u.state.touched || u.state.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.state.invalid &&\r\n (u.state.touched || u.state.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.state.errors?.required\">\r\n State is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\"\r\n [textMask]=\"{ mask: zipcodeMask }\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.zipcode.invalid && (u.zipcode.touched || u.zipcode.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.zipcode.invalid &&\r\n (u.zipcode.touched || u.zipcode.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.zipcode.errors?.required\">\r\n Zipcode is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\"\r\n [ngClass]=\"{\r\n 'is-invalid': u['country'].invalid && (u['country'].touched || u['country'].dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"u['country'].invalid && (u['country'].touched || u['country'].dirty)\">\r\n <div class=\"ms-1\" *ngIf=\"u['country'].errors?.['required']\">\r\n Country is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control block shadow-none\" id=\"inputPhone\" name=\"inputPhone\"\r\n placeholder=\"Phone Number\" autocomplete=\"off\" formControlName=\"phoneNumber\" maxlength=\"14\"\r\n (input)=\"phoneMask($event)\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.phoneNumber.invalid &&\r\n (u.phoneNumber.touched || u.phoneNumber.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.phoneNumber.invalid &&\r\n (u.phoneNumber.touched || u.phoneNumber.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.phoneNumber.errors?.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"form-group mb-2 mt-3 position-relative\">\r\n <input #uploadFile type=\"file\" accept=\"image/*\" (change)=\"uploadUserImage($event)\" class=\"d-none\" />\r\n <input [(ngModel)]=\"fileName\" readonly type=\"text\" class=\"form-control pe-5\" placeholder=\"Upload Profile Picture\"\r\n (click)=\"uploadFile.click()\" />\r\n <img src=\"assets/images/icons/upload.svg\" alt=\"Upload\" class=\"upload-icon\" (click)=\"uploadFile.click()\" />\r\n <div *ngIf=\"isImageRequired\" class=\"invalid-feedback d-block ms-1\">\r\n Please Upload Profile Image\r\n </div>\r\n </div>\r\n <div *ngIf=\"userError\" class=\"invalid-feedback\">\r\n <div>\r\n {{userError}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"producer-type-container\">\r\n <h2 class=\"mb-2\" style=\"margin-top: 50px;\">Type of jobs</h2>\r\n <p class=\"notes\">What type of job are you interested in</p>\r\n <div class=\"job-list\">\r\n <div class=\"job-item\" *ngFor=\"let job of jobTypes\" [class.selected]=\"isSelected(job)\" (click)=\"toggleJob(job)\">\r\n <span class=\"plus\">+</span> {{ job.text }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"onBackClick()\">Back</button>\r\n <div class=\"right-actions\">\r\n\r\n <button type=\"button\" class=\"primary\" [disabled]=\"showLoader || userForm.invalid\" [ng2-loading]=\"showLoader\" (click)=\"go()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".upload-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;cursor:pointer}::ng-deep .ng-select .ng-select-container{width:289%}.form-control{font-size:14px}.role-selection-container{max-width:950px;margin:0 auto;min-height:300px;padding:2rem}.role-selection-container h2{margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.role-selection-container .note{font-size:.875rem;color:#6b7280;margin-bottom:1rem}.role-selection-container .dropdown-wrapper{display:flex;gap:.5rem;margin-bottom:1rem}.role-selection-container .dropdown-wrapper select{flex:1;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem}.role-selection-container .dropdown-wrapper .add-btn{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border:none;border-radius:.375rem;cursor:pointer}.role-selection-container .dropdown-wrapper .add-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.role-selection-container .selected-roles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.role-selection-container .selected-roles .role-card{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-radius:.375rem;background-color:#fef3c7;color:#92400e}.role-selection-container .selected-roles .role-card .remove-btn{background:none;border:none;font-size:1.2rem;font-weight:700;cursor:pointer;color:#b91c1c}.role-selection-container .navigation-buttons{display:flex;justify-content:flex-end;gap:1rem;margin-top:70px;margin-bottom:50px}.role-selection-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer;min-width:18%;min-height:50px}.role-selection-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer;min-width:18%;min-height:50px}.role-selection-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px;width:550px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}.profile-field{margin-top:-10px}.profile-field input{line-height:30px;margin:-10px 3px 3px}.producer-type-container{max-width:1000px;margin:0 auto;min-height:300px}.producer-type-container h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.producer-type-container p{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.producer-type-container .job-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.producer-type-container .job-list .job-item{padding:.75rem 1rem;font-size:14px;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.producer-type-container .job-list .job-item.selected{border-color:#4077ad;background-color:#eff6ff}.producer-type-container .job-list .job-item .plus{font-weight:700}.producer-type-container .navigation-buttons{display:flex;justify-content:flex-end;gap:.5rem;margin:50px 0}.producer-type-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer}.producer-type-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer}.producer-type-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}.right-actions{display:flex;gap:16px}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border:none;font-size:14px;cursor:pointer;border-radius:5px}button.primary{background-color:#4077ad;color:#fff;border-radius:5px}button.secondary{background-color:#d5d6da;color:#525862;border-radius:5px}button:disabled{background-color:#9ca3af;cursor:not-allowed}\n"] }]
5197
- }], ctorParameters: () => [{ type: CredentialingStore }, { type: i2.Router }, { type: UserDetailService }, { type: FileService }, { type: i6.TokenService }, { type: i3.FormBuilder }], propDecorators: { backToParent: [{
5369
+ args: [{ selector: 'app-role-select', standalone: false, template: "<div class=\"role-selection-container\">\r\n <h2>Basic Details</h2>\r\n <p class=\"note\">We need basic information and a headshot for your profile</p>\r\n <div class=\"profile-field\">\r\n <form [formGroup]=\"userForm\" class=\"form pb-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.firstName.invalid && (u.firstName.touched || u.firstName.dirty) }\"\r\n type=\"text\" class=\"form-control\" placeholder=\"Fist Name\" formControlName=\"firstName\" id=\"firstName\">\r\n <div *ngIf=\" u.firstName.invalid &&\r\n (u.firstName.touched || u.firstName.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.firstName.errors.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Last Name\" formControlName=\"lastName\" id=\"lastName\"\r\n [ngClass]=\"{\r\n 'is-invalid':\r\n u.lastName.invalid && (u.lastName.touched || u.lastName.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.lastName.invalid &&\r\n (u.lastName.touched || u.lastName.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.lastName.errors?.required\">\r\n Last Name is required\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Email\" formControlName=\"email\" id=\"email\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.email.invalid && (u.email.touched || u.email.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.email.invalid &&\r\n (u.email.touched || u.email.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors?.required\">\r\n Email is required\r\n </div>\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors?.email\">\r\n Please enter a valid email address\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Home Address 1\" formControlName=\"address1\" id=\"address1\"\r\n ngx-google-places-autocomplete [options]=\"options\" (onAddressChange)=\"AddressChangeUser($event)\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.address1.invalid && (u.address1.touched || u.address1.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.address1.invalid &&\r\n (u.address1.touched || u.address1.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.address1.errors?.required\">\r\n Home Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"homeAddress2\" formControlName=\"address2\"\r\n placeholder=\"Home Address 2\" />\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"City\" placeholder=\"City\" formControlName=\"city\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.city.invalid && (u.city.touched || u.city.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.city.invalid &&\r\n (u.city.touched || u.city.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.city.errors?.required\">\r\n City is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.state.invalid && (u.state.touched || u.state.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.state.invalid &&\r\n (u.state.touched || u.state.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.state.errors?.required\">\r\n State is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\"\r\n [textMask]=\"{ mask: zipcodeMask }\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.zipcode.invalid && (u.zipcode.touched || u.zipcode.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.zipcode.invalid &&\r\n (u.zipcode.touched || u.zipcode.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.zipcode.errors?.required\">\r\n Zipcode is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\"\r\n [ngClass]=\"{\r\n 'is-invalid':\r\n u.country.invalid && (u.country.touched || u.country.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.country.invalid &&\r\n (u.country.touched || u.country.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.country.errors?.required\">\r\n Country is required\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control block shadow-none\" id=\"inputPhone\" name=\"inputPhone\"\r\n placeholder=\"Phone Number\" autocomplete=\"off\" formControlName=\"phoneNumber\" maxlength=\"14\"\r\n (input)=\"phoneMask($event)\" [ngClass]=\"{\r\n 'is-invalid':\r\n u.phoneNumber.invalid &&\r\n (u.phoneNumber.touched || u.phoneNumber.dirty)\r\n }\" />\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"\r\n u.phoneNumber.invalid &&\r\n (u.phoneNumber.touched || u.phoneNumber.dirty)\r\n \">\r\n <div class=\"ms-1\" *ngIf=\"u.phoneNumber.errors?.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12\r\n mt-3 mb-2\">\r\n <ng-select class=\"w-100\" [items]=\"jobTitles\" bindLabel=\"text\" bindValue=\"value\" [multiple]=\"true\"\r\n [searchable]=\"false\" [clearable]=\"false\" [ngClass]=\"{ 'is-invalid':u?.userJobTitle?.errors }\"\r\n id=\"userJobTitle\" [closeOnSelect]=\"false\" placeholder=\"Select Job Titles\" formControlName=\"userJobTitle\">\r\n </ng-select>\r\n <div *ngIf=\" u.userJobTitle.invalid &&\r\n (u.userJobTitle.touched || u.userJobTitle.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.userJobTitle.errors.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <ng-select class=\"w-100\" [items]=\"expYears\" [searchable]=\"false\" [clearable]=\"false\" bindLabel=\"text\"\r\n formControlName=\"yearsOfExperince\" [ngClass]=\"{ 'is-invalid':u?.yearsOfExperince?.errors }\"\r\n bindValue=\"value\" [closeOnSelect]=\"true\" placeholder=\"Years of experience\"\r\n id=\"yearsOfExperince\"></ng-select>\r\n\r\n <div *ngIf=\" u.yearsOfExperince.invalid &&\r\n (u.yearsOfExperince.touched || u.yearsOfExperince.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.yearsOfExperince.errors.required\">\r\n YearsOfExperience is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <ng-select class=\"w-100\" formControlName=\"industries\" [items]=\"industries\" [multiple]=\"true\"\r\n [searchable]=\"false\" [clearable]=\"true\" [ngClass]=\"{ 'is-invalid':u?.industries?.errors }\"\r\n bindLabel=\"industryName\" bindValue=\"id\" [closeOnSelect]=\"false\" id=\"industries\"\r\n placeholder=\"Select Industry\" [loading]=\"isIndustriesLoading\">\r\n\r\n <!-- Dropdown option -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <span class=\"form-check\">\r\n <span class=\"form-check-input-wrapper\">\r\n <span class=\"custom-checkbox1\" [class.checked]=\"item$.selected\"></span>\r\n </span>\r\n {{ item.industryName }}\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Selected label -->\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">{{ item.industryName }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" />\r\n </span>\r\n </ng-template>\r\n <div *ngIf=\"u.industries.invalid &&\r\n (u.industries.touched || u.industries.dirty)\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.industries.errors.required\">\r\n Industry is required\r\n </div>\r\n </div>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n\r\n <div class=\"form-group mb-2 mt-3 position-relative\">\r\n <input #uploadFile type=\"file\" accept=\"image/*\" (change)=\"uploadUserImage($event)\" class=\"d-none\" />\r\n <input [(ngModel)]=\"fileName\" readonly type=\"text\" class=\"form-control pe-5\"\r\n placeholder=\"Upload Profile Picture\" (click)=\"uploadFile.click()\" />\r\n <img src=\"assets/images/icons/upload.svg\" alt=\"Upload\" class=\"upload-icon\" (click)=\"uploadFile.click()\" />\r\n <img *ngIf=\"previewUrl\" [src]=\"previewUrl\" alt=\"Profile Preview\" class=\"preview-image mt-2\" />\r\n <div *ngIf=\"isImageRequired\" class=\"invalid-feedback d-block ms-1\">\r\n Please Upload Profile Image\r\n </div>\r\n </div>\r\n <div *ngIf=\"userError\" class=\"invalid-feedback\">\r\n <div>\r\n {{userError}}\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"producer-type-container\">\r\n <h2 class=\"mb-2\" style=\"margin-top: 50px;\">Type of jobs</h2>\r\n <p class=\"notes\">What type of job are you interested in</p>\r\n <div class=\"job-list\">\r\n <div class=\"job-item\" *ngFor=\"let job of jobTypes\" [class.selected]=\"isSelected(job)\" (click)=\"toggleJob(job)\">\r\n <span class=\"plus\">+</span> {{ job.text }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"onBackClick()\">Back</button>\r\n <div class=\"right-actions\">\r\n\r\n <button type=\"button\" class=\"primary\" [disabled]=\"showLoader\" [ng2-loading]=\"showLoader\" (click)=\"saveFinal()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".preview-image{width:250px;height:100px;object-fit:contain;margin-top:5px;border-radius:5px}.upload-icon{position:absolute;right:25px;top:12px;width:20px;height:20px;cursor:pointer}::ng-deep .ng-select .ng-select-container{width:101%}.form-control{font-size:14px}.role-selection-container{max-width:950px;margin:0 auto;min-height:300px;padding:2rem}.role-selection-container h2{margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.role-selection-container .note{font-size:.875rem;color:#6b7280;margin-bottom:1rem}.role-selection-container .dropdown-wrapper{display:flex;gap:.5rem;margin-bottom:1rem}.role-selection-container .dropdown-wrapper select{flex:1;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem}.role-selection-container .dropdown-wrapper .add-btn{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border:none;border-radius:.375rem;cursor:pointer}.role-selection-container .dropdown-wrapper .add-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.role-selection-container .selected-roles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.role-selection-container .selected-roles .role-card{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-radius:.375rem;background-color:#fef3c7;color:#92400e}.role-selection-container .selected-roles .role-card .remove-btn{background:none;border:none;font-size:1.2rem;font-weight:700;cursor:pointer;color:#b91c1c}.role-selection-container .navigation-buttons{display:flex;justify-content:flex-end;gap:1rem;margin-top:70px;margin-bottom:50px}.role-selection-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer;min-width:18%;min-height:50px}.role-selection-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer;min-width:18%;min-height:50px}.role-selection-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}::ng-deep .ng-select .ng-select-container{height:45px;border-radius:7px;padding-top:0}ng-select.ng-select-multiple .ng-value-container{align-items:center!important}ng-select.ng-select-multiple .ng-placeholder{position:absolute;top:50%;transform:translateY(-50%);color:#000;font-size:14px;padding-left:2px;padding-top:3px}.profile-field{margin-top:-10px}.profile-field input{line-height:30px;margin:-10px 3px 3px}.producer-type-container{max-width:1000px;margin:0 auto;min-height:300px}.producer-type-container h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.producer-type-container p{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.producer-type-container .job-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.producer-type-container .job-list .job-item{padding:.75rem 1rem;font-size:14px;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.producer-type-container .job-list .job-item.selected{border-color:#4077ad;background-color:#eff6ff}.producer-type-container .job-list .job-item .plus{font-weight:700}.producer-type-container .navigation-buttons{display:flex;justify-content:flex-end;gap:.5rem;margin:50px 0}.producer-type-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer}.producer-type-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer}.producer-type-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}.right-actions{display:flex;gap:16px}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border:none;font-size:14px;cursor:pointer;border-radius:5px}button.primary{background-color:#4077ad;color:#fff;border-radius:5px}button.secondary{background-color:#d5d6da;color:#525862;border-radius:5px}button:disabled{background-color:#9ca3af;cursor:not-allowed}\n"] }]
5370
+ }], ctorParameters: () => [{ type: CredentialingStore }, { type: i2.Router }, { type: IndustryService }, { type: UserDetailService }, { type: FileService }, { type: i6.TokenService }, { type: i3.FormBuilder }], propDecorators: { backToParent: [{
5198
5371
  type: Output
5199
5372
  }], roleData: [{
5200
5373
  type: Input
5374
+ }], cloudfrontUrl: [{
5375
+ type: Input
5201
5376
  }] } });
5202
5377
 
5203
5378
  class UsMapService {
@@ -27410,7 +27585,7 @@ class UsMapComponent {
27410
27585
  }
27411
27586
  }
27412
27587
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UsMapComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: UsMapService }], target: i0.ɵɵFactoryTarget.Component });
27413
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: UsMapComponent, isStandalone: false, selector: "us-map", inputs: { selectedStates: "selectedStates", allowedStates: "allowedStates", isReadOnly: "isReadOnly", filteredLocations: "filteredLocations" }, outputs: { click: "onMapClick" }, usesOnChanges: true, ngImport: i0, template: "<style>\r\n #counties {\r\n fill: #d0d0d0;\r\n stroke: #000;\r\n stroke-width: .17829;\r\n }\r\n\r\n #borders {\r\n fill: none;\r\n stroke: #221e1f;\r\n stroke-width: .89143;\r\n }\r\n\r\n #separator {\r\n fill: none;\r\n stroke: #a9a9a9;\r\n stroke-width: 2.3177309;\r\n }\r\n</style>\r\n<svg *ngIf=\"allCoordinates!=null\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 600\">\r\n <path *ngFor=\"let coordinate of allCoordinates.locations; let i = index\" [attr.id]=\"coordinate.id\"\r\n [attr.d]=\"coordinate.path\" [attr.fill]=\"coordinate.fillColor\" [attr.stroke]=\"coordinate.strokeColor\"></path>\r\n\r\n <path id=\"borders\"\r\n d=\"m218.14 190.73-4.0008-0.788-3.6157-0.715-4.4037-0.997-2.5156-0.506-2.0806-0.328-24.5-5.201-1.9291-0.442-6.4932-1.487-0.12836-0.05-19.43-4.418-9.6186-2.211-9.0231-2.275-0.58835-0.151-10.533-2.683m298.16 94.021-0.60261 9.927-7e-3 0.134-0.59548 10.069-0.11232 1.995-0.49029 8.084-0.12837 1.902-0.49742 8.013-9e-3 0.144-0.72385 12.125-0.12836 2.177-0.3851 5.898-0.58657 9.162-5.6963-0.401-9.451-0.779-2.307-0.178-1.5261-0.113-16.754-1.246-13.161-1.1-4.8708-0.448-2.8044-0.315-1.1892-0.114-9.032-0.915-5.2238-0.538-8.5168-0.876-2.5548-0.274-4.582-0.505-2.3445-0.451-7.6111-0.9-1.1-0.136-16.24-2.032-12.029-1.608-17.253-2.452-5.9548-0.9-2.94-0.58-4.6052-0.697-11.933-1.872-20.257-3.414-6.4451-1.143-20.635-3.84m122.22 140.38-1.5101-1.615-0.18542-0.249-0.35272-0.42662-8e-3 -0.26999-0.091-0.33842 0.40028-0.3547 0.14838-1.2071-0.35526-0.11628 0.0311-0.40265 0.39485-0.19134 0.78818 0.0621 4.2272 0.447 7.3276 0.772 20.885 2.131 1.3675 0.128 15.95 1.43 0.85934 0.07 4.9813 0.408 7.6913 0.603 1.141 0.09 1.0038 0.07 1.3675 0.106 1.0911 0.09 0.47603 0.03 0.15154-1.993 0.7399-10.006 0.74702-10.05 0.8843-9.868 0.39402-4.195 0.52951-5.841 0.8843-11.009 0.0161-0.241 0.77198-10.021 0.35301-4.766 0.40114-5.286 0.76307-10.139 0.2086-2.694 0.54734-7.298 0.43502-6.074 0.27991-3.705 0.75594-0.449 0.85043-11.547m120.05-122.47 0.57765 0.04 0.22464 0.09 0.17829 0.248 0.0713 0.265 7e-3 0.355-0.11945 0.319 0.19968 2.646 0.51525 0.965-0.21038 1.422 1.4067 3.889 2.2589 4.195 0.30487 4.243 2.3962 4.065 0.74702 2.635 0.25674 4.677 1.2052 0.724-0.23356 2.619 0.76485 3.358-0.54021 2.732 1.5511 4.598 0.97166 1.414 0.22643-0.491 0.65075 0.578-0.37797 0.676-0.19968 0.185 0.0963 0.408 1.1321 2.846 1.2141 1.182 0.0463 0.119-5e-3 0.04v0.03l-0.0178 0.417v0.06l4.2985 6.044 9e-3 0.216 0.11232 0.162 2.1216 1.92 0.85935 0.553 0.43324 0.16 0.33696 0.128 0.0642 0.02h0.0802l0.66858-0.06 0.13015-0.05 0.1034-0.1 0.0143-0.02 0.60261-0.683 1.4709 1.849 0.14442 0.683 0.13728 0.634-0.36906 0.822-0.37083 0.06-1.2694 1.124-0.0713 0.08-0.6044 0.882-0.20859 0.298-0.6971 2.097 2.3855 2.624 3.1664 5.017 3.3999 0.907-0.082 1.079 0.025 1.606 0.0571 4.565 7e-3 2.522 0.025 6.044 0.0232 2.058 0.0963 7.614 9e-3 0.541 0.0553 8.429 7e-3 0.451 0.10518 6.707 7e-3 0.603 0.0874 6.525 0.0178 1.359 0.0731 5.359 0.0392 2.291 0.0553 3.903 1.1339 7.803 0.21751 1.377 1.2141 7.921 0.4261 2.788 0.84152 5.554-7e-3 0.403-0.11232 10.341-0.0481 4.747-0.0392 5.121-0.0571 7.343-0.041 5.761-0.0463 7.001m34.383-303.16-0.082 0.06-0.22285-0.1-0.91462-0.893-0.42789 0.03-1.1232 0.765-0.0892 0.183-0.016 0.17 0.0553 0.144 0.0802 0.105 0.016 0.02 0.016 0.257-0.21573 0.563-0.0731 0.07-0.0784 0.05-0.47603 0.03-0.44215-0.04-0.36014-0.25 0.20859 5.632 0.21573 5.964 0.041 0.996 0.0321 0.901-2.3391 1.46-3.3482 2.204-0.79872 0.698-0.20147 0.266-0.19968 0.36-1.6135 3.231-0.65432 2-0.0214 0.364 7e-3 0.151 0.041 0.61 0.0553 0.451 0.21751 0.168 0.77199 0.13 0.32091-0.05 1.2712 0.685 0.79338 1.501 0.32091 1.624-0.60974 1.558-0.42789 0.53-0.0214 0.02-0.19433 0.176-0.24782 2.001-0.33875 3.029 0.0499 0.756 0.39936 0.852 0.34945 1.615-0.1248 1.735-0.56874 2.717 1.166 0.674 1.6937 1.439 0.17651 0.224 0.041 0.225 1.1892 1.182 0.25851 0.119 0.69889 0.08 2.209 0.09 0.28169 0.06 0.18542 0.09 0.15867 0.137 0.0571 0.09 0.0907 1.0972 1.2126 0.84785 2.6351 1.004 1.8087 0.86839 0.88464 0.84954-0.0206 0.51007-0.10888 0.35855 0.38146 0.33967 0.34375 1.2638 0.24945 0.52827 5.2369 3.7568 2.5868 0.74896 2.4015 3.054 0.40293 2.78 1.1 5.151 0.28882 1.775-0.016 1.182 1.7846 1.255 0.38688 0.491 0.50456 0.811-0.0642 0.287-1.2837 2.163-0.43681 1.695 0.35658 2.186 0.37618 1.758 1.535 3.409 0.2086 0.433 1.3568 0.9 0.46712 0.216 0.8843 0.21 2.1769 0.418 0.8433 0.201 0.19255 0.1 0.12124 0.121 1.0697 1.945 0.18363 0.579 0.0107 0.13-0.0642 0.111 3.6139-0.178 8.4294-0.491 1.503-0.09 7.3508-0.38 0.60261-0.04 7.1778-0.394 2.7634-0.184 1.166-0.08 6.7802-0.563 1.7526-0.177 6.7357-0.465m-47.875 3.036-0.23534 0.403-7e-3 0.05 0.016 0.129 0.0392 0.116 0.13728 0.142 0.39223 0.282 1.1357 0.587 1.4441 1.005h7e-3l0.0428 0.04 1.0109 1.172 0.0481 0.07 9e-3 0.09-0.0963 0.651-0.0963 0.215v0.146l0.23534 0.53 0.0125 0.03 0.48316 0.603 0.016 0.01 0.29061 0.233 0.312 0.202 0.7078 0.226 2.972 3.541 0.18542 2.405-1.3265 3.437-1.2052 1.352-0.26565 2.505-0.89143 1.198-1.0198 1.189-3.2466 1.608-1.3835 0.353-0.58656 0.02-0.24782-0.03h-1.0519l-2.4104 0.658-0.6454 0.234-0.18364 0.119h-0.016l-0.12124 0.171-0.016 0.05-0.23891 0.982-0.20325 0.792-0.49029 1.966 0.025 0.207 1.1642 1.4 0.54912 0.272 0.22999-0.03 0.13907 0.06 0.14619 0.152 0.80942 1.326-0.016 0.555 0.016 0.06 0.0642 0.2 0.0874 0.62-0.0695 1.872-0.1462 0.683-0.0963 0.144-0.49742 0.282-0.18542 0.182-1.3425 1.915-0.0642 0.297-0.11945 2.603-1.207 1.416-0.56161 0.01-0.45819 0.03h-0.14442l-0.93422 0.335-0.10341 0.06-0.43502 0.248-0.15332 0.1-0.0535 0.06-0.0642 0.06-0.0642 0.07-0.73097 1.123-0.0267 0.171 0.0571 0.193 0.35479 0.167 0.28882 0.419 0.0963 0.28 0.0143 0.232-0.0535 2.082-0.041 0.202-0.2086 0.167-0.53129 0.187-1.2837 3.062-0.10697 1.125 1.2302 5.858 1.7526 4.249 1.043 1.656 2.4782 1.886 4.2343 4.397 4.3128 3.833 0.82725 2.821-0.0143 0.288-0.48315 0.747-0.0178 0.07 0.0446 0.161 0.95562 2.562 3.7672-0.995 3.1646 0.77 0.45819 0.139 0.44929 0.216 0.33874 0.2 1.7436 1.053 0.0731 0.129 0.016 0.135-0.0642 0.532-0.0392 0.217-1.2944 1.58 0.36727 1.85-1.1785 3.053-0.0802 0.283-1.2391 3.222-0.0499 0.06-0.0802 0.16-0.26208 0.892-0.0339 0.1-0.016 0.234 0.0339 0.964 0.24068 1.034 0.2086 0.515 0.32983 0.451 0.0571 0.08 0.0464 0.05 1.5119 1.47 0.91283 0.683 5.0883 4.645 4.8548 1.348 3.1164 5.159v0.137m1.3657 24.716 0.98949-0.05 0.18007-0.339 0.0285-0.06 0.0232-0.09 0.0571-0.227 0.016-0.06v-0.1l-7e-3 -0.04-0.0571-0.259-0.11232-0.266-0.0107-0.02-0.11767-0.183-0.025-0.02-0.0392-0.03-0.0481-0.03-0.28169-0.08-0.51347-0.08-0.33696 0.05-0.1141 0.07-0.21038 0.281-0.0303 0.04-0.0232 0.09-0.025 0.105-0.0178 0.08 0.0178 0.07 0.0178 0.1 7e-3 0.02 0.19968 0.426 0.43324 0.609 0.17221 1.4366 0.73163 1.0374 0.0356 1.0723-0.79321 0.19069-0.96399 0.24949 1.1929 0.8177 0.42823 0.81697-1.1619 0.66881-1.5765-0.18128 0.76907 1.2283 1.167 0.73525-0.15479 0.85658-1.2512 0.69806-0.12674 1.2144-0.61534 0.89166 0.0377 0.67553 0.89097 0.33102 0.47617 0.55124-0.26856 0.98014-0.98147-0.34724-0.73569 0.0621-0.1568 0.82911 1.205 0.58178-0.22483 0.82141-1.1873 0.209-0.28817 0.5779-0.428 0.41332-1.0431 0.36073-0.56619-0.0977-0.83543 0.76386 0.63059 1.2246 0.94802-0.50345 0.70215 0.72534-0.36423 0.74618-1.5684 0.91194 0.54536 0.76537 0.31793 1.0381-1.3548-0.31409-0.28014-0.63513-0.71907 0.0802-0.0609 1.1084 0.52054 0.70173-0.28397 1.8251-0.33266 0.0152-0.59069-0.62596-0.54086-1.0837-0.50482 0.64672-0.87967 0.29964 0.1373 1.1296 0.35218-0.19852 0.1536-0.42278 0.46648-0.25947 0.84871 0.74874-0.29434 0.36918 0.13487 0.58916-0.17755 0.67676-1.0595 0.64707 0.26079 0.47372 0.94121-7.3e-4 0.54624 0.43556 0.16377 0.66029-0.61348 0.88774 0.83425 0.29002-0.0918 0.81537-0.54234 0.63711-1.227-0.60771-0.41757 0.45107-0.57819 1.7883-1.5967 0.11225-0.22464 0.717 0.0321 0.321 0.47246 3.102-2.0966 0.769-2.8918 4.605 0.25673 2.676 0.20147 2.064-0.1355 0.442-0.0178 0.04-0.041 0.03-0.65075 0.57-0.81834 0.392-0.98949 0.204-0.98593 0.192-1.8007 3.231-0.85399 1.759-0.27278 0.569 0.0686 0.242 0.85667 0.699 0.20146 0.5-0.11232 0.772-3.7137 1.87-1.5261 6.573-0.10519 0.523 0.025 0.05 0.1141 0.203 0.56874 0.426 0.53842 0.435v0.02l-0.0499 0.247-0.33696 0.289-1.4049 0.565 0.26386 0.73 0.025 0.01 0.97345 0.663 0.79516 0.537 0.15155 0.536-0.23178 0.459-0.98949 0.288 0.96453 2.759 0.65075 1.18 0.4992 0.529 0.0553 1.767-0.61865 2.518-0.56161 0.634-0.15511 0.177-0.63292 1.021-0.20146 0.731 0.0321 0.186 1.5422 6.989 0.11411 0.274 0.0214 0.04 0.0606 0.07 0.0214 0.04 0.041 0.03 0.18364 0.16 0.0481 0.04 0.61153 0.191 0.13728 0.314-0.4368 1.47 0.0339 0.369v0.03l0.0553 0.08 0.082 0.128 0.016 0.04 2.1448 2.282 0.1355 3.318-2.2411 0.278 1.9612 2.291-3.9936 5.828-2.225 2.942-0.19255 0.346-0.30844 0.528-0.0143 0.02-2.0967 4.212-0.0481 0.09-0.0731 0.155-7e-3 0.02-0.73098 5.992-0.47424 2.477-0.47603 3.592 9.0552-0.426 2.2838-0.112 4.6052-0.259 5.0954-0.297 0.37618-0.01 3.9384-0.251 1.7276-0.105 8.3242-0.553 2.1127-0.144 0.041 0.713-0.24247 1.214-0.1979 0.442-0.12302 0.02-0.16046 0.02-0.0463 0.05-0.25852 1.075-0.29774 1.469-0.2389 1.213-0.21929 1.642 3.3019 4.548 0.0339 0.03 0.12836 0.13 1.2302 2.5 0.0303 0.426-0.18363 0.465-0.0499 0.193 0.016 0.123 0.62936 1.194 0.19255 0.371 0.43145 0.505 0.1462 0.169 0.0499 0.03 0.0713 0.05 0.0481 0.03h0.0374l0.91818-0.06m-3.5675-157.16-0.85756-1.927 4.0632-3.953 0.0981-0.03 6.9033 2.935 1.3247 0.141 0.13549-0.02 0.41898-0.185 0.21573-0.595 0.26564-1.277-0.51346-1.141-0.22464-0.216-0.24247-0.137-0.76307-0.916-0.15511-0.498 0.0107-0.153 0.51525-2.273 0.0945-0.227 0.23355-0.303 0.16224-0.114 0.12837-0.1 0.312-0.143 0.11232-0.05 1.0537 0.344 0.45641-0.608 0.30666-0.283h0.016l0.0874-0.06 0.43502-0.264h0.0392l0.1141-0.03 0.312-0.09 2.8865-0.611 0.18363-0.04 0.3441-0.392v-0.371l-1.4352-1.487-0.1462-0.264-0.3851-1.045-0.0107-0.02-0.0945-0.52-9e-3 -0.03 0.025-0.161 0.0963-0.256 0.0232-0.05 0.1462-0.248 0.29061-0.547h0.0143l0.83616-0.608 0.21751-0.236 0.1355-0.247 0.0874-0.234 0.23356-0.875 0.85347-0.0123 0.62549 0.40972 0.36884-0.59896 0.35566-0.30474-0.761-1.3758 0.1639-0.64788 4.0756-0.323 0.71405-0.21545-0.13273 1.5863 0.97575 0.25714 0.74424-0.94261-0.96608-1.0453 0.53276-1.6102 1.0862 1.0787 1.4406-0.43465 2.7563 0.739 0.64361 0.45 2.6262 1.75 1.3425-2.424 1.1179-1.047 2.7973-1.854 3.1967 3.316h0.13728l0.2389-0.08 0.49921-0.387 1.1731-2.674-0.1355-1.373 0.0303-0.252 0.0731-0.103 0.0963-0.06 0.36905-0.07 0.10519-0.01 3.6246-2.329-0.0553 0.649v0.04l7e-3 0.161 7e-3 0.105 0.0161 0.04 0.12836 0.449 0.10519 0.161 0.041 0.06 0.0874 0.06 0.81121 0.537 0.78089 0.306 0.12837 0.02 2.5959 0.128 0.53664-0.177 0.86826-0.296 0.44215-4.041 1.6723-2.757 2.4978-2.41 3.2787-3.712-0.0553-1.449 1.2444-3.736 2.4835 0.862 2.9239-2.001 3.8902-2.63-0.24247-1.003-1.774-2.828 0.81833-1.847 3.5515 0.305 2.0093-0.733 3.4873 1.286 1.9522 3.198 0.16937 1.054 3.3019 0.939 2.6369-0.281 0.60975 0.08 0.21751 0.08 0.11232 0.09 1.5671 1.622 1.3906 0.69 1.0269-0.121 0.0963-0.811 0.13728-0.225 0.18542-0.128 1.3978-0.612 0.21929-0.05 0.15154 0.02h0.025l0.72028 0.177 1.9148 0.46 0.0481 0.02 0.60083 0.282 1.0608 0.777 0.65297-0.59473 1.7154-0.2291 0.45033-1.306 1.2409-1.2932 0.31914-0.145 1.4869-0.674 0.48494-0.212h0.1123l0.18364 0.08 0.082 0.09 0.0232 0.04 0.0481 0.07 0.0303 0.06 9e-3 0.03 7e-3 0.03 0.0339 0.137 0.0143 0.163v0.02l9e-3 0.01-0.0178 0.278 0.16937 0.724 0.49921 1.502 0.041 0.09 0.11945 0.255 0.14442 0.169 0.0178 0.03 0.3851 0.257 0.0802 0.04 2.8668 1.116 1.383 2.1153 0.11771 1.4139 0.55823 0.72707 0.0458 0.8796-0.17561 0.64217-0.44929 1.966-0.0189 0.51345 0.80496 0.43682v0.02l0.33398 0.62528 0.53577 0.22659 0.90507 1.442 1.2152 0.44384 0.025 0.03 7e-3 0.02v0.129l-0.46533 0.804 1.6364 1.6768 2.088 2.5722 0.0303 0.12 0.67214 1.036 1.3255 0.77503 0.61789-0.36623 0.54941 1.0489 1.1657 1.0033 1.18 0.26062 1.0688-0.37538 0.47543 0.21776 0.61561 0.23406-0.0558 0.36194-0.8112 0.731-0.0481 0.153 0.12837 0.344 1.4054 0.80569 0.1457 1.3963 1.5119 1.317 0.21573 0.107 2.0432 0.738 1.2034 0.715 2.1056-0.417 0.0571-0.03 0.78803-0.724 0.0143-0.02 1.3182-1.3973 0.73081-1.4797 3.0126 2.066 2.0876-1.2709 2.1092-0.75413 1.2705-0.53696 0.75009-0.88698-0.74377-0.7155 0.28218-0.49001 0.108-0.82755 1.7954 1.037 2.2339-1.677 0.18542-0.147 1.8078-1.429 0.86112 1.237 0.78693-0.70655 0.77826-0.50404 0.11836-0.30902 0.71811-0.40625 0.363-0.32517 0.2201-0.58548-0.21297-0.10124-0.27033 0.41256-0.56864-0.14208 0.29893-0.28017-0.20669-0.60536 0.7063-0.6332 1.0358-1.254-1.585-1.239 1.1895-3.3749 2.107-3.2931 1.2444-2.836 0.33698-0.81999-0.28381-1.7093 1.4232-1.6756 0.66127-0.89109-0.43324-0.875v-0.03l9e-3 -0.08 1.1-1.71 0.47425-1.688 0.0891-1.625 0.0303-1.904 1.7775 0.426 0.36192 0.161 0.33697 0.337 1.0911 1.617 3.079 0.522 1.2462-1.799 1.8078-6.976 0.81169-1.8216 2.4631 1.2747 0.95813-2.8075 0.38772-0.39365 0.17315-0.58856 0.50785-0.22511 0.0795 0.55151 0.6329-0.68385 0.21625-0.74692 0.48656-0.69373 0.38722 0.21592 0.5854-1.3159-0.3105-0.17393 0.3456-0.77223 0.51501-0.95773 0.55744-0.33611 0.31363-0.33026 0.0683-0.48408 0.48209-0.63792-0.38897-0.25075-0.063-0.24592-0.19213-0.0964 0.40201-1.1592-0.39778-0.11886 0.14721-0.12984 0.16028-0.60726 0.45662-0.80021 0.21518-0.88435-0.44589-0.0266 0.20286-0.77186-0.39584-0.37058 0.0299-1.5315 2.3966 1.176 3.9526 2.0817 4.138 2.1934 1.0626-4.5688m-203.83 67.552 0.016 0.209 0.1141 0.46h7e-3l0.51347 0.958 0.33696 0.504 0.47603 0.467 0.22464 0.282 0.28882 0.651 7e-3 0.02 9e-3 0.04 0.10341 0.387 9e-3 0.02-9e-3 0.03-0.0713 0.708-0.0731 0.217-0.0143 0.02-0.0178 0.02-0.016 0.02-0.2086 0.107-0.65788 0.176 0.0303 2.017 0.45998 0.658 1.1161 2.089 0.64183 1.574 1.2141 0.99 3.4962 0.376 0.65075 0.838-0.68819 2.298-0.52594 0.305v0.53l1.0608 0.563-0.70601 3.188-0.60014 0.69835-0.20025 0.98537-0.83113 0.0314-1.1337-1.0951-1.2924 3.19 1.164-0.184 9.3618-0.676h0.13728l0.19968-0.02 5.4895-0.396 0.49742-0.03 7.9783-0.554 0.28809-0.71461-0.94775-3.4394 1.0715-0.06 2.9881 0.06-7e-3 0.707 2.9007-0.338 0.96454-0.111 5.5608-0.579 4.0239-0.394 0.98771-0.114 5.4074-0.649h3.6656l2.7492-0.676 3.7922-0.136 4.1862-0.176 3.4392-0.21 6.4201-0.617 2.5406-0.46 0.35301-0.06 5.641-0.354 3.3589-0.154h0.1355l9.435-0.884 0.62757-0.07 4.3556-0.499 1.0358-0.103 4.6052-0.884 3.703-0.41 8.8626-1.118 2.8044-0.29749 3.9748-0.41786 5.7141-0.83012 0.91461-0.137 1.7686-0.241 3.8474-0.57688 0.17212-0.77865 1.7454-0.209 3.2698-0.442-0.57767 0.90581 6.0261-0.58089 8.228-0.997 1.166-0.121 4.0917-0.643 3.1414-0.337 7.0209-0.988 0.47424-0.08 5.6499-0.951 3.6959-0.618 0.73097-0.136 2.2981-0.408 2.2428-0.412 1.453-0.257 6.1723-1.116 1.1161-0.217 4.9992-0.933 2.3944-0.481 4.9974-0.957 2.6369-0.523 2.3855-0.456 8.4775-1.672 2.3623-0.516 4.4679-0.91628-0.13419-0.20431 7.747-1.4414 3.1949-0.675 3.4213-0.722 4.5838-0.981m-79.996 151.57-0.30309 0.03-1.6723 0.202-1.223 0.06-2.3124-0.257-3.063-0.658-0.83617-0.563-2.1501 1.253-0.17116 2.484 0.0874 0.474 0.30665 0.465 0.60261 0.788 0.25852 0.706 0.0143 1.537-0.10519 1.573-0.10341 1.592-2.25 0.435-0.13015-0.03-0.40828-0.321-0.36905-0.529-0.19433-0.514-0.57765-3.221-4.0346 0.247-0.80407 0.06-2.4586 0.176-2.0895 0.153-8.8448 0.608-3.416 0.236-0.95027 0.06-5.0277 0.346-2.6119 0.169-5.2078 0.355-1.5083 0.102-3.8991 0.274-1.9701 0.137-9.5419 0.642-3.4819-6.283-9.5954 1.173-10.597 1.231-2.9827 0.296-3.9455 0.401-5.8995 0.565-1.8863 0.143-7.3936 0.659-8.5489 0.812-0.44394 3.077 0.25852 0.438 2.0004 2.181 0.62935 0.433 0.11054 0.04 0.32983 0.06 0.66679 0.344 0.88431 0.548 0.24068 0.394 0.0713 0.272 0.0321 0.378-0.19968 5.023-0.26565 2.514-1.2694 0.572m161.57-105.14-2.4336-1.736-9.3048-6.647-8.3331-6.072-0.25495-0.177-4.8779-3.246-4.4447 0.723-7.2973 1.058-4.4732 0.663-4.0115 0.592-0.37797-0.07-9e-3 -0.218-0.12837-2.346-1.3175-1.327-1.494-1.526-0.68455-0.2579-1.4372 1.5536-0.62476-0.42965 0.44815-1.3492-0.49188-0.74684-5.3022 0.483-0.72385 0.07-7.4631 0.788-1.9772 0.202-1.7615 0.192-4.5962 0.475-2.5994 0.119-3.8278 2.009-3.2947 2.25-2.4176 0.619-1.9612 0.947-1.7846 0.863-0.40293 1.831-1.7044 1.324-1.2355 2.243-0.30666 1.737 0.37084 0.618 4.771 2.933 1.1517 0.803 1.166 0.162 0.2086-0.105h0.016l0.74881-0.186 0.67392-0.09 0.39402 0.112 0.19255 0.147-7e-3 0.06 0.62578 0.966 1.9915 2.803 0.7078 1.842 3.3429 4.122 0.78803 1.198 2.8437 1.693 0.11945 0.03 0.26743-0.104h0.0874l1.6402 0.827 0.49742 0.355 1.182 0.972 0.76307 1.439 2.2001 1.92 1.8578 0.786 0.31201 0.291 0.16224 0.153 0.90035 0.852 1.2748 1.487 0.45107 1.742 1.248 1.767 1.7882 1.351 3.2074 1.503 1.576 0.867 3.6549 6.452 0.82903 3.359 2.0093 0.804 0.36906 0.137 1.7116 1.414 2.0396 4.138 0.2496 1.221 0.0998 0.45 0.18185 0.918 0.2496 0.996 0.0892 0.09 1.0858 0.419 3.5746 0.674m63.804-151.15 1.0304-0.19946m5.7308-1.1092 0.59034-1.208 6.5467-2.227m1.2373-10.35-5.1008 1.115-0.25852 0.06-0.6757 0.154-0.28348 0.05-0.24425 0.05-0.066 0.01-0.895 0.168-0.36727 0.07-1.0448 0.199-0.52238 0.1h-0.0642l-1.2284 0.208-0.54021 0.09-0.20682-0.725-0.19255-0.658-0.24068-0.867-0.46712-1.665-1.223-4.355-1.9683-7.007-0.64184-2.289-0.32091-1.134-0.50634-1.799-1.6065-6.0087c-0.1181-0.3089-0.1886-0.5974-0.23397-0.87511l-0.22409-0.83818 0.1571-0.0351 0.0231-0.0918 0.0561-0.22342 0.091-0.29813 0.10239-0.28128 0.1132-0.26472 0.1235-0.24844 0.13328-0.23247 0.14253-0.21678 0.15127-0.20137 0.15947-0.18627 0.16716-0.17145 0.17432-0.15693 0.18096-0.14268 0.18708-0.12875 0.19267-0.11508 0.19775-0.10172 0.2023-0.0887 0.20633-0.0759 0.20983-0.0634 0.21281-0.0512 0.21528-0.0393 0.21721-0.0276 0.21863-0.0163 0.21953-5e-3 0.21989 5e-3 0.21974 0.0159 0.21906 0.0261 0.21787 0.036 0.21615 0.0456 0.2139 0.0549 0.21114 0.0639 0.20786 0.0726 0.20404 0.081m4.349-38.04-1.0144 0.731-0.48138 0.522-0.41006 0.844-0.0874 0.256-0.20859 0.892-0.0321 0.314 0.0713 0.07 0.0321 0.378-0.1034 0.691-0.47425 1.118-0.68462 0.963 0.0963 0.119-1.872 3.497 1.6313 1.922 0.0571 0.135-9e-3 0.136-0.57765 1.77-0.35123 0.487-0.2603 0.03-0.25673-0.03-0.1355 0.04-0.29239 0.686 0.17829 1.387 0.42432 1.641 0.1141 0.208 0.18721 0.362 2.4657 1.006 1.3015 2.619 1.6706 1.012 0.1141 0.06 4.6355 3.56-0.99855 0.84489-0.72684 0.0798-0.21124 0.71388-1.8324 1.5504-1.109 1.616-1.3086 2.433-0.68641 0.981-2.1008 0.89552-1.1037 1.483-0.82356 1.5955-0.2292 0.78998-0.049 0.94306-0.33871 0.65734 0.18292 1.1643m17.35-25.62 0.0377-0.45335-0.14113-0.5183 0.2219-0.37502 0.19869-0.015 0.14734-0.28922-0.0182-0.74781-0.0641-0.2123-0.11107-0.55693 0.2363-0.30656 0.39896-0.11105 0.65066-0.15787 0.59126-0.25239m0.61099-1.3933 0.0985-2.128 0.4569-2.3499 0.12383-0.79119-5.3e-4 -1.9628-5.95-1.7665-0.40114-0.121-2.5156-0.852-6.3149-2.209-1.3675-1.337-0.75415 0.08-1.3514 0.07-0.29774-0.138-1.831-0.95-0.52239-0.497-0.7381-0.722-0.45998-1.054-2.7314-4.901-1.9853 0.1111-0.65872-1.6071-0.30487-0.289-1.0127-0.713-0.3227-0.07-2.0556 0.456-10.351 2.243-0.68106 0.145-6.8534 1.406-6.1562 1.231-0.64361 0.142-10.735 2.181-2.3391 0.472-7.6342 1.441-1.6919 0.335-4.8334 0.889-4.6426 0.903-0.7399 0.128-2.3873 0.403-9.1925 1.629-0.25673 0.05-2.2821 0.394-0.52951-3.012-0.44216-2.549-0.098-0.61m144.3-46.196-0.63706 0.37368-0.54676-0.30368-0.48851 0.03-0.11232 0.06-0.13193 0.06-1.5564 1.15-0.22913 1.373-1.3523-0.023-0.21751 0.226-0.43716 0.59429 0.29773 1.226-0.76805 2e-3 -0.10698 0.243-0.41541 0.987-5.5465 1.279-0.0713 0.02-0.2496 0.06-4.0649 0.909-0.49208 0.111-5.8318 1.262-2.8936 0.619-7.7698 1.663-1.5279 0.321-3.9847 0.861-0.14798 5.648-0.25317 10.141 0.3851 0.779 0.16046-0.04 7.2242-1.528 0.73989-0.167 3.1345-0.74112 0.2509 0.99379 0.88363-0.30454 0.0335-0.96542 3.9575-0.93571 6.1794-1.463 0.56161-0.111 0.7078-0.146 4.2896-1.02 0.11232 0.337 4.9011-1.503 1.9775-0.55095 0.18762 0.77537 0.54372 2.105 0.65087-0.29717 0.029 0.28586 0.34232 0.59989 2e-3 0.39398 0.14316 0.18518-0.0776 0.28603 0.11706 0.19297 0.0922 0.30225 0.17135 0.1402 0.11067 0.18005 0.10708 0.0134 1.2362 0.15156 0.86162 0.78465m0.62842 0.67933 0.96636 0.15371 0.3784 0.71595-8e-3 0.43305 0.22704 0.16744 0.78051 2.4678m-205.54 285.58-0.57587-1.665-0.21216-0.458-0.14619-0.262-0.92888-1.022-0.14619-0.04h-0.16938l-0.16937-0.1-0.19968-0.465-0.27278-1.632 0.1355-0.595 0.20859-0.61 0.24247-4.901-2.1377-5.329-0.33874-0.449 0.90748-4.937-0.0535-1.719 2.0895-4.127 0.0464-0.07 0.16046-0.724-0.19255-0.383-0.47424-0.396-1.2765-0.344-0.12123-0.136-0.041-0.194 0.21573-0.82-0.53486-3.174-1.8435-2.05-1.3889-3.059-1.2284-2.735-1.544-5.344-0.13728-0.481-1.8631-6.725-0.34588-1.239-1.0768-3.831-1.5582-5.611-0.39401-1.405-0.73098-2.628-1.2854-4.644-1.5761-5.351-0.40827-1.455-0.22465-0.789-1.5119-5.344-0.72384-2.811m-87.764 7.185 10.929-0.669 1.494-0.11 5.4484-0.353 2.8847-0.204 3.3732-0.247 3.6264-0.282 0.68284-0.06 7.5754-0.603 0.31379-0.02 3.0523-0.251 3.9954-0.578 14.217-1.1 0.23177-0.02 6.9924-0.49 0.97701-0.09 8.6665-0.854h0.14085l8.3349-0.811 4.828-0.435 2.4746-0.257 2.0182-0.217 1.831-0.25 5.3254-0.669 3.1218-0.367 0.64005-0.08 2.8704-0.351 5.5679-0.685-0.0695-5.079 1.5154-1.334 1.9808-0.05 0.70424-0.579 0.43502-0.594 0.75415-4.122 0.15333 0.05 5.0206-3.18h0.42607l2.6262-0.271 0.22643-0.146 3.1896-2.525 0.66679-0.977-0.0802-0.437 5.1133-2.544 0.71136-3.625 0.83082-0.21 1.6224-1.519 1.1553-1.141 0.3227-0.234 0.46711-0.336 0.0874-0.01 0.27635 0.184 0.35122 0.337-0.25145 1.3811 1.0062 0.71758 0.70833-0.79809 0.51588-0.15063 1.3086-2.395 3.2787-2.442 2.7403 0.793 2.1608-4.042 0.19255-0.554 0.1355-0.369 0.84508-0.947 0.9164-0.627 0.0232-0.02 0.0963-0.06 0.1141 0.263 0.48138 0.154 0.28704-0.01h0.0339l0.38332-0.129-0.0695-1.095-0.016-4.4372m117.55-168.71-0.47077 0.13278-0.6967-1.2856 0.41821-1.017-0.48092-2.2341-1.7187-8.397-0.97345-4.525-0.50811-1.0576-0.70967-0.14937-0.46265-0.79353-1.0384 0.11388-0.0446 1.2767-0.54556-0.226-0.0642-0.09-0.16224-1.342 0.0909-0.933 0.31022-1.704-0.59548-1.157-0.27991-0.507-1.9166-4.525-0.0356-0.08-0.0392-0.772v-0.749l9e-3 -1.902 0.67392-1.922-0.67744-2.2226 0.22812-1.5374-0.025-0.25-9e-3 -0.01-0.29774-0.804-0.22999-0.499-0.76486-0.924-0.46711-0.273-0.26564-0.224-0.24342-0.85773-0.21152-0.70406-0.0333-1.6736 0.12339-1.8634-0.93491-0.59916-0.17496-1.0307 0.31908-1.0192-0.1235-0.9013-0.60896-0.70965 0.025-0.50216m-30.194 154.15 1.9051-2.8795-2.1692-1.2911-0.91461-0.474-1.0018 1.6476m-44.205-10.311 1.8881 11.789 0.5375-0.20301 1.4158-1.5436 0.92423-1.7074 3.2698-3.945 1.897 0.426 2.8847-3.971 2.1216 0.844 3.35-0.184 1.8399-3.15 0.93244 0.185 0.20859-0.03 0.62044-1.143 0.45642-0.722 0.12123-0.137 0.10519-0.04 0.59548 0.02 0.64896 0.07 0.64362 0.241 0.80229 0.581 0.29596 0.328 0.49145 0.54089 0.83697-0.31276 0.67438-0.0282 0.8573-0.31276 0.63372-0.0892 0.0831 0.60582-0.77054 0.32126 0.776 1.2116 0.51177 0.27667 0.49876 0.038 0.21889 1.2588 1.1538 0.16126-0.0703 1.8063 0.68168 0.3835 0.68998-0.08 1.0942 0.4121 0.95382-0.22465 0.70077 0.87146 1.5176 0.43709-0.19207 0.92301-0.51394 0.19299-0.0731 0.193-7e-3 0.105-0.0428 0.289-0.0214 0.208 5e-3 0.02 0.12302 0.392 0.11232 0.136 0.11232 0.08 1.1393 0.765 0.0339 0.01 0.63292 0.04 0.86113-0.04 0.83616-0.09 0.98643 0.45194 0.66294 0.2112 0.0304 0.72855 0.38734 0.28294 0.36992-0.0103 0.25992 0.068 0.85706-0.10347 0.55251 0.47231 0.74641 0.546 0.76516 0.41139 0.52111 0.96665 0.0895 0.94639 0.0382 0.27715-0.43324 1.8191-0.55645 0.41311-0.24764 0.61848-0.7196 0.0468 0.96036 1.011m-95.382 21.408 0.63191 0.19913 1.032-0.4411 1.491-0.81395 0.61454 0.032 0.82453-0.31568 0.30947-0.47668 0.0321-0.153 0.0321-0.168 0.0802-1.647 7e-3 -0.05 7e-3 -1.006 0.23716-0.17737 0.92884 0.0246 0.43536-0.30324 0.10519-0.44641-0.50201-1.3684 0.0998-0.62121-0.3162-0.378-0.17291-0.67761-0.45241-0.39081 0.0418-0.627 0.5502-0.37521 0.45921-0.57121 0.0898-0.55361-0.12916-0.75037 0.31921-0.49711 0.35654-1.367 0.0553-0.321 0.50049-0.50021 0.31963-0.88779 0.34364 0.0586 0.54007 0.74639 0.65553-0.11682 0.79983 1.1674-0.43812 0.81503 0.0642 0.178 0.59427 0.3921 0.76743-0.36071 0.24216-0.78817 0.13202-0.61985 0.78839 0.61591 0.75221-0.24967-9e-3 -0.47722-0.50093-0.47262 0.3208-0.92552-0.24776-0.45186-0.19255-0.225-0.40293-0.269-0.19968-0.146-0.19255-0.252-0.17408-0.28924 0.71824-0.0999 0.46937-0.40238-0.0805-1.1698-0.25733-0.95367 0.312-0.69 0.36228-0.0809 6e-3 -0.41083 0.10278-0.61747 0.36091-0.20134 1.6733-0.15864-0.11287-1.7781 0.3312-0.33044 0.66437-0.635 0.46015-0.84476 0.33743-0.0942 0.20147 0.02 0.31833 0.31636 0.50444 0.93337 0.51657 0.1381 1.6997-1.4789 0.75021 0.0361 0.15999-0.71514 0.40045-0.59858 0.68019-0.2984 0.21068-0.39231 1.18-2.2969 1.3224-1.6516 0.93512-0.13608 0.32468-0.76042-0.0494-1.304 0.52402-0.25638-0.067-0.59945-0.74173-0.68644 0.58981-1.0492-0.15055-0.72905 0.0987-0.38365 0.44705-0.44857-0.53123-0.95384 0.70262 0.13774 0.2746-0.24798-0.32902-0.81678 0.28979-0.59958-0.2231-0.88996 0.0883-0.74966 8e-3 -0.43804-0.17022-0.30979 0.46008-0.71332-0.25169-1.4648 0.2651-0.5854 0.29924-1.3774 0.59961-0.60926-0.0816-0.37475 0.19007-0.79688-0.38599-0.67318 0.0216-0.56786-0.52034-0.31698 0.19895-0.35332-0.11279-0.64803 0.20639-0.64573-0.0778-0.53574-0.43175-0.44391-0.24143-0.65353-0.43172-0.43273-0.41394-0.31735-0.0623-0.48798 0.34873-0.5693 0.65552-0.41989 0.39766 0.0748 0.24941-0.26565 0.6878-0.52193m-76.492-13.91 0.47425 3.81 0.28882 2.394 0.43324 3.56 0.0499 0.425 0.72384 6.06 0.1872 1.535 0.542 4.468 0.42075 3.583 0.56874 5.056 0.11945 0.977 0.70958 7.032 0.2086 2.034 0.48851 4.386 0.41897 3.666 0.12124 1.043 0.51346 4.999 0.52951 4.598m-54.007 35.885-0.90748-2.034 0.86112-0.03h0.0303l0.0392-0.03 0.0107-0.02 0.0481-0.1 0.25673-5.325 0.10341-2.411 0.025-0.112 3.4623-4.598 1.2783-3.68 0.34588-0.941 1.4067-1.799 0.14263-0.12 0.17651-0.322 0.25138-1.462 7e-3 -0.562-0.68462-1.471-0.0392-0.06h-0.0731l-0.14441-1.146 0.10519-0.145 0.12836-0.363 0.0481-0.733-1.2765-2.281-0.83617-0.982-0.36192-1.235 0.23355-2.395 0.82012-5.143-0.27456-3.005-0.58656-6.363-0.51347-6.115-0.59369-7.604-0.0267-0.328-0.50455-5.666-0.56339-6.308-0.32983-3.592-0.27278-3.045-0.33874-3.96-0.46355-5.498m-64.896 35.334-1.1393-0.08-0.72563-0.586-1.7508-2.154-0.0642-0.16 0.0571-0.467-0.041-0.152-1.3746-1.038-0.36193-0.226-3.9366 0.01-4.0988 0.288-2.956 0.193-4.9742 0.337-1.3264 0.07-6.6376 0.348-4.8048 0.223-3.1735 0.09-3.769 0.155-4.1862 0.177-3.7601 0.117-4.147 0.1-2.7866 0.03-4.9118-0.02-4.9974-0.03-2.9738-0.02-6.7981-0.07m84.663-140.56 1.815 0.988 3.2306 3.97 1.478 0.312 1.6224 0.337 11.524 2.364 0.86647 0.177 0.67749 0.144 1.0929 0.369 1.1321 0.555 0.97345 0.474 4.081 1.045 0.32983 0.586 2.8116-0.298 4.6765 0.587h0.0356l0.39937 0.06 0.61152 0.296 0.37797 0.252 0.24782 0.158 0.47246 0.676 0.0499 0.07 0.0232 0.08-0.22465 0.385-0.25673 0.362-0.11232 0.09-0.28169 0.36-9e-3 0.02-0.0232 0.08 0.1034 0.201h0.0161l0.6133 0.498 0.1355 0.03 0.21751 0.06h0.016l0.21751-0.03 3.7993 1.021 0.30488 0.248 0.025 0.02 0.041 0.04 0.48138 0.594 0.16045 4.147-1.5696 3.4397 2.2064 0.0435 0.84406-0.85296 1.0418 0.86344-1.0999 3.3453 9e-3 0.02 0.14263 0.472 0.0731 0.122 1.2694 1.342h0.0161l0.41719 0.07 0.73097 0.115m-495.03 256.91 2.0182 0.151 2.6672-1.654 0.83438-1.173 0.16937-0.596 0.18542-1.512-0.57052-1.331-0.0553-0.06-0.0571-0.07-1.6723-0.28-0.312-0.137-0.88609-0.62-0.40115-1.068-0.0143-0.04 1.1321-6.975 1.9273-0.476 2.3142-2.731 0.74881-2.603 0.54555-2.725 0.10519-0.747 0.49029-1.759 0.53843-0.933 1.7276-2.442 2.3694-0.908 1.6242-0.667 2.4104-1.39 0.10519-1.029-0.8843-1.546-1.0216-1.137-1.1731-1.407-1.1874-4.999-0.0642-0.925-1.2783-2.008-1.0127-2.635-0.0161-0.121 0.0321-0.321 0.57765-2.557-2.5138-3.742-6.8159-10.198-0.47246-0.701-1.2712-1.895-3.687-5.537-3.6157-5.383-0.2086-0.307-2.6369-3.952-0.6347-0.949-4.9172-7.384-6.0671-9.08-1.15-1.744-1.9683-2.926-0.34409-0.513-9.2424-13.876-8.1887-12.224-9.8183-14.771-2.307-3.435-3.4302-5.135-4.2343-6.351-0.90926-3.446 0.24247-1.013 0.28882-1.198 0.85935-3.382 0.77911-2.884 1.6402-6.212 0.35301-1.31 1.7347-6.508 1.1339-4.3 0.32983-1.294 1.0358-4.008 2.0646-8.221 1.8328-7.135 4.7014-18.161-4.7424-1.198-0.65074-0.167-6.0493-1.608-3.0541-0.82-9.3048-2.603-13.733-4.09-0.9164-0.282-0.52238-0.169-2.0164-0.546-2.209-0.547-5.5697-1.575-0.42611-0.121-0.72206-0.216-1.7526-0.636-1.2284-0.255-4.7496-1.326-4.9742-1.375-6.3328-1.993m168.04-122.36-2.3712 11.097-1.3746 6.388-1.1161 5.311 0.47425 0.843 3.0933 6.301 0.0232 0.08 0.025 0.06 7e-3 0.03v0.09l-7e-3 1.287-0.52238 1.325-0.44215 1.005-0.29774 1.865 0.0161 0.569 2.4604 3.4 0.33696 0.288 0.26565 0.234 0.8433 0.41 1.2213 0.489 0.26565 0.194 1.3978 3.148 1.3086 3.054 0.73989 1.382 0.40114 0.74 0.30666 2.323v0.01l0.0713 0.195 2.316 3.093 0.22464 0.06 0.10341 0.03h0.68997l0.8843 2.19 1.7276 0.372 0.36192-0.1 0.24961-0.1 0.41006-0.08 0.82725 0.112 0.28169 0.233 0.0731 0.07 0.0874 0.09 0.0571 0.266-0.0963 0.506-0.55626 1.574-0.93957 2.163-1.4067 3.125-4.4839 11.186-0.56161 3.077-0.28169 1.558-0.0161 0.08 0.0481 0.06 0.7078 0.1 0.6347 0.16 0.20147 0.09 1.1803 1.864 0.14441 0.571 0.65966 0.103 3.1503-1.446 1.9843-1.736 1.4138-0.811 0.32983 0.346 1.5582 2.201 0.0891 0.289 0.18364 1.824-0.0143 0.683-0.2086 0.378-0.041 1.366 0.0232 1.8 2.5156 9.353 2.6672 3.712 0.54734-0.135 0.57052 0.449 0.68283 0.763 0.30666 0.474 0.35122 1.102 0.46712 2.001v0.176l-0.0963 0.177-0.0642 0.05-0.0232 2.868 0.19077 1.086 0.44393 0.642 1.3086 1.464 0.41719 0.151 0.32983-0.184 0.16046-0.249 9e-3 -0.06 0.19255-0.86 0.23356-0.361 0.6347-0.674 1.084-0.257 5.7462 1.43 2.4425-0.917 4.475 0.459 3.2395 0.923 2.0895 0.06 2.7795-3.191 1.831-0.69 0.77198 0.763 1.3193 2.587 0.71493 2.064 0.18542 0.548 1.3086 1.214m116.93-19.792-0.10519 1.453-1.2373 15.326-0.69888 4.917-0.80408 9.788-0.73989 8.968-0.0784 0.898-0.57051 6.606-0.67571 8.06-0.0481 0.58-0.90748 10.982 9.1586 0.749 8.4294 0.651 3.4873 0.265 11.877 0.817 3.4623 0.226 4.179 0.321 6.6608 0.346 5.3771 0.282 6.0742 0.281 3.2626 0.154 1.1981 0.06 1.3336 0.07 11.129 0.467 4.6854 0.168 12.671 0.371 3.104 2.784 2.3605 1.07 1.8328 1.582 0.36192 0.16 0.29774 0.05 0.27991-0.01 0.85221-0.129 0.22464-0.139 0.47425-0.431 0.353-0.506 0.42993-0.44376 0.0768-0.69793 1.013-0.12928 0.41827 0.55597 0.55227 0.12024 0.47229-0.69024 0.59944 0.15421 0.41154 0.58529 0.57947-0.56211 0.75703 9e-3 0.13903 0.46347 0.34699-0.0287 0.96522-0.36538 1.0816 0.23032 0.90705-0.39029 0.75114-0.18169 0.99904 0.5016 1.1391 0.0813-0.0572 0.9863 0.99446 0.77792 2.0806 0.596 3.5212 1.315 1.3728 0.869 0.18541 0.419 0.0963 0.385-0.0642 0.271-9e-3 0.21 0.0499 0.209 1.2052 1.792 3.2466 0.829-0.60439-1.666-0.60975-1.606-0.43502-0.699-0.55447-0.515-0.44037-0.337 0.67393-3.084 0.6757-1.801 1.1642-4.019 0.26565-0.708 0.0481-0.158-0.64361-2.314-0.15868-0.08h-1.1981l-0.37083-0.836-0.0929-1.066 1.0895-0.0404-0.0335-1.6183-1.2164-1.2484-0.0338-1.5788 2.4247 0.02m-11.289-126.19-0.0731 0.07-0.0713 0.337-0.0178 0.339 0.0892 0.481 1.1089 3.623 0.29774 0.884 0.67571 1.535-1.0296 3.178 0.45731 0.495 0.0981 5.48-0.50634 1.953-9e-3 0.467 0.36192 1.453 1.4958 5.391 2.0236 4.621 0.53843 3.962 0.2817 5.978 0.0802 1.993 0.0232 2.908 0.66679 2.186 0.19434 0.531-0.30666 4.998 9e-3 1.29 0.68284 1.988 2.209 5.32 0.61153 4.821 0.0481 0.403-0.0321 0.465-0.0392 0.145-0.29774 0.836 0.21751 1.993-0.0891 1.004v0.05l-9e-3 0.03-0.0713 0.61-0.0571 0.497-0.0392 0.209-0.016 0.114-0.016 0.05-0.016 0.03-0.025 0.06-1.125 1.671-0.32805 0.33-0.61866 0.337-0.55625 0.362-1.4691 1.18-0.025 0.03-0.0321 0.04-0.025 0.02-0.0553 0.128-0.22464 0.771 0.0642 0.09 0.28883 0.369 1.125 1.503 1.1188 2.4545 1.2435 0.1645 1.5511 0.756 0.52951 0.426 0.30665 0.706 0.26565 1.326-0.0178 6.702-0.0321 7.98-0.0143 2.017-0.0499 7.987-0.0481 8.003-0.0321 8.06 6.6608 0.02h3.1913l6.7749-0.04h1.109l7.866-0.07 1.0127-0.02 6.8462-0.1 3.2555-0.05 4.6034-0.07 5.3593-0.121 2.5245-0.06 7.456-0.215 0.41006-0.02 7.8428-0.28 1.7365-0.06 6.1295-0.25 5.8193-0.248 1.9843-0.09 6.5396-0.314m-434.37-2.74 8.5096-37.886 1.7757-4.307 0.48138-0.804 0.78089-1.478 0.62579-2.555 0.81299-0.997 0.0232-0.04 0.0232-0.05 0.0321-0.06h9e-3v-0.02l0.0232-0.234-0.0553-0.176-0.0161-0.03-0.85221-1.686-0.16759-0.105-0.63648-0.225h-0.0874l-0.15333 0.07-2.0004-0.811-0.24069-0.408-0.0321-0.33 0.0232-0.194 0.041-0.122 0.55448-3.783 0.20146-0.403 3.5586-4.892 0.37797-0.339 0.11232-0.05 0.39401-0.09 1.535-0.523 0.87539-0.941 0.48316-0.513 0.37619-0.403 0.53842-0.931 0.016-0.02-0.0232-0.185-0.0963-0.225-0.0571-0.225-0.016-0.465 0.40114-0.836 0.50812-0.467 0.77912-0.706 2.4015-3.914 0.54556-1.15 2.7813-3.567 1.5422-1.576 0.38688-0.441 0.0642-0.29-0.55448-2.908-0.10519-0.442-0.312-0.396-0.27456-0.353h-7e-3l-0.58657-0.257-1.3996-1.287-0.73098-0.674-0.0481-0.09-0.0713-0.136-1.1321-3.528-8.8163-2.057-1.9202-0.466-5.8425-1.406-0.29595-0.07-15.445-3.703-0.45106 0.378-0.3441 0.151-1.1731 0.339-0.57052 0.09-0.69889-0.05-0.41006-0.103-0.44215-0.227-2.4104-0.33-0.90926-0.05-0.90748-0.06-1.0784-0.44268-0.59088-0.32062-0.84956 0.59188-0.59943 0.55642-1.6706-0.159-1.535-0.16h-2.1983l-2.4229 0.296-0.51347 0.128-0.83617 0.635-3.1664-0.193-1.2534-0.217-0.32805-0.216-0.19433-0.281-0.41719-0.787-0.44929-0.315-0.68462-0.168-0.33696 0.112-0.69175 0.33-1.7187 0.241-1.4138 0.217-0.83616 0.257-0.34588-0.458-1.419-0.64655-2.0398 0.83215-0.254-1.6655-2.1207-1.2511-0.55447-0.113-1.1-0.162-1.0947-0.948-1.7258-0.03-1.3265-0.104-0.43502-0.105-1.1072-0.61-0.94849 0.06-0.68284 0.353-0.45106 0.403-5.7052 0.796h-0.29774l-0.45641-0.122-0.52416-0.256-4.459-2.748-0.42611-0.322-0.81834-0.86-0.31378-0.401-0.01605-0.563 0.15333-0.418 0.34409-0.579 0.41897-2.804 0.11945-0.378 0.14441-2.186-0.44928-2.505-0.15333-0.605-2.5941-3.18-0.75594-0.314-0.82012 0.152-2.4818-0.104-0.12124-0.04-0.67392-1.052 0.35122-1.028-0.16759-0.539-0.23356-0.417-0.06418-0.105-0.04814-0.03-0.08914-0.06-1.0358-0.06m459.25 277.22-7.103 0.06h-1.1981l-6.0974 0.06h-2.0913l-4.8209 0.03h-3.8956l-9.5722-0.03-4.0899-0.02-7.2474-0.07-5.7373-0.07-6.1955-0.107-5.6499-0.105-4.2824-0.09-3.6068-0.114-8.3082-0.257-8.2939-0.282-1.5511-0.06-8.4062-0.385-1.5814-0.07-9.9074-0.408-5.682-0.241-2.209-0.112-8.8965-0.443-8.6059-0.474-0.25674-0.02m260.83 150.42-1.0198-8.363-0.73811-5.996-0.34053-2.655-0.93065-7.341-0.76485-5.994-0.46533-4.508 0.13015-7.707 0.0464-1.879 0.13728-6.245 0.1355-8.132 0.0267-1.439 0.1355-6.896 0.10519-5.703 0.10162-4.894 0.18542-7.28 0.0178-0.658 0.11945-5.452 0.0731-3.298 0.0642-2.756 0.19255-7.226-2.1074-2.225m-53.058 49.651-1.8952 0.07-3.2787 0.134-0.47424 0.03-11.676 0.474-12.592 0.339-5.0616 0.1-4.7959 0.13-4.8369 0.128h-0.58835l-5.4467 0.121h-0.18542l-4.3859 0.1m-168.63-282.27-15.903-1.503-1.1457-0.10895-11.967-1.201-3.0873-0.16008-3.6627-0.39692-10.109-1.182-3.1022-0.378-0.85935-0.177-7.6592-0.939-4.6035-0.56442-5.7603-0.71258-6.0029-0.813-4.9903-0.659-2.1305-0.289-0.32804-0.05-2.9899-0.547-8.5417-1.157-3.6638-0.57-1.3514-0.211-1.815-0.09-5.3433-0.724h-0.041l-2.4194-0.378-0.70602-0.243-2.0004-0.408-2.7082-0.419-1.3978 7.595-0.59548 4.388-1.7686 11.168-1.7116 11.002-0.59813 3.9591-1.1295 7.0089-1.8863 11.557-1.8738 11.679-1.535 9.644-1.1963 7.499-0.93244 5.801 9.2959 1.535 7.7305 1.109 0.8112 0.121h0.0178l2.4657 0.353 2.3944 0.337 0.66857 0.1 8.0176 1.07 2.6939 0.392 13.667 1.84 5.6891 0.685 10.293 1.243 7.8928 0.929 9.1836 1.114 2.2339 0.265 15.686 1.607 5.7302 0.554 15.308 1.296 8.2279 0.674 3.3019 0.255 12.551 0.918 0.55626 0.03 9.8022 0.656-0.36192 5.842-0.0802 1.207-0.3851 5.955-0.13728 2.097-0.50634 8.001 11.186 0.694 1.519 0.08 9.8824 0.529 0.34766 0.03 9.5294 0.457 0.27278 0.02 9.6302 0.385 7.8402 0.281 1.9594 0.06 5.9548 0.185 3.8813 0.105 4.0328 0.09 5.9869 0.144 1.9291 0.04 7.9142 0.127 7.932 0.105 1.9362 0.02 5.9797 0.05 3.9277 0.02h7.891l7.8428-0.03h0.55447m-344.96-175.16-0.0981-1.59 0.76485-2.108-0.0981-1.975-0.15333-1.27-0.0232-0.08-0.50455-2.034 0.33696-1.004 0.58657-2.596 2.94-13.08 0.66857-2.942 0.53665-2.386 3.0291-13.621 0.34588-1.517 4.1309-17.759 0.77911-3.384m544.87 306.7 3.703-1.986 1.0631-0.20406 3.6282-2.1982 0.93362-0.15877 0.75297-2.4929 1.6759-0.11084 1.251-0.99026 0.37797-0.661 0.0731-1.742 0.79182-0.73517 1.5262-0.79706-0.0918-1.9219 2.5304-2.4119 0.20147-0.137 0.70601-0.506 2.7153-1.532 0.6757-0.872 5.2809-6.347m165.79-165.23-2.2482-0.901-0.624-2.506-0.0499-0.06-1.9433-1.159-0.80586-0.401-0.29595-0.153-0.46712-0.649-0.15154-0.323-0.12302-0.513-0.27991-3.135-2.0253-5.279-3.284-10.872-3.0148-9.586-0.24068-0.772-3.3999-10.253-0.61865-1.767m-4.8369 8.235-0.38688 0.795 1.1343 1.6715-1.1575 3.9715 0.1355 0.383 0.60439 0.596 0.73811 0.907 0.40293 0.499 0.0713 0.114 0.41719 0.674-0.53806 1.0829 0.32234 0.91809-0.18542 0.515-0.0802 0.137-0.79516 1.398-0.066 0.103-0.0945 0.138-0.22464 0.29-0.041 0.06-0.51525 0.378-0.34409-0.03-1.0768 1.397-1.125 0.708-1.1125 0.692-0.0838 0.08-0.0499 0.04-0.53843 0.972-0.0553 0.234v0.144l0.52773 1.84 0.29953 0.403 0.27277 0.217-0.0613 1.2858 0.39548 0.28491-0.30109 0.91455-0.44451 1.7288 0.53008 0.4372-0.0985 1.249-0.71253 1.1626 0.22275 1.2167 0.0275 0.99352-0.51013 1.1576-0.31231 0.20594-0.39109 0.84349 0.20265 0.56513-0.24805 1.2853 0.23913 0.27352-0.79544 1.0393 0.17679 1.0177 0.47858 3.6804 0.31836-0.0164-0.0213 0.67393 0.36536 0.22607-0.0731 2.01 0.0642 1.695 0.49157 1.2321-0.15887 1.4514 0.38994 1.3392-0.97856 1.037 0.20726 0.9198-0.3482 0.9948 0.38928 0.62114 0.52467 0.6805 1.8381 1.478m-13.138 19.375 1.5743 8.743 0.54556 3.182 0.62757 3.68 0.2817 1.622 1.6114 1.4831-2.264 2.3349-1.2516 1.278 1.7971 2.312m-356.71 148.89 9.9252-0.159 3.8653-0.08 5.1757-0.129 4.9403-0.121h0.35479l8.0978-0.241 1.5048-0.05 4.459-0.153 6.9496-0.287 0.54734-0.03 8.219-0.369 4.0774-0.146 0.78624-0.02 5.1436-0.272 6.265-0.355 3.8189-0.207 6.5164-0.371 0.49029-0.03 0.72385-0.02 1.6385 2.314 0.17828 0.239 0.11945 1.826-0.19433 0.529-0.12836 0.202-2.0093 1.766-2.8401 4.943 1.4673-0.1 6.0742-0.433 4.8115-0.314m40.044-137.18 5.1097-0.49 5.0634-0.522 2.7724-0.296 4.6034-0.467 2.2339-0.239 6.2365-0.717 1.6224-0.175 6.3007-0.739 0.49742 1.428 6.8712-1.052 0.64897-0.104 8.1014-1.326 1.9772-0.346 5.2131-0.884m4.4447 156.94 3.5782-0.419 2.3035-0.289 1.2801-0.167 7.1725-1.045 1.2159-0.194 6.9336-1.092m-119.71-22.533-0.36841 0.81812-0.46351 0.41406-0.38003-0.2585-0.16281-0.85068m-374.58 105.87 3.4962-24.959 1.1161-8.021 1.3657-9.857 1.8096-13.026 2.5459-18.337 1.2052-8.718 3.3037-23.908 3.1735-22.867 1.5743-11.154 1.2765-9.094 0.86112-6.237 0.78803-8.01 0.69889-5.048 0.69175-4.227 0.12837-0.884 0.60974-4.172 0.77198-5.552 0.41898-3.004 0.51346-3.737 3.1985-22.789 1.0768-7.964m576.87 7.451-5.9637 1.277-1.6795 0.363-0.11233 0.02-5.666 1.188-3.7422 0.779-3.6584 0.763-3.7387 0.756-4.1755 0.827-0.16759 0.03-10.874 2.058-4.2094 0.795-0.65253 0.121-7.3918 1.364-2.118 0.387-7.9659 1.455-1.4637 0.263-4.976 0.878-2.6333 0.449-8.7503 1.462-1.7026 0.274-0.90035-5.512-0.20146-1.23-0.53487-3.277-0.88786-5.474-0.30488-1.792-0.60974-3.688-0.79516-4.857-0.20324-1.105-0.82904-5.151-0.0303-0.185-1.3407-8.123-0.0428-0.25-1.3086-7.987-0.47781-2.917m144.94-31.435 1.8096 6.307 0.4992 1.897 1.2714 5.1745-0.42431-0.0206-0.28257 0.33789 0.0187 0.36691 0.23939 0.21763 0.0616 0.45272 0.16757 0.308 0.0352 0.19037-0.18216 0.29169-0.0697 0.38137-0.18886 0.0696m-665.09 16.085-7.7377-1.205-10.116-1.637-0.91818-0.146-1.2284-0.317h-9e-3l-3.5515-0.614-4.3306-0.748-11.628-1.967-0.49029-0.08-5.584-0.95-0.53129-0.09-1.4299-0.249-0.19968-0.04-1.3425-0.32-1.1179-0.282-4.3466 22.589-3.9294 20.07-0.93244 4.799-1.5992 8.26-3.8243 19.694-0.46711 2.38-1.847 9.658-2.4265 12.367-2.6119 13.757-0.69176 3.584-0.72206 3.786-0.0891 0.462-0.73098 4.172-0.44215 2.316-0.77912 4.042-2.3302 3.148-0.2496 0.282-0.0963 0.06h-0.016l-1.1161-0.02-0.36192-0.04-0.0963-0.02-0.23356-0.178-0.16046-0.168-0.4261-0.676-0.12837-0.385-0.0161-0.192-9e-3 -0.05-0.0321-0.176-0.22464-0.563-0.54556-0.772-0.2496-0.234-2.3391-0.69-1.059-0.217h-1.1268l-2.0574 0.483-0.18363 0.1-0.24961 0.225-0.016 0.146-0.23356 2.25-0.49742 6.588-0.22464 4.027 0.24069 2.844 0.16759 1.348 0.025 0.675-0.12837 2.805-0.0232 0.513-0.0981 0.458-0.16758 0.548-1.7205 2.875m211.67-156.87-0.75594 8.959-1.1892 14.054-0.60261 7.002-0.25852 3.082-0.32805 3.948-0.77911 9.033m182.05 266.8-1.343-0.76577-0.72864-1.7947 1.7489-1.4262 0.14441-1.1383 2.291-3.194 0.0143-4.441-0.59727-3.621 0.76842-0.647 0.0802-0.2 7e-3 -0.119-0.27991-1.433-0.55447-0.669-0.0571-0.06 0.22464-0.804 2.8205-5.311 0.35479-1.542-0.0731-7.288-0.91461 0.24-0.20325-1.189-0.1355-0.754-0.58656-2.557-1.8007-2.612-2.1127-2.219-0.98058-5.919-2.7403-3.062-0.62579-4.967-0.0981-4.523-0.15155-6.935-0.0802-4.34-0.0713-3.189-0.12124-5.811-0.13728-6.493-0.4582-0.378-0.353-0.144-1.8488-0.371-1.0697 0.155-0.27991 0.03-0.0963 0.09-1.8488 0.938-1.0287-0.561-0.27991-0.184-0.7809-0.499-0.12658-0.17-0.1462-0.335-0.15154-0.394-4.9742-1.431-2.3623-0.965-3.2626-2.612-2.2268-1.904-1.2052-0.403h-0.13549l-0.0642 0.03h-0.0267l-0.40828 0.619-9e-3 0.03v0.04l-7e-3 0.02 7e-3 0.02 0.0731 0.154v0.03l0.0321 0.2-0.0321 0.232-0.10341 0.233-0.10697 0.104-0.50634 0.33-0.14976 0.02-0.28169 0.03-0.55448 0.07h-9e-3l-1.2872 0.06-0.71315-0.06-1.8809-0.25-0.0713-0.06-0.0749-0.128v-0.02l-5e-3 -0.118 0.0571-0.162 5e-3 -0.153-0.20147-0.514-0.14441-0.06-0.61687-0.03-1.3906 0.722-1.5957 0.833-1.6349 0.615-0.92353-0.17-1.1-0.217-0.25851 0.03-0.41006 0.03-2.1377 0.178-0.96454 0.223-0.16046 0.563-0.11945 0.555-9e-3 0.06-0.016 0.06-0.0553 0.177-0.0481 0.153-9e-3 0.02-0.0232 0.03-0.17828 0.186-0.0232 0.03-0.34588 0.148-0.39401 0.105-2.8366 0.701-0.18363-0.251-0.82725-1.125-0.24961-0.08-0.22464-0.02-0.97344 0.185h-0.025l-0.17651-0.121-1.9522-1.311-0.0161-0.06-0.016-0.111-0.016-0.283 0.0642-0.369-1.9041 0.859h-0.0161l-0.92352 0.155-1.7936-0.549-0.19255-0.133-0.312-0.35-0.96454-1.982-0.18541 0.103-2.8597 4.96-0.0891 0.119-0.19255 0.154-0.27278 0.09-0.30487-0.04-0.26565-0.09-1.028-1.6856 0.68272-2.0736-1.3691-0.73539-2.7075 2.3751-1.1157-0.30053-0.16759-0.112-0.11232-0.135-0.0161-0.04-0.0499-0.12-0.37618-1.718-1.4637 0.394-0.68284-0.477-1.9362-1.292-0.65074 0.82-0.99663 1.036-0.94849 0.747-0.59369 0.176-0.22643-0.02-1.6777-0.765-0.21037-0.194 0.49028-1.061 0.16225-1.237-0.7078-0.28-0.65967 0.16h-0.43326l-0.80408-0.24h-0.0321l-0.0481-0.05-0.32983-0.659-1.1482-1.888-2.9417-0.924-0.72385-0.162-0.36905 0.209-0.76307 0.964-1.0127 0.909-0.016 0.02h-7e-3l-0.54021-0.194-0.89856-1.446-0.43324-0.369-0.41897-0.276-0.19255-0.01-1.7205 0.53-1.2373-0.05-1.7436-0.427-1.7508-1.046-0.29061-0.134-1.7436-0.137-0.76307 0.01-0.35301 0.02-0.7078-0.16-0.3851-0.12-0.24069-0.07-9e-3 -0.01-0.32805-1.783 0.0161-0.499 0.0232-0.531v-0.02l-0.89143-1.551-0.94136-0.507-0.82725-0.449-0.8112 1.453-7e-3 0.02-0.025 0.04h-0.016l-0.14441 0.06-0.63471-0.06-0.61865-0.587-0.46711-0.272-0.28883-0.122-0.90035-0.105-0.20859-0.03-0.10341 0.04-0.73276 0.925h-0.89144l-0.57943-0.137-1.3175-1.253-0.47424-0.562-0.98058-1.271-2.7545-1.373 0.12836-4.275 0.27278-6.565 0.15333-3.519 0.23177-5.547 0.19433-4.546 0.24782-6.06 0.16938-4.04 0.37796-10.278-9.9484-0.444-7.4809-0.376-2.4033-0.12-9.8682-0.563-7.4791-0.473-2.3873-0.155-15.372-1.068m119.35-213.44-10.681-0.106-12.045-0.217-0.47424-0.02-11.498-0.344-4.5089-0.161-11.434-0.435-2.603-0.119-9.9252-0.483h-0.19968l-3.6478-0.186-0.36192-0.02h-0.13015l-1.9273-0.1-1.4548-0.08-4.6604-0.257-1.6385-0.09-0.93244-0.06-2.0093-0.113-2.4283-0.153-2.3052-0.136-1.9362-0.121-0.25852-0.02-0.15868-0.02-15.092-1.045-0.85934-0.06-16.802-1.334 0.64183-7.657 0.51525-5.955 0.19255-2.3 1.3336-15.7 0.13728-1.535 1.1642-13.612 0.71493-8.936 0.45819-5.544 0.69176-8.292\"\r\n style=\"fill:none;stroke-width:.89143;stroke:#000\" />\r\n\r\n <g id=\"separator\">\r\n <path id=\"separatorAK,HI\"\r\n d=\"m275.15 525.53v63.053l41.271 37.326m-315.26-178.34h197.18l76.81 77.957h98.592l60.76 61.907v38.472\"\r\n style=\"fill:none;stroke-width:2.3177;stroke:#221e1f\" />\r\n </g>\r\n</svg>", styles: ["#counties{fill:#d0d0d0;stroke:#000;stroke-width:.17829}#borders{fill:none;stroke:#221e1f;stroke-width:.89143}#separator{fill:none;stroke:#a9a9a9;stroke-width:2.3177309}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
27588
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: UsMapComponent, isStandalone: false, selector: "us-map", inputs: { selectedStates: "selectedStates", allowedStates: "allowedStates", isReadOnly: "isReadOnly", filteredLocations: "filteredLocations" }, outputs: { click: "onMapClick" }, usesOnChanges: true, ngImport: i0, template: "<style>\r\n #counties {\r\n fill: #d0d0d0;\r\n stroke: #000;\r\n stroke-width: .17829;\r\n }\r\n\r\n #borders {\r\n fill: none;\r\n stroke: #221e1f;\r\n stroke-width: .89143;\r\n }\r\n\r\n #separator {\r\n fill: none;\r\n stroke: #a9a9a9;\r\n stroke-width: 2.3177309;\r\n }\r\n</style>\r\n<svg *ngIf=\"allCoordinates!=null\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 600\">\r\n <path *ngFor=\"let coordinate of allCoordinates.locations; let i = index\" [attr.id]=\"coordinate.id\"\r\n [attr.d]=\"coordinate.path\" [attr.fill]=\"coordinate.fillColor\" [attr.stroke]=\"coordinate.strokeColor\"></path>\r\n\r\n <path id=\"borders\"\r\n d=\"m218.14 190.73-4.0008-0.788-3.6157-0.715-4.4037-0.997-2.5156-0.506-2.0806-0.328-24.5-5.201-1.9291-0.442-6.4932-1.487-0.12836-0.05-19.43-4.418-9.6186-2.211-9.0231-2.275-0.58835-0.151-10.533-2.683m298.16 94.021-0.60261 9.927-7e-3 0.134-0.59548 10.069-0.11232 1.995-0.49029 8.084-0.12837 1.902-0.49742 8.013-9e-3 0.144-0.72385 12.125-0.12836 2.177-0.3851 5.898-0.58657 9.162-5.6963-0.401-9.451-0.779-2.307-0.178-1.5261-0.113-16.754-1.246-13.161-1.1-4.8708-0.448-2.8044-0.315-1.1892-0.114-9.032-0.915-5.2238-0.538-8.5168-0.876-2.5548-0.274-4.582-0.505-2.3445-0.451-7.6111-0.9-1.1-0.136-16.24-2.032-12.029-1.608-17.253-2.452-5.9548-0.9-2.94-0.58-4.6052-0.697-11.933-1.872-20.257-3.414-6.4451-1.143-20.635-3.84m122.22 140.38-1.5101-1.615-0.18542-0.249-0.35272-0.42662-8e-3 -0.26999-0.091-0.33842 0.40028-0.3547 0.14838-1.2071-0.35526-0.11628 0.0311-0.40265 0.39485-0.19134 0.78818 0.0621 4.2272 0.447 7.3276 0.772 20.885 2.131 1.3675 0.128 15.95 1.43 0.85934 0.07 4.9813 0.408 7.6913 0.603 1.141 0.09 1.0038 0.07 1.3675 0.106 1.0911 0.09 0.47603 0.03 0.15154-1.993 0.7399-10.006 0.74702-10.05 0.8843-9.868 0.39402-4.195 0.52951-5.841 0.8843-11.009 0.0161-0.241 0.77198-10.021 0.35301-4.766 0.40114-5.286 0.76307-10.139 0.2086-2.694 0.54734-7.298 0.43502-6.074 0.27991-3.705 0.75594-0.449 0.85043-11.547m120.05-122.47 0.57765 0.04 0.22464 0.09 0.17829 0.248 0.0713 0.265 7e-3 0.355-0.11945 0.319 0.19968 2.646 0.51525 0.965-0.21038 1.422 1.4067 3.889 2.2589 4.195 0.30487 4.243 2.3962 4.065 0.74702 2.635 0.25674 4.677 1.2052 0.724-0.23356 2.619 0.76485 3.358-0.54021 2.732 1.5511 4.598 0.97166 1.414 0.22643-0.491 0.65075 0.578-0.37797 0.676-0.19968 0.185 0.0963 0.408 1.1321 2.846 1.2141 1.182 0.0463 0.119-5e-3 0.04v0.03l-0.0178 0.417v0.06l4.2985 6.044 9e-3 0.216 0.11232 0.162 2.1216 1.92 0.85935 0.553 0.43324 0.16 0.33696 0.128 0.0642 0.02h0.0802l0.66858-0.06 0.13015-0.05 0.1034-0.1 0.0143-0.02 0.60261-0.683 1.4709 1.849 0.14442 0.683 0.13728 0.634-0.36906 0.822-0.37083 0.06-1.2694 1.124-0.0713 0.08-0.6044 0.882-0.20859 0.298-0.6971 2.097 2.3855 2.624 3.1664 5.017 3.3999 0.907-0.082 1.079 0.025 1.606 0.0571 4.565 7e-3 2.522 0.025 6.044 0.0232 2.058 0.0963 7.614 9e-3 0.541 0.0553 8.429 7e-3 0.451 0.10518 6.707 7e-3 0.603 0.0874 6.525 0.0178 1.359 0.0731 5.359 0.0392 2.291 0.0553 3.903 1.1339 7.803 0.21751 1.377 1.2141 7.921 0.4261 2.788 0.84152 5.554-7e-3 0.403-0.11232 10.341-0.0481 4.747-0.0392 5.121-0.0571 7.343-0.041 5.761-0.0463 7.001m34.383-303.16-0.082 0.06-0.22285-0.1-0.91462-0.893-0.42789 0.03-1.1232 0.765-0.0892 0.183-0.016 0.17 0.0553 0.144 0.0802 0.105 0.016 0.02 0.016 0.257-0.21573 0.563-0.0731 0.07-0.0784 0.05-0.47603 0.03-0.44215-0.04-0.36014-0.25 0.20859 5.632 0.21573 5.964 0.041 0.996 0.0321 0.901-2.3391 1.46-3.3482 2.204-0.79872 0.698-0.20147 0.266-0.19968 0.36-1.6135 3.231-0.65432 2-0.0214 0.364 7e-3 0.151 0.041 0.61 0.0553 0.451 0.21751 0.168 0.77199 0.13 0.32091-0.05 1.2712 0.685 0.79338 1.501 0.32091 1.624-0.60974 1.558-0.42789 0.53-0.0214 0.02-0.19433 0.176-0.24782 2.001-0.33875 3.029 0.0499 0.756 0.39936 0.852 0.34945 1.615-0.1248 1.735-0.56874 2.717 1.166 0.674 1.6937 1.439 0.17651 0.224 0.041 0.225 1.1892 1.182 0.25851 0.119 0.69889 0.08 2.209 0.09 0.28169 0.06 0.18542 0.09 0.15867 0.137 0.0571 0.09 0.0907 1.0972 1.2126 0.84785 2.6351 1.004 1.8087 0.86839 0.88464 0.84954-0.0206 0.51007-0.10888 0.35855 0.38146 0.33967 0.34375 1.2638 0.24945 0.52827 5.2369 3.7568 2.5868 0.74896 2.4015 3.054 0.40293 2.78 1.1 5.151 0.28882 1.775-0.016 1.182 1.7846 1.255 0.38688 0.491 0.50456 0.811-0.0642 0.287-1.2837 2.163-0.43681 1.695 0.35658 2.186 0.37618 1.758 1.535 3.409 0.2086 0.433 1.3568 0.9 0.46712 0.216 0.8843 0.21 2.1769 0.418 0.8433 0.201 0.19255 0.1 0.12124 0.121 1.0697 1.945 0.18363 0.579 0.0107 0.13-0.0642 0.111 3.6139-0.178 8.4294-0.491 1.503-0.09 7.3508-0.38 0.60261-0.04 7.1778-0.394 2.7634-0.184 1.166-0.08 6.7802-0.563 1.7526-0.177 6.7357-0.465m-47.875 3.036-0.23534 0.403-7e-3 0.05 0.016 0.129 0.0392 0.116 0.13728 0.142 0.39223 0.282 1.1357 0.587 1.4441 1.005h7e-3l0.0428 0.04 1.0109 1.172 0.0481 0.07 9e-3 0.09-0.0963 0.651-0.0963 0.215v0.146l0.23534 0.53 0.0125 0.03 0.48316 0.603 0.016 0.01 0.29061 0.233 0.312 0.202 0.7078 0.226 2.972 3.541 0.18542 2.405-1.3265 3.437-1.2052 1.352-0.26565 2.505-0.89143 1.198-1.0198 1.189-3.2466 1.608-1.3835 0.353-0.58656 0.02-0.24782-0.03h-1.0519l-2.4104 0.658-0.6454 0.234-0.18364 0.119h-0.016l-0.12124 0.171-0.016 0.05-0.23891 0.982-0.20325 0.792-0.49029 1.966 0.025 0.207 1.1642 1.4 0.54912 0.272 0.22999-0.03 0.13907 0.06 0.14619 0.152 0.80942 1.326-0.016 0.555 0.016 0.06 0.0642 0.2 0.0874 0.62-0.0695 1.872-0.1462 0.683-0.0963 0.144-0.49742 0.282-0.18542 0.182-1.3425 1.915-0.0642 0.297-0.11945 2.603-1.207 1.416-0.56161 0.01-0.45819 0.03h-0.14442l-0.93422 0.335-0.10341 0.06-0.43502 0.248-0.15332 0.1-0.0535 0.06-0.0642 0.06-0.0642 0.07-0.73097 1.123-0.0267 0.171 0.0571 0.193 0.35479 0.167 0.28882 0.419 0.0963 0.28 0.0143 0.232-0.0535 2.082-0.041 0.202-0.2086 0.167-0.53129 0.187-1.2837 3.062-0.10697 1.125 1.2302 5.858 1.7526 4.249 1.043 1.656 2.4782 1.886 4.2343 4.397 4.3128 3.833 0.82725 2.821-0.0143 0.288-0.48315 0.747-0.0178 0.07 0.0446 0.161 0.95562 2.562 3.7672-0.995 3.1646 0.77 0.45819 0.139 0.44929 0.216 0.33874 0.2 1.7436 1.053 0.0731 0.129 0.016 0.135-0.0642 0.532-0.0392 0.217-1.2944 1.58 0.36727 1.85-1.1785 3.053-0.0802 0.283-1.2391 3.222-0.0499 0.06-0.0802 0.16-0.26208 0.892-0.0339 0.1-0.016 0.234 0.0339 0.964 0.24068 1.034 0.2086 0.515 0.32983 0.451 0.0571 0.08 0.0464 0.05 1.5119 1.47 0.91283 0.683 5.0883 4.645 4.8548 1.348 3.1164 5.159v0.137m1.3657 24.716 0.98949-0.05 0.18007-0.339 0.0285-0.06 0.0232-0.09 0.0571-0.227 0.016-0.06v-0.1l-7e-3 -0.04-0.0571-0.259-0.11232-0.266-0.0107-0.02-0.11767-0.183-0.025-0.02-0.0392-0.03-0.0481-0.03-0.28169-0.08-0.51347-0.08-0.33696 0.05-0.1141 0.07-0.21038 0.281-0.0303 0.04-0.0232 0.09-0.025 0.105-0.0178 0.08 0.0178 0.07 0.0178 0.1 7e-3 0.02 0.19968 0.426 0.43324 0.609 0.17221 1.4366 0.73163 1.0374 0.0356 1.0723-0.79321 0.19069-0.96399 0.24949 1.1929 0.8177 0.42823 0.81697-1.1619 0.66881-1.5765-0.18128 0.76907 1.2283 1.167 0.73525-0.15479 0.85658-1.2512 0.69806-0.12674 1.2144-0.61534 0.89166 0.0377 0.67553 0.89097 0.33102 0.47617 0.55124-0.26856 0.98014-0.98147-0.34724-0.73569 0.0621-0.1568 0.82911 1.205 0.58178-0.22483 0.82141-1.1873 0.209-0.28817 0.5779-0.428 0.41332-1.0431 0.36073-0.56619-0.0977-0.83543 0.76386 0.63059 1.2246 0.94802-0.50345 0.70215 0.72534-0.36423 0.74618-1.5684 0.91194 0.54536 0.76537 0.31793 1.0381-1.3548-0.31409-0.28014-0.63513-0.71907 0.0802-0.0609 1.1084 0.52054 0.70173-0.28397 1.8251-0.33266 0.0152-0.59069-0.62596-0.54086-1.0837-0.50482 0.64672-0.87967 0.29964 0.1373 1.1296 0.35218-0.19852 0.1536-0.42278 0.46648-0.25947 0.84871 0.74874-0.29434 0.36918 0.13487 0.58916-0.17755 0.67676-1.0595 0.64707 0.26079 0.47372 0.94121-7.3e-4 0.54624 0.43556 0.16377 0.66029-0.61348 0.88774 0.83425 0.29002-0.0918 0.81537-0.54234 0.63711-1.227-0.60771-0.41757 0.45107-0.57819 1.7883-1.5967 0.11225-0.22464 0.717 0.0321 0.321 0.47246 3.102-2.0966 0.769-2.8918 4.605 0.25673 2.676 0.20147 2.064-0.1355 0.442-0.0178 0.04-0.041 0.03-0.65075 0.57-0.81834 0.392-0.98949 0.204-0.98593 0.192-1.8007 3.231-0.85399 1.759-0.27278 0.569 0.0686 0.242 0.85667 0.699 0.20146 0.5-0.11232 0.772-3.7137 1.87-1.5261 6.573-0.10519 0.523 0.025 0.05 0.1141 0.203 0.56874 0.426 0.53842 0.435v0.02l-0.0499 0.247-0.33696 0.289-1.4049 0.565 0.26386 0.73 0.025 0.01 0.97345 0.663 0.79516 0.537 0.15155 0.536-0.23178 0.459-0.98949 0.288 0.96453 2.759 0.65075 1.18 0.4992 0.529 0.0553 1.767-0.61865 2.518-0.56161 0.634-0.15511 0.177-0.63292 1.021-0.20146 0.731 0.0321 0.186 1.5422 6.989 0.11411 0.274 0.0214 0.04 0.0606 0.07 0.0214 0.04 0.041 0.03 0.18364 0.16 0.0481 0.04 0.61153 0.191 0.13728 0.314-0.4368 1.47 0.0339 0.369v0.03l0.0553 0.08 0.082 0.128 0.016 0.04 2.1448 2.282 0.1355 3.318-2.2411 0.278 1.9612 2.291-3.9936 5.828-2.225 2.942-0.19255 0.346-0.30844 0.528-0.0143 0.02-2.0967 4.212-0.0481 0.09-0.0731 0.155-7e-3 0.02-0.73098 5.992-0.47424 2.477-0.47603 3.592 9.0552-0.426 2.2838-0.112 4.6052-0.259 5.0954-0.297 0.37618-0.01 3.9384-0.251 1.7276-0.105 8.3242-0.553 2.1127-0.144 0.041 0.713-0.24247 1.214-0.1979 0.442-0.12302 0.02-0.16046 0.02-0.0463 0.05-0.25852 1.075-0.29774 1.469-0.2389 1.213-0.21929 1.642 3.3019 4.548 0.0339 0.03 0.12836 0.13 1.2302 2.5 0.0303 0.426-0.18363 0.465-0.0499 0.193 0.016 0.123 0.62936 1.194 0.19255 0.371 0.43145 0.505 0.1462 0.169 0.0499 0.03 0.0713 0.05 0.0481 0.03h0.0374l0.91818-0.06m-3.5675-157.16-0.85756-1.927 4.0632-3.953 0.0981-0.03 6.9033 2.935 1.3247 0.141 0.13549-0.02 0.41898-0.185 0.21573-0.595 0.26564-1.277-0.51346-1.141-0.22464-0.216-0.24247-0.137-0.76307-0.916-0.15511-0.498 0.0107-0.153 0.51525-2.273 0.0945-0.227 0.23355-0.303 0.16224-0.114 0.12837-0.1 0.312-0.143 0.11232-0.05 1.0537 0.344 0.45641-0.608 0.30666-0.283h0.016l0.0874-0.06 0.43502-0.264h0.0392l0.1141-0.03 0.312-0.09 2.8865-0.611 0.18363-0.04 0.3441-0.392v-0.371l-1.4352-1.487-0.1462-0.264-0.3851-1.045-0.0107-0.02-0.0945-0.52-9e-3 -0.03 0.025-0.161 0.0963-0.256 0.0232-0.05 0.1462-0.248 0.29061-0.547h0.0143l0.83616-0.608 0.21751-0.236 0.1355-0.247 0.0874-0.234 0.23356-0.875 0.85347-0.0123 0.62549 0.40972 0.36884-0.59896 0.35566-0.30474-0.761-1.3758 0.1639-0.64788 4.0756-0.323 0.71405-0.21545-0.13273 1.5863 0.97575 0.25714 0.74424-0.94261-0.96608-1.0453 0.53276-1.6102 1.0862 1.0787 1.4406-0.43465 2.7563 0.739 0.64361 0.45 2.6262 1.75 1.3425-2.424 1.1179-1.047 2.7973-1.854 3.1967 3.316h0.13728l0.2389-0.08 0.49921-0.387 1.1731-2.674-0.1355-1.373 0.0303-0.252 0.0731-0.103 0.0963-0.06 0.36905-0.07 0.10519-0.01 3.6246-2.329-0.0553 0.649v0.04l7e-3 0.161 7e-3 0.105 0.0161 0.04 0.12836 0.449 0.10519 0.161 0.041 0.06 0.0874 0.06 0.81121 0.537 0.78089 0.306 0.12837 0.02 2.5959 0.128 0.53664-0.177 0.86826-0.296 0.44215-4.041 1.6723-2.757 2.4978-2.41 3.2787-3.712-0.0553-1.449 1.2444-3.736 2.4835 0.862 2.9239-2.001 3.8902-2.63-0.24247-1.003-1.774-2.828 0.81833-1.847 3.5515 0.305 2.0093-0.733 3.4873 1.286 1.9522 3.198 0.16937 1.054 3.3019 0.939 2.6369-0.281 0.60975 0.08 0.21751 0.08 0.11232 0.09 1.5671 1.622 1.3906 0.69 1.0269-0.121 0.0963-0.811 0.13728-0.225 0.18542-0.128 1.3978-0.612 0.21929-0.05 0.15154 0.02h0.025l0.72028 0.177 1.9148 0.46 0.0481 0.02 0.60083 0.282 1.0608 0.777 0.65297-0.59473 1.7154-0.2291 0.45033-1.306 1.2409-1.2932 0.31914-0.145 1.4869-0.674 0.48494-0.212h0.1123l0.18364 0.08 0.082 0.09 0.0232 0.04 0.0481 0.07 0.0303 0.06 9e-3 0.03 7e-3 0.03 0.0339 0.137 0.0143 0.163v0.02l9e-3 0.01-0.0178 0.278 0.16937 0.724 0.49921 1.502 0.041 0.09 0.11945 0.255 0.14442 0.169 0.0178 0.03 0.3851 0.257 0.0802 0.04 2.8668 1.116 1.383 2.1153 0.11771 1.4139 0.55823 0.72707 0.0458 0.8796-0.17561 0.64217-0.44929 1.966-0.0189 0.51345 0.80496 0.43682v0.02l0.33398 0.62528 0.53577 0.22659 0.90507 1.442 1.2152 0.44384 0.025 0.03 7e-3 0.02v0.129l-0.46533 0.804 1.6364 1.6768 2.088 2.5722 0.0303 0.12 0.67214 1.036 1.3255 0.77503 0.61789-0.36623 0.54941 1.0489 1.1657 1.0033 1.18 0.26062 1.0688-0.37538 0.47543 0.21776 0.61561 0.23406-0.0558 0.36194-0.8112 0.731-0.0481 0.153 0.12837 0.344 1.4054 0.80569 0.1457 1.3963 1.5119 1.317 0.21573 0.107 2.0432 0.738 1.2034 0.715 2.1056-0.417 0.0571-0.03 0.78803-0.724 0.0143-0.02 1.3182-1.3973 0.73081-1.4797 3.0126 2.066 2.0876-1.2709 2.1092-0.75413 1.2705-0.53696 0.75009-0.88698-0.74377-0.7155 0.28218-0.49001 0.108-0.82755 1.7954 1.037 2.2339-1.677 0.18542-0.147 1.8078-1.429 0.86112 1.237 0.78693-0.70655 0.77826-0.50404 0.11836-0.30902 0.71811-0.40625 0.363-0.32517 0.2201-0.58548-0.21297-0.10124-0.27033 0.41256-0.56864-0.14208 0.29893-0.28017-0.20669-0.60536 0.7063-0.6332 1.0358-1.254-1.585-1.239 1.1895-3.3749 2.107-3.2931 1.2444-2.836 0.33698-0.81999-0.28381-1.7093 1.4232-1.6756 0.66127-0.89109-0.43324-0.875v-0.03l9e-3 -0.08 1.1-1.71 0.47425-1.688 0.0891-1.625 0.0303-1.904 1.7775 0.426 0.36192 0.161 0.33697 0.337 1.0911 1.617 3.079 0.522 1.2462-1.799 1.8078-6.976 0.81169-1.8216 2.4631 1.2747 0.95813-2.8075 0.38772-0.39365 0.17315-0.58856 0.50785-0.22511 0.0795 0.55151 0.6329-0.68385 0.21625-0.74692 0.48656-0.69373 0.38722 0.21592 0.5854-1.3159-0.3105-0.17393 0.3456-0.77223 0.51501-0.95773 0.55744-0.33611 0.31363-0.33026 0.0683-0.48408 0.48209-0.63792-0.38897-0.25075-0.063-0.24592-0.19213-0.0964 0.40201-1.1592-0.39778-0.11886 0.14721-0.12984 0.16028-0.60726 0.45662-0.80021 0.21518-0.88435-0.44589-0.0266 0.20286-0.77186-0.39584-0.37058 0.0299-1.5315 2.3966 1.176 3.9526 2.0817 4.138 2.1934 1.0626-4.5688m-203.83 67.552 0.016 0.209 0.1141 0.46h7e-3l0.51347 0.958 0.33696 0.504 0.47603 0.467 0.22464 0.282 0.28882 0.651 7e-3 0.02 9e-3 0.04 0.10341 0.387 9e-3 0.02-9e-3 0.03-0.0713 0.708-0.0731 0.217-0.0143 0.02-0.0178 0.02-0.016 0.02-0.2086 0.107-0.65788 0.176 0.0303 2.017 0.45998 0.658 1.1161 2.089 0.64183 1.574 1.2141 0.99 3.4962 0.376 0.65075 0.838-0.68819 2.298-0.52594 0.305v0.53l1.0608 0.563-0.70601 3.188-0.60014 0.69835-0.20025 0.98537-0.83113 0.0314-1.1337-1.0951-1.2924 3.19 1.164-0.184 9.3618-0.676h0.13728l0.19968-0.02 5.4895-0.396 0.49742-0.03 7.9783-0.554 0.28809-0.71461-0.94775-3.4394 1.0715-0.06 2.9881 0.06-7e-3 0.707 2.9007-0.338 0.96454-0.111 5.5608-0.579 4.0239-0.394 0.98771-0.114 5.4074-0.649h3.6656l2.7492-0.676 3.7922-0.136 4.1862-0.176 3.4392-0.21 6.4201-0.617 2.5406-0.46 0.35301-0.06 5.641-0.354 3.3589-0.154h0.1355l9.435-0.884 0.62757-0.07 4.3556-0.499 1.0358-0.103 4.6052-0.884 3.703-0.41 8.8626-1.118 2.8044-0.29749 3.9748-0.41786 5.7141-0.83012 0.91461-0.137 1.7686-0.241 3.8474-0.57688 0.17212-0.77865 1.7454-0.209 3.2698-0.442-0.57767 0.90581 6.0261-0.58089 8.228-0.997 1.166-0.121 4.0917-0.643 3.1414-0.337 7.0209-0.988 0.47424-0.08 5.6499-0.951 3.6959-0.618 0.73097-0.136 2.2981-0.408 2.2428-0.412 1.453-0.257 6.1723-1.116 1.1161-0.217 4.9992-0.933 2.3944-0.481 4.9974-0.957 2.6369-0.523 2.3855-0.456 8.4775-1.672 2.3623-0.516 4.4679-0.91628-0.13419-0.20431 7.747-1.4414 3.1949-0.675 3.4213-0.722 4.5838-0.981m-79.996 151.57-0.30309 0.03-1.6723 0.202-1.223 0.06-2.3124-0.257-3.063-0.658-0.83617-0.563-2.1501 1.253-0.17116 2.484 0.0874 0.474 0.30665 0.465 0.60261 0.788 0.25852 0.706 0.0143 1.537-0.10519 1.573-0.10341 1.592-2.25 0.435-0.13015-0.03-0.40828-0.321-0.36905-0.529-0.19433-0.514-0.57765-3.221-4.0346 0.247-0.80407 0.06-2.4586 0.176-2.0895 0.153-8.8448 0.608-3.416 0.236-0.95027 0.06-5.0277 0.346-2.6119 0.169-5.2078 0.355-1.5083 0.102-3.8991 0.274-1.9701 0.137-9.5419 0.642-3.4819-6.283-9.5954 1.173-10.597 1.231-2.9827 0.296-3.9455 0.401-5.8995 0.565-1.8863 0.143-7.3936 0.659-8.5489 0.812-0.44394 3.077 0.25852 0.438 2.0004 2.181 0.62935 0.433 0.11054 0.04 0.32983 0.06 0.66679 0.344 0.88431 0.548 0.24068 0.394 0.0713 0.272 0.0321 0.378-0.19968 5.023-0.26565 2.514-1.2694 0.572m161.57-105.14-2.4336-1.736-9.3048-6.647-8.3331-6.072-0.25495-0.177-4.8779-3.246-4.4447 0.723-7.2973 1.058-4.4732 0.663-4.0115 0.592-0.37797-0.07-9e-3 -0.218-0.12837-2.346-1.3175-1.327-1.494-1.526-0.68455-0.2579-1.4372 1.5536-0.62476-0.42965 0.44815-1.3492-0.49188-0.74684-5.3022 0.483-0.72385 0.07-7.4631 0.788-1.9772 0.202-1.7615 0.192-4.5962 0.475-2.5994 0.119-3.8278 2.009-3.2947 2.25-2.4176 0.619-1.9612 0.947-1.7846 0.863-0.40293 1.831-1.7044 1.324-1.2355 2.243-0.30666 1.737 0.37084 0.618 4.771 2.933 1.1517 0.803 1.166 0.162 0.2086-0.105h0.016l0.74881-0.186 0.67392-0.09 0.39402 0.112 0.19255 0.147-7e-3 0.06 0.62578 0.966 1.9915 2.803 0.7078 1.842 3.3429 4.122 0.78803 1.198 2.8437 1.693 0.11945 0.03 0.26743-0.104h0.0874l1.6402 0.827 0.49742 0.355 1.182 0.972 0.76307 1.439 2.2001 1.92 1.8578 0.786 0.31201 0.291 0.16224 0.153 0.90035 0.852 1.2748 1.487 0.45107 1.742 1.248 1.767 1.7882 1.351 3.2074 1.503 1.576 0.867 3.6549 6.452 0.82903 3.359 2.0093 0.804 0.36906 0.137 1.7116 1.414 2.0396 4.138 0.2496 1.221 0.0998 0.45 0.18185 0.918 0.2496 0.996 0.0892 0.09 1.0858 0.419 3.5746 0.674m63.804-151.15 1.0304-0.19946m5.7308-1.1092 0.59034-1.208 6.5467-2.227m1.2373-10.35-5.1008 1.115-0.25852 0.06-0.6757 0.154-0.28348 0.05-0.24425 0.05-0.066 0.01-0.895 0.168-0.36727 0.07-1.0448 0.199-0.52238 0.1h-0.0642l-1.2284 0.208-0.54021 0.09-0.20682-0.725-0.19255-0.658-0.24068-0.867-0.46712-1.665-1.223-4.355-1.9683-7.007-0.64184-2.289-0.32091-1.134-0.50634-1.799-1.6065-6.0087c-0.1181-0.3089-0.1886-0.5974-0.23397-0.87511l-0.22409-0.83818 0.1571-0.0351 0.0231-0.0918 0.0561-0.22342 0.091-0.29813 0.10239-0.28128 0.1132-0.26472 0.1235-0.24844 0.13328-0.23247 0.14253-0.21678 0.15127-0.20137 0.15947-0.18627 0.16716-0.17145 0.17432-0.15693 0.18096-0.14268 0.18708-0.12875 0.19267-0.11508 0.19775-0.10172 0.2023-0.0887 0.20633-0.0759 0.20983-0.0634 0.21281-0.0512 0.21528-0.0393 0.21721-0.0276 0.21863-0.0163 0.21953-5e-3 0.21989 5e-3 0.21974 0.0159 0.21906 0.0261 0.21787 0.036 0.21615 0.0456 0.2139 0.0549 0.21114 0.0639 0.20786 0.0726 0.20404 0.081m4.349-38.04-1.0144 0.731-0.48138 0.522-0.41006 0.844-0.0874 0.256-0.20859 0.892-0.0321 0.314 0.0713 0.07 0.0321 0.378-0.1034 0.691-0.47425 1.118-0.68462 0.963 0.0963 0.119-1.872 3.497 1.6313 1.922 0.0571 0.135-9e-3 0.136-0.57765 1.77-0.35123 0.487-0.2603 0.03-0.25673-0.03-0.1355 0.04-0.29239 0.686 0.17829 1.387 0.42432 1.641 0.1141 0.208 0.18721 0.362 2.4657 1.006 1.3015 2.619 1.6706 1.012 0.1141 0.06 4.6355 3.56-0.99855 0.84489-0.72684 0.0798-0.21124 0.71388-1.8324 1.5504-1.109 1.616-1.3086 2.433-0.68641 0.981-2.1008 0.89552-1.1037 1.483-0.82356 1.5955-0.2292 0.78998-0.049 0.94306-0.33871 0.65734 0.18292 1.1643m17.35-25.62 0.0377-0.45335-0.14113-0.5183 0.2219-0.37502 0.19869-0.015 0.14734-0.28922-0.0182-0.74781-0.0641-0.2123-0.11107-0.55693 0.2363-0.30656 0.39896-0.11105 0.65066-0.15787 0.59126-0.25239m0.61099-1.3933 0.0985-2.128 0.4569-2.3499 0.12383-0.79119-5.3e-4 -1.9628-5.95-1.7665-0.40114-0.121-2.5156-0.852-6.3149-2.209-1.3675-1.337-0.75415 0.08-1.3514 0.07-0.29774-0.138-1.831-0.95-0.52239-0.497-0.7381-0.722-0.45998-1.054-2.7314-4.901-1.9853 0.1111-0.65872-1.6071-0.30487-0.289-1.0127-0.713-0.3227-0.07-2.0556 0.456-10.351 2.243-0.68106 0.145-6.8534 1.406-6.1562 1.231-0.64361 0.142-10.735 2.181-2.3391 0.472-7.6342 1.441-1.6919 0.335-4.8334 0.889-4.6426 0.903-0.7399 0.128-2.3873 0.403-9.1925 1.629-0.25673 0.05-2.2821 0.394-0.52951-3.012-0.44216-2.549-0.098-0.61m144.3-46.196-0.63706 0.37368-0.54676-0.30368-0.48851 0.03-0.11232 0.06-0.13193 0.06-1.5564 1.15-0.22913 1.373-1.3523-0.023-0.21751 0.226-0.43716 0.59429 0.29773 1.226-0.76805 2e-3 -0.10698 0.243-0.41541 0.987-5.5465 1.279-0.0713 0.02-0.2496 0.06-4.0649 0.909-0.49208 0.111-5.8318 1.262-2.8936 0.619-7.7698 1.663-1.5279 0.321-3.9847 0.861-0.14798 5.648-0.25317 10.141 0.3851 0.779 0.16046-0.04 7.2242-1.528 0.73989-0.167 3.1345-0.74112 0.2509 0.99379 0.88363-0.30454 0.0335-0.96542 3.9575-0.93571 6.1794-1.463 0.56161-0.111 0.7078-0.146 4.2896-1.02 0.11232 0.337 4.9011-1.503 1.9775-0.55095 0.18762 0.77537 0.54372 2.105 0.65087-0.29717 0.029 0.28586 0.34232 0.59989 2e-3 0.39398 0.14316 0.18518-0.0776 0.28603 0.11706 0.19297 0.0922 0.30225 0.17135 0.1402 0.11067 0.18005 0.10708 0.0134 1.2362 0.15156 0.86162 0.78465m0.62842 0.67933 0.96636 0.15371 0.3784 0.71595-8e-3 0.43305 0.22704 0.16744 0.78051 2.4678m-205.54 285.58-0.57587-1.665-0.21216-0.458-0.14619-0.262-0.92888-1.022-0.14619-0.04h-0.16938l-0.16937-0.1-0.19968-0.465-0.27278-1.632 0.1355-0.595 0.20859-0.61 0.24247-4.901-2.1377-5.329-0.33874-0.449 0.90748-4.937-0.0535-1.719 2.0895-4.127 0.0464-0.07 0.16046-0.724-0.19255-0.383-0.47424-0.396-1.2765-0.344-0.12123-0.136-0.041-0.194 0.21573-0.82-0.53486-3.174-1.8435-2.05-1.3889-3.059-1.2284-2.735-1.544-5.344-0.13728-0.481-1.8631-6.725-0.34588-1.239-1.0768-3.831-1.5582-5.611-0.39401-1.405-0.73098-2.628-1.2854-4.644-1.5761-5.351-0.40827-1.455-0.22465-0.789-1.5119-5.344-0.72384-2.811m-87.764 7.185 10.929-0.669 1.494-0.11 5.4484-0.353 2.8847-0.204 3.3732-0.247 3.6264-0.282 0.68284-0.06 7.5754-0.603 0.31379-0.02 3.0523-0.251 3.9954-0.578 14.217-1.1 0.23177-0.02 6.9924-0.49 0.97701-0.09 8.6665-0.854h0.14085l8.3349-0.811 4.828-0.435 2.4746-0.257 2.0182-0.217 1.831-0.25 5.3254-0.669 3.1218-0.367 0.64005-0.08 2.8704-0.351 5.5679-0.685-0.0695-5.079 1.5154-1.334 1.9808-0.05 0.70424-0.579 0.43502-0.594 0.75415-4.122 0.15333 0.05 5.0206-3.18h0.42607l2.6262-0.271 0.22643-0.146 3.1896-2.525 0.66679-0.977-0.0802-0.437 5.1133-2.544 0.71136-3.625 0.83082-0.21 1.6224-1.519 1.1553-1.141 0.3227-0.234 0.46711-0.336 0.0874-0.01 0.27635 0.184 0.35122 0.337-0.25145 1.3811 1.0062 0.71758 0.70833-0.79809 0.51588-0.15063 1.3086-2.395 3.2787-2.442 2.7403 0.793 2.1608-4.042 0.19255-0.554 0.1355-0.369 0.84508-0.947 0.9164-0.627 0.0232-0.02 0.0963-0.06 0.1141 0.263 0.48138 0.154 0.28704-0.01h0.0339l0.38332-0.129-0.0695-1.095-0.016-4.4372m117.55-168.71-0.47077 0.13278-0.6967-1.2856 0.41821-1.017-0.48092-2.2341-1.7187-8.397-0.97345-4.525-0.50811-1.0576-0.70967-0.14937-0.46265-0.79353-1.0384 0.11388-0.0446 1.2767-0.54556-0.226-0.0642-0.09-0.16224-1.342 0.0909-0.933 0.31022-1.704-0.59548-1.157-0.27991-0.507-1.9166-4.525-0.0356-0.08-0.0392-0.772v-0.749l9e-3 -1.902 0.67392-1.922-0.67744-2.2226 0.22812-1.5374-0.025-0.25-9e-3 -0.01-0.29774-0.804-0.22999-0.499-0.76486-0.924-0.46711-0.273-0.26564-0.224-0.24342-0.85773-0.21152-0.70406-0.0333-1.6736 0.12339-1.8634-0.93491-0.59916-0.17496-1.0307 0.31908-1.0192-0.1235-0.9013-0.60896-0.70965 0.025-0.50216m-30.194 154.15 1.9051-2.8795-2.1692-1.2911-0.91461-0.474-1.0018 1.6476m-44.205-10.311 1.8881 11.789 0.5375-0.20301 1.4158-1.5436 0.92423-1.7074 3.2698-3.945 1.897 0.426 2.8847-3.971 2.1216 0.844 3.35-0.184 1.8399-3.15 0.93244 0.185 0.20859-0.03 0.62044-1.143 0.45642-0.722 0.12123-0.137 0.10519-0.04 0.59548 0.02 0.64896 0.07 0.64362 0.241 0.80229 0.581 0.29596 0.328 0.49145 0.54089 0.83697-0.31276 0.67438-0.0282 0.8573-0.31276 0.63372-0.0892 0.0831 0.60582-0.77054 0.32126 0.776 1.2116 0.51177 0.27667 0.49876 0.038 0.21889 1.2588 1.1538 0.16126-0.0703 1.8063 0.68168 0.3835 0.68998-0.08 1.0942 0.4121 0.95382-0.22465 0.70077 0.87146 1.5176 0.43709-0.19207 0.92301-0.51394 0.19299-0.0731 0.193-7e-3 0.105-0.0428 0.289-0.0214 0.208 5e-3 0.02 0.12302 0.392 0.11232 0.136 0.11232 0.08 1.1393 0.765 0.0339 0.01 0.63292 0.04 0.86113-0.04 0.83616-0.09 0.98643 0.45194 0.66294 0.2112 0.0304 0.72855 0.38734 0.28294 0.36992-0.0103 0.25992 0.068 0.85706-0.10347 0.55251 0.47231 0.74641 0.546 0.76516 0.41139 0.52111 0.96665 0.0895 0.94639 0.0382 0.27715-0.43324 1.8191-0.55645 0.41311-0.24764 0.61848-0.7196 0.0468 0.96036 1.011m-95.382 21.408 0.63191 0.19913 1.032-0.4411 1.491-0.81395 0.61454 0.032 0.82453-0.31568 0.30947-0.47668 0.0321-0.153 0.0321-0.168 0.0802-1.647 7e-3 -0.05 7e-3 -1.006 0.23716-0.17737 0.92884 0.0246 0.43536-0.30324 0.10519-0.44641-0.50201-1.3684 0.0998-0.62121-0.3162-0.378-0.17291-0.67761-0.45241-0.39081 0.0418-0.627 0.5502-0.37521 0.45921-0.57121 0.0898-0.55361-0.12916-0.75037 0.31921-0.49711 0.35654-1.367 0.0553-0.321 0.50049-0.50021 0.31963-0.88779 0.34364 0.0586 0.54007 0.74639 0.65553-0.11682 0.79983 1.1674-0.43812 0.81503 0.0642 0.178 0.59427 0.3921 0.76743-0.36071 0.24216-0.78817 0.13202-0.61985 0.78839 0.61591 0.75221-0.24967-9e-3 -0.47722-0.50093-0.47262 0.3208-0.92552-0.24776-0.45186-0.19255-0.225-0.40293-0.269-0.19968-0.146-0.19255-0.252-0.17408-0.28924 0.71824-0.0999 0.46937-0.40238-0.0805-1.1698-0.25733-0.95367 0.312-0.69 0.36228-0.0809 6e-3 -0.41083 0.10278-0.61747 0.36091-0.20134 1.6733-0.15864-0.11287-1.7781 0.3312-0.33044 0.66437-0.635 0.46015-0.84476 0.33743-0.0942 0.20147 0.02 0.31833 0.31636 0.50444 0.93337 0.51657 0.1381 1.6997-1.4789 0.75021 0.0361 0.15999-0.71514 0.40045-0.59858 0.68019-0.2984 0.21068-0.39231 1.18-2.2969 1.3224-1.6516 0.93512-0.13608 0.32468-0.76042-0.0494-1.304 0.52402-0.25638-0.067-0.59945-0.74173-0.68644 0.58981-1.0492-0.15055-0.72905 0.0987-0.38365 0.44705-0.44857-0.53123-0.95384 0.70262 0.13774 0.2746-0.24798-0.32902-0.81678 0.28979-0.59958-0.2231-0.88996 0.0883-0.74966 8e-3 -0.43804-0.17022-0.30979 0.46008-0.71332-0.25169-1.4648 0.2651-0.5854 0.29924-1.3774 0.59961-0.60926-0.0816-0.37475 0.19007-0.79688-0.38599-0.67318 0.0216-0.56786-0.52034-0.31698 0.19895-0.35332-0.11279-0.64803 0.20639-0.64573-0.0778-0.53574-0.43175-0.44391-0.24143-0.65353-0.43172-0.43273-0.41394-0.31735-0.0623-0.48798 0.34873-0.5693 0.65552-0.41989 0.39766 0.0748 0.24941-0.26565 0.6878-0.52193m-76.492-13.91 0.47425 3.81 0.28882 2.394 0.43324 3.56 0.0499 0.425 0.72384 6.06 0.1872 1.535 0.542 4.468 0.42075 3.583 0.56874 5.056 0.11945 0.977 0.70958 7.032 0.2086 2.034 0.48851 4.386 0.41897 3.666 0.12124 1.043 0.51346 4.999 0.52951 4.598m-54.007 35.885-0.90748-2.034 0.86112-0.03h0.0303l0.0392-0.03 0.0107-0.02 0.0481-0.1 0.25673-5.325 0.10341-2.411 0.025-0.112 3.4623-4.598 1.2783-3.68 0.34588-0.941 1.4067-1.799 0.14263-0.12 0.17651-0.322 0.25138-1.462 7e-3 -0.562-0.68462-1.471-0.0392-0.06h-0.0731l-0.14441-1.146 0.10519-0.145 0.12836-0.363 0.0481-0.733-1.2765-2.281-0.83617-0.982-0.36192-1.235 0.23355-2.395 0.82012-5.143-0.27456-3.005-0.58656-6.363-0.51347-6.115-0.59369-7.604-0.0267-0.328-0.50455-5.666-0.56339-6.308-0.32983-3.592-0.27278-3.045-0.33874-3.96-0.46355-5.498m-64.896 35.334-1.1393-0.08-0.72563-0.586-1.7508-2.154-0.0642-0.16 0.0571-0.467-0.041-0.152-1.3746-1.038-0.36193-0.226-3.9366 0.01-4.0988 0.288-2.956 0.193-4.9742 0.337-1.3264 0.07-6.6376 0.348-4.8048 0.223-3.1735 0.09-3.769 0.155-4.1862 0.177-3.7601 0.117-4.147 0.1-2.7866 0.03-4.9118-0.02-4.9974-0.03-2.9738-0.02-6.7981-0.07m84.663-140.56 1.815 0.988 3.2306 3.97 1.478 0.312 1.6224 0.337 11.524 2.364 0.86647 0.177 0.67749 0.144 1.0929 0.369 1.1321 0.555 0.97345 0.474 4.081 1.045 0.32983 0.586 2.8116-0.298 4.6765 0.587h0.0356l0.39937 0.06 0.61152 0.296 0.37797 0.252 0.24782 0.158 0.47246 0.676 0.0499 0.07 0.0232 0.08-0.22465 0.385-0.25673 0.362-0.11232 0.09-0.28169 0.36-9e-3 0.02-0.0232 0.08 0.1034 0.201h0.0161l0.6133 0.498 0.1355 0.03 0.21751 0.06h0.016l0.21751-0.03 3.7993 1.021 0.30488 0.248 0.025 0.02 0.041 0.04 0.48138 0.594 0.16045 4.147-1.5696 3.4397 2.2064 0.0435 0.84406-0.85296 1.0418 0.86344-1.0999 3.3453 9e-3 0.02 0.14263 0.472 0.0731 0.122 1.2694 1.342h0.0161l0.41719 0.07 0.73097 0.115m-495.03 256.91 2.0182 0.151 2.6672-1.654 0.83438-1.173 0.16937-0.596 0.18542-1.512-0.57052-1.331-0.0553-0.06-0.0571-0.07-1.6723-0.28-0.312-0.137-0.88609-0.62-0.40115-1.068-0.0143-0.04 1.1321-6.975 1.9273-0.476 2.3142-2.731 0.74881-2.603 0.54555-2.725 0.10519-0.747 0.49029-1.759 0.53843-0.933 1.7276-2.442 2.3694-0.908 1.6242-0.667 2.4104-1.39 0.10519-1.029-0.8843-1.546-1.0216-1.137-1.1731-1.407-1.1874-4.999-0.0642-0.925-1.2783-2.008-1.0127-2.635-0.0161-0.121 0.0321-0.321 0.57765-2.557-2.5138-3.742-6.8159-10.198-0.47246-0.701-1.2712-1.895-3.687-5.537-3.6157-5.383-0.2086-0.307-2.6369-3.952-0.6347-0.949-4.9172-7.384-6.0671-9.08-1.15-1.744-1.9683-2.926-0.34409-0.513-9.2424-13.876-8.1887-12.224-9.8183-14.771-2.307-3.435-3.4302-5.135-4.2343-6.351-0.90926-3.446 0.24247-1.013 0.28882-1.198 0.85935-3.382 0.77911-2.884 1.6402-6.212 0.35301-1.31 1.7347-6.508 1.1339-4.3 0.32983-1.294 1.0358-4.008 2.0646-8.221 1.8328-7.135 4.7014-18.161-4.7424-1.198-0.65074-0.167-6.0493-1.608-3.0541-0.82-9.3048-2.603-13.733-4.09-0.9164-0.282-0.52238-0.169-2.0164-0.546-2.209-0.547-5.5697-1.575-0.42611-0.121-0.72206-0.216-1.7526-0.636-1.2284-0.255-4.7496-1.326-4.9742-1.375-6.3328-1.993m168.04-122.36-2.3712 11.097-1.3746 6.388-1.1161 5.311 0.47425 0.843 3.0933 6.301 0.0232 0.08 0.025 0.06 7e-3 0.03v0.09l-7e-3 1.287-0.52238 1.325-0.44215 1.005-0.29774 1.865 0.0161 0.569 2.4604 3.4 0.33696 0.288 0.26565 0.234 0.8433 0.41 1.2213 0.489 0.26565 0.194 1.3978 3.148 1.3086 3.054 0.73989 1.382 0.40114 0.74 0.30666 2.323v0.01l0.0713 0.195 2.316 3.093 0.22464 0.06 0.10341 0.03h0.68997l0.8843 2.19 1.7276 0.372 0.36192-0.1 0.24961-0.1 0.41006-0.08 0.82725 0.112 0.28169 0.233 0.0731 0.07 0.0874 0.09 0.0571 0.266-0.0963 0.506-0.55626 1.574-0.93957 2.163-1.4067 3.125-4.4839 11.186-0.56161 3.077-0.28169 1.558-0.0161 0.08 0.0481 0.06 0.7078 0.1 0.6347 0.16 0.20147 0.09 1.1803 1.864 0.14441 0.571 0.65966 0.103 3.1503-1.446 1.9843-1.736 1.4138-0.811 0.32983 0.346 1.5582 2.201 0.0891 0.289 0.18364 1.824-0.0143 0.683-0.2086 0.378-0.041 1.366 0.0232 1.8 2.5156 9.353 2.6672 3.712 0.54734-0.135 0.57052 0.449 0.68283 0.763 0.30666 0.474 0.35122 1.102 0.46712 2.001v0.176l-0.0963 0.177-0.0642 0.05-0.0232 2.868 0.19077 1.086 0.44393 0.642 1.3086 1.464 0.41719 0.151 0.32983-0.184 0.16046-0.249 9e-3 -0.06 0.19255-0.86 0.23356-0.361 0.6347-0.674 1.084-0.257 5.7462 1.43 2.4425-0.917 4.475 0.459 3.2395 0.923 2.0895 0.06 2.7795-3.191 1.831-0.69 0.77198 0.763 1.3193 2.587 0.71493 2.064 0.18542 0.548 1.3086 1.214m116.93-19.792-0.10519 1.453-1.2373 15.326-0.69888 4.917-0.80408 9.788-0.73989 8.968-0.0784 0.898-0.57051 6.606-0.67571 8.06-0.0481 0.58-0.90748 10.982 9.1586 0.749 8.4294 0.651 3.4873 0.265 11.877 0.817 3.4623 0.226 4.179 0.321 6.6608 0.346 5.3771 0.282 6.0742 0.281 3.2626 0.154 1.1981 0.06 1.3336 0.07 11.129 0.467 4.6854 0.168 12.671 0.371 3.104 2.784 2.3605 1.07 1.8328 1.582 0.36192 0.16 0.29774 0.05 0.27991-0.01 0.85221-0.129 0.22464-0.139 0.47425-0.431 0.353-0.506 0.42993-0.44376 0.0768-0.69793 1.013-0.12928 0.41827 0.55597 0.55227 0.12024 0.47229-0.69024 0.59944 0.15421 0.41154 0.58529 0.57947-0.56211 0.75703 9e-3 0.13903 0.46347 0.34699-0.0287 0.96522-0.36538 1.0816 0.23032 0.90705-0.39029 0.75114-0.18169 0.99904 0.5016 1.1391 0.0813-0.0572 0.9863 0.99446 0.77792 2.0806 0.596 3.5212 1.315 1.3728 0.869 0.18541 0.419 0.0963 0.385-0.0642 0.271-9e-3 0.21 0.0499 0.209 1.2052 1.792 3.2466 0.829-0.60439-1.666-0.60975-1.606-0.43502-0.699-0.55447-0.515-0.44037-0.337 0.67393-3.084 0.6757-1.801 1.1642-4.019 0.26565-0.708 0.0481-0.158-0.64361-2.314-0.15868-0.08h-1.1981l-0.37083-0.836-0.0929-1.066 1.0895-0.0404-0.0335-1.6183-1.2164-1.2484-0.0338-1.5788 2.4247 0.02m-11.289-126.19-0.0731 0.07-0.0713 0.337-0.0178 0.339 0.0892 0.481 1.1089 3.623 0.29774 0.884 0.67571 1.535-1.0296 3.178 0.45731 0.495 0.0981 5.48-0.50634 1.953-9e-3 0.467 0.36192 1.453 1.4958 5.391 2.0236 4.621 0.53843 3.962 0.2817 5.978 0.0802 1.993 0.0232 2.908 0.66679 2.186 0.19434 0.531-0.30666 4.998 9e-3 1.29 0.68284 1.988 2.209 5.32 0.61153 4.821 0.0481 0.403-0.0321 0.465-0.0392 0.145-0.29774 0.836 0.21751 1.993-0.0891 1.004v0.05l-9e-3 0.03-0.0713 0.61-0.0571 0.497-0.0392 0.209-0.016 0.114-0.016 0.05-0.016 0.03-0.025 0.06-1.125 1.671-0.32805 0.33-0.61866 0.337-0.55625 0.362-1.4691 1.18-0.025 0.03-0.0321 0.04-0.025 0.02-0.0553 0.128-0.22464 0.771 0.0642 0.09 0.28883 0.369 1.125 1.503 1.1188 2.4545 1.2435 0.1645 1.5511 0.756 0.52951 0.426 0.30665 0.706 0.26565 1.326-0.0178 6.702-0.0321 7.98-0.0143 2.017-0.0499 7.987-0.0481 8.003-0.0321 8.06 6.6608 0.02h3.1913l6.7749-0.04h1.109l7.866-0.07 1.0127-0.02 6.8462-0.1 3.2555-0.05 4.6034-0.07 5.3593-0.121 2.5245-0.06 7.456-0.215 0.41006-0.02 7.8428-0.28 1.7365-0.06 6.1295-0.25 5.8193-0.248 1.9843-0.09 6.5396-0.314m-434.37-2.74 8.5096-37.886 1.7757-4.307 0.48138-0.804 0.78089-1.478 0.62579-2.555 0.81299-0.997 0.0232-0.04 0.0232-0.05 0.0321-0.06h9e-3v-0.02l0.0232-0.234-0.0553-0.176-0.0161-0.03-0.85221-1.686-0.16759-0.105-0.63648-0.225h-0.0874l-0.15333 0.07-2.0004-0.811-0.24069-0.408-0.0321-0.33 0.0232-0.194 0.041-0.122 0.55448-3.783 0.20146-0.403 3.5586-4.892 0.37797-0.339 0.11232-0.05 0.39401-0.09 1.535-0.523 0.87539-0.941 0.48316-0.513 0.37619-0.403 0.53842-0.931 0.016-0.02-0.0232-0.185-0.0963-0.225-0.0571-0.225-0.016-0.465 0.40114-0.836 0.50812-0.467 0.77912-0.706 2.4015-3.914 0.54556-1.15 2.7813-3.567 1.5422-1.576 0.38688-0.441 0.0642-0.29-0.55448-2.908-0.10519-0.442-0.312-0.396-0.27456-0.353h-7e-3l-0.58657-0.257-1.3996-1.287-0.73098-0.674-0.0481-0.09-0.0713-0.136-1.1321-3.528-8.8163-2.057-1.9202-0.466-5.8425-1.406-0.29595-0.07-15.445-3.703-0.45106 0.378-0.3441 0.151-1.1731 0.339-0.57052 0.09-0.69889-0.05-0.41006-0.103-0.44215-0.227-2.4104-0.33-0.90926-0.05-0.90748-0.06-1.0784-0.44268-0.59088-0.32062-0.84956 0.59188-0.59943 0.55642-1.6706-0.159-1.535-0.16h-2.1983l-2.4229 0.296-0.51347 0.128-0.83617 0.635-3.1664-0.193-1.2534-0.217-0.32805-0.216-0.19433-0.281-0.41719-0.787-0.44929-0.315-0.68462-0.168-0.33696 0.112-0.69175 0.33-1.7187 0.241-1.4138 0.217-0.83616 0.257-0.34588-0.458-1.419-0.64655-2.0398 0.83215-0.254-1.6655-2.1207-1.2511-0.55447-0.113-1.1-0.162-1.0947-0.948-1.7258-0.03-1.3265-0.104-0.43502-0.105-1.1072-0.61-0.94849 0.06-0.68284 0.353-0.45106 0.403-5.7052 0.796h-0.29774l-0.45641-0.122-0.52416-0.256-4.459-2.748-0.42611-0.322-0.81834-0.86-0.31378-0.401-0.01605-0.563 0.15333-0.418 0.34409-0.579 0.41897-2.804 0.11945-0.378 0.14441-2.186-0.44928-2.505-0.15333-0.605-2.5941-3.18-0.75594-0.314-0.82012 0.152-2.4818-0.104-0.12124-0.04-0.67392-1.052 0.35122-1.028-0.16759-0.539-0.23356-0.417-0.06418-0.105-0.04814-0.03-0.08914-0.06-1.0358-0.06m459.25 277.22-7.103 0.06h-1.1981l-6.0974 0.06h-2.0913l-4.8209 0.03h-3.8956l-9.5722-0.03-4.0899-0.02-7.2474-0.07-5.7373-0.07-6.1955-0.107-5.6499-0.105-4.2824-0.09-3.6068-0.114-8.3082-0.257-8.2939-0.282-1.5511-0.06-8.4062-0.385-1.5814-0.07-9.9074-0.408-5.682-0.241-2.209-0.112-8.8965-0.443-8.6059-0.474-0.25674-0.02m260.83 150.42-1.0198-8.363-0.73811-5.996-0.34053-2.655-0.93065-7.341-0.76485-5.994-0.46533-4.508 0.13015-7.707 0.0464-1.879 0.13728-6.245 0.1355-8.132 0.0267-1.439 0.1355-6.896 0.10519-5.703 0.10162-4.894 0.18542-7.28 0.0178-0.658 0.11945-5.452 0.0731-3.298 0.0642-2.756 0.19255-7.226-2.1074-2.225m-53.058 49.651-1.8952 0.07-3.2787 0.134-0.47424 0.03-11.676 0.474-12.592 0.339-5.0616 0.1-4.7959 0.13-4.8369 0.128h-0.58835l-5.4467 0.121h-0.18542l-4.3859 0.1m-168.63-282.27-15.903-1.503-1.1457-0.10895-11.967-1.201-3.0873-0.16008-3.6627-0.39692-10.109-1.182-3.1022-0.378-0.85935-0.177-7.6592-0.939-4.6035-0.56442-5.7603-0.71258-6.0029-0.813-4.9903-0.659-2.1305-0.289-0.32804-0.05-2.9899-0.547-8.5417-1.157-3.6638-0.57-1.3514-0.211-1.815-0.09-5.3433-0.724h-0.041l-2.4194-0.378-0.70602-0.243-2.0004-0.408-2.7082-0.419-1.3978 7.595-0.59548 4.388-1.7686 11.168-1.7116 11.002-0.59813 3.9591-1.1295 7.0089-1.8863 11.557-1.8738 11.679-1.535 9.644-1.1963 7.499-0.93244 5.801 9.2959 1.535 7.7305 1.109 0.8112 0.121h0.0178l2.4657 0.353 2.3944 0.337 0.66857 0.1 8.0176 1.07 2.6939 0.392 13.667 1.84 5.6891 0.685 10.293 1.243 7.8928 0.929 9.1836 1.114 2.2339 0.265 15.686 1.607 5.7302 0.554 15.308 1.296 8.2279 0.674 3.3019 0.255 12.551 0.918 0.55626 0.03 9.8022 0.656-0.36192 5.842-0.0802 1.207-0.3851 5.955-0.13728 2.097-0.50634 8.001 11.186 0.694 1.519 0.08 9.8824 0.529 0.34766 0.03 9.5294 0.457 0.27278 0.02 9.6302 0.385 7.8402 0.281 1.9594 0.06 5.9548 0.185 3.8813 0.105 4.0328 0.09 5.9869 0.144 1.9291 0.04 7.9142 0.127 7.932 0.105 1.9362 0.02 5.9797 0.05 3.9277 0.02h7.891l7.8428-0.03h0.55447m-344.96-175.16-0.0981-1.59 0.76485-2.108-0.0981-1.975-0.15333-1.27-0.0232-0.08-0.50455-2.034 0.33696-1.004 0.58657-2.596 2.94-13.08 0.66857-2.942 0.53665-2.386 3.0291-13.621 0.34588-1.517 4.1309-17.759 0.77911-3.384m544.87 306.7 3.703-1.986 1.0631-0.20406 3.6282-2.1982 0.93362-0.15877 0.75297-2.4929 1.6759-0.11084 1.251-0.99026 0.37797-0.661 0.0731-1.742 0.79182-0.73517 1.5262-0.79706-0.0918-1.9219 2.5304-2.4119 0.20147-0.137 0.70601-0.506 2.7153-1.532 0.6757-0.872 5.2809-6.347m165.79-165.23-2.2482-0.901-0.624-2.506-0.0499-0.06-1.9433-1.159-0.80586-0.401-0.29595-0.153-0.46712-0.649-0.15154-0.323-0.12302-0.513-0.27991-3.135-2.0253-5.279-3.284-10.872-3.0148-9.586-0.24068-0.772-3.3999-10.253-0.61865-1.767m-4.8369 8.235-0.38688 0.795 1.1343 1.6715-1.1575 3.9715 0.1355 0.383 0.60439 0.596 0.73811 0.907 0.40293 0.499 0.0713 0.114 0.41719 0.674-0.53806 1.0829 0.32234 0.91809-0.18542 0.515-0.0802 0.137-0.79516 1.398-0.066 0.103-0.0945 0.138-0.22464 0.29-0.041 0.06-0.51525 0.378-0.34409-0.03-1.0768 1.397-1.125 0.708-1.1125 0.692-0.0838 0.08-0.0499 0.04-0.53843 0.972-0.0553 0.234v0.144l0.52773 1.84 0.29953 0.403 0.27277 0.217-0.0613 1.2858 0.39548 0.28491-0.30109 0.91455-0.44451 1.7288 0.53008 0.4372-0.0985 1.249-0.71253 1.1626 0.22275 1.2167 0.0275 0.99352-0.51013 1.1576-0.31231 0.20594-0.39109 0.84349 0.20265 0.56513-0.24805 1.2853 0.23913 0.27352-0.79544 1.0393 0.17679 1.0177 0.47858 3.6804 0.31836-0.0164-0.0213 0.67393 0.36536 0.22607-0.0731 2.01 0.0642 1.695 0.49157 1.2321-0.15887 1.4514 0.38994 1.3392-0.97856 1.037 0.20726 0.9198-0.3482 0.9948 0.38928 0.62114 0.52467 0.6805 1.8381 1.478m-13.138 19.375 1.5743 8.743 0.54556 3.182 0.62757 3.68 0.2817 1.622 1.6114 1.4831-2.264 2.3349-1.2516 1.278 1.7971 2.312m-356.71 148.89 9.9252-0.159 3.8653-0.08 5.1757-0.129 4.9403-0.121h0.35479l8.0978-0.241 1.5048-0.05 4.459-0.153 6.9496-0.287 0.54734-0.03 8.219-0.369 4.0774-0.146 0.78624-0.02 5.1436-0.272 6.265-0.355 3.8189-0.207 6.5164-0.371 0.49029-0.03 0.72385-0.02 1.6385 2.314 0.17828 0.239 0.11945 1.826-0.19433 0.529-0.12836 0.202-2.0093 1.766-2.8401 4.943 1.4673-0.1 6.0742-0.433 4.8115-0.314m40.044-137.18 5.1097-0.49 5.0634-0.522 2.7724-0.296 4.6034-0.467 2.2339-0.239 6.2365-0.717 1.6224-0.175 6.3007-0.739 0.49742 1.428 6.8712-1.052 0.64897-0.104 8.1014-1.326 1.9772-0.346 5.2131-0.884m4.4447 156.94 3.5782-0.419 2.3035-0.289 1.2801-0.167 7.1725-1.045 1.2159-0.194 6.9336-1.092m-119.71-22.533-0.36841 0.81812-0.46351 0.41406-0.38003-0.2585-0.16281-0.85068m-374.58 105.87 3.4962-24.959 1.1161-8.021 1.3657-9.857 1.8096-13.026 2.5459-18.337 1.2052-8.718 3.3037-23.908 3.1735-22.867 1.5743-11.154 1.2765-9.094 0.86112-6.237 0.78803-8.01 0.69889-5.048 0.69175-4.227 0.12837-0.884 0.60974-4.172 0.77198-5.552 0.41898-3.004 0.51346-3.737 3.1985-22.789 1.0768-7.964m576.87 7.451-5.9637 1.277-1.6795 0.363-0.11233 0.02-5.666 1.188-3.7422 0.779-3.6584 0.763-3.7387 0.756-4.1755 0.827-0.16759 0.03-10.874 2.058-4.2094 0.795-0.65253 0.121-7.3918 1.364-2.118 0.387-7.9659 1.455-1.4637 0.263-4.976 0.878-2.6333 0.449-8.7503 1.462-1.7026 0.274-0.90035-5.512-0.20146-1.23-0.53487-3.277-0.88786-5.474-0.30488-1.792-0.60974-3.688-0.79516-4.857-0.20324-1.105-0.82904-5.151-0.0303-0.185-1.3407-8.123-0.0428-0.25-1.3086-7.987-0.47781-2.917m144.94-31.435 1.8096 6.307 0.4992 1.897 1.2714 5.1745-0.42431-0.0206-0.28257 0.33789 0.0187 0.36691 0.23939 0.21763 0.0616 0.45272 0.16757 0.308 0.0352 0.19037-0.18216 0.29169-0.0697 0.38137-0.18886 0.0696m-665.09 16.085-7.7377-1.205-10.116-1.637-0.91818-0.146-1.2284-0.317h-9e-3l-3.5515-0.614-4.3306-0.748-11.628-1.967-0.49029-0.08-5.584-0.95-0.53129-0.09-1.4299-0.249-0.19968-0.04-1.3425-0.32-1.1179-0.282-4.3466 22.589-3.9294 20.07-0.93244 4.799-1.5992 8.26-3.8243 19.694-0.46711 2.38-1.847 9.658-2.4265 12.367-2.6119 13.757-0.69176 3.584-0.72206 3.786-0.0891 0.462-0.73098 4.172-0.44215 2.316-0.77912 4.042-2.3302 3.148-0.2496 0.282-0.0963 0.06h-0.016l-1.1161-0.02-0.36192-0.04-0.0963-0.02-0.23356-0.178-0.16046-0.168-0.4261-0.676-0.12837-0.385-0.0161-0.192-9e-3 -0.05-0.0321-0.176-0.22464-0.563-0.54556-0.772-0.2496-0.234-2.3391-0.69-1.059-0.217h-1.1268l-2.0574 0.483-0.18363 0.1-0.24961 0.225-0.016 0.146-0.23356 2.25-0.49742 6.588-0.22464 4.027 0.24069 2.844 0.16759 1.348 0.025 0.675-0.12837 2.805-0.0232 0.513-0.0981 0.458-0.16758 0.548-1.7205 2.875m211.67-156.87-0.75594 8.959-1.1892 14.054-0.60261 7.002-0.25852 3.082-0.32805 3.948-0.77911 9.033m182.05 266.8-1.343-0.76577-0.72864-1.7947 1.7489-1.4262 0.14441-1.1383 2.291-3.194 0.0143-4.441-0.59727-3.621 0.76842-0.647 0.0802-0.2 7e-3 -0.119-0.27991-1.433-0.55447-0.669-0.0571-0.06 0.22464-0.804 2.8205-5.311 0.35479-1.542-0.0731-7.288-0.91461 0.24-0.20325-1.189-0.1355-0.754-0.58656-2.557-1.8007-2.612-2.1127-2.219-0.98058-5.919-2.7403-3.062-0.62579-4.967-0.0981-4.523-0.15155-6.935-0.0802-4.34-0.0713-3.189-0.12124-5.811-0.13728-6.493-0.4582-0.378-0.353-0.144-1.8488-0.371-1.0697 0.155-0.27991 0.03-0.0963 0.09-1.8488 0.938-1.0287-0.561-0.27991-0.184-0.7809-0.499-0.12658-0.17-0.1462-0.335-0.15154-0.394-4.9742-1.431-2.3623-0.965-3.2626-2.612-2.2268-1.904-1.2052-0.403h-0.13549l-0.0642 0.03h-0.0267l-0.40828 0.619-9e-3 0.03v0.04l-7e-3 0.02 7e-3 0.02 0.0731 0.154v0.03l0.0321 0.2-0.0321 0.232-0.10341 0.233-0.10697 0.104-0.50634 0.33-0.14976 0.02-0.28169 0.03-0.55448 0.07h-9e-3l-1.2872 0.06-0.71315-0.06-1.8809-0.25-0.0713-0.06-0.0749-0.128v-0.02l-5e-3 -0.118 0.0571-0.162 5e-3 -0.153-0.20147-0.514-0.14441-0.06-0.61687-0.03-1.3906 0.722-1.5957 0.833-1.6349 0.615-0.92353-0.17-1.1-0.217-0.25851 0.03-0.41006 0.03-2.1377 0.178-0.96454 0.223-0.16046 0.563-0.11945 0.555-9e-3 0.06-0.016 0.06-0.0553 0.177-0.0481 0.153-9e-3 0.02-0.0232 0.03-0.17828 0.186-0.0232 0.03-0.34588 0.148-0.39401 0.105-2.8366 0.701-0.18363-0.251-0.82725-1.125-0.24961-0.08-0.22464-0.02-0.97344 0.185h-0.025l-0.17651-0.121-1.9522-1.311-0.0161-0.06-0.016-0.111-0.016-0.283 0.0642-0.369-1.9041 0.859h-0.0161l-0.92352 0.155-1.7936-0.549-0.19255-0.133-0.312-0.35-0.96454-1.982-0.18541 0.103-2.8597 4.96-0.0891 0.119-0.19255 0.154-0.27278 0.09-0.30487-0.04-0.26565-0.09-1.028-1.6856 0.68272-2.0736-1.3691-0.73539-2.7075 2.3751-1.1157-0.30053-0.16759-0.112-0.11232-0.135-0.0161-0.04-0.0499-0.12-0.37618-1.718-1.4637 0.394-0.68284-0.477-1.9362-1.292-0.65074 0.82-0.99663 1.036-0.94849 0.747-0.59369 0.176-0.22643-0.02-1.6777-0.765-0.21037-0.194 0.49028-1.061 0.16225-1.237-0.7078-0.28-0.65967 0.16h-0.43326l-0.80408-0.24h-0.0321l-0.0481-0.05-0.32983-0.659-1.1482-1.888-2.9417-0.924-0.72385-0.162-0.36905 0.209-0.76307 0.964-1.0127 0.909-0.016 0.02h-7e-3l-0.54021-0.194-0.89856-1.446-0.43324-0.369-0.41897-0.276-0.19255-0.01-1.7205 0.53-1.2373-0.05-1.7436-0.427-1.7508-1.046-0.29061-0.134-1.7436-0.137-0.76307 0.01-0.35301 0.02-0.7078-0.16-0.3851-0.12-0.24069-0.07-9e-3 -0.01-0.32805-1.783 0.0161-0.499 0.0232-0.531v-0.02l-0.89143-1.551-0.94136-0.507-0.82725-0.449-0.8112 1.453-7e-3 0.02-0.025 0.04h-0.016l-0.14441 0.06-0.63471-0.06-0.61865-0.587-0.46711-0.272-0.28883-0.122-0.90035-0.105-0.20859-0.03-0.10341 0.04-0.73276 0.925h-0.89144l-0.57943-0.137-1.3175-1.253-0.47424-0.562-0.98058-1.271-2.7545-1.373 0.12836-4.275 0.27278-6.565 0.15333-3.519 0.23177-5.547 0.19433-4.546 0.24782-6.06 0.16938-4.04 0.37796-10.278-9.9484-0.444-7.4809-0.376-2.4033-0.12-9.8682-0.563-7.4791-0.473-2.3873-0.155-15.372-1.068m119.35-213.44-10.681-0.106-12.045-0.217-0.47424-0.02-11.498-0.344-4.5089-0.161-11.434-0.435-2.603-0.119-9.9252-0.483h-0.19968l-3.6478-0.186-0.36192-0.02h-0.13015l-1.9273-0.1-1.4548-0.08-4.6604-0.257-1.6385-0.09-0.93244-0.06-2.0093-0.113-2.4283-0.153-2.3052-0.136-1.9362-0.121-0.25852-0.02-0.15868-0.02-15.092-1.045-0.85934-0.06-16.802-1.334 0.64183-7.657 0.51525-5.955 0.19255-2.3 1.3336-15.7 0.13728-1.535 1.1642-13.612 0.71493-8.936 0.45819-5.544 0.69176-8.292\"\r\n style=\"fill:none;stroke-width:.89143;stroke:#000\" />\r\n\r\n <g id=\"separator\">\r\n <path id=\"separatorAK,HI\"\r\n d=\"m275.15 525.53v63.053l41.271 37.326m-315.26-178.34h197.18l76.81 77.957h98.592l60.76 61.907v38.472\"\r\n style=\"fill:none;stroke-width:2.3177;stroke:#221e1f\" />\r\n </g>\r\n</svg>", styles: ["#counties{fill:#d0d0d0;stroke:#000;stroke-width:.17829}#borders{fill:none;stroke:#221e1f;stroke-width:.89143}#separator{fill:none;stroke:#a9a9a9;stroke-width:2.3177309}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
27414
27589
  }
27415
27590
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UsMapComponent, decorators: [{
27416
27591
  type: Component,
@@ -27769,7 +27944,7 @@ class Step2CoverageComponent {
27769
27944
  }));
27770
27945
  }
27771
27946
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: Step2CoverageComponent, deps: [{ token: CredentialingStore }, { token: UsMapService }, { token: PostalCodeServices }, { token: UserCoverageAreaService }, { token: AlertService }, { token: i6.TokenService }], target: i0.ɵɵFactoryTarget.Component });
27772
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: Step2CoverageComponent, isStandalone: false, selector: "app-coverage", ngImport: i0, template: "<div class=\"coverage-container\">\r\n <div class=\"first-section\">\r\n <h4 class=\"head\">Coverage Area</h4>\r\n <!-- <p>Let's start with the basics. Where are you located?</p>\r\n <span>We use this to match you with jobs nearby</span>\r\n <div class=\"location-inputs\">\r\n <input type=\"text\" placeholder=\"City\" [(ngModel)]=\"city\">\r\n <input type=\"text\" placeholder=\"State\" [(ngModel)]=\"state\">\r\n </div> -->\r\n </div>\r\n\r\n <div class=\"coverage-options\">\r\n <div class=\"d-flex justify-content-between\">\r\n <h6 class=\"text-secondary view-card fw-semibold\" style=\"font-size: 14px;\"> Where can you complete assignments?\r\n </h6>\r\n <div class=\"d-flex gap-1\">\r\n <label class=\"form-check-label\">Show Map</label>\r\n <div class=\"form-check form-switch\">\r\n <input class=\"form-check-input\" type=\"checkbox\" (change)=\"toggleMap()\" role=\"switch\">\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0 border-3\">\r\n\r\n <div class=\"pb-1 d-flex align-items-center mt-2\">\r\n <span class=\"custom-checkbox2\" [class.checked]=\"coverages.length > 0\"></span>\r\n <span class=\"view-card text-secondary ms-3\" style=\"font-size: 14px;\">\r\n My Current Coverage Area\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center\" style=\"cursor: pointer;\" (click)=\"skip()\">\r\n <span class=\"custom-checkbox2\" [class.checked]=\"coverages.length == 0\"></span>\r\n <span class=\"view-card text-secondary ms-3\" style=\"font-size: 14px;\">\r\n Not Applicable\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"state-selector\">\r\n <div class=\"row pb-2\">\r\n <div class=\"col-md-12\">\r\n <div class=\"position-relative\">\r\n <!-- ng-select -->\r\n <ng-select [clearable]=\"true\" [multiple]=\"true\" (change)=\"setSelectedStates($event)\" [items]=\"states\"\r\n [(ngModel)]=\"selectedStates\" bindLabel=\"stateName\" bindValue=\"stateCode\" [closeOnSelect]=\"false\"\r\n placeholder=\"Select State\" id=\"reqStates\" [loading]=\"isStatesLoading\">\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <span class=\"form-check\">\r\n <span class=\"form-check-input-wrapper\">\r\n <span class=\"custom-checkbox1\" [class.checked]=\"item$.selected\"></span>\r\n </span>\r\n {{ item.stateName }}\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Label Template -->\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-container *ngIf=\"!isStatesLoading\">\r\n <span class=\"ng-value-label\">{{ item.stateName }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"border-0 empty-message mt-4\" *ngIf=\"!isStatesLoading && coverages.length == 0\">\r\n <div class=\"text-center text-secondary\" style=\"font-size: 14px;\">No States Selected yet</div>\r\n </div>\r\n <div class=\"coverage-options\">\r\n <div class=\"col-md-10 col-12 py-2 map-wrapper\" [class.open]=\"showMap\">\r\n <us-map [filteredLocations]=\"filteredLocations\"></us-map>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mt-4\" *ngIf=\"!isStatesLoading\">\r\n <div *ngIf=\"coverages.length > 0\">\r\n <div class=\"col-8 p-0 ms-2\">\r\n <h4 class=\"head\">Coverage Area\r\n Counties</h4>\r\n </div>\r\n </div>\r\n <div class=\"row pt-2 pb-2\">\r\n <div class=\"col-12 \">\r\n <div class=\"row\">\r\n <div class=\"col-12\" *ngFor=\"let coverage of coverages; let coverageIndex = index\">\r\n <div class=\"row m-0\" style=\"background: #dedede;\">\r\n <div class=\"col-10 p-0\">\r\n <div class=\"form-group my-2\">\r\n <div class=\"custom-control custom-checkbox\">\r\n <input type=\"checkbox\" class=\"form-check-input custom-control-input\"\r\n id=\"stateCheckbox{{ coverage.state + coverageIndex }}\" [(ngModel)]=\"coverage.checked\"\r\n [indeterminate]=\"coverage.indeterminate\" (change)=\"onSelectAllChanged(coverage)\" />\r\n <label for=\"stateCheckbox{{ coverage?.state + coverageIndex }}\"\r\n class=\"custom-control-label font-weight-bold\"></label>\r\n <label class=\"ms-4 mt-1 position-absolute\"\r\n [attr.for]=\"'stateCheckbox' + coverage.state + coverageIndex\">\r\n {{ coverage.state | stateName }}\r\n</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-2\" style=\" display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n height: 21px;\r\n \">\r\n <i class=\"fa-solid mt-2 pt-2 pointer\"\r\n [ngClass]=\"coverage?.isShow ? 'fa-arrow-circle-up':'fa-arrow-circle-down'\"\r\n (click)=\"coverage.isShow = !coverage?.isShow\"></i>\r\n </div>\r\n <span></span>\r\n </div>\r\n <hr class=\"mt-0\" />\r\n <ng-container *ngIf=\"coverage?.isShow\">\r\n <div class=\"form-group mb-1\">\r\n <input type=\"text\" class=\"font-default form-check-inline form-control h-37\"\r\n placeholder=\"Select Counties In {{ coverage.state | stateName }}\" [(ngModel)]=\"coverage.query\" />\r\n </div>\r\n <div class=\"row m-2\" style=\"height: 160px;overflow-y: auto;padding-left: 1.6rem;\">\r\n <div class=\"list-group-item col-3 p-1\"\r\n *ngFor=\"let county of coverage.counties | SearchBy: 'countyName':coverage.query; let countyIndex = index\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\"\r\n [id]=\"'stateCheckbox' + coverage.state + county.countyName + countyIndex\"\r\n [(ngModel)]=\"county.checked\"\r\n (change)=\"onChangedCounty($event, coverage.state, county.countyName)\" />\r\n <label class=\"form-check-label\"\r\n [for]=\"'stateCheckbox' + coverage.state + county.countyName + countyIndex\">\r\n {{ county.countyName }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"previousStep()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"skip()\">\r\n Skip\r\n </button>\r\n <button type=\"button\" class=\"primary\" [disabled]=\"coverageSave\" [ng2-loading]=\"coverageSave\"\r\n (click)=\"saveCoverage()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n\r\n\r\n</div>", styles: [".coverage-container{max-width:1000px;margin:0 auto;padding:2rem;min-height:300px}.coverage-container .form-check-label{color:#69707d}.coverage-container .head{margin-bottom:.5rem;font-size:20px;font-weight:600;color:#69707d}.coverage-container p{font-size:16px;font-weight:500;color:#6b7280;margin-bottom:7px;margin-top:25px}.coverage-container .first-section span{color:#6b7280}.coverage-container .location-inputs{display:flex;gap:1rem;margin-bottom:5rem;margin-top:20px}.coverage-container .location-inputs input{flex:1;padding:5px 15px;border:1px solid #d1d5db;border-radius:.375rem;height:45px}.coverage-container .state-selector .empty-message{width:100%;padding:1rem;background-color:#f3f4f6;text-align:center;color:#6b7280;border-radius:.375rem}.coverage-container .state-selector .custom-control{font-size:15px;display:flex;align-items:center;gap:7px;color:#69707d;padding-left:13px}.coverage-container .state-selector .custom-control-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}.coverage-container .state-selector .form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}.coverage-container .coverage-options{margin-bottom:1rem}.coverage-container .coverage-options label{font-size:.875rem;display:flex;align-items:center;gap:.25rem}.coverage-container .coverage-options label .show-map{margin-left:auto}.coverage-container .coverage-options .icon-black{filter:brightness(0) saturate(100%) invert(10%) sepia(47%) saturate(3454%) hue-rotate(184deg) brightness(98%) contrast(101%)}.coverage-container .coverage-options .icon-gray{filter:brightness(0) saturate(100%) invert(100%) sepia(4%) saturate(29%) hue-rotate(68deg) brightness(112%) contrast(80%)}.coverage-container .coverage-options .form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}.coverage-container .coverage-options .square-box{width:12px;height:12px;border:2px solid;display:inline-block}.coverage-container .coverage-options .square-box.black{background:#002b49;border:0;width:15px;height:14px}.coverage-container .coverage-options .square-box.gray{border:1px solid rgba(128,128,128,.231372549)!important;border:0;width:15px;height:15px}.coverage-container .coverage-options .map-wrapper{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s ease,opacity .3s ease}.coverage-container .coverage-options .map-wrapper>*{overflow:hidden}.coverage-container .coverage-options .map-wrapper.open{grid-template-rows:1fr;opacity:1}.coverage-container .navigation-buttons{display:flex;justify-content:flex-end;gap:1rem;margin-top:70px;margin-bottom:50px}.coverage-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer;min-width:18%;min-height:50px}.coverage-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer;min-width:18%;min-height:50px}.coverage-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}::ng-deep .ng-select .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:10px}.custom-checkbox1{display:inline-block;width:15px;height:15px;border:1px solid #ccc;margin-right:8px;vertical-align:middle;position:relative;cursor:pointer;border-radius:3px;background-color:#fff}.custom-checkbox2{display:inline-block;width:15px;height:15px;border:1px solid #ccc;vertical-align:middle;position:relative;cursor:pointer;border-radius:3px;background-color:#fff}.custom-checkbox2.checked{background-color:#4077ad;border-color:#4077ad}.custom-checkbox2.checked:after{content:\"\";position:absolute;left:4px;top:0;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.custom-checkbox1.checked{background-color:#4077ad;border-color:#4077ad}.custom-checkbox1.checked:after{content:\"\";position:absolute;left:4px;top:0;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.select-loader{position:absolute;top:-28px;left:0;font-size:12px;color:#4077ad;display:flex;align-items:center;gap:6px}::ng-deep .form-check{display:block;min-height:1.5rem;margin-bottom:.125rem}.right-actions{display:flex;gap:16px}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border:none;font-size:14px;cursor:pointer;border-radius:5px}button.primary{background-color:#4077ad;color:#fff;border-radius:5px}button.secondary{background-color:#d5d6da;color:#525862;border-radius:5px}button:disabled{background-color:#9ca3af;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: UsMapComponent, selector: "us-map", inputs: ["selectedStates", "allowedStates", "isReadOnly", "filteredLocations"], outputs: ["onMapClick"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: SearchPipe, name: "SearchBy" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
27947
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: Step2CoverageComponent, isStandalone: false, selector: "app-coverage", ngImport: i0, template: "<div class=\"coverage-container\">\r\n <div class=\"first-section\">\r\n <h4 class=\"head\">Coverage Area</h4>\r\n <!-- <p>Let's start with the basics. Where are you located?</p>\r\n <span>We use this to match you with jobs nearby</span>\r\n <div class=\"location-inputs\">\r\n <input type=\"text\" placeholder=\"City\" [(ngModel)]=\"city\">\r\n <input type=\"text\" placeholder=\"State\" [(ngModel)]=\"state\">\r\n </div> -->\r\n </div>\r\n\r\n <div class=\"coverage-options\">\r\n <div class=\"d-flex justify-content-between\">\r\n <h6 class=\"text-secondary view-card fw-semibold\" style=\"font-size: 14px;\"> Where can you complete assignments?\r\n </h6>\r\n <div class=\"d-flex gap-1\">\r\n <label class=\"form-check-label\">Show Map</label>\r\n <div class=\"form-check form-switch\">\r\n <input class=\"form-check-input\" type=\"checkbox\" (change)=\"toggleMap()\" role=\"switch\">\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0 border-3\">\r\n\r\n <div class=\"pb-1 d-flex align-items-center mt-2\">\r\n <span class=\"custom-checkbox2\" [class.checked]=\"coverages.length > 0\"></span>\r\n <span class=\"view-card text-secondary ms-3\" style=\"font-size: 14px;\">\r\n My Current Coverage Area\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center\" style=\"cursor: pointer;\" (click)=\"skip()\">\r\n <span class=\"custom-checkbox2\" [class.checked]=\"coverages.length == 0\"></span>\r\n <span class=\"view-card text-secondary ms-3\" style=\"font-size: 14px;\">\r\n Not Applicable\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"state-selector\">\r\n <div class=\"row pb-2\">\r\n <div class=\"col-md-12\">\r\n <div class=\"position-relative\">\r\n <!-- ng-select -->\r\n <ng-select [clearable]=\"true\" [multiple]=\"true\" (change)=\"setSelectedStates($event)\" [items]=\"states\"\r\n [(ngModel)]=\"selectedStates\" bindLabel=\"stateName\" bindValue=\"stateCode\" [closeOnSelect]=\"false\"\r\n placeholder=\"Select State\" id=\"reqStates\" [loading]=\"isStatesLoading\">\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <span class=\"form-check\">\r\n <span class=\"form-check-input-wrapper\">\r\n <span class=\"custom-checkbox1\" [class.checked]=\"item$.selected\"></span>\r\n </span>\r\n {{ item.stateName }}\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Label Template -->\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-container *ngIf=\"!isStatesLoading\">\r\n <span class=\"ng-value-label\">{{ item.stateName }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"border-0 empty-message mt-4\" *ngIf=\"!isStatesLoading && coverages.length == 0\">\r\n <div class=\"text-center text-secondary\" style=\"font-size: 14px;\">No States Selected yet</div>\r\n </div>\r\n <div class=\"coverage-options\">\r\n <div class=\"col-md-10 col-12 py-2 map-wrapper\" [class.open]=\"showMap\">\r\n <us-map [filteredLocations]=\"filteredLocations\"></us-map>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mt-4\" *ngIf=\"!isStatesLoading\">\r\n <div *ngIf=\"coverages.length > 0\">\r\n <div class=\"col-8 p-0 ms-2\">\r\n <h4 class=\"head\">Coverage Area\r\n Counties</h4>\r\n </div>\r\n </div>\r\n <div class=\"row pt-2 pb-2\">\r\n <div class=\"col-12 \">\r\n <div class=\"row\">\r\n <div class=\"col-12\" *ngFor=\"let coverage of coverages; let coverageIndex = index\">\r\n <div class=\"row m-0\" style=\"background: #dedede;\">\r\n <div class=\"col-10 p-0\">\r\n <div class=\"form-group my-2\">\r\n <div class=\"custom-control custom-checkbox\">\r\n <input type=\"checkbox\" class=\"form-check-input custom-control-input\"\r\n id=\"stateCheckbox{{ coverage.state + coverageIndex }}\" [(ngModel)]=\"coverage.checked\"\r\n [indeterminate]=\"coverage.indeterminate\" (change)=\"onSelectAllChanged(coverage)\" />\r\n <label for=\"stateCheckbox{{ coverage?.state + coverageIndex }}\"\r\n class=\"custom-control-label font-weight-bold\"></label>\r\n <label class=\"ms-4 mt-1 position-absolute\"\r\n [attr.for]=\"'stateCheckbox' + coverage.state + coverageIndex\">\r\n {{ coverage.state | stateName }}\r\n</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-2\" style=\" display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n height: 21px;\r\n \">\r\n <i class=\"fa-solid mt-2 pt-2 pointer\"\r\n [ngClass]=\"coverage?.isShow ? 'fa-arrow-circle-up':'fa-arrow-circle-down'\"\r\n (click)=\"coverage.isShow = !coverage?.isShow\"></i>\r\n </div>\r\n <span></span>\r\n </div>\r\n <hr class=\"mt-0\" />\r\n <ng-container *ngIf=\"coverage?.isShow\">\r\n <div class=\"form-group mb-1\">\r\n <input type=\"text\" class=\"font-default form-check-inline form-control h-37\"\r\n placeholder=\"Select Counties In {{ coverage.state | stateName }}\" [(ngModel)]=\"coverage.query\" />\r\n </div>\r\n <div class=\"row m-2\" style=\"height: 160px;overflow-y: auto;padding-left: 1.6rem;\">\r\n <div class=\"list-group-item col-3 p-1\"\r\n *ngFor=\"let county of coverage.counties | SearchBy: 'countyName':coverage.query; let countyIndex = index\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\"\r\n [id]=\"'stateCheckbox' + coverage.state + county.countyName + countyIndex\"\r\n [(ngModel)]=\"county.checked\"\r\n (change)=\"onChangedCounty($event, coverage.state, county.countyName)\" />\r\n <label class=\"form-check-label\"\r\n [for]=\"'stateCheckbox' + coverage.state + county.countyName + countyIndex\">\r\n {{ county.countyName }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"previousStep()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"skip()\">\r\n Skip\r\n </button>\r\n <button type=\"button\" class=\"primary\" [disabled]=\"coverageSave\" [ng2-loading]=\"coverageSave\"\r\n (click)=\"saveCoverage()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n\r\n\r\n</div>", styles: [".coverage-container{max-width:1000px;margin:0 auto;padding:2rem;min-height:300px}.coverage-container .form-check-label{color:#69707d}.coverage-container .head{margin-bottom:.5rem;font-size:20px;font-weight:600;color:#69707d}.coverage-container p{font-size:16px;font-weight:500;color:#6b7280;margin-bottom:7px;margin-top:25px}.coverage-container .first-section span{color:#6b7280}.coverage-container .location-inputs{display:flex;gap:1rem;margin-bottom:5rem;margin-top:20px}.coverage-container .location-inputs input{flex:1;padding:5px 15px;border:1px solid #d1d5db;border-radius:.375rem;height:45px}.coverage-container .state-selector .empty-message{width:100%;padding:1rem;background-color:#f3f4f6;text-align:center;color:#6b7280;border-radius:.375rem}.coverage-container .state-selector .custom-control{font-size:15px;display:flex;align-items:center;gap:7px;color:#69707d;padding-left:13px}.coverage-container .state-selector .custom-control-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}.coverage-container .state-selector .form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}.coverage-container .coverage-options{margin-bottom:1rem}.coverage-container .coverage-options label{font-size:.875rem;display:flex;align-items:center;gap:.25rem}.coverage-container .coverage-options label .show-map{margin-left:auto}.coverage-container .coverage-options .icon-black{filter:brightness(0) saturate(100%) invert(10%) sepia(47%) saturate(3454%) hue-rotate(184deg) brightness(98%) contrast(101%)}.coverage-container .coverage-options .icon-gray{filter:brightness(0) saturate(100%) invert(100%) sepia(4%) saturate(29%) hue-rotate(68deg) brightness(112%) contrast(80%)}.coverage-container .coverage-options .form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}.coverage-container .coverage-options .square-box{width:12px;height:12px;border:2px solid;display:inline-block}.coverage-container .coverage-options .square-box.black{background:#002b49;border:0;width:15px;height:14px}.coverage-container .coverage-options .square-box.gray{border:1px solid rgba(128,128,128,.231372549)!important;border:0;width:15px;height:15px}.coverage-container .coverage-options .map-wrapper{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s ease,opacity .3s ease}.coverage-container .coverage-options .map-wrapper>*{overflow:hidden}.coverage-container .coverage-options .map-wrapper.open{grid-template-rows:1fr;opacity:1}.coverage-container .navigation-buttons{display:flex;justify-content:flex-end;gap:1rem;margin-top:70px;margin-bottom:50px}.coverage-container .navigation-buttons .back{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer;min-width:18%;min-height:50px}.coverage-container .navigation-buttons .next{padding:.5rem 1rem;background-color:#4077ad;color:#fff;border-radius:.375rem;cursor:pointer;min-width:18%;min-height:50px}.coverage-container .navigation-buttons .next:disabled{background-color:#d1d5db;cursor:not-allowed}::ng-deep .ng-select .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:10px}.custom-checkbox1{display:inline-block;width:15px;height:15px;border:1px solid #ccc;margin-right:8px;vertical-align:middle;position:relative;cursor:pointer;border-radius:3px;background-color:#fff}.custom-checkbox2{display:inline-block;width:15px;height:15px;border:1px solid #ccc;vertical-align:middle;position:relative;cursor:pointer;border-radius:3px;background-color:#fff}.custom-checkbox2.checked{background-color:#4077ad;border-color:#4077ad}.custom-checkbox2.checked:after{content:\"\";position:absolute;left:4px;top:0;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.custom-checkbox1.checked{background-color:#4077ad;border-color:#4077ad}.custom-checkbox1.checked:after{content:\"\";position:absolute;left:4px;top:0;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.select-loader{position:absolute;top:-28px;left:0;font-size:12px;color:#4077ad;display:flex;align-items:center;gap:6px}::ng-deep .form-check{display:block;min-height:1.5rem;margin-bottom:.125rem}.right-actions{display:flex;gap:16px}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border:none;font-size:14px;cursor:pointer;border-radius:5px}button.primary{background-color:#4077ad;color:#fff;border-radius:5px}button.secondary{background-color:#d5d6da;color:#525862;border-radius:5px}button:disabled{background-color:#9ca3af;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: UsMapComponent, selector: "us-map", inputs: ["selectedStates", "allowedStates", "isReadOnly", "filteredLocations"], outputs: ["onMapClick"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: SearchPipe, name: "SearchBy" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
27773
27948
  }
27774
27949
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: Step2CoverageComponent, decorators: [{
27775
27950
  type: Component,
@@ -28132,7 +28307,7 @@ class WorkexperienceComponent {
28132
28307
  this.store.nextStep();
28133
28308
  }
28134
28309
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: WorkexperienceComponent, deps: [{ token: UserExperienceService }, { token: WorkExperienceStore }, { token: CredentialingStore }, { token: CountryServices }, { token: PostalCodeServices }, { token: i6.TokenService }, { token: i3.FormBuilder }, { token: FileService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
28135
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: WorkexperienceComponent, isStandalone: false, selector: "app-workexperience", ngImport: i0, template: "<div *ngIf=\"!showpreview()\">\r\n <div class=\"education-container\">\r\n <h3>Add Work Experience</h3>\r\n <p class=\"hint\">\r\n Add your prior and current work history below\r\n </p>\r\n <form [formGroup]=\"workexperienceForm\">\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Company Name</div>\r\n <input type=\"text\" placeholder=\"Enter your company name here\" formControlName=\"companyName\" />\r\n <small class=\"error\" *ngIf=\"workexperienceForm.get('companyName')?.touched &&\r\n workexperienceForm.get('companyName')?.hasError('required')\">\r\n Company name is required\r\n </small>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">Job Title</div>\r\n <input type=\"text\" placeholder=\"Enter your job title here\" formControlName=\"jobTitle\" />\r\n <small class=\"error\" *ngIf=\"workexperienceForm.get('jobTitle')?.touched &&\r\n workexperienceForm.get('jobTitle')?.hasError('required')\">\r\n Job title is required\r\n </small>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Country</div>\r\n <ng-select formControlName=\"country\" [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode2\"\r\n [clearable]=\"false\" placeholder=\"Select Country\" (change)=\"onCountryChange($event)\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" readonly />\r\n &nbsp;{{ item.country }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"field\">\r\n <div class=\"head\">State</div>\r\n <ng-select formControlName=\"state\" [items]=\"states\" bindLabel=\"stateName\" bindValue=\"stateCode\"\r\n placeholder=\"Select State\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" />\r\n &nbsp;{{ item.stateName }}\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">\r\n {{ item.stateName }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n <div class=\"row form-row\">\r\n <div class=\"field\">\r\n <div class=\"head\">City</div>\r\n <input type=\"text\" placeholder=\"Enter City here\" formControlName=\"city\" />\r\n <small class=\"error\" *ngIf=\"workexperienceForm.get('city')?.touched &&\r\n workexperienceForm.get('city')?.hasError('required')\">\r\n Enter City\r\n </small>\r\n </div>\r\n <div class=\"field date\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Start Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Start date\" bsDatepicker\r\n [bsConfig]=\"{ adaptivePosition: true, isAnimated: true, showWeekNumbers: false,\r\n customTodayClass: !workexperienceForm.get('fromDate')?.value ? 'today-highlight' : '' }\" formControlName=\"fromDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n </div>\r\n </div>\r\n <div class=\"field date\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">To Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"To date\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !workexperienceForm.get('toDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"toDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Job Description or duties</div>\r\n <textarea placeholder=\"Description\" formControlName=\"jobDescription\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"upload-wrapper\">\r\n <p class=\"upload-title\">Upload</p>\r\n <p class=\"upload-subtitle\">Add documents below</p>\r\n <button type=\"button\" class=\"upload-btn\" (click)=\"fileInput.click()\">\r\n Upload Documents\r\n </button>\r\n <input #fileInput type=\"file\" accept=\".pdf,.doc,.docx\" (change)=\"selectFile($event)\" hidden />\r\n <p class=\"file-name\" *ngIf=\"fileName\">\r\n Selected: {{ fileName }}\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"nextStep()\" >\r\n Skip\r\n </button>\r\n <button type=\"button\" class=\"primary\" [disabled]=\"proposalLoader\" [ng2-loading]=\"proposalLoader\"\r\n (click)=\"saveFile()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<div class=\"work-preview\" *ngIf=\"showpreview()\">\r\n <div class=\"preview-header\" style=\"margin-left: 380px;\">\r\n <h3>Work Experiences Preview</h3>\r\n </div>\r\n <div class=\"accordion\" style=\"margin: 20px 100px;\">\r\n\r\n <div *ngFor=\"let exp of workStore.experiences(); let i = index\" style=\"margin-bottom: 20px;\"\r\n class=\"accordion-item border-0\">\r\n\r\n <!-- HEADER (preview) -->\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#edu_' + i\">\r\n\r\n <!-- LEFT : TITLE -->\r\n <span class=\"accordion-title\">\r\n {{ exp.companyName }}\r\n </span>\r\n\r\n <!-- RIGHT : EDIT ICON -->\r\n <span class=\"accordion-actions\">\r\n <img src=\"/assets/images/icons/edit-text.png\" class=\"edit-icon icon-color\"\r\n (click)=\"edit(i); $event.stopPropagation()\" alt=\"Edit\" />\r\n </span>\r\n\r\n </button>\r\n </h2>\r\n\r\n\r\n <!-- BODY -->\r\n <div [id]=\"'edu_' + i\" class=\"accordion-collapse collapse\" style=\"margin-bottom: 20px;\">\r\n <div class=\"accordion-body\">\r\n\r\n <!-- GRID DATA (2 or 3 columns) -->\r\n <div class=\"detail-grid\">\r\n <div>\r\n <strong>Company Name</strong><br />\r\n <span class=\"job-title\">{{ exp.companyName }}</span>\r\n </div>\r\n <div>\r\n <strong>Job Title</strong><br />\r\n <span class=\"job-title\">{{ exp.jobTitle }}</span>\r\n </div>\r\n <div>\r\n <strong>From Date</strong><br />\r\n <span class=\"job-title\">{{ exp.fromDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n <div>\r\n <strong>To Date</strong><br />\r\n <span class=\"job-title\">{{ exp.toDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n \r\n <div>\r\n <strong>Country</strong><br />\r\n <span class=\"job-title\">{{ exp.country }}</span>\r\n </div>\r\n <div>\r\n <strong>State</strong><br />\r\n <span class=\"job-title\">{{ exp.state | stateName }}</span>\r\n </div>\r\n\r\n <div>\r\n <strong>City</strong><br />\r\n <span class=\"job-title\">{{ exp.city }}</span>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"exp.fileUrl\" class=\"full-width\">\r\n <strong>Document</strong><br />\r\n <a [href]=\"cloudfront + exp.fileUrl\" target=\"_blank\">\r\n <span class=\"job-title\"> {{ exp.fileName }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"full-width mt-3\">\r\n <strong>Job Description</strong><br />\r\n <span class=\"job-title\"> {{ exp.jobDescription }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"primary\" (click)=\"add()\" style=\"background-color: #1f4d5f;width: 200px;\">\r\n Add More Experiences\r\n </button>\r\n <button type=\"button\" class=\"primary\" (click)=\"nextStep()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".education-container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:300px}h3{font-size:18px;font-weight:600;margin-bottom:4px}.hint{font-size:14px;color:#6b7280;margin-bottom:24px}.row{display:flex;margin-bottom:16px}.field{flex:1;display:flex;flex-direction:column}.field.full-width{flex:1 1 100%}input,select,textarea{width:100%;height:44px;padding:10px 12px;border:2px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;box-sizing:border-box;height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}textarea{height:90px;resize:none}.error{margin-top:4px;font-size:12px;color:#dc2626}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border-radius:4px;border:none;font-size:14px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff}button.secondary{background-color:#f3f4f6;color:#374151}button:disabled{background-color:#9ca3af;cursor:not-allowed}.head{color:#6b7280;font-size:14px;margin-bottom:5px;font-weight:500}::ng-deep .today-highlight{color:#fff!important;background:#1e2541!important}.form-row{display:flex}.field{display:flex;flex-direction:column}.field.city{flex:0 0 50%}.field.date{flex:0 0 25%}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#757575;font-size:14px}.close-btn-select{width:16px;height:16px;color:#00f;display:inline-block}.upload-wrapper{margin-top:37px}.upload-title{font-weight:600;margin-bottom:4px}.upload-subtitle{font-size:13px;color:#6c757d;margin-bottom:12px}.upload-btn{background-color:#1f4d5f;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer}.upload-btn:hover{background-color:#173b4a}.file-name{margin-top:8px;font-size:13px;color:#495057}.right-actions{display:flex;gap:16px}.date-time-filter{padding-right:40px;background-image:url(/assets/images/icons/calendar.svg);background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px;cursor:pointer}.work-preview{max-width:1000px;padding:20px;margin:15px auto;background-color:#f4f6f8;font-family:Segoe UI,Arial,sans-serif}.preview-card{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 3px 8px #0000001a;padding:20px 25px;margin-bottom:20px;margin-top:25px;transition:box-shadow .2s ease}.preview-card:hover{box-shadow:0 6px 15px #00000026}.edit-btn{position:absolute;top:15px;right:15px;width:20px;height:20px;cursor:pointer}.card-top h4{margin:0;font-size:18px;color:#1f4d5f}.card-top .job-title{display:block;font-size:14px;color:#555;margin-top:2px}.card-meta{margin:10px 0;font-size:13px;color:#777;display:flex;justify-content:space-between}.card-meta .dates{font-style:italic}.job-description{font-size:14px;color:#333;line-height:1.5;margin-bottom:8px}.file-link{font-size:13px;color:#4077ad;text-decoration:underline;display:inline-block;margin-top:5px}.actions{display:flex;justify-content:space-between;margin-top:25px}button.secondary{background-color:#e0e0e0;color:#6c757dc7;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}@media (max-width: 600px){.preview-card{padding:15px}.edit-btn{top:10px;right:10px;width:18px;height:18px}.card-meta{flex-direction:column;gap:3px}}::ng-deep ng-dropdown-panel input[type=checkbox]{margin-right:0!important;padding:9px;margin-top:0}.form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{font-size:14px}::ng-deep .ng-value-label{font-size:14px}::ng-deep .bs-datepicker-head{background-color:#1e2541!important}::ng-deep .theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td[class*=select-] span:after{background-color:#1e2541!important}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.accordion-button{display:flex;align-items:center}.accordion-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-actions{display:flex;align-items:center;margin-right:12px}.edit-icon{cursor:pointer}::ng-deep .accordion-item:first-of-type>.accordion-header .accordion-button{margin-bottom:20px}.job-title{color:#6c757d;font-weight:400;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i11.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i11.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
28310
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: WorkexperienceComponent, isStandalone: false, selector: "app-workexperience", ngImport: i0, template: "<div *ngIf=\"!showpreview()\">\r\n <div class=\"education-container\">\r\n <h3>Add Work Experience</h3>\r\n <p class=\"hint\">\r\n Add your prior and current work history below\r\n </p>\r\n <form [formGroup]=\"workexperienceForm\">\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Company Name</div>\r\n <input type=\"text\" placeholder=\"Enter your company name here\" formControlName=\"companyName\" />\r\n <small class=\"error\" *ngIf=\"workexperienceForm.get('companyName')?.touched &&\r\n workexperienceForm.get('companyName')?.hasError('required')\">\r\n Company name is required\r\n </small>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <div class=\"head\">Job Title</div>\r\n <input type=\"text\" placeholder=\"Enter your job title here\" formControlName=\"jobTitle\" />\r\n <small class=\"error\" *ngIf=\"workexperienceForm.get('jobTitle')?.touched &&\r\n workexperienceForm.get('jobTitle')?.hasError('required')\">\r\n Job title is required\r\n </small>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"field\">\r\n <div class=\"head\">Country</div>\r\n <ng-select formControlName=\"country\" [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode2\"\r\n [clearable]=\"false\" placeholder=\"Select Country\" (change)=\"onCountryChange($event)\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" readonly />\r\n &nbsp;{{ item.country }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"field\">\r\n <div class=\"head\">State</div>\r\n <ng-select formControlName=\"state\" [items]=\"states\" bindLabel=\"stateName\" bindValue=\"stateCode\"\r\n placeholder=\"Select State\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"item$.selected\" />\r\n &nbsp;{{ item.stateName }}\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\">\r\n {{ item.stateName }}\r\n </span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">\r\n <img src=\"/assets/images/icons/close-sm-circle.svg\" class=\"close-btn-select\" />\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n <div class=\"row form-row\">\r\n <div class=\"field\">\r\n <div class=\"head\">City</div>\r\n <input type=\"text\" placeholder=\"Enter City here\" formControlName=\"city\" />\r\n <small class=\"error\" *ngIf=\"workexperienceForm.get('city')?.touched &&\r\n workexperienceForm.get('city')?.hasError('required')\">\r\n Enter City\r\n </small>\r\n </div>\r\n <div class=\"field date\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">Start Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"Start date\" bsDatepicker\r\n [bsConfig]=\"{ adaptivePosition: true, isAnimated: true, showWeekNumbers: false,\r\n customTodayClass: !workexperienceForm.get('fromDate')?.value ? 'today-highlight' : '' }\" formControlName=\"fromDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n </div>\r\n </div>\r\n <div class=\"field date\">\r\n <div class=\"mb-3 head\">\r\n <div class=\"head\">To Date</div>\r\n <input class=\"form-control date-time-filter\" placeholder=\"To date\" bsDatepicker [bsConfig]=\"{ adaptivePosition: true,showWeekNumbers: false, isAnimated: true, \r\n customTodayClass: !workexperienceForm.get('toDate')?.value ? 'today-highlight' : '' }\"\r\n formControlName=\"toDate\" (bsValueChange)=\"onPreferredDateChange($event)\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"field full-width\">\r\n <div class=\"head\">Job Description or duties</div>\r\n <textarea placeholder=\"Description\" formControlName=\"jobDescription\">\r\n </textarea>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"upload-wrapper\">\r\n <p class=\"upload-title\">Upload</p>\r\n <p class=\"upload-subtitle\">Add documents below</p>\r\n <button type=\"button\" class=\"upload-btn\" (click)=\"fileInput.click()\">\r\n Upload Documents\r\n </button>\r\n <input #fileInput type=\"file\" accept=\".pdf,.doc,.docx\" (change)=\"selectFile($event)\" hidden />\r\n <p class=\"file-name\" *ngIf=\"fileName\">\r\n Selected: {{ fileName }}\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"nextStep()\" >\r\n Skip\r\n </button>\r\n <button type=\"button\" class=\"primary\" [disabled]=\"proposalLoader\" [ng2-loading]=\"proposalLoader\"\r\n (click)=\"saveFile()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<div class=\"work-preview\" *ngIf=\"showpreview()\">\r\n <div class=\"preview-header\" style=\"margin-left: 380px;\">\r\n <h3>Work Experiences Preview</h3>\r\n </div>\r\n <div class=\"accordion\" style=\"margin: 20px 100px;\">\r\n\r\n <div *ngFor=\"let exp of workStore.experiences(); let i = index\" style=\"margin-bottom: 20px;\"\r\n class=\"accordion-item border-0\">\r\n\r\n <!-- HEADER (preview) -->\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#edu_' + i\">\r\n\r\n <!-- LEFT : TITLE -->\r\n <span class=\"accordion-title\">\r\n {{ exp.companyName }}\r\n </span>\r\n\r\n <!-- RIGHT : EDIT ICON -->\r\n <span class=\"accordion-actions\">\r\n <img src=\"/assets/images/icons/edit-text.png\" class=\"edit-icon icon-color\"\r\n (click)=\"edit(i); $event.stopPropagation()\" alt=\"Edit\" />\r\n </span>\r\n\r\n </button>\r\n </h2>\r\n\r\n\r\n <!-- BODY -->\r\n <div [id]=\"'edu_' + i\" class=\"accordion-collapse collapse\" style=\"margin-bottom: 20px;\">\r\n <div class=\"accordion-body\">\r\n\r\n <!-- GRID DATA (2 or 3 columns) -->\r\n <div class=\"detail-grid\">\r\n <div>\r\n <strong>Company Name</strong><br />\r\n <span class=\"job-title\">{{ exp.companyName }}</span>\r\n </div>\r\n <div>\r\n <strong>Job Title</strong><br />\r\n <span class=\"job-title\">{{ exp.jobTitle }}</span>\r\n </div>\r\n <div>\r\n <strong>From Date</strong><br />\r\n <span class=\"job-title\">{{ exp.fromDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n <div>\r\n <strong>To Date</strong><br />\r\n <span class=\"job-title\">{{ exp.toDate | date:'yyyy/MM/dd' }}</span>\r\n </div>\r\n \r\n <div>\r\n <strong>Country</strong><br />\r\n <span class=\"job-title\">{{ exp.country }}</span>\r\n </div>\r\n <div>\r\n <strong>State</strong><br />\r\n <span class=\"job-title\">{{ exp.state | stateName }}</span>\r\n </div>\r\n\r\n <div>\r\n <strong>City</strong><br />\r\n <span class=\"job-title\">{{ exp.city }}</span>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"exp.fileUrl\" class=\"full-width\">\r\n <strong>Document</strong><br />\r\n <a [href]=\"cloudfront + exp.fileUrl\" target=\"_blank\">\r\n <span class=\"job-title\"> {{ exp.fileName }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"full-width mt-3\">\r\n <strong>Job Description</strong><br />\r\n <span class=\"job-title\"> {{ exp.jobDescription }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <button type=\"button\" class=\"secondary\" (click)=\"back()\">Back</button>\r\n <div class=\"right-actions\">\r\n <button type=\"button\" class=\"primary\" (click)=\"add()\" style=\"background-color: #1f4d5f;width: 200px;\">\r\n Add More Experiences\r\n </button>\r\n <button type=\"button\" class=\"primary\" (click)=\"nextStep()\">\r\n Continue\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".education-container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:300px}h3{font-size:18px;font-weight:600;margin-bottom:4px}.hint{font-size:14px;color:#6b7280;margin-bottom:24px}.row{display:flex;margin-bottom:16px}.field{flex:1;display:flex;flex-direction:column}.field.full-width{flex:1 1 100%}input,select,textarea{width:100%;height:44px;padding:10px 12px;border:2px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;box-sizing:border-box;height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px}::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-placeholder{top:10px}textarea{height:90px;resize:none}.error{margin-top:4px;font-size:12px;color:#dc2626}.actions{display:flex;justify-content:space-between;margin:70px 0 40px}button{height:44px;min-width:120px;border-radius:4px;border:none;font-size:14px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff}button.secondary{background-color:#f3f4f6;color:#374151}button:disabled{background-color:#9ca3af;cursor:not-allowed}.head{color:#6b7280;font-size:14px;margin-bottom:5px;font-weight:500}::ng-deep .today-highlight{color:#fff!important;background:#1e2541!important}.form-row{display:flex}.field{display:flex;flex-direction:column}.field.city{flex:0 0 50%}.field.date{flex:0 0 25%}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#757575;font-size:14px}.close-btn-select{width:16px;height:16px;color:#00f;display:inline-block}.upload-wrapper{margin-top:37px}.upload-title{font-weight:600;margin-bottom:4px}.upload-subtitle{font-size:13px;color:#6c757d;margin-bottom:12px}.upload-btn{background-color:#1f4d5f;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer}.upload-btn:hover{background-color:#173b4a}.file-name{margin-top:8px;font-size:13px;color:#495057}.right-actions{display:flex;gap:16px}.date-time-filter{padding-right:40px;background-image:url(/assets/images/icons/calendar.svg);background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px;cursor:pointer}.work-preview{max-width:1000px;padding:20px;margin:15px auto;background-color:#f4f6f8;font-family:Segoe UI,Arial,sans-serif}.preview-card{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 3px 8px #0000001a;padding:20px 25px;margin-bottom:20px;margin-top:25px;transition:box-shadow .2s ease}.preview-card:hover{box-shadow:0 6px 15px #00000026}.edit-btn{position:absolute;top:15px;right:15px;width:20px;height:20px;cursor:pointer}.card-top h4{margin:0;font-size:18px;color:#1f4d5f}.card-top .job-title{display:block;font-size:14px;color:#555;margin-top:2px}.card-meta{margin:10px 0;font-size:13px;color:#777;display:flex;justify-content:space-between}.card-meta .dates{font-style:italic}.job-description{font-size:14px;color:#333;line-height:1.5;margin-bottom:8px}.file-link{font-size:13px;color:#4077ad;text-decoration:underline;display:inline-block;margin-top:5px}.actions{display:flex;justify-content:space-between;margin-top:25px}button.secondary{background-color:#e0e0e0;color:#6c757dc7;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}button.primary{background-color:#4077ad;color:#fff;padding:8px 20px;border:none;border-radius:6px;cursor:pointer}@media (max-width: 600px){.preview-card{padding:15px}.edit-btn{top:10px;right:10px;width:18px;height:18px}.card-meta{flex-direction:column;gap:3px}}::ng-deep ng-dropdown-panel input[type=checkbox]{margin-right:0!important;padding:9px;margin-top:0}.form-check-input:checked{color:#fff!important;border-color:#2980b9!important;background-color:#2980b9!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{font-size:14px}::ng-deep .ng-value-label{font-size:14px}::ng-deep .bs-datepicker-head{background-color:#1e2541!important}::ng-deep .theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td[class*=select-] span:after{background-color:#1e2541!important}.icon-color{cursor:pointer;width:20px;height:20px;transition:transform .3s ease;filter:brightness(0) saturate(100%) invert(48%) sepia(8%) saturate(350%) hue-rotate(170deg) brightness(92%) contrast(88%)}.icon-color.edit{width:18px;height:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.accordion-button{display:flex;align-items:center}.accordion-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-actions{display:flex;align-items:center;margin-right:12px}.edit-icon{cursor:pointer}::ng-deep .accordion-item:first-of-type>.accordion-header .accordion-button{margin-bottom:20px}.job-title{color:#6c757d;font-weight:400;font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i10.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i10.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i11.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i11.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: Ng2LoadingSpinnerDirective, selector: "[ng2-loading]", inputs: ["ng2-loading", "config", "template"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: StateNamePipe, name: "stateName" }] });
28136
28311
  }
28137
28312
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: WorkexperienceComponent, decorators: [{
28138
28313
  type: Component,
@@ -28141,8 +28316,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
28141
28316
 
28142
28317
  class CredentialingComponent {
28143
28318
  store;
28319
+ libConfig;
28144
28320
  viewport;
28145
28321
  animation;
28322
+ cloudfrontUrl;
28146
28323
  data; // Data coming from parent
28147
28324
  back = new EventEmitter();
28148
28325
  onActivate(outlet) {
@@ -28151,8 +28328,9 @@ class CredentialingComponent {
28151
28328
  outlet.activatedRouteData?.['animation'] ?? 'DefaultPage';
28152
28329
  });
28153
28330
  }
28154
- constructor(store, viewport) {
28331
+ constructor(store, libConfig, viewport) {
28155
28332
  this.store = store;
28333
+ this.libConfig = libConfig;
28156
28334
  this.viewport = viewport;
28157
28335
  effect(() => {
28158
28336
  this.store.currentStep();
@@ -28161,12 +28339,13 @@ class CredentialingComponent {
28161
28339
  }
28162
28340
  ngOnInit() {
28163
28341
  console.log('Signup loaded');
28342
+ this.cloudfrontUrl = this.libConfig.cloudfrontUrl;
28164
28343
  }
28165
28344
  goBackToInitialProcess() {
28166
28345
  this.back.emit();
28167
28346
  }
28168
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CredentialingComponent, deps: [{ token: CredentialingStore }, { token: i7.ViewportScroller }], target: i0.ɵɵFactoryTarget.Component });
28169
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CredentialingComponent, isStandalone: false, selector: "app-credentialing", inputs: { data: "data" }, outputs: { back: "back" }, ngImport: i0, template: "\r\n\r\n<div class=\"credentialing-container\">\r\n <app-stepper></app-stepper>\r\n <div class=\"step-content\" [@stepTransition]=\"store.currentStep()\">\r\n <app-role-selection (backToParent)=\"goBackToInitialProcess()\" [roleData]=\"data\" *ngIf=\"store.currentStep() === 1\"></app-role-selection>\r\n <app-coverage *ngIf=\"store.currentStep() === 2\"></app-coverage>\r\n <app-workexperience *ngIf=\"store.currentStep() === 3\"></app-workexperience>\r\n <app-education *ngIf=\"store.currentStep() === 4\"></app-education>\r\n <app-certification *ngIf=\"store.currentStep() === 5\"></app-certification>\r\n <app-licenses *ngIf=\"store.currentStep() === 6\"></app-licenses>\r\n <app-skills *ngIf=\"store.currentStep() === 7\"></app-skills>\r\n <app-tools [roleData]=\"data\" *ngIf=\"store.currentStep() === 8\"></app-tools>\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px!important;border:1px solid #dee2e6}.step-content{position:relative;min-height:400px}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: StepperComponent, selector: "app-stepper" }, { kind: "component", type: EducationComponent, selector: "app-education" }, { kind: "component", type: CertificationComponent, selector: "app-certification" }, { kind: "component", type: SkillsComponent, selector: "app-skills" }, { kind: "component", type: LicensesComponent, selector: "app-licenses" }, { kind: "component", type: ToolsComponent, selector: "app-tools", inputs: ["roleData"] }, { kind: "component", type: RoleSelectionComponent, selector: "app-role-selection", inputs: ["roleData"], outputs: ["backToParent"] }, { kind: "component", type: Step2CoverageComponent, selector: "app-coverage" }, { kind: "component", type: WorkexperienceComponent, selector: "app-workexperience" }], animations: [
28347
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CredentialingComponent, deps: [{ token: CredentialingStore }, { token: LIBRARY_CONFIG }, { token: i1$1.ViewportScroller }], target: i0.ɵɵFactoryTarget.Component });
28348
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CredentialingComponent, isStandalone: false, selector: "app-credentialing", inputs: { data: "data" }, outputs: { back: "back" }, ngImport: i0, template: "<div class=\"credentialing-container\">\r\n <app-stepper></app-stepper>\r\n <div class=\"step-content\" [@stepTransition]=\"store.currentStep()\">\r\n <app-role-select (backToParent)=\"goBackToInitialProcess()\" [cloudfrontUrl]=\"cloudfrontUrl\" [roleData]=\"data\"\r\n *ngIf=\"store.currentStep() === 1\"></app-role-select>\r\n <app-coverage *ngIf=\"store.currentStep() === 2\"></app-coverage>\r\n <app-workexperience *ngIf=\"store.currentStep() === 3\"></app-workexperience>\r\n <app-education *ngIf=\"store.currentStep() === 4\"></app-education>\r\n <app-certification *ngIf=\"store.currentStep() === 5\"></app-certification>\r\n <app-licenses *ngIf=\"store.currentStep() === 6\"></app-licenses>\r\n <app-skills *ngIf=\"store.currentStep() === 7\"></app-skills>\r\n <app-tools [roleData]=\"data\" *ngIf=\"store.currentStep() === 8\"></app-tools>\r\n </div>\r\n</div>", styles: ["::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px!important;border:1px solid #dee2e6}.step-content{position:relative;min-height:400px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: StepperComponent, selector: "app-stepper" }, { kind: "component", type: EducationComponent, selector: "app-education" }, { kind: "component", type: CertificationComponent, selector: "app-certification" }, { kind: "component", type: SkillsComponent, selector: "app-skills" }, { kind: "component", type: LicensesComponent, selector: "app-licenses" }, { kind: "component", type: ToolsComponent, selector: "app-tools", inputs: ["roleData"] }, { kind: "component", type: RoleSelectComponent, selector: "app-role-select", inputs: ["roleData", "cloudfrontUrl"], outputs: ["backToParent"] }, { kind: "component", type: Step2CoverageComponent, selector: "app-coverage" }, { kind: "component", type: WorkexperienceComponent, selector: "app-workexperience" }], animations: [
28170
28349
  trigger('stepTransition', [
28171
28350
  transition('* <=> *', [
28172
28351
  style({
@@ -28196,13 +28375,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
28196
28375
  }))
28197
28376
  ])
28198
28377
  ])
28199
- ], template: "\r\n\r\n<div class=\"credentialing-container\">\r\n <app-stepper></app-stepper>\r\n <div class=\"step-content\" [@stepTransition]=\"store.currentStep()\">\r\n <app-role-selection (backToParent)=\"goBackToInitialProcess()\" [roleData]=\"data\" *ngIf=\"store.currentStep() === 1\"></app-role-selection>\r\n <app-coverage *ngIf=\"store.currentStep() === 2\"></app-coverage>\r\n <app-workexperience *ngIf=\"store.currentStep() === 3\"></app-workexperience>\r\n <app-education *ngIf=\"store.currentStep() === 4\"></app-education>\r\n <app-certification *ngIf=\"store.currentStep() === 5\"></app-certification>\r\n <app-licenses *ngIf=\"store.currentStep() === 6\"></app-licenses>\r\n <app-skills *ngIf=\"store.currentStep() === 7\"></app-skills>\r\n <app-tools [roleData]=\"data\" *ngIf=\"store.currentStep() === 8\"></app-tools>\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px!important;border:1px solid #dee2e6}.step-content{position:relative;min-height:400px}\n"] }]
28200
- }], ctorParameters: () => [{ type: CredentialingStore }, { type: i7.ViewportScroller }], propDecorators: { data: [{
28378
+ ], template: "<div class=\"credentialing-container\">\r\n <app-stepper></app-stepper>\r\n <div class=\"step-content\" [@stepTransition]=\"store.currentStep()\">\r\n <app-role-select (backToParent)=\"goBackToInitialProcess()\" [cloudfrontUrl]=\"cloudfrontUrl\" [roleData]=\"data\"\r\n *ngIf=\"store.currentStep() === 1\"></app-role-select>\r\n <app-coverage *ngIf=\"store.currentStep() === 2\"></app-coverage>\r\n <app-workexperience *ngIf=\"store.currentStep() === 3\"></app-workexperience>\r\n <app-education *ngIf=\"store.currentStep() === 4\"></app-education>\r\n <app-certification *ngIf=\"store.currentStep() === 5\"></app-certification>\r\n <app-licenses *ngIf=\"store.currentStep() === 6\"></app-licenses>\r\n <app-skills *ngIf=\"store.currentStep() === 7\"></app-skills>\r\n <app-tools [roleData]=\"data\" *ngIf=\"store.currentStep() === 8\"></app-tools>\r\n </div>\r\n</div>", styles: ["::ng-deep .ng-select.ng-select-single .ng-select-container{height:45px!important;border:1px solid #dee2e6}.step-content{position:relative;min-height:400px}\n"] }]
28379
+ }], ctorParameters: () => [{ type: CredentialingStore }, { type: undefined, decorators: [{
28380
+ type: Inject,
28381
+ args: [LIBRARY_CONFIG]
28382
+ }] }, { type: i1$1.ViewportScroller }], propDecorators: { data: [{
28201
28383
  type: Input
28202
28384
  }], back: [{
28203
28385
  type: Output
28204
28386
  }] } });
28205
28387
 
28388
+ const CURRENT_YEAR = new Date().getFullYear();
28206
28389
  const PRIVACY_CONFIG = {
28207
28390
  inspectiondepot: {
28208
28391
  companyName: 'Inspection Depot, Inc',
@@ -28224,6 +28407,7 @@ const PRIVACY_CONFIG = {
28224
28407
  country: 'US',
28225
28408
  email: 'info@inspectiondepot.com',
28226
28409
  websiteurl: 'https://inspectiondepot.com/',
28410
+ currentYear: CURRENT_YEAR
28227
28411
  },
28228
28412
  inspectormatch: {
28229
28413
  companyName: 'InspectorMatch',
@@ -28245,6 +28429,7 @@ const PRIVACY_CONFIG = {
28245
28429
  country: 'US',
28246
28430
  email: 'info@inspectormatch.com',
28247
28431
  websiteurl: 'https://inspectormatch.com/',
28432
+ currentYear: CURRENT_YEAR
28248
28433
  },
28249
28434
  bootog: {
28250
28435
  companyName: 'BootOG',
@@ -28266,6 +28451,7 @@ const PRIVACY_CONFIG = {
28266
28451
  country: 'US',
28267
28452
  email: 'info@bootog.com',
28268
28453
  websiteurl: 'https://bootog.com',
28454
+ currentYear: CURRENT_YEAR
28269
28455
  },
28270
28456
  adjustermatch: {
28271
28457
  companyName: 'AdjusterMatch',
@@ -28287,6 +28473,7 @@ const PRIVACY_CONFIG = {
28287
28473
  country: 'US',
28288
28474
  email: 'info@adjustermatch.com',
28289
28475
  websiteurl: 'https://adjustermatch.com',
28476
+ currentYear: CURRENT_YEAR
28290
28477
  },
28291
28478
  idenergy: {
28292
28479
  companyName: 'IDEnergy',
@@ -28308,6 +28495,7 @@ const PRIVACY_CONFIG = {
28308
28495
  country: 'US',
28309
28496
  email: 'info@idenergy.org',
28310
28497
  websiteurl: 'https://energyscoreusa.com',
28498
+ currentYear: CURRENT_YEAR
28311
28499
  },
28312
28500
  dronesnap: {
28313
28501
  companyName: 'DroneSnap',
@@ -28329,6 +28517,7 @@ const PRIVACY_CONFIG = {
28329
28517
  country: 'US',
28330
28518
  email: 'info@dronesnap.com',
28331
28519
  websiteurl: 'https://live.dronesnap.com/',
28520
+ currentYear: CURRENT_YEAR
28332
28521
  },
28333
28522
  ameripro: {
28334
28523
  companyName: 'AmeriPro',
@@ -28350,6 +28539,7 @@ const PRIVACY_CONFIG = {
28350
28539
  country: 'US',
28351
28540
  email: 'info@chooseameripro.com',
28352
28541
  websiteurl: 'https://live.chooseameripro.com/',
28542
+ currentYear: CURRENT_YEAR
28353
28543
  }
28354
28544
  };
28355
28545
  class InitialProcessComponent {
@@ -28366,6 +28556,7 @@ class InitialProcessComponent {
28366
28556
  tokenService;
28367
28557
  roleContextService;
28368
28558
  libConfig;
28559
+ isAgreeEnabled = false;
28369
28560
  uploadToAws = true;
28370
28561
  selectedRoleValue = null;
28371
28562
  selectedRole = null;
@@ -29315,6 +29506,12 @@ class InitialProcessComponent {
29315
29506
  });
29316
29507
  }
29317
29508
  }
29509
+ onTermsScroll(event) {
29510
+ const el = event.target;
29511
+ if (el.scrollTop + el.clientHeight >= el.scrollHeight - 5) {
29512
+ this.isAgreeEnabled = true;
29513
+ }
29514
+ }
29318
29515
  openModal(template, title, event) {
29319
29516
  event.preventDefault();
29320
29517
  this.termsAndConditionTitle = title;
@@ -29322,6 +29519,7 @@ class InitialProcessComponent {
29322
29519
  this.modelRef.hide();
29323
29520
  }
29324
29521
  this.modelRef = this.modalService.show(template);
29522
+ this.isAgreeEnabled = false;
29325
29523
  }
29326
29524
  agree(title) {
29327
29525
  if (title == 'Terms and Conditions') {
@@ -29330,6 +29528,7 @@ class InitialProcessComponent {
29330
29528
  if (title == 'Privacy Statement') {
29331
29529
  this.model.privacy = true;
29332
29530
  }
29531
+ this.isAgreeEnabled = false;
29333
29532
  }
29334
29533
  decline(title) {
29335
29534
  if (title == 'Terms and Conditions') {
@@ -29350,7 +29549,7 @@ class InitialProcessComponent {
29350
29549
  };
29351
29550
  this.contractorSubCategories = [];
29352
29551
  this.contractorSubCategoryService
29353
- .getContractorSubCategories(query)
29552
+ .get(query)
29354
29553
  .subscribe((result) => {
29355
29554
  const uniqueItems = result.data.reduce((acc, current) => {
29356
29555
  if (!acc.some(x => x.contractorCategory === current.contractorCategory)) {
@@ -29388,13 +29587,13 @@ class InitialProcessComponent {
29388
29587
  this.destroy$.next();
29389
29588
  this.destroy$.complete();
29390
29589
  }
29391
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InitialProcessComponent, deps: [{ token: i2.Router }, { token: UserDetailService }, { token: i3.FormBuilder }, { token: FileService }, { token: ProvidersService }, { token: RolesService }, { token: i7$1.BsModalService }, { token: ProviderContractorSubCategoryService }, { token: ProviderContractorSubCategoryService }, { token: i9.AuthService }, { token: i6.TokenService }, { token: i6.RoleContextService }, { token: LIBRARY_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
29392
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: InitialProcessComponent, isStandalone: false, selector: "app-initial-process", viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"card pb-2 pr-5\" style=\"margin-bottom: 30px;\">\r\n <ng-container class=\"load-page\" [style.visibility]=\"view == 1 ? 'visible' : 'hidden' \">\r\n <ul class=\"term-list para-comma\" [ngClass]=\"view == 1 ? '' : 'hidden-view'\">\r\n Thanks for joining\r\n <span class=\"brand-name\">{{ branding.displayName }}</span>.\r\n Our members and service providers rely on accurate info in your profile to\r\n connect you with work that suits your capabilities. Keep your profile\r\n complete, skills updated, licenses current, photos and logos professional,\r\n and schedule up to date.\r\n </ul>\r\n <div class=\"row col-12 mt-4\" [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <div class=\"col-md-6 col-lg-6 col-sm-12\">\r\n <div class=\"form-group form-check agree\">\r\n <input #acceptTerms=\"ngModel\" [ngClass]=\"{ 'is-invalid': !model.acceptTerms && validatePage==1 }\"\r\n [(ngModel)]=\"model.acceptTerms\" type=\"checkbox\" name=\"acceptTerms\" id=\"acceptTerms\"\r\n class=\"form-check-input\" (click)=\"openModal(termsAndConditionsModel,'Terms and Conditions',$event)\"\r\n required>\r\n <label for=\"acceptTerms\" class=\"form-check-label checkmark pointer\"\r\n (click)=\"openModal(termsAndConditionsModel,'Terms and Conditions',$event)\">\r\n I agree to Terms and Conditions\r\n </label>\r\n <div *ngIf=\"!model.acceptTerms && validatePage==1\" class=\"invalid-feedback\">\r\n Accept Terms & Conditions is required\r\n </div>\r\n </div>\r\n <div class=\"form-group form-check agree\">\r\n <input #privacy=\"ngModel\" [ngClass]=\"{ 'is-invalid':!model.privacy && validatePage==1}\"\r\n (click)=\"openModal(termsAndConditionsModel,'Privacy Statement',$event)\" [(ngModel)]=\"model.privacy\"\r\n type=\"checkbox\" name=\"privacy\" id=\"privacy\" class=\"form-check-input\" required>\r\n <label for=\"privacy\" class=\"form-check-label checkmark pointer\"\r\n (click)=\"openModal(termsAndConditionsModel,'Privacy Statement',$event)\">\r\n I agree to Privacy Statement\r\n </label>\r\n <div *ngIf=\"!model.privacy && validatePage==1\" class=\"invalid-feedback\">\r\n Accept Privacy Statement\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 justify-content-between row footer-signature\"\r\n [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <!-- <div class=\"col-md-3 col-sm-3 slider-tab\">\r\n </div> -->\r\n\r\n <div class=\"col-6\"></div>\r\n <div class=\"col-md-12 col-sm-12 col-xl-3 text-end\">\r\n <h6>\r\n <button class=\"next\" (click)=\" next(2)\"\r\n [ngClass]=\"(((!points || !points?.length || points.length ==0) && !fileData ) || !model.acceptTerms || !model.privacy) ? 'disabled-btn':''\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>&nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n <ng-container>\r\n <div class=\"term-signature col-md-6 col-lg-6 col-sm-12\" [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <h6 class=\"checkmark\">Signature</h6>\r\n <div [ngClass]=\"{ 'd-none': signaturePadData?.publicUrl }\" class=\"sign-img mb-2\">\r\n <canvas #canvas [width]=\"255\" [height]=\"90\"></canvas>\r\n </div>\r\n <div [ngClass]=\"{ 'd-none': !signaturePadData?.publicUrl }\" class=\"mb-2\">\r\n <img [width]=\"255\" [height]=\"120\" [src]=\"signaturePadData?.publicUrl\" style=\"position: relative\" alt>\r\n </div>\r\n <h6 class=\"d-flex align-items-center gap-2\">\r\n <button (click)=\"clearPad()\" class=\"btn-clear btn-sm\">\r\n Clear\r\n </button>\r\n\r\n <!-- <button (click)=\"uploadImage.click()\" class=\"save-btn upload btn-sm\">\r\n <img src=\"assets/images/icons/upload.svg\" alt=\"Upload\">\r\n Upload\r\n <input #uploadImage type=\"file\" class=\"image-upload d-none\" accept=\"image/*\"\r\n (change)=\"uploadSignImage($event)\">\r\n </button> -->\r\n </h6>\r\n\r\n <div *ngIf=\"validatePage==1 && (!points || !points?.length || points.length ==0) && !fileData\"\r\n class=\"invalid-feedback d-block\">\r\n Signature is required\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 2\">\r\n <div class=\"add-tab-view \">\r\n <ul>\r\n <h5>\r\n <b>\r\n Please choose the relevant sections in which you wish to\r\n participate\r\n </b>\r\n </h5>\r\n <br>\r\n <b class=\"para-comma\">\r\n Choose the areas you'd like to be part of \u2014 whether it's programs, services, events, or collaborations,\r\n you're in control of your involvement.\r\n <br>\r\n connect your business to others and prospective clients.\r\n </b>\r\n </ul>\r\n\r\n <div class=\"row mt-4\">\r\n <ng-container *ngFor=\"let userType of userViewRoles\">\r\n <div class=\"card card-design text-center user-card mx-2 my-2\" style=\"width: 12%;\"\r\n [ngClass]=\"userType.value === selectedRoleValue ? 'user-cards-active' : ''\"\r\n (click)=\"selectedUserRole(userType)\">\r\n <img [src]=\"userType?.img\" class=\"mb-2 mt-2\" style=\"width: 70px;height: 70px;\">\r\n <h6 class=\"m-0 mt-2\">{{userType.name}}</h6>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- <h6 class=\"inspect-add\">\r\n <button (click)=\"next(3);isBusiness=true;\" class=\"add-btn btn-sm\">\r\n Yes\r\n </button>\r\n &nbsp; &nbsp;\r\n <button (click)=\"isBusiness=false;view = 4;\" class=\"add-btn btn-sm\">\r\n No\r\n </button>\r\n </h6> -->\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-1.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button (click)=\"next(3)\" class=\"next\" [disabled]=\"!isUserSelected\"\r\n [ngClass]=\"!isUserSelected ? 'disabled-btn':''\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 3\">\r\n <form [formGroup]=\"companyForm\" class=\"form\">\r\n <div class=\"term-list \">\r\n <ul>\r\n <h5>\r\n <b>\r\n Enter your business information here.\r\n </b>\r\n </h5>\r\n <br>\r\n </ul>\r\n <div class=\"profile-field\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{'is-invalid': ( f.companyName.errors && validatePage == 3) || providerError}\"\r\n type=\"text\" class=\"form-control\" id=\"companyName\" placeholder=\"Company Name\"\r\n formControlName=\"companyName\">\r\n <div *ngIf=\" f.companyName.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.companyName.errors.required\">\r\n Company Name is required\r\n </div>\r\n <div *ngIf=\"f.companyName.errors.minlength\">\r\n Company Name must be at least 2 characters\r\n </div>\r\n <div *ngIf=\"f.companyName.errors.maxLength\">\r\n Company Name must be less than 100 characters\r\n </div>\r\n </div>\r\n <div *ngIf=\"providerError\" class=\"invalid-feedback\">\r\n <div>\r\n {{providerError}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input class=\"form-control block fw-medium shadow-none\" type=\"text\" name=\"inputPhone\"\r\n placeholder=\"Company Phone Number \" id=\"inputPhone\" autocomplete=\"off\" formControlName=\"phoneNumber\"\r\n appMobileMask [maxLength]=\"300\"\r\n [ngClass]=\"{'is-invalid': ( f.phoneNumber.errors && validatePage == 3) || providerError}\">\r\n <div *ngIf=\"f.phoneNumber.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.phoneNumber.errors.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.address1.errors&& validatePage == 3 }\" type=\"text\"\r\n class=\"form-control\" id=\"businessAddress\" ngx-google-places-autocomplete [options]='options'\r\n (onAddressChange)=\"AddressChange($event)\" placeholder=\"Business Address 1\" formControlName=\"address1\">\r\n <div *ngIf=\" f.address1.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.address1.errors.required\">\r\n Business Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"businessAddress2\" placeholder=\"Business Address 2\">\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.city.errors&& validatePage == 3 }\" type=\"text\" class=\"form-control\"\r\n id=\"City\" placeholder=\"City\" formControlName=\"city\">\r\n <div *ngIf=\" f.city.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.city.errors.required\">City is required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.state.errors&& validatePage == 3 }\" type=\"text\"\r\n class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\">\r\n <div *ngIf=\" f.state.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.state.errors.required\">State is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [textMask]=\"{ mask: zipcodeMask }\"\r\n [ngClass]=\"{ 'is-invalid': f.zipcode.errors&& validatePage == 3 }\" type=\"text\" class=\"form-control\"\r\n id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\">\r\n <div *ngIf=\" f.zipcode.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.zipcode.errors.required\">Zipcode is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.country.errors && validatePage == 3}\" type=\"text\"\r\n class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\">\r\n <div *ngIf=\" f.country.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.country.errors.required\">Country is\r\n required</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div *ngIf=\"selectedRole?.name == 'Contractor'\" style=\"padding: 0px 20px;border-radius: 5px;\">\r\n <div class=\"term-list pt-0\">\r\n <h5>\r\n <b>\r\n Contractor Category\r\n </b>\r\n </h5>\r\n <div class=\"profile-field\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mb-2\">\r\n <label></label>\r\n <ng-select [items]=\"contractorSubCategories\" bindLabel=\"name\" [multiple]=\"true\" [closeOnSelect]=\"false\"\r\n placeholder=\"Select Contractor Category\" (ngModelChange)=\"changeContractor($event)\"\r\n [(ngModel)]=\"selectedContractorCategories\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n <accordion [isAnimated]=\"false\">\r\n <ng-container *ngFor=\"let item of selectedContractorCategories;let i=index\">\r\n <accordion-group [isOpen]=\"true\">\r\n <button accordion-heading class=\"w-100\" style=\"font-size: 16px;font-weight: 600;\">\r\n <div class=\"w-100 mt-2\">\r\n <div class=\"backdrop\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item.selectAll\" [name]=\"item?.id\" [id]=\"item?.id\"\r\n (change)=\"selectAll($event,item?.items)\">\r\n <label [for]=\"item?.id\">&nbsp;{{item?.name}}</label>\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"row\">\r\n <div class=\"backdrop col-4 form-control-sm\" *ngFor=\"let subItem of item?.items\">\r\n <input type=\"checkbox\" [(ngModel)]=\"subItem.selected\" [name]=\"subItem?.id\" [id]=\"subItem?.id\"\r\n (change)=\"unCheckedEvent($event,item)\">\r\n <label [for]=\"subItem?.id\">&nbsp;{{subItem?.name}}</label>\r\n </div>\r\n </div>\r\n </accordion-group>\r\n </ng-container>\r\n </accordion>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-2.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button class=\" next\" (click)=\"next(4)\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 4\">\r\n\r\n <div class=\"add-tab \">\r\n <ul>\r\n <h5 class=\"p-4 pb-2\">\r\n <b>\r\n We need basic information's and headshot for your profile\r\n </b>\r\n <div class=\"form-group form-check agree p-0 mt-3\" *ngIf=\"isBusiness\">\r\n <input [(ngModel)]=\"isCopy\" type=\"checkbox\" name=\"isCopy\" id=\"isCopy\" class=\"form-check-input mt-2\"\r\n (change)=\"changeAddressUser()\">\r\n <label for=\"isCopy\" class=\"form-check-label checkmark\">\r\n Copy From Provider Infromation\r\n </label>\r\n </div>\r\n </h5>\r\n </ul>\r\n <div class=\"profile-field\">\r\n <form [formGroup]=\"userForm\" class=\"form pb-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.firstName.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Fist Name\" formControlName=\"firstName\" id=\"firstName\">\r\n <div *ngIf=\" u.firstName.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.firstName.errors.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.lastName.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Last Name\" formControlName=\"lastName\" id=\"lastName\">\r\n <div *ngIf=\" u.lastName.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.lastName.errors.required\">\r\n Last Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.email.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Email\" formControlName=\"email\" id=\"email\">\r\n <div *ngIf=\" u.email.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors.required\">\r\n Emai is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.address1.errors && validatePage == 4 }\" [options]=\"options\"\r\n (onAddressChange)=\"AddressChangeUser($event)\" type=\"text\" class=\"form-control\"\r\n placeholder=\"Home Address 1\" formControlName=\"address1\" id=\"address1\" ngx-google-places-autocomplete>\r\n <div *ngIf=\" u.address1.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.address1.errors.required\">\r\n Home Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"homeAddress2\" formControlName=\"address2\"\r\n placeholder=\"Home Address 2\">\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.city.errors && validatePage == 4}\" type=\"text\" class=\"form-control\"\r\n id=\"City\" placeholder=\"City\" formControlName=\"city\">\r\n <div *ngIf=\" u.city.errors && validatePage ==4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.city.errors.required\">City is required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.state.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\">\r\n <div *ngIf=\" u.state.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.state.errors.required\">State is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [textMask]=\"{ mask: zipcodeMask }\"\r\n [ngClass]=\"{ 'is-invalid': u.zipcode.errors && validatePage == 4 }\" type=\"text\" class=\"form-control\"\r\n id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\">\r\n <div *ngIf=\" u.zipcode.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.zipcode.errors.required\">Zipcode is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.country.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\">\r\n <div *ngIf=\" u.country.errors && validatePage ==4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.country.errors.required\">Country is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input class=\"form-control block shadow-none\" type=\"text\" name=\"inputPhone\" placeholder=\"Phone Number \"\r\n id=\"inputPhone\" autocomplete=\"off\" formControlName=\"phoneNumber\" appMobileMask [maxLength]=\"300\"\r\n [ngClass]=\"{'is-invalid': ( u.phoneNumber.errors && validatePage == 4)}\">\r\n <div *ngIf=\"u.phoneNumber.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.phoneNumber.errors.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"form-group mb-2 form\">\r\n <input #uploadFile type=\"file\" accept=\"image/*\" (change)=\"uploadUserImage($event)\"\r\n class=\"upload-initial-input rounded-circle opacity-0 position-absolute\" />\r\n <input (click)=\"uploadImage1.click()\" [(ngModel)]=\"fileName\" readonly type=\"text\" class=\"form-control\"\r\n id=\"upload\" accept=\"image/*\" placeholder=\"Upload Profile Picture\">\r\n <img #uploadImage1 class=\"upload-image\" (click)=\"uploadFile.click()\" type=\"file\"\r\n src=\"assets/images/icons/upload.svg\" alt=\"Logo\">\r\n <div *ngIf=\"isImageRequired\" class=\"invalid-feedback d-block\">\r\n <div class=\"ms-1\">\r\n Please Upload Profile Image\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"userError\" class=\"invalid-feedback\">\r\n <div>\r\n {{userError}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 pt-3 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-3.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button class=\"next\" (click)=\"next(5)\" [disabled]=\"showLoader\"\r\n [config]=\"DefaultButtonSpinnerConfig\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 5\">\r\n <ul class=\"term-list ps-3\">\r\n <h5>\r\n <b>\r\n Thanks, we got the basics down!\r\n </b>\r\n </h5>\r\n <br>\r\n <b class=\"para-comma\">\r\n Account created successfully. Next step: complete your profile.\r\n <br>\r\n <br>\r\n Profile completion is mandatory to participate in rosters, programs, requests, and platform workflows.\r\n Incomplete profiles will have limited access.\r\n <br>\r\n <br>\r\n You may access your dashboard at any time, but full functionality is available only after completion.\r\n </b>\r\n </ul>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-lg-3 col-xl-3 col-sm-12 text-center\">\r\n <img class=\"slider ml-3\" src=\"assets/images/icons/stepper-4.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end row\">\r\n <div class=\"col-md-2 col-2\">\r\n <h6 style=\"margin-right: 3rem\">\r\n </h6>\r\n </div>\r\n\r\n &nbsp; &nbsp;\r\n <div class=\"col-md-8\">\r\n <h6>\r\n <button (click)=\"dashboard()\" class=\"go-btn btn-sm\">\r\n Go To Home&nbsp;&nbsp;\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\"\r\n src=\"assets/images/icons/next.svg\" alt=\"Logo\">\r\n </button>\r\n </h6>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 10\">\r\n <app-credentialing (back)=\"onCredentialingBack()\" [data]=\"credentialingData\"></app-credentialing>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #termsAndConditionsModel>\r\n <div class=\"modal-header\">\r\n <h4 id=\"dialog-nested-name1\" class=\"modal-title pull-left fw-bold title-popup\">{{termsAndConditionTitle}}</h4>\r\n </div>\r\n <div class=\"modal-body pb-3\">\r\n <ng-container *ngIf=\"termsAndConditionTitle == 'Terms and Conditions'\">\r\n <app-terms-conditions [PrivacyAndTerms]=\"privacyAndTerms\" [title]=\"title\"\r\n [branding]=\"branding\"></app-terms-conditions>\r\n </ng-container>\r\n <ng-container *ngIf=\"termsAndConditionTitle != 'Terms and Conditions'\">\r\n <app-privacy-policy [PrivacyAndTerms]=\"privacyAndTerms\" [title]=\"title\"\r\n [branding]=\"branding\"></app-privacy-policy>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"modal-footer text-end\" style=\"display: block;\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm px-4\" style=\" background: #d3dae6;\r\n color: #98a2b3;;border: #D3DAE6 !important;\" (click)=\"decline(termsAndConditionTitle);modelRef.hide();\">Decline\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm px-4\" style=\"color:white;background: #4077AD;\"\r\n (click)=\"agree(termsAndConditionTitle);modelRef.hide();\">Agree</button>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".brand-name{font-weight:700;font-size:calc(100% + 4px)}::ng-deep .backdrop{background-color:transparent!important}.filter-black{filter:brightness(.4)!important}.footer-view{margin-top:3rem;margin-left:0;margin-right:0}.footer-signature{margin-top:9rem}.slider-view{width:11rem;margin-left:1px}.container{margin-top:30px}.container .card{border-radius:1.25rem}.container .header{padding:33px 10px 0}.container .header .logo{width:15%;height:80%}.container .form-control{padding:.75rem 1rem;border-color:#a1a1a1}.container .form-control:focus{color:#000;box-shadow:none;border-color:#a1a1a1!important}.container .form-control::placeholder{font-weight:500;font-size:12px;color:#a1a1a1}.container .link{color:#4077ad}.container .link-signup{font-weight:bolder}.container .form-check-label{margin-bottom:0;padding-top:9px}.container .content-view{margin-top:10%}.container .content-description{margin-top:25%}.container .tag-content{color:#fff9e8;margin-left:9%}.container .tag-content p{color:#fff9e8}.container .form-check-input:checked{background-color:#000;border-color:#000}.container .img-tick{margin:-31px 12px 0 -35px}.container .form-check-input[type=checkbox]{border-radius:2px;border:2px solid #000000}.container .form-check-input:focus{box-shadow:none}.container input[type=checkbox]{accent-color:#000000}.term-list{padding:48px 60px 6px 0;margin-left:30px;color:\"#1f1f1fdb\"}.add-tab{padding:75px 75px 6px 1px;margin-left:50px;color:\"#1f1f1fdb\"}.add-tab-view{padding:75px 75px 6px 1px;margin-left:80px;color:\"#1f1f1fdb\"}.inspect-add{margin-top:3rem}.add-btn{font-size:16px;border-radius:5px;transition:.2s;padding:.25rem .5rem;background:#fff;border:1px solid rgba(148,147,147,.1882352941);color:#444;line-height:48px;box-shadow:0 1px 9px #98a2b3;width:9rem}.add-btn:hover{border:1px solid rgba(148,147,147,.1882352941);box-shadow:none}.agree{padding:0 0 8px 47px}.agree .form-check-input[type=checkbox]{border-radius:2px;border:2px solid #98A2B3;width:14px;height:14px;margin:5px 9px 0 -35px}.agree .form-check-input:focus{box-shadow:none}.agree .form-check-input:checked{background-color:#000;border-color:#000}.agree .invalid-feedback{font-size:10px!important;margin:0 0 0 21px}.checkmark{vertical-align:text-bottom;color:#98a2b3;font-weight:500;font-size:12px}.term-signature{padding-left:16rem;padding-right:65px;position:absolute;margin:150px 0 0 50%}.participate-tab{height:135px;width:142px}.card-design{height:147px;width:160px;padding-left:10px;margin-left:42px;background:#fff0;border:2px solid #98A2B3;box-shadow:0 0 4px #98a2b3;border-radius:27px;margin-bottom:42px}.upload{height:39px;margin-top:-4px;width:126px;font-size:12px}.participate-tab{margin-top:-25px}.slider{width:14rem;margin-left:69px}.btn-clear{background:#d3dae6;color:#98a2b3;font-size:12px;border-radius:5px;transition:.2s;padding:6px;border:none;height:auto;width:46%;line-height:28px}.btn-close{background:#f1f4fa;color:#98a2b3;font-size:17px;border-radius:5px;transition:.2s;padding:6px;border:none;height:auto;font-weight:500;width:116px;color:#737a87;line-height:28px}.view-logo{padding-top:1%;padding-bottom:4%;text-align:center}.back-btn{border-radius:45px;height:41px}.next{background:#4077ad;border-radius:30px;height:60px;width:60px;border:white}.profile-field{margin-top:-10px}.profile-field input{line-height:30px;margin:-10px 3px 3px}.load-page{padding:21px 49px 13px 34px}.sign-img{width:291px;height:95px;border-radius:8px;border:1px solid rgba(179,178,178,.33);margin-top:19px}.upload-image{height:16px;width:16px;position:absolute;margin-left:66rem;margin-top:-39px}.para-comma{font-weight:500}.go-btn{border-radius:45px;height:50px;padding:0 20px;background:#4077ad;border:1px solid #4077ad;color:#fff;line-height:28px;font-size:14px;font-weight:500}.text-label{color:#747b83;font-weight:500}.form{padding:20px;border-radius:5px}.form-control:focus{color:#000;box-shadow:none;border-color:#848484!important}.form-control::placeholder{font-weight:500;font-size:12px;color:#bec1be;padding-left:10px}.btn-primary:active{background-color:#50575e}@media screen and (min-width: 500px) and (max-width: 769px){.content-view{background:#0c1620;width:44rem;margin:31px 0 0!important;padding:28px 32px 17px 71px!important;border-radius:29px}.upload-image{margin-left:25rem!important}}@media screen and (min-width: 768px) and (max-width: 1024px){.back-btn{height:31px;width:82px;position:absolute;margin-left:-53px}.back-tab{position:absolute;margin-left:-87px;height:37px}.go-btn{width:175px;height:44px}.term-signature{padding-left:10px}.upload-image{margin-left:40rem}}@media screen and (min-width: 374px) and (max-width: 426px){.head-logo{width:216px;padding-bottom:16px}.slider{visibility:hidden}.back-btn{height:31px;width:82px;position:absolute;margin-left:73px;margin-top:23px}.go-btn{width:175px;height:44px}.upload-image{margin-left:16rem}.term-signature{margin:84% 0 7px 4%}}@media screen and (min-width: 320px) and (max-width: 426px){.footer-signature{margin-top:20rem}.login .head-logo{padding:16px 2px 0;width:38%!important;height:40%!important}.container{margin-top:5px!important}.card{padding:2px!important}.tag-content{margin:3% 0 0!important;background-color:#121b24;border-radius:13px}.img-tick{margin:3px!important}.slider{visibility:hidden}.load-page{padding:0}.head-logo{width:216px;padding-bottom:16px}.back-btn{height:26px;width:71px;position:absolute;margin-left:-17rem!important;font-size:10px;margin-top:23px}.go-btn{width:142px;height:36px;margin-right:-28px;font-size:10px}.add-tab,.add-tab-view{padding:30px 33px 2px 3px;margin-left:15px}.add-btn{width:6rem}.slider-tab{visibility:hidden}.back-tab{margin-left:-14rem;margin-top:1px;font-size:14px;height:39px}.participate-tab{height:96px;width:87px}.card-design{height:124px;width:125px;padding-left:17px;margin-left:30px}.term-signature{padding:22px 22px 13px 27px}.term-list{padding:43px 10px 10px 3px;margin-left:0;text-align:-webkit-center}}@media screen and (min-width: 320px) and (max-width: 376px){.agree{padding:0 0 8px 25px}.participate-tab{height:96px;width:87px}.card-design{height:109px;width:97px;padding-left:4px;margin-left:10px}.card-design h6{font-size:10px;padding-left:14px;font-weight:600}.sign-img{width:270px}.term-list{padding:20px 20px 6px 4px;margin-left:13px}}@media screen and (min-width: 320px) and (max-width: 350px){.upload-image{height:13px;width:11px;margin-left:10rem;margin-top:-35px}.btn-clear{width:92px}.term-signature{margin:84% 0 7px 4%}}.disabled-btn{cursor:not-allowed!important;background:#4077ad!important;color:#fff!important}.modal-dialog .modal-content{border-radius:19px}.title-popup{font-size:18px;color:#0c1620}ul.term-list-data li{padding-bottom:5px;font-size:13px;font-weight:500;line-height:21px}ol,ul,dl{margin-top:0;margin-bottom:1rem}::ng-deep .modal-content{background:#fff!important}.hidden-view{display:none}.header-container{position:relative;padding:20px}.view-logo{text-align:center}.logout-button{top:20px;right:20px;position:absolute}.logout-button button{background:none;border:none;font-size:16px;display:flex;align-items:center;cursor:pointer}.logout-button img{margin-right:5px;height:20px}.user-card{align-items:center;color:#4077ad;cursor:pointer}.user-cards-active{background:#4077ad;color:#fff}.save-btn.upload{border:1px solid #4077AD;background-color:#4077ad;color:#fff;border-radius:5px;background:#4077ad;padding:4px 10px;display:inline-flex;align-items:center;gap:6px}.save-btn.upload img{filter:brightness(0) invert(1)}.form-check.agree{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.form-check.agree .form-check-input{margin-top:4px;flex-shrink:0}.form-check.agree .form-check-label{line-height:1.4;cursor:pointer;white-space:normal}.spinner-16{width:16px;height:16px}.h6-buttons{display:flex;align-items:center;gap:8px}.form-check.agree{display:flex;align-items:flex-start;margin-bottom:14px}.form-check-input{position:absolute;opacity:0;cursor:pointer}.form-check-label{position:relative;padding-left:28px;cursor:pointer;font-size:14px;line-height:20px;color:#212529;-webkit-user-select:none;user-select:none}.form-check-label:before{content:\"\";position:absolute;left:0;top:8px;width:18px;height:18px;border:2px solid #adb5bd;border-radius:4px;background:#fff;transition:all .2s ease}.form-check-label:after{content:\"\";position:absolute;left:5px;top:10px;width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .15s ease}.form-check-input:checked+.form-check-label:before{background-color:#4077ad;border-color:#4077ad}.form-check-input:checked+.form-check-label:after{transform:rotate(45deg) scale(1)}.form-check-label:hover:before{border-color:#4077ad}.form-check-input:focus+.form-check-label:before{box-shadow:0 0 0 3px #0d6efd40}.form-check-input.is-invalid+.form-check-label:before{border-color:#dc3545}.form-check-input.is-invalid:checked+.form-check-label:before{background-color:#dc3545}.invalid-feedback{display:block;font-size:12px;margin-left:7px;margin-top:4px}::ng-deep .modal-dialog{max-width:750px}.user-cards-active{background-color:#4077ad;color:#fff;border:2px solid #4077AD}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i13.AccordionComponent, selector: "accordion", inputs: ["isAnimated", "closeOthers"] }, { kind: "component", type: i13.AccordionPanelComponent, selector: "accordion-group, accordion-panel", inputs: ["heading", "panelClass", "isDisabled", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: GooglePlaceDirective, selector: "[ngx-google-places-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "directive", type: MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }, { kind: "component", type: TermsConditionsComponent, selector: "app-terms-conditions", inputs: ["title", "branding", "PrivacyAndTerms"] }, { kind: "component", type: PrivacyPolicyComponent, selector: "app-privacy-policy", inputs: ["title", "branding", "PrivacyAndTerms"] }, { kind: "component", type: CredentialingComponent, selector: "app-credentialing", inputs: ["data"], outputs: ["back"] }] });
29590
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InitialProcessComponent, deps: [{ token: i2.Router }, { token: UserDetailService }, { token: i3.FormBuilder }, { token: FileService }, { token: ProvidersService }, { token: RolesService }, { token: i7.BsModalService }, { token: ProviderContractorSubCategoryService }, { token: ProviderContractorSubCategoryService }, { token: i9.AuthService }, { token: i6.TokenService }, { token: i6.RoleContextService }, { token: LIBRARY_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
29591
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: InitialProcessComponent, isStandalone: false, selector: "app-initial-process", viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"card pb-2 pr-5\" style=\"margin-bottom: 30px;\">\r\n <ng-container class=\"load-page\" [style.visibility]=\"view == 1 ? 'visible' : 'hidden' \">\r\n <ul class=\"term-list para-comma\" [ngClass]=\"view == 1 ? '' : 'hidden-view'\">\r\n Thanks for joining\r\n <span class=\"brand-name\">{{ branding.displayName }}</span>.\r\n Our members and service providers rely on accurate info in your profile to\r\n connect you with work that suits your capabilities. Keep your profile\r\n complete, skills updated, licenses current, photos and logos professional,\r\n and schedule up to date.\r\n </ul>\r\n <div class=\"row col-12 mt-4\" [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <div class=\"col-md-6 col-lg-6 col-sm-12\">\r\n <div class=\"form-group form-check agree\">\r\n <input #acceptTerms=\"ngModel\" [ngClass]=\"{ 'is-invalid': !model.acceptTerms && validatePage==1 }\"\r\n [(ngModel)]=\"model.acceptTerms\" type=\"checkbox\" name=\"acceptTerms\" id=\"acceptTerms\"\r\n class=\"form-check-input\" (click)=\"openModal(termsAndConditionsModel,'Terms and Conditions',$event)\"\r\n required>\r\n <label for=\"acceptTerms\" class=\"form-check-label checkmark pointer\"\r\n (click)=\"openModal(termsAndConditionsModel,'Terms and Conditions',$event)\">\r\n I agree to Terms and Conditions\r\n </label>\r\n <div *ngIf=\"!model.acceptTerms && validatePage==1\" class=\"invalid-feedback\">\r\n Accept Terms & Conditions is required\r\n </div>\r\n </div>\r\n <div class=\"form-group form-check agree\">\r\n <input #privacy=\"ngModel\" [ngClass]=\"{ 'is-invalid':!model.privacy && validatePage==1}\"\r\n (click)=\"openModal(termsAndConditionsModel,'Privacy Statement',$event)\" [(ngModel)]=\"model.privacy\"\r\n type=\"checkbox\" name=\"privacy\" id=\"privacy\" class=\"form-check-input\" required>\r\n <label for=\"privacy\" class=\"form-check-label checkmark pointer\"\r\n (click)=\"openModal(termsAndConditionsModel,'Privacy Statement',$event)\">\r\n I agree to Privacy Statement\r\n </label>\r\n <div *ngIf=\"!model.privacy && validatePage==1\" class=\"invalid-feedback\">\r\n Accept Privacy Statement\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 justify-content-between row footer-signature\"\r\n [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <!-- <div class=\"col-md-3 col-sm-3 slider-tab\">\r\n </div> -->\r\n\r\n <div class=\"col-6\"></div>\r\n <div class=\"col-md-12 col-sm-12 col-xl-3 text-end\">\r\n <h6>\r\n <button class=\"next\" (click)=\" next(2)\"\r\n [ngClass]=\"(((!points || !points?.length || points.length ==0) && !fileData ) || !model.acceptTerms || !model.privacy) ? 'disabled-btn':''\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>&nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n <ng-container>\r\n <div class=\"term-signature col-md-6 col-lg-6 col-sm-12\" [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <h6 class=\"checkmark\">Signature</h6>\r\n <div [ngClass]=\"{ 'd-none': signaturePadData?.publicUrl }\" class=\"sign-img mb-2\">\r\n <canvas #canvas [width]=\"255\" [height]=\"90\"></canvas>\r\n </div>\r\n <div [ngClass]=\"{ 'd-none': !signaturePadData?.publicUrl }\" class=\"mb-2\">\r\n <img [width]=\"255\" [height]=\"120\" [src]=\"signaturePadData?.publicUrl\" style=\"position: relative\" alt>\r\n </div>\r\n <h6 class=\"d-flex align-items-center gap-2\">\r\n <button (click)=\"clearPad()\" class=\"btn-clear btn-sm\">\r\n Clear\r\n </button>\r\n\r\n <!-- <button (click)=\"uploadImage.click()\" class=\"save-btn upload btn-sm\">\r\n <img src=\"assets/images/icons/upload.svg\" alt=\"Upload\">\r\n Upload\r\n <input #uploadImage type=\"file\" class=\"image-upload d-none\" accept=\"image/*\"\r\n (change)=\"uploadSignImage($event)\">\r\n </button> -->\r\n </h6>\r\n\r\n <div *ngIf=\"validatePage==1 && (!points || !points?.length || points.length ==0) && !fileData\"\r\n class=\"invalid-feedback d-block\">\r\n Signature is required\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 2\">\r\n <div class=\"add-tab-view \">\r\n <ul>\r\n <h5>\r\n <b>\r\n Please choose the relevant sections in which you wish to\r\n participate\r\n </b>\r\n </h5>\r\n <br>\r\n <b class=\"para-comma\">\r\n Choose the areas you'd like to be part of \u2014 whether it's programs, services, events, or collaborations,\r\n you're in control of your involvement.\r\n <br>\r\n connect your business to others and prospective clients.\r\n </b>\r\n </ul>\r\n\r\n <div class=\"row mt-4\">\r\n <ng-container *ngFor=\"let userType of userViewRoles\">\r\n <div class=\"card card-design text-center user-card mx-2 my-2\" style=\"width: 12%;\"\r\n [ngClass]=\"userType.value === selectedRoleValue ? 'user-cards-active' : ''\"\r\n (click)=\"selectedUserRole(userType)\">\r\n <img [src]=\"userType?.img\" class=\"mb-2 mt-2\" style=\"width: 70px;height: 70px;\">\r\n <h6 class=\"m-0 mt-2\">{{userType.name}}</h6>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- <h6 class=\"inspect-add\">\r\n <button (click)=\"next(3);isBusiness=true;\" class=\"add-btn btn-sm\">\r\n Yes\r\n </button>\r\n &nbsp; &nbsp;\r\n <button (click)=\"isBusiness=false;view = 4;\" class=\"add-btn btn-sm\">\r\n No\r\n </button>\r\n </h6> -->\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-1.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button (click)=\"next(3)\" class=\"next\" [disabled]=\"!isUserSelected\"\r\n [ngClass]=\"!isUserSelected ? 'disabled-btn':''\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 3\">\r\n <form [formGroup]=\"companyForm\" class=\"form\">\r\n <div class=\"term-list \">\r\n <ul>\r\n <h5>\r\n <b>\r\n Enter your business information here.\r\n </b>\r\n </h5>\r\n <br>\r\n </ul>\r\n <div class=\"profile-field\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{'is-invalid': ( f.companyName.errors && validatePage == 3) || providerError}\"\r\n type=\"text\" class=\"form-control\" id=\"companyName\" placeholder=\"Company Name\"\r\n formControlName=\"companyName\">\r\n <div *ngIf=\" f.companyName.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.companyName.errors.required\">\r\n Company Name is required\r\n </div>\r\n <div *ngIf=\"f.companyName.errors.minlength\">\r\n Company Name must be at least 2 characters\r\n </div>\r\n <div *ngIf=\"f.companyName.errors.maxLength\">\r\n Company Name must be less than 100 characters\r\n </div>\r\n </div>\r\n <div *ngIf=\"providerError\" class=\"invalid-feedback\">\r\n <div>\r\n {{providerError}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input class=\"form-control block fw-medium shadow-none\" type=\"text\" name=\"inputPhone\"\r\n placeholder=\"Company Phone Number \" id=\"inputPhone\" autocomplete=\"off\" formControlName=\"phoneNumber\"\r\n appMobileMask [maxLength]=\"300\"\r\n [ngClass]=\"{'is-invalid': ( f.phoneNumber.errors && validatePage == 3) || providerError}\">\r\n <div *ngIf=\"f.phoneNumber.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.phoneNumber.errors.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.address1.errors&& validatePage == 3 }\" type=\"text\"\r\n class=\"form-control\" id=\"businessAddress\" ngx-google-places-autocomplete [options]='options'\r\n (onAddressChange)=\"AddressChange($event)\" placeholder=\"Business Address 1\" formControlName=\"address1\">\r\n <div *ngIf=\" f.address1.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.address1.errors.required\">\r\n Business Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"businessAddress2\" placeholder=\"Business Address 2\">\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.city.errors&& validatePage == 3 }\" type=\"text\" class=\"form-control\"\r\n id=\"City\" placeholder=\"City\" formControlName=\"city\">\r\n <div *ngIf=\" f.city.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.city.errors.required\">City is required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.state.errors&& validatePage == 3 }\" type=\"text\"\r\n class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\">\r\n <div *ngIf=\" f.state.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.state.errors.required\">State is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [textMask]=\"{ mask: zipcodeMask }\"\r\n [ngClass]=\"{ 'is-invalid': f.zipcode.errors&& validatePage == 3 }\" type=\"text\" class=\"form-control\"\r\n id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\">\r\n <div *ngIf=\" f.zipcode.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.zipcode.errors.required\">Zipcode is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.country.errors && validatePage == 3}\" type=\"text\"\r\n class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\">\r\n <div *ngIf=\" f.country.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.country.errors.required\">Country is\r\n required</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div *ngIf=\"selectedRole?.name == 'Contractor'\" style=\"padding: 0px 20px;border-radius: 5px;\">\r\n <div class=\"term-list pt-0\">\r\n <h5>\r\n <b>\r\n Contractor Category\r\n </b>\r\n </h5>\r\n <div class=\"profile-field\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mb-2\">\r\n <label></label>\r\n <ng-select [items]=\"contractorSubCategories\" bindLabel=\"name\" [multiple]=\"true\" [closeOnSelect]=\"false\"\r\n placeholder=\"Select Contractor Category\" (ngModelChange)=\"changeContractor($event)\"\r\n [(ngModel)]=\"selectedContractorCategories\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n <accordion [isAnimated]=\"false\">\r\n <ng-container *ngFor=\"let item of selectedContractorCategories;let i=index\">\r\n <accordion-group [isOpen]=\"true\">\r\n <button accordion-heading class=\"w-100\" style=\"font-size: 16px;font-weight: 600;\">\r\n <div class=\"w-100 mt-2\">\r\n <div class=\"backdrop\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item.selectAll\" [name]=\"item?.id\" [id]=\"item?.id\"\r\n (change)=\"selectAll($event,item?.items)\">\r\n <label [for]=\"item?.id\">&nbsp;{{item?.name}}</label>\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"row\">\r\n <div class=\"backdrop col-4 form-control-sm\" *ngFor=\"let subItem of item?.items\">\r\n <input type=\"checkbox\" [(ngModel)]=\"subItem.selected\" [name]=\"subItem?.id\" [id]=\"subItem?.id\"\r\n (change)=\"unCheckedEvent($event,item)\">\r\n <label [for]=\"subItem?.id\">&nbsp;{{subItem?.name}}</label>\r\n </div>\r\n </div>\r\n </accordion-group>\r\n </ng-container>\r\n </accordion>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-2.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button class=\" next\" (click)=\"next(4)\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 4\">\r\n\r\n <div class=\"add-tab \">\r\n <ul>\r\n <h5 class=\"p-4 pb-2\">\r\n <b>\r\n We need basic information's and headshot for your profile\r\n </b>\r\n <div class=\"form-group form-check agree p-0 mt-3\" *ngIf=\"isBusiness\">\r\n <input [(ngModel)]=\"isCopy\" type=\"checkbox\" name=\"isCopy\" id=\"isCopy\" class=\"form-check-input mt-2\"\r\n (change)=\"changeAddressUser()\">\r\n <label for=\"isCopy\" class=\"form-check-label checkmark\">\r\n Copy From Provider Infromation\r\n </label>\r\n </div>\r\n </h5>\r\n </ul>\r\n <div class=\"profile-field\">\r\n <form [formGroup]=\"userForm\" class=\"form pb-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.firstName.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Fist Name\" formControlName=\"firstName\" id=\"firstName\">\r\n <div *ngIf=\" u.firstName.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.firstName.errors.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.lastName.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Last Name\" formControlName=\"lastName\" id=\"lastName\">\r\n <div *ngIf=\" u.lastName.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.lastName.errors.required\">\r\n Last Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.email.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Email\" formControlName=\"email\" id=\"email\">\r\n <div *ngIf=\" u.email.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors.required\">\r\n Emai is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.address1.errors && validatePage == 4 }\" [options]=\"options\"\r\n (onAddressChange)=\"AddressChangeUser($event)\" type=\"text\" class=\"form-control\"\r\n placeholder=\"Home Address 1\" formControlName=\"address1\" id=\"address1\" ngx-google-places-autocomplete>\r\n <div *ngIf=\" u.address1.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.address1.errors.required\">\r\n Home Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"homeAddress2\" formControlName=\"address2\"\r\n placeholder=\"Home Address 2\">\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.city.errors && validatePage == 4}\" type=\"text\" class=\"form-control\"\r\n id=\"City\" placeholder=\"City\" formControlName=\"city\">\r\n <div *ngIf=\" u.city.errors && validatePage ==4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.city.errors.required\">City is required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.state.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\">\r\n <div *ngIf=\" u.state.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.state.errors.required\">State is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [textMask]=\"{ mask: zipcodeMask }\"\r\n [ngClass]=\"{ 'is-invalid': u.zipcode.errors && validatePage == 4 }\" type=\"text\" class=\"form-control\"\r\n id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\">\r\n <div *ngIf=\" u.zipcode.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.zipcode.errors.required\">Zipcode is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.country.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\">\r\n <div *ngIf=\" u.country.errors && validatePage ==4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.country.errors.required\">Country is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input class=\"form-control block shadow-none\" type=\"text\" name=\"inputPhone\" placeholder=\"Phone Number \"\r\n id=\"inputPhone\" autocomplete=\"off\" formControlName=\"phoneNumber\" appMobileMask [maxLength]=\"300\"\r\n [ngClass]=\"{'is-invalid': ( u.phoneNumber.errors && validatePage == 4)}\">\r\n <div *ngIf=\"u.phoneNumber.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.phoneNumber.errors.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"form-group mb-2 form\">\r\n <input #uploadFile type=\"file\" accept=\"image/*\" (change)=\"uploadUserImage($event)\"\r\n class=\"upload-initial-input rounded-circle opacity-0 position-absolute\" />\r\n <input (click)=\"uploadImage1.click()\" [(ngModel)]=\"fileName\" readonly type=\"text\" class=\"form-control\"\r\n id=\"upload\" accept=\"image/*\" placeholder=\"Upload Profile Picture\">\r\n <img #uploadImage1 class=\"upload-image\" (click)=\"uploadFile.click()\" type=\"file\"\r\n src=\"assets/images/icons/upload.svg\" alt=\"Logo\">\r\n <div *ngIf=\"isImageRequired\" class=\"invalid-feedback d-block\">\r\n <div class=\"ms-1\">\r\n Please Upload Profile Image\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"userError\" class=\"invalid-feedback\">\r\n <div>\r\n {{userError}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 pt-3 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-3.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button class=\"next\" (click)=\"next(5)\" [disabled]=\"showLoader\"\r\n [config]=\"DefaultButtonSpinnerConfig\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 5\">\r\n <ul class=\"term-list ps-3\">\r\n <h5>\r\n <b>\r\n Thanks, we got the basics down!\r\n </b>\r\n </h5>\r\n <br>\r\n <b class=\"para-comma\">\r\n Account created successfully. Next step: complete your profile.\r\n <br>\r\n <br>\r\n Profile completion is mandatory to participate in rosters, programs, requests, and platform workflows.\r\n Incomplete profiles will have limited access.\r\n <br>\r\n <br>\r\n You may access your dashboard at any time, but full functionality is available only after completion.\r\n </b>\r\n </ul>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-lg-3 col-xl-3 col-sm-12 text-center\">\r\n <img class=\"slider ml-3\" src=\"assets/images/icons/stepper-4.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end row\">\r\n <div class=\"col-md-2 col-2\">\r\n <h6 style=\"margin-right: 3rem\">\r\n </h6>\r\n </div>\r\n\r\n &nbsp; &nbsp;\r\n <div class=\"col-md-8\">\r\n <h6>\r\n <button (click)=\"dashboard()\" class=\"go-btn btn-sm\">\r\n Go To Home&nbsp;&nbsp;\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\"\r\n src=\"assets/images/icons/next.svg\" alt=\"Logo\">\r\n </button>\r\n </h6>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 10\">\r\n <app-credentialing (back)=\"onCredentialingBack()\" [data]=\"credentialingData\"></app-credentialing>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #termsAndConditionsModel>\r\n <div class=\"modal-dialog modal-dialog-centered\">\r\n <div class=\"modal-content terms-fixed-modal\">\r\n\r\n <!-- HEADER -->\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title fw-bold title-popup\">\r\n {{ termsAndConditionTitle }}\r\n </h4>\r\n </div>\r\n\r\n <!-- SCROLLABLE CONTENT ONLY -->\r\n <div class=\"modal-body terms-scroll-area\" (scroll)=\"onTermsScroll($event)\">\r\n <ng-container *ngIf=\"termsAndConditionTitle == 'Terms and Conditions'\">\r\n <app-terms-conditions [PrivacyAndTerms]=\"privacyAndTerms\" [title]=\"title\" [branding]=\"branding\">\r\n </app-terms-conditions>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"termsAndConditionTitle != 'Terms and Conditions'\">\r\n <app-privacy-policy [PrivacyAndTerms]=\"privacyAndTerms\" [title]=\"title\" [branding]=\"branding\">\r\n </app-privacy-policy>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- FOOTER (NOT SCROLLING) -->\r\n <div>\r\n <div class=\"modal-footer text-end\" style=\"display: block;\">\r\n <!-- YOUR BUTTONS \u2014 UNCHANGED -->\r\n <button type=\"button\" class=\"btn btn-primary btn-sm px-4\"\r\n style=\"background: #d3dae6; color: #98a2b3; border: #D3DAE6 !important;\"\r\n (click)=\"decline(termsAndConditionTitle); modelRef.hide();\">\r\n Decline\r\n </button>\r\n\r\n <button type=\"button\" class=\"btn btn-primary btn-sm px-4\" style=\"color:white;background: #4077AD;\"\r\n [disabled]=\"!isAgreeEnabled\" (click)=\"agree(termsAndConditionTitle); modelRef.hide();\">\r\n Agree\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".brand-name{font-weight:700;font-size:calc(100% + 4px)}::ng-deep .backdrop{background-color:transparent!important}.filter-black{filter:brightness(.4)!important}.footer-view{margin-top:3rem;margin-left:0;margin-right:0}.footer-signature{margin-top:9rem}.slider-view{width:11rem;margin-left:1px}.container{margin-top:30px}.container .card{border-radius:1.25rem}.container .header{padding:33px 10px 0}.container .header .logo{width:15%;height:80%}.container .form-control{padding:.75rem 1rem;border-color:#a1a1a1}.container .form-control:focus{color:#000;box-shadow:none;border-color:#a1a1a1!important}.container .form-control::placeholder{font-weight:500;font-size:12px;color:#a1a1a1}.container .link{color:#4077ad}.container .link-signup{font-weight:bolder}.container .form-check-label{margin-bottom:0;padding-top:9px}.container .content-view{margin-top:10%}.container .content-description{margin-top:25%}.container .tag-content{color:#fff9e8;margin-left:9%}.container .tag-content p{color:#fff9e8}.container .form-check-input:checked{background-color:#000;border-color:#000}.container .img-tick{margin:-31px 12px 0 -35px}.container .form-check-input[type=checkbox]{border-radius:2px;border:2px solid #000000}.container .form-check-input:focus{box-shadow:none}.container input[type=checkbox]{accent-color:#000000}.term-list{padding:48px 60px 6px 0;margin-left:30px;color:\"#1f1f1fdb\"}.add-tab{padding:75px 75px 6px 1px;margin-left:50px;color:\"#1f1f1fdb\"}.add-tab-view{padding:75px 75px 6px 1px;margin-left:80px;color:\"#1f1f1fdb\"}.inspect-add{margin-top:3rem}.add-btn{font-size:16px;border-radius:5px;transition:.2s;padding:.25rem .5rem;background:#fff;border:1px solid rgba(148,147,147,.1882352941);color:#444;line-height:48px;box-shadow:0 1px 9px #98a2b3;width:9rem}.add-btn:hover{border:1px solid rgba(148,147,147,.1882352941);box-shadow:none}.agree{padding:0 0 8px 47px}.agree .form-check-input[type=checkbox]{border-radius:2px;border:2px solid #98A2B3;width:14px;height:14px;margin:5px 9px 0 -35px}.agree .form-check-input:focus{box-shadow:none}.agree .form-check-input:checked{background-color:#000;border-color:#000}.agree .invalid-feedback{font-size:10px!important;margin:0 0 0 21px}.checkmark{vertical-align:text-bottom;color:#98a2b3;font-weight:500;font-size:12px}.term-signature{padding-left:16rem;padding-right:65px;position:absolute;margin:150px 0 0 50%}.participate-tab{height:135px;width:142px}.card-design{height:147px;width:160px;padding-left:10px;margin-left:42px;background:#fff0;border:2px solid #98A2B3;box-shadow:0 0 4px #98a2b3;border-radius:27px;margin-bottom:42px}.upload{height:39px;margin-top:-4px;width:126px;font-size:12px}.participate-tab{margin-top:-25px}.slider{width:14rem;margin-left:69px}.btn-clear{background:#d3dae6;color:#98a2b3;font-size:12px;border-radius:5px;transition:.2s;padding:6px;border:none;height:auto;width:46%;line-height:28px}.btn-close{background:#f1f4fa;color:#98a2b3;font-size:17px;border-radius:5px;transition:.2s;padding:6px;border:none;height:auto;font-weight:500;width:116px;color:#737a87;line-height:28px}.view-logo{padding-top:1%;padding-bottom:4%;text-align:center}.back-btn{border-radius:45px;height:41px}.next{background:#4077ad;border-radius:30px;height:60px;width:60px;border:white}.profile-field{margin-top:-10px}.profile-field input{line-height:30px;margin:-10px 3px 3px}.load-page{padding:21px 49px 13px 34px}.sign-img{width:291px;height:95px;border-radius:8px;border:1px solid rgba(179,178,178,.33);margin-top:19px}.upload-image{height:16px;width:16px;position:absolute;margin-left:66rem;margin-top:-39px}.para-comma{font-weight:500}.go-btn{border-radius:45px;height:50px;padding:0 20px;background:#4077ad;border:1px solid #4077ad;color:#fff;line-height:28px;font-size:14px;font-weight:500}.text-label{color:#747b83;font-weight:500}.form{padding:20px;border-radius:5px}.form-control:focus{color:#000;box-shadow:none;border-color:#848484!important}.form-control::placeholder{font-weight:500;font-size:12px;color:#bec1be;padding-left:10px}.btn-primary:active{background-color:#50575e}@media screen and (min-width: 500px) and (max-width: 769px){.content-view{background:#0c1620;width:44rem;margin:31px 0 0!important;padding:28px 32px 17px 71px!important;border-radius:29px}.upload-image{margin-left:25rem!important}}@media screen and (min-width: 768px) and (max-width: 1024px){.back-btn{height:31px;width:82px;position:absolute;margin-left:-53px}.back-tab{position:absolute;margin-left:-87px;height:37px}.go-btn{width:175px;height:44px}.term-signature{padding-left:10px}.upload-image{margin-left:40rem}}@media screen and (min-width: 374px) and (max-width: 426px){.head-logo{width:216px;padding-bottom:16px}.slider{visibility:hidden}.back-btn{height:31px;width:82px;position:absolute;margin-left:73px;margin-top:23px}.go-btn{width:175px;height:44px}.upload-image{margin-left:16rem}.term-signature{margin:84% 0 7px 4%}}@media screen and (min-width: 320px) and (max-width: 426px){.footer-signature{margin-top:20rem}.login .head-logo{padding:16px 2px 0;width:38%!important;height:40%!important}.container{margin-top:5px!important}.card{padding:2px!important}.tag-content{margin:3% 0 0!important;background-color:#121b24;border-radius:13px}.img-tick{margin:3px!important}.slider{visibility:hidden}.load-page{padding:0}.head-logo{width:216px;padding-bottom:16px}.back-btn{height:26px;width:71px;position:absolute;margin-left:-17rem!important;font-size:10px;margin-top:23px}.go-btn{width:142px;height:36px;margin-right:-28px;font-size:10px}.add-tab,.add-tab-view{padding:30px 33px 2px 3px;margin-left:15px}.add-btn{width:6rem}.slider-tab{visibility:hidden}.back-tab{margin-left:-14rem;margin-top:1px;font-size:14px;height:39px}.participate-tab{height:96px;width:87px}.card-design{height:124px;width:125px;padding-left:17px;margin-left:30px}.term-signature{padding:22px 22px 13px 27px}.term-list{padding:43px 10px 10px 3px;margin-left:0;text-align:-webkit-center}}@media screen and (min-width: 320px) and (max-width: 376px){.agree{padding:0 0 8px 25px}.participate-tab{height:96px;width:87px}.card-design{height:109px;width:97px;padding-left:4px;margin-left:10px}.card-design h6{font-size:10px;padding-left:14px;font-weight:600}.sign-img{width:270px}.term-list{padding:20px 20px 6px 4px;margin-left:13px}}@media screen and (min-width: 320px) and (max-width: 350px){.upload-image{height:13px;width:11px;margin-left:10rem;margin-top:-35px}.btn-clear{width:92px}.term-signature{margin:84% 0 7px 4%}}.disabled-btn{cursor:not-allowed!important;background:#4077ad!important;color:#fff!important}.modal-dialog .modal-content{border-radius:12px}.title-popup{font-size:18px;color:#0c1620}ul.term-list-data li{padding-bottom:5px;font-size:13px;font-weight:500;line-height:21px}ol,ul,dl{margin-top:0;margin-bottom:1rem}::ng-deep .modal-content{background:#fff!important}.hidden-view{display:none}.header-container{position:relative;padding:20px}.view-logo{text-align:center}.logout-button{top:20px;right:20px;position:absolute}.logout-button button{background:none;border:none;font-size:16px;display:flex;align-items:center;cursor:pointer}.logout-button img{margin-right:5px;height:20px}.user-card{align-items:center;color:#4077ad;cursor:pointer}.user-cards-active{background:#4077ad;color:#fff}.save-btn.upload{border:1px solid #4077AD;background-color:#4077ad;color:#fff;border-radius:5px;background:#4077ad;padding:4px 10px;display:inline-flex;align-items:center;gap:6px}.save-btn.upload img{filter:brightness(0) invert(1)}.form-check.agree{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.form-check.agree .form-check-input{margin-top:4px;flex-shrink:0}.form-check.agree .form-check-label{line-height:1.4;cursor:pointer;white-space:normal}.spinner-16{width:16px;height:16px}.h6-buttons{display:flex;align-items:center;gap:8px}.form-check.agree{display:flex;align-items:flex-start;margin-bottom:14px}.form-check-input{position:absolute;opacity:0;cursor:pointer}.form-check-label{position:relative;padding-left:28px;cursor:pointer;font-size:14px;line-height:20px;color:#212529;-webkit-user-select:none;user-select:none}.form-check-label:before{content:\"\";position:absolute;left:0;top:8px;width:18px;height:18px;border:2px solid #adb5bd;border-radius:4px;background:#fff;transition:all .2s ease}.form-check-label:after{content:\"\";position:absolute;left:5px;top:10px;width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .15s ease}.form-check-input:checked+.form-check-label:before{background-color:#4077ad;border-color:#4077ad}.form-check-input:checked+.form-check-label:after{transform:rotate(45deg) scale(1)}.form-check-label:hover:before{border-color:#4077ad}.form-check-input:focus+.form-check-label:before{box-shadow:0 0 0 3px #0d6efd40}.form-check-input.is-invalid+.form-check-label:before{border-color:#dc3545}.form-check-input.is-invalid:checked+.form-check-label:before{background-color:#dc3545}.invalid-feedback{display:block;font-size:12px;margin-left:7px;margin-top:4px}::ng-deep .modal-dialog{max-width:750px}.user-cards-active{background-color:#4077ad;color:#fff;border:2px solid #4077AD}.terms-fixed-modal{width:1080px;height:700px;display:flex;flex-direction:column}.terms-scroll-area{flex:1 1 auto;overflow-y:auto;padding:16px}body.modal-open{overflow:hidden!important}.modal{z-index:1055!important}.modal-backdrop{z-index:1050!important}.modal-dialog{margin:auto;pointer-events:auto}.modal-content{position:relative;z-index:1060;background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i13.AccordionComponent, selector: "accordion", inputs: ["isAnimated", "closeOthers"] }, { kind: "component", type: i13.AccordionPanelComponent, selector: "accordion-group, accordion-panel", inputs: ["heading", "panelClass", "isDisabled", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: GooglePlaceDirective, selector: "[ngx-google-places-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "directive", type: MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }, { kind: "component", type: TermsConditionsComponent, selector: "app-terms-conditions", inputs: ["title", "branding", "PrivacyAndTerms"] }, { kind: "component", type: PrivacyPolicyComponent, selector: "app-privacy-policy", inputs: ["title", "branding", "PrivacyAndTerms"] }, { kind: "component", type: CredentialingComponent, selector: "app-credentialing", inputs: ["data"], outputs: ["back"] }] });
29393
29592
  }
29394
29593
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InitialProcessComponent, decorators: [{
29395
29594
  type: Component,
29396
- args: [{ selector: 'app-initial-process', standalone: false, template: "<div class=\"container\">\r\n <div class=\"card pb-2 pr-5\" style=\"margin-bottom: 30px;\">\r\n <ng-container class=\"load-page\" [style.visibility]=\"view == 1 ? 'visible' : 'hidden' \">\r\n <ul class=\"term-list para-comma\" [ngClass]=\"view == 1 ? '' : 'hidden-view'\">\r\n Thanks for joining\r\n <span class=\"brand-name\">{{ branding.displayName }}</span>.\r\n Our members and service providers rely on accurate info in your profile to\r\n connect you with work that suits your capabilities. Keep your profile\r\n complete, skills updated, licenses current, photos and logos professional,\r\n and schedule up to date.\r\n </ul>\r\n <div class=\"row col-12 mt-4\" [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <div class=\"col-md-6 col-lg-6 col-sm-12\">\r\n <div class=\"form-group form-check agree\">\r\n <input #acceptTerms=\"ngModel\" [ngClass]=\"{ 'is-invalid': !model.acceptTerms && validatePage==1 }\"\r\n [(ngModel)]=\"model.acceptTerms\" type=\"checkbox\" name=\"acceptTerms\" id=\"acceptTerms\"\r\n class=\"form-check-input\" (click)=\"openModal(termsAndConditionsModel,'Terms and Conditions',$event)\"\r\n required>\r\n <label for=\"acceptTerms\" class=\"form-check-label checkmark pointer\"\r\n (click)=\"openModal(termsAndConditionsModel,'Terms and Conditions',$event)\">\r\n I agree to Terms and Conditions\r\n </label>\r\n <div *ngIf=\"!model.acceptTerms && validatePage==1\" class=\"invalid-feedback\">\r\n Accept Terms & Conditions is required\r\n </div>\r\n </div>\r\n <div class=\"form-group form-check agree\">\r\n <input #privacy=\"ngModel\" [ngClass]=\"{ 'is-invalid':!model.privacy && validatePage==1}\"\r\n (click)=\"openModal(termsAndConditionsModel,'Privacy Statement',$event)\" [(ngModel)]=\"model.privacy\"\r\n type=\"checkbox\" name=\"privacy\" id=\"privacy\" class=\"form-check-input\" required>\r\n <label for=\"privacy\" class=\"form-check-label checkmark pointer\"\r\n (click)=\"openModal(termsAndConditionsModel,'Privacy Statement',$event)\">\r\n I agree to Privacy Statement\r\n </label>\r\n <div *ngIf=\"!model.privacy && validatePage==1\" class=\"invalid-feedback\">\r\n Accept Privacy Statement\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 justify-content-between row footer-signature\"\r\n [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <!-- <div class=\"col-md-3 col-sm-3 slider-tab\">\r\n </div> -->\r\n\r\n <div class=\"col-6\"></div>\r\n <div class=\"col-md-12 col-sm-12 col-xl-3 text-end\">\r\n <h6>\r\n <button class=\"next\" (click)=\" next(2)\"\r\n [ngClass]=\"(((!points || !points?.length || points.length ==0) && !fileData ) || !model.acceptTerms || !model.privacy) ? 'disabled-btn':''\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>&nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n <ng-container>\r\n <div class=\"term-signature col-md-6 col-lg-6 col-sm-12\" [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <h6 class=\"checkmark\">Signature</h6>\r\n <div [ngClass]=\"{ 'd-none': signaturePadData?.publicUrl }\" class=\"sign-img mb-2\">\r\n <canvas #canvas [width]=\"255\" [height]=\"90\"></canvas>\r\n </div>\r\n <div [ngClass]=\"{ 'd-none': !signaturePadData?.publicUrl }\" class=\"mb-2\">\r\n <img [width]=\"255\" [height]=\"120\" [src]=\"signaturePadData?.publicUrl\" style=\"position: relative\" alt>\r\n </div>\r\n <h6 class=\"d-flex align-items-center gap-2\">\r\n <button (click)=\"clearPad()\" class=\"btn-clear btn-sm\">\r\n Clear\r\n </button>\r\n\r\n <!-- <button (click)=\"uploadImage.click()\" class=\"save-btn upload btn-sm\">\r\n <img src=\"assets/images/icons/upload.svg\" alt=\"Upload\">\r\n Upload\r\n <input #uploadImage type=\"file\" class=\"image-upload d-none\" accept=\"image/*\"\r\n (change)=\"uploadSignImage($event)\">\r\n </button> -->\r\n </h6>\r\n\r\n <div *ngIf=\"validatePage==1 && (!points || !points?.length || points.length ==0) && !fileData\"\r\n class=\"invalid-feedback d-block\">\r\n Signature is required\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 2\">\r\n <div class=\"add-tab-view \">\r\n <ul>\r\n <h5>\r\n <b>\r\n Please choose the relevant sections in which you wish to\r\n participate\r\n </b>\r\n </h5>\r\n <br>\r\n <b class=\"para-comma\">\r\n Choose the areas you'd like to be part of \u2014 whether it's programs, services, events, or collaborations,\r\n you're in control of your involvement.\r\n <br>\r\n connect your business to others and prospective clients.\r\n </b>\r\n </ul>\r\n\r\n <div class=\"row mt-4\">\r\n <ng-container *ngFor=\"let userType of userViewRoles\">\r\n <div class=\"card card-design text-center user-card mx-2 my-2\" style=\"width: 12%;\"\r\n [ngClass]=\"userType.value === selectedRoleValue ? 'user-cards-active' : ''\"\r\n (click)=\"selectedUserRole(userType)\">\r\n <img [src]=\"userType?.img\" class=\"mb-2 mt-2\" style=\"width: 70px;height: 70px;\">\r\n <h6 class=\"m-0 mt-2\">{{userType.name}}</h6>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- <h6 class=\"inspect-add\">\r\n <button (click)=\"next(3);isBusiness=true;\" class=\"add-btn btn-sm\">\r\n Yes\r\n </button>\r\n &nbsp; &nbsp;\r\n <button (click)=\"isBusiness=false;view = 4;\" class=\"add-btn btn-sm\">\r\n No\r\n </button>\r\n </h6> -->\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-1.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button (click)=\"next(3)\" class=\"next\" [disabled]=\"!isUserSelected\"\r\n [ngClass]=\"!isUserSelected ? 'disabled-btn':''\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 3\">\r\n <form [formGroup]=\"companyForm\" class=\"form\">\r\n <div class=\"term-list \">\r\n <ul>\r\n <h5>\r\n <b>\r\n Enter your business information here.\r\n </b>\r\n </h5>\r\n <br>\r\n </ul>\r\n <div class=\"profile-field\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{'is-invalid': ( f.companyName.errors && validatePage == 3) || providerError}\"\r\n type=\"text\" class=\"form-control\" id=\"companyName\" placeholder=\"Company Name\"\r\n formControlName=\"companyName\">\r\n <div *ngIf=\" f.companyName.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.companyName.errors.required\">\r\n Company Name is required\r\n </div>\r\n <div *ngIf=\"f.companyName.errors.minlength\">\r\n Company Name must be at least 2 characters\r\n </div>\r\n <div *ngIf=\"f.companyName.errors.maxLength\">\r\n Company Name must be less than 100 characters\r\n </div>\r\n </div>\r\n <div *ngIf=\"providerError\" class=\"invalid-feedback\">\r\n <div>\r\n {{providerError}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input class=\"form-control block fw-medium shadow-none\" type=\"text\" name=\"inputPhone\"\r\n placeholder=\"Company Phone Number \" id=\"inputPhone\" autocomplete=\"off\" formControlName=\"phoneNumber\"\r\n appMobileMask [maxLength]=\"300\"\r\n [ngClass]=\"{'is-invalid': ( f.phoneNumber.errors && validatePage == 3) || providerError}\">\r\n <div *ngIf=\"f.phoneNumber.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.phoneNumber.errors.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.address1.errors&& validatePage == 3 }\" type=\"text\"\r\n class=\"form-control\" id=\"businessAddress\" ngx-google-places-autocomplete [options]='options'\r\n (onAddressChange)=\"AddressChange($event)\" placeholder=\"Business Address 1\" formControlName=\"address1\">\r\n <div *ngIf=\" f.address1.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.address1.errors.required\">\r\n Business Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"businessAddress2\" placeholder=\"Business Address 2\">\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.city.errors&& validatePage == 3 }\" type=\"text\" class=\"form-control\"\r\n id=\"City\" placeholder=\"City\" formControlName=\"city\">\r\n <div *ngIf=\" f.city.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.city.errors.required\">City is required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.state.errors&& validatePage == 3 }\" type=\"text\"\r\n class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\">\r\n <div *ngIf=\" f.state.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.state.errors.required\">State is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [textMask]=\"{ mask: zipcodeMask }\"\r\n [ngClass]=\"{ 'is-invalid': f.zipcode.errors&& validatePage == 3 }\" type=\"text\" class=\"form-control\"\r\n id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\">\r\n <div *ngIf=\" f.zipcode.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.zipcode.errors.required\">Zipcode is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.country.errors && validatePage == 3}\" type=\"text\"\r\n class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\">\r\n <div *ngIf=\" f.country.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.country.errors.required\">Country is\r\n required</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div *ngIf=\"selectedRole?.name == 'Contractor'\" style=\"padding: 0px 20px;border-radius: 5px;\">\r\n <div class=\"term-list pt-0\">\r\n <h5>\r\n <b>\r\n Contractor Category\r\n </b>\r\n </h5>\r\n <div class=\"profile-field\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mb-2\">\r\n <label></label>\r\n <ng-select [items]=\"contractorSubCategories\" bindLabel=\"name\" [multiple]=\"true\" [closeOnSelect]=\"false\"\r\n placeholder=\"Select Contractor Category\" (ngModelChange)=\"changeContractor($event)\"\r\n [(ngModel)]=\"selectedContractorCategories\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n <accordion [isAnimated]=\"false\">\r\n <ng-container *ngFor=\"let item of selectedContractorCategories;let i=index\">\r\n <accordion-group [isOpen]=\"true\">\r\n <button accordion-heading class=\"w-100\" style=\"font-size: 16px;font-weight: 600;\">\r\n <div class=\"w-100 mt-2\">\r\n <div class=\"backdrop\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item.selectAll\" [name]=\"item?.id\" [id]=\"item?.id\"\r\n (change)=\"selectAll($event,item?.items)\">\r\n <label [for]=\"item?.id\">&nbsp;{{item?.name}}</label>\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"row\">\r\n <div class=\"backdrop col-4 form-control-sm\" *ngFor=\"let subItem of item?.items\">\r\n <input type=\"checkbox\" [(ngModel)]=\"subItem.selected\" [name]=\"subItem?.id\" [id]=\"subItem?.id\"\r\n (change)=\"unCheckedEvent($event,item)\">\r\n <label [for]=\"subItem?.id\">&nbsp;{{subItem?.name}}</label>\r\n </div>\r\n </div>\r\n </accordion-group>\r\n </ng-container>\r\n </accordion>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-2.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button class=\" next\" (click)=\"next(4)\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 4\">\r\n\r\n <div class=\"add-tab \">\r\n <ul>\r\n <h5 class=\"p-4 pb-2\">\r\n <b>\r\n We need basic information's and headshot for your profile\r\n </b>\r\n <div class=\"form-group form-check agree p-0 mt-3\" *ngIf=\"isBusiness\">\r\n <input [(ngModel)]=\"isCopy\" type=\"checkbox\" name=\"isCopy\" id=\"isCopy\" class=\"form-check-input mt-2\"\r\n (change)=\"changeAddressUser()\">\r\n <label for=\"isCopy\" class=\"form-check-label checkmark\">\r\n Copy From Provider Infromation\r\n </label>\r\n </div>\r\n </h5>\r\n </ul>\r\n <div class=\"profile-field\">\r\n <form [formGroup]=\"userForm\" class=\"form pb-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.firstName.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Fist Name\" formControlName=\"firstName\" id=\"firstName\">\r\n <div *ngIf=\" u.firstName.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.firstName.errors.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.lastName.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Last Name\" formControlName=\"lastName\" id=\"lastName\">\r\n <div *ngIf=\" u.lastName.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.lastName.errors.required\">\r\n Last Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.email.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Email\" formControlName=\"email\" id=\"email\">\r\n <div *ngIf=\" u.email.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors.required\">\r\n Emai is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.address1.errors && validatePage == 4 }\" [options]=\"options\"\r\n (onAddressChange)=\"AddressChangeUser($event)\" type=\"text\" class=\"form-control\"\r\n placeholder=\"Home Address 1\" formControlName=\"address1\" id=\"address1\" ngx-google-places-autocomplete>\r\n <div *ngIf=\" u.address1.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.address1.errors.required\">\r\n Home Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"homeAddress2\" formControlName=\"address2\"\r\n placeholder=\"Home Address 2\">\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.city.errors && validatePage == 4}\" type=\"text\" class=\"form-control\"\r\n id=\"City\" placeholder=\"City\" formControlName=\"city\">\r\n <div *ngIf=\" u.city.errors && validatePage ==4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.city.errors.required\">City is required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.state.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\">\r\n <div *ngIf=\" u.state.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.state.errors.required\">State is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [textMask]=\"{ mask: zipcodeMask }\"\r\n [ngClass]=\"{ 'is-invalid': u.zipcode.errors && validatePage == 4 }\" type=\"text\" class=\"form-control\"\r\n id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\">\r\n <div *ngIf=\" u.zipcode.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.zipcode.errors.required\">Zipcode is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.country.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\">\r\n <div *ngIf=\" u.country.errors && validatePage ==4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.country.errors.required\">Country is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input class=\"form-control block shadow-none\" type=\"text\" name=\"inputPhone\" placeholder=\"Phone Number \"\r\n id=\"inputPhone\" autocomplete=\"off\" formControlName=\"phoneNumber\" appMobileMask [maxLength]=\"300\"\r\n [ngClass]=\"{'is-invalid': ( u.phoneNumber.errors && validatePage == 4)}\">\r\n <div *ngIf=\"u.phoneNumber.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.phoneNumber.errors.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"form-group mb-2 form\">\r\n <input #uploadFile type=\"file\" accept=\"image/*\" (change)=\"uploadUserImage($event)\"\r\n class=\"upload-initial-input rounded-circle opacity-0 position-absolute\" />\r\n <input (click)=\"uploadImage1.click()\" [(ngModel)]=\"fileName\" readonly type=\"text\" class=\"form-control\"\r\n id=\"upload\" accept=\"image/*\" placeholder=\"Upload Profile Picture\">\r\n <img #uploadImage1 class=\"upload-image\" (click)=\"uploadFile.click()\" type=\"file\"\r\n src=\"assets/images/icons/upload.svg\" alt=\"Logo\">\r\n <div *ngIf=\"isImageRequired\" class=\"invalid-feedback d-block\">\r\n <div class=\"ms-1\">\r\n Please Upload Profile Image\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"userError\" class=\"invalid-feedback\">\r\n <div>\r\n {{userError}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 pt-3 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-3.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button class=\"next\" (click)=\"next(5)\" [disabled]=\"showLoader\"\r\n [config]=\"DefaultButtonSpinnerConfig\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 5\">\r\n <ul class=\"term-list ps-3\">\r\n <h5>\r\n <b>\r\n Thanks, we got the basics down!\r\n </b>\r\n </h5>\r\n <br>\r\n <b class=\"para-comma\">\r\n Account created successfully. Next step: complete your profile.\r\n <br>\r\n <br>\r\n Profile completion is mandatory to participate in rosters, programs, requests, and platform workflows.\r\n Incomplete profiles will have limited access.\r\n <br>\r\n <br>\r\n You may access your dashboard at any time, but full functionality is available only after completion.\r\n </b>\r\n </ul>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-lg-3 col-xl-3 col-sm-12 text-center\">\r\n <img class=\"slider ml-3\" src=\"assets/images/icons/stepper-4.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end row\">\r\n <div class=\"col-md-2 col-2\">\r\n <h6 style=\"margin-right: 3rem\">\r\n </h6>\r\n </div>\r\n\r\n &nbsp; &nbsp;\r\n <div class=\"col-md-8\">\r\n <h6>\r\n <button (click)=\"dashboard()\" class=\"go-btn btn-sm\">\r\n Go To Home&nbsp;&nbsp;\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\"\r\n src=\"assets/images/icons/next.svg\" alt=\"Logo\">\r\n </button>\r\n </h6>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 10\">\r\n <app-credentialing (back)=\"onCredentialingBack()\" [data]=\"credentialingData\"></app-credentialing>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #termsAndConditionsModel>\r\n <div class=\"modal-header\">\r\n <h4 id=\"dialog-nested-name1\" class=\"modal-title pull-left fw-bold title-popup\">{{termsAndConditionTitle}}</h4>\r\n </div>\r\n <div class=\"modal-body pb-3\">\r\n <ng-container *ngIf=\"termsAndConditionTitle == 'Terms and Conditions'\">\r\n <app-terms-conditions [PrivacyAndTerms]=\"privacyAndTerms\" [title]=\"title\"\r\n [branding]=\"branding\"></app-terms-conditions>\r\n </ng-container>\r\n <ng-container *ngIf=\"termsAndConditionTitle != 'Terms and Conditions'\">\r\n <app-privacy-policy [PrivacyAndTerms]=\"privacyAndTerms\" [title]=\"title\"\r\n [branding]=\"branding\"></app-privacy-policy>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"modal-footer text-end\" style=\"display: block;\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm px-4\" style=\" background: #d3dae6;\r\n color: #98a2b3;;border: #D3DAE6 !important;\" (click)=\"decline(termsAndConditionTitle);modelRef.hide();\">Decline\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm px-4\" style=\"color:white;background: #4077AD;\"\r\n (click)=\"agree(termsAndConditionTitle);modelRef.hide();\">Agree</button>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".brand-name{font-weight:700;font-size:calc(100% + 4px)}::ng-deep .backdrop{background-color:transparent!important}.filter-black{filter:brightness(.4)!important}.footer-view{margin-top:3rem;margin-left:0;margin-right:0}.footer-signature{margin-top:9rem}.slider-view{width:11rem;margin-left:1px}.container{margin-top:30px}.container .card{border-radius:1.25rem}.container .header{padding:33px 10px 0}.container .header .logo{width:15%;height:80%}.container .form-control{padding:.75rem 1rem;border-color:#a1a1a1}.container .form-control:focus{color:#000;box-shadow:none;border-color:#a1a1a1!important}.container .form-control::placeholder{font-weight:500;font-size:12px;color:#a1a1a1}.container .link{color:#4077ad}.container .link-signup{font-weight:bolder}.container .form-check-label{margin-bottom:0;padding-top:9px}.container .content-view{margin-top:10%}.container .content-description{margin-top:25%}.container .tag-content{color:#fff9e8;margin-left:9%}.container .tag-content p{color:#fff9e8}.container .form-check-input:checked{background-color:#000;border-color:#000}.container .img-tick{margin:-31px 12px 0 -35px}.container .form-check-input[type=checkbox]{border-radius:2px;border:2px solid #000000}.container .form-check-input:focus{box-shadow:none}.container input[type=checkbox]{accent-color:#000000}.term-list{padding:48px 60px 6px 0;margin-left:30px;color:\"#1f1f1fdb\"}.add-tab{padding:75px 75px 6px 1px;margin-left:50px;color:\"#1f1f1fdb\"}.add-tab-view{padding:75px 75px 6px 1px;margin-left:80px;color:\"#1f1f1fdb\"}.inspect-add{margin-top:3rem}.add-btn{font-size:16px;border-radius:5px;transition:.2s;padding:.25rem .5rem;background:#fff;border:1px solid rgba(148,147,147,.1882352941);color:#444;line-height:48px;box-shadow:0 1px 9px #98a2b3;width:9rem}.add-btn:hover{border:1px solid rgba(148,147,147,.1882352941);box-shadow:none}.agree{padding:0 0 8px 47px}.agree .form-check-input[type=checkbox]{border-radius:2px;border:2px solid #98A2B3;width:14px;height:14px;margin:5px 9px 0 -35px}.agree .form-check-input:focus{box-shadow:none}.agree .form-check-input:checked{background-color:#000;border-color:#000}.agree .invalid-feedback{font-size:10px!important;margin:0 0 0 21px}.checkmark{vertical-align:text-bottom;color:#98a2b3;font-weight:500;font-size:12px}.term-signature{padding-left:16rem;padding-right:65px;position:absolute;margin:150px 0 0 50%}.participate-tab{height:135px;width:142px}.card-design{height:147px;width:160px;padding-left:10px;margin-left:42px;background:#fff0;border:2px solid #98A2B3;box-shadow:0 0 4px #98a2b3;border-radius:27px;margin-bottom:42px}.upload{height:39px;margin-top:-4px;width:126px;font-size:12px}.participate-tab{margin-top:-25px}.slider{width:14rem;margin-left:69px}.btn-clear{background:#d3dae6;color:#98a2b3;font-size:12px;border-radius:5px;transition:.2s;padding:6px;border:none;height:auto;width:46%;line-height:28px}.btn-close{background:#f1f4fa;color:#98a2b3;font-size:17px;border-radius:5px;transition:.2s;padding:6px;border:none;height:auto;font-weight:500;width:116px;color:#737a87;line-height:28px}.view-logo{padding-top:1%;padding-bottom:4%;text-align:center}.back-btn{border-radius:45px;height:41px}.next{background:#4077ad;border-radius:30px;height:60px;width:60px;border:white}.profile-field{margin-top:-10px}.profile-field input{line-height:30px;margin:-10px 3px 3px}.load-page{padding:21px 49px 13px 34px}.sign-img{width:291px;height:95px;border-radius:8px;border:1px solid rgba(179,178,178,.33);margin-top:19px}.upload-image{height:16px;width:16px;position:absolute;margin-left:66rem;margin-top:-39px}.para-comma{font-weight:500}.go-btn{border-radius:45px;height:50px;padding:0 20px;background:#4077ad;border:1px solid #4077ad;color:#fff;line-height:28px;font-size:14px;font-weight:500}.text-label{color:#747b83;font-weight:500}.form{padding:20px;border-radius:5px}.form-control:focus{color:#000;box-shadow:none;border-color:#848484!important}.form-control::placeholder{font-weight:500;font-size:12px;color:#bec1be;padding-left:10px}.btn-primary:active{background-color:#50575e}@media screen and (min-width: 500px) and (max-width: 769px){.content-view{background:#0c1620;width:44rem;margin:31px 0 0!important;padding:28px 32px 17px 71px!important;border-radius:29px}.upload-image{margin-left:25rem!important}}@media screen and (min-width: 768px) and (max-width: 1024px){.back-btn{height:31px;width:82px;position:absolute;margin-left:-53px}.back-tab{position:absolute;margin-left:-87px;height:37px}.go-btn{width:175px;height:44px}.term-signature{padding-left:10px}.upload-image{margin-left:40rem}}@media screen and (min-width: 374px) and (max-width: 426px){.head-logo{width:216px;padding-bottom:16px}.slider{visibility:hidden}.back-btn{height:31px;width:82px;position:absolute;margin-left:73px;margin-top:23px}.go-btn{width:175px;height:44px}.upload-image{margin-left:16rem}.term-signature{margin:84% 0 7px 4%}}@media screen and (min-width: 320px) and (max-width: 426px){.footer-signature{margin-top:20rem}.login .head-logo{padding:16px 2px 0;width:38%!important;height:40%!important}.container{margin-top:5px!important}.card{padding:2px!important}.tag-content{margin:3% 0 0!important;background-color:#121b24;border-radius:13px}.img-tick{margin:3px!important}.slider{visibility:hidden}.load-page{padding:0}.head-logo{width:216px;padding-bottom:16px}.back-btn{height:26px;width:71px;position:absolute;margin-left:-17rem!important;font-size:10px;margin-top:23px}.go-btn{width:142px;height:36px;margin-right:-28px;font-size:10px}.add-tab,.add-tab-view{padding:30px 33px 2px 3px;margin-left:15px}.add-btn{width:6rem}.slider-tab{visibility:hidden}.back-tab{margin-left:-14rem;margin-top:1px;font-size:14px;height:39px}.participate-tab{height:96px;width:87px}.card-design{height:124px;width:125px;padding-left:17px;margin-left:30px}.term-signature{padding:22px 22px 13px 27px}.term-list{padding:43px 10px 10px 3px;margin-left:0;text-align:-webkit-center}}@media screen and (min-width: 320px) and (max-width: 376px){.agree{padding:0 0 8px 25px}.participate-tab{height:96px;width:87px}.card-design{height:109px;width:97px;padding-left:4px;margin-left:10px}.card-design h6{font-size:10px;padding-left:14px;font-weight:600}.sign-img{width:270px}.term-list{padding:20px 20px 6px 4px;margin-left:13px}}@media screen and (min-width: 320px) and (max-width: 350px){.upload-image{height:13px;width:11px;margin-left:10rem;margin-top:-35px}.btn-clear{width:92px}.term-signature{margin:84% 0 7px 4%}}.disabled-btn{cursor:not-allowed!important;background:#4077ad!important;color:#fff!important}.modal-dialog .modal-content{border-radius:19px}.title-popup{font-size:18px;color:#0c1620}ul.term-list-data li{padding-bottom:5px;font-size:13px;font-weight:500;line-height:21px}ol,ul,dl{margin-top:0;margin-bottom:1rem}::ng-deep .modal-content{background:#fff!important}.hidden-view{display:none}.header-container{position:relative;padding:20px}.view-logo{text-align:center}.logout-button{top:20px;right:20px;position:absolute}.logout-button button{background:none;border:none;font-size:16px;display:flex;align-items:center;cursor:pointer}.logout-button img{margin-right:5px;height:20px}.user-card{align-items:center;color:#4077ad;cursor:pointer}.user-cards-active{background:#4077ad;color:#fff}.save-btn.upload{border:1px solid #4077AD;background-color:#4077ad;color:#fff;border-radius:5px;background:#4077ad;padding:4px 10px;display:inline-flex;align-items:center;gap:6px}.save-btn.upload img{filter:brightness(0) invert(1)}.form-check.agree{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.form-check.agree .form-check-input{margin-top:4px;flex-shrink:0}.form-check.agree .form-check-label{line-height:1.4;cursor:pointer;white-space:normal}.spinner-16{width:16px;height:16px}.h6-buttons{display:flex;align-items:center;gap:8px}.form-check.agree{display:flex;align-items:flex-start;margin-bottom:14px}.form-check-input{position:absolute;opacity:0;cursor:pointer}.form-check-label{position:relative;padding-left:28px;cursor:pointer;font-size:14px;line-height:20px;color:#212529;-webkit-user-select:none;user-select:none}.form-check-label:before{content:\"\";position:absolute;left:0;top:8px;width:18px;height:18px;border:2px solid #adb5bd;border-radius:4px;background:#fff;transition:all .2s ease}.form-check-label:after{content:\"\";position:absolute;left:5px;top:10px;width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .15s ease}.form-check-input:checked+.form-check-label:before{background-color:#4077ad;border-color:#4077ad}.form-check-input:checked+.form-check-label:after{transform:rotate(45deg) scale(1)}.form-check-label:hover:before{border-color:#4077ad}.form-check-input:focus+.form-check-label:before{box-shadow:0 0 0 3px #0d6efd40}.form-check-input.is-invalid+.form-check-label:before{border-color:#dc3545}.form-check-input.is-invalid:checked+.form-check-label:before{background-color:#dc3545}.invalid-feedback{display:block;font-size:12px;margin-left:7px;margin-top:4px}::ng-deep .modal-dialog{max-width:750px}.user-cards-active{background-color:#4077ad;color:#fff;border:2px solid #4077AD}\n"] }]
29397
- }], ctorParameters: () => [{ type: i2.Router }, { type: UserDetailService }, { type: i3.FormBuilder }, { type: FileService }, { type: ProvidersService }, { type: RolesService }, { type: i7$1.BsModalService }, { type: ProviderContractorSubCategoryService }, { type: ProviderContractorSubCategoryService }, { type: i9.AuthService }, { type: i6.TokenService }, { type: i6.RoleContextService }, { type: undefined, decorators: [{
29595
+ args: [{ selector: 'app-initial-process', standalone: false, template: "<div class=\"container\">\r\n <div class=\"card pb-2 pr-5\" style=\"margin-bottom: 30px;\">\r\n <ng-container class=\"load-page\" [style.visibility]=\"view == 1 ? 'visible' : 'hidden' \">\r\n <ul class=\"term-list para-comma\" [ngClass]=\"view == 1 ? '' : 'hidden-view'\">\r\n Thanks for joining\r\n <span class=\"brand-name\">{{ branding.displayName }}</span>.\r\n Our members and service providers rely on accurate info in your profile to\r\n connect you with work that suits your capabilities. Keep your profile\r\n complete, skills updated, licenses current, photos and logos professional,\r\n and schedule up to date.\r\n </ul>\r\n <div class=\"row col-12 mt-4\" [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <div class=\"col-md-6 col-lg-6 col-sm-12\">\r\n <div class=\"form-group form-check agree\">\r\n <input #acceptTerms=\"ngModel\" [ngClass]=\"{ 'is-invalid': !model.acceptTerms && validatePage==1 }\"\r\n [(ngModel)]=\"model.acceptTerms\" type=\"checkbox\" name=\"acceptTerms\" id=\"acceptTerms\"\r\n class=\"form-check-input\" (click)=\"openModal(termsAndConditionsModel,'Terms and Conditions',$event)\"\r\n required>\r\n <label for=\"acceptTerms\" class=\"form-check-label checkmark pointer\"\r\n (click)=\"openModal(termsAndConditionsModel,'Terms and Conditions',$event)\">\r\n I agree to Terms and Conditions\r\n </label>\r\n <div *ngIf=\"!model.acceptTerms && validatePage==1\" class=\"invalid-feedback\">\r\n Accept Terms & Conditions is required\r\n </div>\r\n </div>\r\n <div class=\"form-group form-check agree\">\r\n <input #privacy=\"ngModel\" [ngClass]=\"{ 'is-invalid':!model.privacy && validatePage==1}\"\r\n (click)=\"openModal(termsAndConditionsModel,'Privacy Statement',$event)\" [(ngModel)]=\"model.privacy\"\r\n type=\"checkbox\" name=\"privacy\" id=\"privacy\" class=\"form-check-input\" required>\r\n <label for=\"privacy\" class=\"form-check-label checkmark pointer\"\r\n (click)=\"openModal(termsAndConditionsModel,'Privacy Statement',$event)\">\r\n I agree to Privacy Statement\r\n </label>\r\n <div *ngIf=\"!model.privacy && validatePage==1\" class=\"invalid-feedback\">\r\n Accept Privacy Statement\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 justify-content-between row footer-signature\"\r\n [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <!-- <div class=\"col-md-3 col-sm-3 slider-tab\">\r\n </div> -->\r\n\r\n <div class=\"col-6\"></div>\r\n <div class=\"col-md-12 col-sm-12 col-xl-3 text-end\">\r\n <h6>\r\n <button class=\"next\" (click)=\" next(2)\"\r\n [ngClass]=\"(((!points || !points?.length || points.length ==0) && !fileData ) || !model.acceptTerms || !model.privacy) ? 'disabled-btn':''\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>&nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n <ng-container>\r\n <div class=\"term-signature col-md-6 col-lg-6 col-sm-12\" [ngClass]=\"view == 1 ? '' : 'hidden-view' \">\r\n <h6 class=\"checkmark\">Signature</h6>\r\n <div [ngClass]=\"{ 'd-none': signaturePadData?.publicUrl }\" class=\"sign-img mb-2\">\r\n <canvas #canvas [width]=\"255\" [height]=\"90\"></canvas>\r\n </div>\r\n <div [ngClass]=\"{ 'd-none': !signaturePadData?.publicUrl }\" class=\"mb-2\">\r\n <img [width]=\"255\" [height]=\"120\" [src]=\"signaturePadData?.publicUrl\" style=\"position: relative\" alt>\r\n </div>\r\n <h6 class=\"d-flex align-items-center gap-2\">\r\n <button (click)=\"clearPad()\" class=\"btn-clear btn-sm\">\r\n Clear\r\n </button>\r\n\r\n <!-- <button (click)=\"uploadImage.click()\" class=\"save-btn upload btn-sm\">\r\n <img src=\"assets/images/icons/upload.svg\" alt=\"Upload\">\r\n Upload\r\n <input #uploadImage type=\"file\" class=\"image-upload d-none\" accept=\"image/*\"\r\n (change)=\"uploadSignImage($event)\">\r\n </button> -->\r\n </h6>\r\n\r\n <div *ngIf=\"validatePage==1 && (!points || !points?.length || points.length ==0) && !fileData\"\r\n class=\"invalid-feedback d-block\">\r\n Signature is required\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 2\">\r\n <div class=\"add-tab-view \">\r\n <ul>\r\n <h5>\r\n <b>\r\n Please choose the relevant sections in which you wish to\r\n participate\r\n </b>\r\n </h5>\r\n <br>\r\n <b class=\"para-comma\">\r\n Choose the areas you'd like to be part of \u2014 whether it's programs, services, events, or collaborations,\r\n you're in control of your involvement.\r\n <br>\r\n connect your business to others and prospective clients.\r\n </b>\r\n </ul>\r\n\r\n <div class=\"row mt-4\">\r\n <ng-container *ngFor=\"let userType of userViewRoles\">\r\n <div class=\"card card-design text-center user-card mx-2 my-2\" style=\"width: 12%;\"\r\n [ngClass]=\"userType.value === selectedRoleValue ? 'user-cards-active' : ''\"\r\n (click)=\"selectedUserRole(userType)\">\r\n <img [src]=\"userType?.img\" class=\"mb-2 mt-2\" style=\"width: 70px;height: 70px;\">\r\n <h6 class=\"m-0 mt-2\">{{userType.name}}</h6>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- <h6 class=\"inspect-add\">\r\n <button (click)=\"next(3);isBusiness=true;\" class=\"add-btn btn-sm\">\r\n Yes\r\n </button>\r\n &nbsp; &nbsp;\r\n <button (click)=\"isBusiness=false;view = 4;\" class=\"add-btn btn-sm\">\r\n No\r\n </button>\r\n </h6> -->\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-1.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button (click)=\"next(3)\" class=\"next\" [disabled]=\"!isUserSelected\"\r\n [ngClass]=\"!isUserSelected ? 'disabled-btn':''\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 3\">\r\n <form [formGroup]=\"companyForm\" class=\"form\">\r\n <div class=\"term-list \">\r\n <ul>\r\n <h5>\r\n <b>\r\n Enter your business information here.\r\n </b>\r\n </h5>\r\n <br>\r\n </ul>\r\n <div class=\"profile-field\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{'is-invalid': ( f.companyName.errors && validatePage == 3) || providerError}\"\r\n type=\"text\" class=\"form-control\" id=\"companyName\" placeholder=\"Company Name\"\r\n formControlName=\"companyName\">\r\n <div *ngIf=\" f.companyName.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.companyName.errors.required\">\r\n Company Name is required\r\n </div>\r\n <div *ngIf=\"f.companyName.errors.minlength\">\r\n Company Name must be at least 2 characters\r\n </div>\r\n <div *ngIf=\"f.companyName.errors.maxLength\">\r\n Company Name must be less than 100 characters\r\n </div>\r\n </div>\r\n <div *ngIf=\"providerError\" class=\"invalid-feedback\">\r\n <div>\r\n {{providerError}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input class=\"form-control block fw-medium shadow-none\" type=\"text\" name=\"inputPhone\"\r\n placeholder=\"Company Phone Number \" id=\"inputPhone\" autocomplete=\"off\" formControlName=\"phoneNumber\"\r\n appMobileMask [maxLength]=\"300\"\r\n [ngClass]=\"{'is-invalid': ( f.phoneNumber.errors && validatePage == 3) || providerError}\">\r\n <div *ngIf=\"f.phoneNumber.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.phoneNumber.errors.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.address1.errors&& validatePage == 3 }\" type=\"text\"\r\n class=\"form-control\" id=\"businessAddress\" ngx-google-places-autocomplete [options]='options'\r\n (onAddressChange)=\"AddressChange($event)\" placeholder=\"Business Address 1\" formControlName=\"address1\">\r\n <div *ngIf=\" f.address1.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.address1.errors.required\">\r\n Business Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"businessAddress2\" placeholder=\"Business Address 2\">\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.city.errors&& validatePage == 3 }\" type=\"text\" class=\"form-control\"\r\n id=\"City\" placeholder=\"City\" formControlName=\"city\">\r\n <div *ngIf=\" f.city.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.city.errors.required\">City is required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.state.errors&& validatePage == 3 }\" type=\"text\"\r\n class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\">\r\n <div *ngIf=\" f.state.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.state.errors.required\">State is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [textMask]=\"{ mask: zipcodeMask }\"\r\n [ngClass]=\"{ 'is-invalid': f.zipcode.errors&& validatePage == 3 }\" type=\"text\" class=\"form-control\"\r\n id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\">\r\n <div *ngIf=\" f.zipcode.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.zipcode.errors.required\">Zipcode is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-6 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': f.country.errors && validatePage == 3}\" type=\"text\"\r\n class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\">\r\n <div *ngIf=\" f.country.errors && validatePage == 3\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.country.errors.required\">Country is\r\n required</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div *ngIf=\"selectedRole?.name == 'Contractor'\" style=\"padding: 0px 20px;border-radius: 5px;\">\r\n <div class=\"term-list pt-0\">\r\n <h5>\r\n <b>\r\n Contractor Category\r\n </b>\r\n </h5>\r\n <div class=\"profile-field\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mb-2\">\r\n <label></label>\r\n <ng-select [items]=\"contractorSubCategories\" bindLabel=\"name\" [multiple]=\"true\" [closeOnSelect]=\"false\"\r\n placeholder=\"Select Contractor Category\" (ngModelChange)=\"changeContractor($event)\"\r\n [(ngModel)]=\"selectedContractorCategories\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n <accordion [isAnimated]=\"false\">\r\n <ng-container *ngFor=\"let item of selectedContractorCategories;let i=index\">\r\n <accordion-group [isOpen]=\"true\">\r\n <button accordion-heading class=\"w-100\" style=\"font-size: 16px;font-weight: 600;\">\r\n <div class=\"w-100 mt-2\">\r\n <div class=\"backdrop\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item.selectAll\" [name]=\"item?.id\" [id]=\"item?.id\"\r\n (change)=\"selectAll($event,item?.items)\">\r\n <label [for]=\"item?.id\">&nbsp;{{item?.name}}</label>\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"row\">\r\n <div class=\"backdrop col-4 form-control-sm\" *ngFor=\"let subItem of item?.items\">\r\n <input type=\"checkbox\" [(ngModel)]=\"subItem.selected\" [name]=\"subItem?.id\" [id]=\"subItem?.id\"\r\n (change)=\"unCheckedEvent($event,item)\">\r\n <label [for]=\"subItem?.id\">&nbsp;{{subItem?.name}}</label>\r\n </div>\r\n </div>\r\n </accordion-group>\r\n </ng-container>\r\n </accordion>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-2.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button class=\" next\" (click)=\"next(4)\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 4\">\r\n\r\n <div class=\"add-tab \">\r\n <ul>\r\n <h5 class=\"p-4 pb-2\">\r\n <b>\r\n We need basic information's and headshot for your profile\r\n </b>\r\n <div class=\"form-group form-check agree p-0 mt-3\" *ngIf=\"isBusiness\">\r\n <input [(ngModel)]=\"isCopy\" type=\"checkbox\" name=\"isCopy\" id=\"isCopy\" class=\"form-check-input mt-2\"\r\n (change)=\"changeAddressUser()\">\r\n <label for=\"isCopy\" class=\"form-check-label checkmark\">\r\n Copy From Provider Infromation\r\n </label>\r\n </div>\r\n </h5>\r\n </ul>\r\n <div class=\"profile-field\">\r\n <form [formGroup]=\"userForm\" class=\"form pb-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.firstName.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Fist Name\" formControlName=\"firstName\" id=\"firstName\">\r\n <div *ngIf=\" u.firstName.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.firstName.errors.required\">\r\n First Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.lastName.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Last Name\" formControlName=\"lastName\" id=\"lastName\">\r\n <div *ngIf=\" u.lastName.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.lastName.errors.required\">\r\n Last Name is required\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.email.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" placeholder=\"Email\" formControlName=\"email\" id=\"email\">\r\n <div *ngIf=\" u.email.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.email.errors.required\">\r\n Emai is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-12 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.address1.errors && validatePage == 4 }\" [options]=\"options\"\r\n (onAddressChange)=\"AddressChangeUser($event)\" type=\"text\" class=\"form-control\"\r\n placeholder=\"Home Address 1\" formControlName=\"address1\" id=\"address1\" ngx-google-places-autocomplete>\r\n <div *ngIf=\" u.address1.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.address1.errors.required\">\r\n Home Address 1 is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input type=\"text\" class=\"form-control\" id=\"homeAddress2\" formControlName=\"address2\"\r\n placeholder=\"Home Address 2\">\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.city.errors && validatePage == 4}\" type=\"text\" class=\"form-control\"\r\n id=\"City\" placeholder=\"City\" formControlName=\"city\">\r\n <div *ngIf=\" u.city.errors && validatePage ==4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.city.errors.required\">City is required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.state.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" id=\"State\" placeholder=\"State\" formControlName=\"state\">\r\n <div *ngIf=\" u.state.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.state.errors.required\">State is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-wrap justify-content-between row\">\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [textMask]=\"{ mask: zipcodeMask }\"\r\n [ngClass]=\"{ 'is-invalid': u.zipcode.errors && validatePage == 4 }\" type=\"text\" class=\"form-control\"\r\n id=\"Zipcode\" placeholder=\"Zipcode\" formControlName=\"zipcode\">\r\n <div *ngIf=\" u.zipcode.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.zipcode.errors.required\">Zipcode is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input [ngClass]=\"{ 'is-invalid': u.country.errors && validatePage == 4 }\" type=\"text\"\r\n class=\"form-control\" id=\"Country\" placeholder=\"Country\" formControlName=\"country\">\r\n <div *ngIf=\" u.country.errors && validatePage ==4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.country.errors.required\">Country is\r\n required</div>\r\n </div>\r\n </div>\r\n <div class=\"form-group col-md-4 col-sm-12 mt-3 mb-2\">\r\n <input class=\"form-control block shadow-none\" type=\"text\" name=\"inputPhone\" placeholder=\"Phone Number \"\r\n id=\"inputPhone\" autocomplete=\"off\" formControlName=\"phoneNumber\" appMobileMask [maxLength]=\"300\"\r\n [ngClass]=\"{'is-invalid': ( u.phoneNumber.errors && validatePage == 4)}\">\r\n <div *ngIf=\"u.phoneNumber.errors && validatePage == 4\" class=\"invalid-feedback\">\r\n <div class=\"ms-1\" *ngIf=\"u.phoneNumber.errors.required\">\r\n Phone Number is required\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"form-group mb-2 form\">\r\n <input #uploadFile type=\"file\" accept=\"image/*\" (change)=\"uploadUserImage($event)\"\r\n class=\"upload-initial-input rounded-circle opacity-0 position-absolute\" />\r\n <input (click)=\"uploadImage1.click()\" [(ngModel)]=\"fileName\" readonly type=\"text\" class=\"form-control\"\r\n id=\"upload\" accept=\"image/*\" placeholder=\"Upload Profile Picture\">\r\n <img #uploadImage1 class=\"upload-image\" (click)=\"uploadFile.click()\" type=\"file\"\r\n src=\"assets/images/icons/upload.svg\" alt=\"Logo\">\r\n <div *ngIf=\"isImageRequired\" class=\"invalid-feedback d-block\">\r\n <div class=\"ms-1\">\r\n Please Upload Profile Image\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"userError\" class=\"invalid-feedback\">\r\n <div>\r\n {{userError}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-sm-12 pt-3 slider-tab text-center\">\r\n <img class=\"slider-view\" src=\"assets/images/icons/stepper-3.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end\">\r\n <h6>\r\n <button (click)=\"previous()\" class=\"my-2 mx-1\" class=\"btn-close back-tab back-btn btn-sm\">\r\n Back\r\n </button>\r\n &nbsp; &nbsp;\r\n <button class=\"next\" (click)=\"next(5)\" [disabled]=\"showLoader\"\r\n [config]=\"DefaultButtonSpinnerConfig\">\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\" src=\"assets/images/icons/next.svg\"\r\n alt=\"Logo\">\r\n </button>\r\n &nbsp; &nbsp;\r\n </h6>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 5\">\r\n <ul class=\"term-list ps-3\">\r\n <h5>\r\n <b>\r\n Thanks, we got the basics down!\r\n </b>\r\n </h5>\r\n <br>\r\n <b class=\"para-comma\">\r\n Account created successfully. Next step: complete your profile.\r\n <br>\r\n <br>\r\n Profile completion is mandatory to participate in rosters, programs, requests, and platform workflows.\r\n Incomplete profiles will have limited access.\r\n <br>\r\n <br>\r\n You may access your dashboard at any time, but full functionality is available only after completion.\r\n </b>\r\n </ul>\r\n <div class=\"footer col-12 col-sm-12 col-md-12 col-xl-12 row justify-content-around footer-view\">\r\n <!-- <div class=\"col-md-3 col-lg-3 col-xl-3 col-sm-12 text-center\">\r\n <img class=\"slider ml-3\" src=\"assets/images/icons/stepper-4.svg\" alt=\"Logo\">\r\n </div> -->\r\n <div class=\"col-5\"></div>\r\n <div class=\"col-md-4 col-sm-12 col-xl-4 text-end row\">\r\n <div class=\"col-md-2 col-2\">\r\n <h6 style=\"margin-right: 3rem\">\r\n </h6>\r\n </div>\r\n\r\n &nbsp; &nbsp;\r\n <div class=\"col-md-8\">\r\n <h6>\r\n <button (click)=\"dashboard()\" class=\"go-btn btn-sm\">\r\n Go To Home&nbsp;&nbsp;\r\n <img style=\"height: 20px; width: 16px;filter: brightness(0) invert(1);\"\r\n src=\"assets/images/icons/next.svg\" alt=\"Logo\">\r\n </button>\r\n </h6>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"view == 10\">\r\n <app-credentialing (back)=\"onCredentialingBack()\" [data]=\"credentialingData\"></app-credentialing>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #termsAndConditionsModel>\r\n <div class=\"modal-dialog modal-dialog-centered\">\r\n <div class=\"modal-content terms-fixed-modal\">\r\n\r\n <!-- HEADER -->\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title fw-bold title-popup\">\r\n {{ termsAndConditionTitle }}\r\n </h4>\r\n </div>\r\n\r\n <!-- SCROLLABLE CONTENT ONLY -->\r\n <div class=\"modal-body terms-scroll-area\" (scroll)=\"onTermsScroll($event)\">\r\n <ng-container *ngIf=\"termsAndConditionTitle == 'Terms and Conditions'\">\r\n <app-terms-conditions [PrivacyAndTerms]=\"privacyAndTerms\" [title]=\"title\" [branding]=\"branding\">\r\n </app-terms-conditions>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"termsAndConditionTitle != 'Terms and Conditions'\">\r\n <app-privacy-policy [PrivacyAndTerms]=\"privacyAndTerms\" [title]=\"title\" [branding]=\"branding\">\r\n </app-privacy-policy>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- FOOTER (NOT SCROLLING) -->\r\n <div>\r\n <div class=\"modal-footer text-end\" style=\"display: block;\">\r\n <!-- YOUR BUTTONS \u2014 UNCHANGED -->\r\n <button type=\"button\" class=\"btn btn-primary btn-sm px-4\"\r\n style=\"background: #d3dae6; color: #98a2b3; border: #D3DAE6 !important;\"\r\n (click)=\"decline(termsAndConditionTitle); modelRef.hide();\">\r\n Decline\r\n </button>\r\n\r\n <button type=\"button\" class=\"btn btn-primary btn-sm px-4\" style=\"color:white;background: #4077AD;\"\r\n [disabled]=\"!isAgreeEnabled\" (click)=\"agree(termsAndConditionTitle); modelRef.hide();\">\r\n Agree\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".brand-name{font-weight:700;font-size:calc(100% + 4px)}::ng-deep .backdrop{background-color:transparent!important}.filter-black{filter:brightness(.4)!important}.footer-view{margin-top:3rem;margin-left:0;margin-right:0}.footer-signature{margin-top:9rem}.slider-view{width:11rem;margin-left:1px}.container{margin-top:30px}.container .card{border-radius:1.25rem}.container .header{padding:33px 10px 0}.container .header .logo{width:15%;height:80%}.container .form-control{padding:.75rem 1rem;border-color:#a1a1a1}.container .form-control:focus{color:#000;box-shadow:none;border-color:#a1a1a1!important}.container .form-control::placeholder{font-weight:500;font-size:12px;color:#a1a1a1}.container .link{color:#4077ad}.container .link-signup{font-weight:bolder}.container .form-check-label{margin-bottom:0;padding-top:9px}.container .content-view{margin-top:10%}.container .content-description{margin-top:25%}.container .tag-content{color:#fff9e8;margin-left:9%}.container .tag-content p{color:#fff9e8}.container .form-check-input:checked{background-color:#000;border-color:#000}.container .img-tick{margin:-31px 12px 0 -35px}.container .form-check-input[type=checkbox]{border-radius:2px;border:2px solid #000000}.container .form-check-input:focus{box-shadow:none}.container input[type=checkbox]{accent-color:#000000}.term-list{padding:48px 60px 6px 0;margin-left:30px;color:\"#1f1f1fdb\"}.add-tab{padding:75px 75px 6px 1px;margin-left:50px;color:\"#1f1f1fdb\"}.add-tab-view{padding:75px 75px 6px 1px;margin-left:80px;color:\"#1f1f1fdb\"}.inspect-add{margin-top:3rem}.add-btn{font-size:16px;border-radius:5px;transition:.2s;padding:.25rem .5rem;background:#fff;border:1px solid rgba(148,147,147,.1882352941);color:#444;line-height:48px;box-shadow:0 1px 9px #98a2b3;width:9rem}.add-btn:hover{border:1px solid rgba(148,147,147,.1882352941);box-shadow:none}.agree{padding:0 0 8px 47px}.agree .form-check-input[type=checkbox]{border-radius:2px;border:2px solid #98A2B3;width:14px;height:14px;margin:5px 9px 0 -35px}.agree .form-check-input:focus{box-shadow:none}.agree .form-check-input:checked{background-color:#000;border-color:#000}.agree .invalid-feedback{font-size:10px!important;margin:0 0 0 21px}.checkmark{vertical-align:text-bottom;color:#98a2b3;font-weight:500;font-size:12px}.term-signature{padding-left:16rem;padding-right:65px;position:absolute;margin:150px 0 0 50%}.participate-tab{height:135px;width:142px}.card-design{height:147px;width:160px;padding-left:10px;margin-left:42px;background:#fff0;border:2px solid #98A2B3;box-shadow:0 0 4px #98a2b3;border-radius:27px;margin-bottom:42px}.upload{height:39px;margin-top:-4px;width:126px;font-size:12px}.participate-tab{margin-top:-25px}.slider{width:14rem;margin-left:69px}.btn-clear{background:#d3dae6;color:#98a2b3;font-size:12px;border-radius:5px;transition:.2s;padding:6px;border:none;height:auto;width:46%;line-height:28px}.btn-close{background:#f1f4fa;color:#98a2b3;font-size:17px;border-radius:5px;transition:.2s;padding:6px;border:none;height:auto;font-weight:500;width:116px;color:#737a87;line-height:28px}.view-logo{padding-top:1%;padding-bottom:4%;text-align:center}.back-btn{border-radius:45px;height:41px}.next{background:#4077ad;border-radius:30px;height:60px;width:60px;border:white}.profile-field{margin-top:-10px}.profile-field input{line-height:30px;margin:-10px 3px 3px}.load-page{padding:21px 49px 13px 34px}.sign-img{width:291px;height:95px;border-radius:8px;border:1px solid rgba(179,178,178,.33);margin-top:19px}.upload-image{height:16px;width:16px;position:absolute;margin-left:66rem;margin-top:-39px}.para-comma{font-weight:500}.go-btn{border-radius:45px;height:50px;padding:0 20px;background:#4077ad;border:1px solid #4077ad;color:#fff;line-height:28px;font-size:14px;font-weight:500}.text-label{color:#747b83;font-weight:500}.form{padding:20px;border-radius:5px}.form-control:focus{color:#000;box-shadow:none;border-color:#848484!important}.form-control::placeholder{font-weight:500;font-size:12px;color:#bec1be;padding-left:10px}.btn-primary:active{background-color:#50575e}@media screen and (min-width: 500px) and (max-width: 769px){.content-view{background:#0c1620;width:44rem;margin:31px 0 0!important;padding:28px 32px 17px 71px!important;border-radius:29px}.upload-image{margin-left:25rem!important}}@media screen and (min-width: 768px) and (max-width: 1024px){.back-btn{height:31px;width:82px;position:absolute;margin-left:-53px}.back-tab{position:absolute;margin-left:-87px;height:37px}.go-btn{width:175px;height:44px}.term-signature{padding-left:10px}.upload-image{margin-left:40rem}}@media screen and (min-width: 374px) and (max-width: 426px){.head-logo{width:216px;padding-bottom:16px}.slider{visibility:hidden}.back-btn{height:31px;width:82px;position:absolute;margin-left:73px;margin-top:23px}.go-btn{width:175px;height:44px}.upload-image{margin-left:16rem}.term-signature{margin:84% 0 7px 4%}}@media screen and (min-width: 320px) and (max-width: 426px){.footer-signature{margin-top:20rem}.login .head-logo{padding:16px 2px 0;width:38%!important;height:40%!important}.container{margin-top:5px!important}.card{padding:2px!important}.tag-content{margin:3% 0 0!important;background-color:#121b24;border-radius:13px}.img-tick{margin:3px!important}.slider{visibility:hidden}.load-page{padding:0}.head-logo{width:216px;padding-bottom:16px}.back-btn{height:26px;width:71px;position:absolute;margin-left:-17rem!important;font-size:10px;margin-top:23px}.go-btn{width:142px;height:36px;margin-right:-28px;font-size:10px}.add-tab,.add-tab-view{padding:30px 33px 2px 3px;margin-left:15px}.add-btn{width:6rem}.slider-tab{visibility:hidden}.back-tab{margin-left:-14rem;margin-top:1px;font-size:14px;height:39px}.participate-tab{height:96px;width:87px}.card-design{height:124px;width:125px;padding-left:17px;margin-left:30px}.term-signature{padding:22px 22px 13px 27px}.term-list{padding:43px 10px 10px 3px;margin-left:0;text-align:-webkit-center}}@media screen and (min-width: 320px) and (max-width: 376px){.agree{padding:0 0 8px 25px}.participate-tab{height:96px;width:87px}.card-design{height:109px;width:97px;padding-left:4px;margin-left:10px}.card-design h6{font-size:10px;padding-left:14px;font-weight:600}.sign-img{width:270px}.term-list{padding:20px 20px 6px 4px;margin-left:13px}}@media screen and (min-width: 320px) and (max-width: 350px){.upload-image{height:13px;width:11px;margin-left:10rem;margin-top:-35px}.btn-clear{width:92px}.term-signature{margin:84% 0 7px 4%}}.disabled-btn{cursor:not-allowed!important;background:#4077ad!important;color:#fff!important}.modal-dialog .modal-content{border-radius:12px}.title-popup{font-size:18px;color:#0c1620}ul.term-list-data li{padding-bottom:5px;font-size:13px;font-weight:500;line-height:21px}ol,ul,dl{margin-top:0;margin-bottom:1rem}::ng-deep .modal-content{background:#fff!important}.hidden-view{display:none}.header-container{position:relative;padding:20px}.view-logo{text-align:center}.logout-button{top:20px;right:20px;position:absolute}.logout-button button{background:none;border:none;font-size:16px;display:flex;align-items:center;cursor:pointer}.logout-button img{margin-right:5px;height:20px}.user-card{align-items:center;color:#4077ad;cursor:pointer}.user-cards-active{background:#4077ad;color:#fff}.save-btn.upload{border:1px solid #4077AD;background-color:#4077ad;color:#fff;border-radius:5px;background:#4077ad;padding:4px 10px;display:inline-flex;align-items:center;gap:6px}.save-btn.upload img{filter:brightness(0) invert(1)}.form-check.agree{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.form-check.agree .form-check-input{margin-top:4px;flex-shrink:0}.form-check.agree .form-check-label{line-height:1.4;cursor:pointer;white-space:normal}.spinner-16{width:16px;height:16px}.h6-buttons{display:flex;align-items:center;gap:8px}.form-check.agree{display:flex;align-items:flex-start;margin-bottom:14px}.form-check-input{position:absolute;opacity:0;cursor:pointer}.form-check-label{position:relative;padding-left:28px;cursor:pointer;font-size:14px;line-height:20px;color:#212529;-webkit-user-select:none;user-select:none}.form-check-label:before{content:\"\";position:absolute;left:0;top:8px;width:18px;height:18px;border:2px solid #adb5bd;border-radius:4px;background:#fff;transition:all .2s ease}.form-check-label:after{content:\"\";position:absolute;left:5px;top:10px;width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .15s ease}.form-check-input:checked+.form-check-label:before{background-color:#4077ad;border-color:#4077ad}.form-check-input:checked+.form-check-label:after{transform:rotate(45deg) scale(1)}.form-check-label:hover:before{border-color:#4077ad}.form-check-input:focus+.form-check-label:before{box-shadow:0 0 0 3px #0d6efd40}.form-check-input.is-invalid+.form-check-label:before{border-color:#dc3545}.form-check-input.is-invalid:checked+.form-check-label:before{background-color:#dc3545}.invalid-feedback{display:block;font-size:12px;margin-left:7px;margin-top:4px}::ng-deep .modal-dialog{max-width:750px}.user-cards-active{background-color:#4077ad;color:#fff;border:2px solid #4077AD}.terms-fixed-modal{width:1080px;height:700px;display:flex;flex-direction:column}.terms-scroll-area{flex:1 1 auto;overflow-y:auto;padding:16px}body.modal-open{overflow:hidden!important}.modal{z-index:1055!important}.modal-backdrop{z-index:1050!important}.modal-dialog{margin:auto;pointer-events:auto}.modal-content{position:relative;z-index:1060;background-color:#fff}\n"] }]
29596
+ }], ctorParameters: () => [{ type: i2.Router }, { type: UserDetailService }, { type: i3.FormBuilder }, { type: FileService }, { type: ProvidersService }, { type: RolesService }, { type: i7.BsModalService }, { type: ProviderContractorSubCategoryService }, { type: ProviderContractorSubCategoryService }, { type: i9.AuthService }, { type: i6.TokenService }, { type: i6.RoleContextService }, { type: undefined, decorators: [{
29398
29597
  type: Inject,
29399
29598
  args: [LIBRARY_CONFIG]
29400
29599
  }] }], propDecorators: { canvasRef: [{
@@ -29534,7 +29733,7 @@ class SignaturePadComponent {
29534
29733
  }
29535
29734
  }
29536
29735
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SignaturePadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29537
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SignaturePadComponent, isStandalone: false, selector: "ng-signature-pad", inputs: { points: "points", editable: "editable", isSubmit: "isSubmit", Title: "Title", signData: "signData", penColor: "penColor", backgroundColor: "backgroundColor", showDoneButton: "showDoneButton", doneButtonText: "doneButtonText", doneButtonClass: "doneButtonClass", showClearButton: "showClearButton", clearButtonText: "clearButtonText", clearButtonClass: "clearButtonClass", showUploadButton: "showUploadButton", uploadButtonText: "uploadButtonText", uploadButtonClass: "uploadButtonClass", format: "format", height: "height", width: "width" }, outputs: { pointsChange: "pointsChange", done: "done", upload: "upload", cleared: "cleared", signatureData: "signatureData" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, read: ElementRef }, { propertyName: "uploadImage", first: true, predicate: ["uploadImage"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"col-md-12\" *ngIf=\"!isSubmit\">\r\n <div class=\"row\">\r\n <div class=\"col-md-4 col-6\">\r\n <h3 class=\"imat-font-prox-black pb-3 h6\">{{ Title }}:</h3>\r\n </div>\r\n <!-- <div class=\"col-md-3 col-6\">\r\n <span class=\"pt-2 imat-text-yellow imat-font-prox-bold small\">PENDING </span>\r\n </div> -->\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col-md-12 col-12\">\r\n <div class=\"signature-pad\">\r\n <!---->\r\n <canvas [ngClass]=\"{ 'd-none' : signData?.publicUrl}\" [width]=\"width\" [height]=\"height\" #canvas></canvas>\r\n <img [ngClass]=\"{ 'd-none' : !signData?.publicUrl}\" [width]=\"width\" [height]=\"height\" style=\"position: relative;\"\r\n [src]=\"signData?.publicUrl\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-btn\">\r\n <div class=\"d-flex justify-content-start\">\r\n <button class=\"my-2 mx-1\" [disabled]=\"signData?.publicUrl || (currentPoints == null || currentPoints.length == 0)\"\r\n [class]=\"doneButtonClass\" *ngIf=\"showDoneButton && !isSubmit\" [hidden]=\"!editable\"\r\n (click)=\"emitPointsAndBlob()\">\r\n <i class=\"fa-solid fa-save\"></i> {{ doneButtonText }}\r\n </button>\r\n <button class=\"my-2 mx-1\" [class]=\"clearButtonClass\" *ngIf=\"showClearButton\" [hidden]=\"!editable\"\r\n (click)=\"clearPad()\">\r\n <i class=\"fa-solid fa-ban\"></i> {{ clearButtonText }}\r\n </button>\r\n <button class=\"my-2 mx-1\" [class]=\"uploadButtonClass\" *ngIf=\"showUploadButton\" [hidden]=\"!editable\"\r\n (click)=\"uploadImage.click()\">\r\n <i class=\"fa-solid fa-upload\"></i> {{ uploadButtonText }}\r\n <input #uploadImage type=\"file\" class=\"image-upload d-none\" accept=\"image/*\"\r\n (change)=\"uploadSignImage($event)\" />\r\n\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".signature-pad canvas{background:#f2f2f2}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29736
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SignaturePadComponent, isStandalone: false, selector: "ng-signature-pad", inputs: { points: "points", editable: "editable", isSubmit: "isSubmit", Title: "Title", signData: "signData", penColor: "penColor", backgroundColor: "backgroundColor", showDoneButton: "showDoneButton", doneButtonText: "doneButtonText", doneButtonClass: "doneButtonClass", showClearButton: "showClearButton", clearButtonText: "clearButtonText", clearButtonClass: "clearButtonClass", showUploadButton: "showUploadButton", uploadButtonText: "uploadButtonText", uploadButtonClass: "uploadButtonClass", format: "format", height: "height", width: "width" }, outputs: { pointsChange: "pointsChange", done: "done", upload: "upload", cleared: "cleared", signatureData: "signatureData" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, read: ElementRef }, { propertyName: "uploadImage", first: true, predicate: ["uploadImage"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"col-md-12\" *ngIf=\"!isSubmit\">\r\n <div class=\"row\">\r\n <div class=\"col-md-4 col-6\">\r\n <h3 class=\"imat-font-prox-black pb-3 h6\">{{ Title }}:</h3>\r\n </div>\r\n <!-- <div class=\"col-md-3 col-6\">\r\n <span class=\"pt-2 imat-text-yellow imat-font-prox-bold small\">PENDING </span>\r\n </div> -->\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col-md-12 col-12\">\r\n <div class=\"signature-pad\">\r\n <!---->\r\n <canvas [ngClass]=\"{ 'd-none' : signData?.publicUrl}\" [width]=\"width\" [height]=\"height\" #canvas></canvas>\r\n <img [ngClass]=\"{ 'd-none' : !signData?.publicUrl}\" [width]=\"width\" [height]=\"height\" style=\"position: relative;\"\r\n [src]=\"signData?.publicUrl\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-btn\">\r\n <div class=\"d-flex justify-content-start\">\r\n <button class=\"my-2 mx-1\" [disabled]=\"signData?.publicUrl || (currentPoints == null || currentPoints.length == 0)\"\r\n [class]=\"doneButtonClass\" *ngIf=\"showDoneButton && !isSubmit\" [hidden]=\"!editable\"\r\n (click)=\"emitPointsAndBlob()\">\r\n <i class=\"fa-solid fa-save\"></i> {{ doneButtonText }}\r\n </button>\r\n <button class=\"my-2 mx-1\" [class]=\"clearButtonClass\" *ngIf=\"showClearButton\" [hidden]=\"!editable\"\r\n (click)=\"clearPad()\">\r\n <i class=\"fa-solid fa-ban\"></i> {{ clearButtonText }}\r\n </button>\r\n <button class=\"my-2 mx-1\" [class]=\"uploadButtonClass\" *ngIf=\"showUploadButton\" [hidden]=\"!editable\"\r\n (click)=\"uploadImage.click()\">\r\n <i class=\"fa-solid fa-upload\"></i> {{ uploadButtonText }}\r\n <input #uploadImage type=\"file\" class=\"image-upload d-none\" accept=\"image/*\"\r\n (change)=\"uploadSignImage($event)\" />\r\n\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".signature-pad canvas{background:#f2f2f2}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29538
29737
  }
29539
29738
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SignaturePadComponent, decorators: [{
29540
29739
  type: Component,
@@ -29757,7 +29956,7 @@ class LoaderComponent {
29757
29956
  show = false;
29758
29957
  small = false;
29759
29958
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29760
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LoaderComponent, isStandalone: false, selector: "loader", inputs: { show: "show", small: "small" }, ngImport: i0, template: '<img src="assets/images/loader.gif" *ngIf="show && !small" style="width: 35px;"><img src="assets/images/loader.gif" *ngIf="show && small" style="width: 35px;">', isInline: true, dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29959
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LoaderComponent, isStandalone: false, selector: "loader", inputs: { show: "show", small: "small" }, ngImport: i0, template: '<img src="assets/images/loader.gif" *ngIf="show && !small" style="width: 35px;"><img src="assets/images/loader.gif" *ngIf="show && small" style="width: 35px;">', isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29761
29960
  }
29762
29961
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoaderComponent, decorators: [{
29763
29962
  type: Component,
@@ -29906,7 +30105,7 @@ const INTERNAL_COMPONENTS = [
29906
30105
  SkillsComponent,
29907
30106
  LicensesComponent,
29908
30107
  ToolsComponent,
29909
- RoleSelectionComponent,
30108
+ RoleSelectComponent,
29910
30109
  Step2CoverageComponent,
29911
30110
  WorkexperienceComponent
29912
30111
  ];
@@ -29921,7 +30120,7 @@ class InitialProcessModule {
29921
30120
  SkillsComponent,
29922
30121
  LicensesComponent,
29923
30122
  ToolsComponent,
29924
- RoleSelectionComponent,
30123
+ RoleSelectComponent,
29925
30124
  Step2CoverageComponent,
29926
30125
  WorkexperienceComponent], imports: [CommonModule,
29927
30126
  FormsModule,
@@ -30061,7 +30260,7 @@ class MustChangePasswordComponent {
30061
30260
  }
30062
30261
  }
30063
30262
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MustChangePasswordComponent, deps: [{ token: i3.FormBuilder }, { token: i9.AuthService }, { token: UserDetailService }, { token: i6.TokenService }], target: i0.ɵɵFactoryTarget.Component });
30064
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: MustChangePasswordComponent, isStandalone: true, selector: "app-must-change-password", ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"row justify-content-center align-items-center vh-100\">\r\n <div class=\"col-md-6 col-lg-5\">\r\n <div class=\"card shadow-lg border-0\">\r\n <div class=\"card-body p-4\">\r\n <div class=\"text-center mb-4\">\r\n <span class=\"logout-wrapper\" (click)=\"logout()\">\r\n <span class=\"logout-icon\"></span>\r\n <span class=\"logout-text\">Logout</span>\r\n </span>\r\n <h4 class=\"fw-bold\">Change Your Password</h4>\r\n <p class=\"text-muted small\">\r\n For security reasons, you must change your password before continuing.\r\n </p>\r\n </div>\r\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\">\r\n {{ errorMessage }}\r\n </div>\r\n <form [formGroup]=\"changePasswordForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">New Password</label>\r\n <input type=\"password\" class=\"form-control\" formControlName=\"newPassword\"\r\n [ngClass]=\"{'is-invalid': submitted && f['newPassword'].errors}\">\r\n\r\n <div *ngIf=\"submitted && f['newPassword'].errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f['newPassword'].errors['required']\">\r\n New password is required.\r\n </div>\r\n <div *ngIf=\"f['newPassword'].errors['minlength']\">\r\n Minimum 8 characters required.\r\n </div>\r\n <div *ngIf=\"f['newPassword'].errors['pattern']\">\r\n Must include uppercase, lowercase, number & symbol.\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">Confirm Password</label>\r\n <input type=\"password\" class=\"form-control\" formControlName=\"confirmPassword\"\r\n [ngClass]=\"{'is-invalid': submitted && changePasswordForm.errors?.['mismatch']}\">\r\n\r\n <div *ngIf=\"submitted && changePasswordForm.errors?.['mismatch']\" class=\"invalid-feedback\">\r\n Passwords do not match.\r\n </div>\r\n </div>\r\n <div class=\"d-grid\">\r\n <button type=\"submit\" class=\"btn btn-primary\" style=\"background: #4077AD;color: white;border-radius: 5px;\"\r\n [disabled]=\"isLoading\">\r\n <span *ngIf=\"isLoading\" class=\"spinner-border spinner-border-sm me-2\"></span>\r\n Update Password\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"text-center mt-3\">\r\n <small class=\"text-muted\">\r\n If you face issues, contact your administrator.\r\n </small>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".logout-wrapper{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:#212529bf;font-weight:500;font-size:18px}.logout-wrapper:hover{color:#4077ad}.logout-icon{width:20px;height:20px;background:url(/assets/images/icons/logoutt.svg) no-repeat center;background-size:contain}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
30263
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: MustChangePasswordComponent, isStandalone: true, selector: "app-must-change-password", ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"row justify-content-center align-items-center vh-100\">\r\n <div class=\"col-md-6 col-lg-5\">\r\n <div class=\"card shadow-lg border-0\">\r\n <div class=\"card-body p-4\">\r\n <div class=\"text-center mb-4\">\r\n <span class=\"logout-wrapper\" (click)=\"logout()\">\r\n <span class=\"logout-icon\"></span>\r\n <span class=\"logout-text\">Logout</span>\r\n </span>\r\n <h4 class=\"fw-bold\">Change Your Password</h4>\r\n <p class=\"text-muted small\">\r\n For security reasons, you must change your password before continuing.\r\n </p>\r\n </div>\r\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\">\r\n {{ errorMessage }}\r\n </div>\r\n <form [formGroup]=\"changePasswordForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">New Password</label>\r\n <input type=\"password\" class=\"form-control\" formControlName=\"newPassword\"\r\n [ngClass]=\"{'is-invalid': submitted && f['newPassword'].errors}\">\r\n\r\n <div *ngIf=\"submitted && f['newPassword'].errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f['newPassword'].errors['required']\">\r\n New password is required.\r\n </div>\r\n <div *ngIf=\"f['newPassword'].errors['minlength']\">\r\n Minimum 8 characters required.\r\n </div>\r\n <div *ngIf=\"f['newPassword'].errors['pattern']\">\r\n Must include uppercase, lowercase, number & symbol.\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">Confirm Password</label>\r\n <input type=\"password\" class=\"form-control\" formControlName=\"confirmPassword\"\r\n [ngClass]=\"{'is-invalid': submitted && changePasswordForm.errors?.['mismatch']}\">\r\n\r\n <div *ngIf=\"submitted && changePasswordForm.errors?.['mismatch']\" class=\"invalid-feedback\">\r\n Passwords do not match.\r\n </div>\r\n </div>\r\n <div class=\"d-grid\">\r\n <button type=\"submit\" class=\"btn btn-primary\" style=\"background: #4077AD;color: white;border-radius: 5px;\"\r\n [disabled]=\"isLoading\">\r\n <span *ngIf=\"isLoading\" class=\"spinner-border spinner-border-sm me-2\"></span>\r\n Update Password\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"text-center mt-3\">\r\n <small class=\"text-muted\">\r\n If you face issues, contact your administrator.\r\n </small>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".logout-wrapper{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:#212529bf;font-weight:500;font-size:18px}.logout-wrapper:hover{color:#4077ad}.logout-icon{width:20px;height:20px;background:url(/assets/images/icons/logoutt.svg) no-repeat center;background-size:contain}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
30065
30264
  }
30066
30265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MustChangePasswordComponent, decorators: [{
30067
30266
  type: Component,