PageSourceSearch

https://www.classitplus.com/profile.routes-75ML6BHS.js

js classitplus.com collected 2026-10-08 15:57:52 UTC 812,039 bytes, 18,625 lines download raw bytes

1import {
2  companyInfoResolver
3} from "./chunk-YC6QFIZ3.js";
4import {
5  AmountHelper,
6  MatStep,
7  MatStepper,
8  MatStepperModule,
9  PaymentComponentStore,
10  PurchaseAgreementComponent,
11  PurchaseCompanyInfoComponent,
12  PurchaseLicensesComponent,
13  PurchasePaymentComponent,
14  PurchaseReviewComponent,
15  PurchaseTiersComponent,
16  RenewSubscriptionStore,
17  StepFlowService,
18  phoneValidator
19} from "./chunk-QCS7B6SV.js";
20import {
21  userGuard
22} from "./chunk-WGTIY55M.js";
23import "./chunk-SCGD5JGJ.js";
24import {
25  MatTab,
26  MatTabGroup
27} from "./chunk-3TNZHB4H.js";
28import "./chunk-3ACUXQCI.js";
29import {
30  AdminManageUsersStore,
31  DataPanelComponent,
32  MatAutocomplete,
33  MatAutocompleteModule,
34  MatAutocompleteTrigger,
35  NoteClass,
36  NotesContainerComponent
37} from "./chunk-HBD33IQV.js";
38import {
39  MatRadioButton,
40  MatRadioGroup,
41  MatRadioModule
42} from "./chunk-4MEKD72B.js";
43import {
44  MatSort,
45  MatSortHeader
46} from "./chunk-GEAMK6EE.js";
47import {
48  MatPaginator,
49  MatPaginatorModule
50} from "./chunk-E3JK6XIG.js";
51import {
52  CellComponent
53} from "./chunk-PWPHMWXG.js";
54import {
55  CardComponent
56} from "./chunk-VQW6EW2G.js";
57import {
58  PaymentType,
59  PaymentTypeLabels,
60  PurchaseStore,
61  initialState
62} from "./chunk-NGDX63HW.js";
63import {
64  emailExistsValidator,
65  multipleEmailsValidator
66} from "./chunk-NLJG2U5K.js";
67import {
68  MatCell,
69  MatCellDef,
70  MatColumnDef,
71  MatHeaderCell,
72  MatHeaderCellDef,
73  MatHeaderRow,
74  MatHeaderRowDef,
75  MatRow,
76  MatRowDef,
77  MatTable,
78  MatTableDataSource
79} from "./chunk-53K76TBP.js";
80import {
81  MatCardModule
82} from "./chunk-6IPH2WKJ.js";
83import {
84  MatCheckbox,
85  MatCheckboxChange,
86  MatCheckboxModule
87} from "./chunk-Y7CHL6WV.js";
88import {
89  PageTitleComponent
90} from "./chunk-EXRA2BCX.js";
91import "./chunk-SQRZEQE5.js";
92import {
93  MatDateRangeInput,
94  MatDateRangePicker,
95  MatDatepicker,
96  MatDatepickerInput,
97  MatDatepickerModule,
98  MatDatepickerToggle,
99  MatEndDate,
100  MatNativeDateModule,
101  MatStartDate,
102  NmftaDateMaskDirective
103} from "./chunk-KKFRCPED.js";
104import {
105  PdfViewerModalComponent,
106  ProductType,
107  PurchaseService,
108  SubscriptionStore
109} from "./chunk-RJ2C32RW.js";
110import {
111  FileDownloadService
112} from "./chunk-SUN2DAVX.js";
113import {
114  COMPANY_TYPE_OPTIONS,
115  CompanyStore,
116  ReportingNetworkState,
117  UserSearchType
118} from "./chunk-NZIBK3JK.js";
119import {
120  getUserDisplayName
121} from "./chunk-LKHHYTRO.js";
122import "./chunk-346ISJSG.js";
123import "./chunk-GKL4XSYI.js";
124import {
125  CommonStore,
126  CompanyService,
127  CountryService,
128  DialogComponent,
129  Logger,
130  MatDialog,
131  MatDialogActions,
132  MatDialogContent,
133  MatDialogState,
134  ResponseStatus,
135  Role,
136  SubscriptionService,
137  UserAction,
138  UserService,
139  UserStore,
140  convertRoleToRolesEnum,
141  noWhiteSpaces,
142  restrictedExternalRoles,
143  restrictedInternalRoles,
144  specialCharactersValidator
145} from "./chunk-I5O6MS2V.js";
146import "./chunk-JNNY2YTP.js";
147import {
148  AlertComponent,
149  BreakPoint,
150  BreakpointService,
151  InputWrapperComponent,
152  MatFormField,
153  MatFormFieldModule,
154  MatInput,
155  MatInputModule,
156  MatLabel,
157  MatMenu,
158  MatMenuItem,
159  MatMenuModule,
160  MatMenuTrigger,
161  MatOption,
162  MatOptionModule,
163  MatSelect,
164  MatSelectModule,
165  MatSuffix,
166  NgxSkeletonLoaderComponent,
167  NgxSkeletonLoaderModule,
168  environment,
169  patchState,
170  rxMethod,
171  signalStore,
172  tapResponse,
173  updateState,
174  withDevtools,
175  withHooks,
176  withMethods,
177  withState
178} from "./chunk-2R66D2SU.js";
179import {
180  ActivatedRoute,
181  BidiModule,
182  ButtonComponent,
183  CommonModule,
184  CurrencyPipe,
185  DatePipe,
186  DefaultValueAccessor,
187  FormBuilder,
188  FormControl,
189  FormControlDirective,
190  FormControlName,
191  FormGroup,
192  FormGroupDirective,
193  FormsModule,
194  HttpClient,
195  Location,
196  MatIcon,
197  MatIconModule,
198  MatTooltipModule,
199  MaxLengthValidator,
200  NMFTAIconComponent,
201  NgControlStatus,
202  NgControlStatusGroup,
203  NgForm,
204  NgSwitch,
205  NgSwitchCase,
206  NumberValueAccessor,
207  ReactiveFormsModule,
208  Router,
209  TranslateModule,
210  TranslatePipe,
211  TranslateService,
212  Validators,
213  ɵNgNoValidate
214} from "./chunk-YMUBKLGP.js";
215import {
216  ChangeDetectionStrategy,
217  ChangeDetectorRef,
218  Component,
219  DOCUMENT,
220  Directive,
221  ElementRef,
222  EventEmitter,
223  HostListener,
224  Injectable,
225  InjectionToken,
226  Input,
227  NgModule,
228  NgZone,
229  Output,
230  ViewChild,
231  computed,
232  effect,
233  inject,
234  setClassMetadata,
235  signal,
236  ɵsetClassDebugInfo,
237  ɵɵProvidersFeature,
238  ɵɵadvance,
239  ɵɵattribute,
240  ɵɵclassMap,
241  ɵɵclassProp,
242  ɵɵconditional,
243  ɵɵconditionalCreate,
244  ɵɵdefineComponent,
245  ɵɵdefineDirective,
246  ɵɵdefineInjectable,
247  ɵɵdefineInjector,
248  ɵɵdefineNgModule,
249  ɵɵdirectiveInject,
250  ɵɵelement,
251  ɵɵelementContainerEnd,
252  ɵɵelementContainerStart,
253  ɵɵelementEnd,
254  ɵɵelementStart,
255  ɵɵgetCurrentView,
256  ɵɵinterpolate,
257  ɵɵinterpolate1,
258  ɵɵlistener,
259  ɵɵloadQuery,
260  ɵɵnextContext,
261  ɵɵpipe,
262  ɵɵpipeBind1,
263  ɵɵpipeBind2,
264  ɵɵpipeBind4,
265  ɵɵproperty,
266  ɵɵpureFunction0,
267  ɵɵpureFunction1,
268  ɵɵpureFunction2,
269  ɵɵpureFunction4,
270  ɵɵqueryRefresh,
271  ɵɵreference,
272  ɵɵrepeater,
273  ɵɵrepeaterCreate,
274  ɵɵrepeaterTrackByIdentity,
275  ɵɵrepeaterTrackByIndex,
276  ɵɵresetView,
277  ɵɵrestoreView,
278  ɵɵsanitizeHtml,
279  ɵɵstyleProp,
280  ɵɵtemplate,
281  ɵɵtemplateRefExtractor,
282  ɵɵtext,
283  ɵɵtextInterpolate,
284  ɵɵtextInterpolate1,
285  ɵɵtextInterpolate2,
286  ɵɵtextInterpolate3,
287  ɵɵviewQuery
288} from "./chunk-52VUJERO.js";
289import {
290  Subject,
291  __async,
292  __spreadProps,
293  __spreadValues,
294  debounceTime,
295  firstValueFrom,
296  pipe,
297  switchMap,
298  takeUntil,
299  tap
300} from "./chunk-5ZUB67RD.js";
301
302// src/app/features/profile/components/company-settings/company-settings-constants.ts
303var companyCommonField = [
304  {
305    propertyName: "COMPANY_SETTINGS.ENABLE_COMPANY_COMMON",
306    formControl: "enableCompanyCommon",
307    itemDescription: "COMPANY_SETTINGS.ENABLE_COMPANY_COMMON_DESCRIPTION",
308    toggle: true
309  },
310  {
311    propertyName: "COMPANY_SETTINGS.ENABLE_TEAM_VIEW",
312    formControl: "enableTeamsView",
313    itemDescription: "COMPANY_SETTINGS.ENABLE_TEAM_VIEW_DESCRIPTION",
314    toggle: true
315  }
316];
317var companyNotificationsField = [
318  {
319    propertyName: "COMPANY_SETTINGS.ENABLE_SUBSCRIPTION_RENEWAL_NOTIFICATIONS",
320    formControl: "subscriptionRenewal",
321    itemDescription: "COMPANY_SETTINGS.ENABLE_FOR_COMPANY_ADMIN_DESCRIPTION",
322    toggle: true
323  },
324  {
325    propertyName: "COMPANY_SETTINGS.ENABLE_OTHER_COMMUNICATION_NOTIFICATIONS",
326    formControl: "nmftaNotifications",
327    itemDescription: "COMPANY_SETTINGS.ENABLE_FOR_PRIMARY_COMPANY_ADMIN_DESCRIPTION",
328    toggle: true
329  },
330  {
331    propertyName: "COMPANY_SETTINGS.ENABLE_INACTIVE_USERS_NOTIFICATIONS",
332    formControl: "inactiveUsersNotifications",
333    itemDescription: "COMPANY_SETTINGS.ENABLE_FOR_COMPANY_ADMIN_DESCRIPTION",
334    toggle: true
335  }
336];
337
338// src/app/shared/components/organisms/user-group-selector/services/user-group-selector.service.ts
339var UserGroupSelectorService = class _UserGroupSelectorService {
340  http = inject(HttpClient);
341  userSearch(user) {
342    return this.http.post(new URL("company/CompanyUserSearch", environment.apiUrl).href, user);
343  }
344  static \u0275fac = function UserGroupSelectorService_Factory(__ngFactoryType__) {
345    return new (__ngFactoryType__ || _UserGroupSelectorService)();
346  };
347  static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _UserGroupSelectorService, factory: _UserGroupSelectorService.\u0275fac, providedIn: "root" });
348};
349(() => {
350  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(UserGroupSelectorService, [{
351    type: Injectable,
352    args: [{
353      providedIn: "root"
354    }]
355  }], null, null);
356})();
357
358// src/app/shared/components/organisms/user-group-selector/store/user-group-search.store.ts
359var initialState2 = {
360  submissionStatus: ResponseStatus.IDLE,
361  companyUsers: [],
362  pagination: {
363    page: 1,
364    pageSize: 10,
365    total: 0
366  }
367};
368var UserGroupSearchStore = signalStore({ providedIn: "root" }, withDevtools("userGroupSearch"), withState(initialState2), withMethods((store, userGroupSelectorService = inject(UserGroupSelectorService)) => ({
369  userSearch: rxMethod(pipe(tap(() => patchState(store, { submissionStatus: ResponseStatus.LOADING })), switchMap((val) => {
370    return userGroupSelectorService.userSearch(val).pipe(tapResponse({
371      next: (resp) => {
372        if (resp && resp.data) {
373          const responseCompanyUsers = resp.data.items.flat();
374          const isNewSearch = val.pageNumber === 1;
375          const currentUsersList = isNewSearch ? [] : store.companyUsers();
376          let filteredUsersList = responseCompanyUsers.filter((newUser) => !currentUsersList.some((existingUser) => existingUser.userId === newUser.userId));
377          filteredUsersList = filteredUsersList.filter((user) => !val.excludeUsers?.includes(user.userId));
378          patchState(store, {
379            submissionStatus: ResponseStatus.LOADED,
380            companyUsers: [...currentUsersList, ...filteredUsersList],
381            pagination: {
382              page: resp.data.currentPage,
383              pageSize: resp.data.totalPages,
384              total: resp.data.totalCount
385            }
386          });
387        }
388      },
389      error: (err) => {
390        console.error(err);
391      }
392    }));
393  }))),
394  clear: () => {
395    patchState(store, {
396      submissionStatus: ResponseStatus.IDLE,
397      companyUsers: [],
398      pagination: {
399        page: 1,
400        pageSize: 10,
401        total: 0
402      }
403    });
404  }
405})), withHooks({
406  onInit(store) {
407    patchState(store, {
408      submissionStatus: ResponseStatus.IDLE,
409      companyUsers: []
410    });
411  },
412  onDestroy(store) {
413    patchState(store, {
414      submissionStatus: ResponseStatus.IDLE,
415      companyUsers: []
416    });
417  }
418}));
419
420// src/app/shared/components/organisms/user-group-selector/user-group-selector.component.ts
421var _c0 = () => ({ "width": "100%", "height": "4.633rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
422var _forTrack0 = ($index, $item) => $item.userId;
423function UserGroupSelectorComponent_Conditional_2_Conditional_6_Template(rf, ctx) {
424  if (rf & 1) {
425    \u0275\u0275elementStart(0, "p");
426    \u0275\u0275text(1);
427    \u0275\u0275pipe(2, "translate");
428    \u0275\u0275elementEnd();
429  }
430  if (rf & 2) {
431    const ctx_r0 = \u0275\u0275nextContext(2);
432    \u0275\u0275advance();
433    \u0275\u0275textInterpolate2("", ctx_r0.ExternalPagination().total, " ", \u0275\u0275pipeBind1(2, 2, "Generic_Members"));
434  }
435}
436function UserGroupSelectorComponent_Conditional_2_Template(rf, ctx) {
437  if (rf & 1) {
438    \u0275\u0275elementStart(0, "div", 2)(1, "p");
439    \u0275\u0275text(2);
440    \u0275\u0275pipe(3, "translate");
441    \u0275\u0275elementStart(4, "span");
442    \u0275\u0275text(5);
443    \u0275\u0275elementEnd()();
444    \u0275\u0275conditionalCreate(6, UserGroupSelectorComponent_Conditional_2_Conditional_6_Template, 3, 4, "p");
445    \u0275\u0275elementEnd();
446  }
447  if (rf & 2) {
448    const ctx_r0 = \u0275\u0275nextContext();
449    \u0275\u0275advance(2);
450    \u0275\u0275textInterpolate1("", \u0275\u0275pipeBind1(3, 3, "Generic_Editing"), " ");
451    \u0275\u0275advance(3);
452    \u0275\u0275textInterpolate1("'", ctx_r0.title, "'");
453    \u0275\u0275advance();
454    \u0275\u0275conditional(ctx_r0.ExternalPagination && ctx_r0.ExternalPagination().total > 0 ? 6 : -1);
455  }
456}
457function UserGroupSelectorComponent_Conditional_6_Template(rf, ctx) {
458  if (rf & 1) {
459    \u0275\u0275elementStart(0, "p");
460    \u0275\u0275text(1);
461    \u0275\u0275pipe(2, "translate");
462    \u0275\u0275pipe(3, "translate");
463    \u0275\u0275elementStart(4, "strong");
464    \u0275\u0275text(5);
465    \u0275\u0275elementEnd()();
466  }
467  if (rf & 2) {
468    const ctx_r0 = \u0275\u0275nextContext();
469    \u0275\u0275advance();
470    \u0275\u0275textInterpolate3("", \u0275\u0275pipeBind1(2, 5, "Generic_SelectUpTo"), " ", ctx_r0.maxUsers, " ", \u0275\u0275pipeBind1(3, 7, "Generic_Users"), ": ");
471    \u0275\u0275advance(4);
472    \u0275\u0275textInterpolate2("", ctx_r0.ExternalUsersList().length, " / ", ctx_r0.maxUsers);
473  }
474}
475function UserGroupSelectorComponent_For_9_Template(rf, ctx) {
476  if (rf & 1) {
477    \u0275\u0275element(0, "nmfta-data-panel", 7);
478  }
479  if (rf & 2) {
480    const user_r2 = ctx.$implicit;
481    const ctx_r0 = \u0275\u0275nextContext();
482    \u0275\u0275property("icon", "person")("propertyName", ctx_r0.getUserDisplayName(user_r2))("description", user_r2.email)("actions", ctx_r0.userButtons(user_r2));
483  }
484}
485function UserGroupSelectorComponent_Case_10_Template(rf, ctx) {
486  if (rf & 1) {
487    \u0275\u0275element(0, "ngx-skeleton-loader", 8);
488  }
489  if (rf & 2) {
490    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c0));
491  }
492}
493function UserGroupSelectorComponent_Case_11_Template(rf, ctx) {
494  if (rf & 1) {
495    \u0275\u0275elementStart(0, "div", 9);
496    \u0275\u0275text(1);
497    \u0275\u0275pipe(2, "translate");
498    \u0275\u0275elementEnd();
499  }
500  if (rf & 2) {
501    \u0275\u0275advance();
502    \u0275\u0275textInterpolate1("", \u0275\u0275pipeBind1(2, 1, "Generic_NoUsersSearchFound"), ".");
503  }
504}
505function UserGroupSelectorComponent_Case_12_Conditional_0_Template(rf, ctx) {
506  if (rf & 1) {
507    \u0275\u0275element(0, "ngx-skeleton-loader", 10);
508  }
509  if (rf & 2) {
510    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c0));
511  }
512}
513function UserGroupSelectorComponent_Case_12_Conditional_1_Template(rf, ctx) {
514  if (rf & 1) {
515    const _r3 = \u0275\u0275getCurrentView();
516    \u0275\u0275elementStart(0, "nmfta-button", 12);
517    \u0275\u0275listener("buttonClick", function UserGroupSelectorComponent_Case_12_Conditional_1_Template_nmfta_button_buttonClick_0_listener() {
518      \u0275\u0275restoreView(_r3);
519      const ctx_r0 = \u0275\u0275nextContext(2);
520      return \u0275\u0275resetView(ctx_r0.loadMoreResults());
521    });
522    \u0275\u0275text(1);
523    \u0275\u0275pipe(2, "translate");
524    \u0275\u0275elementEnd();
525  }
526  if (rf & 2) {
527    \u0275\u0275property("rightIcon", "add");
528    \u0275\u0275advance();
529    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 2, "Generic_Loa
529dMoreResults"), " ");
530  }
531}
532function UserGroupSelectorComponent_Case_12_Template(rf, ctx) {
533  if (rf & 1) {
534    \u0275\u0275conditionalCreate(0, UserGroupSelectorComponent_Case_12_Conditional_0_Template, 1, 2, "ngx-skeleton-loader", 10);
535    \u0275\u0275conditionalCreate(1, UserGroupSelectorComponent_Case_12_Conditional_1_Template, 3, 4, "nmfta-button", 11);
536  }
537  if (rf & 2) {
538    const ctx_r0 = \u0275\u0275nextContext();
539    \u0275\u0275conditional(ctx_r0.loadingOnlyMoreResults ? 0 : -1);
540    \u0275\u0275advance();
541    \u0275\u0275conditional(ctx_r0.showMoreResultsButton ? 1 : -1);
542  }
543}
544function UserGroupSelectorComponent_Case_13_Conditional_0_For_1_Template(rf, ctx) {
545  if (rf & 1) {
546    \u0275\u0275element(0, "nmfta-data-panel", 7);
547  }
548  if (rf & 2) {
549    const user_r4 = ctx.$implicit;
550    const ctx_r0 = \u0275\u0275nextContext(3);
551    \u0275\u0275property("icon", "person")("propertyName", ctx_r0.getUserDisplayName(user_r4, ctx_r0.isAdmin))("description", user_r4.email)("actions", ctx_r0.userButtons(user_r4));
552  }
553}
554function UserGroupSelectorComponent_Case_13_Conditional_0_Template(rf, ctx) {
555  if (rf & 1) {
556    \u0275\u0275repeaterCreate(0, UserGroupSelectorComponent_Case_13_Conditional_0_For_1_Template, 1, 4, "nmfta-data-panel", 7, _forTrack0);
557  }
558  if (rf & 2) {
559    const ctx_r0 = \u0275\u0275nextContext(2);
560    \u0275\u0275repeater(ctx_r0.ExternalUsersList());
561  }
562}
563function UserGroupSelectorComponent_Case_13_Conditional_1_Template(rf, ctx) {
564  if (rf & 1) {
565    \u0275\u0275element(0, "ngx-skeleton-loader", 10);
566  }
567  if (rf & 2) {
568    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c0));
569  }
570}
571function UserGroupSelectorComponent_Case_13_Conditional_2_Template(rf, ctx) {
572  if (rf & 1) {
573    const _r5 = \u0275\u0275getCurrentView();
574    \u0275\u0275elementStart(0, "nmfta-button", 12);
575    \u0275\u0275listener("buttonClick", function UserGroupSelectorComponent_Case_13_Conditional_2_Template_nmfta_button_buttonClick_0_listener() {
576      \u0275\u0275restoreView(_r5);
577      const ctx_r0 = \u0275\u0275nextContext(2);
578      return \u0275\u0275resetView(ctx_r0.loadMore());
579    });
580    \u0275\u0275text(1);
581    \u0275\u0275pipe(2, "translate");
582    \u0275\u0275elementEnd();
583  }
584  if (rf & 2) {
585    \u0275\u0275property("rightIcon", "add");
586    \u0275\u0275advance();
587    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 2, "Generic_LoadMore"), " ");
588  }
589}
590function UserGroupSelectorComponent_Case_13_Template(rf, ctx) {
591  if (rf & 1) {
592    \u0275\u0275conditionalCreate(0, UserGroupSelectorComponent_Case_13_Conditional_0_Template, 2, 0);
593    \u0275\u0275conditionalCreate(1, UserGroupSelectorComponent_Case_13_Conditional_1_Template, 1, 2, "ngx-skeleton-loader", 10);
594    \u0275\u0275conditionalCreate(2, UserGroupSelectorComponent_Case_13_Conditional_2_Template, 3, 4, "nmfta-button", 11);
595  }
596  if (rf & 2) {
597    const ctx_r0 = \u0275\u0275nextContext();
598    \u0275\u0275conditional(!ctx_r0.forPrimaryAdminAdd ? 0 : -1);
599    \u0275\u0275advance();
600    \u0275\u0275conditional(ctx_r0.loadingOnlyMoreUsers ? 1 : -1);
601    \u0275\u0275advance();
602    \u0275\u0275conditional(ctx_r0.showLoadMoreButton && !ctx_r0.loadingOnlyMoreUsers ? 2 : -1);
603  }
604}
605function UserGroupSelectorComponent_Case_14_Conditional_0_Template(rf, ctx) {
606  if (rf & 1) {
607    \u0275\u0275elementStart(0, "div", 9);
608    \u0275\u0275text(1);
609    \u0275\u0275pipe(2, "translate");
610    \u0275\u0275elementEnd();
611  }
612  if (rf & 2) {
613    \u0275\u0275advance();
614    \u0275\u0275textInterpolate1("", \u0275\u0275pipeBind1(2, 1, "Generic_Empty"), ".");
615  }
616}
617function UserGroupSelectorComponent_Case_14_Template(rf, ctx) {
618  if (rf & 1) {
619    \u0275\u0275conditionalCreate(0, UserGroupSelectorComponent_Case_14_Conditional_0_Template, 3, 3, "div", 9);
620  }
621  if (rf & 2) {
622    const ctx_r0 = \u0275\u0275nextContext();
623    \u0275\u0275conditional(ctx_r0.forPrimaryAdminAdd ? 0 : -1);
624  }
625}
626var UserGroupSelectorComponent = class _UserGroupSelectorComponent {
627  title = "";
628  ExternalUsersList;
629  ExternalPagination;
630  ExternalUsersLoadingStatus;
631  companyId;
632  isAdmin = false;
633  showDelete = true;
634  maxUsers;
635  forPrimaryAdminAdd = false;
636  licensedUsersOnly = false;
637  userAction = new EventEmitter();
638  loadMoreUsers = new EventEmitter();
639  userGroupSearchStore = inject(UserGroupSearchStore);
640  _disableSearchEffect = effect(() => {
641    const users = this.ExternalUsersList();
642    if (this.maxUsers) {
643      const hasReachedLimit = users.length >= this.maxUsers;
644      if (hasReachedLimit) {
645        this.searchUserControl.disable({ emitEvent: false });
646      } else {
647        this.searchUserControl.enable({ emitEvent: false });
648      }
649    }
650  }, ...ngDevMode ? [{ debugName: "_disableSearchEffect" }] : []);
651  searchUserControl = new FormControl("");
652  pageSize = 10;
653  loadingOnlyMoreUsers = false;
654  loadingOnlyMoreResults = false;
655  getUserDisplayName = getUserDisplayName;
656  /**
657   * Method that returns the view state of the component,
658   * for each loading state, it returns a string that will be used
659   * to show/hide elements using the @switch case.
660   */
661  viewState = computed(() => {
662    const searchLoadingStatus = this.userGroupSearchStore.submissionStatus();
663    const externalUsersLoadingStatus = this.ExternalUsersLoadingStatus();
664    if (externalUsersLoadingStatus === ResponseStatus.LOADING) {
665      return this.loadingOnlyMoreUsers ? "external-users-list" : "loading-all";
666    }
667    if (searchLoadingStatus === ResponseStatus.LOADING) {
668      return this.loadingOnlyMoreResults ? "search-results" : "loading-all";
669    }
670    if (searchLoadingStatus === ResponseStatus.LOADED) {
671      this.loadingOnlyMoreResults = false;
672      if (this.userGroupSearchStore.companyUsers().length > 0) {
673        return "search-results";
674      } else {
675        return "search-empty";
676      }
677    }
678    if (externalUsersLoadingStatus === ResponseStatus.LOADED && this.ExternalUsersList().length > 0) {
679      this.loadingOnlyMoreUsers = false;
680      return "external-users-list";
681    }
682    return "no-users";
683  }, ...ngDevMode ? [{ debugName: "viewState" }] : []);
684  get showLoadMoreButton() {
685    if (this.ExternalPagination !== void 0) {
686      const { page, pageSize } = this.ExternalPagination();
687      return page < pageSize;
688    }
689    return false;
690  }
691  get showMoreResultsButton() {
692    const { page, pageSize } = this.userGroupSearchStore.pagination();
693    return page < pageSize;
694  }
695  ngOnInit() {
696    this.userGroupSearchStore.clear();
697    this.searchUserControl.valueChanges.pipe(debounceTime(300)).subscribe((val) => {
698      const searchTerm = (val || "").trim();
699      if (searchTerm === "") {
700        this.userGroupSearchStore.clear();
701        return;
702      }
703      this.userGroupSearchStore.userSearch({
704        companyId: this.companyId,
705        licensedUsersOnly: this.licensedUsersOnly,
706        firstName: searchTerm,
707        lastName: searchTerm,
708        email: searchTerm,
709        tableSearch: false,
710        pageNumber: 1,
711        pageSize: 10,
712        userSearchType: UserSearchType.COMPANY,
713        excludeUsers: this.forPrimaryAdminAdd ? this.ExternalUsersList().map((u) => u.userId) : []
714      });
715    });
716  }
717  userButtons(user) {
718    const buttons = [];
719    const addButton = {
720      id: "1",
721      label: "Generic_Add_User",
722      styleType: "text",
723      blackText: true,
724      iconName: "add",
725      onClick: () => {
726        this.onUserAction(user, "add");
727      }
728    };
729    const removeButton = {
730      id: "2",
731      label: "Generic_Remove_User",
732      styleType: "text",
733      blackText: true,
734      iconName: "delete",
735      onClick: () => {
736        this.onUserAction(user, "remove");
737      }
738    };
739    if (this.isUserInGroup(user)) {
740      if (this.showDelete) {
741        buttons.push(removeButton);
742      }
743    } else {
744      buttons.push(addButton);
745    }
746    return buttons;
747  }
748  onUserAction(user, action) {
749    this.userAction.emit({ user, action });
750    this.searchUserControl.setValue("");
751    this.userGroupSearchStore.clear();
752  }
753  isUserInGroup(user) {
754    return this.ExternalUsersList().some((u) => u.userId === user.userId);
755  }
756  loadMore() {
757    this.loadingOnlyMoreUsers = true;
758    this.loadMoreUsers.emit();
759  }
760  loadMoreResults() {
761    this.loadingOnlyMoreResults = true;
762    const searchTerm = this.searchUserControl.value?.trim() || "";
763    this.userGroupSearchStore.userSearch({
764      companyId: this.companyId,
765      firstName: searchTerm,
766      lastName: searchTerm,
767      licensedUsersOnly: this.licensedUsersOnly,
768      email: searchTerm,
769      tableSearch: false,
770      pageNumber: this.userGroupSearchStore.pagination().page + 1,
771      pageSize: 10,
772      userSearchType: UserSearchType.COMPANY
773    });
774  }
775  static \u0275fac = function UserGroupSelectorComponent_Factory(__ngFactoryType__) {
776    return new (__ngFactoryType__ || _UserGroupSelectorComponent)();
777  };
778  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _UserGroupSelectorComponent, selectors: [["nmfta-user-group-selector"]], inputs: { title: "title", ExternalUsersList: "ExternalUsersList", ExternalPagination: "ExternalPagination", ExternalUsersLoadingStatus: "ExternalUsersLoadingStatus", companyId: "companyId", isAdmin: "isAdmin", showDelete: "showDelete", maxUsers: "maxUsers", forPrimaryAdminAdd: "forPrimaryAdminAdd", licensedUsersOnly: "licensedUsersOnly" }, outputs: { userAction: "userAction", loadMoreUsers: "loadMoreUsers" }, decls: 15, vars: 4, consts: [[1, "edit-group-grid"], [1, "edit-group-header"], [1, "edit-group-title"], [1, "example-form"], ["label", "Search for Company Users"], ["type", "text", "placeholder", "Search User", 3, "formControl"], [1, "edit-group-body"], [3, "icon", "propertyName", "description", "actions"], ["count", "3", 3, "theme"], [1, "no-results-text"], ["count", "1", 3, "theme"], ["styleType", "text", 3, "rightIcon"], ["styleType", "text", 3, "buttonClick", "rightIcon"]], template: function UserGroupSelectorComponent_Template(rf, ctx) {
779    if (rf & 1) {
780      \u0275\u0275elementStart(0, "div", 0)(1, "div", 1);
781      \u0275\u0275conditionalCreate(2, UserGroupSelectorComponent_Conditional_2_Template, 7, 5, "div", 2);
782      \u0275\u0275elementStart(3, "form", 3)(4, "nmfta-input-wrapper", 4);
783      \u0275\u0275element(5, "input", 5);
784      \u0275\u0275elementEnd()();
785      \u0275\u0275conditionalCreate(6, UserGroupSelectorComponent_Conditional_6_Template, 6, 9, "p");
786      \u0275\u0275elementEnd();
787      \u0275\u0275elementStart(7, "div", 6);
788      \u0275\u0275repeaterCreate(8, UserGroupSelectorComponent_For_9_Template, 1, 4, "nmfta-data-panel", 7, _forTrack0);
789      \u0275\u0275conditionalCreate(10, UserGroupSelectorComponent_Case_10_Template, 1, 2, "ngx-skeleton-loader", 8)(11, UserGroupSelectorComponent_Case_11_Template, 3, 3, "div", 9)(12, UserGroupSelectorComponent_Case_12_Template, 2, 2)(13, UserGroupSelectorComponent_Case_13_Template, 3, 3)(14, UserGroupSelectorComponent_Case_14_Template, 1, 1);
790      \u0275\u0275elementEnd()();
791    }
792    if (rf & 2) {
793      let tmp_4_0;
794      \u0275\u0275advance(2);
795      \u0275\u0275conditional(ctx.title ? 2 : -1);
796      \u0275\u0275advance(3);
797      \u0275\u0275property("formControl", ctx.searchUserControl);
798      \u0275\u0275advance();
799      \u0275\u0275conditional(ctx.maxUsers && ctx.ExternalUsersList() && ctx.ExternalUsersList().length > 0 ? 6 : -1);
800      \u0275\u0275advance(2);
801      \u0275\u0275repeater(ctx.userGroupSearchStore.companyUsers());
802      \u0275\u0275advance(2);
803      \u0275\u0275conditional((tmp_4_0 = ctx.viewState()) === "loading-all" ? 10 : tmp_4_
8030 === "search-empty" ? 11 : tmp_4_0 === "search-results" ? 12 : tmp_4_0 === "external-users-list" ? 13 : 14);
804    }
805  }, dependencies: [
806    InputWrapperComponent,
807    DataPanelComponent,
808    ReactiveFormsModule,
809    \u0275NgNoValidate,
810    DefaultValueAccessor,
811    NgControlStatus,
812    NgControlStatusGroup,
813    FormControlDirective,
814    ButtonComponent,
815    FormsModule,
816    NgForm,
817    NgxSkeletonLoaderModule,
818    NgxSkeletonLoaderComponent,
819    TranslateModule,
820    TranslatePipe
821  ], styles: ["\n\n[_nghost-%COMP%] {\n  height: 100%;\n}\n[_nghost-%COMP%]   .no-results-text[_ngcontent-%COMP%] {\n  width: 100%;\n  text-align: center;\n}\n[_nghost-%COMP%]   .edit-group-grid[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n[_nghost-%COMP%]   .edit-group-grid[_ngcontent-%COMP%]   .edit-group-header[_ngcontent-%COMP%] {\n  padding: 12px 24px 24px;\n  border-bottom: 1px solid #E8E8E8;\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  grid-row: 1;\n  font-size: 16px;\n  font-weight: 500;\n}\n[_nghost-%COMP%]   .edit-group-grid[_ngcontent-%COMP%]   .edit-group-header[_ngcontent-%COMP%]   .edit-group-title[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n}\n[_nghost-%COMP%]   .edit-group-grid[_ngcontent-%COMP%]   .edit-group-header[_ngcontent-%COMP%]   span[_ngcontent-%COMP%] {\n  color: var(--color-accent);\n}\n[_nghost-%COMP%]   .edit-group-grid[_ngcontent-%COMP%]   .edit-group-body[_ngcontent-%COMP%] {\n  grid-row: 2;\n  overflow-y: auto;\n  padding: 24px;\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  text-align: center;\n}\n/*# sourceMappingURL=user-group-selector.component-H2KB2XGS.css.map */"] });
822};
823(() => {
824  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(UserGroupSelectorComponent, [{
825    type: Component,
826    args: [{ selector: "nmfta-user-group-selector", imports: [
827      InputWrapperComponent,
828      DataPanelComponent,
829      ReactiveFormsModule,
830      ButtonComponent,
831      FormsModule,
832      NgxSkeletonLoaderModule,
833      TranslateModule
834    ], template: `<div class="edit-group-grid">
835  <div class="edit-group-header">
836    @if (title) {
837      <div class="edit-group-title">
838        <p>{{ 'Generic_Editing' | translate }} <span>'{{ title }}'</span></p>
839        @if (ExternalPagination && ExternalPagination().total > 0) {
840          <p>{{ ExternalPagination().total }} {{ 'Generic_Members' | translate }}</p>
841        }
842      </div>
843    }
844    <form class="example-form">
845      <nmfta-input-wrapper label="Search for Company Users">
846        <input type="text"
847               placeholder="Search User"
848               [formControl]="searchUserControl">
849      </nmfta-input-wrapper>
850    </form>
851    @if (maxUsers && ExternalUsersList() && ExternalUsersList().length > 0) {
852      <p>{{ 'Generic_SelectUpTo' | translate }} {{ maxUsers }} {{ 'Generic_Users' | translate }}: <strong>{{ ExternalUsersList().length }} / {{ maxUsers }}</strong></p>
853    }
854  </div>
855
856  <div class="edit-group-body">
857    @for (user of userGroupSearchStore.companyUsers(); track user.userId) {
858      <nmfta-data-panel
859        [icon]="'person'"
860        [propertyName]="getUserDisplayName(user)"
861        [description]="user.email!"
862        [actions]="userButtons(user)">
863      </nmfta-data-panel>
864    }
865    <!-- TODO: Unify User lists, Loaders and Buttons -->
866    @switch (viewState()) {
867      @case ('loading-all') {
868        <ngx-skeleton-loader
869          count="3"
870          [theme]="
871            {
872              'width': '100%',
873              'height': '4.633rem',
874              'border-radius': '0.5rem',
875              'margin-bottom': '0.3rem'
876            }"
877        >
878        </ngx-skeleton-loader>
879      }
880      @case ('search-empty') {
881        <div class="no-results-text">{{ 'Generic_NoUsersSearchFound' | translate }}.</div>
882      }
883      @case ('search-results') {
884
885        @if (loadingOnlyMoreResults) {
886          <ngx-skeleton-loader
887            count="1"
888            [theme]="
889            {
890              'width': '100%',
891              'height': '4.633rem',
892              'border-radius': '0.5rem',
893              'margin-bottom': '0.3rem'
894            }"
895          >
896          </ngx-skeleton-loader>
897        }
898        @if (showMoreResultsButton) {
899          <nmfta-button (buttonClick)="loadMoreResults()" styleType="text" [rightIcon]="'add'">
900            {{ 'Generic_LoadMoreResults' | translate }}
901          </nmfta-button>
902        }
903      }
904      @case ('external-users-list') {
905        @if(!forPrimaryAdminAdd) {
906          @for (user of ExternalUsersList(); track user.userId) {
907            <nmfta-data-panel
908              [icon]="'person'"
909              [propertyName]="getUserDisplayName(user, isAdmin)"
910              [description]="user.email!"
911              [actions]="userButtons(user)">
912            </nmfta-data-panel>
913          }
914        }
915        @if (loadingOnlyMoreUsers) {
916          <ngx-skeleton-loader
917            count="1"
918            [theme]="
919            {
920              'width': '100%',
921              'height': '4.633rem',
922              'border-radius': '0.5rem',
923              'margin-bottom': '0.3rem'
924            }"
925          >
926          </ngx-skeleton-loader>
927        }
928        @if (showLoadMoreButton && !loadingOnlyMoreUsers) {
929          <nmfta-button (buttonClick)="loadMore()" styleType="text" [rightIcon]="'add'">
930            {{ 'Generic_LoadMore' | translate }}
931          </nmfta-button>
932        }
933      }
934      @default {
935        @if(forPrimaryAdminAdd) {
936          <div class="no-results-text">{{ 'Generic_Empty' | translate }}.</div>
937        }
938      }
939    }
940  </div>
941</div>
942`, styles: ["/* src/app/shared/components/organisms/user-group-selector/user-group-selector.component.scss */\n:host {\n  height: 100%;\n}\n:host .no-results-text {\n  width: 100%;\n  text-align: center;\n}\n:host .edit-group-grid {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n:host .edit-group-grid .edit-group-header {\n  padding: 12px 24px 24px;\n  border-bottom: 1px solid #E8E8E8;\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  grid-row: 1;\n  font-size: 16px;\n  font-weight: 500;\n}\n:host .edit-group-grid .edit-group-header .edit-group-title {\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n}\n:host .edit-group-grid .edit-group-header span {\n  color: var(--color-accent);\n}\n:host .edit-group-grid .edit-group-body {\n  grid-row: 2;\n  overflow-y: auto;\n  padding: 24px;\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  text-align: center;\n}\n/*# sourceMappingURL=user-group-selector.component-H2KB2XGS.css.map */\n"] }]
943  }], null, { title: [{
944    type: Input
945  }], ExternalUsersList: [{
946    type: Input
947  }], ExternalPagination: [{
948    type: Input
949  }], ExternalUsersLoadingStatus: [{
950    type: Input
951  }], companyId: [{
952    type: Input
953  }], isAdmin: [{
954    type: Input
955  }], showDelete: [{
956    type: Input
957  }], maxUsers: [{
958    type: Input
959  }], forPrimaryAdminAdd: [{
960    type: Input
961  }], licensedUsersOnly: [{
962    type: Input
963  }], userAction: [{
964    type: Output
965  }], loadMoreUsers: [{
966    type: Output
967  }] });
968})();
969(() => {
970  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(UserGroupSelectorComponent, { className: "UserGroupSelectorComponent", filePath: "src/app/shared/components/organisms/user-group-selector/user-group-selector.component.ts", lineNumber: 31 });
971})();
972
973// src/app/shared/components/organisms/user-selector-modal-container/user-selector-modal-container.component.ts
974var _forTrack02 = ($index, $item) => $item.userId;
975function UserSelectorModalContainerComponent_For_7_Template(rf, ctx) {
976  if (rf & 1) {
977    const _r1 = \u0275\u0275getCurrentView();
978    \u0275\u0275elementStart(0, "nmfta-data-panel", 7);
979    \u0275\u0275listener("userAction", function UserSelectorModalContainerComponent_For_7_Template_nmfta_data_panel_userAction_0_listener($event) {
980      \u0275\u0275restoreView(_r1);
981      const ctx_r1 = \u0275\u0275nextContext();
982      return \u0275\u0275resetView(ctx_r1.onCheckBoxChange($event));
983    });
984    \u0275\u0275elementEnd();
985  }
986  if (rf & 2) {
987    const admin_r3 = ctx.$implicit;
988    const ctx_r1 = \u0275\u0275nextContext();
989    \u0275\u0275property("checkbox", true)("disable", ctx_r1.disableSelection(admin_r3))("propertyName", ctx_r1.getUserDisplayName(admin_r3))("description", admin_r3.email);
990  }
991}
992var UserSelectorModalContainerComponent = class _UserSelectorModalContainerComponent {
993  data;
994  isLoading = false;
995  closeModal = new EventEmitter();
996  selectedCompanyUsers = new EventEmitter();
997  hasSelectedUsers = false;
998  selectedCompanyAdmins = [];
999  updateData(loadingComplete) {
1000    this.isLoading = !loadingComplete;
1001    this.closeModal.emit(loadingComplete);
1002  }
1003  onCheckBoxChange($event) {
1004    const user = this.data.companyAdmins.find((admin) => admin.email === $event.data);
1005    if ($event.action.checked) {
1006      this.selectedCompanyAdmins.push({
1007        firstName: user?.firstName,
1008        lastName: user?.lastName,
1009        email: user?.email
1010      });
1011    } else {
1012      this.selectedCompanyAdmins = this.selectedCompanyAdmins.filter((admin) => admin.email !== user?.email);
1013    }
1014    if (this.data.multiSelect) {
1015      this.hasSelectedUsers = this.selectedCompanyAdmins.length > 0;
1016    } else {
1017      this.hasSelectedUsers = this.selectedCompanyAdmins.length === 1;
1018    }
1019    this.disableSelection(user);
1020  }
1021  selectUsers() {
1022    this.isLoading = true;
1023    this.selectedCompanyUsers.emit(this.selectedCompanyAdmins);
1024  }
1025  getUserDisplayName(admin) {
1026    return `${admin.firstName} ${admin.lastName}`;
1027  }
1028  disableSelection(admin) {
1029    if (this.data.multiSelect)
1030      return false;
1031    return this.selectedCompanyAdmins.length === 1 && !this.selectedCompanyAdmins.find((user) => user.email === admin.email);
1032  }
1033  static \u0275fac = function UserSelectorModalContainerComponent_Factory(__ngFactoryType__) {
1034    return new (__ngFactoryType__ || _UserSelectorModalContainerComponent)();
1035  };
1036  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _UserSelectorModalContainerComponent, selectors: [["nmfta-user-selector-modal-container"]], inputs: { data: "data", isLoading: "isLoading" }, outputs: { closeModal: "closeModal", selectedCompanyUsers: "selectedCompanyUsers" }, decls: 15, vars: 15, consts: [[1, "user-select-modal-container", "d-flex", "flex-column"], [1, "header", "p-4"], [1, "content", "p-4"], [3, "checkbox", "disable", "propertyName", "description"], [1, "p-4", "d-flex", "gap-2", "justify-content-end", "actions"], [3, "buttonClick", "styleType", "color"], [3, "buttonClick", "styleType", "color", "disabled", "isLoading"], [3, "userAction", "checkbox", "disable", "propertyName", "description"]], template: function UserSelectorModalContainerComponent_Template(rf, ctx) {
1037    if (rf & 1) {
1038      \u0275\u0275elementStart(0, "div", 0)(1, "div", 1)(2, "nmfta-alert");
1039      \u0275\u0275text(3);
1040      \u0275\u0275pipe(4, "translate");
1041      \u0275\u0275elementEnd()();
1042      \u0275\u0275elementStart(5, "div", 2);
1043      \u0275\u0275repeaterCreate(6, UserSelectorModalContainerComponent_For_7_Template, 1, 4, "nmfta-data-panel", 3, _forTrack02);
1044      \u0275\u0275elementEnd();
1045      \u0275\u0275elementStart(8, "div", 4)(9, "nmfta-button", 5);
1046      \u0275\u0275listener("buttonClick", function UserSelectorModalContainerComponent_Template_nmfta_button_buttonClick_9_listener() {
1047        return ctx.closeModal.emit(false);
1048      });
1049      \u0275\u0275text(10);
1050      \u0275\u0275pipe(11, "translate");
1051      \u0275\u0275elementEnd();
1052      \u0275\u0275elementStart(12, "nmfta-button", 6);
1053      \u0275\u0275listener("buttonClick", function UserSelectorModalContainerComponent_Template_nmfta_button_buttonClick_12_listener() {
1054        return ctx.selectUsers();
1055      });
1056      \u0275\u0275text(13);
1057      \u0275\u0275pipe(14, "translate");
1058      \u0275\u0275elementEnd()()();
1059    }
1060    if (rf & 2) {
1061      \u0275\u0275advance(3);
1062      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(4, 9, ctx.data.alertMessage));
1063      \u0275\u0275advance(3);
1064      \u0275\u0275repeater(ctx.data.companyAdmins);
1065      \u0275\u0275advance(3);
1066      \u0275\u0275property("styleType", "outlined")("color", "accent");
1067      \u0275\u0275advance();
1068      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(11, 11, "Generic_Cancel"), " ");
1069      \u0275\u0275advance(2);
1070      \u0275\u0275property("styleType", "contained")("color", "accent")("disabled", !ctx.hasSelectedUsers)("isLoading", ctx.isLoading);
1071      \u0275\u0275advance();
1072      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(14, 13, "Generic_Select"), " ");
1073    }
1074  }, dependencies: [
1075    AlertComponent,
1076    ButtonComponent,
1077    BidiModule,
1078    DataPanelComponent,
1079    TranslatePipe
1080  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n[_nghost-%COMP%]   .user-select-modal-container[_ngcontent-%COMP%] {\n  height: 100%;\n  min-height: 0;\n}\n[_nghost-%COMP%]   .user-select-modal-container[_ngcontent-%COMP%]   .header[_ngcontent-%COMP%] {\n  display: flex;\n  flex-flow: column nowrap;\n  gap: 0.75rem;\n  border-bottom: 0.063rem solid #e8e8e8;\n}\n[_nghost-%COMP%]   .user-select-modal-container[_ngcontent-%COMP%]   .content[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  min-height: 6.25rem;\n  height: 100%;
1080\n  overflow-y: scroll;\n}\n[_nghost-%COMP%]   .user-select-modal-container[_ngcontent-%COMP%]   .actions[_ngcontent-%COMP%] {\n  border-top: 0.063rem solid #e8e8e8;\n}\n[_nghost-%COMP%]     .mat-mdc-card-header {\n  display: none !important;\n}\n[_nghost-%COMP%]     .mat-mdc-card {\n  border-top: none !important;\n  border-radius: 0 !important;\n  box-shadow: none !important;\n}\n[_nghost-%COMP%]     .mdc-form-field {\n  width: 100%;\n}\n[_nghost-%COMP%]     nmfta-input-wrapper {\n  width: 100%;\n}\n[_nghost-%COMP%]     .mdc-label {\n  display: flex;\n  height: 4.25rem;\n  min-height: 4.25rem;\n  padding: 0.75rem;\n  align-items: center;\n  gap: 0.75rem;\n  flex: 1 0 0;\n  width: 100%;\n  border-radius: 0.5rem;\n  border: 1px solid #f2f2f2;\n  background: #f8f8f8;\n  margin-left: 0.75rem;\n}\n/*# sourceMappingURL=user-selector-modal-container.component-6FFKFD77.css.map */"] });
1081};
1082(() => {
1083  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(UserSelectorModalContainerComponent, [{
1084    type: Component,
1085    args: [{ selector: "nmfta-user-selector-modal-container", imports: [
1086      TranslatePipe,
1087      AlertComponent,
1088      ButtonComponent,
1089      BidiModule,
1090      DataPanelComponent
1091    ], template: `<div class="user-select-modal-container d-flex flex-column">
1092  <div class="header p-4">
1093    <nmfta-alert> {{ data.alertMessage | translate }}</nmfta-alert>
1094  </div>
1095
1096  <div class="content p-4">
1097    @for (admin of data.companyAdmins; track admin.userId) {
1098      <nmfta-data-panel
1099        [checkbox]="true"
1100        [disable]="disableSelection(admin)"
1101        [propertyName]="getUserDisplayName(admin)"
1102        [description]="admin.email!"
1103        (userAction)="onCheckBoxChange($event)">
1104      </nmfta-data-panel>
1105    }
1106  </div>
1107
1108  <div class="p-4 d-flex gap-2 justify-content-end actions">
1109    <nmfta-button
1110      [styleType]="'outlined'"
1111      [color]="'accent'"
1112      (buttonClick)="closeModal.emit(false)">
1113      {{ 'Generic_Cancel' | translate }}
1114    </nmfta-button>
1115    <nmfta-button
1116      [styleType]="'contained'"
1117      [color]="'accent'"
1118      [disabled]="!hasSelectedUsers"
1119      [isLoading]="isLoading"
1120      (buttonClick)="selectUsers()">
1121      {{ 'Generic_Select' | translate }}
1122    </nmfta-button>
1123  </div>
1124</div>
1125`, styles: ["/* src/app/shared/components/organisms/user-selector-modal-container/user-selector-modal-container.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n:host .user-select-modal-container {\n  height: 100%;\n  min-height: 0;\n}\n:host .user-select-modal-container .header {\n  display: flex;\n  flex-flow: column nowrap;\n  gap: 0.75rem;\n  border-bottom: 0.063rem solid #e8e8e8;\n}\n:host .user-select-modal-container .content {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  min-height: 6.25rem;\n  height: 100%;\n  overflow-y: scroll;\n}\n:host .user-select-modal-container .actions {\n  border-top: 0.063rem solid #e8e8e8;\n}\n:host ::ng-deep .mat-mdc-card-header {\n  display: none !important;\n}\n:host ::ng-deep .mat-mdc-card {\n  border-top: none !important;\n  border-radius: 0 !important;\n  box-shadow: none !important;\n}\n:host ::ng-deep .mdc-form-field {\n  width: 100%;\n}\n:host ::ng-deep nmfta-input-wrapper {\n  width: 100%;\n}\n:host ::ng-deep .mdc-label {\n  display: flex;\n  height: 4.25rem;\n  min-height: 4.25rem;\n  padding: 0.75rem;\n  align-items: center;\n  gap: 0.75rem;\n  flex: 1 0 0;\n  width: 100%;\n  border-radius: 0.5rem;\n  border: 1px solid #f2f2f2;\n  background: #f8f8f8;\n  margin-left: 0.75rem;\n}\n/*# sourceMappingURL=user-selector-modal-container.component-6FFKFD77.css.map */\n"] }]
1126  }], null, { data: [{
1127    type: Input
1128  }], isLoading: [{
1129    type: Input
1130  }], closeModal: [{
1131    type: Output
1132  }], selectedCompanyUsers: [{
1133    type: Output
1134  }] });
1135})();
1136(() => {
1137  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(UserSelectorModalContainerComponent, { className: "UserSelectorModalContainerComponent", filePath: "src/app/shared/components/organisms/user-selector-modal-container/user-selector-modal-container.component.ts", lineNumber: 22 });
1138})();
1139
1140// src/app/features/profile/components/company-settings/company-settings.component.ts
1141var _c02 = ["editCompanyDetails"];
1142var _c1 = ["manageTeams"];
1143var _c2 = ["paymentDialog"];
1144var _c3 = ["transactionsDialog"];
1145var _c4 = ["manageAccountManager"];
1146var _c5 = ["addCompanyAdmins"];
1147var _c6 = ["manageCompanyAdmins"];
1148var _c7 = ["removingLoggedInUserFromCompanySettings"];
1149var _c8 = ["deletingTeam"];
1150var _c9 = ["emailReceipt"];
1151var _c10 = ["unableToUpdateSynonyms"];
1152var _c11 = () => ({ width: "100%", height: "4.633rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
1153var _c12 = () => ({ width: "100%", height: "8.383rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
1154var _c13 = () => ({ width: "100%", height: "4.383rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
1155var _c14 = () => ({ width: "100%", height: "5.383rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
1156var _c15 = () => ({ width: "100%", height: "5.413rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
1157var _c16 = () => [];
1158var _c17 = (a0, a1, a2, a3) => ({ firstName: a0, lastName: a1, email: a2, today: a3 });
1159var _forTrack03 = ($index, $item) => $item.propertyName;
1160var _forTrack1 = ($index, $item) => $item.teamName;
1161var _forTrack2 = ($index, $item) => $item.userId;
1162var _forTrack3 = ($index, $item) => $item.value;
1163function CompanySettingsComponent_Conditional_5_Template(rf, ctx) {
1164  if (rf & 1) {
1165    \u0275\u0275element(0, "ngx-skeleton-loader", 15);
1166  }
1167  if (rf & 2) {
1168    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c11));
1169  }
1170}
1171function CompanySettingsComponent_Conditional_6_For_1_Template(rf, ctx) {
1172  if (rf & 1) {
1173    \u0275\u0275element(0, "nmfta-data-panel", 26);
1174  }
1175  if (rf & 2) {
1176    const field_r1 = ctx.$implicit;
1177    const ctx_r1 = \u0275\u0275nextContext(2);
1178    \u0275\u0275property("propertyName", field_r1.propertyName)("propertyValue", ctx_r1.getDataPanelValue(field_r1.propertyName, field_r1.propertyValue))("control", ctx_r1.companyDetailsForm.get(field_r1.controlName));
1179  }
1180}
1181function CompanySettingsComponent_Conditional_6_Template(rf, ctx) {
1182  if (rf & 1) {
1183    \u0275\u0275repeaterCreate(0, CompanySettingsComponent_Conditional_6_For_1_Template, 1, 3, "nmfta-data-panel", 26, _forTrack03);
1184  }
1185  if (rf & 2) {
1186    const ctx_r1 = \u0275\u0275nextContext();
1187    \u0275\u0275repeater(ctx_r1.companyDataFields$());
1188  }
1189}
1190function CompanySettingsComponent_Conditional_9_Template(rf, ctx) {
1191  if (rf & 1) {
1192    \u0275\u0275element(0, "ngx-skeleton-loader", 17);
1193  }
1194  if (rf & 2) {
1195    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c12));
1196  }
1197}
1198function CompanySettingsComponent_Conditional_10_For_2_Template(rf, ctx) {
1199  if (rf & 1) {
1200    \u0275\u0275element(0, "nmfta-data-panel", 27);
1201    \u0275\u0275pipe(1, "translate");
1202    \u0275\u0275pipe(2, "translate");
1203  }
1204  if (rf & 2) {
1205    let tmp_23_0;
1206    const field_r3 = ctx.$implicit;
1207    const ctx_r1 = \u0275\u0275nextContext(2);
1208    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(1, 5, field_r3.propertyName))("propertyValue", (tmp_23_0 = ctx_r1.companySettingsForm.get(field_r3.formControl)) == null ? null : tmp_23_0.value)("fullLineDescription", \u0275\u0275pipeBind1(2, 7, field_r3.itemDescription))("isToggle", field_r3.toggle)("control", ctx_r1.companySettingsForm.get(field_r3.formControl));
1209  }
1210}
1211function CompanySettingsComponent_Conditional_10_Template(rf, ctx) {
1212  if (rf & 1) {
1213    \u0275\u0275elementStart(0, "form", 18);
1214    \u0275\u0275repeaterCreate(1, CompanySettingsComponent_Conditional_10_For_2_Template, 3, 9, "nmfta-data-panel", 27, \u0275\u0275repeaterTrackByIdentity);
1215    \u0275\u0275elementEnd();
1216  }
1217  if (rf & 2) {
1218    const ctx_r1 = \u0275\u0275nextContext();
1219    \u0275\u0275property("formGroup", ctx_r1.companySettingsForm);
1220    \u0275\u0275advance();
1221    \u0275\u0275repeater(ctx_r1.companyCommonField);
1222  }
1223}
1224function CompanySettingsComponent_Conditional_11_Conditional_2_Template(rf, ctx) {
1225  if (rf & 1) {
1226    \u0275\u0275element(0, "ngx-skeleton-loader", 22);
1227  }
1228  if (rf & 2) {
1229    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c11));
1230  }
1231}
1232function CompanySettingsComponent_Conditional_11_Conditional_3_For_1_Template(rf, ctx) {
1233  if (rf & 1) {
1234    \u0275\u0275element(0, "nmfta-data-panel", 29);
1235  }
1236  if (rf & 2) {
1237    const team_r4 = ctx.$implicit;
1238    \u0275\u0275property("propertyName", team_r4.teamName)("propertyValue", team_r4.numberOfUsers);
1239  }
1240}
1241function CompanySettingsComponent_Conditional_11_Conditional_3_Template(rf, ctx) {
1242  if (rf & 1) {
1243    \u0275\u0275repeaterCreate(0, CompanySettingsComponent_Conditional_11_Conditional_3_For_1_Template, 1, 2, "nmfta-data-panel", 29, _forTrack1);
1244  }
1245  if (rf & 2) {
1246    const ctx_r1 = \u0275\u0275nextContext(2);
1247    \u0275\u0275repeater(ctx_r1.company$.companyTeams());
1248  }
1249}
1250function CompanySettingsComponent_Conditional_11_Template(rf, ctx) {
1251  if (rf & 1) {
1252    \u0275\u0275elementStart(0, "div", 13)(1, "nmfta-card", 28);
1253    \u0275\u0275conditionalCreate(2, CompanySettingsComponent_Conditional_11_Conditional_2_Template, 1, 2, "ngx-skeleton-loader", 22)(3, CompanySettingsComponent_Conditional_11_Conditional_3_Template, 2, 0);
1254    \u0275\u0275elementEnd()();
1255  }
1256  if (rf & 2) {
1257    const ctx_r1 = \u0275\u0275nextContext();
1258    \u0275\u0275advance();
1259    \u0275\u0275property("isLoading", ctx_r1.companyLoading$())("headerActions", ctx_r1.teamViewHeaderActions)("subTitle", "Organize your Company Common by teams, giving designated users a space to collaborate and access shared items");
1260    \u0275\u0275advance();
1261    \u0275\u0275conditional(ctx_r1.companyLoading$() ? 2 : 3);
1262  }
1263}
1264function CompanySettingsComponent_Conditional_16_Template(rf, ctx) {
1265  if (rf & 1) {
1266    \u0275\u0275element(0, "ngx-skeleton-loader", 17);
1267  }
1268  if (rf & 2) {
1269    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c13));
1270  }
1271}
1272function CompanySettingsComponent_Conditional_17_For_1_Conditional_0_Template(rf, ctx) {
1273  if (rf & 1) {
1274    \u0275\u0275element(0, "nmfta-data-panel", 27);
1275    \u0275\u0275pipe(1, "translate");
1276  }
1277  if (rf & 2) {
1278    const field_r5 = \u0275\u0275nextContext().$implicit;
1279    const ctx_r1 = \u0275\u0275nextContext(2);
1280    \u0275\u0275property("propertyName", field_r5.propertyName)("propertyValue", field_r5.propertyValue)("fullLineDescription", \u0275\u0275pipeBind1(1, 5, field_r5.itemDescription))("isToggle", true)("control", ctx_r1.companySettingsForm.get(field_r5.controlName));
1281  }
1282}
1283function CompanySettingsComponent_Conditional_17_For_1_Template(rf, ctx) {
1284  if (rf & 1) {
1285    \u0275\u0275conditionalCreate(0, CompanySettingsComponent_Conditional_17_For_1_Conditional_0_Template, 2, 7, "nmfta-data-panel", 27);
1286  }
1287  if (rf & 2) {
1288    const field_r5 = ctx.$implicit;
1289    \u0275\u0275conditional(field_r5.display ? 0 : -1);
1290  }
1291}
1292function CompanySettingsComponent_Conditional_17_Template(rf, ctx) {
1293  if (rf & 1) {
1294    \u0275\u0275repeaterCreate(0, CompanySettingsComponent_Conditional_17_For_1_Template, 1, 1, null, null, _forTrack03);
1295  }
1296  if (rf & 2) {
1297    const ctx_r1 = \u0275\u0275nextContext();
1298    \u0275\u0275repeater(ctx_r1.companyResources$());
1299  }
1300}
1301function CompanySettingsComponent_Conditional_22_Template(rf, ctx) {
1302  if (rf & 1) {
1303    \u0275\u0275element(0, "ngx-skeleton-loader", 17);
1304  }
1305  if (rf & 2) {
1306    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c14));
1307  }
1308}
1309function CompanySettingsComponent_Conditional_23_For_2_Template(rf, ctx) {
1310  if (rf & 1) {
1311    \u0275\u0275element(0, "nmfta-data-panel", 30);
1312    \u0275\u0275pipe(1, "translate");
1313  }
1314  if (rf & 2) {
1315    let tmp_23_0;
1316    const field_r6 = ctx.$implicit;
1317    const ctx_r1 = \u0275\u0275nextContext(2);
1318    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(1, 4, field_r6.propertyName))("propertyValue", (tmp_23_0 = ctx_r1.companySettingsForm.get(field_r6.formControl)) == null ? null : tmp_23_0.value)("isToggle", field_r6.toggle)("control", ctx_r1.companySettingsForm.get(field_r6.formControl));
1319  }
1320}
1321function CompanySettingsComponent_Conditional_23_Template(rf, ctx) {
1322  if (rf & 1) {
1323    \u0275\u0275elementStart(0, "form", 18);
1324    \u0275\u0275repeaterCreate(1, CompanySettingsComponent_Conditional_23_For_2_Template, 2, 6, "nmfta-data-panel", 30, \u0275\u0275repeaterTrackByIdentity);
1325    \u0275\u0275elementEnd();
1326  }
1327  if (rf & 2) {
1328    const ctx_r1 = \u0275\u0275nextContext();
1329    \u0275\u0275property("formGroup", ctx_r1.companySettingsForm);
1330    \u0275\u0275advance();
1331    \u0275\u0275repeater(ctx_r1.companyNotificationFields);
1332  }
1333}
1334function CompanySettingsComponent_Conditional_26_Template(rf, ctx) {
1335  if (rf & 1) {
1336    \u0275\u0275element(0, "ngx-skeleton-loader", 22);
1337  }
1338  if (rf & 2) {
1339    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c14));
1340  }
1341}
1342function CompanySettingsComponent_Conditional_27_For_1_Template(rf, ctx) {
1343  if (rf & 1) {
1344    \u0275\u0275element(0, "nmfta-data-panel", 31);
1345  }
1346  if (rf & 2) {
1347    const subscription_r7 = ctx.$implicit;
1348    \u0275\u0275property("propertyName", subscription_r7 == null ? null : subscription_r7.productName)("propertyValue", subscription_r7 == null ? null : subscription_r7.status)("fullLineDescription", "Expires on " + (subscription_r7 == null ? null : subscription_r7.expirationDate));
1349  }
1350}
1351function CompanySettingsComponent_Conditional_27_Template(rf, ctx) {
1352  if (rf & 1) {
1353    \u0275\u0275repeaterCreate(0, CompanySettingsComponent_Conditional_27_For_1_Template, 1, 3, "nmfta-data-panel", 31, \u0275\u0275repeaterTrackByIdentity);
1354  }
1355  if (rf & 2) {
1356    const ctx_r1 = \u0275\u0275nextContext();
1357    \u0275\u0275repeater(ctx_r1.company$.companySubscriptions());
1358  }
1359}
1360function CompanySettingsComponent_Conditional_28_Conditional_2_Template(rf, ctx) {
1361  if (rf & 1) {
1362    \u0275\u0275element(0, "ngx-skeleton-loader", 22);
1363  }
1364  if (rf & 2) {
1365    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c14));
1366  }
1367}
1368function CompanySettingsComponent_Conditional_28_Conditional_3_For_1_Template(rf, ctx) {
1369  if (rf & 1) {
1370    \u0275\u0275element(0, "nmfta-data-panel", 33);
1371    \u0275\u0275pipe(1, "currency");
1372    \u0275\u0275pipe(2, "translate");
1373    \u0275\u0275pipe(3, "date");
1374    \u0275\u0275pipe(4, "translate");
1375  }
1376  if (rf & 2) {
1377    const paymentDetails_r8 = ctx.$implicit;
1378    const ctx_r1 = \u0275\u0275nextContext(3);
1379    \u0275\u0275property("icon", "payments")("propertyName", paymentDetails_r8.productName)("chip", \u0275\u0275pipeBind4(1, 6, paymentDetails_r8 == null ? null : paymentDetails_r8.amount, "
1379USD", "symbol", "1.2-2") || "$0.00")("isDropDown", true)("actions", ctx_r1.paymentDetailsAction(paymentDetails_r8.paymentId))("description", \u0275\u0275pipeBind1(2, 11, "COMPANY_SETTINGS.PAYMENT_INFO.PURCHASE_ON") + " " + \u0275\u0275pipeBind2(3, 13, paymentDetails_r8.paymentDate, "MMM d, y") + ",  " + \u0275\u0275pipeBind1(4, 16, "COMPANY_SETTINGS.PAYMENT_INFO.TRANSACTION_ID") + ": " + paymentDetails_r8.transactionId);
1380  }
1381}
1382function CompanySettingsComponent_Conditional_28_Conditional_3_Template(rf, ctx) {
1383  if (rf & 1) {
1384    \u0275\u0275repeaterCreate(0, CompanySettingsComponent_Conditional_28_Conditional_3_For_1_Template, 5, 18, "nmfta-data-panel", 33, \u0275\u0275repeaterTrackByIndex);
1385  }
1386  if (rf & 2) {
1387    const ctx_r1 = \u0275\u0275nextContext(2);
1388    \u0275\u0275repeater(ctx_r1.recentPaymentDetails$());
1389  }
1390}
1391function CompanySettingsComponent_Conditional_28_Template(rf, ctx) {
1392  if (rf & 1) {
1393    \u0275\u0275elementStart(0, "div", 13)(1, "nmfta-card", 32);
1394    \u0275\u0275conditionalCreate(2, CompanySettingsComponent_Conditional_28_Conditional_2_Template, 1, 2, "ngx-skeleton-loader", 22)(3, CompanySettingsComponent_Conditional_28_Conditional_3_Template, 2, 0);
1395    \u0275\u0275elementEnd()();
1396  }
1397  if (rf & 2) {
1398    const ctx_r1 = \u0275\u0275nextContext();
1399    \u0275\u0275advance();
1400    \u0275\u0275property("headerActions", ctx_r1.paymentDetailsHeaderActions)("isLoading", ctx_r1.companyLoading$());
1401    \u0275\u0275advance();
1402    \u0275\u0275conditional(ctx_r1.companyLoading$() ? 2 : 3);
1403  }
1404}
1405function CompanySettingsComponent_Conditional_31_Template(rf, ctx) {
1406  if (rf & 1) {
1407    \u0275\u0275element(0, "ngx-skeleton-loader", 24);
1408  }
1409  if (rf & 2) {
1410    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c15));
1411  }
1412}
1413function CompanySettingsComponent_Conditional_32_For_1_Template(rf, ctx) {
1414  if (rf & 1) {
1415    \u0275\u0275element(0, "nmfta-data-panel", 34);
1416  }
1417  if (rf & 2) {
1418    const admin_r9 = ctx.$implicit;
1419    const ctx_r1 = \u0275\u0275nextContext(2);
1420    \u0275\u0275property("icon", "person")("propertyName", ctx_r1.getUserDisplayName(admin_r9, true))("description", admin_r9.email || "")("isDropDown", true)("actions", ctx_r1.userButtons(admin_r9));
1421  }
1422}
1423function CompanySettingsComponent_Conditional_32_Template(rf, ctx) {
1424  if (rf & 1) {
1425    \u0275\u0275repeaterCreate(0, CompanySettingsComponent_Conditional_32_For_1_Template, 1, 5, "nmfta-data-panel", 34, _forTrack2);
1426  }
1427  if (rf & 2) {
1428    const ctx_r1 = \u0275\u0275nextContext();
1429    \u0275\u0275repeater(ctx_r1.company$.companyAdmins());
1430  }
1431}
1432function CompanySettingsComponent_Conditional_33_Conditional_2_Template(rf, ctx) {
1433  if (rf & 1) {
1434    \u0275\u0275element(0, "ngx-skeleton-loader", 36);
1435  }
1436  if (rf & 2) {
1437    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c11));
1438  }
1439}
1440function CompanySettingsComponent_Conditional_33_Conditional_3_Conditional_0_Template(rf, ctx) {
1441  if (rf & 1) {
1442    \u0275\u0275elementStart(0, "div");
1443    \u0275\u0275element(1, "nmfta-data-panel", 37);
1444    \u0275\u0275elementEnd();
1445  }
1446  if (rf & 2) {
1447    const ctx_r1 = \u0275\u0275nextContext(3);
1448    \u0275\u0275advance();
1449    \u0275\u0275property("icon", "person")("propertyName", ctx_r1.getUserDisplayName(ctx_r1.company$.accountManager()))("isDropDown", true);
1450  }
1451}
1452function CompanySettingsComponent_Conditional_33_Conditional_3_Conditional_1_Template(rf, ctx) {
1453  if (rf & 1) {
1454    \u0275\u0275elementStart(0, "p");
1455    \u0275\u0275text(1);
1456    \u0275\u0275pipe(2, "translate");
1457    \u0275\u0275elementEnd();
1458  }
1459  if (rf & 2) {
1460    \u0275\u0275advance();
1461    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 1, "COMPANY_SETTINGS.NO_ACCOUNT_MANAGERS"));
1462  }
1463}
1464function CompanySettingsComponent_Conditional_33_Conditional_3_Template(rf, ctx) {
1465  if (rf & 1) {
1466    \u0275\u0275conditionalCreate(0, CompanySettingsComponent_Conditional_33_Conditional_3_Conditional_0_Template, 2, 3, "div")(1, CompanySettingsComponent_Conditional_33_Conditional_3_Conditional_1_Template, 3, 3, "p");
1467  }
1468  if (rf & 2) {
1469    const ctx_r1 = \u0275\u0275nextContext(2);
1470    \u0275\u0275conditional(ctx_r1.company$.accountManager() ? 0 : 1);
1471  }
1472}
1473function CompanySettingsComponent_Conditional_33_Template(rf, ctx) {
1474  if (rf & 1) {
1475    \u0275\u0275elementStart(0, "div", 13)(1, "nmfta-card", 35);
1476    \u0275\u0275conditionalCreate(2, CompanySettingsComponent_Conditional_33_Conditional_2_Template, 1, 2, "ngx-skeleton-loader", 36)(3, CompanySettingsComponent_Conditional_33_Conditional_3_Template, 2, 1);
1477    \u0275\u0275elementEnd()();
1478  }
1479  if (rf & 2) {
1480    const ctx_r1 = \u0275\u0275nextContext();
1481    \u0275\u0275advance();
1482    \u0275\u0275property("headerActions", ctx_r1.companyLoading$() ? \u0275\u0275pureFunction0(3, _c16) : ctx_r1.companyManagerActions)("isLoading", ctx_r1.companyLoading$());
1483    \u0275\u0275advance();
1484    \u0275\u0275conditional(ctx_r1.companyLoading$() ? 2 : 3);
1485  }
1486}
1487function CompanySettingsComponent_Conditional_36_Template(rf, ctx) {
1488  if (rf & 1) {
1489    \u0275\u0275element(0, "ngx-skeleton-loader", 17);
1490  }
1491  if (rf & 2) {
1492    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c11));
1493  }
1494}
1495function CompanySettingsComponent_Conditional_37_Template(rf, ctx) {
1496  if (rf & 1) {
1497    \u0275\u0275element(0, "nmfta-data-panel", 29)(1, "nmfta-data-panel", 29);
1498  }
1499  if (rf & 2) {
1500    let tmp_13_0;
1501    const ctx_r1 = \u0275\u0275nextContext();
1502    \u0275\u0275property("propertyName", "Total Number of Users")("propertyValue", (tmp_13_0 = ctx_r1.company$().totalNumberOfUsers) == null ? null : tmp_13_0.toString());
1503    \u0275\u0275advance();
1504    \u0275\u0275property("propertyName", "License Details")("propertyValue", ctx_r1.company$().numberOfAssignedLicenses.toString() + "/" + ctx_r1.company$().totalNumberOfLicenses.toString());
1505  }
1506}
1507function CompanySettingsComponent_ng_template_38_For_27_Template(rf, ctx) {
1508  if (rf & 1) {
1509    \u0275\u0275elementStart(0, "mat-option", 55);
1510    \u0275\u0275text(1);
1511    \u0275\u0275elementEnd();
1512  }
1513  if (rf & 2) {
1514    const country_r11 = ctx.$implicit;
1515    \u0275\u0275property("value", country_r11.umCountryCode);
1516    \u0275\u0275advance();
1517    \u0275\u0275textInterpolate1(" ", country_r11.umCountryName, " ");
1518  }
1519}
1520function CompanySettingsComponent_ng_template_38_For_48_Template(rf, ctx) {
1521  if (rf & 1) {
1522    \u0275\u0275elementStart(0, "mat-option", 55);
1523    \u0275\u0275text(1);
1524    \u0275\u0275elementEnd();
1525  }
1526  if (rf & 2) {
1527    const companyType_r12 = ctx.$implicit;
1528    \u0275\u0275property("value", companyType_r12.value);
1529    \u0275\u0275advance();
1530    \u0275\u0275textInterpolate(companyType_r12.label);
1531  }
1532}
1533function CompanySettingsComponent_ng_template_38_Template(rf, ctx) {
1534  if (rf & 1) {
1535    const _r10 = \u0275\u0275getCurrentView();
1536    \u0275\u0275elementStart(0, "form", 38)(1, "div", 39)(2, "div", 40)(3, "div", 41)(4, "nmfta-input-wrapper", 42)(5, "div", 43);
1537    \u0275\u0275element(6, "input", 44);
1538    \u0275\u0275pipe(7, "translate");
1539    \u0275\u0275elementEnd()()();
1540    \u0275\u0275elementStart(8, "div", 41)(9, "nmfta-input-wrapper", 45)(10, "div", 43);
1541    \u0275\u0275element(11, "input", 46);
1542    \u0275\u0275pipe(12, "translate");
1543    \u0275\u0275elementEnd()()();
1544    \u0275\u0275elementStart(13, "div", 47)(14, "nmfta-input-wrapper", 48)(15, "div", 43);
1545    \u0275\u0275element(16, "input", 49);
1546    \u0275\u0275pipe(17, "translate");
1547    \u0275\u0275elementEnd()()();
1548    \u0275\u0275elementStart(18, "div", 50)(19, "nmfta-input-wrapper", 51)(20, "div", 43);
1549    \u0275\u0275element(21, "input", 52);
1550    \u0275\u0275pipe(22, "translate");
1551    \u0275\u0275elementEnd()()();
1552    \u0275\u0275elementStart(23, "div", 50)(24, "nmfta-input-wrapper", 53)(25, "mat-select", 54);
1553    \u0275\u0275repeaterCreate(26, CompanySettingsComponent_ng_template_38_For_27_Template, 2, 2, "mat-option", 55, \u0275\u0275repeaterTrackByIndex);
1554    \u0275\u0275elementEnd()()();
1555    \u0275\u0275elementStart(28, "div", 47)(29, "nmfta-input-wrapper", 56);
1556    \u0275\u0275element(30, "input", 57);
1557    \u0275\u0275pipe(31, "translate");
1558    \u0275\u0275elementEnd()();
1559    \u0275\u0275elementStart(32, "div", 47)(33, "nmfta-input-wrapper", 56);
1560    \u0275\u0275element(34, "input", 58);
1561    \u0275\u0275pipe(35, "translate");
1562    \u0275\u0275elementEnd()();
1563    \u0275\u0275elementStart(36, "div", 50)(37, "nmfta-input-wrapper", 56);
1564    \u0275\u0275element(38, "input", 59);
1565    \u0275\u0275pipe(39, "translate");
1566    \u0275\u0275elementEnd()();
1567    \u0275\u0275elementStart(40, "div", 60)(41, "nmfta-input-wrapper", 56);
1568    \u0275\u0275element(42, "input", 61);
1569    \u0275\u0275pipe(43, "translate");
1570    \u0275\u0275elementEnd()();
1571    \u0275\u0275elementStart(44, "div", 60)(45, "nmfta-input-wrapper", 62)(46, "mat-select", 63);
1572    \u0275\u0275repeaterCreate(47, CompanySettingsComponent_ng_template_38_For_48_Template, 2, 2, "mat-option", 55, _forTrack3);
1573    \u0275\u0275elementEnd()()()()();
1574    \u0275\u0275elementStart(49, "div", 64)(50, "nmfta-button", 65);
1575    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_38_Template_nmfta_button_buttonClick_50_listener() {
1576      \u0275\u0275restoreView(_r10);
1577      const ctx_r1 = \u0275\u0275nextContext();
1578      return \u0275\u0275resetView(ctx_r1.closeEditDialog());
1579    });
1580    \u0275\u0275text(51, " Cancel ");
1581    \u0275\u0275elementEnd();
1582    \u0275\u0275elementStart(52, "nmfta-button", 66);
1583    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_38_Template_nmfta_button_buttonClick_52_listener() {
1584      \u0275\u0275restoreView(_r10);
1585      const ctx_r1 = \u0275\u0275nextContext();
1586      return \u0275\u0275resetView(ctx_r1.saveUserInfo());
1587    });
1588    \u0275\u0275text(53, " Save ");
1589    \u0275\u0275elementEnd()()();
1590  }
1591  if (rf & 2) {
1592    let tmp_20_0;
1593    let tmp_21_0;
1594    const ctx_r1 = \u0275\u0275nextContext();
1595    \u0275\u0275property("formGroup", ctx_r1.companyDetailsForm);
1596    \u0275\u0275advance(6);
1597    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(7, 18, "PURCHASE.COMPANY_FORM.MEMBER_ID"));
1598    \u0275\u0275advance(5);
1599    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(12, 20, "COMPANY_SETTINGS.PRIMARY_CONTACT"));
1600    \u0275\u0275advance(5);
1601    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(17, 22, "COMPANY_SETTINGS.COMPANY_NAME"));
1602    \u0275\u0275advance(5);
1603    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(22, 24, "PURCHASE.COMPANY_FORM.PHONE"));
1604    \u0275\u0275advance(5);
1605    \u0275\u0275repeater(ctx_r1.countries$());
1606    \u0275\u0275advance(3);
1607    \u0275\u0275property("label", "Generic_City");
1608    \u0275\u0275advance();
1609    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(31, 26, "Generic_City"));
1610    \u0275\u0275advance(3);
1611    \u0275\u0275property("label", (tmp_20_0 = ctx_r1.companyDetailsForm.get("stateLabelText")) == null ? null : tmp_20_0.value);
1612    \u0275\u0275advance();
1613    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(35, 28, (tmp_21_0 = ctx_r1.companyDetailsForm.get("stateLabelText")) == null ? null : tmp_21_0.value)));
1614    \u0275\u0275attribute("maxLength", ctx_r1.countryService.isAddressRequired ? 2 : null);
1615    \u0275\u0275advance(3);
1616    \u0275\u0275property("label", "Generic_PostalCode");
1617    \u0275\u0275advance();
1618    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(39, 30, "Generic_PostalCode"));
1619    \u0275\u0275advance(3);
1620    \u0275\u0275property("label", "Generic_AddressLine");
1621    \u0275\u0275advance();
1622    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(43, 32, "Generic_AddressLine"));
1623    \u0275\u0275advance(5);
1624    \u0275\u0275repeater(ctx_r1.companyTypes$());
1625    \u0275\u0275advance(3);
1626    \u0275\u0275property("styleType", "outlined");
1627    \u0275\u0275advance(2);
1628    \u0275\u0275property("styleType", "contained")("disabled", ctx_r1.companyDetailsForm.invalid);
1629  }
1630}
1631function CompanySettingsComponent_ng_template_40_Case_0_For_10_Template(rf, ctx) {
1632  if (rf & 1) {
1633    \u0275\u0275element(0, "nmfta-data-panel", 76);
1634  }
1635  if (rf & 2) {
1636    const team_r14 = ctx.$implicit;
1637    const ctx_r1 = \u0275\u0275nextContext(3);
1638    \u0275\u0275property("propertyName", team_r14.teamName)("description", team_r14.numberOfUsers + " Members")("actions", ctx_r1.teamButtons(team_r14));
1639  }
1640}
1641function CompanySettingsComponent_ng_template_40_Case_0_Template(rf, ctx) {
1642  if (rf & 1) {
1643    const _r13 = \u0275\u0275getCurrentView();
1644    \u0275\u0275elementStart(0, "div", 67)(1, "form", 69)(2, "div", 70)(3, "div", 71)(4, "nmfta-input-wrapper", 72);
1645    \u0275\u0275element(5, "input", 73);
1646    \u0275\u0275elementEnd()();
1647    \u0275\u0275elementStart(6, "div", 74)(7, "nmfta-button", 75);
1648    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_40_Case_0_Template_nmfta_button_buttonClick_7_listener() {
1649      \u0275\u0275restoreView(_r13);
1650      const ctx_r1 = \u0275\u0275nextContext(2);
1651      return \u0275\u0275resetView(ctx_r1.createTeam());
1652    });
1653    \u0275\u0275text(8, "Create New Team ");
1654    \u0275\u0275elementEnd()()()();
1655    \u0275\u0275repeaterCreate(9, CompanySettingsComponent_ng_template_40_Case_0_For_10_Template, 1, 3, "nmfta-data-panel", 76, _forTrack1);
1656    \u0275\u0275elementEnd();
1657  }
1658  if (rf & 2) {
1659    const ctx_r1 = \u0275\u0275nextContext(2);
1660    \u0275\u0275advance();
1661    \u0275\u0275property("formGroup", ctx_r1.createTeamForm);
1662    \u0275\u0275advance(4);
1663    \u0275\u0275property("id", "teamName")("type", "text");
1664    \u0275\u0275advance(2);
1665    \u0275\u0275property("disabled", !ctx_r1.createTeamForm.valid);
1666    \u0275\u0275advance(2);
1667    \u0275\u0275repeater(ctx_r1.company$.companyTeams());
1668  }
1669}
1670function CompanySettingsComponent_ng_template_40_Case_1_Template(rf, ctx) {
1671  if (rf & 1) {
1672    const _r15 = \u0275\u0275getCurrentView();
1673    \u0275\u0275elementStart(0, "div", 68)(1, "div", 77)(2, "nmfta-user-group-selector", 78);
1674    \u0275\u0275listener("userAction", function CompanySettingsComponent_ng_template_40_Case_1_Template_nmfta_user_group_selector_userAction_2_listener($event) {
1675      \u0275\u0275restoreView(_r15);
1676      const ctx_r1 = \u0275\u0275nextContext(2);
1677      return \u0275\u0275resetView(ctx_r1.handleUserTeamAction($event));
1678    })("loadMoreUsers", function CompanySettingsComponent_ng_template_40_Case_1_Template_nmfta_user_group_selector_loadMoreUsers_2_listener() {
1679      \u0275\u0275restoreView(_r15);
1680      const ctx_r1 = \u0275\u0275nextContext(2);
1681      return \u0275\u0275resetView(ctx_r1.loadMoreUsersTeam());
1682    });
1683    \u0275\u0275elementEnd()();
1684    \u0275\u0275elementStart(3, "div", 79)(4, "nmfta-button", 80);
1685    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_40_Case_1_Template_nmfta_button_buttonClick_4_listener() {
1686      \u0275\u0275restoreView(_r15);
1687      const ctx_r1 = \u0275\u0275nextContext(2);
1688      return \u0275\u0275resetView(ctx_r1.manageTeamsView());
1689    });
1690    \u0275\u0275text(5, " Select Other Team ");
1691    \u0275\u0275elementEnd()()();
1692  }
1693  if (rf & 2) {
1694    const ctx_r1 = \u0275\u0275nextContext(2);
1695    \u0275\u0275advance(2);
1696    \u0275\u0275property("title", ctx_r1.selectedTeam.teamName)("companyId", ctx_r1.companyId$())("ExternalUsersList", ctx_r1.companyUsers$)("ExternalPagination", ctx_r1.companyUsersByTeamPagination$)("ExternalUsersLoadingStatus", ctx_r1.submissionStatus$)("licensedUsersOnly", true);
1697    \u0275\u0275advance(2);
1698    \u0275\u0275property("leftIcon", "chevron_left");
1699  }
1700}
1701function CompanySettingsComponent_ng_template_40_Template(rf, ctx) {
1702  if (rf & 1) {
1703    \u0275\u0275conditionalCreate(0, CompanySettingsComponent_ng_template_40_Case_0_Template, 11, 4, "div", 67)(1, CompanySettingsComponent_ng_template_40_Case_1_Template, 6, 7, "div", 68);
1704  }
1705  if (rf & 2) {
1706    let tmp_12_0;
1707    const ctx_r1 = \u0275\u0275nextContext();
1708    \u0275\u0275conditional((tmp_12_0 = ctx_r1.displayTeams) === "teamView" ? 0 : tmp_12_0 === "manageView" ? 1 : -1);
1709  }
1710}
1711function CompanySettingsComponent_ng_template_42_Conditional_34_Template(rf, ctx) {
1712  if (rf & 1) {
1713    \u0275\u0275elementStart(0, "div", 102)(1, "nmfta-alert", 105);
1714    \u0275\u0275text(2);
1715    \u0275\u0275pipe(3, "translate");
1716    \u0275\u0275elementEnd()();
1717  }
1718  if (rf & 2) {
1719    const ctx_r1 = \u0275\u0275nextContext(2);
1720    \u0275\u0275advance();
1721    \u0275\u0275property("color", "success");
1722    \u0275\u0275advance();
1723    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind2(3, 2, "COMPANY_SETTINGS.Activation_Link_Success", \u0275\u0275pureFunction4(5, _c17, ctx_r1.firstName, ctx_r1.lastName, ctx_r1.email, ctx_r1.today)), " ");
1724  }
1725}
1726function CompanySettingsComponent_ng_template_42_Template(rf, ctx) {
1727  if (rf & 1) {
1728    const _r16 = \u0275\u0275getCurrentView();
1729    \u0275\u0275elementStart(0, "div", 81)(1, "mat-tab-group", 82)(2, "mat-tab", 83)(3, "div", 84)(4, "div", 85)(5, "nmfta-alert");
1730    \u0275\u0275text(6, " Assignment provides limited access to ClassIT+ using a limited license that does not count against the total licenses affilated with your subscription ");
1731    \u0275\u0275elementEnd()();
1732    \u0275\u0275elementStart(7, "div", 86)(8, "nmfta-user-group-selector", 87);
1733    \u0275\u0275listener("userAction", function CompanySettingsComponent_ng_template_42_Template_nmfta_user_group_selector_userAction_8_listener($event) {
1734      \u0275\u0275restoreView(_r16);
1735      const ctx_r1 = \u0275\u0275nextContext();
1736      return \u0275\u0275resetView(ctx_r1.handleAccountManagerAction($event));
1737    });
1738    \u0275\u0275elementEnd()()()();
1739    \u0275\u0275elementStart(9, "mat-tab", 88)(10, "div", 89)(11, "div", 90)(12, "nmfta-alert");
1740    \u0275\u0275text(13, " Assignment provides limited access to ClassIT+ using a limited license that does not count against the total licenses affilated with your subscription ");
1741    \u0275\u0275elementEnd()();
1742    \u0275\u0275elementStart(14, "div", 91)(15, "form", 69)(16, "div", 40)(17, "div", 41)(18, "nmfta-input-wrapper", 92);
1743    \u0275\u0275element(19, "input", 93);
1744    \u0275\u0275elementEnd()();
1745    \u0275\u0275elementStart(20, "div", 41)(21, "nmfta-input-wrapper", 94);
1746    \u0275\u0275element(22, "input", 95);
1747    \u0275\u0275elementEnd()()();
1748    \u0275\u0275elementStart(23, "div", 40)(24, "div", 47)(25, "nmfta-input-wrapper", 96);
1749    \u0275\u0275element(26, "input", 97);
1750    \u0275\u0275elementEnd()();
1751    \u0275\u0275elementStart(27, "div", 50)(28, "nmfta-input-wrapper", 98);
1752    \u0275\u0275element(29, "input", 99);
1753    \u0275\u0275elementEnd()()();
1754    \u0275\u0275elementStart(30, "div", 40)(31, "div", 60)(32, "nmfta-input-wrapper", 100);
1755    \u0275\u0275element(33, "input", 101);
1756    \u0275\u0275elementEnd()()()();
1757    \u0275\u0275conditionalCreate(34, CompanySettingsComponent_ng_template_42_Conditional_34_Template, 4, 10, "div", 102);
1758    \u0275\u0275elementEnd();
1759    \u0275\u0275elementStart(35, "div", 103)(36, "nmfta-button", 104);
1760    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_42_Template_nmfta_button_buttonClick_36_listener() {
1761      \u0275\u0275restoreView(_r16);
1762      const ctx_r1 = \u0275\u0275nextContext();
1763      return \u0275\u0275resetView(ctx_r1.sendInvitation());
1764    });
1765    \u0275\u0275text(37, " Send Invitation ");
1766    \u0275\u0275elementEnd()()()()()();
1767  }
1768  if (rf & 2) {
1769    const ctx_r1 = \u0275\u0275nextContext();
1770    \u0275\u0275advance(8);
1771    \u0275\u0275property("companyId", ctx_r1.companyId$())("ExternalUsersList", ctx_r1.accountManagers$)("ExternalUsersLoadingStatus", ctx_r1.submissionStatus$)("showDelete", true);
1772    \u0275\u0275advance(7);
1773    \u0275\u0275property("formGroup", ctx_r1.accountManagerForm);
1774    \u0275\u0275advance(19);
1775    \u0275\u0275conditional(ctx_r1.showAlertAccountManager ? 34 : -1);
1776    \u0275\u0275advance(2);
1777    \u0275\u0275property("isLoading", ctx_r1.savingUserStatus$() === "loading");
1778  }
1779}
1780function CompanySettingsComponent_ng_template_44_Conditional_38_Template(rf, ctx) {
1781  if (rf & 1) {
1782    \u0275\u0275elementStart(0, "div", 102)(1, "nmfta-alert", 105);
1783    \u0275\u0275text(2);
1784    \u0275\u0275pipe(3, "translate");
1785    \u0275\u0275elementEnd()();
1786  }
1787  if (rf & 2) {
1788    const ctx_r1 = \u0275\u0275nextContext(2);
1789    \u0275\u0275advance();
1790    \u0275\u0275property("color", "success");
1791    \u0275\u0275advance();
1792    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind2(3, 2, "COMPANY_SETTINGS.Activation_Link_Success", \u0275\u0275pureFunction4(5, _c17, ctx_r1.firstName, ctx_r1.lastName, ctx_r1.email, ctx_r1.today)), " ");
1793  }
1794}
1795function CompanySettingsComponent_ng_template_44_Template(rf, ctx) {
1796  if (rf & 1) {
1797    const _r17 = \u0275\u0275getCurrentView();
1798    \u0275\u0275elementStart(0, "div", 81)(1, "mat-tab-group", 82)(2, "mat-tab", 56);
1799    \u0275\u0275pipe(3, "translate");
1800    \u0275\u0275elementStart(4, "div", 106)(5, "div", 107)(6, "nmfta-alert");
1801    \u0275\u0275text(7);
1802    \u0275\u0275pipe(8, "translate");
1803    \u0275\u0275elementEnd()();
1804    \u0275\u0275elementStart(9, "div", 108)(10, "nmfta-user-group-selector", 109);
1805    \u0275\u0275listener("userAction", function CompanySettingsComponent_ng_template_44_Template_nmfta_user_group_selector_userAction_10_listener($event) {
1806      \u0275\u0275restoreView(_r17);
1807      const ctx_r1 = \u0275\u0275nextContext();
1808      return \u0275\u0275resetView(ctx_r1.handleUserAdminAction($event, true));
1809    });
1810    \u0275\u0275elementEnd()()()();
1811    \u0275\u0275elementStart(11, "mat-tab", 56);
1812    \u0275\u0275pipe(12, "translate");
1813    \u0275\u0275elementStart(13, "div", 110)(14, "div", 111)(15, "nmfta-alert");
1814    \u0275\u0275text(16);
1815    \u0275\u0275pipe(17, "translate");
1816    \u0275\u0275elementEnd()();
1817    \u0275\u0275elementStart(18, "div", 112)(19, "form", 69)(20, "div", 40)(21, "div", 41)(22, "nmfta-input-wrapper", 92);
1818    \u0275\u0275element(23, "input", 93);
1819    \u0275\u0275elementEnd()();
1820    \u0275\u0275elementStart(24, "div", 41)(25, "nmfta-input-wrapper", 94);
1821    \u0275\u0275element(26, "input", 95);
1822    \u0275\u0275elementEnd()()();
1823    \u0275\u0275elementStart(27, "div", 40)(28, "div", 47)(29, "nmfta-input-wrapper", 96);
1824    \u0275\u0275element(30, "input", 97);
1825    \u0275\u0275elementEnd()();
1826    \u0275\u0275elementStart(31, "div", 50)(32, "nmfta-input-wrapper", 98);
1827    \u0275\u0275element(33, "input", 99);
1828    \u0275\u0275elementEnd()()();
1829    \u0275\u0275elementStart(34, "div", 40)(35, "div", 60)(36, "nmfta-input-wrapper", 100);
1830    \u0275\u0275element(37, "input", 101);
1831    \u0275\u0275elementEnd()()()();
1832    \u0275\u0275conditionalCreate(38, CompanySettingsComponent_ng_template_44_Conditional_38_Template, 4, 10, "div", 102);
1833    \u0275\u0275elementEnd();
1834    \u0275\u0275elementStart(39, "div", 113)(40, "nmfta-button", 114);
1835    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_44_Template_nmfta_button_buttonClick_40_listener() {
1836      \u0275\u0275restoreView(_r17);
1837      const ctx_r1 = \u0275\u0275nextContext();
1838      return \u0275\u0275resetView(ctx_r1.createNewCompanyAdmin());
1839    });
1840    \u0275\u0275text(41);
1841    \u0275\u0275pipe(42, "translate");
1842    \u0275\u0275elementEnd()()()()()();
1843  }
1844  if (rf & 2) {
1845    const ctx_r1 = \u0275\u0275nextContext();
1846    \u0275\u0275advance(2);
1847    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(3, 16, "COMPANY_SETTINGS.Assign_to_an_Existing_User")));
1848    \u0275\u0275advance(5);
1849    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(8, 18, "COMPANY_SETTINGS.Add_Company_Admin_Message"), " ");
1850    \u0275\u0275advance(3);
1851    \u0275\u0275property("companyId", ctx_r1.companyId$())("ExternalUsersList", ctx_r1.companyAdmins$)("ExternalUsersLoadingStatus", ctx_r1.submissionStatus$)("isAdmin", true)("forPrimaryAdminAdd", true);
1852    \u0275\u0275advance();
1853    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(12, 20, "COMPANY_SETTINGS.Assign_to_A_New_User")));
1854    \u0275\u0275advance(5);
1855    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(17, 22, "COMPANY_SETTINGS.Add_Company_Admin_Message"), " ");
1856    \u0275\u0275advance(3);
1857    \u0275\u0275property("formGroup", ctx_r1.companyAdminForm);
1858    \u0275\u0275advance(19);
1859    \u0275\u0275conditional(ctx_r1.showAlertCompanyAdmin ? 38 : -1);
1860    \u0275\u0275advance(2);
1861    \u0275\u0275property("disabled", ctx_r1.companyAdminForm.invalid)("isLoading", ctx_r1.updateUserStatus$() === "loading");
1862    \u0275\u0275advance();
1863    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(42, 24, "COMPANY_SETTINGS.Create_Company_Admin"), " ");
1864  }
1865}
1866function CompanySettingsComponent_ng_template_46_Template(rf, ctx) {
1867  if (rf & 1) {
1868    const _r18 = \u0275\u0275getCurrentView();
1869    \u0275\u0275elementStart(0, "nmfta-user-group-selector", 115);
1870    \u0275\u0275listener("userAction", function CompanySettingsComponent_ng_template_46_Template_nmfta_user_group_selector_userAction_0_listener($event) {
1871      \u0275\u0275restoreView(_r18);
1872      const ctx_r1 = \u0275\u0275nextContext();
1873      return \u0275\u0275resetView(ctx_r1.handleUserAdminAction($event));
1874    });
1875    \u0275\u0275elementEnd();
1876  }
1877  if (rf & 2) {
1878    const ctx_r1 = \u0275\u0275nextContext();
1879    \u0275\u0275property("companyId", ctx_r1.companyId$())("ExternalUsersList", ctx_r1.companyAdmins$)("ExternalUsersLoadingStatus", ctx_r1.submissionStatus$)("isAdmin", true)("maxUsers", 5);
1880  }
1881}
1882function CompanySettingsComponent_ng_template_48_Template(rf, ctx) {
1883  if (rf & 1) {
1884    \u0275\u0275elementStart(0, "div", 116)(1, "div", 40)(2, "div", 60)(3, "div", 117)(4, "p");
1885    \u0275\u0275text(5);
1886    \u0275\u0275pipe(6, "translate");
1887    \u0275\u0275elementEnd()()()()();
1888  }
1889  if (rf & 2) {
1890    \u0275\u0275advance(5);
1891    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 1, "COMPANY_SETTINGS.Confirm_Remove_Logged_In_User_From_Role"));
1892  }
1893}
1894function CompanySettingsComponent_ng_template_50_Template(rf, ctx) {
1895  if (rf & 1) {
1896    \u0275\u0275elementStart(0, "div", 116)(1, "div", 40)(2, "div", 60)(3, "div", 117)(4, "p");
1897    \u0275\u0275text(5);
1898    \u0275\u0275pipe(6, "translate");
1899    \u0275\u0275elementEnd()()()()();
1900  }
1901  if (rf & 2) {
1902    \u0275\u0275advance(5);
1903    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 1, "COMPANY_SETTINGS.Confirm_Deleting_Team"));
1904  }
1905}
1906function CompanySettingsComponent_ng_template_52_Template(rf, ctx) {
1907  if (rf & 1) {
1908    const _r19 = \u0275\u0275getCurrentView();
1909    \u0275\u0275elementStart(0, "div", 118)(1, "div", 39)(2, "div", 40)(3, "div", 119)(4, "p");
1910    \u0275\u0275text(5);
1911    \u0275\u0275pipe(6, "translate");
1912    \u0275\u0275elementEnd()();
1913    \u0275\u0275elementStart(7, "div", 60)(8, "form", 120)(9, "nmfta-input-wrapper", 56);
1914    \u0275\u0275pipe(10, "translate");
1915    \u0275\u0275element(11, "input", 121);
1916    \u0275\u0275elementEnd()()()();
1917    \u0275\u0275elementStart(12, "div", 122)(13, "p")(14, "i");
1918    \u0275\u0275text(15);
1919    \u0275\u0275pipe(16, "translate");
1920    \u0275\u0275elementEnd()()()();
1921    \u0275\u0275elementStart(17, "div", 64)(18, "nmfta-button", 65);
1922    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_52_Template_nmfta_button_buttonClick_18_listener() {
1923      \u0275\u0275restoreView(_r19);
1924      const ctx_r1 = \u0275\u0275nextContext();
1925      return \u0275\u0275resetView(ctx_r1.closeEmailReceiptDialog());
1926    });
1927    \u0275\u0275text(19);
1928    \u0275\u0275pipe(20, "translate");
1929    \u0275\u0275elementEnd();
1930    \u0275\u0275elementStart(21, "nmfta-button", 123);
1931    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_52_Template_nmfta_button_buttonClick_21_listener() {
1932      \u0275\u0275restoreView(_r19);
1933      const ctx_r1 = \u0275\u0275nextContext();
1934      return \u0275\u0275resetView(ctx_r1.sendEmailReceipt());
1935    });
1936    \u0275\u0275text(22);
1937    \u0275\u0275pipe(23, "translate");
1938    \u0275\u0275elementEnd()()();
1939  }
1940  if (rf & 2) {
1941    const ctx_r1 = \u0275\u0275nextContext();
1942    \u0275\u0275advance(5);
1943    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 11, "COMPANY_SETTINGS.ADD_EMAILS"));
1944    \u0275\u0275advance(3);
1945    \u0275\u0275property("formGroup", ctx_r1.emailReceiptsForm);
1946    \u0275\u0275advance();
1947    \u0275\u0275property("label", \u0275\u0275pipeBind1(10, 13, "COMPANY_SETTINGS.EMAILS"));
1948    \u0275\u0275advance(2);
1949    \u0275\u0275property("id", "emailReceipt")("type", "text");
1950    \u0275\u0275advance(4);
1951    \u0275\u0275textInterpolate2("", \u0275\u0275pipeBind1(16, 15, "COMPANY_SETTINGS.PAYMENT_INFO.TRANSACTION_ID"), ": ", ctx_r1.transaction == null ? null : ctx_r1.transaction.transactionId);
1952    \u0275\u0275advance(3);
1953    \u0275\u0275property("styleType", "outlined");
1954    \u0275\u0275advance();
1955    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(20, 17, "Generic_Cancel"), " ");
1956    \u0275\u0275advance(2);
1957    \u0275\u0275property("disabled", ctx_r1.emailReceiptsForm.invalid);
1958    \u0275\u0275advance();
1959    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(23, 19, "Generic_SendEmail"), " ");
1960  }
1961}
1962function CompanySettingsComponent_ng_template_54_Conditional_13_Template(rf, ctx) {
1963  if (rf & 1) {
1964    \u0275\u0275element(0, "nmfta-data-panel", 29);
1965    \u0275\u0275pipe(1, "translate");
1966    \u0275\u0275pipe(2, "currency");
1967  }
1968  if (rf & 2) {
1969    const ctx_r1 = \u0275\u0275nextContext(2);
1970    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(1, 2, "COMPANY_SETTINGS.PAYMENT_INFO.REFUND_AMOUNT"))("propertyValue", \u0275\u0275pipeBind4(2, 4, ctx_r1.transaction == null ? null : ctx_r1.transaction.refundAmount, "USD", "symbol", "1.2-2") || "$0.00");
1971  }
1972}
1973function CompanySettingsComponent_ng_template_54_Template(rf, ctx) {
1974  if (rf & 1) {
1975    const _r20 = \u0275\u0275getCurrentView();
1976    \u0275\u0275elementStart(0, "div", 118)(1, "div", 124);
1977    \u0275\u0275element(2, "nmfta-data-panel", 29);
1978    \u0275\u0275pipe(3, "translate");
1979    \u0275\u0275element(4, "nmfta-data-panel", 29);
1980    \u0275\u0275pipe(5, "translate");
1981    \u0275\u0275element(6, "nmfta-data-panel", 29);
1982    \u0275\u0275pipe(7, "translate");
1983    \u0275\u0275element(8, "nmfta-data-panel", 29);
1984    \u0275\u0275pipe(9, "translate");
1985    \u0275\u0275element(10, "nmfta-data-panel", 29);
1986    \u0275\u0275pipe(11, "translate");
1987    \u0275\u0275pipe(12, "currency");
1988    \u0275\u0275conditionalCreate(13, CompanySettingsComponent_ng_template_54_Conditional_13_Template, 3, 9, "nmfta-data-panel", 29);
1989    \u0275\u0275element(14, "nmfta-data-panel", 29);
1990    \u0275\u0275pipe(15, "translate");
1991    \u0275\u0275pipe(16, "date");
1992    \u0275\u0275elementStart(17, "div", 125)(18, "p")(19, "i");
1993    \u0275\u0275text(20);
1994    \u0275\u0275pipe(21, "translate");
1995    \u0275\u0275elementEnd()()()();
1996    \u0275\u0275elementStart(22, "div", 64)(23, "nmfta-button", 126);
1997    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_54_Template_nmfta_button_buttonClick_23_listener() {
1998      \u0275\u0275restoreView(_r20);
1999      const ctx_r1 = \u0275\u0275nextContext();
2000      return \u0275\u0275resetView(ctx_r1.downloadPaymentReceipt());
2001    });
2002    \u0275\u0275text(24);
2003    \u0275\u0275pipe(25, "translate");
2004    \u0275\u0275elementEnd();
2005    \u0275\u0275elementStart(26, "nmfta-button", 127);
2006    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_54_Template_nmfta_button_buttonClick_26_listener() {
2007      \u0275\u0275restoreView(_r20);
2008      const ctx_r1 = \u0275\u0275nextContext();
2009      return \u0275\u0275resetView(ctx_r1.openEmailReceiptDialog());
2010    });
2011    \u0275\u0275text(27);
2012    \u0275\u0275pipe(28, "translate");
2013    \u0275\u0275elementEnd()()();
2014  }
2015  if (rf & 2) {
2016    const ctx_r1 = \u0275\u0275nextContext();
2017    \u0275\u0275advance(2);
2018    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(3, 22, "COMPANY_SETTINGS.PAYMENT_INFO.PAYEE"))("propertyValue", ctx_r1.transaction == null ? null : ctx_r1.transaction.name);
2019    \u0275\u0275advance(2);
2020    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(5, 24, "COMPANY_SETTINGS.PAYMENT_INFO.EMAIL"))("propertyValue", ctx_r1.transaction == null ? null : ctx_r1.transaction.email);
2021    \u0275\u0275advance(2);
2022    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(7, 26, "COMPANY_SETTINGS.PAYMENT_INFO.PRODUCT_NAME"))("propertyValue", ctx_r1.transaction == null ? null : ctx_r1.transaction.productName);
2023    \u0275\u0275advance(2);
2024    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(9, 28, "COMPANY_SETTINGS.PAYMENT_INFO.PAYMENT_METHOD"))("propertyValue", ctx_r1.transaction == null ? null : ctx_r1.transaction.paymentMethod);
2025    \u0275\u0275advance(2);
2026    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(11, 30, "COMPANY_SETTINGS.PAYMENT_INFO.AMOUNT"))("propertyValue", \u0275\u0275pipeBind4(12, 32, ctx_r1.transaction == null ? null : ctx_r1.transaction.amount, "USD", "symbol", "1.2-2") || "$0.00");
2027    \u0275\u0275advance(3);
2028    \u0275\u0275conditional((ctx_r1.transaction == null ? null : ctx_r1.transaction.refundAmount) ? 13 : -1);
2029    \u0275\u0275advance();
2030    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(15, 37, "COMPANY_SETTINGS.PAYMENT_INFO.PURCHASE_ON"))("propertyValue", \u0275\u0275pipeBind2(16, 39, ctx_r1.transaction == null ? null : ctx_r1.transaction.paymentDate, "MMM d, y") || "");
2031    \u0275\u0275advance(6);
2032    \u0275\u0275textInterpolate2("", \u0275\u0275pipeBind1(21, 42, "COMPANY_SETTINGS.PAYMENT_INFO.TRANSACTION_ID"), ": ", ctx_r1.transaction == null ? null : ctx_r1.transaction.transactionId);
2033    \u0275\u0275advance(3);
2034    \u0275\u0275property("leftIcon", "file_download")("styleType", "outlined")("isLoading", ctx_r1.isPrintingReceipt);
2035    \u0275\u0275advance();
2036    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(25, 44, "Generic_Download_Receipt"), " ");
2037    \u0275\u0275advance(2);
2038    \u0275\u0275property("leftIcon", "email")("styleType", "outlined");
2039    \u0275\u0275advance();
2040    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(28, 46, "Generic_Email_Receipt"), " ");
2041  }
2042}
2043function CompanySettingsComponent_ng_template_56_For_2_Template(rf, ctx) {
2044  if (rf & 1) {
2045    \u0275\u0275element(0, "nmfta-data-panel", 129);
2046    \u0275\u0275pipe(1, "currency");
2047    \u0275\u0275pipe(2, "translate");
2048    \u0275\u0275pipe(3, "date");
2049    \u0275\u0275pipe(4, "translate");
2050  }
2051  if (rf & 2) {
2052    const detail_r21 = ctx.$implicit;
2053    const ctx_r1 = \u0275\u0275nextContext(2);
2054    \u0275\u0275property("icon", "payments")("propertyName", detail_r21.productName)("chip", \u0275\u0275pipeBind4(1, 5, detail_r21 == null ? null : detail_r21.amount, "USD", "symbol", "1.2-2") || "$0.00")("actions", ctx_r1.paymentDetailsAction(detail_r21.paymentId, true))("description", \u0275\u0275pipeBind1(2, 10, "COMPANY_SETTINGS.PAYMENT_INFO.PURCHASE_ON") + " " + \u0275\u0275pipeBind2(3, 12, detail_r21.paymentDate, "MMM d, y") + ",  " + \u0275\u0275pipeBind1(4, 15, "COMPANY_SETTINGS.PAYMENT_INFO.TRANSACTION_ID") + ": " + detail_r21.transactionId);
2055  }
2056}
2057function CompanySettingsComponent_ng_template_56_Conditional_3_Template(rf, ctx) {
2058  if (rf & 1) {
2059    const _r22 = \u0275\u0275getCurrentView();
2060    \u0275\u0275elementStart(0, "div", 130)(1, "nmfta-button", 131);
2061    \u0275\u0275listener("buttonClick", function CompanySettingsComponent_ng_template_56_Conditional_3_Template_nmfta_button_buttonClick_1_listener() {
2062      \u0275\u0275restoreView(_r22);
2063      const ctx_r1 = \u0275\u0275nextContext(2);
2064      return \u0275\u0275resetView(ctx_r1.loadMoreTransactions());
2065    });
2066    \u0275\u0275text(2);
2067    \u0275\u0275pipe(3, "translate");
2068    \u0275\u0275elementEnd()();
2069  }
2070  if (rf & 2) {
2071    \u0275\u0275advance();
2072    \u0275\u0275property("color", "accent")("rightIcon", "add");
2073    \u0275\u0275advance();
2074    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(3, 3, "Generic_Loa
2074dMore"), " ");
2075  }
2076}
2077function CompanySettingsComponent_ng_template_56_Template(rf, ctx) {
2078  if (rf & 1) {
2079    \u0275\u0275elementStart(0, "div", 128);
2080    \u0275\u0275repeaterCreate(1, CompanySettingsComponent_ng_template_56_For_2_Template, 5, 17, "nmfta-data-panel", 129, \u0275\u0275repeaterTrackByIndex);
2081    \u0275\u0275conditionalCreate(3, CompanySettingsComponent_ng_template_56_Conditional_3_Template, 4, 5, "div", 130);
2082    \u0275\u0275elementEnd();
2083  }
2084  if (rf & 2) {
2085    const ctx_r1 = \u0275\u0275nextContext();
2086    \u0275\u0275advance();
2087    \u0275\u0275repeater(ctx_r1.paymentDetailsPaging$().allTransactions);
2088    \u0275\u0275advance(2);
2089    \u0275\u0275conditional(ctx_r1.paymentDetailsPaging$().allTransactions.length < ctx_r1.paymentDetails$().length ? 3 : -1);
2090  }
2091}
2092function CompanySettingsComponent_ng_template_58_Template(rf, ctx) {
2093  if (rf & 1) {
2094    \u0275\u0275elementStart(0, "div", 132)(1, "div", 133)(2, "span");
2095    \u0275\u0275text(3);
2096    \u0275\u0275pipe(4, "translate");
2097    \u0275\u0275elementEnd()()();
2098  }
2099  if (rf & 2) {
2100    \u0275\u0275advance(3);
2101    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 1, "COMPANY_SETTINGS.UNABLE_TO_UPDATE_SYNONYMS_MESSAGE"));
2102  }
2103}
2104var CompanySettingsComponent = class _CompanySettingsComponent {
2105  countryService;
2106  editCompanyDetails;
2107  manageTeams;
2108  paymentDialog;
2109  transactionsDialog;
2110  manageAccountManager;
2111  addCompanyAdmins;
2112  manageCompanyAdmins;
2113  removingLoggedInUserFromCompanySettings;
2114  deletingTeam;
2115  emailReceipt;
2116  unableToUpdateSynonyms;
2117  userStore = inject(UserStore);
2118  formBuilder = inject(FormBuilder);
2119  dialog = inject(MatDialog);
2120  router = inject(Router);
2121  companyStore = inject(CompanyStore);
2122  userService = inject(UserService);
2123  translate = inject(TranslateService);
2124  purchaseService = inject(PurchaseService);
2125  submissionStatus$ = this.companyStore.submissionStatus;
2126  updateUserStatus$ = this.companyStore.updateUserStatus;
2127  savingUserStatus$ = this.companyStore.savingUserStatus;
2128  companyUsersByTeam$ = this.companyStore.company.companyUsersByTeam;
2129  companyUsers$ = computed(() => this.companyUsersByTeam$().users, ...ngDevMode ? [{ debugName: "companyUsers$" }] : []);
2130  paymentDetails$ = computed(() => this.companyStore.paymentDetails() ?? [], ...ngDevMode ? [{ debugName: "paymentDetails$" }] : []);
2131  companyUsersByTeamPagination$ = computed(() => this.companyUsersByTeam$().pagination, ...ngDevMode ? [{ debugName: "companyUsersByTeamPagination$" }] : []);
2132  companyAdmins$ = this.companyStore.company.companyAdmins;
2133  accountManagers$ = computed(() => {
2134    const user = this.companyStore.company.accountManager();
2135    return user ? [user] : [];
2136  }, ...ngDevMode ? [{ debugName: "accountManagers$" }] : []);
2137  companyLoading$ = this.companyStore.companyLoading;
2138  companyId$ = this.companyStore.company.companyId;
2139  paymentDetailsPaging$ = computed(() => this.companyStore.formattedPaymentDetailPaging() ?? { allTransactions: [], currentPage: 1 }, ...ngDevMode ? [{ debugName: "paymentDetailsPaging$" }] : []);
2140  editDialogRef;
2141  emailDialogRef;
2142  paymentDialogRef;
2143  transactionsDialogRef;
2144  selfRemovingDialogRef;
2145  accountManagerDialogRef;
2146  primaryUserDialogRef;
2147  addPrimaryUserDialogRef;
2148  showAlertAccountManager = false;
2149  showAlertCompanyAdmin = false;
2150  allTransactionsFlow = false;
2151  isPrintingReceipt = false;
2152  firstName;
2153  lastName;
2154  email;
2155  today = (/* @__PURE__ */ new Date()).toLocaleDateString();
2156  transaction;
2157  saveUserRequest;
2158  commonStore = inject(CommonStore);
2159  countries$ = this.commonStore.countries;
2160  companyDataFields$ = this.companyStore.companyDataFields;
2161  recentPaymentDetails$ = this.companyStore.recentPaymentDetails;
2162  companyTypes$ = signal(COMPANY_TYPE_OPTIONS, ...ngDevMode ? [{ debugName: "companyTypes$" }] : []);
2163  isCustomerService$ = this.userStore.isCustomerService;
2164  companyDetailsForm;
2165  emailReceiptsForm;
2166  accountManagerForm = new FormGroup({
2167    firstName: new FormControl(""),
2168    lastName: new FormControl(""),
2169    email: new FormControl("", [
2170      Validators.required,
2171      Validators.email,
2172      Validators.pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$")
2173    ], [emailExistsValidator(this.userService)]),
2174    phone: new FormControl(""),
2175    title: new FormControl("")
2176  });
2177  companyAdminForm = new FormGroup({
2178    firstName: new FormControl("", Validators.required),
2179    lastName: new FormControl("", Validators.required),
2180    email: new FormControl("", [
2181      Validators.required,
2182      Validators.email,
2183      Validators.pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$")
2184    ], [emailExistsValidator(this.userService)]),
2185    phone: new FormControl(""),
2186    title: new FormControl("")
2187  });
2188  createTeamForm = new FormGroup({
2189    teamName: new FormControl("", [Validators.required])
2190  });
2191  companySettingsForm;
2192  companyCommonField = companyCommonField;
2193  companyNotificationFields = companyNotificationsField;
2194  companyResources$ = computed(() => {
2195    return this.companyStore.companyResources();
2196  }, ...ngDevMode ? [{ debugName: "companyResources$" }] : []);
2197  company$ = this.companyStore.company;
2198  isLoading = this.companyStore.isLoading();
2199  user$ = this.userStore.user;
2200  displayTeams = "teamView";
2201  filteredOptions;
2202  currentTeam;
2203  selectedTeam;
2204  companyDetailsHeaderActions = [
2205    {
2206      id: "1",
2207      label: "Generic_Edit",
2208      styleType: "light",
2209      onClick: () => {
2210        this.editCompanyDetailsForm();
2211      }
2212    }
2213  ];
2214  get companyDetailsFooterActions() {
2215    var buttons = [];
2216    if (this.user$().features.AdminMenu) {
2217      buttons.push({
2218        id: "2",
2219        label: "View Notes",
2220        styleType: "light",
2221        onClick: () => {
2222          this.viewCompanyNotes();
2223        }
2224      });
2225    }
2226    return buttons;
2227  }
2228  companyUserActions = [
2229    {
2230      id: "1",
2231      label: "Manage Company Users",
2232      styleType: "light",
2233      onClick: () => {
2234        const companyId = this.router.routerState.snapshot.root.queryParams["companyId"];
2235        const queryParams = companyId ? { companyId } : void 0;
2236        this.router.navigate(["profile/company-settings/manage-users"], { queryParams });
2237      }
2238    }
2239  ];
2240  teamViewHeaderActions = [
2241    {
2242      id: "1",
2243      label: "Manage Company Teams",
2244      styleType: "light",
2245      onClick: () => {
2246        this.editTeams();
2247      }
2248    }
2249  ];
2250  subscriptionHeaderActions = [
2251    {
2252      id: "1",
2253      label: "Manage Subscription",
2254      rightIcon: "chevron_right",
2255      styleType: "light",
2256      onClick: () => {
2257        const companyId = this.router.routerState.snapshot.root.queryParams["companyId"];
2258        const queryParams = companyId ? { companyId } : void 0;
2259        this.router.navigate(["profile/company-settings/manage-subscriptions"], { queryParams });
2260      }
2261    }
2262  ];
2263  companyAdminActions = [
2264    {
2265      id: "1",
2266      label: "Manage Admin",
2267      styleType: "light",
2268      onClick: () => {
2269        this.editCompanyAdmins();
2270      }
2271    }
2272  ];
2273  companyManagerActions = [
2274    {
2275      id: "1",
2276      label: "Manage Account Manager",
2277      styleType: "light",
2278      onClick: () => {
2279        this.editAccountManager();
2280      }
2281    }
2282  ];
2283  paymentDetailsHeaderActions = [
2284    {
2285      id: "3",
2286      label: "Generic_ViewAll",
2287      styleType: "light",
2288      onClick: () => {
2289        this.openAllTransactions();
2290      }
2291    }
2292  ];
2293  paymentDetailsAction(paymentId, fromAllTransactions = false) {
2294    const paymentButton = [
2295      {
2296        id: "1",
2297        label: "Details",
2298        styleType: "text",
2299        leftIcon: fromAllTransactions ? "" : "visibility",
2300        rightIcon: fromAllTransactions ? "chevron_right" : "",
2301        blackText: true,
2302        onClick: () => {
2303          this.allTransactionsFlow = fromAllTransactions;
2304          this.openPaymentDetails(paymentId);
2305        }
2306      }
2307    ];
2308    return paymentButton;
2309  }
2310  selfRemovingDialogActions(dialogRef, formData, role, isPrimaryUser, selfRemovingAction = false, creatingNewAccountManager = false) {
2311    var buttons = [{
2312      id: "cancel",
2313      label: "Generic_Cancel",
2314      styleType: "outlined",
2315      color: "light",
2316      onClick: () => dialogRef.close()
2317    }];
2318    if (isPrimaryUser) {
2319      buttons.push({
2320        id: "share_off",
2321        label: "Generic_Continue",
2322        styleType: "contained",
2323        color: "",
2324        onClick: () => __async(this, null, function* () {
2325          if (selfRemovingAction) {
2326            if (creatingNewAccountManager) {
2327              this.selfRemovingDialogRef.close();
2328              this.companyStore.saveCompanyUser(this.saveUserRequest).then((resp) => {
2329                if (resp.success) {
2330                  this.firstName = this.accountManagerForm.get("firstName").value;
2331                  this.lastName = this.accountManagerForm.get("lastName").value;
2332                  this.email = this.accountManagerForm.get("email").value;
2333                  this.showAlertAccountManager = true;
2334                  setTimeout(() => {
2335                    this.showAlertAccountManager = false;
2336                    this.accountManagerDialogRef?.close();
2337                    location.reload();
2338                  }, 3e3);
2339                }
2340              });
2341            } else {
2342              this.companyStore.assignUserAsAccountManager(formData).then((resp) => {
2343                if (resp.success) {
2344                  this.selfRemovingDialogRef.close();
2345                  this.accountManagerDialogRef?.close();
2346                  location.reload();
2347                }
2348              });
2349            }
2350          } else {
2351            this.selfRemovingDialogRef.close();
2352            this.setPrimaryUserDialog(formData, true);
2353          }
2354        })
2355      });
2356    } else {
2357      buttons.push({
2358        id: "share_off",
2359        label: "Generic_Confirm",
2360        styleType: "contained",
2361        color: "",
2362        onClick: () => __async(this, null, function* () {
2363          if (role == Role.COMPANY_ADMIN) {
2364            this.companyStore.removeUserAsCompanyAdmin(formData).then((resp) => {
2365              if (resp.success) {
2366                dialogRef.close();
2367                location.reload();
2368              }
2369            });
2370          } else {
2371            this.companyStore.removeUserAsAccountManger(formData).then((resp) => {
2372              if (resp.success) {
2373                dialogRef.close();
2374                location.reload();
2375              }
2376            });
2377          }
2378        })
2379      });
2380    }
2381    return buttons;
2382  }
2383  getUserDisplayName = getUserDisplayName;
2384  constructor(countryService) {
2385    this.countryService = countryService;
2386    this.commonStore.getCountries();
2387    effect(() => {
2388      if (this.companyStore.fetched()) {
2389        this.initializeForms();
2390        const companyTypeControl = this.companyDetailsForm.get("companyType");
2391        if (!this.isCustomerService$()) {
2392          companyTypeControl?.disable({ emitEvent: false });
2393        }
2394      }
2395    });
2396  }
2397  ngOnInit() {
2398    this.initializeForms();
2399  }
2400  sendEmailReceipt() {
2401    return __async(this, null, function* () {
2402      if (this.emailReceiptsForm.invalid)
2403        return;
2404      yield firstValueFrom(this.purchaseService.emailPurchaseReceipt({
2405        paymentId: this.transaction?.paymentId,
2406        fromPaymentPanel: true,
2407        email: this.emailReceiptsForm.get("emailReceipt")?.value
2408      }));
2409      this.emailDialogRef.close();
2410    });
2411  }
2412  userButtons(admin) {
2413    const buttons = [];
2414    const setPrimaryButton = {
2415      id: "1",
2416      label: "Set As Primary",
2417      styleType: "text",
2418      blackText: true,
2419      iconName: "check",
2420      onClick: () => {
2421        this.assignOrRemoveRole(admin, "setAsPrimary");
2422      }
2423    };
2424    if (!admin.isPrimaryUser) {
2425      buttons.push(setPrimaryButton);
2426    }
2427    return buttons;
2428  }
2429  teamButtons(team) {
2430    const buttons = [
2431      {
2432        id: "1",
2433        label: "Edit Team",
2434        iconName: "edit",
2435        onClick: () => {
2436          this.onEditTeam(team);
2437        }
2438      },
2439      {
2440        id: "2",
2441        label: "Delete Team",
2442        iconName: "delete",
2443        onClick: () => {
2444          this.onDeleteTeam(team);
2445        }
2446      }
2447    ];
2448    return buttons;
2449  }
2450  handleUserTeamAction(event) {
2451    const userUpdate = {
2452      userId: event.user.userId,
2453      teamId: this.currentTeam,
2454      action: event.action,
2455      companyId: event.user.companyId,
2456      user: event.user
2457    };
2458    if (event.action === "remove") {
2459      this.confirmRemoveUser(userUpdate);
2460      return;
2461    }
2462    this.companyStore.clearCompanyUsersByTeam();
2463    this.companyStore.addOrRemoveUserFromTeam(userUpdate);
2464  }
2465  handleAccountManagerAction(event) {
2466    this.assignOrRemoveRole(event.user, event.action, Role.ACCOUNT_MANAGER);
2467  }
2468  handleUserAdminAction(event, forPrimaryCustomerAdmin = false) {
2469    if (forPrimaryCustomerAdmin) {
2470      const dialogData = this.addPrimaryUserDialogRef.componentInstance.data;
2471      this.companyStore.addAndRemovePrimaryCompanyAdmins({
2472        removedCompanyAdmin: dialogData.currentRemovedCompanyAdmin,
2473        newPrimaryCompanyAdmin: event.user,
2474        addNewCompanyAdmin: true,
2475        fromAccountManagerPanel: dialogData.fromAccountManagerPanel
2476      }).then(() => {
2477        if (dialogData.fromAccountManagerPanel) {
2478          this.accountManagerDialogRef?.close();
2479          this.addPrimaryUserDialogRef.close();
2480          if (dialogData.currentCompanyAdmin) {
2481            location.reload();
2482          }
2483        } else {
2484          dialogData.isSelfRemoving ? location.reload() : this.addPrimaryUserDialogRef.close();
2485        }
2486      });
2487    } else {
2488      this.assignOrRemoveRole(event.user, event.action, Role.COMPANY_ADMIN);
2489    }
2490  }
2491  assignOrRemoveRole(user, action, role) {
2492    const companyId = this.company$.companyId();
2493    const userInfo = user ? user : this.company$.accountManager();
2494    const isPrimary = user?.isPrimaryUser;
2495    const formData = __spreadProps(__spreadValues({}, userInfo), { role, companyId });
2496    const isSelfRemoving = this.userStore.user().email == user.email;
2497    const currentCompanyAdmin = this.companyAdmins$().some((admin) => admin.userId == this.user$().userId);
2498    const currentAccountManager = this.company$.accountManager()?.userId == this.user$().userId;
2499    if (action == "setAsPrimary") {
2500      this.companyStore.setAsPrimary(formData);
2501      return;
2502    }
2503    if (role == Role.COMPANY_ADMIN) {
2504      if (action == "remove") {
2505        if (isSelfRemoving) {
2506          this.selfRemovingDialog(formData, Role.COMPANY_ADMIN, isPrimary);
2507        } else {
2508          if (isPrimary) {
2509            this.setPrimaryUserDialog(formData);
2510          } else {
2511            this.companyStore.removeUserAsCompanyAdmin(formData);
2512          }
2513        }
2514      }
2515      if (action == "add") {
2516        this.companyStore.assignUserAsCompanyAdmin(formData).then((resp) => {
2517          if (resp.success) {
2518            if (currentAccountManager) {
2519              location.reload();
2520            }
2521          }
2522        });
2523      }
2524    }
2525    if (role == Role.ACCOUNT_MANAGER) {
2526      if (action == "remove") {
2527        if (isSelfRemoving) {
2528          this.selfRemovingDialog(formData, Role.ACCOUNT_MANAGER);
2529        } else {
2530          this.companyStore.removeUserAsAccountManger(formData).then((resp) => {
2531            if (resp.success) {
2532              this.accountManagerDialogRef?.close();
2533            }
2534          });
2535        }
2536      }
2537      if (action == "add") {
2538        if (isPrimary) {
2539          this.setPrimaryUserDialog(formData, isSelfRemoving, true, currentCompanyAdmin);
2540        } else if (currentAccountManager) {
2541          this.selfRemovingDialog(formData, Role.ACCOUNT_MANAGER, true, true);
2542        } else {
2543          this.companyStore.assignUserAsAccountManager(formData).then((resp) => {
2544            if (resp.success) {
2545              this.accountManagerDialogRef?.close();
2546              if (isSelfRemoving || currentCompanyAdmin) {
2547                location.reload();
2548              }
2549            }
2550          });
2551        }
2552      }
2553    }
2554  }
2555  confirmRemoveUser(user) {
2556    const dialogRef = this.dialog.open(DialogComponent, {
2557      width: "530px",
2558      maxHeight: "135px",
2559      data: {
2560        title: "COMPANY_SETTINGS.MANAGE_TEAMS.REMOVE_USER",
2561        icon: "person",
2562        message: "COMPANY_SETTINGS.MANAGE_TEAMS.CONFIRM_REMOVE_USER",
2563        actions: [
2564          {
2565            id: "cancel",
2566            label: "Generic_Cancel",
2567            styleType: "contained",
2568            color: "light",
2569            onClick: () => dialogRef.close()
2570          },
2571          {
2572            id: "confirm",
2573            label: "Generic_Confirm",
2574            styleType: "contained",
2575            color: "error",
2576            onClick: () => __async(this, null, function* () {
2577              this.companyStore.clearCompanyUsersByTeam();
2578              this.companyStore.addOrRemoveUserFromTeam(user);
2579              dialogRef.close();
2580            })
2581          }
2582        ]
2583      }
2584    });
2585  }
2586  selfRemovingDialog(formData, role, isPrimaryUser = false, selfRemovingAction = false, creatingNewAccountManager = false) {
2587    this.selfRemovingDialogRef = this.dialog.open(DialogComponent, {
2588      width: "530px",
2589      maxHeight: "135px",
2590      data: {
2591        title: "Generic_Removing_Yourself",
2592        icon: "key_outline",
2593        content: this.removingLoggedInUserFromCompanySettings,
2594        actions: []
2595      }
2596    });
2597    this.selfRemovingDialogRef.componentInstance.data.actions = this.selfRemovingDialogActions(this.selfRemovingDialogRef, formData, role, isPrimaryUser, selfRemovingAction, creatingNewAccountManager);
2598  }
2599  setPrimaryUserDialog(formData, isSelfRemoving = false, fromAccountManagerPanel = false, currentCompanyAdmin = false) {
2600    const companyAdmins = this.companyAdmins$().filter((admin) => admin.email !== formData.email);
2601    if (companyAdmins.length === 1) {
2602      this.companyStore.addAndRemovePrimaryCompanyAdmins({
2603        removedCompanyAdmin: formData,
2604        newPrimaryCompanyAdmin: companyAdmins[0],
2605        fromAccountManagerPanel
2606      }).then(() => {
2607        if (isSelfRemoving || currentCompanyAdmin) {
2608          location.reload();
2609        } else if (fromAccountManagerPanel) {
2610          this.accountManagerDialogRef?.close();
2611        }
2612      });
2613    } else if (companyAdmins.length === 0) {
2614      this.addPrimaryUserDialogRef = this.dialog.open(DialogComponent, {
2615        height: "900px",
2616        maxHeight: "900px",
2617        width: "42rem",
2618        maxWidth: "42rem",
2619        data: {
2620          title: "COMPANY_SETTINGS.Add_Company_Admin",
2621          icon: "group_add",
2622          description: "",
2623          content: this.addCompanyAdmins,
2624          currentRemovedCompanyAdmin: formData,
2625          fromAccountManagerPanel,
2626          currentCompanyAdmin,
2627          isSelfRemoving
2628        }
2629      });
2630    } else {
2631      this.primaryUserDialogRef = this.dialog.open(DialogComponent, {
2632        width: "650px",
2633        height: "600px",
2634        data: {
2635          title: "SELECT_USER.SELECT_A_USER",
2636          icon: "person",
2637          content: UserSelectorModalContainerComponent,
2638          dataForComponent: {
2639            alertMessage: "SELECT_USER.SELECT_A_NEW_PRIMARY_COMPANY_ADMIN_MESSAGE",
2640            companyAdmins,
2641            multiSelect: false
2642          }
2643        }
2644      });
2645      this.openSetPrimaryUserDialog(formData, isSelfRemoving, fromAccountManagerPanel, currentCompanyAdmin);
2646    }
2647  }
2648  loadMoreUsersTeam() {
2649    this.companyStore.getTeamUser({
2650      teamId: this.currentTeam,
2651      pageNumber: this.companyUsersByTeamPagination$().page + 1,
2652      userSearchType: UserSearchType.COMPANY
2653    });
2654  }
2655  dialogRef;
2656  initializeForms() {
2657    this.companySettingsForm = this.formBuilder.group({
2658      enableCompanyCommon: [this.company$.enableCompanyCommon()],
2659      enableTeamsView: [this.company$.enableTeamsView()],
2660      subscriptionRenewal: [this.company$.subscriptionRenewalNotifications()],
2661      nmftaNotifications: [this.company$.nmftaNotifications()],
2662      inactiveUsersNotifications: [this.company$.inactiveUsersNotifications()],
2663      enableComments: [this.company$.enableComments()],
2664      enableShareComments: [this.company$.enableShareComments()],
2665      enableSynonyms: [this.company$.enableSynonyms()],
2666      enableShareSynonyms: [this.company$.enableShareSynonyms()]
2667    });
2668    this.companyDetailsForm = this.formBuilder.group({
2669      membershipId: [this.company$.membershipId()],
2670      companyName: [this.company$.companyName()],
2671      companyPhone: [this.company$.companyPhone(), [Validators.required]],
2672      primaryContactName: [this.company$().primaryUser?.firstName + " " + this.company$().primaryUser?.lastName],
2673      primaryEmail: [this.company$().primaryUser?.email, [Validators.required]],
2674      country: [this.company$.country()],
2675      city: [this.company$.city(), noWhiteSpaces],
2676      stateLabelText: ["Generic_StateIntlLabel"],
2677      state: [this.company$.state(), noWhiteSpaces],
2678      postalCode: [this.company$.postalCode(), noWhiteSpaces],
2679      companyAddress: [
2680        this.company$.companyAddress(),
2681        [Validators.required, noWhiteSpaces, specialCharactersValidator]
2682      ],
2683      companyType: [
2684        this.company$.type(),
2685        [Validators.required]
2686      ]
2687    });
2688    this.emailReceiptsForm = this.formBuilder.group({
2689      emailReceipt: ["", [Validators.required, multipleEmailsValidator]]
2690    });
2691    let previousFormSettings = __spreadValues({}, this.companySettingsForm.value);
2692    this.companySettingsForm.valueChanges.subscribe((x) => {
2693      if (previousFormSettings.enableCompanyCommon && !x.enableCompanyCommon) {
2694        this.dialogRef = this.dialog.open(DialogComponent, {
2695          width: "530px",
2696          data: {
2697            title: "Generic_Warning",
2698            icon: "warning",
2699            description: "",
2700            message: "COMPANY_SETTINGS.DISABLE_COMPANY_COMMON_WARNING",
2701            actions: [
2702              {
2703                id: "cancel",
2704                label: "Generic_Cancel",
2705                styleType: "contained",
2706                color: "light",
2707                onClick: () => this.dialogRef.close()
2708              },
2709              {
2710                id: "confirm",
2711                label: "Generic_Confirm",
2712                styleType: "contained",
2713                color: "error",
2714                onClick: () => {
2715                  this.dialogRef.close();
2716                  this.companySettingsForm.patchValue({ enableCompanyCommon: false }, { emitEvent: false });
2717                  x.enableCompanyCommon = false;
2718                  this.companycommonstatus(x, previousFormSettings);
2719                }
2720              }
2721            ]
2722          }
2723        });
2724        this.companySettingsForm.patchValue({ enableCompanyCommon: true }, { emitEvent: false });
2725        x.enableCompanyCommon = true;
2726        return;
2727      }
2728      this.companycommonstatus(x, previousFormSettings);
2729    });
2730    this.countryService.updateAddressRequiredFields(this.companyDetailsForm);
2731  }
2732  companycommonstatus(x, previousFormSettings) {
2733    const openWarningDialog = (message) => {
2734      this.dialogRef = this.dialog.open(DialogComponent, {
2735        width: "530px",
2736        data: {
2737          title: "Generic_Warning",
2738          icon: "warning",
2739          description: "",
2740          content: "",
2741          message
2742        }
2743      });
2744    };
2745    const rules = [
2746      {
2747        // Teams view requires company common
2748        condition: !x.enableCompanyCommon && x.enableTeamsView,
2749        prev: !previousFormSettings.enableTeamsView && x.enableTeamsView && !x.enableCompanyCommon,
2750        patch: { enableTeamsView: false },
2751        message: "COMPANY_SETTINGS.UNABLE_TO_ENABLE_TEAMS_VIEW",
2752        shareKey: "enableTeamsView"
2753      },
2754      {
2755        // Share comments requires comments and company common
2756        condition: (!x.enableComments || !x.enableCompanyCommon) && x.enableShareComments,
2757        prev: !previousFormSettings.enableShareComments && x.enableShareComments && (!x.enableComments || !x.enableCompanyCommon),
2758        patch: { enableShareComments: false },
2759        message: "COMPANY_SETTINGS.UNABLE_TO_ENABLE_SHARE_COMMENTS",
2760        shareKey: "enableShareComments"
2761      },
2762      {
2763        // Share synonyms requires synonyms
2764        condition: (!x.enableSynonyms || !x.enableCompanyCommon) && x.enableShareSynonyms,
2765        prev: !previousFormSettings.enableShareSynonyms && x.enableShareSynonyms && (!x.enableSynonyms || !x.enableCompanyCommon),
2766        patch: { enableShareSynonyms: false },
2767        message: "COMPANY_SETTINGS.UNABLE_TO_UPDATE_SYNONYMS_MESSAGE",
2768        shareKey: "enableShareSynonyms"
2769      }
2770    ];
2771    var displayWarning = false;
2772    for (const rule of rules) {
2773      if (rule.condition) {
2774        if (rule.prev) {
2775          openWarningDialog(rule.message);
2776          displayWarning = true;
2777        }
2778        this.companySettingsForm.patchValue(rule.patch, { emitEvent: false });
2779        x[rule.shareKey] = false;
2780      }
2781      ;
2782    }
2783    ;
2784    if (!previousFormSettings.enableCompanyCommon && x.enableCompanyCommon) {
2785      this.companySettingsForm.patchValue({
2786        enableSynonyms: true,
2787        enableComments: true,
2788        enableShareComments: true,
2789        enableShareSynonyms: true
2790      }, { emitEvent: false });
2791      x.enableSynonyms = true;
2792      x.enableComments = true;
2793      x.enableShareComments = true;
2794      x.enableShareSynonyms = true;
2795    }
2796    if (!previousFormSettings.enableSynonyms && x.enableSynonyms && x.enableCompanyCommon) {
2797      this.companySettingsForm.patchValue({
2798        enableShareSynonyms: true
2799      }, { emitEvent: false });
2800      x.enableShareSynonyms = true;
2801    }
2802    if (!previousFormSettings.enableComments && x.enableComments && x.enableCompanyCommon) {
2803      this.companySettingsForm.patchValue({
2804        enableShareComments: true
2805      }, { emitEvent: false });
2806      x.enableShareComments = true;
2807    }
2808    if (!displayWarning) {
2809      const companySettings = {
2810        companyId: this.companyId$(),
2811        subscriptionRenewalNotifications: x.subscriptionRenewal,
2812        nmftaNotifications: x.nmftaNotifications,
2813        inactiveUsersNotifications: x.inactiveUsersNotifications,
2814        enableComments: x.enableComments,
2815        enableShareComments: x.enableShareComments,
2816        enableCompanyCommon: x.enableCompanyCommon,
2817        enableTeamsView: x.enableTeamsView,
2818        enableSynonyms: x.enableSynonyms,
2819        enableShareSynonyms: x.enableShareSynonyms
2820      };
2821      this.companyStore.updateCompanySettings(companySettings);
2822    }
2823  }
2824  editCompanyDetailsForm() {
2825    this.companyDetailsForm.patchValue({
2826      membershipId: this.company$.membershipId(),
2827      companyName: this.company$.companyName(),
2828      companyPhone: this.company$.companyPhone(),
2829      primaryContactName: this.company$().primaryUser?.firstName + " " + this.company$().primaryUser?.lastName,
2830      primaryEmail: this.company$().primaryUser?.email,
2831      country: this.company$.country(),
2832      city: this.company$.city(),
2833      state: this.company$.state(),
2834      postalCode: this.company$.postalCode(),
2835      companyAddress: this.company$.companyAddress()
2836    });
2837    if (!this.user$().features.CompanyDetails_EditMembershipId) {
2838      this.companyDetailsForm.get("membershipId")?.disable();
2839    }
2840    if (!this.user$().features.CompanyDetails_EditCompanyName) {
2841      this.companyDetailsForm.get("companyName")?.disable();
2842    }
2843    this.companyDetailsForm.get("primaryContactName")?.disable();
2844    this.companyDetailsForm.get("primaryEmail")?.disable();
2845    this.editDialogRef = this.dialog.open(DialogComponent, {
2846      height: "auto",
2847      width: "42rem",
2848      disableClose: true,
2849      data: {
2850        title: "Edit Company Details",
2851        icon: "edit",
2852        content: this.editCompanyDetails,
2853        dataForComponent: this.companyDetailsForm.value
2854      }
2855    });
2856  }
2857  saveUserInfo() {
2858    if (this.companyDetailsForm.invalid)
2859      return;
2860    const companyId = this.company$.companyId();
2861    const formData = __spreadProps(__spreadValues({}, this.companyDetailsForm.getRawValue()), { companyId });
2862    this.companyStore.updateCompanyInfo(formData);
2863    this.editDialogRef.close();
2864  }
2865  closeEditDialog() {
2866    this.editDialogRef.close(null);
2867  }
2868  editTeams() {
2869    this.createTeamForm.reset();
2870    this.displayTeams = "teamView";
2871    this.dialog.open(DialogComponent, {
2872      height: "auto",
2873      width: "42rem",
2874      maxWidth: "42rem",
2875      maxHeight: "45.625rem",
2876      data: {
2877        title: "Manage Teams",
2878        icon: "group",
2879        description: "",
2880        content: this.manageTeams,
2881        dataForComponent: null
2882      }
2883    });
2884  }
2885  openAllTransactions() {
2886    this.allTransactionsFlow = true;
2887    this.transactionsDialogRef = this.dialog.open(DialogComponent, {
2888      height: "auto",
2889      width: "100%",
2890      maxWidth: "42rem",
2891      maxHeight: "52rem",
2892      data: {
2893        title: "All Transactions",
2894        icon: "credit_card",
2895        content: this.transactionsDialog,
2896        dataForComponent: null
2897      }
2898    });
2899  }
2900  openPaymentDetails(paymentId) {
2901    this.transactionsDialogRef?.close();
2902    this.transaction = this.paymentDetails$().find((payment) => payment.paymentId === paymentId);
2903    this.paymentDialogRef = this.dialog.open(DialogComponent, {
2904      height: "auto",
2905      width: "100%",
2906      maxWidth: "42rem",
2907      maxHeight: "52rem",
2908      data: {
2909        title: "Transaction Details",
2910        icon: "credit_card",
2911        content: this.paymentDialog,
2912        dataForComponent: null
2913      }
2914    });
2915    this.paymentDialogRef.afterClosed().subscribe((result) => {
2916      if (this.allTransactionsFlow && this.emailDialogRef?.getState() !== MatDialogState.OPEN) {
2917        this.openAllTransactions();
2918      }
2919    });
2920  }
2921  downloadPaymentReceipt() {
2922    return __async(this, null, function* () {
2923      this.isPrintingReceipt = true;
2924      const response = yield firstValueFrom(this.purchaseService.printPurchaseReceipt({
2925        paymentId: this.transaction.paymentId,
2926        fromPaymentPanel: true
2927      }));
2928      try {
2929        const blob = new Blob([response.blob], { type: "application/octet-stream" });
2930        const url = window.URL.createObjectURL(blob);
2931        const fileName = `${this.transaction?.name.replace(/\s+/g, "")}-${this.transaction?.transactionId}.pdf`;
2932        const clicker = document.createElement("a");
2933        clicker.style.display = "none";
2934        document.body.append(clicker);
2935        clicker.href = url;
2936        clicker.download = fileName;
2937        clicker.click();
2938        this.isPrintingReceipt = false;
2939      } catch (error) {
2940        this.isPrintingReceipt = false;
2941        return;
2942      } finally {
2943        this.isPrintingReceipt = false;
2944      }
2945    });
2946  }
2947  openEmailReceiptDialog() {
2948    this.paymentDialogRef?.close();
2949    this.emailReceiptsForm.reset();
2950    this.emailDialogRef = this.dialog.open(DialogComponent, {
2951      height: "auto",
2952      width: "42rem",
2953      maxWidth: "42rem",
2954      data: {
2955        title: "Email Receipt",
2956        icon: "email",
2957        content: this.emailReceipt,
2958        dataForComponent: null
2959      }
2960    });
2961    this.emailDialogRef.afterClosed().subscribe(() => {
2962      this.openPaymentDetails(this.transaction.paymentId);
2963    });
2964  }
2965  closeEmailReceiptDialog() {
2966    this.emailDialogRef.close();
2967  }
2968  loadMoreTransactions() {
2969    this.companyStore.loadMorePayments();
2970  }
2971  onEditTeam(team) {
2972    this.displayTeams = "manageView";
2973    this.selectedTeam = team;
2974    this.currentTeam = team.teamId;
2975    const searchFilter = {
2976      companyId: this.company$().companyId,
2977      teamId: this.currentTeam,
2978      pageSize: 10,
2979      tableSearch: false,
2980      pageNumber: 1,
2981      userSearchType: UserSearchType.COMPANY
2982    };
2983    this.companyStore.clearCompanyUsersByTeam();
2984    this.companyStore.getTeamUser(searchFilter);
2985  }
2986  onDeleteTeam(team) {
2987    team.companyId = this.companyId$();
2988    const dialogRef = this.dialog.open(DialogComponent, {
2989      height: "300px",
2990      width: "42rem",
2991      maxWidth: "42rem",
2992      data: {
2993        title: "Delete Team",
2994        icon: "person",
2995        description: "",
2996        content: this.deletingTeam,
2997        actions: [
2998          {
2999            id: "cancel",
3000            label: "Generic_Cancel",
3001            styleType: "contained",
3002            color: "light",
3003            onClick: () => dialogRef.close()
3004          },
3005          {
3006            id: "confirm",
3007            label: "Generic_Confirm",
3008            styleType: "contained",
3009            color: "error",
3010            onClick: () => {
3011              this.companyStore.deleteTeam(team);
3012              dialogRef.close();
3013            }
3014          }
3015        ]
3016      }
3017    });
3018  }
3019  manageTeamsView() {
3020    this.displayTeams = "teamView";
3021  }
3022  createTeam() {
3023    const companyId = this.company$.companyId();
3024    const newTeam = __spreadProps(__spreadValues({}, this.createTeamForm.value), { companyId });
3025    this.companyStore.createTeam(newTeam);
3026  }
3027  editAccountManager() {
3028    this.accountManagerDialogRef = this.dialog.open(DialogComponent, {
3029      height: "700px",
3030      width: "42rem",
3031      maxWidth: "42rem",
3032      data: {
3033        title: "Manage Account Manager",
3034        icon: "person",
3035        description: "",
3036        content: this.manageAccountManager,
3037        dataForComponent: this.accountManagerForm.value
3038      }
3039    });
3040  }
3041  sendInvitation() {
3042    if (this.accountManagerForm.invalid)
3043      return;
3044    this.saveUserRequest = {
3045      companyUser: {
3046        companyId: this.company$().companyId,
3047        email: this.accountManagerForm.get("email")?.value,
3048        userId: null,
3049        firstName: this.accountManagerForm.get("firstName")?.value,
3050        lastName: this.accountManagerForm.get("lastName")?.value,
3051        phone: this.accountManagerForm.get("phone")?.value,
3052        title: this.accountManagerForm.get("title")?.value,
3053        role: Role.ACCOUNT_MANAGER
3054      },
3055      action: UserAction.CREATE_ACCOUNT_MANAGER
3056    };
3057    if (this.company$.accountManager()?.userId == this.user$().userId) {
3058      this.selfRemovingDialog(this.saveUserRequest.companyUser, Role.ACCOUNT_MANAGER, true, true, true);
3059    } else {
3060      this.companyStore.saveCompanyUser(this.saveUserRequest).then((resp) => {
3061        if (resp.success) {
3062          this.firstName = this.accountManagerForm.get("firstName").value;
3063          this.lastName = this.accountManagerForm.get("lastName").value;
3064          this.email = this.accountManagerForm.get("email").value;
3065          this.showAlertAccountManager = true;
3066          setTimeout(() => {
3067            this.showAlertAccountManager = false;
3068            this.accountManagerDialogRef?.close();
3069            this.accountManagerForm.reset();
3070          }, 3e3);
3071        }
3072      });
3073    }
3074  }
3075  createNewCompanyAdmin() {
3076    if (this.companyAdminForm.invalid)
3077      return;
3078    const dialogData = this.addPrimaryUserDialogRef.componentInstance.data;
3079    const request = {
3080      companyUser: {
3081        companyId: this.company$().companyId,
3082        email: this.companyAdminForm.get("email")?.value,
3083        userId: null,
3084        firstName: this.companyAdminForm.get("firstName")?.value,
3085        lastName: this.companyAdminForm.get("lastName")?.value,
3086        phone: this.companyAdminForm.get("phone")?.value,
3087        title: this.companyAdminForm.get("title")?.value,
3088        role: Role.COMPANY_ADMIN,
3089        isPrimaryUser: true
3090      },
3091      action: UserAction.CREATE
3092    };
3093    this.companyStore.addAndRemovePrimaryCompanyAdmins({
3094      removedCompanyAdmin: dialogData.currentRemovedCompanyAdmin,
3095      newCreatedUser: request,
3096      fromAccountManagerPanel: dialogData.fromAccountManagerPanel
3097    }).then((resp) => {
3098      if (resp.success) {
3099        this.firstName = this.companyAdminForm.get("firstName").value;
3100        this.lastName = this.companyAdminForm.get("lastName").value;
3101        this.email = this.companyAdminForm.get("email").value;
3102        this.showAlertCompanyAdmin = true;
3103        setTimeout(() => {
3104          this.showAlertCompanyAdmin = false;
3105          dialogData.isSelfRemoving || dialogData.currentCompanyAdmin ? location.reload() : this.addPrimaryUserDialogRef?.close();
3106          this.companyAdminForm.reset();
3107          if (dialogData.fromAccountManagerPanel) {
3108            this.accountManagerDialogRef?.close();
3109          }
3110        }, 3e3);
3111      }
3112    });
3113  }
3114  editCompanyAdmins() {
3115    this.dialog.open(DialogComponent, {
3116      height: "700px",
3117      width: "42rem",
3118      maxWidth: "42rem",
3119      data: {
3120        title: "Manage Company Admins",
3121        icon: "person",
3122        description: "",
3123        content: this.manageCompanyAdmins,
3124        dataForComponent: null
3125      }
3126    });
3127  }
3128  viewCompanyNotes() {
3129    this.dialog.open(DialogComponent, {
3130      width: "648px",
3131      height: "100%",
3132      maxHeight: "47.75rem",
3133      data: {
3134        title: "Notes",
3135        icon: "note_stack",
3136        content: NotesContainerComponent,
3137        dataForComponent: {
3138          classKeyId: this.companyId$(),
3139          class: NoteClass.Company
3140        }
3141      }
3142    });
3143  }
3144  openSetPrimaryUserDialog(formData, isSelfRemoving = false, fromAccountManagerPanel = false, currentCompanyAdmin = false) {
3145    this.primaryUserDialogRef.afterOpened().subscribe(() => {
3146      const instance = this.primaryUserDialogRef.componentInstance;
3147      const contentInstance = instance.contentComponentRef.instance;
3148      if (contentInstance instanceof UserSelectorModalContainerComponent) {
3149        contentInstance.closeModal.subscribe(() => {
3150          this.primaryUserDialogRef.close();
3151        });
3152        contentInstance.selectedCompanyUsers.subscribe((selectedUsers) => {
3153          if (selectedUsers.length > 0) {
3154            const selectedUser = this.companyAdmins$().find((user) => user.email === selectedUsers[0].email);
3155            this.companyStore.addAndRemovePrimaryCompanyAdmins({
3156              removedCompanyAdmin: formData,
3157              newPrimaryCompanyAdmin: selectedUser,
3158              fromAccountManagerPanel
3159            }).then(() => {
3160              if (fromAccountManagerPanel) {
3161                this.primaryUserDialogRef.close();
3162                this.accountManagerDialogRef?.close();
3163                if (currentCompanyAdmin) {
3164                  location.reload();
3165                }
3166              } else {
3167                isSelfRemoving ? location.reload() : this.primaryUserDialogRef.close();
3168              }
3169            });
3170          }
3171        });
3172      }
3173    });
3174  }
3175  getDataPanelValue(propertyName, propertyValue) {
3176    if (propertyName === "COMPANY_SETTINGS.MEMBERSHIP_ID")
3177      return (propertyValue ?? "").trim() === "" ? "Not a Member" : propertyValue;
3178    return propertyValue;
3179  }
3180  static \u0275fac = function CompanySettingsComponent_Factory(__ngFactoryType__) {
3181    return new (__ngFactoryType__ || _CompanySettingsComponent)(\u0275\u0275directiveInject(CountryService));
3182  };
3183  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _CompanySettingsComponent, selectors: [["app-company-settings"]], viewQuery: function CompanySettingsComponent_Query(rf, ctx) {
3184    if (rf & 1) {
3185      \u0275\u0275viewQuery(_c02, 7);
3186      \u0275\u0275viewQuery(_c1, 7);
3187      \u0275\u0275viewQuery(_c2, 7);
3188      \u0275\u0275viewQuery(_c3, 7);
3189      \u0275\u0275viewQuery(_c4, 7);
3190      \u0275\u0275viewQuery(_c5, 7);
3191      \u0275\u0275viewQuery(_c6, 7);
3192      \u0275\u0275viewQuery(_c7, 7);
3193      \u0275\u0275viewQuery(_c8, 7);
3194      \u0275\u0275viewQuery(_c9, 7);
3195      \u0275\u0275viewQuery(_c10, 7);
3196    }
3197    if (rf & 2) {
3198      let _t;
3199      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.editCompanyDetails = _t.first);
3200      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.manageTeams = _t.first);
3201      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.paymentDialog = _t.first);
3202      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.transactionsDialog = _t.first);
3203      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.manageAccountManager = _t.first);
3204      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.addCompanyAdmins = _t.first);
3205      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.manageCompanyAdmins = _t.first);
3206      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.remov
vendor: 5,160 bytes, lines 3206-3211
3206ingLoggedInUserFromCompanySettings = _t.first);
3207      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.deletingTeam = _t.first);
3208      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.emailReceipt = _t.first);
3209      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.unableToUpdateSynonyms = _t.first);
3210    }
3211  }, decls: 60, vars: 37, consts: [["editCompanyDetails", ""], ["manageTeams", ""], ["manageAccountManager", ""], ["addCompanyAdmins", ""], ["manageCompanyAdmins", ""], ["removingLoggedInUserFromCompanySettings", ""], ["deletingTeam", ""], ["emailReceipt", ""], ["paymentDialog", ""], ["transactionsDialog", ""], ["unableToUpdateSynonyms", ""], [3, "title"], [1, "card-columns", "pb-4"], [1, "card"], ["title", "COMPANY_SETTINGS.COMPANY_DETAILS", 3, "isLoading", "footerActions", "headerActions"], ["count", "6", 3, "theme"], ["title", "COMPANY_SETTINGS.COMPANY_COMMON", 3, "isLoading"], ["count", "2", 3, "theme"], [1, "form-content", 3, "formGroup"], ["title", "COMPANY_SETTINGS.RESOURCES", 3, "isLoading", "alert"], ["title", "Notifications", 3, "isLoading", "subTitle", "alert"], ["title", "Generic_Subscription", 3, "headerActions", "isLoading"], ["count", "3", 3, "theme"], ["title", "Company Admins", 3, "isLoading", "headerActions", "subTitle", "alert"], ["count", "5", 3, "theme"], ["title", "Company Users", 3, "isLoading", "headerActions"], [3, "propertyName", "propertyValue", "control"], [3, "propertyName", "propertyValue", "fullLineDescription", "isToggle", "control"], ["title", "Team View", 3, "isLoading", "headerActions", "subTitle"], [3, "propertyName", "propertyValue"], [3, "propertyName", "propertyValue", "isToggle", "control"], [3, "propertyName", "propertyValue", "fullLineDescription"], ["title", "Generic_PaymentDetails", "subTitle", "Generic_PaymentDescription", 3, "headerActions", "isLoading"], [3, "icon", "propertyName", "chip", "isDropDown", "actions", "description"], [3, "icon", "propertyName", "description", "isDropDown", "actions"], ["title", "Account Manager", 3, "headerActions", "isLoading"], ["count", "1", 3, "theme"], [3, "icon", "propertyName", "isDropDown"], [1, "dialog-template", 3, "formGroup"], [1, "dialog-template-scrollable-container"], [1, "row"], [1, "col-12", "col-sm-6"], ["label", "PURCHASE.COMPANY_FORM.MEMBER_ID"], [1, "input-container"], ["matInput", "", "type", "text", "name", "membershipId", "formControlName", "membershipId", 3, "placeholder"], ["label", "COMPANY_SETTINGS.PRIMARY_CONTACT"], ["matInput", "", "type", "text", "name", "'primaryContactFirstName + primaryContactLastName'", "formControlName", "primaryContactName", 3, "placeholder"], [1, "col-12", "col-sm-7"], ["label", "COMPANY_SETTINGS.COMPANY_NAME"], ["matInput", "", "type", "text", "name", "companyName", "formControlName", "companyName", 3, "placeholder"], [1, "col-12", "col-sm-5"], ["label", "PURCHASE.COMPANY_FORM.PHONE"], ["matInput", "", "type", "text", "name", "companyPhone", "formControlName", "companyPhone", 3, "placeholder"], ["label", "PURCHASE.COMPANY_FORM.COUNTRY"], ["id", "country", "formControlName", "country"], [3, "value"], [3, "label"], ["type", "text", "name", "city", "id", "city", "formControlName", "city", "maxlength", "50", 3, "placeholder"], ["type", "text", "name", "state", "id", "state", "formControlName", "state", 3, "placeholder"], ["type", "text", "name", "postalCode", "id", "postalCode", "formControlName", "postalCode", "maxlength", "10", 3, "placeholder"], [1, "col-12"], ["type", "text", "name", "companyAddress", "id", "companyAddress", "formControlName", "companyAddress", "maxlength", "200", 3, "placeholder"], ["label", "PURCHASE.COMPANY_FORM.COMPANY_TYPE"], ["id", "companyType", "formControlName", "companyType"], [1, "dialog-template-footer"], ["type", "text", 3, "buttonClick", "styleType"], ["type", "text", 3, "buttonClick", "styleType", "disabled"], [1, "select-team-content"], [1, "manage-view"], [1, "edit-form", 3, "formGroup"], [1, "form-row", "d-flex"], [1, "align-items-end", "d-flex", "w-100"], ["label", "New Team Name", 1, "w-100"], ["placeholder", "New Team Name", "formControlName", "teamName", 3, "id", "type"], [1, "create-team-button", "w-auto"], ["styleType", "contained", 1, "form-field", 3, "buttonClick", "disabled"], [3, "propertyName", "description", "actions"], [1, "manage-view-body"], [3, "userAction", "loadMoreUsers", "title", "companyId", "ExternalUsersList", "ExternalPagination", "ExternalUsersLoadingStatus", "licensedUsersOnly"], [1, "manage-view-footer"], ["styleType", "outlined", 3, "buttonClick", "leftIcon"], [1, "dialog-container"], ["animationDuration", "0ms"], ["label", "Assign to An Existing User"], [1, "manage-account-manager-view"], [1, "manage-account-manager-view-header"], [1, "manage-account-manager-view-body"], [3, "userAction", "companyId", "ExternalUsersList", "ExternalUsersLoadingStatus", "showDelete"], ["label", "Assign to A New User"], [1, "manage-account-manager-invitation-view"], [1, "manage-account-manager-invitation-view-header"], [1, "manage-account-manager-invitation-view-body"], ["label", "First Name"], ["matInput", "", "id", "firstName", "type", "text", "n
3211ame", "firstName", "formControlName", "firstName"], ["label", "Last Name"], ["matInput", "", "id", "lastName", "type", "text", "name", "lastName", "formControlName", "lastName"], ["label", "Email"], ["matInput", "", "id", "email", "type", "text", "inputmode", "email", "name", "email", "formControlName", "email"], ["label", "Phone"], ["matInput", "", "id", "phone", "type", "text", "name", "phone", "formControlName", "phone"], ["label", "Title"], ["matInput", "", "id", "title", "type", "text", "name", "title", "formControlName", "title"], [1, "pt-3"], [1, "manage-account-manager-invitation-view-footer"], ["rightIcon", "email", "styleType", "contained", 3, "buttonClick", "isLoading"], [3, "color"], [1, "company-admin-view"], [1, "company-admin-view-header"], [1, "company-admin-view-body"], [3, "userAction", "companyId", "ExternalUsersList", "ExternalUsersLoadingStatus", "isAdmin", "forPrimaryAdminAdd"], [1, "company-admin-invitation-view"], [1, "company-admin-invitation-view-header"], [1, "company-admin-invitation-view-body"], [1, "company-admin-invitation-view-footer"], ["rightIcon", "group_add", "styleType", "contained", 3, "buttonClick", "disabled", "isLoading"], [3, "userAction", "companyId", "ExternalUsersList", "ExternalUsersLoadingStatus", "isAdmin", "maxUsers"], [1, "py-2", "px-4"], [1, "d-flex", "justify-content-center", "align-items-center"], [1, "dialog-template"], [1, "col-12", "pb-4"], [1, "email-form", 3, "formGroup"], ["formControlName", "emailReceipt", 3, "id", "type"], [1, "pt-4", "d-flex", "flex-column", "align-items-end", "payment-id"], ["rightIcon", "email", "styleType", "contained", 3, "buttonClick", "disabled"], [1, "dialog-template-scrollable-container", "gap-2"], [1, "pt-2", "d-flex", "flex-column", "align-items-end", "payment-id"], ["type", "text", 3, "buttonClick", "leftIcon", "styleType", "isLoading"], ["type", "text", 3, "buttonClick", "leftIcon", "styleType"], [1, "p-4", "d-flex", "flex-column", "gap-2"], [3, "icon", "propertyName", "chip", "actions", "description"], [1, "pt-4", "text-center"], [3, "buttonClick", "color", "rightIcon"], [1, "container-fluid", "p-1", "p-md-4"], [1, "row", "p-1", "p-md-3", "text-center"]], template: function CompanySettingsComponent_Template(rf, ctx) {
3212    if (rf & 1) {
3213      \u0275\u0275element(0, "nmfta-page-title", 11);
3214      \u0275\u0275pipe(1, "translate");
3215      \u0275\u0275elementStart(2, "div", 12)(3, "div", 13)(4, "nmfta-card", 14);
3216      \u0275\u0275conditionalCreate(5, CompanySettingsComponent_Conditional_5_Template, 1, 2, "ngx-skeleton-loader", 15)(6, CompanySettingsComponent_Conditional_6_Template, 2, 0);
3217      \u0275\u0275elementEnd()();
3218      \u0275\u0275elementStart(7, "div", 13)(8, "nmfta-card", 16);
3219      \u0275\u0275conditionalCreate(9, CompanySettingsComponent_Conditional_9_Template, 1, 2, "ngx-skeleton-loader", 17)(10, CompanySettingsComponent_Conditional_10_Template, 3, 1, "form", 18);
3220      \u0275\u0275elementEnd()();
3221      \u0275\u0275conditionalCreate(11, CompanySettingsComponent_Conditional_11_Template, 4, 4, "div", 13);
3222      \u0275\u0275elementStart(12, "div", 13)(13, "nmfta-card", 19);
3223      \u0275\u0275pipe(14, "translate");
3224      \u0275\u0275elementStart(15, "form", 18);
3225      \u0275\u0275conditionalCreate(16, CompanySettingsComponent_Conditional_16_Template, 1, 2, "ngx-skeleton-loader", 17)(17, CompanySettingsComponent_Conditional_17_Template, 2, 0);
3226      \u0275\u0275elementEnd()()();
3227      \u0275\u0275elementStart(18, "div", 13)(19, "nmfta-card", 20);
3228      \u0275\u0275pipe(20, "translate");
3229      \u0275\u0275pipe(21, "translate");
3230      \u0275\u0275conditionalCreate(22, CompanySettingsComponent_Conditional_22_Template, 1, 2, "ngx-skeleton-loader", 17)(23, CompanySettingsComponent_Conditional_23_Template, 3, 1, "form", 18);
3231      \u0275\u0275elementEnd()();
3232      \u0275\u0275elementStart(24, "div", 13)(25, "nmfta-card", 21);
3233      \u0275\u0275conditionalCreate(26, CompanySettingsComponent_Conditional_26_Template, 1, 2, "ngx-skeleton-loader", 22)(27, CompanySettingsComponent_Conditional_27_Template, 2, 0);
3234      \u0275\u0275elementEnd()();
3235      \u0275\u0275conditionalCreate(28, CompanySettingsComponent_Conditional_28_Template, 4, 3, "div", 13);
3236      \u0275\u0275elementStart(29, "div", 13)(30, "nmfta-card", 23);
3237      \u0275\u0275conditionalCreate(31, CompanySettingsComponent_Conditional_31_Template, 1, 2, "ngx-skeleton-loader", 24)(32, CompanySettingsComponent_Conditional_32_Template, 2, 0);
3238      \u0275\u0275elementEnd()();
vendor: 16,384 bytes, lines 3239-3476
3239      \u0275\u0275conditionalCreate(33, CompanySettingsComponent_Conditional_33_Template, 4, 4, "div", 13);
3240      \u0275\u0275elementStart(34, "div", 13)(35, "nmfta-card", 25);
3241      \u0275\u0275conditionalCreate(36, CompanySettingsComponent_Conditional_36_Template, 1, 2, "ngx-skeleton-loader", 17)(37, CompanySettingsComponent_Conditional_37_Template, 2, 4);
3242      \u0275\u0275elementEnd()()();
3243      \u0275\u0275template(38, CompanySettingsComponent_ng_template_38_Template, 54, 34, "ng-template", null, 0, \u0275\u0275templateRefExtractor)(40, CompanySettingsComponent_ng_template_40_Template, 2, 1, "ng-template", null, 1, \u0275\u0275templateRefExtractor)(42, CompanySettingsComponent_ng_template_42_Template, 38, 7, "ng-template", null, 2, \u0275\u0275templateRefExtractor)(44, CompanySettingsComponent_ng_template_44_Template, 43, 26, "ng-template", null, 3, \u0275\u0275templateRefExtractor)(46, CompanySettingsComponent_ng_template_46_Template, 1, 5, "ng-template", null, 4, \u0275\u0275templateRefExtractor)(48, CompanySettingsComponent_ng_template_48_Template, 7, 3, "ng-template", null, 5, \u0275\u0275templateRefExtractor)(50, CompanySettingsComponent_ng_template_50_Template, 7, 3, "ng-template", null, 6, \u0275\u0275templateRefExtractor)(52, CompanySettingsComponent_ng_template_52_Template, 24, 21, "ng-template", null, 7, \u0275\u0275templateRefExtractor)(54, CompanySettingsComponent_ng_template_54_Template, 29, 48, "ng-template", null, 8, \u0275\u0275templateRefExtractor)(56, CompanySettingsComponent_ng_template_56_Template, 4, 1, "ng-template", null, 9, \u0275\u0275templateRefExtractor)(58, CompanySettingsComponent_ng_template_58_Template, 5, 3, "ng-template", null, 10, \u0275\u0275templateRefExtractor);
3244    }
3245    if (rf & 2) {
3246      \u0275\u0275property("title", \u0275\u0275pipeBind1(1, 29, "Generic_CompanySettings"));
3247      \u0275\u0275advance(4);
3248      \u0275\u0275property("isLoading", ctx.companyLoading$())("footerActions", ctx.companyDetailsFooterActions)("headerActions", ctx.companyDetailsHeaderActions);
3249      \u0275\u0275advance();
3250      \u0275\u0275conditional(ctx.companyLoading$() ? 5 : 6);
3251      \u0275\u0275advance(3);
3252      \u0275\u0275property("isLoading", ctx.companyLoading$());
3253      \u0275\u0275advance();
3254      \u0275\u0275conditional(ctx.companyLoading$() ? 9 : 10);
3255      \u0275\u0275advance(2);
3256      \u0275\u0275conditional(ctx.company$().enableTeamsView ? 11 : -1);
3257      \u0275\u0275advance(2);
3258      \u0275\u0275property("isLoading", ctx.companyLoading$())("alert", \u0275\u0275pipeBind1(14, 31, "COMPANY_SETTINGS.RESOURCES_ALERT"));
3259      \u0275\u0275advance(2);
3260      \u0275\u0275property("formGroup", ctx.companySettingsForm);
3261      \u0275\u0275advance();
3262      \u0275\u0275conditional(ctx.companyLoading$() ? 16 : 17);
3263      \u0275\u0275advance(3);
3264      \u0275\u0275property("isLoading", ctx.companyLoading$())("subTitle", \u0275\u0275pipeBind1(20, 33, "COMPANY_SETTINGS.NOTIFICATIONS_SUBTITLE"))("alert", \u0275\u0275pipeBind1(21, 35, "COMPANY_SETTINGS.NOTIFICATIONS_ALERT_DESCRIPTION"));
3265      \u0275\u0275advance(3);
3266      \u0275\u0275conditional(ctx.companyLoading$() ? 22 : 23);
3267      \u0275\u0275advance(3);
3268      \u0275\u0275property("headerActions", ctx.subscriptionHeaderActions)("isLoading", ctx.companyLoading$());
3269      \u0275\u0275advance();
3270      \u0275\u0275conditional(ctx.companyLoading$() ? 26 : 27);
3271      \u0275\u0275advance(2);
3272      \u0275\u0275conditional(ctx.user$.features().Transaction_Details_Buttons ? 28 : -1);
3273      \u0275\u0275advance(2);
3274      \u0275\u0275property("isLoading", ctx.companyLoading$())("headerActions", ctx.companyAdminActions)("subTitle", "COMPANY_SETTINGS.Company_Admin_Subtitle")("alert", "Max of 5 users allowed");
3275      \u0275\u0275advance();
3276      \u0275\u0275conditional(ctx.companyLoading$() ? 31 : 32);
3277      \u0275\u0275advance(2);
3278      \u0275\u0275conditional(ctx.company$().displayAccountManagerCard ? 33 : -1);
3279      \u0275\u0275advance(2);
3280      \u0275\u0275property("isLoading", ctx.companyLoading$())("headerActions", ctx.companyUserActions);
3281      \u0275\u0275advance();
3282      \u0275\u0275conditional(ctx.companyLoading$() ? 36 : 37);
3283    }
3284  }, dependencies: [
3285    PageTitleComponent,
3286    CommonModule,
3287    MatCardModule,
3288    DataPanelComponent,
3289    MatFormFieldModule,
3290    ReactiveFormsModule,
3291    \u0275NgNoValidate,
3292    DefaultValueAccessor,
3293    NgControlStatus,
3294    NgControlStatusGroup,
3295    MaxLengthValidator,
3296    FormGroupDirective,
3297    FormControlName,
3298    ButtonComponent,
3299    MatInputModule,
3300    MatInput,
3301    TranslateModule,
3302    InputWrapperComponent,
3303    CardComponent,
3304    NgxSkeletonLoaderModule,
3305    NgxSkeletonLoaderComponent,
3306    MatAutocompleteModule,
3307    MatOption,
3308    FormsModule,
3309    MatIconModule,
3310    MatStepperModule,
3311    MatTabGroup,
3312    MatTab,
3313    UserGroupSelectorComponent,
3314    MatSelect,
3315    AlertComponent,
3316    TranslatePipe,
3317    CurrencyPipe,
3318    DatePipe
3319  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.card-description[_ngcontent-%COMP%] {\n  line-height: 1.5rem;\n  font-size: 1rem;\n  font-weight: 500;\n}\n.payment-id[_ngcontent-%COMP%]   p[_ngcontent-%COMP%] {\n  color: gray;\n}\n.main-card[_ngcontent-%COMP%] {\n  display: flex;\n  width: auto;\n}\n.flex-container[_ngcontent-%COMP%] {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n.left-col[_ngcontent-%COMP%], \n.right-col[_ngcontent-%COMP%] {\n  gap: 5px;\n}\n.header-with-buttons[_ngcontent-%COMP%] {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%;\n  padding: 10px;\n}\n.actions-container[_ngcontent-%COMP%] {\n  display: flex;\n  gap: 10px;\n  margin-left: auto;\n}\n.select-team-content[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  height: 100%;\n  padding: 12px 24px 24px;\n}\n.select-team-content[_ngcontent-%COMP%]   .edit-form[_ngcontent-%COMP%] {\n  padding-bottom: 12px;\n}\n.select-team-content[_ngcontent-%COMP%]   .edit-form[_ngcontent-%COMP%]   .form-row[_ngcontent-%COMP%] {\n  gap: 12px;\n}\n.select-team-content[_ngcontent-%COMP%]   .edit-form[_ngcontent-%COMP%]   .create-team-button[_ngcontent-%COMP%] {\n  display: flex;\n  align-content: flex-start;\n  flex-wrap: wrap;\n  padding-top: 24px;\n}\n.form-field[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n}\n.form-field[_ngcontent-%COMP%]   label[_ngcontent-%COMP%] {\n  flex: 0 0 30%;\n  margin-right: 10px;\n}\n.form-field[_ngcontent-%COMP%]   input[_ngcontent-%COMP%] {\n  flex: 1;\n}\n.error-message[_ngcontent-%COMP%] {\n  color: red;\n  font-size: 0.875rem;\n  margin-top: 0.5rem;\n}\n.dialog-edit-teams[_ngcontent-%COMP%] {\n  max-width: none !important;\n  width: 672px !important;\n}\n.manage-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: 1fr auto;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.manage-view[_ngcontent-%COMP%]   .manage-view-body[_ngcontent-%COMP%] {\n  padding: 0;\n  border-bottom: 1px solid #e8e8e8;\n  display: flex;\n  flex-direction: column;\n  grid-row: 1;\n  overflow: hidden;\n}\n.manage-view[_ngcontent-%COMP%]   .manage-view-footer[_ngcontent-%COMP%] {\n  grid-row: 2;\n  padding: 24px;\n}\n.dialog-container[_ngcontent-%COMP%] {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n}\n.dialog-container[_ngcontent-%COMP%]   mat-tab-group[_ngcontent-%COMP%], \n.dialog-container[_ngcontent-%COMP%]     .mat-mdc-tab-body-wrapper {\n  height: 100% !important;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-manager-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-manager-view[_ngcontent-%COMP%]   .manage-account-manager-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-manager-view[_ngcontent-%COMP%]   .manage-account-manager-body[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-manager-invitation-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-manager-invitation-view[_ngcontent-%COMP%]   .manage-account-manager-invitation-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-manager-invitation-view[_ngcontent-%COMP%]   .manage-account-manager-invitation-view-body[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n  overflow: auto;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-manager-invitation-view[_ngcontent-%COMP%]   .manage-account-manager-invitation-view-footer[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: row;\n  grid-row: 3;\n  overflow: hidden;\n  padding: 24px;\n  border-top: 1px solid #e1e1e1;\n  justify-content: flex-end;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-body[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n  overflow: auto;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-footer[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: row;\n  grid-row: 3;\n  overflow: hidden;\n  padding: 24px;\n  border-top: 1px solid #e1e1e1;\n  justify-content: flex-end;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%]   .company-admin-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%]   .company-admin-view-body[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n.form-content[_ngcontent-%COMP%] {\n  gap: 12px;\n  display: flex;\n  flex-direction: column;\n}\n.payment-footer[_ngcontent-%COMP%] {\n  padding: 24px;\n  border-top: 1px solid #e8e8e8;\n  display: flex;\n  justify-content: flex-end;\n  gap: 0.75rem;\n}\n.card-columns[_ngcontent-%COMP%] {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%] {\n  padding-top: 24px;\n}\n@media (min-width: 992px) {\n  .card-columns[_ngcontent-%COMP%] {\n    column-count: 2;\n  }\n}\n/*# sourceMappingURL=company-settings.component-TLHA76H5.css.map */"], changeDetection: 0 });
3320};
3321(() => {
3322  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CompanySettingsComponent, [{
3323    type: Component,
3324    args: [{ selector: "app-company-settings", imports: [
3325      PageTitleComponent,
3326      TranslatePipe,
3327      CommonModule,
3328      MatCardModule,
3329      DataPanelComponent,
3330      PageTitleComponent,
3331      MatFormFieldModule,
3332      ReactiveFormsModule,
3333      ButtonComponent,
3334      MatInputModule,
3335      TranslateModule,
3336      InputWrapperComponent,
3337      CardComponent,
3338      NgxSkeletonLoaderModule,
3339      MatInputModule,
3340      MatAutocompleteModule,
3341      FormsModule,
3342      MatIconModule,
3343      MatStepperModule,
3344      MatTabGroup,
3345      MatTab,
3346      UserGroupSelectorComponent,
3347      MatSelect,
3348      MatInput,
3349      MatOption,
3350      AlertComponent,
3351      TranslatePipe
3352    ], changeDetection: ChangeDetectionStrategy.OnPush, template: `<nmfta-page-title [title]="'Generic_CompanySettings' | translate"></nmfta-page-title>
3353
3354<div class="card-columns pb-4">
3355  <div class="card">
3356    <!-- COMPANY DETAILS-->
3357    <nmfta-card
3358      title="COMPANY_SETTINGS.COMPANY_DETAILS"
3359      [isLoading]="companyLoading$()"
3360      [footerActions]="companyDetailsFooterActions"
3361      [headerActions]="companyDetailsHeaderActions">
3362      @if (companyLoading$()) {
3363        <ngx-skeleton-loader
3364          count="6"
3365          [theme]="{
3366            width: '100%',
3367            height: '4.633rem',
3368            'border-radius': '0.5rem',
3369            'margin-bottom': '0.3rem',
3370          }">
3371        </ngx-skeleton-loader>
3372      } @else {
3373        @for (field of companyDataFields$(); track field.propertyName) {
3374          <nmfta-data-panel
3375            [propertyName]="field.propertyName"
3376            [propertyValue]="getDataPanelValue(field.propertyName, field.propertyValue)"
3377            [control]="companyDetailsForm.get(field.controlName)">
3378          </nmfta-data-panel>
3379        }
3380      }
3381    </nmfta-card>
3382  </div>
3383
3384  <!-- COMPANY COMMON -->
3385  <div class="card">
3386    <nmfta-card [isLoading]="companyLoading$()" title="COMPANY_SETTINGS.COMPANY_COMMON">
3387      @if (companyLoading$()) {
3388        <ngx-skeleton-loader
3389          count="2"
3390          [theme]="{
3391            width: '100%',
3392            height: '8.383rem',
3393            'border-radius': '0.5rem',
3394            'margin-bottom': '0.3rem',
3395          }">
3396        </ngx-skeleton-loader>
3397      } @else {
3398        <form [formGroup]="companySettingsForm" class="form-content">
3399          @for (field of companyCommonField; track field) {
3400            <nmfta-data-panel
3401              [propertyName]="field.propertyName | translate"
3402              [propertyValue]="companySettingsForm.get(field.formControl)?.value"
3403              [fullLineDescription]="field.itemDescription | translate"
3404              [isToggle]="field.toggle"
3405              [control]="companySettingsForm.get(field.formControl)">
3406            </nmfta-data-panel>
3407          }
3408        </form>
3409      }
3410    </nmfta-card>
3411  </div>
3412
3413  @if (company$().enableTeamsView) {
3414    <!-- MANAGE TEAMS -->
3415    <div class="card">
3416      <nmfta-card
3417        title="Team View"
3418        [isLoading]="companyLoading$()"
3419        [headerActions]="teamViewHeaderActions"
3420        [subTitle]="
3421          'Organize your Company Common by teams, giving designated users a space to collaborate and access shared items'
3422        ">
3423        @if (companyLoading$()) {
3424          <ngx-skeleton-loader
3425            count="3"
3426            [theme]="{
3427              width: '100%',
3428              height: '4.633rem',
3429              'border-radius': '0.5rem',
3430              'margin-bottom': '0.3rem',
3431            }">
3432          </ngx-skeleton-loader>
3433        } @else {
3434          @for (team of company$.companyTeams(); track team.teamName) {
3435            <nmfta-data-panel [propertyName]="team.teamName" [propertyValue]="team.numberOfUsers"></nmfta-data-panel>
3436          }
3437        }
3438      </nmfta-card>
3439    </div>
3440  }
3441
3442  <!--RESOURCES-->
3443  <div class="card">
3444    <nmfta-card
3445      title="COMPANY_SETTINGS.RESOURCES"
3446      [isLoading]="companyLoading$()"
3447      [alert]="'COMPANY_SETTINGS.RESOURCES_ALERT' | translate">
3448      <form [formGroup]="companySettingsForm" class="form-content">
3449        @if (companyLoading$()) {
3450          <ngx-skeleton-loader
3451            count="2"
3452            [theme]="{
3453              width: '100%',
3454              height: '4.383rem',
3455              'border-radius': '0.5rem',
3456              'margin-bottom': '0.3rem',
3457            }">
3458          </ngx-skeleton-loader>
3459        } @else {
3460          @for (field of companyResources$(); track field.propertyName) {
3461            @if (field.display) {
3462              <nmfta-data-panel
3463                [propertyName]="field.propertyName"
3464                [propertyValue]="field.propertyValue"
3465                [fullLineDescription]="field.itemDescription | translate"
3466                [isToggle]="true"
3467                [control]="companySettingsForm.get(field.controlName)">
3468              </nmfta-data-panel>
3469            }
3470          }
3471        }
3472      </form>
3473    </nmfta-card>
3474  </div>
3475
3476  <!-- NOTIFICATIO
3476NS -->
3477  <div class="card">
3478    <nmfta-card
3479      title="Notifications"
3480      [isLoading]="companyLoading$()"
3481      [subTitle]="'COMPANY_SETTINGS.NOTIFICATIONS_SUBTITLE' | translate"
3482      [alert]="'COMPANY_SETTINGS.NOTIFICATIONS_ALERT_DESCRIPTION' | translate">
3483      @if (companyLoading$()) {
3484        <ngx-skeleton-loader
3485          count="2"
3486          [theme]="{
3487            width: '100%',
3488            height: '5.383rem',
3489            'border-radius': '0.5rem',
3490            'margin-bottom': '0.3rem',
3491          }">
3492        </ngx-skeleton-loader>
3493      } @else {
3494        <form [formGroup]="companySettingsForm" class="form-content">
3495          @for (field of companyNotificationFields; track field) {
3496            <nmfta-data-panel
3497              [propertyName]="field.propertyName | translate"
3498              [propertyValue]="companySettingsForm.get(field.formControl)?.value"
3499              [isToggle]="field.toggle"
3500              [control]="companySettingsForm.get(field.formControl)">
3501            </nmfta-data-panel>
3502          }
3503        </form>
3504      }
3505    </nmfta-card>
3506  </div>
3507
3508  <!-- SUBSCRIPTIONS -->
3509  <div class="card">
3510    <nmfta-card
3511      title="Generic_Subscription"
3512      [headerActions]="subscriptionHeaderActions"
3513      [isLoading]="companyLoading$()">
3514      @if (companyLoading$()) {
3515        <ngx-skeleton-loader
3516          count="3"
3517          [theme]="{
3518            width: '100%',
3519            height: '5.383rem',
3520            'border-radius': '0.5rem',
3521            'margin-bottom': '0.3rem',
3522          }">
3523        </ngx-skeleton-loader>
3524      } @else {
3525        @for (subscription of company$.companySubscriptions(); track subscription) {
3526          <nmfta-data-panel
3527            [propertyName]="subscription?.productName"
3528            [propertyValue]="subscription?.status"
3529            [fullLineDescription]="'Expires on ' + subscription?.expirationDate">
3530          </nmfta-data-panel>
3531        }
3532      }
3533    </nmfta-card>
3534  </div>
3535
3536  @if (user$.features!().Transaction_Details_Buttons) {
3537    <!-- PAYMENT INFO -->
3538    <div class="card">
3539      <nmfta-card
3540        title="Generic_PaymentDetails"
3541        subTitle="Generic_PaymentDescription"
3542        [headerActions]="paymentDetailsHeaderActions"
3543        [isLoading]="companyLoading$()">
3544        @if (companyLoading$()) {
3545          <ngx-skeleton-loader
3546            count="3"
3547            [theme]="{
3548              width: '100%',
3549              height: '5.383rem',
3550              'border-radius': '0.5rem',
3551              'margin-bottom': '0.3rem',
3552            }">
3553          </ngx-skeleton-loader>
3554        } @else {
3555          @for (paymentDetails of recentPaymentDetails$(); track $index) {
3556            <nmfta-data-panel
3557              [icon]="'payments'"
3558              [propertyName]="paymentDetails.productName"
3559              [chip]="(paymentDetails?.amount | currency: 'USD' : 'symbol' : '1.2-2') || '$0.00'"
3560              [isDropDown]="true"
3561              [actions]="paymentDetailsAction(paymentDetails.paymentId)"
3562              [description]="
3563                ('COMPANY_SETTINGS.PAYMENT_INFO.PURCHASE_ON' | translate) +
3564                ' ' +
3565                (paymentDetails.paymentDate | date: 'MMM d, y') +
3566                ',  ' +
3567                ('COMPANY_SETTINGS.PAYMENT_INFO.TRANSACTION_ID' | translate) +
3568                ': ' +
3569                paymentDetails.transactionId
3570              ">
3571            </nmfta-data-panel>
3572          }
3573        }
3574      </nmfta-card>
3575    </div>
3576  }
3577
3578  <!-- COMPANY ADMIN-->
3579  <div class="card">
3580    <nmfta-card
3581      title="Company Admins"
3582      [isLoading]="companyLoading$()"
3583      [headerActions]="companyAdminActions"
3584      [subTitle]="'COMPANY_SETTINGS.Company_Admin_Subtitle'"
3585      [alert]="'Max of 5 users allowed'">
3586      @if (companyLoading$()) {
3587        <ngx-skeleton-loader
3588          count="5"
3589          [theme]="{
3590            width: '100%',
3591            height: '5.413rem',
3592            'border-radius': '0.5rem',
3593            'margin-bottom': '0.3rem',
3594          }">
3595        </ngx-skeleton-loader>
3596      } @else {
3597        @for (admin of company$.companyAdmins(); track admin.userId) {
3598          <nmfta-data-panel
3599            [icon]="'person'"
3600            [propertyName]="getUserDisplayName(admin, true)"
3601            [description]="admin.email || ''"
3602            [isDropDown]="true"
3603            [actions]="userButtons(admin)">
3604          </nmfta-data-panel>
3605        }
3606      }
3607    </nmfta-card>
3608  </div>
3609
3610  @if (company$().displayAccountManagerCard) {
3611    <!-- ACCOUNT MANAGER -->
3612    <div class="card">
3613      <nmfta-card
3614        title="Account Manager"
3615        [headerActions]="companyLoading$() ? [] : companyManagerActions"
3616        [isLoading]="companyLoading$()">
3617        @if (companyLoading$()) {
3618          <ngx-skeleton-loader
3619            count="1"
3620            [theme]="{
3621              width: '100%',
3622              height: '4.633rem',
3623              'border-radius': '0.5rem',
3624              'margin-bottom': '0.3rem',
3625            }">
3626          </ngx-skeleton-loader>
3627        } @else {
3628          @if (company$.accountManager()) {
3629            <div>
3630              <nmfta-data-panel
3631                [icon]="'person'"
3632                [propertyName]="getUserDisplayName(company$.accountManager()!)"
3633                [isDropDown]="true">
3634              </nmfta-data-panel>
3635            </div>
3636          } @else {
3637            <p>{{ 'COMPANY_SETTINGS.NO_ACCOUNT_MANAGERS' | translate }}</p>
3638          }
3639        }
3640      </nmfta-card>
3641    </div>
3642  }
3643
3644  <!-- MANAGE USERS-->
3645  <div class="card">
3646    <nmfta-card title="Company Users" [isLoading]="companyLoading$()" [headerActions]="companyUserActions">
3647      @if (companyLoading$()) {
3648        <ngx-skeleton-loader
3649          count="2"
3650          [theme]="{
3651            width: '100%',
3652            height: '4.633rem',
3653            'border-radius': '0.5rem',
3654            'margin-bottom': '0.3rem',
3655          }">
3656        </ngx-skeleton-loader>
3657      } @else {
3658        <nmfta-data-panel
3659          [propertyName]="'Total Number of Users'"
3660          [propertyValue]="company$().totalNumberOfUsers?.toString()!">
3661        </nmfta-data-panel>
3662        <nmfta-data-panel
3663          [propertyName]="'License Details'"
3664          [propertyValue]="
3665            company$().numberOfAssignedLicenses.toString() + '/' + company$().totalNumberOfLicenses.toString()
3666          ">
3667        </nmfta-data-panel>
3668      }
3669    </nmfta-card>
3670  </div>
3671</div>
3672
3673<ng-template #editCompanyDetails>
3674  <form [formGroup]="companyDetailsForm" class="dialog-template">
3675    <div class="dialog-template-scrollable-container">
3676      <div class="row">
3677        <div class="col-12 col-sm-6">
3678          <!-- Edit Company Details : Member Id -->
3679          <nmfta-input-wrapper label="PURCHASE.COMPANY_FORM.MEMBER_ID">
3680            <div class="input-container">
3681              <input
3682                matInput
3683                type="text"
3684                name="membershipId"
3685                formControlName="membershipId"
3686                [placeholder]="'PURCHASE.COMPANY_FORM.MEMBER_ID' | translate" />
3687              </div>
3688            </nmfta-input-wrapper>
3689          </div>
3690          <!-- Edit Company Details : Primary Contact -->
3691          <div class="col-12 col-sm-6">
3692            <nmfta-input-wrapper label="COMPANY_SETTINGS.PRIMARY_CONTACT">
3693              <div class="input-container">
3694                <input
3695                  matInput
3696                  type="text"
3697                  name="'primaryContactFirstName + primaryContactLastName'"
3698                  formControlName="primaryContactName"
3699                  [placeholder]="'COMPANY_SETTINGS.PRIMARY_CONTACT' | translate" />
3700                </div>
3701              </nmfta-input-wrapper>
3702            </div>
3703            <div class="col-12 col-sm-7">
3704              <!-- Edit Company Details : Company Name -->
3705              <nmfta-input-wrapper label="COMPANY_SETTINGS.COMPANY_NAME">
3706                <div class="input-container">
3707                  <input
3708                    matInput
3709                    type="text"
3710                    name="companyName"
3711                    formControlName="companyName"
3712                    [placeholder]="'COMPANY_SETTINGS.COMPANY_NAME' | translate" />
3713                  </div>
3714                </nmfta-input-wrapper>
3715              </div>
3716
3717              <div class="col-12 col-sm-5">
3718                <!-- Edit Company Details : Company Phone -->
3719                <nmfta-input-wrapper label="PURCHASE.COMPANY_FORM.PHONE">
3720                  <div class="input-container">
3721                    <input
3722                      matInput
3723                      type="text"
3724                      name="companyPhone"
3725                      formControlName="companyPhone"
3726                      [placeholder]="'PURCHASE.COMPANY_FORM.PHONE' | translate" />
3727                    </div>
3728                  </nmfta-input-wrapper>
3729                </div>
3730
3731                <div class="col-12 col-sm-5">
3732                  <!-- Edit Company Details : Country -->
3733                  <nmfta-input-wrapper label="PURCHASE.COMPANY_FORM.COUNTRY">
3734                    <mat-select id="country" formControlName="country">
3735                      @for (country of countries$(); track $index) {
3736                        <mat-option [value]="country.umCountryCode">
3737                          {{ country.umCountryName }}
3738                        </mat-option>
3739                      }
3740                    </mat-select>
3741                  </nmfta-input-wrapper>
3742                </div>
3743                <!-- Edit Company Details : City -->
3744                <div class="col-12 col-sm-7">
3745                  <nmfta-input-wrapper [label]="'Generic_City'">
3746                    <input
3747                      type="text"
3748                      name="city"
3749                      id="city"
3750                      [placeholder]="'Generic_City' | translate"
3751                      formControlName="city"
3752                      maxlength="50" />
3753                    </nmfta-input-wrapper>
3754                  </div>
3755
3756                  <div class="col-12 col-sm-7">
3757                    <!-- Edit Company Details : State -->
3758                    <nmfta-input-wrapper [label]="companyDetailsForm.get('stateLabelText')?.value">
3759                      <input
3760                        type="text"
3761                        name="state"
3762                        id="state"
3763                        [attr.maxLength]="countryService.isAddressRequired ? 2 : null"
3764                        placeholder="{{ companyDetailsForm.get('stateLabelText')?.value | translate }}"
3765                        formControlName="state" />
3766                      </nmfta-input-wrapper>
3767                    </div>
3768                    <!-- Edit Company Details : Postal Code -->
3769                    <div class="col-12 col-sm-5">
3770                      <nmfta-input-wrapper [label]="'Generic_PostalCode'">
3771                        <input
3772                          type="text"
3773                          name="postalCode"
3774                          id="postalCode"
3775                          [placeholder]="'Generic_PostalCode' | translate"
3776                          formControlName="postalCode"
3777                          maxlength="10" />
3778                        </nmfta-input-wrapper>
3779                      </div>
3780
3781                      <div class="col-12">
3782                        <!--Edit Company Details : Address -->
3783                        <nmfta-input-wrapper [label]="'Generic_AddressLine'">
3784                          <input
3785                            type="text"
3786                            name="companyAddress"
3787                            id="companyAddress"
3788                            [placeholder]="'Generic_AddressLine' | translate"
3789                            formControlName="companyAddress"
3790                            maxlength="200" />
3791                          </nmfta-input-wrapper>
3792                        </div>
3793
3794                        <div class="col-12">
3795                          <!--Edit Company Details : Company Type -->
3796                          <nmfta-input-wrapper label="PURCHASE.COMPANY_FORM.COMPANY_TYPE">
3797                            <mat-select id="companyType" formControlName="companyType">
3798                              @for (companyType of companyTypes$(); track companyType.value) {
3799                                <mat-option [value]="companyType.value">{{ companyType.label }}</mat-option>
3800                              }
3801                            </mat-select>
3802                          </nmfta-input-wrapper>
3803                        </div>
3804                      </div>
3805                    </div>
3806                    <div class="dialog-template-footer">
3807                      <nmfta-button type="text" [styleType]="'outlined'" (buttonClick)="closeEditDialog()"> Cancel </nmfta-button>
3808                      <nmfta-button
3809                        type="text"
3810                        [styleType]="'contained'"
3811                        [disabled]="companyDetailsForm.invalid"
3812                        (buttonClick)="saveUserInfo()">
3813                        Save
3814                      </nmfta-button>
3815                    </div>
3816                  </form>
3817                </ng-template>
3818
3819                <ng-template #manageTeams>
3820                  @switch (displayTeams) {
3821                    @case ('teamView') {
3822                      <div class="select-team-content">
3823                        <form [formGroup]="createTeamForm" class="edit-form">
3824                          <div class="form-row d-flex">
3825                            <div class="align-items-end d-flex w-100">
3826                              <nmfta-input-wrapper label="New Team Name" class="w-100">
3827                                <input [id]="'teamName'" placeholder="New Team Name" [type]="'text'" formControlName="teamName" />
3828                              </nmfta-input-wrapper>
3829                            </div>
3830                            <div class="create-team-button w-auto">
3831                              <nmfta-button
3832                                class="form-field"
3833                                [disabled]="!createTeamForm.valid"
3834                                styleType="contained"
3835                                (buttonClick)="createTeam()"
3836                                >Create New Team
3837                              </nmfta-button>
3838                            </div>
3839                          </div>
3840                        </form>
3841                        @for (team of company$.companyTeams(); track team.teamName) {
3842                          <nmfta-data-panel
3843                            [propertyName]="team.teamName"
3844                            [description]="team.numberOfUsers + ' Members'"
3845                            [actions]="teamButtons(team)">
3846                          </nmfta-data-panel>
3847                        }
3848                      </div>
3849                    }
3850                    @case ('manageView') {
3851                      <div class="manage-view">
3852                        <div class="manage-view-body">
3853                          <nmfta-user-group-selector
3854                            [title]="selectedTeam.teamName"
3855                            [companyId]="companyId$()"
3856                            [ExternalUsersList]="companyUsers$"
3857                            [ExternalPagination]="companyUsersByTeamPagination$"
3858                            [ExternalUsersLoadingStatus]="submissionStatus$"
3859                            [licensedUsersOnly]="true"
3860                            (userAction)="handleUserTeamAction($event)"
3861                            (loadMoreUsers)="loadMoreUsersTeam()">
3862                          </nmfta-user-group-selector>
3863                        </div>
3864                        <div class="manage-view-footer">
3865                          <nmfta-button (buttonClick)="manageTeamsView()" styleType="outlined" [leftIcon]="'chevron_left'">
3866                            Select Other Team
3867                          </nmfta-button>
3868                        </div>
3869                      </div>
3870                    }
3871                  }
3872                </ng-template>
3873
3874                <ng-template #manageAccountManager>
3875                  <div class="dialog-container">
3876                    <mat-tab-group animationDuration="0ms">
3877                      <mat-tab label="Assign to An Existing User">
3878                        <div class="manage-account-manager-view">
3879                          <div class="manage-account-manager-view-header">
3880                            <nmfta-alert>
3881                              Assignment provides limited access to ClassIT+ using a limited license that does not count against the
3882                              total licenses affilated with your subscription
3883                            </nmfta-alert>
3884                          </div>
3885                          <div class="manage-account-manager-view-body">
3886                            <nmfta-user-group-selector
3887                              [companyId]="companyId$()"
3888                              [ExternalUsersList]="accountManagers$"
3889                              [ExternalUsersLoadingStatus]="submissionStatus$"
3890                              [showDelete]="true"
3891                              (userAction)="handleAccountManagerAction($event)">
3892                            </nmfta-user-group-selector>
3893                          </div>
3894                        </div>
3895                      </mat-tab>
3896                      <mat-tab label="Assign to A New User">
3897                        <div class="manage-account-manager-invitation-view">
3898                          <div class="manage-account-manager-invitation-view-header">
3899                            <nmfta-alert>
3900                              Assignment provides limited access to ClassIT+ using a limited license that does not count against the
3901                              total licenses affilated with your subscription
3902                            </nmfta-alert>
3903                          </div>
3904                          <div class="manage-account-manager-invitation-view-body">
3905                            <form [formGroup]="accountManagerForm" class="edit-form">
3906                              <div class="row">
3907                                <div class="col-12 col-sm-6">
3908                                  <nmfta-input-wrapper label="First Name">
3909                                    <input matInput
3910                                      id="firstName"
3911                                      type="text"
3912                                      name="firstName"
3913                                      formControlName="firstName">
3914                                    </nmfta-input-wrapper>
3915                                  </div>
3916                                  <div class="col-12 col-sm-6">
3917                                    <nmfta-input-wrapper label="Last Name">
3918                                      <input matInput
3919                                        id="lastName"
3920                                        type="text"
3921                                        name="lastName"
3922                                        formControlName="lastName">
3923                                      </nmfta-input-wrapper>
3924                                    </div>
3925                                  </div>
3926                                  <div class="row">
3927                                    <div class="col-12 col-sm-7">
3928                                      <nmfta-input-wrapper label="Email">
3929                                        <input matInput
3930                                          id="email"
3931                                          type="text"
3932                                          inputmode="email"
3933                                          name="email"
3934                                          formControlName="email">
3935                                        </nmfta-input-wrapper>
3936                                      </div>
3937                                      <div class="col-12 col-sm-5">
3938                                        <nmfta-input-wrapper label="Phone">
3939                                          <input matInput
3940                                            id="phone"
3941                                            type="text"
3942                                            name="phone"
3943                                            formControlName="phone">
3944                                          </nmfta-input-wrapper>
3945                                        </div>
3946                                      </div>
3947                                      <div class="row">
3948                                        <div class="col-12">
3949                                          <nmfta-input-wrapper label="Title">
3950                                            <input matInput
3951                                              id="title"
3952                                              type="text"
3953                                              name="title"
3954                                              formControlName="title">
3955                                            </nmfta-input-wrapper>
3956                                          </div>
3957                                        </div>
3958                                      </form>
3959                                      @if (showAlertAccountManager) {
3960                                        <div class="pt-3">
3961                                          <nmfta-alert [color]="'success'">
3962                                            {{ 'COMPANY_SETTINGS.Activation_Link_Success' | translate: { firstName: firstName, lastName: lastName, email: email, today: today } }}
3963                                          </nmfta-alert>
3964                                        </div>
3965                                      }
3966                                    </div>
3967                                    <div class="manage-account-manager-invitation-view-footer">
3968                                      <nmfta-button
3969                                        (buttonClick)="sendInvitation()"
3970                                        rightIcon="email"
3971                                        styleType="contained"
3972                                        [isLoading]="savingUserStatus$() === 'loading'">
3973                                        Send Invitation
3974                                      </nmfta-button>
3975                                    </div>
3976                                  </div>
3977                                </mat-tab>
3978                              </mat-tab-group>
3979                            </div>
3980                          </ng-template>
3981
3982                          <ng-template #addCompanyAdmins>
3983                            <div class="dialog-container">
3984                              <mat-tab-group animationDuration="0ms">
3985                                <mat-tab label="{{ 'COMPANY_SETTINGS.Assign_to_an_Existing_User' | translate }}">
3986                                  <div class="company-admin-view">
3987                                    <div class="company-admin-view-header">
3988                                      <nmfta-alert>
3989                                        {{ "COMPANY_SETTINGS.Add_Company_Admin_Message" | translate }}
3990                                      </nmfta-alert>
3991                                    </div>
3992                                    <div class="company-admin-view-body">
3993                                      <nmfta-user-group-selector
3994                                        [companyId]="companyId$()"
3995                                        [ExternalUsersList]="companyAdmins$"
3996                                        [ExternalUsersLoadingStatus]="submissionStatus$"
3997                                        [isAdmin]="true"
3998                                        [forPrimaryAdminAdd]="true"
3999                                        (userAction)="handleUserAdminAction($event, true)">
4000                                      </nmfta-user-group-selector>
4001                                    </div>
4002                                  </div>
4003                                </mat-tab>
4004                                <mat-tab label="{{ 'COMPANY_SETTINGS.Assign_to_A_New_User' | translate }}">
4005                                  <div class="company-admin-invitation-view">
4006                                    <div class="company-admin-invitation-view-header">
4007                                      <nmfta-alert>
4008                                        {{ "COMPANY_SETTINGS.Add_Company_Admin_Message" | translate }}
4009                                      </nmfta-alert>
4010                                    </div>
4011                                    <div class="company-admin-invitation-view-body">
4012                                      <form [formGroup]="companyAdminForm" class="edit-form">
4013                                        <div class="row">
4014                                          <div class="col-12 col-sm-6">
4015                                            <nmfta-input-wrapper label="First Name">
4016                                              <input matInput
4017                                                id="firstName"
4018                                                type="text"
4019                                                name="firstName"
4020                                                formControlName="firstName">
4021                                              </nmfta-input-wrapper>
4022                                            </div>
4023                                            <div class="col-12 col-sm-6">
4024                                              <nmfta-input-wrapper label="Last Name">
4025                                                <input matInput
4026                                                  id="lastName"
4027                                                  type="text"
4028                                                  name="lastName"
4029                                                  formControlName="lastName">
4030                                                </nmfta-input-wrapper>
4031                                              </div>
4032                                            </div>
4033                                            <div class="row">
4034                                              <div class="col-12 col-sm-7">
4035                                                <nmfta-input-wrapper label="Email">
4036                                                  <input matInput
4037                                                    id="email"
4038                                                    type="text"
4039                                                    inputmode="email"
4040                                                    name="email"
4041                                                    formControlName="email">
4042                                                  </nmfta-input-wrapper>
4043                                                </div>
4044                                                <div class="col-12 col-sm-5">
4045                                                  <nmfta-input-wrapper label="Phone">
4046                                                    <input matInput
4047                                                      id="phone"
4048                                                      type="text"
4049                                                      name="phone"
4050                                                      formControlName="phone">
4051                                                    </nmfta-input-wrapper>
4052                                                  </div>
4053                                                </div>
4054                                                <div class="row">
4055                                                  <div class="col-12">
4056                                                    <nmfta-input-wrapper label="Title">
4057                                                      <input matInput
4058                                                        id="title"
4059                                                        type="text"
4060                                                        name="title"
4061                                                        formControlName="title">
4062                                                      </nmfta-input-wrapper>
4063                                                    </div>
4064                                                  </div>
4065                                                </form>
4066                                                @if (showAlertCompanyAdmin) {
4067                                                  <div class="pt-3">
4068                                                    <nmfta-alert [color]="'success'">
4069                                                      {{ 'COMPANY_SETTINGS.Activation_Link_Success' | translate: { firstName: firstName, lastName: lastName, email: email, today: today } }}
4070                                                    </nmfta-alert>
4071                                                  </div>
4072                                                }
4073                                              </div>
4074                                              <div class="company-admin-invitation-view-footer">
4075                                                <nmfta-button
4076                                                  (buttonClick)="createNewCompanyAdmin()"
4077                                                  [disabled]="companyAdminForm.invali
4077d"
4078                                                  rightIcon="group_add"
4079                                                  styleType="contained"
4080                                                  [isLoading]="updateUserStatus$() === 'loading'">
4081                                                  {{ "COMPANY_SETTINGS.Create_Company_Admin" | translate }}
4082                                                </nmfta-button>
4083                                              </div>
4084                                            </div>
4085                                          </mat-tab>
4086                                        </mat-tab-group>
4087                                      </div>
4088                                    </ng-template>
4089
4090                                    <ng-template #manageCompanyAdmins>
4091                                      <nmfta-user-group-selector
4092                                        [companyId]="companyId$()"
4093                                        [ExternalUsersList]="companyAdmins$"
4094                                        [ExternalUsersLoadingStatus]="submissionStatus$"
4095                                        [isAdmin]="true"
4096                                        [maxUsers]="5"
4097                                        (userAction)="handleUserAdminAction($event)">
4098                                      </nmfta-user-group-selector>
4099                                    </ng-template>
4100
4101                                    <ng-template #removingLoggedInUserFromCompanySettings>
4102                                      <div class="py-2 px-4">
4103                                        <div class="row">
4104                                          <div class="col-12">
4105                                            <div class="d-flex justify-content-center align-items-center">
4106                                              <p>{{ 'COMPANY_SETTINGS.Confirm_Remove_Logged_In_User_From_Role' | translate }}</p>
4107                                            </div>
4108                                          </div>
4109                                        </div>
4110                                      </div>
4111                                    </ng-template>
4112
4113                                    <ng-template #deletingTeam>
4114                                      <div class="py-2 px-4">
4115                                        <div class="row">
4116                                          <div class="col-12">
4117                                            <div class="d-flex justify-content-center align-items-center">
4118                                              <p>{{ 'COMPANY_SETTINGS.Confirm_Deleting_Team' | translate }}</p>
4119                                            </div>
4120                                          </div>
4121                                        </div>
4122                                      </div>
4123                                    </ng-template>
4124
4125                                    <ng-template #emailReceipt>
4126                                      <div class="dialog-template">
4127                                        <div class="dialog-template-scrollable-container">
4128                                          <div class="row">
4129                                            <div class="col-12 pb-4">
4130                                              <p>{{ 'COMPANY_SETTINGS.ADD_EMAILS' | translate }}</p>
4131                                            </div>
4132                                            <div class="col-12">
4133                                              <form [formGroup]="emailReceiptsForm" class="email-form">
4134                                                <nmfta-input-wrapper [label]="'COMPANY_SETTINGS.EMAILS' | translate">
4135                                                  <input [id]="'emailReceipt'" [type]="'text'" formControlName="emailReceipt" />
4136                                                </nmfta-input-wrapper>
4137                                              </form>
4138                                            </div>
4139                                          </div>
4140                                          <div class="pt-4 d-flex flex-column align-items-end payment-id">
4141                                            <p
4142                                              ><i>{{ 'COMPANY_SETTINGS.PAYMENT_INFO.TRANSACTION_ID' | translate }}: {{ transaction?.transactionId }}</i></p
4143                                              >
4144                                            </div>
4145                                          </div>
4146                                          <div class="dialog-template-footer">
4147                                            <nmfta-button type="text" [styleType]="'outlined'" (buttonClick)="closeEmailReceiptDialog()">
4148                                              {{ 'Generic_Cancel' | translate }}
4149                                            </nmfta-button>
4150                                            <nmfta-button
4151                                              (buttonClick)="sendEmailReceipt()"
4152                                              rightIcon="email"
4153                                              styleType="contained"
4154                                              [disabled]="emailReceiptsForm.invali
4154d">
4155                                              {{ 'Generic_SendEmail' | translate }}
4156                                            </nmfta-button>
4157                                          </div>
4158                                        </div>
4159                                      </ng-template>
4160
4161                                      <ng-template #paymentDialog>
4162                                        <div class="dialog-template">
4163                                          <div class="dialog-template-scrollable-container gap-2">
4164                                            <nmfta-data-panel
4165                                              [propertyName]="'COMPANY_SETTINGS.PAYMENT_INFO.PAYEE' | translate"
4166                                              [propertyValue]="transaction?.name">
4167                                            </nmfta-data-panel>
4168                                            <nmfta-data-panel
4169                                              [propertyName]="'COMPANY_SETTINGS.PAYMENT_INFO.EMAIL' | translate"
4170                                              [propertyValue]="transaction?.email">
4171                                            </nmfta-data-panel>
4172                                            <nmfta-data-panel
4173                                              [propertyName]="'COMPANY_SETTINGS.PAYMENT_INFO.PRODUCT_NAME' | translate"
4174                                              [propertyValue]="transaction?.productName">
4175                                            </nmfta-data-panel>
4176                                            <nmfta-data-panel
4177                                              [propertyName]="'COMPANY_SETTINGS.PAYMENT_INFO.PAYMENT_METHOD' | translate"
4178                                              [propertyValue]="transaction?.paymentMethod">
4179                                            </nmfta-data-panel>
4180                                            <nmfta-data-panel
4181                                              [propertyName]="'COMPANY_SETTINGS.PAYMENT_INFO.AMOUNT' | translate"
4182                                              [propertyValue]="(transaction?.amount | currency: 'USD' : 'symbol' : '1.2-2') || '$0.00'">
4183                                            </nmfta-data-panel>
4184                                            @if (transaction?.refundAmount) {
4185                                              <nmfta-data-panel
4186                                                [propertyName]="'COMPANY_SETTINGS.PAYMENT_INFO.REFUND_AMOUNT' | translate"
4187                                                [propertyValue]="(transaction?.refundAmount | currency: 'USD' : 'symbol' : '1.2-2') || '$0.00'">
4188                                              </nmfta-data-panel>
4189                                            }
4190                                            <nmfta-data-panel
4191                                              [propertyName]="'COMPANY_SETTINGS.PAYMENT_INFO.PURCHASE_ON' | translate"
4192                                              [propertyValue]="(transaction?.paymentDate | date: 'MMM d, y') || ''">
4193                                            </nmfta-data-panel>
4194
4195                                            <div class="pt-2 d-flex flex-column align-items-end payment-id">
4196                                              <p
4197                                                ><i>{{ 'COMPANY_SETTINGS.PAYMENT_INFO.TRANSACTION_ID' | translate }}: {{ transaction?.transactionId }}</i></p
4198                                                >
4199                                              </div>
4200                                            </div>
4201                                            <div class="dialog-template-footer">
4202                                              <!-- @if(userStore.isCustomerService()){
4203                                              <nmfta-button
4204                                                type="text"
4205                                                [styleType]="'outlined'">
4206                                                {{ 'Generic_Dispute_Payment' | translate }}
4207                                              </nmfta-button>
4208                                              } -->
4209                                              <nmfta-button
4210                                                type="text"
4211                                                [leftIcon]="'file_download'"
4212                                                [styleType]="'outlined'"
4213                                                [isLoading]="isPrintingReceipt"
4214                                                (buttonClick)="downloadPaymentReceipt()">
4215                                                {{ 'Generic_Download_Receipt' | translate }}
4216                                              </nmfta-button>
4217                                              <nmfta-button type="text" [leftIcon]="'email'" [styleType]="'outlined'" (buttonClick)="openEmailReceiptDialog()">
4218                                                {{ 'Generic_Email_Receipt' | translate }}
4219                                              </nmfta-button>
4220                                            </div>
4221                                          </div>
4222                                        </ng-template>
4223
4224                                        <ng-template #transactionsDialog>
4225                                          <div class="p-4 d-flex flex-column gap-2">
4226                                            @for (detail of paymentDetailsPaging$().allTransactions; track $index) {
4227                                              <nmfta-data-panel
4228                                                [icon]="'payments'"
4229                                                [propertyName]="detail.productName"
4230                                                [chip]="(detail?.amount | currency: 'USD' : 'symbol' : '1.2-2') || '$0.00'"
4231                                                [actions]="paymentDetailsAction(detail.paymentId, true)"
4232        [description]="
4233          ('COMPANY_SETTINGS.PAYMENT_INFO.PURCHASE_ON' | translate) +
4234          ' ' +
4235          (detail.paymentDate | date: 'MMM d, y') +
4236          ',  ' +
4237          ('COMPANY_SETTINGS.PAYMENT_INFO.TRANSACTION_ID' | translate) +
4238          ': ' +
4239          detail.transactionId
4240        ">
4241                                              </nmfta-data-panel>
4242                                            }
4243                                            @if (paymentDetailsPaging$().allTransactions.length < paymentDetails$().length) {
4244                                              <div class="pt-4 text-center">
4245                                                <nmfta-button [color]="'accent'" [rightIcon]="'add'" (buttonClick)="loadMoreTransactions()">
4246                                                  {{ 'Generic_LoadMore' | translate }}
4247                                                </nmfta-button>
4248                                              </div>
4249                                            }
4250                                          </div>
4251                                        </ng-template>
4252
4253                                        <ng-template #unableToUpdateSynonyms>
4254                                          <div class="container-fluid p-1 p-md-4">
4255                                            <div class="row p-1 p-md-3 text-center">
4256                                              <span>{{ 'COMPANY_SETTINGS.UNABLE_TO_UPDATE_SYNONYMS_MESSAGE' | translate }}</span>
4257                                            </div>
4258                                          </div>
4259                                        </ng-template>
4260`, styles: ["/* src/app/features/profile/components/company-settings/company-settings.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.card-description {\n  line-height: 1.5rem;\n  font-size: 1rem;\n  font-weight: 500;\n}\n.payment-id p {\n  color: gray;\n}\n.main-card {\n  display: flex;\n  width: auto;\n}\n.flex-container {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n.left-col,\n.right-col {\n  gap: 5px;\n}\n.header-with-buttons {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%;\n  padding: 10px;\n}\n.actions-container {\n  display: flex;\n  gap: 10px;\n  margin-left: auto;\n}\n.select-team-content {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  height: 100%;\n  padding: 12px 24px 24px;\n}\n.select-team-content .edit-form {\n  padding-bottom: 12px;\n}\n.select-team-content .edit-form .form-row {\n  gap: 12px;\n}\n.select-team-content .edit-form .create-team-button {\n  display: flex;\n  align-content: flex-start;\n  flex-wrap: wrap;\n  padding-top: 24px;\n}\n.form-field {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n}\n.form-field label {\n  flex: 0 0 30%;\n  margin-right: 10px;\n}\n.form-field input {\n  flex: 1;\n}\n.error-message {\n  color: red;\n  font-size: 0.875rem;\n  margin-top: 0.5rem;\n}\n.dialog-edit-teams {\n  max-width: none !important;\n  width: 672px !important;\n}\n.manage-view {\n  display: grid;\n  grid-template-rows: 1fr auto;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.manage-view .manage-view-body {\n  padding: 0;\n  border-bottom: 1px solid #e8e8e8;\n  display: flex;\n  flex-direction: column;\n  grid-row: 1;\n  overflow: hidden;\n}\n.manage-view .manage-view-footer {\n  grid-row: 2;\n  padding: 24px;\n}\n.dialog-container {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n}\n.dialog-container mat-tab-group,\n.dialog-container ::ng-deep .mat-mdc-tab-body-wrapper {\n  height: 100% !important;\n}\n.dialog-container .manage-account-manager-view {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container .manage-account-manager-view .manage-account-manager-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .manage-account-manager-view .manage-account-manager-body {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n.dialog-container .manage-account-manager-invitation-view {\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.dialog-container .manage-account-manager-invitation-view .manage-account-manager-invitation-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .manage-account-manager-invitation-view .manage-account-manager-invitation-view-body {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n  overflow: auto;\n}\n.dialog-container .manage-account-manager-invitation-view .manage-account-manager-invitation-view-footer {\n  display: flex;\n  flex-direction: row;\n  grid-row: 3;\n  overflow: hidden;\n  padding: 24px;\n  border-top: 1px solid #e1e1e1;\n  justify-content: flex-end;\n}\n.dialog-container .company-admin-invitation-view {\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-body {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n  overflow: auto;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-footer {\n  display: flex;\n  flex-direction: row;\n  grid-row: 3;\n  overflow: hidden;\n  padding: 24px;\n  border-top: 1px solid #e1e1e1;\n  justify-content: flex-end;\n}\n.dialog-container .company-admin-view {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container .company-admin-view .company-admin-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .company-admin-view .company-admin-view-body {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n.form-content {\n  gap: 12px;\n  display: flex;\n  flex-direction: column;\n}\n.payment-footer {\n  padding: 24px;\n  border-top: 1px solid #e8e8e8;\n  display: flex;\n  justify-content: flex-end;\n  gap: 0.75rem;\n}\n.card-columns {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n.card-columns .card {\n  padding-top: 24px;\n}\n@media (min-width: 992px) {\n  .card-columns {\n    column-count: 2;\n  }\n}\n/*# sourceMappingURL=company-settings.component-TLHA76H5.css.map */\n"] }]
4261  }], () => [{ type: CountryService }], { editCompanyDetails: [{
4262    type: ViewChild,
4263    args: ["editCompanyDetails", { static: true }]
4264  }], manageTeams: [{
4265    type: ViewChild,
4266    args: ["manageTeams", { static: true }]
4267  }], paymentDialog: [{
4268    type: ViewChild,
4269    args: ["paymentDialog", { static: true }]
4270  }], transactionsDialog: [{
4271    type: ViewChild,
4272    args: ["transactionsDialog", { static: true }]
4273  }], manageAccountManager: [{
4274    type: ViewChild,
4275    args: ["manageAccountManager", { static: true }]
4276  }], addCompanyAdmins: [{
4277    type: ViewChild,
4278    args: ["addCompanyAdmins", { static: true }]
4279  }], manageCompanyAdmins: [{
4280    type: ViewChild,
4281    args: ["manageCompanyAdmins", { static: true }]
4282  }], removingLoggedInUserFromCompanySettings: [{
4283    type: ViewChild,
4284    args: ["removingLoggedInUserFromCompanySettings", { static: true }]
4285  }], deletingTeam: [{
4286    type: ViewChild,
4287    args: ["deletingTeam", { static: true }]
4288  }], emailReceipt: [{
4289    type: ViewChild,
4290    args: ["emailReceipt", { static: true }]
4291  }], unableToUpdateSynonyms: [{
4292    type: ViewChild,
4293    args: ["unableToUpdateSynonyms", { static: true }]
4294  }] });
4295})();
4296(() => {
4297  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(CompanySettingsComponent, { className: "CompanySettingsComponent", filePath: "src/app/features/profile/components/company-settings/company-settings.component.ts", lineNumber: 99 });
4298})();
4299
4300// src/app/features/profile/models/ftpSubscription.model.ts
4301var SubscriptionFtp = class {
4302  subscriptionFtpId;
4303  subscriptionId;
4304  companyId;
4305  deliveryMethod;
4306  isActive;
4307  contactName;
4308  pushFtpHostName;
4309  pushInitialDirectory;
4310  pushFtpUserName;
4311  pushConnectionPassword;
4312  emailAddress;
4313  pullFtpUserName;
4314  pullFtpPassword;
4315  isSuspended;
4316  pushFtpPortNumber;
4317  pushFtpDateTime;
4318};
4319var FtpDeliveryMethod;
4320(function(FtpDeliveryMethod2) {
4321  FtpDeliveryMethod2[FtpDeliveryMethod2["Push"] = 0] = "Push";
4322  FtpDeliveryMethod2[FtpDeliveryMethod2["Pull"] = 1] = "Pull";
4323  FtpDeliveryMethod2[FtpDeliveryMethod2["Email"] = 2] = "Email";
4324})(FtpDeliveryMethod || (FtpDeliveryMethod = {}));
4325
4326// src/app/shared/directives/time-mask.directive.ts
4327var NmftaTimeMaskDirective = class _NmftaTimeMaskDirective {
4328  el;
4329  constructor(el) {
4330    this.el = el;
4331  }
4332  onInput(e) {
4333    const input = this.el.nativeElement;
4334    const raw = input.value.toUpperCase();
4335    const cursorPos = input.selectionStart ?? 0;
4336    const digits = raw.replace(/[^0-9]/g, "");
4337    const hasSpace = raw.includes(" ");
4338    const hasAMPM = /[AP]/.test(raw);
4339    const shouldFormat = hasSpace || hasAMPM;
4340    let out = "";
4341    if (!shouldFormat) {
4342      out = digits;
4343    } else {
4344      if (digits.length === 0) {
4345        out = "";
4346      } else if (digits.length === 1) {
4347        out = `${digits}:00`;
4348      } else if (digits.length === 2) {
4349        const value = parseInt(digits);
4350        if (value <= 12) {
4351          out = `${digits}:00`;
4352        } else {
4353          out = `${digits[0]}:${digits[1]}0`;
4354        }
4355      } else if (digits.length === 3) {
4356        const hour = digits[0];
4357        const minute = digits.slice(1, 3);
4358        const minuteValue = parseInt(minute);
4359        if (minuteValue > 59) {
4360          const firstTwo = parseInt(digits.slice(0, 2));
4361          if (firstTwo >= 1 && firstTwo <= 12) {
4362            out = `${digits.slice(0, 2)}:${digits[2]}0`;
4363          } else {
4364            out = `${hour}:59`;
4365          }
4366        } else {
4367          out = `${hour}:${minute}`;
4368        }
4369      } else {
4370        const firstTwo = parseInt(digits.slice(0, 2));
4371        if (firstTwo >= 1 && firstTwo <= 12) {
4372          const hour = digits.slice(0, 2);
4373          const minute = digits.slice(2, 4);
4374          const minuteValue = parseInt(minute);
4375          if (minuteValue > 59) {
4376            out = `${hour}:59`;
4377          } else {
4378            out = `${hour}:${minute}`;
4379          }
4380        } else {
4381          const hour = digits[0];
4382          const minute = digits.slice(1, 3);
4383          const minuteValue = parseInt(minute);
4384          if (minuteValue > 59) {
4385            out = `${hour}:59`;
4386          } else {
4387            out = `${hour}:${minute}`;
4388          }
4389        }
4390      }
4391      if (out && hasAMPM) {
4392        out += " ";
4393        if (raw.includes("P")) {
4394          out += "P";
4395          if (raw.includes("M")) {
4396            out += "M";
4397          }
4398        } else if (raw.includes("A")) {
4399          out += "A";
4400          if (raw.includes("M")) {
4401            out += "M";
4402          }
4403        }
4404      } else if (out && hasSpace) {
4405        out += " ";
4406      }
4407    }
4408    if (out !== input.value) {
4409      input.value = out;
4410      requestAnimationFrame(() => {
4411        input.setSelectionRange(out.length, out.length);
4412      });
4413    }
4414  }
4415  blockInvalidKeys(ev) {
4416    const allowedKeys = [
4417      "Backspace",
4418      "Delete",
4419      "Tab",
4420      "ArrowLeft",
4421      "ArrowRight",
4422      "Home",
4423      "End",
4424      ":",
4425      " "
4426    ];
4427    if (allowedKeys.includes(ev.key))
4428      return;
4429    if (!/^[0-9apmAPM]$/.test(ev.key)) {
4430      ev.preventDefault();
4431    }
4432  }
4433  onPaste(ev) {
4434    const data = ev.clipboardData?.getData("text") ?? "";
4435    const cleaned = data.replace(/[^0-9APMapm]/g, "");
4436    if (!cleaned) {
4437      ev.preventDefault();
4438      return;
4439    }
4440  }
4441  static \u0275fac = function NmftaTimeMaskDirective_Factory(__ngFactoryType__) {
4442    return new (__ngFactoryType__ || _NmftaTimeMaskDirective)(\u0275\u0275directiveInject(ElementRef));
4443  };
4444  static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ type: _NmftaTimeMaskDirective, selectors: [["input", "nmftaTimeMask", ""]], hostBindings: function NmftaTimeMaskDirective_HostBindings(rf, ctx) {
4445    if (rf & 1) {
4446      \u0275\u0275listener("input", function NmftaTimeMaskDirective_input_HostBindingHandler($event) {
4447        return ctx.onInput($event);
4448      })("keydown", function NmftaTimeMaskDirective_keydown_HostBindingHandler($event) {
4449        return ctx.blockInvalidKeys($event);
4450      })("paste", function NmftaTimeMaskDirective_paste_HostBindingHandler($event) {
4451        return ctx.onPaste($event);
4452      });
4453    }
4454  } });
4455};
4456(() => {
4457  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NmftaTimeMaskDirective, [{
4458    type: Directive,
4459    args: [{
4460      selector: "input[nmftaTimeMask]",
4461      standalone: true
4462    }]
4463  }], () => [{ type: ElementRef }], { onInput: [{
4464    type: HostListener,
4465    args: ["input", ["$event"]]
4466  }], blockInvalidKeys: [{
4467    type: HostListener,
4468    args: ["keydown", ["$event"]]
4469  }], onPaste: [{
4470    type: HostListener,
4471    args: ["paste", ["$event"]]
4472  }] });
4473})();
4474
4475// src/app/shared/validators/time.validator.ts
4476function timeValidator(control) {
4477  if (!control.value || control.value === "") {
4478    return null;
4479  }
4480  const value = control.value.trim().toUpperCase();
4481  const regex = /^(1[0-2]|0?[1-9]):[0-5][0-9]\s?(AM|PM)$/;
4482  return regex.test(value) ? null : { invalidTime: true };
4483}
4484
vendor: 6,465 bytes, lines 4485-4699
4485// node_modules/@angular/cdk/fesm2022/clipboard.mjs
4486var PendingCopy = class {
4487  _document;
4488  _textarea;
4489  constructor(text, _document) {
4490    this._document = _document;
4491    const textarea = this._textarea = this._document.createElement("textarea");
4492    const styles = textarea.style;
4493    styles.position = "fixed";
4494    styles.top = styles.opacity = "0";
4495    styles.left = "-999em";
4496    textarea.setAttribute("aria-hidden", "true");
4497    textarea.value = text;
4498    textarea.readOnly = true;
4499    (this._document.fullscreenElement || this._document.body).appendChild(textarea);
4500  }
4501  /** Finishes copying the text. */
4502  copy() {
4503    const textarea = this._textarea;
4504    let successful = false;
4505    try {
4506      if (textarea) {
4507        const currentFocus = this._document.activeElement;
4508        textarea.select();
4509        textarea.setSelectionRange(0, textarea.value.length);
4510        successful = this._document.execCommand("copy");
4511        if (currentFocus) {
4512          currentFocus.focus();
4513        }
4514      }
4515    } catch {
4516    }
4517    return successful;
4518  }
4519  /** Cleans up DOM changes used to perform the copy operation. */
4520  destroy() {
4521    const textarea = this._textarea;
4522    if (textarea) {
4523      textarea.remove();
4524      this._textarea = void 0;
4525    }
4526  }
4527};
4528var Clipboard = class _Clipboard {
4529  _document = inject(DOCUMENT);
4530  constructor() {
4531  }
4532  /**
4533   * Copies the provided text into the user's clipboard.
4534   *
4535   * @param text The string to copy.
4536   * @returns Whether the operation was successful.
4537   */
4538  copy(text) {
4539    const pendingCopy = this.beginCopy(text);
4540    const successful = pendingCopy.copy();
4541    pendingCopy.destroy();
4542    return successful;
4543  }
4544  /**
4545   * Prepares a string to be copied later. This is useful for large strings
4546   * which take too long to successfully render and be copied in the same tick.
4547   *
4548   * The caller must call `destroy` on the returned `PendingCopy`.
4549   *
4550   * @param text The string to copy.
4551   * @returns the pending copy operation.
4552   */
4553  beginCopy(text) {
4554    return new PendingCopy(text, this._document);
4555  }
4556  static \u0275fac = function Clipboard_Factory(__ngFactoryType__) {
4557    return new (__ngFactoryType__ || _Clipboard)();
4558  };
4559  static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
4560    token: _Clipboard,
4561    factory: _Clipboard.\u0275fac,
4562    providedIn: "root"
4563  });
4564};
4565(() => {
4566  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Clipboard, [{
4567    type: Injectable,
4568    args: [{
4569      providedIn: "root"
4570    }]
4571  }], () => [], null);
4572})();
4573var CDK_COPY_TO_CLIPBOARD_CONFIG = new InjectionToken("CDK_COPY_TO_CLIPBOARD_CONFIG");
4574var CdkCopyToClipboard = class _CdkCopyToClipboard {
4575  _clipboard = inject(Clipboard);
4576  _ngZone = inject(NgZone);
4577  /** Content to be copied. */
4578  text = "";
4579  /**
4580   * How many times to attempt to copy the text. This may be necessary for longer text, because
4581   * the browser needs time to fill an intermediate textarea element and copy the content.
4582   */
4583  attempts = 1;
4584  /**
4585   * Emits when some text is copied to the clipboard. The
4586   * emitted value indicates whether copying was successful.
4587   */
4588  copied = new EventEmitter();
4589  /** Copies that are currently being attempted. */
4590  _pending = /* @__PURE__ */ new Set();
4591  /** Whether the directive has been destroyed. */
4592  _destroyed;
4593  /** Timeout for the current copy attempt. */
4594  _currentTimeout;
4595  constructor() {
4596    const config = inject(CDK_COPY_TO_CLIPBOARD_CONFIG, {
4597      optional: true
4598    });
4599    if (config && config.attempts != null) {
4600      this.attempts = config.attempts;
4601    }
4602  }
4603  /** Copies the current text to the clipboard. */
4604  copy(attempts = this.attempts) {
4605    if (attempts > 1) {
4606      let remainingAttempts = attempts;
4607      const pending = this._clipboard.beginCopy(this.text);
4608      this._pending.add(pending);
4609      const attempt = () => {
4610        const successful = pending.copy();
4611        if (!successful && --remainingAttempts && !this._destroyed) {
4612          this._currentTimeout = this._ngZone.runOutsideAngular(() => setTimeout(attempt, 1));
4613        } else {
4614          this._currentTimeout = null;
4615          this._pending.delete(pending);
4616          pending.destroy();
4617          this.copied.emit(successful);
4618        }
4619      };
4620      attempt();
4621    } else {
4622      this.copied.emit(this._clipboard.copy(this.text));
4623    }
4624  }
4625  ngOnDestroy() {
4626    if (this._currentTimeout) {
4627      clearTimeout(this._currentTimeout);
4628    }
4629    this._pending.forEach((copy) => copy.destroy());
4630    this._pending.clear();
4631    this._destroyed = true;
4632  }
4633  static \u0275fac = function CdkCopyToClipboard_Factory(__ngFactoryType__) {
4634    return new (__ngFactoryType__ || _CdkCopyToClipboard)();
4635  };
4636  static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
4637    type: _CdkCopyToClipboard,
4638    selectors: [["", "cdkCopyToClipboard", ""]],
4639    hostBindings: function CdkCopyToClipboard_HostBindings(rf, ctx) {
4640      if (rf & 1) {
4641        \u0275\u0275listener("click", function CdkCopyToClipboard_click_HostBindingHandler() {
4642          return ctx.copy();
4643        });
4644      }
4645    },
4646    inputs: {
4647      text: [0, "cdkCopyToClipboard", "text"],
4648      attempts: [0, "cdkCopyToClipboardAttempts", "attempts"]
4649    },
4650    outputs: {
4651      copied: "cdkCopyToClipboardCopied"
4652    }
4653  });
4654};
4655(() => {
4656  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkCopyToClipboard, [{
4657    type: Directive,
4658    args: [{
4659      selector: "[cdkCopyToClipboard]",
4660      host: {
4661        "(click)": "copy()"
4662      }
4663    }]
4664  }], () => [], {
4665    text: [{
4666      type: Input,
4667      args: ["cdkCopyToClipboard"]
4668    }],
4669    attempts: [{
4670      type: Input,
4671      args: ["cdkCopyToClipboardAttempts"]
4672    }],
4673    copied: [{
4674      type: Output,
4675      args: ["cdkCopyToClipboardCopied"]
4676    }]
4677  });
4678})();
4679var ClipboardModule = class _ClipboardModule {
4680  static \u0275fac = function ClipboardModule_Factory(__ngFactoryType__) {
4681    return new (__ngFactoryType__ || _ClipboardModule)();
4682  };
4683  static \u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
4684    type: _ClipboardModule,
4685    imports: [CdkCopyToClipboard],
4686    exports: [CdkCopyToClipboard]
4687  });
4688  static \u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({});
4689};
4690(() => {
4691  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ClipboardModule, [{
4692    type: NgModule,
4693    args: [{
4694      imports: [CdkCopyToClipboard],
4695      exports: [CdkCopyToClipboard]
4696    }]
4697  }], null, null);
4698})();
4699
4700// src/app/features/profile/components/manage-subscriptions/manage-subscriptions.component.ts
4701var _c03 = ["editFtpServerDetails"];
4702var _c18 = ["editSubscriptionContact"];
4703var _c22 = ["editExpirationDateModal"];
4704var _c32 = ["bundleProductModal"];
4705var _c42 = ["manageRateLimitModal"];
4706var _c52 = ["cancelOverrideReasonModal"];
4707var _c62 = () => ({ width: "100%", height: "4.633rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
4708var _c72 = (a0) => ({ endDate: a0 });
4709var _c82 = (a0) => ({ link: a0 });
4710var _forTrack04 = ($index, $item) => $item.email;
4711function ManageSubscriptionsComponent_Conditional_7_Conditional_4_Template(rf, ctx) {
4712  if (rf & 1) {
4713    \u0275\u0275element(0, "ngx-skeleton-loader", 15);
4714  }
4715  if (rf & 2) {
4716    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c62));
4717  }
4718}
4719function ManageSubscriptionsComponent_Conditional_7_Conditional_5_Conditional_0_Template(rf, ctx) {
4720  if (rf & 1) {
4721    \u0275\u0275elementStart(0, "h5");
4722    \u0275\u0275text(1);
4723    \u0275\u0275pipe(2, "translate");
4724    \u0275\u0275elementEnd();
4725    \u0275\u0275element(3, "nmfta-data-panel", 16);
4726    \u0275\u0275pipe(4, "translate");
4727  }
4728  if (rf & 2) {
4729    const ctx_r0 = \u0275\u0275nextContext(3);
4730    \u0275\u0275advance();
4731    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 3, "SUBSCRIPTIONS.PRODUCT_CONTACT_INFORMATION"));
4732    \u0275\u0275advance(2);
4733    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(4, 5, "SUBSCRIPTIONS.CONTACT_NAME"))("propertyValue", ctx_r0.subscriptions$().website.contactFirstName + " " + ctx_r0.subscriptions$().website.contactLastName);
4734  }
4735}
4736function ManageSubscriptionsComponent_Conditional_7_Conditional_5_Conditional_1_Template(rf, ctx) {
4737  if (rf & 1) {
4738    \u0275\u0275element(0, "nmfta-data-panel", 16);
4739    \u0275\u0275pipe(1, "translate");
4740  }
4741  if (rf & 2) {
4742    const ctx_r0 = \u0275\u0275nextContext(3);
4743    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(1, 2, "SUBSCRIPTIONS.BUSINESS_UNIT"))("propertyValue", ctx_r0.subscriptions$().website.businessUnit);
4744  }
4745}
4746function ManageSubscriptionsComponent_Conditional_7_Conditional_5_Template(rf, ctx) {
4747  if (rf & 1) {
4748    \u0275\u0275conditionalCreate(0, ManageSubscriptionsComponent_Conditional_7_Conditional_5_Conditional_0_Template, 5, 7);
4749    \u0275\u0275conditionalCreate(1, ManageSubscriptionsComponent_Conditional_7_Conditional_5_Conditional_1_Template, 2, 4, "nmfta-data-panel", 16);
4750    \u0275\u0275elementStart(2, "h5", 17);
4751    \u0275\u0275text(3);
4752    \u0275\u0275pipe(4, "translate");
4753    \u0275\u0275elementEnd();
4754    \u0275\u0275element(5, "nmfta-data-panel", 16);
4755    \u0275\u0275pipe(6, "translate");
4756    \u0275\u0275element(7, "nmfta-data-panel", 18);
4757    \u0275\u0275pipe(8, "translate");
4758  }
4759  if (rf & 2) {
4760    const ctx_r0 = \u0275\u0275nextContext(2);
4761    \u0275\u0275conditional(ctx_r0.subscriptions$().website.contactFirstName && ctx_r0.subscriptions$().website.contactLastName ? 0 : -1);
4762    \u0275\u0275advance();
4763    \u0275\u0275conditional(ctx_r0.subscriptions$().website.businessUnit ? 1 : -1);
4764    \u0275\u0275advance(2);
4765    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 8, "SUBSCRIPTIONS.PRODUCT_LICENSE_INFORMATION"));
4766    \u0275\u0275advance(2);
4767    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(6, 10, "SUBSCRIPTIONS.TOTAL_LICENSES"))("propertyValue", ctx_r0.company$().totalNumberOfLicenses.toString());
4768    \u0275\u0275advance(2);
4769    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(8, 12, "SUBSCRIPTIONS.LICENSES_ASSIGNED"))("actions", ctx_r0.licensesAssignedHeaderActions)("description", ctx_r0.company$().numberOfAssignedLicenses.toString() + "/" + ctx_r0.company$().totalNumberOfLicenses.toString());
4770  }
4771}
4772function ManageSubscriptionsComponent_Conditional_7_Template(rf, ctx) {
4773  if (rf & 1) {
4774    \u0275\u0275elementStart(0, "div", 13)(1, "nmfta-card", 14);
4775    \u0275\u0275pipe(2, "translate");
4776    \u0275\u0275pipe(3, "translate");
4777    \u0275\u0275conditionalCreate(4, ManageSubscriptionsComponent_Conditional_7_Conditional_4_Template, 1, 2, "ngx-skeleton-loader", 15)(5, ManageSubscriptionsComponent_Conditional_7_Conditional_5_Template, 9, 14);
4778    \u0275\u0275elementEnd()();
4779  }
4780  if (rf & 2) {
4781    const ctx_r0 = \u0275\u0275nextContext();
4782    \u0275\u0275advance();
4783    \u0275\u0275property("title", \u0275\u0275pipeBind1(2, 8, "SUBSCRIPTIONS.CLASSIT_TITLE"))("subTitle", \u0275\u0275pipeBind1(3, 10, "SUBSCRIPTIONS.CLASSIT_SUBTITLE"))("isLoading", ctx_r0.submissionStatus$() !== "loaded")("headerActions", ctx_r0.renewWebApplicationSubscriptionHeaderActions$)("footerActions", ctx_r0.renewWebApplicationSubscriptionFooterActions$)("alert", ctx_r0.getExpirationDateText(ctx_r0.subscriptions$().website.expirationDate))("alertType", ctx_r0.getAlertType(ctx_r0.subscriptions$().website.expirationDate));
4784    \u0275\u0275advance(3);
4785    \u0275\u0275conditional(ctx_r0.submissionStatus$() !== "loaded" ? 4 : 5);
4786  }
4787}
4788function ManageSubscriptionsComponent_Conditional_8_Conditional_4_Template(rf, ctx) {
4789  if (rf & 1) {
4790    \u0275\u0275element(0, "ngx-skeleton-loader", 15);
4791  }
4792  if (rf & 2) {
4793    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c62));
4794  }
4795}
4796function ManageSubscriptionsComponent_Conditional_8_Conditional_5_Conditional_0_Template(rf, ctx) {
4797  if (rf & 1) {
4798    \u0275\u0275elementStart(0, "h5", 17);
4799    \u0275\u0275text(1);
4800    \u0275\u0275pipe(2, "translate");
4801    \u0275\u0275elementEnd();
4802    \u0275\u0275element(3, "nmfta-data-panel", 16);
4803    \u0275\u0275pipe(4, "translate");
4804  }
4805  if (rf & 2) {
4806    const ctx_r0 = \u0275\u0275nextContext(3);
4807    \u0275\u0275advance();
4808    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 3, "SUBSCRIPTIONS.PRODUCT_CONTACT_INFORMATION"));
4809    \u0275\u0275advance(2);
4810    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(4, 5, "SUBSCRIPTIONS.CONTACT_NAME"))("propertyValue", ctx_r0.subscriptions$().api.contactFirstName + " " + ctx_r0.subscriptions$().api.contactLastName);
4811  }
4812}
4813function ManageSubscriptionsComponent_Conditional_8_Conditional_5_Conditional_1_Template(rf, ctx) {
4814  if (rf & 1) {
4815    \u0275\u0275element(0, "nmfta-data-panel", 16);
4816    \u0275\u0275pipe(1, "translate");
4817  }
4818  if (rf & 2) {
4819    const ctx_r0 = \u0275\u0275nextContext(3);
4820    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(1, 2, "SUBSCRIPTIONS.BUSINESS_UNIT"))("propertyValue", ctx_r0.subscriptions$().api.businessUnit);
4821  }
4822}
4823function ManageSubscriptionsComponent_Conditional_8_Conditional_5_Conditional_13_Template(rf, ctx) {
4824  if (rf & 1) {
4825    \u0275\u0275elementStart(0, "h5", 22);
4826    \u0275\u0275text(1);
4827    \u0275\u0275pipe(2, "date");
4828    \u0275\u0275pipe(3, "translate");
4829    \u0275\u0275elementEnd();
4830  }
4831  if (rf & 2) {
4832    let tmp_9_0;
4833    const ctx_r0 = \u0275\u0275nextContext(3);
4834    \u0275\u0275advance();
4835    \u0275\u0275textInterpolate1("( ", \u0275\u0275pipeBind2(3, 4, "SUBSCRIPTIONS.OVERRIDE_RATE_LIMIT_IN_EFFECT", \u0275\u0275pureFunction1(7, _c72, \u0275\u0275pipeBind2(2, 1, (tmp_9_0 = ctx_r0.subscriptions$().api.apiCredentials) == null ? null : tmp_9_0.overrideUntilDateTime, "MM/dd/yyyy"))), " )");
4836  }
4837}
4838function ManageSubscriptionsComponent_Conditional_8_Conditional_5_Template(rf, ctx) {
4839  if (rf & 1) {
4840    \u0275\u0275conditionalCreate(0, ManageSubscriptionsComponent_Conditional_8_Conditional_5_Conditional_0_Template, 5, 7);
4841    \u0275\u0275conditionalCreate(1, ManageSubscriptionsComponent_Conditional_8_Conditional_5_Conditional_1_Template, 2, 4, "nmfta-data-panel", 16);
4842    \u0275\u0275elementStart(2, "h5", 17);
4843    \u0275\u0275text(3);
4844    \u0275\u0275pipe(4, "translate");
4845    \u0275\u0275elementEnd();
4846    \u0275\u0275element(5, "nmfta-data-panel", 19);
4847    \u0275\u0275pipe(6, "translate");
4848    \u0275\u0275element(7, "nmfta-data-panel", 19);
4849    \u0275\u0275pipe(8, "translate");
4850    \u0275\u0275elementStart(9, "div", 20)(10, "h5", 21);
4851    \u0275\u0275text(11);
4852    \u0275\u0275pipe(12, "translate");
4853    \u0275\u0275elementEnd();
4854    \u0275\u0275conditionalCreate(13, ManageSubscriptionsComponent_Conditional_8_Conditional_5_Conditional_13_Template, 4, 9, "h5", 22);
4855    \u0275\u0275elementEnd();
4856    \u0275\u0275element(14, "nmfta-data-panel", 16);
4857    \u0275\u0275pipe(15, "translate");
4858    \u0275\u0275element(16, "nmfta-data-panel", 16);
4859    \u0275\u0275pipe(17, "translate");
4860  }
4861  if (rf & 2) {
4862    let tmp_16_0;
4863    let tmp_18_0;
4864    let tmp_20_0;
4865    const ctx_r0 = \u0275\u0275nextContext(2);
4866    \u0275\u0275conditional(ctx_r0.subscriptions$().api.contactFirstName && ctx_r0.subscriptions$().api.contactLastName ? 0 : -1);
4867    \u0275\u0275advance();
4868    \u0275\u0275conditional(ctx_r0.subscriptions$().api.businessUnit ? 1 : -1);
4869    \u0275\u0275advance(2);
4870    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 13, "SUBSCRIPTIONS.PRODUCT_API_CONFIGURATION"));
4871    \u0275\u0275advance(2);
4872    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(6, 15, "SUBSCRIPTIONS.CLASSIT_API_CLIENT_ID"))("actions", ctx_r0.userClientIdAction());
4873    \u0275\u0275advance(2);
4874    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(8, 17, "SUBSCRIPTIONS.CLASSIT_API_SECRET_KEY"))("actions", ctx_r0.secretKeyAction());
4875    \u0275\u0275advance(4);
4876    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(12, 19, "SUBSCRIPTIONS.RATE_LIMITS"));
4877    \u0275\u0275advance(2);
4878    \u0275\u0275conditional(((tmp_16_0 = ctx_r0.subscriptions$().api.apiCredentials) == null ? null : tmp_16_0.overrideUntilDateTime) ? 13 : -1);
4879    \u0275\u0275advance();
4880    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(15, 21, "SUBSCRIPTIONS.HOURLY_RATE_LIMIT"))("propertyValue", (tmp_18_0 = ctx_r0.subscriptions$().api.apiCredentials) == null ? null : tmp_18_0.rateHourLimitMaxCalls == null ? null : tmp_18_0.rateHourLimitMaxCalls.toString());
4881    \u0275\u0275advance(2);
4882    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(17, 23, "SUBSCRIPTIONS.MONTHLY_RATE_LIMIT"))("propertyValue", (tmp_20_0 = ctx_r0.subscriptions$().api.apiCredentials) == null ? null : tmp_20_0.apiCallLimitPerMonth == null ? null : tmp_20_0.apiCallLimitPerMonth.toString());
4883  }
4884}
4885function ManageSubscriptionsComponent_Conditional_8_Template(rf, ctx) {
4886  if (rf & 1) {
4887    \u0275\u0275elementStart(0, "div", 13)(1, "nmfta-card", 14);
4888    \u0275\u0275pipe(2, "translate");
4889    \u0275\u0275pipe(3, "translate");
4890    \u0275\u0275conditionalCreate(4, ManageSubscriptionsComponent_Conditional_8_Conditional_4_Template, 1, 2, "ngx-skeleton-loader", 15)(5, ManageSubscriptionsComponent_Conditional_8_Conditional_5_Template, 18, 25);
4891    \u0275\u0275elementEnd()();
4892  }
4893  if (rf & 2) {
4894    const ctx_r0 = \u0275\u0275nextContext();
4895    \u0275\u0275advance();
4896    \u0275\u0275property("title", \u0275\u0275pipeBind1(2, 8, "SUBSCRIPTIONS.CLASSIT_API_TITLE"))("subTitle", \u0275\u0275pipeBind1(3, 10, "SUBSCRIPTIONS.CLASSIT_API_SUBTITLE"))("isLoading", ctx_r0.submissionStatus$() !== "loaded")("headerActions", ctx_r0.renewApiSubscriptionHeaderActions$)("footerActions", ctx_r0.renewApiSubscriptionFooterActions$)("alert", ctx_r0.getExpirationDateText(ctx_r0.subscriptions$().api.expirationDate))("alertType", ctx_r0.getAlertType(ctx_r0.subscriptions$().api.expirationDate));
4897    \u0275\u0275advance(3);
4898    \u0275\u0275conditional(ctx_r0.submissionStatus$() !== "loaded" ? 4 : 5);
4899  }
4900}
4901function ManageSubscriptionsComponent_Conditional_9_Conditional_4_Template(rf, ctx) {
4902  if (rf & 1) {
4903    \u0275\u0275element(0, "ngx-skeleton-loader", 15);
4904  }
4905  if (rf & 2) {
4906    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c62));
4907  }
4908}
4909function ManageSubscriptionsComponent_Conditional_9_Conditional_5_Conditional_0_Template(rf, ctx) {
4910  if (rf & 1) {
4911    \u0275\u0275elementStart(0, "h5", 17);
4912    \u0275\u0275text(1);
4913    \u0275\u0275pipe(2, "translate");
4914    \u0275\u0275elementEnd();
4915    \u0275\u0275element(3, "nmfta-data-panel", 16);
4916    \u0275\u0275pipe(4, "translate");
4917  }
4918  if (rf & 2) {
4919    const ctx_r0 = \u0275\u0275nextContext(3);
4920    \u0275\u0275advance();
4921    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 3, "SUBSCRIPTIONS.PRODUCT_CONTACT_INFORMATION"));
4922    \u0275\u0275advance(2);
4923    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(4, 5, "SUBSCRIPTIONS.CONTACT_NAME"))("propertyValue", ctx_r0.subscriptions$().bfd.contactFirstName + " " + ctx_r0.subscriptions$().bfd.contactLastName);
4924  }
4925}
4926function ManageSubscriptionsComponent_Conditional_9_Conditional_5_Conditional_1_Template(rf, ctx) {
4927  if (rf & 1) {
4928    \u0275\u0275element(0, "nmfta-data-panel", 16);
4929    \u0275\u0275pipe(1, "translate");
4930  }
4931  if (rf & 2) {
4932    const ctx_r0 = \u0275\u0275nextContext(3);
4933    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(1, 2, "SUBSCRIPTIONS.BUSINESS_UNIT"))("propertyValue", ctx_r0.subscriptions$().bfd.businessUnit);
4934  }
4935}
4936function ManageSubscriptionsComponent_Conditional_9_Conditional_5_Template(rf, ctx) {
4937  if (rf & 1) {
4938    \u0275\u0275conditionalCreate(0, ManageSubscriptionsComponent_Conditional_9_Conditional_5_Conditional_0_Template, 5, 7);
4939    \u0275\u0275conditionalCreate(1, ManageSubscriptionsComponent_Conditional_9_Conditional_5_Conditional_1_Template, 2, 4, "nmfta-data-panel", 16);
4940    \u0275\u0275elementStart(2, "h5", 17);
4941    \u0275\u0275text(3);
4942    \u0275\u0275pipe(4, "translate");
4943    \u0275\u0275elementEnd();
4944    \u0275\u0275element(5, "nmfta-data-panel", 16);
4945    \u0275\u0275pipe(6, "translate");
4946    \u0275\u0275element(7, "nmfta-data-panel", 16);
4947    \u0275\u0275pipe(8, "translate");
4948    \u0275\u0275element(9, "nmfta-data-panel", 16);
4949    \u0275\u0275pipe(10, "translate");
4950  }
4951  if (rf & 2) {
4952    let tmp_12_0;
4953    let tmp_14_0;
4954    let tmp_16_0;
4955    const ctx_r0 = \u0275\u0275nextContext(2);
4956    \u0275\u0275conditional(ctx_r0.subscriptions$().bfd.contactFirstName && ctx_r0.subscriptions$().bfd.contactLastName ? 0 : -1);
4957    \u0275\u0275advance();
4958    \u0275\u0275conditional(ctx_r0.subscriptions$().bfd.businessUnit ? 1 : -1);
4959    \u0275\u0275advance(2);
4960    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 9, "SUBSCRIPTIONS.PRODUCT_SFTP_PUSH_INFORMATION"));
4961    \u0275\u0275advance(2);
4962    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(6, 11, "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_HOST"))("propertyValue", (tmp_12_0 = ctx_r0.subscriptions$().bfd.subscriptionFtp) == null ? null : tmp_12_0.pushFtpHostName);
4963    \u0275\u0275advance(2);
4964    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(8, 13, "SUBSCRIPTIONS.CLASSIT_BFD_INITIAL_DIRECTORY"))("propertyValue", (tmp_14_0 = ctx_r0.subscriptions$().bfd.subscriptionFtp) == null ? null : tmp_14_0.pushInitialDirectory);
4965    \u0275\u0275advance(2);
4966    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(10, 15, "SUBSCRIPTIONS.CLASSIT_BFD_USER_NAME"))("propertyValue", (tmp_16_0 = ctx_r0.subscriptions$().bfd.subscriptionFtp) == null ? null : tmp_16_0.pushFtpUserName);
4967  }
4968}
4969function ManageSubscriptionsComponent_Conditional_9_Template(rf, ctx) {
4970  if (rf & 1) {
4971    \u0275\u0275elementStart(0, "div", 13)(1, "nmfta-card", 23);
4972    \u0275\u0275pipe(2, "translate");
4973    \u0275\u0275pipe(3, "translate");
4974    \u0275\u0275conditionalCreate(4, ManageSubscriptionsComponent_Conditional_9_Conditional_4_Template, 1, 2, "ngx-skeleton-loader", 15)(5, ManageSubscriptionsComponent_Conditional_9_Conditional_5_Template, 11, 17);
4975    \u0275\u0275elementEnd()();
4976  }
4977  if (rf & 2) {
4978    const ctx_r0 = \u0275\u0275nextContext();
4979    \u0275\u0275advance();
4980    \u0275\u0275property("title", \u0275\u0275pipeBind1(2, 8, "SUBSCRIPTIONS.CLASSIT_BFD_TITLE"))("subTitle", \u0275\u0275pipeBind2(3, 10, "SUBSCRIPTIONS.CLASSIT_BFD_NOTE", \u0275\u0275pureFunction1(13, _c82, ctx_r0.dataFilesRecordLayoutLink)))("headerActions", ctx_r0.renewBfdSubscriptionHeaderActions$)("isLoading", ctx_r0.submissionStatus$() !== "loaded")("alert", ctx_r0.getExpirationDateText(ctx_r0.subscriptions$().bfd.expirationDate))("alertType", ctx_r0.getAlertType(ctx_r0.subscriptions$().bfd.expirationDate))("footerActions", ctx_r0.renewBfdSubscriptionFooterActions$);
4981    \u0275\u0275advance(3);
4982    \u0275\u0275conditional(ctx_r0.submissionStatus$() !== "loaded" ? 4 : 5);
4983  }
4984}
4985function ManageSubscriptionsComponent_ng_template_10_Conditional_33_Template(rf, ctx) {
4986  if (rf & 1) {
4987    \u0275\u0275elementStart(0, "div", 40);
4988    \u0275\u0275text(1);
4989    \u0275\u0275pipe(2, "translate");
4990    \u0275\u0275elementEnd();
4991  }
4992  if (rf & 2) {
4993  
4993  \u0275\u0275advance();
4994    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "Generic_PasswordMismatch"), " ");
4995  }
4996}
4997function ManageSubscriptionsComponent_ng_template_10_Conditional_46_Template(rf, ctx) {
4998  if (rf & 1) {
4999    \u0275\u0275elementStart(0, "nmfta-alert", 47);
5000    \u0275\u0275text(1);
5001    \u0275\u0275elementEnd();
5002  }
5003  if (rf & 2) {
5004    const ctx_r0 = \u0275\u0275nextContext(2);
5005    \u0275\u0275property("color", ctx_r0.ftpAlertColor);
5006    \u0275\u0275advance();
5007    \u0275\u0275textInterpolate1(" ", ctx_r0.ftpAlertMessage, " ");
5008  }
5009}
5010function ManageSubscriptionsComponent_ng_template_10_Template(rf, ctx) {
5011  if (rf & 1) {
5012    const _r2 = \u0275\u0275getCurrentView();
5013    \u0275\u0275elementStart(0, "form", 24)(1, "div", 25)(2, "div", 10)(3, "div", 26)(4, "nmfta-input-wrapper", 27)(5, "div", 28);
5014    \u0275\u0275element(6, "input", 29);
5015    \u0275\u0275pipe(7, "translate");
5016    \u0275\u0275elementEnd()()();
5017    \u0275\u0275elementStart(8, "div", 26)(9, "nmfta-input-wrapper", 30)(10, "div", 28);
5018    \u0275\u0275element(11, "input", 31);
5019    \u0275\u0275pipe(12, "translate");
5020    \u0275\u0275elementEnd()()();
5021    \u0275\u0275elementStart(13, "div", 26)(14, "nmfta-input-wrapper", 32)(15, "div", 28);
5022    \u0275\u0275element(16, "input", 33);
5023    \u0275\u0275pipe(17, "translate");
5024    \u0275\u0275elementEnd()()();
5025    \u0275\u0275elementStart(18, "div", 26)(19, "nmfta-input-wrapper", 34)(20, "div", 28);
5026    \u0275\u0275element(21, "input", 35);
5027    \u0275\u0275pipe(22, "translate");
5028    \u0275\u0275elementEnd()()();
5029    \u0275\u0275elementStart(23, "div", 26)(24, "nmfta-input-wrapper", 36)(25, "div", 28);
5030    \u0275\u0275element(26, "input", 37);
5031    \u0275\u0275pipe(27, "translate");
5032    \u0275\u0275elementEnd()()();
5033    \u0275\u0275elementStart(28, "div", 26)(29, "nmfta-input-wrapper", 38)(30, "div", 28);
5034    \u0275\u0275element(31, "input", 39);
5035    \u0275\u0275pipe(32, "translate");
5036    \u0275\u0275elementEnd();
5037    \u0275\u0275conditionalCreate(33, ManageSubscriptionsComponent_ng_template_10_Conditional_33_Template, 3, 3, "div", 40);
5038    \u0275\u0275elementEnd()();
5039    \u0275\u0275elementStart(34, "div", 26)(35, "nmfta-input-wrapper", 41)(36, "div", 28);
5040    \u0275\u0275element(37, "input", 42);
5041    \u0275\u0275pipe(38, "translate");
5042    \u0275\u0275elementEnd()()();
5043    \u0275\u0275elementStart(39, "div", 26)(40, "nmfta-input-wrapper", 43)(41, "div", 28);
5044    \u0275\u0275element(42, "input", 44);
5045    \u0275\u0275pipe(43, "translate");
5046    \u0275\u0275elementEnd()()()()();
5047    \u0275\u0275elementStart(44, "div", 45)(45, "div", 46);
5048    \u0275\u0275conditionalCreate(46, ManageSubscriptionsComponent_ng_template_10_Conditional_46_Template, 2, 2, "nmfta-alert", 47);
5049    \u0275\u0275elementEnd();
5050    \u0275\u0275elementStart(47, "div", 48)(48, "nmfta-button", 49);
5051    \u0275\u0275listener("buttonClick", function ManageSubscriptionsComponent_ng_template_10_Template_nmfta_button_buttonClick_48_listener() {
5052      \u0275\u0275restoreView(_r2);
5053      const ctx_r0 = \u0275\u0275nextContext();
5054      return \u0275\u0275resetView(ctx_r0.testFtp());
5055    });
5056    \u0275\u0275text(49);
5057    \u0275\u0275pipe(50, "translate");
5058    \u0275\u0275elementEnd();
5059    \u0275\u0275elementStart(51, "nmfta-button", 50);
5060    \u0275\u0275listener("buttonClick", function ManageSubscriptionsComponent_ng_template_10_Template_nmfta_button_buttonClick_51_listener() {
5061      \u0275\u0275restoreView(_r2);
5062      const ctx_r0 = \u0275\u0275nextContext();
5063      return \u0275\u0275resetView(ctx_r0.saveFtpSettings());
5064    });
5065    \u0275\u0275text(52);
5066    \u0275\u0275pipe(53, "translate");
5067    \u0275\u0275elementEnd()()()();
5068  }
5069  if (rf & 2) {
5070    const ctx_r0 = \u0275\u0275nextContext();
5071    \u0275\u0275property("formGroup", ctx_r0.ftpForm);
5072    \u0275\u0275advance(6);
5073    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(7, 18, "SUBSCRIPTIONS.CONTACT_NAME"));
5074    \u0275\u0275advance(5);
5075    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(12, 20, "SUBSCRIPTIONS.CLASSIT_BFD_EMAIL_ADDRESS"));
5076    \u0275\u0275advance(5);
5077    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(17, 22, "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_HOST"));
5078    \u0275\u0275advance(5);
5079    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(22, 24, "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_USER_NAME"));
5080    \u0275\u0275advance(5);
5081    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(27, 26, "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_CONNECTION_PASSWORD"));
5082    \u0275\u0275advance(5);
5083    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(32, 28, "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_CONNECTION_PASSWORD_CONFIRM"));
5084    \u0275\u0275advance(2);
5085    \u0275\u0275conditional(ctx_r0.ftpForm.hasError("passwordMismatch") ? 33 : -1);
5086    \u0275\u0275advance(4);
5087    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(38, 30, "SUBSCRIPTIONS.CLASSIT_BFD_INITIAL_DIRECTORY"));
5088    \u0275\u0275advance(5);
5089    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(43, 32, "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_PORT_NUMBER"));
5090    \u0275\u0275advance(4);
5091    \u0275\u0275conditional(ctx_r0.ftpAlertMessage && !ctx_r0.isTestConnectionLoading ? 46 : -1);
5092    \u0275\u0275advance(2);
5093    \u0275\u0275property("styleType", "outlined")("disabled", ctx_r0.ftpForm.invali
5093d)("isLoading", ctx_r0.isTestConnectionLoading);
5094    \u0275\u0275advance();
5095    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(50, 34, "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_TEST"), " ");
5096    \u0275\u0275advance(2);
5097    \u0275\u0275property("styleType", "contained")("disabled", ctx_r0.ftpForm.invalid);
5098    \u0275\u0275advance();
5099    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(53, 36, "SUBSCRIPTIONS.CLASSIT_BFD_UPDATE_SFTP_SETTINGS"), " ");
5100  }
5101}
5102function ManageSubscriptionsComponent_ng_template_12_For_24_Template(rf, ctx) {
5103  if (rf & 1) {
5104    \u0275\u0275element(0, "nmfta-data-panel", 63);
5105  }
5106  if (rf & 2) {
5107    const user_r4 = ctx.$implicit;
5108    const ctx_r0 = \u0275\u0275nextContext(2);
5109    \u0275\u0275property("icon", "person")("propertyName", ctx_r0.getUserDisplayName(user_r4, user_r4 == null ? null : user_r4.isAdmin))("description", user_r4.email)("actions", ctx_r0.setAsContact(user_r4));
5110  }
5111}
5112function ManageSubscriptionsComponent_ng_template_12_Template(rf, ctx) {
5113  if (rf & 1) {
5114    const _r3 = \u0275\u0275getCurrentView();
5115    \u0275\u0275elementStart(0, "div", 51)(1, "form", 52)(2, "div", 53)(3, "div", 54)(4, "p");
5116    \u0275\u0275text(5);
5117    \u0275\u0275pipe(6, "translate");
5118    \u0275\u0275elementEnd()();
5119    \u0275\u0275elementStart(7, "div", 55)(8, "nmfta-input-wrapper", 56);
5120    \u0275\u0275element(9, "input", 57);
5121    \u0275\u0275pipe(10, "translate");
5122    \u0275\u0275elementEnd()();
5123    \u0275\u0275elementStart(11, "div", 58)(12, "mat-checkbox", 59);
5124    \u0275\u0275listener("change", function ManageSubscriptionsComponent_ng_template_12_Template_mat_checkbox_change_12_listener($event) {
5125      \u0275\u0275restoreView(_r3);
5126      const ctx_r0 = \u0275\u0275nextContext();
5127      return \u0275\u0275resetView(ctx_r0.onSetBusinessUnit($event));
5128    });
5129    \u0275\u0275text(13);
5130    \u0275\u0275pipe(14, "translate");
5131    \u0275\u0275elementEnd()();
5132    \u0275\u0275elementStart(15, "div", 60)(16, "nmfta-button", 61);
5133    \u0275\u0275listener("buttonClick", function ManageSubscriptionsComponent_ng_template_12_Template_nmfta_button_buttonClick_16_listener() {
5134      \u0275\u0275restoreView(_r3);
5135      const ctx_r0 = \u0275\u0275nextContext();
5136      return \u0275\u0275resetView(ctx_r0.onSetBusinessUnit());
5137    });
5138    \u0275\u0275text(17);
5139    \u0275\u0275pipe(18, "translate");
5140    \u0275\u0275elementEnd()()()()();
5141    \u0275\u0275elementStart(19, "div", 62)(20, "p");
5142    \u0275\u0275text(21);
5143    \u0275\u0275pipe(22, "translate");
5144    \u0275\u0275elementEnd();
5145    \u0275\u0275repeaterCreate(23, ManageSubscriptionsComponent_ng_template_12_For_24_Template, 1, 4, "nmfta-data-panel", 63, _forTrack04);
5146    \u0275\u0275elementEnd();
5147  }
5148  if (rf & 2) {
5149    const ctx_r0 = \u0275\u0275nextContext();
5150    \u0275\u0275advance();
5151    \u0275\u0275property("formGroup", ctx_r0.businessUnitForm);
5152    \u0275\u0275advance(4);
5153    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 11, "SUBSCRIPTIONS.BUSINESS_UNIT_INFO"));
5154    \u0275\u0275advance(4);
5155    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(10, 13, "SUBSCRIPTIONS.BUSINESS_UNIT")))("id", "businessUnitName")("type", "text");
5156    \u0275\u0275advance(4);
5157    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(14, 15, "SUBSCRIPTIONS.SET_SAME_AS_COMPANY"), " ");
5158    \u0275\u0275advance(3);
5159    \u0275\u0275property("isLoading", ctx_r0.businessUnitSaveButton)("disabled", !ctx_r0.businessUnitForm.valid || ctx_r0.businessUnitForm.get("businessUnitName").disabled);
5160    \u0275\u0275advance();
5161    \u0275\u0275textInterpolate1("", \u0275\u0275pipeBind1(18, 17, "Generic_Save"), " ");
5162    \u0275\u0275advance(4);
5163    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(22, 19, "SUBSCRIPTIONS.PRODUCT_CONTACT_SELECTION"));
5164    \u0275\u0275advance(2);
5165    \u0275\u0275repeater(ctx_r0.contactUserList$());
5166  }
5167}
5168function ManageSubscriptionsComponent_ng_template_14_Template(rf, ctx) {
5169  if (rf & 1) {
5170    \u0275\u0275elementStart(0, "form", 64)(1, "mat-dialog-content")(2, "div", 65)(3, "div", 10)(4, "div", 66)(5, "mat-form-field", 67)(6, "mat-label");
5171    \u0275\u0275text(7, "New Expiration Date");
5172    \u0275\u0275elementEnd();
5173    \u0275\u0275element(8, "input", 68)(9, "mat-datepicker-toggle", 69)(10, "mat-datepicker", null, 6);
5174    \u0275\u0275elementEnd()()()()()();
5175  }
5176  if (rf & 2) {
5177    const picker_r5 = \u0275\u0275reference(11);
5178    const ctx_r0 = \u0275\u0275nextContext();
5179    \u0275\u0275property("formGroup", ctx_r0.editExpirationDateForm);
5180    \u0275\u0275advance(8);
5181    \u0275\u0275property("matDatepicker", picker_r5);
5182    \u0275\u0275advance();
5183    \u0275\u0275property("for", picker_r5);
5184  }
5185}
5186function ManageSubscriptionsComponent_ng_template_16_Template(rf, ctx) {
5187  if (rf & 1) {
5188    \u0275\u0275elementStart(0, "form", 64)(1, "mat-dialog-content")(2, "div", 65)(3, "div", 10)(4, "div", 11);
5189    \u0275\u0275element(5, "nmfta-alert", 70);
5190    \u0275\u0275pipe(6, "translate");
5191    \u0275\u0275elementEnd()();
5192    \u0275\u0275elementStart(7, "div", 10)(8, "div", 11)(9, "nmfta-input-wrapper", 71);
5193    \u0275\u0275pipe(10, "translate");
5194    \u0275\u0275element(11, "input", 68)(12, "mat-datepicker-toggle", 69)(13, "mat-datepicker", null, 7);
5195    \u0275\u0275elementEnd()()()()()();
5196  }
5197  if (rf & 2) {
5198    const newExpirationPicker_r6 = \u0275\u0275reference(14);
5199    const ctx_r0 = \u0275\u0275nextContext();
5200    \u0275\u0275property("formGroup", ctx_r0.bundleProductForm);
5201    \u0275\u0275advance(5);
5202    \u0275\u0275property("color", "info")("message", \u0275\u0275pipeBind1(6, 6, "Generic_UpdateBundleExpirationMessage"));
5203    \u0275\u0275advance(4);
5204    \u0275\u0275property("label", \u0275\u0275pipeBind1(10, 8, "Generic_ExpirationDate_Simple"));
5205    \u0275\u0275advance(2);
5206    \u0275\u0275property("matDatepicker", newExpirationPicker_r6);
5207    \u0275\u0275advance();
5208    \u0275\u0275property("for", newExpirationPicker_r6);
5209  }
5210}
5211function ManageSubscriptionsComponent_ng_template_18_Conditional_27_Template(rf, ctx) {
5212  if (rf & 1) {
5213    const _r8 = \u0275\u0275getCurrentView();
5214    \u0275\u0275elementStart(0, "div", 80)(1, "div")(2, "nmfta-button", 87);
5215    \u0275\u0275listener("buttonClick", function ManageSubscriptionsComponent_ng_template_18_Conditional_27_Template_nmfta_button_buttonClick_2_listener() {
5216      \u0275\u0275restoreView(_r8);
5217      const ctx_r0 = \u0275\u0275nextContext(2);
5218      return \u0275\u0275resetView(ctx_r0.openCancelOverrideReasonDialog());
5219    });
5220    \u0275\u0275text(3);
5221    \u0275\u0275pipe(4, "translate");
5222    \u0275\u0275elementEnd()()();
5223  }
5224  if (rf & 2) {
5225    \u0275\u0275advance(3);
5226    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(4, 1, "SUBSCRIPTIONS.CANCEL_UNLIMITED_RATE_LIMIT"), " ");
5227  }
5228}
5229function ManageSubscriptionsComponent_ng_template_18_Template(rf, ctx) {
5230  if (rf & 1) {
5231    const _r7 = \u0275\u0275getCurrentView();
5232    \u0275\u0275elementStart(0, "form", 64)(1, "mat-dialog-content")(2, "div", 72)(3, "div", 10)(4, "div", 73)(5, "p");
5233    \u0275\u0275text(6);
5234    \u0275\u0275pipe(7, "translate");
5235    \u0275\u0275elementEnd()()();
5236    \u0275\u0275elementStart(8, "div", 10)(9, "div", 11);
5237    \u0275\u0275element(10, "nmfta-alert", 70);
5238    \u0275\u0275pipe(11, "translate");
5239    \u0275\u0275elementEnd()();
5240    \u0275\u0275elementStart(12, "div", 74)(13, "div", 10)(14, "div", 75)(15, "nmfta-input-wrapper", 71);
5241    \u0275\u0275pipe(16, "translate");
5242    \u0275\u0275elementStart(17, "input", 76);
5243    \u0275\u0275pipe(18, "translate");
5244    \u0275\u0275listener("dateChange", function ManageSubscriptionsComponent_ng_template_18_Template_input_dateChange_17_listener() {
5245      \u0275\u0275restoreView(_r7);
5246      const ctx_r0 = \u0275\u0275nextContext();
5247      return \u0275\u0275resetView(ctx_r0.onDateInput());
5248    });
5249    \u0275\u0275elementEnd();
5250    \u0275\u0275element(19, "mat-datepicker-toggle", 69);
5251    \u0275\u0275elementStart(20, "mat-datepicker", 77, 8);
5252    \u0275\u0275listener("closed", function ManageSubscriptionsComponent_ng_template_18_Template_mat_datepicker_closed_20_listener() {
5253      \u0275\u0275restoreView(_r7);
5254      const ctx_r0 = \u0275\u0275nextContext();
5255      return \u0275\u0275resetView(ctx_r0.onDateInput());
5256    });
5257    \u0275\u0275elementEnd()()();
5258    \u0275\u0275elementStart(22, "div", 78)(23, "div")(24, "nmfta-input-wrapper", 71);
5259    \u0275\u0275pipe(25, "translate");
5260    \u0275\u0275elementStart(26, "input", 79);
5261    \u0275\u0275listener("input", function ManageSubscriptionsComponent_ng_template_18_Template_input_input_26_listener() {
5262      \u0275\u0275restoreView(_r7);
5263      const ctx_r0 = \u0275\u0275nextContext();
5264      return \u0275\u0275resetView(ctx_r0.onTimeInput());
5265    });
5266    \u0275\u0275elementEnd()()()();
5267    \u0275\u0275conditionalCreate(27, ManageSubscriptionsComponent_ng_template_18_Conditional_27_Template, 5, 3, "div", 80);
5268    \u0275\u0275elementEnd();
5269    \u0275\u0275elementStart(28, "div", 10)(29, "div", 81)(30, "nmfta-input-wrapper", 71);
5270    \u0275\u0275pipe(31, "translate");
5271    \u0275\u0275element(32, "input", 82);
5272    \u0275\u0275elementEnd()()()()()();
5273    \u0275\u0275elementStart(33, "mat-dialog-actions", 83)(34, "div", 84)(35, "nmfta-button", 85);
5274    \u0275\u0275listener("buttonClick", function ManageSubscriptionsComponent_ng_template_18_Template_nmfta_button_buttonClick_35_listener() {
5275      \u0275\u0275restoreView(_r7);
5276      const ctx_r0 = \u0275\u0275nextContext();
5277      ctx_r0.rateLimitOverrideForm.reset();
5278      return \u0275\u0275resetView(ctx_r0.manageDialogRef.close());
5279    });
5280    \u0275\u0275text(36);
5281    \u0275\u0275pipe(37, "translate");
5282    \u0275\u0275elementEnd();
5283    \u0275\u0275elementStart(38, "nmfta-button", 86);
5284    \u0275\u0275listener("buttonClick", function ManageSubscriptionsComponent_ng_template_18_Template_nmfta_button_buttonClick_38_listener() {
5285      \u0275\u0275restoreView(_r7);
5286      const ctx_r0 = \u0275\u0275nextContext();
5287      return \u0275\u0275resetView(ctx_r0.confirmRateLimitOverride());
5288    });
5289    \u0275\u0275text(39);
5290    \u0275\u0275pipe(40, "translate");
5291    \u0275\u0275elementEnd()()()();
5292  }
5293  if (rf & 2) {
5294    let tmp_18_0;
5295    const overrideRateLimitDatePicker_r9 = \u0275\u0275reference(21);
5296    const ctx_r0 = \u0275\u0275nextContext();
5297    \u0275\u0275property("formGroup", ctx_r0.rateLimitOverrideForm);
5298    \u0275\u0275advance(6);
5299    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(7, 16, "SUBSCRIPTIONS.OVERRIDE_RATE_LIMIT_MESSAGE"));
5300    \u0275\u0275advance(4);
5301    \u0275\u0275property("color", "warn")("message", \u0275\u0275pipeBind1(11, 18, "SUBSCRIPTIONS.OVERRIDE_RATE_LIMIT_INFO_MESSAGE"));
5302    \u0275\u0275advance(5);
5303    \u0275\u0275property("label", \u0275\u0275pipeBind1(16, 20, "SUBSCRIPTIONS.UNLIMITED_RATE_LIMIT_END_DATE"));
5304    \u0275\u0275advance(2);
5305    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(18, 22, "SEARCH.SELECT_DATE")))("min", ctx_r0.minDate)("matDatepicker", overrideRateLimitDatePicker_r9);
5306    \u0275\u0275advance(2);
5307    \u0275\u0275property("for", overrideRateLimitDatePicker_r9);
5308    \u0275\u0275advance(5);
5309    \u0275\u0275property("label", \u0275\u0275pipeBind1(25, 24, "SUBSCRIPTIONS.UNLIMITED_RATE_LIMIT_END_TIME"));
5310    \u0275\u0275advance(3);
5311    \u0275\u0275conditional(((tmp_18_0 = ctx_r0.subscriptions$().api.apiCredentials) == null ? null : tmp_18_0.overrideUntilDateTime) ? 27 : -1);
5312    \u0275\u0275advance(3);
5313    \u0275\u0275property("label", \u0275\u0275pipeBind1(31, 26, "SUBSCRIPTIONS.UNLIMITED_RATE_LIMIT_REASON"));
5314    \u0275\u0275advance(6);
5315    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(37, 28, "Generic_Cancel"), " ");
5316    \u0275\u0275advance(2);
5317    \u0275\u0275property("disabled", !ctx_r0.rateLimitOverrideForm.valid);
5318    \u0275\u0275advance();
5319    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(40, 30, "Generic_Confirm"), " ");
5320  }
5321}
5322function ManageSubscriptionsComponent_ng_template_20_Template(rf, ctx) {
5323  if (rf & 1) {
5324    const _r10 = \u0275\u0275getCurrentView();
5325    \u0275\u0275elementStart(0, "form", 64)(1, "mat-dialog-content")(2, "div", 88)(3, "div", 10)(4, "div", 73)(5, "p");
5326    \u0275\u0275text(6);
5327    \u0275\u0275pipe(7, "translate");
5328    \u0275\u0275elementEnd()()();
5329    \u0275\u0275elementStart(8, "div", 10)(9, "div", 11)(10, "nmfta-input-wrapper", 71);
5330    \u0275\u0275pipe(11, "translate");
5331    \u0275\u0275element(12, "input", 89);
5332    \u0275\u0275elementEnd()()()()();
5333    \u0275\u0275elementStart(13, "mat-dialog-actions", 83)(14, "div", 84)(15, "nmfta-button", 85);
5334    \u0275\u0275listener("buttonClick", function ManageSubscriptionsComponent_ng_template_20_Template_nmfta_button_buttonClick_15_listener() {
5335      \u0275\u0275restoreView(_r10);
5336      const ctx_r0 = \u0275\u0275nextContext();
5337      ctx_r0.rateLimitCancelOverrideForm.reset();
5338      return \u0275\u0275resetView(ctx_r0.cancelOverrideReasonDialogRef.close());
5339    });
5340    \u0275\u0275text(16);
5341    \u0275\u0275pipe(17, "translate");
5342    \u0275\u0275elementEnd();
5343    \u0275\u0275elementStart(18, "nmfta-button", 86);
5344    \u0275\u0275listener("buttonClick", function ManageSubscriptionsComponent_ng_template_20_Template_nmfta_button_buttonClick_18_listener() {
5345      \u0275\u0275restoreView(_r10);
5346      const ctx_r0 = \u0275\u0275nextContext();
5347      return \u0275\u0275resetView(ctx_r0.cancelRateLimitOverride());
5348    });
5349    \u0275\u0275text(19);
5350    \u0275\u0275pipe(20, "translate");
5351    \u0275\u0275elementEnd()()()();
5352  }
5353  if (rf & 2) {
5354    const ctx_r0 = \u0275\u0275nextContext();
5355    \u0275\u0275property("formGroup", ctx_r0.rateLimitCancelOverrideForm);
5356    \u0275\u0275advance(6);
5357    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(7, 6, "SUBSCRIPTIONS.CANCEL_OVERRIDE_RATE_LIMIT_MESSAGE"));
5358    \u0275\u0275advance(4);
5359    \u0275\u0275property("label", \u0275\u0275pipeBind1(11, 8, "SUBSCRIPTIONS.CANCEL_OVERRIDE_RATE_LIMIT_REASON"));
5360    \u0275\u0275advance(6);
5361    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(17, 10, "Generic_Cancel"), " ");
5362    \u0275\u0275advance(2);
5363    \u0275\u0275property("disabled", !ctx_r0.rateLimitCancelOverrideForm.valid);
5364    \u0275\u0275advance();
5365    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(20, 12, "Generic_Confirm"), " ");
5366  }
5367}
5368var ManageSubscriptionsComponent = class _ManageSubscriptionsComponent {
5369  datePipe;
5370  clipboard;
5371  dataFilesRecordLayoutLink = "https://help.nmfta.org/hc/en-us/articles/39104578955035-NMFC-Data-Files-Record-Layout";
5372  editFtpServerDetails;
5373  editSubscriptionContact;
5374  editExpirationDateModal;
5375  bundleProductModal;
5376  manageRateLimitModal;
5377  cancelOverrideReasonModal;
5378  companyStore = inject(CompanyStore);
5379  subscriptionStore = inject(SubscriptionStore);
5380  purchaseStore = inject(PurchaseStore);
5381  subscriptionService = inject(SubscriptionService);
5382  userStore = inject(UserStore);
5383  translate = inject(TranslateService);
5384  dialog = inject(MatDialog);
5385  formBuilder = inject(FormBuilder);
5386  router = inject(Router);
5387  fileDownloadService = inject(FileDownloadService);
5388  getUserDisplayName = getUserDisplayName;
5389  editFtpServerDialogRef;
5390  submissionStatus$ = this.subscriptionStore.submissionStatus;
5391  companyAdmins$ = this.companyStore.company.companyAdmins;
5392  saveBusinessUnitStatus$ = computed(() => {
5393    return this.subscriptionStore.saveBusinessUnit();
5394  }, ...ngDevMode ? [{ debugName: "saveBusinessUnitStatus$" }] : []);
5395  company$ = this.companyStore.company;
5396  companyId$ = this.companyStore.company.companyId;
5397  subscriptions$ = this.subscriptionStore.subscriptions;
5398  visibleSubscriptions$ = computed(() => Object.values(this.subscriptions$()).filter((sub) => Object.keys(sub || {}).length > 0).length > 1, ...ngDevMode ? [{ debugName: "visibleSubscriptions$" }] : []);
5399  isCustomerService$ = this.userStore.isCustomerService;
5400  isCSManangerOrSuperAdmin$ = this.userStore.canEditNmftaUserRole;
5401  businessUnitSaveButton = false;
5402  minDate = /* @__PURE__ */ new Date();
5403  nationalTierCaps$ = this.purchaseStore.nationalTierWebAppCappedPricing;
5404  companysubscriptiontype;
5405  manageDialogRef;
5406  cancelOverrideReasonDialogRef;
5407  subscriptionIds$ = computed(() => {
5408    const apiId = this.subscriptionStore.subscriptions.api()?.subscriptionId;
5409    const websiteId = this.subscriptionStore.subscriptions.website()?.subscriptionId;
5410    const bfdId = this.subscriptionStore.subscriptions.bfd()?.subscriptionId;
5411    return {
5412      apiId,
5413      websiteId,
5414      bfdId
5415    };
5416  }, ...ngDevMode ? [{ debugName: "subscriptionIds$" }] : []);
5417  isMember$ = computed(() => {
5418    return this.subscriptionStore.isMember();
5419  }, ...ngDevMode ? [{ debugName: "isMember$" }] : []);
5420  contactUserList$ = computed(() => {
5421    const accountManager = this.companyStore.company.accountManager();
5422    const companyAdmins = this.companyStore.company.companyAdmins().map((user) => __spreadProps(__spreadValues({}, user), { isAdmin: true }));
5423    const combinedList = [...companyAdmins, accountManager].filter((x) => x != null);
5424    return combinedList;
5425  }, ...ngDevMode ? [{ debugName: "contactUserList$" }] : []);
5426  businessUnitForm = new FormGroup({
5427    businessUnitName: new FormControl("", [Validators.required]),
5428    companyCheckbox: new FormControl(true)
5429  });
5430  editExpirationDateForm = new FormGroup({
5431    expirationDate: new FormControl(/* @__PURE__ */ new Date(), [Validators.required])
5432  });
5433  bundleProductForm = new FormGroup({
5434    expirationDate: new FormControl("")
5435  });
5436  rateLimitOverrideForm = new FormGroup({
5437    overrideUntilDate: new FormControl("", [Validators.required]),
5438    overrideUntilTime: new FormControl({ value: "", disabled: true }, [Validators.required, timeValidator]),
5439    reason: new FormControl("", [Validators.required, Validators.maxLength(500)])
5440  });
5441  rateLimitCancelOverrideForm = new FormGroup({
5442    cancelReason: new FormControl("", [Validators.required, Validators.maxLength(500)])
5443  });
5444  ftpForm;
5445  ftpObject;
5446  testFtpSubscription = new SubscriptionFtp();
5447  ftpAlertMessage = null;
5448  ftpAlertColor;
5449  selectedSubscriptionId;
5450  isTestConnectionLoading = false;
5451  userComplete = false;
5452  secretKeyButtonState = signal("hidden", ...ngDevMode ? [{ debugName: "secretKeyButtonState" }] : []);
5453  clientIdButtonState = signal("hidden", ...ngDevMode ? [{ debugName: "clientIdButtonState" }] : []);
5454  renewalNoticeDialogRef;
5455  companyUsersDialogRef;
5456  unassignedLicensesDialog;
5457  isAcademic$ = this.companyStore.isAcademic;
5458  renewWebApplicationSubscriptionHeaderActions$ = computed(() => {
5459    return [
5460      {
5461        id: "0",
5462        label: this.translate.instant("SUBSCRIPTIONS.CHANGE_EXPIRATION_DATE"),
5463        styleType: "contained",
5464        hidden: !this.isCustomerService$(),
5465        color: "accent",
5466        onClick: () => __async(this, null, function* () {
5467          yield this.editExpirationDate(SubscriptionType.Website);
5468        })
5469      },
5470      {
5471        id: "1",
5472        label: this.translate.instant("SUBSCRIPTIONS.RENEW_SUBSCRIPTION"),
5473        styleType: "contained",
5474        disabled: !this.subscriptionStore.subscriptions().website?.isRenewable || !this.isCustomerService$() && this.isAcademic$(),
5475        color: "accent",
5476        onClick: () => {
5477          this.renewWebApplicationSubscription();
5478        }
5479      }
5480    ];
5481  }, ...ngDevMode ? [{ debugName: "renewWebApplicationSubscriptionHeaderActions$" }] : []);
5482  renewWebApplicationSubscriptionFooterActions$ = computed(() => {
5483    const sharedActions = [
5484      {
5485        id: "0",
5486        label: this.translate.instant("SUBSCRIPTIONS.BUNDLE_PRODUCTS"),
5487        styleType: "contained",
5488        hidden: !this.isCustomerService$() || !this.subscriptionStore.subscriptions().website?.isBundleable || this.subscriptionStore.subscriptions().api == null,
5489        color: "accent",
5490        onClick: () => __async(this, null, function* () {
5491          yield this.bundleProduct(this.subscriptionStore.subscriptions().website);
5492        })
5493      },
5494      {
5495        id: "3",
5496        label: this.translate.instant("Generic_Edit_Contact"),
5497        styleType: "text",
5498        color: "accent",
5499        onClick: () => {
5500          this.companysubscriptiontype = "website";
5501          this.businessUnitForm.get("businessUnitName")?.setValue(null);
5502          this.editContact(this.subscriptionIds$()?.websiteId);
5503        }
5504      },
5505      {
5506        id: "4",
5507        label: this.translate.instant("SUBSCRIPTIONS.BUY_LICENSES"),
5508        styleType: "light",
5509        color: "accent",
5510        disabled: this.customerOverMarketCap(this.company$()) || !this.isSubscriptionActive(this.subscriptions$()?.website?.expirationDate) || !this.isCustomerService$() && this.isAcademic$(),
5511        onClick: () => {
5512          this.buyMoreLicenses();
5513        }
5514      }
5515    ];
5516    if (this.subscriptionStore.subscriptions().website?.isRenewable) {
5517      return [
5518        {
5519          id: "1",
5520          label: this.translate.instant("SUBSCRIPTIONS.VIEW_RENEWAL_NOTICE"),
5521          styleType: "text",
5522          color: "accent",
5523          onClick: () => __async(this, null, function* () {
5524            this.viewRenewalNotice(this.subscriptions$()?.website?.subscriptionId);
5525          })
5526        },
5527        ...sharedActions
5528      ];
5529    }
5530    if (!this.subscriptionStore.subscriptions.bfd()?.subscriptionId) {
5531      return [
5532        {
5533          id: "2",
5534          label: this.translate.instant("SUBSCRIPTIONS.VIEW_EULA"),
5535          styleType: "text",
5536          color: "accent",
5537          onClick: () => {
5538            this.viewLicenseAgreement(this.subscriptions$()?.website?.subscriptionId);
5539          }
5540        },
5541        ...sharedActions
5542      ];
5543    } else {
5544      return sharedActions;
5545    }
5546  }, ...ngDevMode ? [{ debugName: "renewWebApplicationSubscriptionFooterActions$" }] : []);
5547  renewApiSubscriptionHeaderActions$ = computed(() => {
5548    const sharedActions = [
5549      {
5550        id: "1",
5551        label: this.translate.instant("SUBSCRIPTIONS.CHANGE_EXPIRATION_DATE"),
5552        styleType: "contained",
5553        hidden: !this.isCustomerService$(),
5554        color: "accent",
5555        onClick: () => __async(this, null, function* () {
5556          yield this.editExpirationDate(SubscriptionType.API);
5557        })
5558      },
5559      {
5560        id: "2",
5561        label: this.translate.instant("SUBSCRIPTIONS.RENEW_SUBSCRIPTION"),
5562        styleType: "contained",
5563        disabled: !this.subscriptionStore.subscriptions().api?.isRenewable,
5564        color: "accent",
5565        onClick: () => {
5566          this.renewApiSubscription();
5567        }
5568      }
5569    ];
5570    if (this.isCSManangerOrSuperAdmin$() && this.subscriptions$().api.apiCredentials) {
5571      return [
5572        {
5573          id: "0",
5574          label: this.translate.instant("SUBSCRIPTIONS.MANAGE_RATE_LIMIT"),
5575          styleType: "contained",
5576          hidden: !this.isCustomerService$(),
5577          color: "accent",
5578          onClick: () => __async(this, null, function* () {
5579            this.manageRateLimit();
5580          })
5581        },
5582        ...sharedActions
5583      ];
5584    } else {
5585      return sharedActions;
5586    }
5587  }, ...ngDevMode ? [{ debugName: "renewApiSubscriptionHeaderActions$" }] : []);
5588  renewApiSubscriptionFooterActions$ = computed(() => {
5589    const sharedActions = [
5590      {
5591        id: "0",
5592        label: this.translate.instant("SUBSCRIPTIONS.BUNDLE_PRODUCTS"),
5593        styleType: "contained",
5594        hidden: !this.isCustomerService$() || !this.subscriptionStore.subscriptions().website?.isBundleable || this.subscriptionStore.subscriptions().website == null,
5595        color: "accent",
5596        onClick: () => __async(this, null, function* () {
5597          yield this.bundleProduct(this.subscriptionStore.subscriptions().api);
5598        })
5599      },
5600      {
5601        id: "3",
5602        label: this.translate.instant("Generic_Edit_Contact"),
5603        styleType: "text",
5604        color: "accent",
5605        onClick: () => {
5606          this.companysubscriptiontype = "api";
5607          this.businessUnitForm.get("businessUnitName")?.setValue(null);
5608          this.editContact(this.subscriptionIds$()?.apiId);
5609        }
5610      },
5611      {
5612        id: "4",
5613        label: this.translate.instant("SUBSCRIPTIONS.NEW_KEY"),
5614        styleType: "light",
5615        color: "accent",
5616        rightIcon: "vpn_key",
5617        onClick: () => {
5618          this.generateNewKey();
5619        }
5620      }
5621    ];
5622    if (this.subscriptionStore.subscriptions().api?.isRenewable) {
5623      return [
5624        {
5625          id: "1",
5626          label: this.translate.instant("SUBSCRIPTIONS.VIEW_RENEWAL_NOTICE"),
5627          styleType: "text",
5628          color: "accent",
5629          onClick: () => __async(this, null, function* () {
5630            this.viewRenewalNotice(this.subscriptions$()?.api?.subscriptionId);
5631          })
5632        },
5633        ...sharedActions
5634      ];
5635    }
5636    if (!this.subscriptionStore.subscriptions.bfd()?.subscriptionId) {
5637      return [
5638        {
5639          id: "2",
5640          label: this.translate.instant("SUBSCRIPTIONS.VIEW_EULA"),
5641          styleType: "text",
5642          color: "accent",
5643          onClick: () => {
5644            this.viewLicenseAgreement(this.subscriptions$()?.api?.subscriptionId);
5645          }
5646        },
5647        ...sharedActions
5648      ];
5649    } else {
5650      return sharedActions;
5651    }
5652  }, ...ngDevMode ? [{ debugName: "renewApiSubscriptionFooterActions$" }] : []);
5653  renewBfdSubscriptionHeaderActions$ = computed(() => {
5654    return [
5655      {
5656        id: "0",
5657        label: this.translate.instant("SUBSCRIPTIONS.CHANGE_EXPIRATION_DATE"),
5658        styleType: "contained",
5659        hidden: !this.isCustomerService$(),
5660        color: "accent",
5661        onClick: () => __async(this, null, function* () {
5662          yield this.editExpirationDate(SubscriptionType.BFD);
5663        })
5664      },
5665      {
5666        id: "1",
5667        label: this.translate.instant("SUBSCRIPTIONS.RENEW_SUBSCRIPTION"),
5668        styleType: "contained",
5669        disabled: !(this.subscriptionStore.subscriptions().bfd?.isRenewable && this.isCustomerService$()),
5670        color: "accent",
5671        onClick: () => __async(this, null, function* () {
5672          yield this.renewBfdSubscription();
5673        })
5674      }
5675    ];
5676  }, ...ngDevMode ? [{ debugName: "renewBfdSubscriptionHeaderActions$" }] : []);
5677  renewBfdSubscriptionFooterActions$ = computed(() => {
5678    const sharedActions = [
5679      {
5680        id: "1",
5681        label: this.translate.instant("SUBSCRIPTIONS.VIEW_EULA"),
5682        styleType: "text",
5683        color: "accent",
5684        onClick: () => {
5685          this.viewLicenseAgreement(this.subscriptions$()?.bfd?.subscriptionId);
5686        }
5687      },
5688      {
5689        id: "2",
5690        label: this.translate.instant("Generic_Edit_Contact"),
5691        styleType: "text",
5692        color: "accent",
5693        onClick: () => {
5694          this.companysubscriptiontype = "bfd";
5695          this.businessUnitForm.get("businessUnitName")?.setValue(null);
5696          this.editContact(this.subscriptionIds$()?.bfdId);
5697        }
5698      },
5699      {
5700        id: "3",
5701        label: this.translate.instant("SUBSCRIPTIONS.CLASSIT_BFD_MANAGE_SFTP"),
5702        styleType: "light",
5703        color: "accent",
5704        onClick: () => {
5705          this.manageFtp();
5706        }
5707      }
5708    ];
5709    if (this.subscriptionStore.subscriptions().bfd?.isRenewable) {
5710      return [
5711        {
5712          id: "0",
5713          label: this.translate.instant("SUBSCRIPTIONS.VIEW_RENEWAL_NOTICE"),
5714          styleType: "text",
5715          color: "accent",
5716          onClick: () => __async(this, null, function* () {
5717            this.viewRenewalNotice(this.subscriptions$()?.bfd?.subscriptionId);
5718          })
5719        },
5720        ...sharedActions
5721      ];
5722    } else {
5723      return sharedActions;
5724    }
5725  }, ...ngDevMode ? [{ debugName: "renewBfdSubscriptionFooterActions$" }] : []);
5726  licensesAssignedHeaderActions = [
5727    {
5728      id: "1",
5729      label: this.translate.instant("SUBSCRIPTIONS.MANAGE_USERS"),
5730      styleType: "text",
5731      blackText: true,
5732      rightIcon: "chevron_right",
5733      onClick: () => {
5734        const companyId = this.router.routerState.snapshot.root.queryParams["companyId"];
5735        const queryParams = companyId ? { companyId } : void 0;
5736        this.router.navigate(["/profile/company-settings/manage-users"], { queryParams });
5737      }
5738    }
5739  ];
5740  secretKeyAction = computed(() => this.createSecretToggleButton(this.subscriptions$()?.api?.apiCredentials?.apiClientSecret, this.secretKeyButtonState, "secret"), ...ngDevMode ? [{ debugName: "secretKeyAction" }] : []);
5741  userClientIdAction = computed(() => this.createSecretToggleButton(this.subscriptions$()?.api?.apiCredentials?.apiClientId, this.clientIdButtonState, "clientId"), ...ngDevMode ? [{ debugName: "userClientIdAction" }] : []);
5742  buyMoreLicensesHeaderActions = [
5743    {
5744      id: "1",
5745      label: this.translate.instant("SUBSCRIPTIONS.VIEW_EULA"),
5746      styleType: "light",
5747      onClick: () => {
5748      }
5749    }
5750  ];
5751  constructor(datePipe, clipboard) {
5752    this.datePipe = datePipe;
5753    this.clipboard = clipboard;
5754    effect(() => {
5755      if (this.subscriptionStore.fetched()) {
5756        this.initializeFtpForm();
5757      }
5758      if (this.subscriptionStore.saveBusinessUnit() !== "loading") {
5759        this.businessUnitSaveButton = false;
5760      }
5761    });
5762  }
5763  ngOnInit() {
5764    this.subscriptionStore.loadSubscriptions();
5765  }
5766  initializeFtpForm() {
5767    if (!this.subscriptions$().bfd)
5768      return;
5769    this.ftpForm = this.formBuilder.group({
5770      subscriptionFtpId: [this.subscriptions$().bfd.subscriptionFtp?.subscriptionFtpId],
5771      subscriptionId: [this.subscriptions$().bfd.subscriptionFtp?.subscriptionId],
5772      companyId: [this.subscriptions$().bfd.subscriptionFtp?.companyId],
5773      contactName: [this.subscriptions$().bfd.subscriptionFtp?.contactName, [Validators.required, noWhiteSpaces]],
5774      emailAddress: [
5775        this.subscriptions$().bfd.subscriptionFtp?.emailAddress ?? "",
5776        [
5777          Validators.required,
5778          Validators.email,
5779          Validators.pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$")
5780        ]
5781      ],
5782      pushFtpHostName: [this.subscriptions$().bfd.subscriptionFtp?.pushFtpHostName ?? "", [Validators.required]],
5783      pushFtpUserName: [this.subscriptions$().bfd.subscriptionFtp?.pushFtpUserName ?? "", [Validators.required]],
5784      pushConnectionPassword: [
5785        this.subscriptions$().bfd.subscriptionFtp?.pushConnectionPassword ?? "",
5786        [Validators.required]
5787      ],
5788      confirmPassword: [
5789        this.subscriptions$().bfd.subscriptionFtp?.pushConnectionPassword ?? "",
5790        [Validators.required]
5791      ],
5792      pushInitialDirectory: [this.subscriptions$().bfd.subscriptionFtp?.pushInitialDirectory ?? ""],
5793      pushFtpPortNumber: [this.subscriptions$().bfd.subscriptionFtp?.pushFtpPortNumber ?? ""]
5794    }
5794, { validator: this.passwordMatchValidator });
5795    this.ftpForm.valueChanges.subscribe((data) => {
5796      this.ftpObject = __spreadValues(__spreadValues({}, this.ftpObject), data);
5797    });
5798  }
5799  editFtpSettingsForm() {
5800    this.editFtpServerDialogRef = this.dialog.open(DialogComponent, {
5801      maxWidth: "688px",
5802      maxHeight: "666px",
5803      height: "auto",
5804      width: "100%",
5805      data: {
5806        title: this.translate.instant("SUBSCRIPTIONS.CLASSIT_BFD_MANAGE_SFTP"),
5807        icon: "public",
5808        content: this.editFtpServerDetails,
5809        dataForComponent: this.ftpForm.value
5810      }
5811    });
5812  }
5813  generateNewKey() {
5814    this.renewApiSubscriptionFooterActions$()[2].disabled = true;
5815    this.subscriptionStore.generateNewKey(this.subscriptions$().api.subscriptionId);
5816  }
5817  passwordMatchValidator = (control) => {
5818    const password = control.get("pushConnectionPassword");
5819    const confirmPassword = control.get("confirmPassword");
5820    if (password && confirmPassword && password.value !== confirmPassword.value) {
5821      return { passwordMismatch: true };
5822    }
5823    return null;
5824  };
5825  getExpirationDateText(expirationDate) {
5826    if (!expirationDate) {
5827      return this.translate.instant("SUBSCRIPTIONS.NO_EXPIRATION_DATE");
5828    }
5829    const parsed = new Date(expirationDate);
5830    let translation = this.translate.instant("SUBSCRIPTIONS.EXPIRATION_DATE");
5831    return translation.replace("{{date}}", this.datePipe.transform(parsed, "MMMM d, y")).replace("{{status}}", this.getExpirationStatusText(parsed));
5832  }
5833  getAlertType(expirationDate) {
5834    if (expirationDate) {
5835      const parsed = new Date(expirationDate);
5836      const now = /* @__PURE__ */ new Date();
5837      if (parsed < now) {
5838        return "error";
5839      }
5840      const daysRemaining = (parsed.getTime() - now.getTime()) / (1e3 * 60 * 60 * 24);
5841      if (daysRemaining < 90) {
5842        return "warn";
5843      }
5844      return "success";
5845    }
5846    return "error";
5847  }
5848  getExpirationStatusText(date) {
5849    const now = /* @__PURE__ */ new Date();
5850    if (date < now) {
5851      return this.translate.instant("SUBSCRIPTIONS.EXPIRED");
5852    }
5853    const daysRemaining = (date.getTime() - now.getTime()) / (1e3 * 60 * 60 * 24);
5854    if (daysRemaining < 90) {
5855      return this.translate.instant("SUBSCRIPTIONS.EXPIRED_SOON");
5856    }
5857    return this.translate.instant("SUBSCRIPTIONS.ACTIVE");
5858  }
5859  isSubscriptionActive(subscriptionExpirationDate) {
5860    if (subscriptionExpirationDate) {
5861      const expirationDate = new Date(subscriptionExpirationDate);
5862      const now = /* @__PURE__ */ new Date();
5863      if (expirationDate > now) {
5864        return true;
5865      }
5866    }
5867    return false;
5868  }
5869  customerOverMarketCap(company) {
5870    if (company.companyId && company.companySubscriptions.length) {
5871      const isBundle = !company.companySubscriptions.some((sub) => sub.productName?.includes("BFD")) && company.companySubscriptions.some((sub) => sub.productName?.includes("Bundle"));
5872      const nationalTierCap = isBundle ? this.nationalTierCaps$().bundle : this.nationalTierCaps$().webApp;
5873      const overTierCap = nationalTierCap - (company?.totalSpent ?? 0) < 1;
5874      return this.company$().membershipId && this.isMember$() && overTierCap;
5875    }
5876    return false;
5877  }
5878  renewWebApplicationSubscription() {
5879    return __async(this, null, function* () {
5880      const currentWebAppSubscription = this.subscriptions$().website?.subscriptionId;
5881      yield this.router.navigate([
5882        "/profile",
5883        "company-settings",
5884        "manage-subscriptions",
5885        "renew",
5886        currentWebAppSubscription
5887      ]);
5888    });
5889  }
5890  renewApiSubscription() {
5891    return __async(this, null, function* () {
5892      const currentApiAppSubscription = this.subscriptions$().api?.subscriptionId;
5893      yield this.router.navigate([
5894        "/profile",
5895        "company-settings",
5896        "manage-subscriptions",
5897        "renew",
5898        currentApiAppSubscription
5899      ]);
5900    });
5901  }
5902  renewBfdSubscription() {
5903    return __async(this, null, function* () {
5904      const currentBfdAppSubscription = this.subscriptions$().bfd?.subscriptionId;
5905      yield this.router.navigate([
5906        "/profile",
5907        "company-settings",
5908        "manage-subscriptions",
5909        "renew",
5910        currentBfdAppSubscription
5911      ]);
5912    });
5913  }
5914  viewLicenseAgreement(subscriptionId) {
5915    return __async(this, null, function* () {
5916      if (subscriptionId) {
5917        try {
5918          yield this.fileDownloadService.downloadFile(`/api/Subscriptions/GetSubscriptionEulaDocument?subscriptionId=${subscriptionId}`);
5919        } catch (err) {
5920          alert(err);
5921        }
5922      }
5923    });
5924  }
5925  manageFtp() {
5926    this.ftpAlertMessage = null;
5927    this.selectedSubscriptionId = this.subscriptions$().bfd.subscriptionId;
5928    this.initializeFtpForm();
5929    this.editFtpSettingsForm();
5930  }
5931  editContact(subscriptionId) {
5932    const businessUnit = this.subscriptions$()?.[this.companysubscriptiontype]?.businessUnit;
5933    if (businessUnit) {
5934      this.businessUnitForm.get("businessUnitName").enable();
5935      this.businessUnitForm.get("businessUnitName").setValue(businessUnit);
5936      this.businessUnitForm.get("companyCheckbox").setValue(false);
5937    } else {
5938      this.businessUnitForm.get("companyCheckbox").setValue(true);
5939      this.businessUnitForm.get("businessUnitName").setValidators(null);
5940      this.businessUnitForm.get("businessUnitName").disable();
5941    }
5942    this.selectedSubscriptionId = subscriptionId;
5943    const dialogRef = this.dialog.open(DialogComponent, {
5944      height: "700px",
5945      width: "42rem",
5946      maxWidth: "42rem",
5947      data: {
5948        title: "Generic_Edit_Contact_Information",
5949        icon: "person",
5950        description: "",
5951        content: this.editSubscriptionContact
5952      }
5953    });
5954  }
5955  setAsContact(user) {
5956    const buttons = [];
5957    const addButton = {
5958      id: "1",
5959      label: "Add User",
5960      styleType: "text",
5961      blackText: true,
5962      iconName: "add",
5963      onClick: () => {
5964        this.onUserAction(user, "add");
5965      }
5966    };
5967    const removeButton = {
5968      id: "2",
5969      label: "Remove User",
5970      styleType: "text",
5971      blackText: true,
5972      iconName: "delete",
5973      onClick: () => {
5974        this.onUserAction(user, "remove");
5975      }
5976    };
5977    if (this.isUserInGroup(user)) {
5978      buttons.push(removeButton);
5979    } else {
5980      buttons.push(addButton);
5981    }
5982    return buttons;
5983  }
5984  onUserAction(user, action) {
5985    const subscriptionContacRequest = {
5986      subscriptionId: this.selectedSubscriptionId,
5987      companyId: this.companyId$(),
5988      firstName: action == "add" ? user.firstName : "",
5989      lastName: action == "add" ? user.lastName : "",
5990      email: action == "add" ? user.email : "",
5991      isSettingUser: true
5992    };
5993    this.subscriptionStore.saveContactInfo(subscriptionContacRequest);
5994  }
5995  onSetBusinessUnit($event) {
5996    if ($event && $event?.checked) {
5997      this.businessUnitForm.get("businessUnitName").setValue(null);
5998      this.businessUnitForm.get("businessUnitName").disable();
5999      this.businessUnitForm.get("businessUnitName").setValidators([]);
6000    } else {
6001      this.businessUnitForm.get("businessUnitName").enable();
6002      this.businessUnitForm.get("businessUnitName").setValidators([Validators.required]);
6003    }
6004    this.businessUnitForm.get("businessUnitName").updateValueAndValidity();
6005    const subscriptionContacRequest = {
6006      subscriptionId: this.selectedSubscriptionId,
6007      companyId: this.companyId$(),
6008      businessUnit: this.businessUnitForm.get("businessUnitName").value ?? null,
6009      isSettingUser: false
6010    };
6011    this.subscriptionStore.saveContactInfo(subscriptionContacRequest);
6012    if (!($event instanceof MatCheckboxChange)) {
6013      this.businessUnitSaveButton = this.saveBusinessUnitStatus$() === "loading";
6014    }
6015  }
6016  isUserInGroup(user) {
6017    const hasMatchingEmail = this.subscriptions$()?.[this.companysubscriptiontype]?.contactEmail === user.email;
6018    return hasMatchingEmail;
6019  }
6020  saveFtpSettings() {
6021    if (this.ftpForm.invalid) {
6022      return;
6023    }
6024    const formData = __spreadValues({}, this.ftpForm.getRawValue());
6025    if (formData.companyId === null || formData.companyId === void 0)
6026      formData.companyId = this.company$().companyId;
6027    if (formData.subscriptionId === null || formData.subscriptionId === void 0)
6028      formData.subscriptionId = this.selectedSubscriptionId;
6029    this.subscriptionStore.saveFtp(formData);
6030    this.editFtpServerDialogRef.close();
6031  }
6032  testFtp() {
6033    if (this.ftpForm.invalid) {
6034      return;
6035    }
6036    this.isTestConnectionLoading = true;
6037    const formData = __spreadValues({}, this.ftpForm.getRawValue());
6038    this.subscriptionStore.testFtp(formData).then((result) => {
6039      this.testFtpResult(result);
6040    });
6041  }
6042  testFtpResult(result) {
6043    if (result != null) {
6044      if (result.data) {
6045        this.isTestConnectionLoading = false;
6046        this.ftpAlertMessage = this.translate.instant("SUBSCRIPTIONS.PRODUCT_SFTP_CREDENTIALS_SUCCEED"), this.ftpAlertColor = "success";
6047      } else {
6048        this.isTestConnectionLoading = false;
6049        this.ftpAlertMessage = this.translate.instant(result.message), this.ftpAlertColor = "warn";
6050      }
6051    } else {
6052      this.ftpAlertMessage = null;
6053    }
6054  }
6055  buyMoreLicenses() {
6056    return __async(this, null, function* () {
6057      yield this.router.navigate(["/profile/company-settings/manage-subscriptions/buy-more-licenses"]);
6058    });
6059  }
6060  viewRenewalNotice(subscriptionId) {
6061    return __async(this, null, function* () {
6062      this.selectedSubscriptionId = subscriptionId;
6063      this.userComplete = false;
6064      this.renewalNoticeDialogRef = this.dialog.open(DialogComponent, {
6065        width: "75%",
6066        maxWidth: "69.5rem",
6067        height: "80%",
6068        maxHeight: "60rem",
6069        data: {
6070          title: this.translate.instant("Generic_RenewalNotice"),
6071          icon: "calendar_month",
6072          content: PdfViewerModalComponent,
6073          dataForComponent: {
6074            isLoading: true,
6075            forRenewalNotice: true,
6076            subscriptionId
6077          },
6078          useMobileActions: true
6079        }
6080      });
6081      this.openRenewalNoticeDialog();
6082      const response = yield firstValueFrom(this.subscriptionService.generateRenewalNotice({
6083        subscriptionId: this.selectedSubscriptionId
6084      }));
6085      if (response) {
6086        this.openRenewalNoticeDialog(true, {
6087          fileData: response.blob,
6088          fileName: response.fileName
6089        });
6090      }
6091    });
6092  }
6093  openCustomerModal(type) {
6094    this.companyUsersDialogRef = this.dialog.open(DialogComponent, {
6095      width: "530px",
6096      height: "550px",
6097      maxHeight: "750px",
6098      maxWidth: "100rem",
6099      data: {
6100        title: "SELECT_USER.SELECT_A_USER",
6101        icon: "person",
6102        content: UserSelectorModalContainerComponent,
6103        dataForComponent: {
6104          alertMessage: "SELECT_USER.SELECT_A_COMPANY_ADMIN_MESSAGE",
6105          companyAdmins: this.companyAdmins$(),
6106          multiSelect: true
6107        }
6108      }
6109    });
6110    this.openCompanyUsersDialog(type);
6111  }
6112  openRenewalNoticeDialog(dataLoaded = false, responseData = null) {
6113    this.renewalNoticeDialogRef.afterOpened().subscribe(() => {
6114      const instance = this.renewalNoticeDialogRef.componentInstance;
6115      const contentInstance = instance.contentComponentRef.instance;
6116      if (contentInstance instanceof PdfViewerModalComponent) {
6117        contentInstance.closeModal.subscribe(() => {
6118          this.renewalNoticeDialogRef.close();
6119        });
6120        contentInstance.openCustomerModal?.subscribe((response) => {
6121          this.renewalNoticeDialogRef.close();
6122          this.openCustomerModal(response["type"]);
6123        });
6124      }
6125    });
6126    if (dataLoaded) {
6127      const instance = this.renewalNoticeDialogRef.componentInstance;
6128      const contentInstance = instance.contentComponentRef.instance;
6129      contentInstance.updateRenewalNoticeData(responseData);
6130    }
6131  }
6132  openCompanyUsersDialog(type, loadingComplete = false) {
6133    this.companyUsersDialogRef.afterOpened().subscribe(() => {
6134      const instance = this.companyUsersDialogRef.componentInstance;
6135      const contentInstance = instance.contentComponentRef.instance;
6136      if (contentInstance instanceof UserSelectorModalContainerComponent) {
6137        contentInstance.closeModal.subscribe((complete) => {
6138          this.userComplete = complete;
6139          this.companyUsersDialogRef.close(this.userComplete);
6140        });
6141        contentInstance.selectedCompanyUsers.subscribe((selectedUsers) => {
6142          if (type == "download") {
6143            this.downloadRenewalNotices(selectedUsers);
6144          } else {
6145            this.emailRenewalNotices(selectedUsers);
6146          }
6147        });
6148      }
6149    });
6150    this.companyUsersDialogRef.afterClosed().subscribe((userComplete) => {
6151      if (!userComplete) {
6152        this.viewRenewalNotice(this.selectedSubscriptionId);
6153      }
6154    });
6155    if (loadingComplete) {
6156      const instance = this.companyUsersDialogRef.componentInstance;
6157      const contentInstance = instance.contentComponentRef.instance;
6158      contentInstance.updateData(loadingComplete);
6159    }
6160  }
6161  downloadRenewalNotices(selectedUsers) {
6162    return __async(this, null, function* () {
6163      for (const user of selectedUsers) {
6164        const response = yield firstValueFrom(this.subscriptionService.generateRenewalNotice({
6165          subscriptionId: this.selectedSubscriptionId,
6166          email: user.email,
6167          firstName: user.firstName,
6168          lastName: user.lastName
6169        }));
6170        try {
6171          const blob = new Blob([response.blob], { type: "application/octet-stream" });
6172          const url = window.URL.createObjectURL(blob);
6173          const fileName = `RenewalNotice-${response.fileName}-${user.firstName}-${user.lastName}.pdf`.replace(/\s+/g, "");
6174          const clicker = document.createElement("a");
6175          clicker.style.display = "none";
6176          document.body.append(clicker);
6177          clicker.href = url;
6178          clicker.download = fileName;
6179          clicker.click();
6180        } catch (error) {
6181          return;
6182        }
6183      }
6184      this.openCompanyUsersDialog("download", true);
6185    });
6186  }
6187  emailRenewalNotices(selectedUsers) {
6188    return __async(this, null, function* () {
6189      yield firstValueFrom(this.subscriptionService.sendRenewalNotice({
6190        subscriptionId: this.selectedSubscriptionId,
6191        selectedUsers
6192      }));
6193      this.openCompanyUsersDialog("email", true);
6194    });
6195  }
6196  bundleProduct(product) {
6197    return __async(this, null, function* () {
6198      const dialogRef = this.dialog.open(DialogComponent, {
6199        height: "400px",
6200        width: "42rem",
6201        maxWidth: "42rem",
6202        data: {
6203          title: "Generic_BundleProduct",
6204          icon: "schedule",
6205          description: "",
6206          content: this.bundleProductModal,
6207          actions: [
6208            {
6209              id: "cancel",
6210              label: "Generic_Cancel",
6211              styleType: "contained",
6212              color: "light",
6213              onClick: () => dialogRef.close()
6214            },
6215            {
6216              id: "confirm",
6217              label: "Generic_Confirm",
6218              styleType: "contained",
6219              onClick: () => __async(this, null, function* () {
6220                let newExpirationDate;
6221                if (this.bundleProductForm.value.expirationDate === "")
6222                  newExpirationDate = void 0;
6223                else
6224                  newExpirationDate = this.bundleProductForm.value.expirationDate;
6225                this.subscriptionStore.bundleSubscription({
6226                  subscriptionId: product.subscriptionId,
6227                  newExpirationDate,
6228                  successCallback: () => {
6229                    this.subscriptionStore.loadSubscriptions();
6230                  }
6231                });
6232                dialogRef.close();
6233              })
6234            }
6235          ]
6236        }
6237      });
6238      dialogRef.afterClosed().subscribe((result) => {
6239        console.log(result);
6240      });
6241    });
6242  }
6243  onDateInput() {
6244    const timeControl = this.rateLimitOverrideForm.get("overrideUntilTime");
6245    const dateControl = this.rateLimitOverrideForm.get("overrideUntilDate");
6246    if (dateControl?.value && dateControl?.valid) {
6247      if (timeControl?.disabled) {
6248        timeControl.enable();
6249      }
6250      timeControl?.setValue("");
6251      timeControl?.markAsPristine();
6252      timeControl?.markAsUntouched();
6253      timeControl?.updateValueAndValidity();
6254    } else {
6255      if (timeControl?.enabled) {
6256        timeControl.disable();
6257        timeControl.setValue("");
6258      }
6259    }
6260  }
6261  onTimeInput() {
6262    const timeControl = this.rateLimitOverrideForm.get("overrideUntilTime");
6263    if (timeControl?.value && timeControl?.valid) {
6264      const date = this.rateLimitOverrideForm.get("overrideUntilDate")?.value;
6265      const time = timeControl.value.toUpperCase();
6266      const timeMatch = time.match(/^(\d{1,2}):(\d{2})\s(AM|PM)$/);
6267      if (timeMatch) {
6268        let hours = parseInt(timeMatch[1], 10);
6269        const minutes = parseInt(timeMatch[2], 10);
6270        const period = timeMatch[3];
6271        if (period === "PM" && hours !== 12) {
6272          hours += 12;
6273        } else if (period === "AM" && hours === 12) {
6274          hours = 0;
6275        }
6276        const combinedDateTime = new Date(date);
6277        combinedDateTime.setUTCHours(hours, minutes, 0, 0);
6278        this.rateLimitOverrideForm.get("overrideUntilDate")?.setValue(combinedDateTime);
6279      }
6280    }
6281  }
6282  manageRateLimit() {
6283    const apiCredentials = this.subscriptionStore.subscriptions.api()?.apiCredentials;
6284    this.rateLimitOverrideForm?.get("overrideUntilDate")?.setValue(apiCredentials?.overrideUntilDateTime);
6285    this.rateLimitOverrideForm?.get("reason")?.setValue(apiCredentials?.overrideReason);
6286    if (apiCredentials?.overrideUntilDateTime) {
6287      const timeString = this.convertDateToUTCTimeString(apiCredentials.overrideUntilDateTime);
6288      this.rateLimitOverrideForm?.get("overrideUntilTime")?.setValue(timeString);
6289      const dateControl = this.rateLimitOverrideForm.get("overrideUntilDate");
6290      if (dateControl?.value && dateControl?.valid) {
6291        this.rateLimitOverrideForm.get("overrideUntilTime")?.enable();
6292      }
6293    }
6294    this.manageDialogRef = this.dialog.open(DialogComponent, {
6295      height: "516px",
6296      width: "42rem",
6297      maxWidth: "42rem",
6298      data: {
6299        title: "SUBSCRIPTIONS.MANAGE_API_RATE_LIMIT",
6300        icon: "api",
6301        content: this.manageRateLimitModal
6302      }
6303    });
6304  }
6305  convertDateToUTCTimeString(dateTime) {
6306    const utcDate = typeof dateTime === "string" ? new Date(dateTime.endsWith("Z") ? dateTime : dateTime + "Z") : new Date(dateTime);
6307    let hours = utcDate.getUTCHours();
6308    const minutes = utcDate.getUTCMinutes();
6309    const ampm = hours >= 12 ? "PM" : "AM";
6310    hours = hours % 12 || 12;
6311    return `${hours}:${minutes.toString().padStart(2, "0")} ${ampm}`;
6312  }
6313  confirmRateLimitOverride() {
6314    let rateLimitOverride = {
6315      companyId: this.router.routerState.snapshot.root.queryParams["companyId"] ?? this.companyId$(),
6316      overrideUntilDateTime: this.rateLimitOverrideForm.get("overrideUntilDate")?.value,
6317      reason: this.rateLimitOverrideForm.get("reason")?.value
6318    };
6319    this.subscriptionStore.rateLimitOverride(rateLimitOverride);
6320    this.rateLimitOverrideForm.reset();
6321    this.manageDialogRef.close();
6322  }
6323  openCancelOverrideReasonDialog() {
6324    this.cancelOverrideReasonDialogRef = this.dialog.open(DialogComponent, {
6325      height: "320px",
6326      width: "42rem",
6327      maxWidth: "42rem",
6328      data: {
6329        title: "SUBSCRIPTIONS.CANCEL_OVERRIDE_REASON",
6330        icon: "description",
6331        content: this.cancelOverrideReasonModal
6332      }
6333    });
6334  }
6335  cancelRateLimitOverride() {
6336    let rateLimitOverride = {
6337      companyId: this.router.routerState.snapshot.root.queryParams["companyId"] ?? this.companyId$(),
6338      cancelOverride: true,
6339      cancelReason: this.rateLimitCancelOverrideForm.get("cancelReason")?.value
6340    };
6341    this.subscriptionStore.rateLimitOverride(rateLimitOverride);
6342    this.cancelOverrideReasonDialogRef.close();
6343    this.rateLimitCancelOverrideForm.reset();
6344    this.rateLimitOverrideForm.reset();
6345    this.manageDialogRef.close();
6346  }
6347  editExpirationDate(subType) {
6348    return __async(this, null, function* () {
6349      let productToEdit;
6350      switch (subType) {
6351        case SubscriptionType.API:
6352          productToEdit = this.subscriptions$().api;
6353          break;
6354        case SubscriptionType.BFD:
6355          productToEdit = this.subscriptions$().bfd;
6356          break;
6357        default:
6358          productToEdit = this.subscriptions$().website;
6359          break;
6360      }
6361      if (productToEdit) {
6362        this.editExpirationDateForm.patchValue({
6363          expirationDate: productToEdit.expirationDate
6364        });
6365        const dialogRef = this.dialog.open(DialogComponent, {
6366          height: "225px",
6367          width: "42rem",
6368          maxWidth: "42rem",
6369          data: {
6370            title: "Generic_Update_Subscription_End_Date",
6371            icon: "schedule",
6372            description: "",
6373            content: this.editExpirationDateModal,
6374            actions: [
6375              {
6376                id: "cancel",
6377                label: "Generic_Cancel",
6378                styleType: "contained",
6379                color: "light",
6380                onClick: () => dialogRef.close()
6381              },
6382              {
6383                id: "delete",
6384                label: "Generic_Save",
6385                styleType: "contained",
6386                // color: 'success',
6387                onClick: () => __async(this, null, function* () {
6388                  yield this.subscriptionStore.updateSubscriptionExpirationDate({
6389                    subscriptionId: productToEdit.subscriptionId,
6390                    expirationDateTime: this.editExpirationDateForm.value.expirationDate
6391                  });
6392                  this.subscriptionStore.loadSubscriptions();
6393                  dialogRef.close();
6394                })
6395              }
6396            ]
6397          }
6398        });
6399        dialogRef.afterClosed().subscribe((result) => {
6400          console.log(result);
6401        });
6402      }
6403    });
6404  }
6405  /**
6406   * The createSecretToggleButton function generates a button that dynamically updates its label, icon,
6407   * and behavior based on the visibility state of a sensitive value, such as an API key or client ID.
6408   * It handles three states: hidden (partially masked), visible (fully revealed with a
6409   * copy-to-clipboard action), and copied (temporary confirmation feedback)
6410   * @param value The secret value to be displayed.
6411   * @param stateSignal A signal that holds the current state of the secret (hidden, visible, copied).
6412   * @param id An optional identifier for the button.
6413   * @returns An array containing a single button object with the appropriate properties.
6414   */
6415  createSecretToggleButton(value, stateSignal, id = "1") {
6416    if (!value) {
6417      return [];
6418    }
6419    const state = stateSignal();
6420    let label = "";
6421    let icon = "";
6422    let onClick;
6423    switch (state) {
6424      case "hidden":
6425        label = `${value.substring(0, 10)}...`;
6426        icon = "visibility";
6427        onClick = () => stateSignal.set("visible");
6428        break;
6429      case "visible":
6430        label = value;
6431        icon = "content_copy";
6432        onClick = () => {
6433          this.clipboard.copy(value);
6434          stateSignal.set("copied");
6435          setTimeout(() => stateSignal.set("visible"), 1e3);
6436        };
6437        break;
6438      case "copied":
6439        label = "Copied!";
6440        icon = "check";
6441        onClick = () => {
6442        };
6443        break;
6444      default:
6445        label = "";
6446        icon = "";
6447        onClick = () => {
6448        };
6449        break;
6450    }
6451    return [
6452      {
6453        id,
6454        styleType: "text",
6455        blackText: true,
6456        label,
6457        rightIcon: icon,
6458        onClick
6459      }
6460    ];
6461  }
6462  Object = Object;
6463  static \u0275fac = function ManageSubscriptionsComponent_Factory(__ngFactoryType__) {
6464    return new (__ngFactoryType__ || _ManageSubscriptionsComponent)(\u0275\u0275directiveInject(DatePipe), \u0275\u0275directiveInject(Clipboard));
6465  };
6466  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ManageSubscriptionsComponent, selectors: [["nmfta-manage-subscriptions"]], viewQuery: function ManageSubscriptionsComponent_Query(rf, ctx) {
6467    if (rf & 1) {
6468      \u0275\u0275viewQuery(_c03, 7);
6469      \u0275\u0275viewQuery(_c18, 7);
6470      \u0275\u0275viewQuery(_c22, 7);
6471      \u0275\u0275viewQuery(_c32, 7);
6472      \u0275\u0275viewQuery(_c42, 7);
6473      \u0275\u0275viewQuery(_c52, 7);
6474    }
6475    if (rf & 2) {
6476      let _t;
6477      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.editFtpServerDetails = _t.first);
6478      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.editSubscriptionContact = _t.first);
6479      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.editExpirationDateModal = _t.first);
6480      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.bundleProductModal = _t.first);
6481      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.manageRateLimitModal = _t.first);
6482      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.cancelOverrideReasonModal = _t.first);
6483    }
6484  }, features: [\u0275\u0275ProvidersFeature([DatePipe])], decls: 22, vars: 11, consts: [["editFtpServerDetails", ""], ["editSubscriptionContact", ""], ["editExpirationDateModal", ""], ["bundleProductModal", ""], ["manageRateLimitModal", ""], ["cancelOverrideReasonModal", ""], ["picker", ""], ["newExpirationPicker", ""], ["overrideRateLimitDatePicker", ""], [3, "title"], [1, "row"], [1, "col-12", "mt-2"], [1, "pb-4"], [1, "card", "pt-4"], [3, "title", "subTitle", "isLoading", "headerActions", "footerActions", "alert", "alertType"], ["count", "4", 3, "theme"], [3, "propertyName", "propertyValue"], [1, "pt-3"], [3, "propertyName", "actions", "description"], [1, "copy-key-button", 3, "propertyName", "actions"], [1, "d-flex", "justify-content-between", "align-items-center", "pt-3"], [1, "mb-0"], [1, "mb-0", "accent"], [3, "title", "subTitle", "headerActions", "isLoading", "alert", "alertType", "footerActions"], [1, "edit-ftp-form", 3, "formGroup"], [1, "p-3", "manage-ftp-controls"], [1, "col-12", "col-sm-6"], ["label", "SUBSCRIPTIONS.CONTACT_NAME"], [1, "input-container"], ["matInput", "", "type", "text", "n
6484ame", "'contactName'", "formControlName", "contactName", "id", "contactName", "maxlength", "255", 3, "placeholder"], ["label", "SUBSCRIPTIONS.CLASSIT_BFD_EMAIL_ADDRESS"], ["matInput", "", "type", "text", "name", "emailAddress", "formControlName", "emailAddress", "id", "emailAddress", "maxlength", "255", 3, "placeholder"], ["label", "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_HOST"], ["matInput", "", "type", "text", "name", "pushFtpHostName", "formControlName", "pushFtpHostName", "id", "pushFtpHostName", "maxlength", "100", 3, "placeholder"], ["label", "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_USER_NAME"], ["matInput", "", "type", "text", "name", "pushFtpUserName", "formControlName", "pushFtpUserName", "id", "pushFtpUserName", "maxlength", "255", 3, "placeholder"], ["label", "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_CONNECTION_PASSWORD"], ["matInput", "", "type", "password", "name", "pushConnectionPassword", "formControlName", "pushConnectionPassword", "id", "pushConnectionPassword", "maxlength", "1000", "autocomplete", "off", 3, "placeholder"], ["label", "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_CONNECTION_PASSWORD_CONFIRM"], ["matInput", "", "type", "password", "name", "confirmPassword", "formControlName", "confirmPassword", "id", "confirmPassword", "maxlength", "1000", "autocomplete", "off", 3, "placeholder"], [1, "error-input-message", "ng-star-inserted"], ["label", "SUBSCRIPTIONS.CLASSIT_BFD_INITIAL_DIRECTORY"], ["matInput", "", "type", "text", "name", "pushInitialDirectory", "formControlName", "pushInitialDirectory", "id", "pushInitialDirectory", "maxlength", "100", 3, "placeholder"], ["label", "SUBSCRIPTIONS.CLASSIT_BFD_SFTP_PORT_NUMBER"], ["matInput", "", "type", "text", "name", "pushFtpPortNumber", "formControlName", "pushFtpPortNumber", "id", "pushFtpPortNumber", "maxlength", "5", 3, "placeholder"], [1, "manage-ftp-footer"], [1, "col-12", "p-3"], [3, "color"], [1, "col-12", "p-3", "text-end"], ["type", "text", "color", "accent", 1, "p-3", 3, "buttonClick", "styleType", "disabled", "isLoading"], ["type", "text", 3, "buttonClick", "styleType", "disabled"], [1, "p-4", "edit-business-unit"], [1, "edit-form", 3, "formGroup"], [1, "form-row", "row"], [1, "col-12", "pb-2"], [1, "col-12", "pb-4"], ["label", "SUBSCRIPTIONS.BUSINESS_UNIT"], ["formControlName", "businessUnitName", 3, "id", "placeholder", "type"], [1, "col-8"], ["labelPosition", "after", "name", "companyCheckbox", "color", "primary", "formControlName", "companyCheckbox", 3, "change"], [1, "col-4", "text-end"], ["styleType", "contained", 1, "form-field", 3, "buttonClick", "isLoading", "disabled"], [1, "d-flex", "flex-column", "p-4", "gap-3"], [3, "icon", "propertyName", "description", "actions"], [3, "formGroup"], [1, "container-fluid"], [1, "col-12", "col-md-6"], ["appearance", "fill"], ["matInput", "", "formControlName", "expirationDate", 3, "matDatepicker"], ["matSuffix", "", 3, "for"], [3, "color", "message"], [3, "label"], [1, "container-fluid", "mb-4"], [1, "col-12", "mt-3"], [1, "mb-3"], [1, "col-12", "col-md-4", "mt-3", "min-height-95"], ["matInput", "", "nmftaDateMask", "", "formControlName", "overrideUntilDate", 3, "dateChange", "min", "matDatepicker", "placeholder"], [3, "closed"], [1, "col-12", "col-md-3", "mt-3", "min-height-95"], ["matInput", "", "nmftaTimeMask", "", "placeholder", "12:00 PM", "formControlName", "overrideUntilTime", 3, "input"], [1, "col-12", "col-md-5", "mt-3", "d-flex", "align-items-center", "justify-content-center", "height-93"], [1, "col-12", "col-md-12", "mt-1"], ["matInput", "", "formControlName", "reason"], [1, "modal-actions"], [1, "d-flex", "justify-content-end", "pt-2", "w-100", 2, "gap", "1rem"], [3, "buttonClick"], ["styleType", "contained", 3, "buttonClick", "disabled"], ["color", "error", 3, "buttonClick"], [1, "container-fluid", "mb-3"], ["matInput", "", "formControlName", "cancelReason"]], template: function ManageSubscriptionsComponent_Template(rf, ctx) {
6485    if (rf & 1) {
6486      \u0275\u0275element(0, "nmfta-page-title", 9);
6487      \u0275\u0275pipe(1, "translate");
6488      \u0275\u0275elementStart(2, "div", 10)(3, "div", 11);
6489      \u0275\u0275text(4);
6490      \u0275\u0275pipe(5, "translate");
6491      \u0275\u0275elementEnd()();
6492      \u0275\u0275elementStart(6, "div", 12);
6493      \u0275\u0275conditionalCreate(7, ManageSubscriptionsComponent_Conditional_7_Template, 6, 12, "div", 13);
6494      \u0275\u0275conditionalCreate(8, ManageSubscriptionsComponent_Conditional_8_Template, 6, 12, "div", 13);
6495      \u0275\u0275conditionalCreate(9, ManageSubscriptionsComponent_Conditional_9_Template, 6, 15, "div", 13);
6496      \u0275\u0275elementEnd();
6497      \u0275\u0275template(10, ManageSubscriptionsComponent_ng_template_10_Template, 54, 38, "ng-template", null, 0, \u0275\u0275templateRefExtractor)(12, ManageSubscriptionsComponent_ng_template_12_Template, 25, 21, "ng-template", null, 1, \u0275\u0275templateRefExtractor)(14, ManageSubscriptionsComponent_ng_template_14_Template, 12, 3, "ng-template", null, 2, \u0275\u0275templateRefExtractor)(16, ManageSubscriptionsComponent_ng_template_16_Template, 15, 10, "ng-template", null, 3, \u0275\u0275templateRefExtractor)(18, ManageSubscriptionsComponent_ng_template_18_Template, 41, 32, "ng-template", null, 4, \u0275\u0275templateRefExtractor)(20, ManageSubscriptionsComponent_ng_template_20_Template, 21, 14, "ng-template", null, 5, \u0275\u0275templateRefExtractor);
6498    }
6499    if (rf & 2) {
6500      \u0275\u0275property("title", \u0275\u0275pipeBind1(1, 7, "SUBSCRIPTIONS.TITLE"));
6501      \u0275\u0275advance(4);
6502      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 9, "SUBSCRIPTIONS.SUBTITLE"), " ");
6503      \u0275\u0275advance(2);
6504      \u0275\u0275classProp("card-columns", ctx.submissionStatus$() !== "loaded" || ctx.visibleSubscriptions$());
6505      \u0275\u0275advance();
6506      \u0275\u0275conditional(ctx.subscriptions$().website ? 7 : -1);
6507      \u0275\u0275advance();
6508      \u0275\u0275conditional(ctx.subscriptions$().api ? 8 : -1);
6509      \u0275\u0275advance();
6510      \u0275\u0275conditional(ctx.subscriptions$().bfd ? 9 : -1);
6511    }
6512  }, dependencies: [
6513    PageTitleComponent,
6514    ButtonComponent,
6515    TranslateModule,
6516    InputWrapperComponent,
6517    ReactiveFormsModule,
6518    \u0275NgNoValidate,
6519    DefaultValueAccessor,
6520    NgControlStatus,
6521    NgControlStatusGroup,
6522    MaxLengthValidator,
6523    FormGroupDirective,
6524    FormControlName,
6525    MatTooltipModule,
6526    CardComponent,
6527    DataPanelComponent,
6528    NgxSkeletonLoaderModule,
6529    NgxSkeletonLoaderComponent,
6530    AlertComponent,
6531    MatCheckboxModule,
6532    MatCheckbox,
6533    MatInput,
6534    MatDialogContent,
6535    MatDatepicker,
6536    MatDatepickerModule,
6537    MatDatepickerInput,
6538    MatDatepickerToggle,
6539    MatNativeDateModule,
6540    MatFormField,
6541    MatLabel,
6542    MatSuffix,
6543    NmftaDateMaskDirective,
6544    NmftaTimeMaskDirective,
6545    MatDialogActions,
6546    TranslatePipe,
6547    DatePipe
6548  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.manage-ftp-footer[_ngcontent-%COMP%] {\n  border-top: 1px solid #e8e8e8;\n}\n.edit-ftp-form[_ngcontent-%COMP%] {\n  height: 100%;\n}\n.manage-ftp-controls[_ngcontent-%COMP%] {\n  margin-bottom: 60px;\n}\n.edit-business-unit[_ngcontent-%COMP%] {\n  border-bottom: 1px solid #e8e8e8;\n}\n.card-columns[_ngcontent-%COMP%] {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n@media (min-width: 992px) {\n  .card-columns[_ngcontent-%COMP%] {\n    column-count: 2;\n  }\n}\n.copy-key-button[_ngcontent-%COMP%]     nmfta-button {\n  width: 100%;\n  display: flex;\n}\n.copy-key-button[_ngcontent-%COMP%]     nmfta-button .mdc-button__label {\n  width: 100%;\n}\n.copy-key-button[_ngcontent-%COMP%]     nmfta-button .label {\n  width: 100%;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  text-transform: none;\n}\n.accent[_ngcontent-%COMP%] {\n  color: var(--color-accent);\n  font-style: italic;\n}\n.padding-top[_ngcontent-%COMP%] {\n  padding-top: 1.75rem;\n}\n.min-height-95[_ngcontent-%COMP%] {\n  min-height: 95px;\n}\n.height-93[_ngcontent-%COMP%] {\n  height: 93px;\n}\n/*# sourceMappingURL=manage-subscriptions.component-7M4CSIVS.css.map */"] });
6549};
6550(() => {
6551  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ManageSubscriptionsComponent, [{
6552    type: Component,
6553    args: [{ selector: "nmfta-manage-subscriptions", imports: [
6554      PageTitleComponent,
6555      ButtonComponent,
6556      TranslateModule,
6557      InputWrapperComponent,
6558      ReactiveFormsModule,
6559      MatTooltipModule,
6560      CardComponent,
6561      DataPanelComponent,
6562      NgxSkeletonLoaderModule,
6563      AlertComponent,
6564      ReactiveFormsModule,
6565      MatCheckboxModule,
6566      MatInput,
6567      MatDialogContent,
6568      MatDatepicker,
6569      MatDatepickerModule,
6570      MatNativeDateModule,
6571      MatFormField,
6572      MatLabel,
6573      MatSuffix,
6574      NmftaDateMaskDirective,
6575      NmftaTimeMaskDirective,
6576      MatDialogActions,
6577      DatePipe
6578    ], providers: [DatePipe], template: `<nmfta-page-title [title]="'SUBSCRIPTIONS.TITLE' | translate"></nmfta-page-title>
6579
6580<div class="row">
6581  <div class="col-12 mt-2">
6582    {{ 'SUBSCRIPTIONS.SUBTITLE' | translate }}
6583  </div>
6584</div>
6585
6586<div class="pb-4" [class.card-columns]="submissionStatus$() !== 'loaded'   || visibleSubscriptions$()">
6587  <!-- CLASSIT+ WEBSITE -->
6588  @if (subscriptions$().website) {
6589    <div class="card pt-4">
6590      <nmfta-card
6591        [title]="'SUBSCRIPTIONS.CLASSIT_TITLE' | translate"
6592        [subTitle]="'SUBSCRIPTIONS.CLASSIT_SUBTITLE' | translate"
6593        [isLoading]="submissionStatus$() !== 'loaded'"
6594        [headerActions]="renewWebApplicationSubscriptionHeaderActions$"
6595        [footerActions]="renewWebApplicationSubscriptionFooterActions$"
6596        [alert]="getExpirationDateText(subscriptions$().website.expirationDate)"
6597        [alertType]="getAlertType(subscriptions$().website.expirationDate)">
6598        @if (submissionStatus$() !== 'loaded') {
6599          <ngx-skeleton-loader
6600            count="4"
6601            [theme]="{
6602              width: '100%',
6603              height: '4.633rem',
6604              'border-radius': '0.5rem',
6605              'margin-bottom': '0.3rem',
6606            }">
6607          </ngx-skeleton-loader>
6608        } @else {
6609          @if (subscriptions$().website.contactFirstName && subscriptions$().website.contactLastName) {
6610            <h5>{{ 'SUBSCRIPTIONS.PRODUCT_CONTACT_INFORMATION' | translate }}</h5>
6611            <nmfta-data-panel
6612              [propertyName]="'SUBSCRIPTIONS.CONTACT_NAME' | translate"
6613              [propertyValue]="
6614                subscriptions$().website.contactFirstName + ' ' + subscriptions$().website.contactLastName
6615              ">
6616            </nmfta-data-panel>
6617          }
6618          <!-- Hide Business Unit if company is selected -->
6619          @if (subscriptions$().website.businessUnit) {
6620            <nmfta-data-panel
6621              [propertyName]="'SUBSCRIPTIONS.BUSINESS_UNIT' | translate"
6622              [propertyValue]="subscriptions$().website.businessUnit">
6623            </nmfta-data-panel>
6624          }
6625
6626          <h5 class="pt-3">{{ 'SUBSCRIPTIONS.PRODUCT_LICENSE_INFORMATION' | translate }}</h5>
6627          <nmfta-data-panel
6628            [propertyName]="'SUBSCRIPTIONS.TOTAL_LICENSES' | translate"
6629            [propertyValue]="company$().totalNumberOfLicenses.toString()!">
6630          </nmfta-data-panel>
6631          <nmfta-data-panel
6632            [propertyName]="'SUBSCRIPTIONS.LICENSES_ASSIGNED' | translate"
6633            [actions]="licensesAssignedHeaderActions"
6634            [description]="
6635              company$().numberOfAssignedLicenses.toString() + '/' + company$().totalNumberOfLicenses.toString()
6636            ">
6637          </nmfta-data-panel>
6638        }
6639      </nmfta-card>
6640
6641    </div>
6642  }
6643
6644  <!-- CLASSIT+ API -->
6645  @if (subscriptions$().api) {
6646    <div class="card pt-4">
6647      <nmfta-card
6648        [title]="'SUBSCRIPTIONS.CLASSIT_API_TITLE' | translate"
6649        [subTitle]="'SUBSCRIPTIONS.CLASSIT_API_SUBTITLE' | translate"
6650        [isLoading]="submissionStatus$() !== 'loaded'"
6651        [headerActions]="renewApiSubscriptionHeaderActions$"
6652        [footerActions]="renewApiSubscriptionFooterActions$"
6653        [alert]="getExpirationDateText(subscriptions$().api.expirationDate)"
6654        [alertType]="getAlertType(subscriptions$().api.expirationDate)">
6655        @if (submissionStatus$() !== 'loaded') {
6656          <ngx-skeleton-loader
6657            count="4"
6658            [theme]="{
6659              width: '100%',
6660              height: '4.633rem',
6661              'border-radius': '0.5rem',
6662              'margin-bottom': '0.3rem',
6663            }">
6664          </ngx-skeleton-loader>
6665        } @else {
6666          @if (subscriptions$().api.contactFirstName && subscriptions$().api.contactLastName) {
6667            <h5 class="pt-3">{{ 'SUBSCRIPTIONS.PRODUCT_CONTACT_INFORMATION' | translate }}</h5>
6668            <nmfta-data-panel
6669              [propertyName]="'SUBSCRIPTIONS.CONTACT_NAME' | translate"
6670              [propertyValue]="subscriptions$().api.contactFirstName + ' ' + subscriptions$().api.contactLastName">
6671            </nmfta-data-panel>
6672          }
6673          @if (subscriptions$().api.businessUnit) {
6674            <nmfta-data-panel
6675              [propertyName]="'SUBSCRIPTIONS.BUSINESS_UNIT' | translate"
6676              [propertyValue]="subscriptions$().api.businessUnit">
6677            </nmfta-data-panel>
6678          }
6679
6680          <h5 class="pt-3">{{ 'SUBSCRIPTIONS.PRODUCT_API_CONFIGURATION' | translate }}</h5>
6681          <nmfta-data-panel
6682            [propertyName]="'SUBSCRIPTIONS.CLASSIT_API_CLIENT_ID' | translate"
6683            [actions]="userClientIdAction()"
6684            class="copy-key-button">
6685          </nmfta-data-panel>
6686          <nmfta-data-panel
6687            [propertyName]="'SUBSCRIPTIONS.CLASSIT_API_SECRET_KEY' | translate"
6688            [actions]="secretKeyAction()"
6689            class="copy-key-button">
6690          </nmfta-data-panel>
6691
6692          <div class="d-flex justify-content-between align-items-center pt-3">
6693            <h5 class="mb-0">{{ 'SUBSCRIPTIONS.RATE_LIMITS' | translate }}</h5>
6694            @if(subscriptions$().api.apiCredentials?.overrideUntilDateTime) {
6695              <h5 class="mb-0 accent">( {{ 'SUBSCRIPTIONS.OVERRIDE_RATE_LIMIT_IN_EFFECT' | translate: { endDate: subscriptions$().api.apiCredentials?.overrideUntilDateTime | date: 'MM/dd
6695/yyyy' } }} )</h5>
6696            }
6697          </div>
6698          <nmfta-data-panel
6699            [propertyName]="'SUBSCRIPTIONS.HOURLY_RATE_LIMIT' | translate"
6700            [propertyValue]="subscriptions$().api.apiCredentials?.rateHourLimitMaxCalls?.toString()">
6701          </nmfta-data-panel>
6702          <nmfta-data-panel
6703            [propertyName]="'SUBSCRIPTIONS.MONTHLY_RATE_LIMIT' | translate"
6704            [propertyValue]="subscriptions$().api.apiCredentials?.apiCallLimitPerMonth?.toString()">
6705          </nmfta-data-panel>
6706        }
6707      </nmfta-card>
6708
6709    </div>
6710  }
6711
6712  <!-- CLASSIT+ BFD -->
6713  @if (subscriptions$().bfd) {
6714    <div class="card pt-4">
6715      <nmfta-card
6716        [title]="'SUBSCRIPTIONS.CLASSIT_BFD_TITLE' | translate"
6717        [subTitle]="'SUBSCRIPTIONS.CLASSIT_BFD_NOTE' | translate: { link: dataFilesRecordLayoutLink }"
6718        [headerActions]="renewBfdSubscriptionHeaderActions$"
6719        [isLoading]="submissionStatus$() !== 'loaded'"
6720        [alert]="getExpirationDateText(subscriptions$().bfd.expirationDate)"
6721        [alertType]="getAlertType(subscriptions$().bfd.expirationDate)"
6722        [footerActions]="renewBfdSubscriptionFooterActions$">
6723        @if (submissionStatus$() !== 'loaded') {
6724          <ngx-skeleton-loader
6725            count="4"
6726            [theme]="{
6727              width: '100%',
6728              height: '4.633rem',
6729              'border-radius': '0.5rem',
6730              'margin-bottom': '0.3rem',
6731            }">
6732          </ngx-skeleton-loader>
6733        } @else {
6734          @if (subscriptions$().bfd.contactFirstName && subscriptions$().bfd.contactLastName) {
6735            <h5 class="pt-3">{{ 'SUBSCRIPTIONS.PRODUCT_CONTACT_INFORMATION' | translate }}</h5>
6736            <nmfta-data-panel
6737              [propertyName]="'SUBSCRIPTIONS.CONTACT_NAME' | translate"
6738              [propertyValue]="subscriptions$().bfd.contactFirstName + ' ' + subscriptions$().bfd.contactLastName">
6739            </nmfta-data-panel>
6740          }
6741          @if (subscriptions$().bfd.businessUnit) {
6742            <nmfta-data-panel
6743              [propertyName]="'SUBSCRIPTIONS.BUSINESS_UNIT' | translate"
6744              [propertyValue]="subscriptions$().bfd.businessUnit">
6745            </nmfta-data-panel>
6746          }
6747
6748          <h5 class="pt-3">{{ 'SUBSCRIPTIONS.PRODUCT_SFTP_PUSH_INFORMATION' | translate }}</h5>
6749          <nmfta-data-panel
6750            [propertyName]="'SUBSCRIPTIONS.CLASSIT_BFD_SFTP_HOST' | translate"
6751            [propertyValue]="subscriptions$().bfd.subscriptionFtp?.pushFtpHostName">
6752          </nmfta-data-panel>
6753          <nmfta-data-panel
6754            [propertyName]="'SUBSCRIPTIONS.CLASSIT_BFD_INITIAL_DIRECTORY' | translate"
6755            [propertyValue]="subscriptions$().bfd.subscriptionFtp?.pushInitialDirectory">
6756          </nmfta-data-panel>
6757          <nmfta-data-panel
6758            [propertyName]="'SUBSCRIPTIONS.CLASSIT_BFD_USER_NAME' | translate"
6759            [propertyValue]="subscriptions$().bfd.subscriptionFtp?.pushFtpUserName">
6760          </nmfta-data-panel>
6761        }
6762      </nmfta-card>
6763    </div>
6764  }
6765</div>
6766
6767<ng-template #editFtpServerDetails>
6768  <form [formGroup]="ftpForm" class="edit-ftp-form">
6769    <div class="p-3 manage-ftp-controls">
6770      <div class="row">
6771        <div class="col-12 col-sm-6">
6772          <nmfta-input-wrapper label="SUBSCRIPTIONS.CONTACT_NAME">
6773            <div class="input-container">
6774              <input
6775                matInput
6776                type="text"
6777                name="'contactName'"
6778                formControlName="contactName"
6779                id="contactName"
6780                [placeholder]="'SUBSCRIPTIONS.CONTACT_NAME' | translate"
6781                maxlength="255" />
6782              </div>
6783            </nmfta-input-wrapper>
6784          </div>
6785          <div class="col-12 col-sm-6">
6786            <nmfta-input-wrapper label="SUBSCRIPTIONS.CLASSIT_BFD_EMAIL_ADDRESS">
6787              <div class="input-container">
6788                <input
6789                  matInput
6790                  type="text"
6791                  name="emailAddress"
6792                  formControlName="emailAddress"
6793                  id="emailAddress"
6794                  [placeholder]="'SUBSCRIPTIONS.CLASSIT_BFD_EMAIL_ADDRESS' | translate"
6795                  maxlength="255" />
6796                </div>
6797              </nmfta-input-wrapper>
6798            </div>
6799
6800            <div class="col-12 col-sm-6">
6801              <nmfta-input-wrapper label="SUBSCRIPTIONS.CLASSIT_BFD_SFTP_HOST">
6802                <div class="input-container">
6803                  <input
6804                    matInput
6805                    type="text"
6806                    name="pushFtpHostName"
6807                    formControlName="pushFtpHostName"
6808                    id="pushFtpHostName"
6809                    [placeholder]="'SUBSCRIPTIONS.CLASSIT_BFD_SFTP_HOST' | translate"
6810                    maxlength="100" />
6811                  </div>
6812                </nmfta-input-wrapper>
6813              </div>
6814
6815              <div class="col-12 col-sm-6">
6816                <nmfta-input-wrapper label="SUBSCRIPTIONS.CLASSIT_BFD_SFTP_USER_NAME">
6817                  <div class="input-container">
6818                    <input
6819                      matInput
6820                      type="text"
6821                      name="pushFtpUserName"
6822                      formControlName="pushFtpUserName"
6823                      id="pushFtpUserName"
6824                      [placeholder]="'SUBSCRIPTIONS.CLASSIT_BFD_SFTP_USER_NAME' | translate"
6825                      maxlength="255" />
6826                    </div>
6827                  </nmfta-input-wrapper>
6828                </div>
6829
6830                <div class="col-12 col-sm-6">
6831                  <nmfta-input-wrapper label="SUBSCRIPTIONS.CLASSIT_BFD_SFTP_CONNECTION_PASSWORD">
6832                    <div class="input-container">
6833                      <input
6834                        matInput
6835                        type="password"
6836                        name="pushConnectionPassword"
6837                        formControlName="pushConnectionPassword"
6838                        id="pushConnectionPassword"
6839                        [placeholder]="'SUBSCRIPTIONS.CLASSIT_BFD_SFTP_CONNECTION_PASSWORD' | translate"
6840                        maxlength="1000"
6841                        autocomplete="off" />
6842                      </div>
6843                    </nmfta-input-wrapper>
6844                  </div>
6845
6846                  <div class="col-12 col-sm-6">
6847                    <nmfta-input-wrapper label="SUBSCRIPTIONS.CLASSIT_BFD_SFTP_CONNECTION_PASSWORD_CONFIRM">
6848                      <div class="input-container">
6849                        <input
6850                          matInput
6851                          type="password"
6852                          name="confirmPassword"
6853                          formControlName="confirmPassword"
6854                          id="confirmPassword"
6855                          [placeholder]="'SUBSCRIPTIONS.CLASSIT_BFD_SFTP_CONNECTION_PASSWORD_CONFIRM' | translate"
6856                          maxlength="1000"
6857                          autocomplete="off" />
6858                        </div>
6859                        @if (ftpForm.hasError('passwordMismatch')) {
6860                          <div class="error-input-message ng-star-inserted">
6861                            {{ 'Generic_PasswordMismatch' | translate }}
6862                          </div>
6863                        }
6864                      </nmfta-input-wrapper>
6865                    </div>
6866
6867                    <div class="col-12 col-sm-6">
6868                      <nmfta-input-wrapper label="SUBSCRIPTIONS.CLASSIT_BFD_INITIAL_DIRECTORY">
6869                        <div class="input-container">
6870                          <input
6871                            matInput
6872                            type="text"
6873                            name="pushInitialDirectory"
6874                            formControlName="pushInitialDirectory"
6875                            id="pushInitialDirectory"
6876                            [placeholder]="'SUBSCRIPTIONS.CLASSIT_BFD_INITIAL_DIRECTORY' | translate"
6877                            maxlength="100" />
6878                          </div>
6879                        </nmfta-input-wrapper>
6880                      </div>
6881
6882                      <div class="col-12 col-sm-6">
6883                        <nmfta-input-wrapper label="SUBSCRIPTIONS.CLASSIT_BFD_SFTP_PORT_NUMBER">
6884                          <div class="input-container">
6885                            <input
6886                              matInput
6887                              type="text"
6888                              name="pushFtpPortNumber"
6889                              formControlName="pushFtpPortNumber"
6890                              id="pushFtpPortNumber"
6891                              [placeholder]="'SUBSCRIPTIONS.CLASSIT_BFD_SFTP_PORT_NUMBER' | translate"
6892                              maxlength="5" />
6893                            </div>
6894                          </nmfta-input-wrapper>
6895                        </div>
6896                      </div>
6897                    </div>
6898                    <div class="manage-ftp-footer">
6899                      <div class="col-12 p-3">
6900                        @if (ftpAlertMessage && !isTestConnectionLoading) {
6901                          <nmfta-alert [color]="ftpAlertColor">
6902                            {{ ftpAlertMessage }}
6903                          </nmfta-alert>
6904                        }
6905                      </div>
6906                      <div class="col-12 p-3 text-end">
6907                        <nmfta-button
6908                          type="text"
6909                          [styleType]="'outlined'"
6910                          color="accent"
6911                          class="p-3"
6912                          [disabled]="ftpForm.invalid"
6913                          [isLoading]="isTestConnectionLoading"
6914                          (buttonClick)="testFtp()">
6915                          {{ 'SUBSCRIPTIONS.CLASSIT_BFD_SFTP_TEST' | translate }}
6916                        </nmfta-button>
6917                        <nmfta-button
6918                          type="text"
6919                          [styleType]="'contained'"
6920                          [disabled]="ftpForm.invalid"
6921                          (buttonClick)="saveFtpSettings()">
6922                          {{ 'SUBSCRIPTIONS.CLASSIT_BFD_UPDATE_SFTP_SETTINGS' | translate }}
6923                        </nmfta-button>
6924                      </div>
6925                    </div>
6926                  </form>
6927                </ng-template>
6928
6929<ng-template #editSubscriptionContact>
6930<div class="p-4 edit-business-unit">
6931  <form [formGroup]="businessUnitForm" class="edit-form">
6932    <div class="form-row row">
6933      <div class="col-12 pb-2">
6934        <p>{{ 'SUBSCRIPTIONS.BUSINESS_UNIT_INFO' | translate }}</p>
6935      </div>
6936      <div class="col-12 pb-4">
6937        <nmfta-input-wrapper label="SUBSCRIPTIONS.BUSINESS_UNIT">
6938          <input
6939            [id]="'businessUnitName'"
6940            placeholder="{{ 'SUBSCRIPTIONS.BUSINESS_UNIT' | translate }}"
6941            [type]="'text'"
6942            formControlName="businessUnitName" />
6943          </nmfta-input-wrapper>
6944        </div>
6945        <div class="col-8">
6946          <mat-checkbox
6947            labelPosition="after"
6948            name="companyCheckbox"
6949            color="primary"
6950            formControlName="companyCheckbox"
6951            (change)="onSetBusinessUnit($event)">
6952            {{ 'SUBSCRIPTIONS.SET_SAME_AS_COMPANY' | translate }}
6953          </mat-checkbox>
6954        </div>
6955        <div class="col-4 text-end">
6956          <nmfta-button
6957            class="form-field"
6958            [isLoading]="businessUnitSaveButton"
6959            [disabled]="!businessUnitForm.valid || businessUnitForm.get('businessUnitName')!.disabled"
6960            styleType="contained"
6961            (buttonClick)="onSetBusinessUnit()"
6962            >{{ 'Generic_Save' | translate }}
6963          </nmfta-button>
6964        </div>
6965      </div>
6966    </form>
6967  </div>
6968  <div class="d-flex flex-column p-4 gap-3">
6969    <p> {{ 'SUBSCRIPTIONS.PRODUCT_CONTACT_SELECTION' | translate }}</p>
6970    @for (user of contactUserList$(); track user.email) {
6971      <nmfta-data-panel
6972        [icon]="'person'"
6973        [propertyName]="getUserDisplayName(user, user?.isAdmin)"
6974        [description]="user.email"
6975        [actions]="setAsContact(user)">
6976      </nmfta-data-panel>
6977    }
6978  </div>
6979</ng-template>
6980
6981<ng-template #editExpirationDateModal>
6982  <form [formGroup]="editExpirationDateForm">
6983    <mat-dialog-content>
6984      <div class="container-fluid">
6985        <div class="row">
6986          <div class="col-12 col-md-6">
6987            <mat-form-field appearance="fill">
6988              <mat-label>New Expiration Date</mat-label>
6989              <input matInput [matDatepicker]="picker" formControlName="expirationDate" />
6990              <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
6991              <mat-datepicker #picker></mat-datepicker>
6992            </mat-form-field>
6993          </div>
6994        </div>
6995      </div>
6996    </mat-dialog-content>
6997  </form>
6998</ng-template>
6999
7000<ng-template #bundleProductModal>
7001  <form [formGroup]="bundleProductForm">
7002    <mat-dialog-content>
7003      <div class="container-fluid">
7004        <div class="row">
7005          <div class="col-12 mt-2">
7006            <nmfta-alert [color]="'info'"
7007                         [message]="'Generic_UpdateBundleExpirationMessage' | translate">
7008            </nmfta-alert>
7009          </div>
7010        </div>
7011        <div class="row">
7012          <div class="col-12 mt-2">
7013            <nmfta-input-wrapper [label]="'Generic_ExpirationDate_Simple' | translate">
7014              <input matInput [matDatepicker]="newExpirationPicker" formControlName="expirationDate" />
7015              <mat-datepicker-toggle matSuffix [for]="newExpirationPicker" />
7016              <mat-datepicker #newExpirationPicker/>
7017            </nmfta-input-wrapper>
7018          </div>
7019        </div>
7020      </div>
7021    </mat-dialog-content>
7022  </form>
7023</ng-template>
7024
7025<ng-template #manageRateLimitModal>
7026  <form [formGroup]="rateLimitOverrideForm">
7027    <mat-dialog-content>
7028      <div class="container-fluid mb-4">
7029        <div class="row">
7030          <div class="col-12 mt-3">
7031            <p>{{ 'SUBSCRIPTIONS.OVERRIDE_RATE_LIMIT_MESSAGE' | translate }}</p>
7032          </div>
7033        </div>
7034        <div class="row">
7035          <div class="col-12 mt-2">
7036            <nmfta-alert [color]="'warn'"
7037                         [message]="'SUBSCRIPTIONS.OVERRIDE_RATE_LIMIT_INFO_MESSAGE' | translate">
7038            </nmfta-alert>
7039          </div>
7040        </div>
7041        <div class="mb-3">
7042          <div class="row">
7043            <div class="col-12 col-md-4 mt-3 min-height-95">
7044              <nmfta-input-wrapper [label]="'SUBSCRIPTIONS.UNLIMITED_RATE_LIMIT_END_DATE' | translate">
7045                <input matInput
7046                      nmftaDateMask
7047                      [min]="minDate"
7048                      [matDatepicker]="overrideRateLimitDatePicker"
7049                      placeholder="{{'SEARCH.SELECT_DATE' | translate}}"
7050                      formControlName="overrideUntilDate"
7051                      (dateChange)="onDateInput()"
7052                />
7053                <mat-datepicker-toggle matSuffix
7054                                      [for]="overrideRateLimitDatePicker"/>
7055                <mat-datepicker #overrideRateLimitDatePicker (closed)="onDateInput()"/>
7056              </nmfta-input-wrapper>
7057            </div>
7058            <div class="col-12 col-md-3 mt-3 min-height-95">
7059              <div>
7060                <nmfta-input-wrapper [label]="'SUBSCRIPTIONS.UNLIMITED_RATE_LIMIT_END_TIME' | translate">
7061                  <input matInput 
7062                    nmftaTimeMask 
7063                    placeholder="12:00 PM"
7064                    formControlName="overrideUntilTime"
7065                    (input)="onTimeInput()"
7066                  />
7067                </nmfta-input-wrapper>
7068              </div>              
7069            </div>
7070            @if(subscriptions$().api.apiCredentials?.overrideUntilDateTime) {
7071              <div class="col-12 col-md-5 mt-3 d-flex align-items-center justify-content-center height-93">
7072                <div>
7073                  <nmfta-button
7074                    color="error"
7075                    (buttonClick)="openCancelOverrideReasonDialog()">
7076                    {{ 'SUBSCRIPTIONS.CANCEL_UNLIMITED_RATE_LIMIT' | translate }}
7077                  </nmfta-button>
7078                </div>
7079              </div>
7080            }
7081          </div>
7082          <div class="row">
7083            <div class="col-12 col-md-12 mt-1">
7084              <nmfta-input-wrapper [label]="'SUBSCRIPTIONS.UNLIMITED_RATE_LIMIT_REASON' | translate">
7085                <input matInput formControlName="reason" />
7086              </nmfta-input-wrapper>
7087            </div>
7088          </div>
7089        </div>
7090      </div>
7091    </mat-dialog-content>
7092    <mat-dialog-actions class="modal-actions">
7093      <div class="d-flex justify-content-end pt-2 w-100" style="gap: 1rem;">
7094        <nmfta-button
7095          (buttonClick)="this.rateLimitOverrideForm.reset(); manageDialogRef.close()">
7096          {{ 'Generic_Cancel' | translate }}
7097        </nmfta-button>
7098        <nmfta-button
7099          (buttonClick)="confirmRateLimitOverride()"
7100          styleType="contained"
7101          [disabled]="!rateLimitOverrideForm.valid"
7102          >
7103          {{ 'Generic_Confirm' | translate }}
7104        </nmfta-button>
7105      </div>
7106    </mat-dialog-actions>
7107  </form>
7108</ng-template>
7109
7110<ng-template #cancelOverrideReasonModal>
7111  <form [formGroup]="rateLimitCancelOverrideForm">
7112    <mat-dialog-content>
7113      <div class="container-fluid mb-3">
7114        <div class="row">
7115          <div class="col-12 mt-3">
7116            <p>{{ 'SUBSCRIPTIONS.CANCEL_OVERRIDE_RATE_LIMIT_MESSAGE' | translate }}</p>
7117          </div>
7118        </div>
7119        <div class="row">
7120          <div class="col-12 mt-2">
7121            <nmfta-input-wrapper [label]="'SUBSCRIPTIONS.CANCEL_OVERRIDE_RATE_LIMIT_REASON' | translate">
7122              <input matInput formControlName="cancelReason" />
7123            </nmfta-input-wrapper>
7124          </div>
7125        </div>
7126      </div>
7127    </mat-dialog-content>
7128    <mat-dialog-actions class="modal-actions">
7129      <div class="d-flex justify-content-end pt-2 w-100" style="gap: 1rem;">
7130        <nmfta-button
7131          (buttonClick)="this.rateLimitCancelOverrideForm.reset(); cancelOverrideReasonDialogRef.close()">
7132          {{ 'Generic_Cancel' | translate }}
7133        </nmfta-button>
7134        <nmfta-button
7135          (buttonClick)="cancelRateLimitOverride()"
7136          styleType="contained"
7137          [disabled]="!rateLimitCancelOverrideForm.valid"
7138          >
7139          {{ 'Generic_Confirm' | translate }}
7140        </nmfta-button>
7141      </div>
7142    </mat-dialog-actions>
7143  </form>
7144</ng-template>`, styles: ["/* src/app/features/profile/components/manage-subscriptions/manage-subscriptions.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.manage-ftp-footer {\n  border-top: 1px solid #e8e8e8;\n}\n.edit-ftp-form {\n  height: 100%;\n}\n.manage-ftp-controls {\n  margin-bottom: 60px;\n}\n.edit-business-unit {\n  border-bottom: 1px solid #e8e8e8;\n}\n.card-columns {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n@media (min-width: 992px) {\n  .card-columns {\n    column-count: 2;\n  }\n}\n.copy-key-button ::ng-deep nmfta-button {\n  width: 100%;\n  display: flex;\n}\n.copy-key-button ::ng-deep nmfta-button .mdc-button__label {\n  width: 100%;\n}\n.copy-key-button ::ng-deep nmfta-button .label {\n  width: 100%;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  text-transform: none;\n}\n.accent {\n  color: var(--color-accent);\n  font-style: italic;\n}\n.padding-top {\n  padding-top: 1.75rem;\n}\n.min-height-95 {\n  min-height: 95px;\n}\n.height-93 {\n  height: 93px;\n}\n/*# sourceMappingURL=manage-subscriptions.component-7M4CSIVS.css.map */\n"] }]
7145  }], () => [{ type: DatePipe }, { type: Clipboard }], { editFtpServerDetails: [{
7146    type: ViewChild,
7147    args: ["editFtpServerDetails", { static: true }]
7148  }], editSubscriptionContact: [{
7149    type: ViewChild,
7150    args: ["editSubscriptionContact", { static: true }]
7151  }], editExpirationDateModal: [{
7152    type: ViewChild,
7153    args: ["editExpirationDateModal", { static: true }]
7154  }], bundleProductModal: [{
7155    type: ViewChild,
7156    args: ["bundleProductModal", { static: true }]
7157  }], manageRateLimitModal: [{
7158    type: ViewChild,
7159    args: ["manageRateLimitModal", { static: true }]
7160  }], cancelOverrideReasonModal: [{
7161    type: ViewChild,
7162    args: ["cancelOverrideReasonModal", { static: true }]
7163  }] });
7164})();
7165(() => {
7166  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ManageSubscriptionsComponent, { className: "ManageSubscriptionsComponent", filePath: "src/app/features/profile/components/manage-subscriptions/manage-subscriptions.component.ts", lineNumber: 97 });
7167})();
7168var SubscriptionType;
7169(function(SubscriptionType2) {
7170  SubscriptionType2[SubscriptionType2["Website"] = 0] = "Website";
7171  SubscriptionType2[SubscriptionType2["API"] = 1] = "API";
7172  SubscriptionType2[SubscriptionType2["BFD"] = 2] = "BFD";
7173})(SubscriptionType || (SubscriptionType = {}));
7174
7175// src/app/shared/components/organisms/reset-password-modal-container/reset-password-modal-container.component.ts
7176var _c04 = ["resetpasswordsuccess"];
7177function ResetPasswordModalContainerComponent_ng_template_16_Template(rf, ctx) {
7178  if (rf & 1) {
7179    \u0275\u0275elementStart(0, "div", 7)(1, "div", 8)(2, "div", 9)(3, "div", 10)(4, "p");
7180    \u0275\u0275text(5);
7181    \u0275\u0275elementEnd()()()()();
7182  }
7183  if (rf & 2) {
7184    const ctx_r1 = \u0275\u0275nextContext();
7185    \u0275\u0275advance(5);
7186    \u0275\u0275textInterpolate1(" ", ctx_r1.translate.instant(ctx_r1.data.namespace + ".Reset_Password_Success"), " ");
7187  }
7188}
7189var ResetPasswordModalContainerComponent = class _ResetPasswordModalContainerComponent {
7190  resetpasswordsuccess;
7191  companyStore = inject(CompanyStore);
7192  dialog = inject(MatDialog);
7193  translate = inject(TranslateService);
7194  data;
7195  closeModal = new EventEmitter();
7196  resetpassword() {
7197    this.companyStore.resetUserPassword(this.data.companyUser).then((resp) => {
7198      if (resp.success) {
7199        this.closeModal.emit();
7200        this.openResetPasswordconfimationdialog();
7201      } else
7202        this.cancel();
7203    });
7204  }
7205  openResetPasswordconfimationdialog() {
7206    const dialogRef = this.dialog.open(DialogComponent, {
7207      height: "300px",
7208      width: "500px",
7209      data: {
7210        title: "Generic_Reset_Password",
7211        icon: "key_outline",
7212        content: this.resetpasswordsuccess
7213      }
7214    });
7215  }
7216  cancel() {
7217    this.closeModal.emit();
7218  }
7219  static \u0275fac = function ResetPasswordModalContainerComponent_Factory(__ngFactoryType__) {
7220    return new (__ngFactoryType__ || _ResetPasswordModalContainerComponent)();
7221  };
7222  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ResetPasswordModalContainerComponent, selectors: [["nmfta-reset-password-modal-container"]], viewQuery: function ResetPasswordModalContainerComponent_Query(rf, ctx) {
7223    if (rf & 1) {
7224      \u0275\u0275viewQuery(_c04, 7);
7225    }
7226    if (rf & 2) {
7227      let _t;
7228      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.resetpasswordsuccess = _t.first);
7229    }
7230  }, inputs: { data: "data" }, outputs: { closeModal: "closeModal" }, decls: 18, vars: 7, consts: [["resetpasswordsuccess", ""], [1, "p-1", "p-md-4"], [1, "p-md-4", "text-center"], [1, "d-flex", "justify-content-end", "pt-2"], [3, "buttonClick"], [1, "pl-1"], ["styleType", "contained", "color", "error", 3, "buttonClick"], [1, "py-2", "px-4"], [1, "row"], [1, "col-12"], [1, "d-flex", "justify-content-center", "align-items-center"]], template: function ResetPasswordModalContainerComponent_Template(rf, ctx) {
7231    if (rf & 1) {
7232      const _r1 = \u0275\u0275getCurrentView();
7233      \u0275\u0275elementStart(0, "div")(1, "mat-dialog-content");
7234      \u0275\u0275elementContainerStart(2);
7235      \u0275\u0275elementStart(3, "div", 1)(4, "div", 2)(5, "span");
7236      \u0275\u0275text(6);
7237      \u0275\u0275elementEnd()()();
7238      \u0275\u0275elementContainerEnd();
7239      \u0275\u0275elementEnd();
7240      \u0275\u0275elementStart(7, "mat-dialog-actions")(8, "div", 3)(9, "nmfta-button", 4);
7241      \u0275\u0275listener("buttonClick", function ResetPasswordModalContainerComponent_Template_nmfta_button_buttonClick_9_listener() {
7242        \u0275\u0275restoreView(_r1);
7243        return \u0275\u0275resetView(ctx.cancel());
7244      });
7245      \u0275\u0275text(10);
7246      \u0275\u0275pipe(11, "translate");
7247      \u0275\u0275elementEnd();
7248      \u0275\u0275element(12, "span", 5);
7249      \u0275\u0275elementStart(13, "nmfta-button", 6);
7250      \u0275\u0275listener("buttonClick", function ResetPasswordModalContainerComponent_Template_nmfta_button_buttonClick_13_listener() {
7251        \u0275\u0275restoreView(_r1);
7252        return \u0275\u0275resetView(ctx.resetpassword());
7253      });
7254      \u0275\u0275text(14);
7255      \u0275\u0275pipe(15, "translate");
7256      \u0275\u0275elementEnd()()()();
7257      \u0275\u0275template(16, ResetPasswordModalContainerComponent_ng_template_16_Template, 6, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
7258    }
7259    if (rf & 2) {
7260      \u0275\u0275advance(6);
7261      \u0275\u0275textInterpolate(ctx.translate.instant(ctx.data.namespace + ".Confirm_Reset_Password"));
7262      \u0275\u0275advance(4);
7263      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(11, 3, "Generic_Cancel"), " ");
7264      \u0275\u0275advance(4);
7265      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(15, 5, "Generic_Confirm"), " ");
7266    }
7267  }, dependencies: [ButtonComponent, MatDialogActions, MatDialogContent, TranslatePipe], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n  .mat-mdc-dialog-container {\n  overflow: hidden;\n}\n  .mat-mdc-dialog-container .mat-mdc-dialog-surface {\n  border-radius: 1.375rem;\n  background-color: #ffffff;\n}\n  .mat-mdc-dialog-container .mat-mdc-dialog-surface .dialog-title-header {\n  align-items: center;\n  justify-content: space-between;\n  display: flex;\n  width: 100%;\n  gap: 0.75rem;\n  padding: 1.5rem;\n  flex-direction: column;\n}\n  .mat-mdc-dialog-container .mat-mdc-dialog-surface .dialog-title-header .title-container, \n  .mat-mdc-dialog-container .mat-mdc-dialog-surface .dialog-title-header .title, \n  .mat-mdc-dialog-container .mat-mdc-dialog-surface .dialog-title-header .description-container {\n  align-items: center;\n  display: flex;\n  gap: 0.75rem;\n  width: 100%;\n}\n  .mat-mdc-dialog-container .mat-mdc-dialog-surface .mat-mdc-dialog-content {\n  padding: 0;\n  border-top: 0.063rem solid #e8e8e8;\n  border-bottom: 0.063rem solid #e8e8e8;\n  max-height: 100%;\n  overflow: hidden;\n}\n  .mat-mdc-dialog-container .mat-mdc-dialog-actions {\n  justify-content: flex-end !important;\n}\n  .mat-mdc-dialog-container .mat-mdc-dialog-actions .mat-mdc-button {\n  margin-right: 0.75rem;\n}\n  .cdk-overlay-backdrop {\n  background-color: rgba(0, 0, 0, 0.7);\n}\n@media (max-width: 991.98px) {\n    .mat-mdc-dialog-actions {\n    justify-content: flex-end !important;\n  }\n}\n@media (max-width: 767.98px) {\n    .cdk-overlay-pane.mat-mdc-dialog-panel {\n    max-width: 100vw;\n  }\n    .mat-mdc-dialog-container, \n     .mat-mdc-dialog-panel {\n    height: 100vh !important;\n    max-height: 100vh !important;\n    width: 100vw !important;\n    max-width: 100vw !important;\n    min-height: 17.5rem;\n    min-width: 17.5rem;\n  }\n    .mat-mdc-dialog-container .mat-mdc-dialog-surface, \n     .mat-mdc-dialog-panel .mat-mdc-dialog-surface {\n    border-radius: 0;\n  }\n}\n/*# sourceMappingURL=reset-password-modal-container.component-AJTDSTM5.css.map */"] });
7268};
7269(() => {
7270  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ResetPasswordModalContainerComponent, [{
7271    type: Component,
7272    args: [{ selector: "nmfta-reset-password-modal-container", imports: [TranslatePipe, ButtonComponent, MatDialogActions, MatDialogContent], template: `<div>
7273  <mat-dialog-content>
7274    <ng-container>
7275      <div class="p-1 p-md-4">
7276        <div class="p-md-4 text-center">
7277          <span>{{ translate.instant(data.namespace + '.Confirm_Reset_Password') }}</span>
7278        </div>
7279      </div>
7280    </ng-container>
7281  </mat-dialog-content>
7282  <mat-dialog-actions>
7283    <div class="d-flex justify-content-end pt-2">
7284      <nmfta-button (buttonClick)="cancel()">
7285        {{ 'Generic_Cancel' | translate }}
7286      </nmfta-button>
7287      <span class="pl-1"></span>
7288      <nmfta-button styleType="contained" color="error" (buttonClick)="resetpassword()">
7289        {{ 'Generic_Confirm' | translate }}
7290      </nmfta-button>
7291    </div>
7292  </mat-dialog-actions>
7293</div>
7294
7295<ng-template #resetpasswordsuccess>
7296  <div class="py-2 px-4">
7297    <div class="row">
7298      <div class="col-12">
7299        <div class="d-flex justify-content-center align-items-center">
7300          <p>
7301            {{ translate.instant(data.namespace + '.Reset_Password_Success') }}
7302          </p>
7303        </div>
7304      </div>
7305    </div>
7306  </div>
7307</ng-template>
7308`, styles: ["/* src/app/shared/components/organisms/reset-password-modal-container/reset-password-modal-container.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n::ng-deep .mat-mdc-dialog-container {\n  overflow: hidden;\n}\n::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-surface {\n  border-radius: 1.375rem;\n  background-color: #ffffff;\n}\n::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-surface .dialog-title-header {\n  align-items: center;\n  justify-content: space-between;\n  display: flex;\n  width: 100%;\n  gap: 0.75rem;\n  padding: 1.5rem;\n  flex-direction: column;\n}\n::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-surface .dialog-title-header .title-container,\n::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-surface .dialog-title-header .title,\n::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-surface .dialog-title-header .description-container {\n  align-items: center;\n  display: flex;\n  gap: 0.75rem;\n  width: 100%;\n}\n::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-surface .mat-mdc-dialog-content {\n  padding: 0;\n  border-top: 0.063rem solid #e8e8e8;\n  border-bottom: 0.063rem solid #e8e8e8;\n  max-height: 100%;\n  overflow: hidden;\n}\n::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-actions {\n  justify-content: flex-end !important;\n}\n::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-actions .mat-mdc-button {\n  margin-right: 0.75rem;\n}\n::ng-deep .cdk-overlay-backdrop {\n  background-color: rgba(0, 0, 0, 0.7);\n}\n@media (max-width: 991.98px) {\n  ::ng-deep .mat-mdc-dialog-actions {\n    justify-content: flex-end !important;\n  }\n}\n@media (max-width: 767.98px) {\n  ::ng-deep .cdk-overlay-pane.mat-mdc-dialog-panel {\n    max-width: 100vw;\n  }\n  ::ng-deep .mat-mdc-dialog-container,\n  ::ng-deep .mat-mdc-dialog-panel {\n    height: 100vh !important;\n    max-height: 100vh !important;\n    width: 100vw !important;\n    max-width: 100vw !important;\n    min-height: 17.5rem;\n    min-width: 17.5rem;\n  }\n  ::ng-deep .mat-mdc-dialog-container .mat-mdc-dialog-surface,\n  ::ng-deep .mat-mdc-dialog-panel .mat-mdc-dialog-surface {\n    border-radius: 0;\n  }\n}\n/*# sourceMappingURL=reset-password-modal-container.component-AJTDSTM5.css.map */\n"] }]
7309  }], null, { resetpasswordsuccess: [{
7310    type: ViewChild,
7311    args: ["resetpasswordsuccess", { static: true }]
7312  }], data: [{
7313    type: Input
7314  }], closeModal: [{
7315    type: Output
7316  }] });
7317})();
7318(() => {
7319  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ResetPasswordModalContainerComponent, { className: "ResetPasswordModalContainerComponent", filePath: "src/app/shared/components/organisms/reset-password-modal-container/reset-password-modal-container.component.ts", lineNumber: 14 });
7320})();
7321
7322// src/app/shared/components/organisms/manage-resources-modal-container/manage-resources-modal-container.component.ts
7323var _c05 = () => ({ width: "100%", height: "5.383rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
7324function ManageResourcesModalContainerComponent_Conditional_1_Template(rf, ctx) {
7325  if (rf & 1) {
7326    \u0275\u0275element(0, "ngx-skeleton-loader", 1);
7327  }
7328  if (rf & 2) {
7329    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c05));
7330  }
7331}
7332function ManageResourcesModalContainerComponent_Conditional_2_Conditional_7_Conditional_5_Template(rf, ctx) {
7333  if (rf & 1) {
7334    \u0275\u0275elementStart(0, "div", 6);
7335    \u0275\u0275element(1, "nmfta-data-panel", 7);
7336    \u0275\u0275pipe(2, "translate");
7337    \u0275\u0275pipe(3, "translate");
7338    \u0275\u0275elementEnd();
7339  }
7340  if (rf & 2) {
7341    const ctx_r0 = \u0275\u0275nextContext(3);
7342    \u0275\u0275advance();
7343    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(2, 5, "COMPANY_SETTINGS.ENABLE_USER_SHARE_SYNONYMS"))("propertyValue", ctx_r0.companyStore.userToEdit().isUserSharedSynonymsEnabled)("fullLineDescription", \u0275\u0275pipeBind1(3, 7, "COMPANY_SETTINGS.ENABLE_USER_SHARE_SYNONYMS_DESCRIPTION"))("isToggle", true)("control", ctx_r0.userSynonymsForm.get("enableUserShareSynonyms"));
7344  }
7345}
7346function ManageResourcesModalContainerComponent_Conditional_2_Conditional_7_Template(rf, ctx) {
7347  if (rf & 1) {
7348    \u0275\u0275elementStart(0, "form", 4)(1, "div", 6);
7349    \u0275\u0275element(2, "nmfta-data-panel", 7);
7350    \u0275\u0275pipe(3, "translate");
7351    \u0275\u0275pipe(4, "translate");
7352    \u0275\u0275elementEnd();
7353    \u0275\u0275conditionalCreate(5, ManageResourcesModalContainerComponent_Conditional_2_Conditional_7_Conditional_5_Template, 4, 9, "div", 6);
7354    \u0275\u0275elementEnd();
7355  }
7356  if (rf & 2) {
7357    const ctx_r0 = \u0275\u0275nextContext(2);
7358    \u0275\u0275property("formGroup", ctx_r0.userSynonymsForm);
7359    \u0275\u0275advance(2);
7360    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(3, 7, "COMPANY_SETTINGS.ENABLE_USER_SYNONYMS"))("propertyValue", ctx_r0.companyStore.userToEdit().isUserSynonymsEnabled)("fullLineDescription", \u0275\u0275pipeBind1(4, 9, "COMPANY_SETTINGS.ENABLE_USER_SYNONYMS_DESCRIPTION"))("isToggle", true)("control", ctx_r0.userSynonymsForm.get("enableUserSynonyms"));
7361    \u0275\u0275advance(3);
7362    \u0275\u0275conditional(ctx_r0.showUserSynonymsPanel ? 5 : -1);
7363  }
7364}
7365function ManageResourcesModalContainerComponent_Conditional_2_Conditional_8_Conditional_5_Template(rf, ctx) {
7366  if (rf & 1) {
7367    \u0275\u0275elementStart(0, "div", 6);
7368    \u0275\u0275element(1, "nmfta-data-panel", 7);
7369    \u0275\u0275pipe(2, "translate");
7370    \u0275\u0275pipe(3, "translate");
7371    \u0275\u0275elementEnd();
7372  }
7373  if (rf & 2) {
7374    const ctx_r0 = \u0275\u0275nextContext(3);
7375    \u0275\u0275advance();
7376    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(2, 5, "COMPANY_SETTINGS.ENABLE_USER_SHARE_COMMENTS"))("propertyValue", ctx_r0.companyStore.userToEdit().enableShareComments)("fullLineDescription", \u0275\u0275pipeBind1(3, 7, "COMPANY_SETTINGS.ENABLE_USER_SHARE_COMMENTS_DESCRIPTION"))("isToggle", true)("control", ctx_r0.manageUserComments.get("enableUserShareComments"));
7377  }
7378}
7379function ManageResourcesModalContainerComponent_Conditional_2_Conditional_8_Template(rf, ctx) {
7380  if (rf & 1) {
7381    \u0275\u0275elementStart(0, "form", 5)(1, "div", 6);
7382    \u0275\u0275element(2, "nmfta-data-panel", 7);
7383    \u0275\u0275pipe(3, "translate");
7384    \u0275\u0275pipe(4, "translate");
7385    \u0275\u0275elementEnd();
7386    \u0275\u0275conditionalCreate(5, ManageResourcesModalContainerComponent_Conditional_2_Conditional_8_Conditional_5_Template, 4, 9, "div", 6);
7387    \u0275\u0275elementEnd();
7388  }
7389  if (rf & 2) {
7390    const ctx_r0 = \u0275\u0275nextContext(2);
7391    \u0275\u0275property("formGroup", ctx_r0.manageUserComments);
7392    \u0275\u0275advance(2);
7393    \u0275\u0275property("propertyName", \u0275\u0275pipeBind1(3, 7, "COMPANY_SETTINGS.ENABLE_USER_COMMENTS"))("propertyValue", ctx_r0.companyStore.userToEdit().enableComments)("fullLineDescription", \u0275\u0275pipeBind1(4, 9, "COMPANY_SETTINGS.ENABLE_USER_COMMENTS_DESCRIPTION"))("isToggle", true)("control", ctx_r0.manageUserComments.get("enableUserComments"));
7394    \u0275\u0275advance(3);
7395    \u0275\u0275conditional(ctx_r0.companyStore.userToEdit().enableComments && ctx_r0.companyStore.company().enableShareComments ? 5 : -1);
7396  }
7397}
7398function ManageResourcesModalContainerComponent_Conditional_2_Template(rf, ctx) {
7399  if (rf & 1) {
7400    \u0275\u0275elementStart(0, "p");
7401    \u0275\u0275text(1);
7402    \u0275\u0275pipe(2, "translate");
7403    \u0275\u0275elementEnd();
7404    \u0275\u0275elementStart(3, "nmfta-alert", 2);
7405    \u0275\u0275text(4);
7406    \u0275\u0275pipe(5, "translate");
7407    \u0275\u0275elementEnd();
7408    \u0275\u0275elementStart(6, "div", 3);
7409    \u0275\u0275conditionalCreate(7, ManageResourcesModalContainerComponent_Conditional_2_Conditional_7_Template, 6, 11, "form", 4);
7410    \u0275\u0275conditionalCreate(8, ManageResourcesModalContainerComponent_Conditional_2_Conditional_8_Template, 6, 11, "form", 5);
7411    \u0275\u0275elementEnd();
7412  }
7413  if (rf & 2) {
7414    const ctx_r0 = \u0275\u0275nextContext();
7415    \u0275\u0275advance();
7416    \u0275\u0275textInterpolate2("", \u0275\u0275pipeBind1(2, 5, "COMPANY_SETTINGS.MANAGE_RESOURCES"), " ", ctx_r0.companyStore.userToEdit().firstName + " " + ctx_r0.companyStore.userToEdit().lastName);
7417    \u0275\u0275advance(3);
7418    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(5, 7, "COMPANY_SETTINGS.MANAGE_RESOURCES_DESCRIPTION"));
7419    \u0275\u0275advance(3);
7420    \u0275\u0275conditional(ctx_r0.companySynonymsEnabled() ? 7 : -1);
7421    \u0275\u0275advance();
7422    \u0275\u0275conditional(ctx_r0.companyCommentsEnabled() ? 8 : -1);
7423  }
7424}
7425var ManageResourcesModalContainerComponent = class _ManageResourcesModalContainerComponent {
7426  formBuilder = inject(FormBuilder);
7427  companyStore = inject(CompanyStore);
7428  isLoading = false;
7429  showUserSynonymsPanel = false;
7430  showUserCommentsPanel = false;
7431  userSynonymsForm;
7432  manageUserComments = new FormGroup({
7433    enableUserComments: new FormControl(false),
7434    enableUserShareComments: new FormControl(false)
7435  });
7436  constructor() {
7437    effect(() => {
7438      if (this.companyStore.getUserInfoStatus() === ResponseStatus.LOADED) {
7439        this.initializeUserCommentsForm();
7440        this.initilizeUserSynonymsForm();
7441        this.isLoading = false;
7442      }
7443    });
7444  }
7445  ngOnInit() {
7446    this.isLoading = true;
7447  }
7448  dialogRef;
7449  initializeUserCommentsForm() {
7450    this.manageUserComments = this.formBuilder.group({
7451      enableUserComments: [this.companyStore.userToEdit().enableComments],
7452      enableUserShareComments: [this.companyStore.userToEdit().enableShareComments]
7453    });
7454    let prevEnableUserComments = this.manageUserComments.get("enableUserComments")?.value;
7455    this.manageUserComments.valueChanges.subscribe(({ enableUserComments, enableUserShareComments }) => {
7456      if (prevEnableUserComments !== enableUserComments) {
7457        this.manageUserComments.patchValue({ enableUserShareComments: enableUserComments && this.companyStore.company().enableShareComments ? enableUserComments : false }, { emitEvent: false });
7458      }
7459      const userComments = {
7460        userId: this.companyStore.userToEdit().userId,
7461        enableComments: enableUserComments,
7462        enableShareComments: this.manageUserComments.get("enableUserShareComments")?.value
7463      };
7464      this.companyStore.updateUserComment(userComments);
7465    });
7466  }
7467  initilizeUserSynonymsForm() {
7468    this.userSynonymsForm = this.formBuilder.group({
7469      enableUserSynonyms: [this.companyStore.userToEdit().isUserSynonymsEnabled],
7470      enableUserShareSynonyms: [this.companyStore.userToEdit().isUserSharedSynonymsEnabled || false]
7471    });
7472    let prevEnableUserSynonyms = this.userSynonymsForm.get("enableUserSynonyms")?.value;
7473    this.userSynonymsForm.valueChanges.subscribe(({ enableUserSynonyms, enableUserShareSynonyms }) => {
7474      if (prevEnableUserSynonyms !== enableUserSynonyms) {
7475        this.userSynonymsForm.patchValue({ enableUserShareSynonyms: enableUserSynonyms }, { emitEvent: false });
7476      }
7477      const synonyms = {
7478        userId: this.companyStore.userToEdit().userId,
7479        enableSynonyms: enableUserSynonyms,
7480        enableShareSynonyms: this.userSynonymsForm.get("enableUserShareSynonyms")?.value
7481      };
7482      this.companyStore.updateUserSynonym(synonyms);
7483      prevEnableUserSynonyms = this.showUserSynonymsPanel = enableUserSynonyms;
7484    });
7485    this.showUserSynonymsPanel = !!this.userSynonymsForm.get("enableUserSynonyms")?.value && !!this.companyStore.userToEdit().isCompanySharedSynonymsEnabled;
7486  }
7487  companySynonymsEnabled() {
7488    return this.companyStore.userToEdit().isCompanySynonymsEnabled;
7489  }
7490  companyCommentsEnabled() {
7491    return this.companyStore.company().enableComments;
7492  }
7493  ngOnDestroy() {
7494    this.userSynonymsForm?.reset({ emitEvent: false });
7495    this.manageUserComments?.reset({ emitEvent: false });
7496  }
7497  static \u0275fac = function ManageResourcesModalContainerComponent_Factory(__ngFactoryType__) {
7498    return new (__ngFactoryType__ || _ManageResourcesModalContainerComponent)();
7499  };
7500  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ManageResourcesModalContainerComponent, selectors: [["nmfta-manage-resources-model-container"]], decls: 3, vars: 1, consts: [[1, "manage-resources-modal-container"], ["count", "4", 3, "theme"], ["color", "info"], [1, "manage-resources-synonyms-container"], [1, "form-content", 3, "formGroup"], [1, "form-content", "mt-3", 3, "formGroup"], [1, "mt-1"], [3, "propertyName", "propertyValue", "fullLineDescription", "isToggle", "control"]], template: function ManageResourcesModalContainerComponent_Template(rf, ctx) {
7501    if (rf & 1) {
7502      \u0275\u0275elementStart(0, "div", 0);
7503      \u0275\u0275conditionalCreate(1, ManageResourcesModalContainerComponent_Conditional_1_Template, 1, 2, "ngx-skeleton-loader", 1)(2, ManageResourcesModalContainerComponent_Conditional_2_Template, 9, 9);
7504      \u0275\u0275elementEnd();
7505    }
7506    if (rf & 2) {
7507      \u0275\u0275advance();
7508      \u0275\u0275conditional(ctx.isLoading == true ? 1 : 2);
7509    }
7510  }, dependencies: [
7511    DataPanelComponent,
7512    AlertComponent,
7513    ReactiveFormsModule,
7514    \u0275NgNoValidate,
7515    NgControlStatusGroup,
7516    FormGroupDirective,
7517    NgxSkeletonLoaderModule,
7518    NgxSkeletonLoaderComponent,
7519    TranslatePipe
7520  ], styles: ["\n\n.manage-resources-modal-container[_ngcontent-%COMP%] {\n  padding: 20px;\n}\n.manage-resources-synonyms-container[_ngcontent-%COMP%] {\n  padding-top: 20px;\n}\n.form-content[_ngcontent-%COMP%] {\n  gap: 12px;\n  display: flex;\n  flex-direction: column;\n}\n/*# sourceMappingURL=manage-resources-modal-container.component-UXLIGERP.css.map */"] });
7521};
7522(() => {
7523  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ManageResourcesModalContainerComponent, [{
7524    type: Component,
7525    args: [{ selector: "nmfta-manage-resources-model-container", imports: [
7526      DataPanelComponent,
7527      AlertComponent,
7528      TranslatePipe,
7529      ReactiveFormsModule,
7530      NgxSkeletonLoaderModule
7531    ], template: `<div class="manage-resources-modal-container">
7532  @if(isLoading == true) {
7533    <ngx-skeleton-loader
7534      count="4"
7535      [theme]="{
7536        width: '100%',
7537        height: '5.383rem',
7538        'border-radius': '0.5rem',
7539        'margin-bottom': '0.3rem',
7540      }">
7541    </ngx-skeleton-loader>
7542  }
7543  @else {
7544    <p>{{ "COMPANY_SETTINGS.MANAGE_RESOURCES" | translate }} {{ companyStore.userToEdit().firstName + ' ' + companyStore.userToEdit().lastName }}</p>
7545    <nmfta-alert color="info">{{ 'COMPANY_SETTINGS.MANAGE_RESOURCES_DESCRIPTION' | translate }}</nmfta-alert>
7546    <div class="manage-resources-synonyms-container">
7547      @if(companySynonymsEnabled()) {
7548        <form [formGroup]="userSynonymsForm" class="form-content">
7549          <div class="mt-1">
7550            <nmfta-data-panel
7551              [propertyName]="'COMPANY_SETTINGS.ENABLE_USER_SYNONYMS' | translate"
7552              [propertyValue]="companyStore.userToEdit().isUserSynonymsEnabled"
7553              [fullLineDescription]="'COMPANY_SETTINGS.ENABLE_USER_SYNONYMS_DESCRIPTION' | translate"
7554              [isToggle]="true"
7555              [control]="userSynonymsForm.get('enableUserSynonyms')">
7556            </nmfta-data-panel>
7557          </div>
7558          @if(showUserSynonymsPanel) {
7559            <div class="mt-1">
7560              <nmfta-data-panel
7561                [propertyName]="'COMPANY_SETTINGS.ENABLE_USER_SHARE_SYNONYMS' | translate"
7562                [propertyValue]="companyStore.userToEdit().isUserSharedSynonymsEnabled"
7563                [fullLineDescription]="'COMPANY_SETTINGS.ENABLE_USER_SHARE_SYNONYMS_DESCRIPTION' | translate"
7564                [isToggle]="true"
7565                [control]="userSynonymsForm.get('enableUserShareSynonyms')">
7566              </nmfta-data-panel>
7567            </div>
7568          }
7569        </form> 
7570      }
7571    @if(companyCommentsEnabled()) {
7572      <form [formGroup]="manageUserComments" class="form-content mt-3">
7573          <div class="mt-1">
7574            <nmfta-data-panel
7575              [propertyName]="'COMPANY_SETTINGS.ENABLE_USER_COMMENTS' | translate"
7576              [propertyValue]="companyStore.userToEdit().enableComments"
7577              [fullLineDescription]="'COMPANY_SETTINGS.ENABLE_USER_COMMENTS_DESCRIPTION' | translate"
7578              [isToggle]="true"
7579              [control]="manageUserComments.get('enableUserComments')">
7580            </nmfta-data-panel>
7581          </div>
7582          @if(companyStore.userToEdit().enableComments && companyStore.company().enableShareComments) {
7583          <div class="mt-1">
7584            <nmfta-data-panel
7585              [propertyName]="'COMPANY_SETTINGS.ENABLE_USER_SHARE_COMMENTS' | translate"
7586              [propertyValue]="companyStore.userToEdit().enableShareComments"
7587              [fullLineDescription]="'COMPANY_SETTINGS.ENABLE_USER_SHARE_COMMENTS_DESCRIPTION' | translate"
7588              [isToggle]="true"
7589              [control]="manageUserComments.get('enableUserShareComments')">
7590            </nmfta-data-panel>
7591          </div>
7592        }
7593      </form>
7594    }
7595    </div>
7596  }
7597</div>`, styles: ["/* src/app/shared/components/organisms/manage-resources-modal-container/manage-resources-modal-container.component.scss */\n.manage-resources-modal-container {\n  padding: 20px;\n}\n.manage-resources-synonyms-container {\n  padding-top: 20px;\n}\n.form-content {\n  gap: 12px;\n  display: flex;\n  flex-direction: column;\n}\n/*# sourceMappingURL=manage-resources-modal-container.component-UXLIGERP.css.map */\n"] }]
7598  }], () => [], null);
7599})();
7600(() => {
7601  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ManageResourcesModalContainerComponent, { className: "ManageResourcesModalContainerComponent", filePath: "src/app/shared/components/organisms/manage-resources-modal-container/manage-resources-modal-container.component.ts", lineNumber: 26 });
7602})();
7603
7604// src/app/features/profile/components/manage-company-users/manage-company-users.component.ts
7605var _c06 = ["CreateUserView"];
7606var _c19 = ["editUserView"];
7607var _c23 = ["deleteUserView"];
7608var _c33 = ["licenseInformationDialog"];
7609var _c43 = ["userLicenseAssignment"];
7610var _c53 = ["createUserDialog"];
7611var _c63 = () => [10, 25, 50];
7612var _c73 = () => ({ "border-radius": "0", height: "100%", "min-height": "45vh", width: "100%" });
7613var _c83 = (a0, a1, a2, a3) => ({ firstName: a0, lastName: a1, email: a2, today: a3 });
7614var _forTrack05 = ($index, $item) => $item.id;
7615var _forTrack12 = ($index, $item) => $item.countryId;
7616function ManageCompanyUsersComponent_Conditional_6_Template(rf, ctx) {
7617  if (rf & 1) {
7618    const _r2 = \u0275\u0275getCurrentView();
7619    \u0275\u0275elementStart(0, "nmfta-button", 28);
7620    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_Conditional_6_Template_nmfta_button_buttonClick_0_listener() {
7621      \u0275\u0275restoreView(_r2);
7622      const ctx_r2 = \u0275\u0275nextContext();
7623      return \u0275\u0275resetView(ctx_r2.goToUserActivityReport());
7624    });
7625    \u0275\u0275text(1, " User Activity ");
7626    \u0275\u0275elementEnd();
7627  }
7628}
7629function ManageCompanyUsersComponent_div_17_For_25_Template(rf, ctx) {
7630  if (rf & 1) {
7631    \u0275\u0275elementStart(0, "mat-option", 35);
7632    \u0275\u0275text(1);
7633    \u0275\u0275elementEnd();
7634  }
7635  if (rf & 2) {
7636    const role_r5 = ctx.$implicit;
7637    \u0275\u0275property("value", role_r5);
7638    \u0275\u0275advance();
7639    \u0275\u0275textInterpolate1(" ", role_r5, " ");
7640  }
7641}
7642function ManageCompanyUsersComponent_div_17_Template(rf, ctx) {
7643  if (rf & 1) {
7644    const _r4 = \u0275\u0275getCurrentView();
7645    \u0275\u0275elementStart(0, "div")(1, "div", 9)(2, "div", 29)(3, "nmfta-input-wrapper", 30);
7646    \u0275\u0275pipe(4, "translate");
7647    \u0275\u0275element(5, "input", 31);
7648    \u0275\u0275pipe(6, "translate");
7649    \u0275\u0275elementEnd()();
7650    \u0275\u0275elementStart(7, "div", 29)(8, "nmfta-input-wrapper", 30);
7651    \u0275\u0275pipe(9, "translate");
7652    \u0275\u0275element(10, "input", 32);
7653    \u0275\u0275pipe(11, "translate");
7654    \u0275\u0275elementEnd()();
7655    \u0275\u0275elementStart(12, "div", 29)(13, "nmfta-input-wrapper", 30);
7656    \u0275\u0275pipe(14, "translate");
7657    \u0275\u0275element(15, "input", 33);
7658    \u0275\u0275pipe(16, "translate");
7659    \u0275\u0275elementEnd()();
7660    \u0275\u0275elementStart(17, "div", 29)(18, "nmfta-input-wrapper", 30);
7661    \u0275\u0275pipe(19, "translate");
7662    \u0275\u0275elementStart(20, "mat-select", 34);
7663    \u0275\u0275pipe(21, "translate");
7664    \u0275\u0275elementStart(22, "mat-option", 35);
7665    \u0275\u0275text(23, "----");
7666    \u0275\u0275elementEnd();
7667    \u0275\u0275repeaterCreate(24, ManageCompanyUsersComponent_div_17_For_25_Template, 2, 2, "mat-option", 35, \u0275\u0275repeaterTrackByIdentity);
7668    \u0275\u0275elementEnd()()();
7669    \u0275\u0275elementStart(26, "div", 36)(27, "nmfta-input-wrapper", 30);
7670    \u0275\u0275pipe(28, "translate");
7671    \u0275\u0275elementStart(29, "mat-radio-group", 37)(30, "mat-radio-button", 38);
7672    \u0275\u0275text(31, "All");
7673    \u0275\u0275elementEnd();
7674    \u0275\u0275elementStart(32, "mat-radio-button", 39);
7675    \u0275\u0275text(33, "Assigned");
7676    \u0275\u0275elementEnd();
7677    \u0275\u0275elementStart(34, "mat-radio-button", 40);
7678    \u0275\u0275text(35, "Unassigned");
7679    \u0275\u0275elementEnd()()()();
7680    \u0275\u0275elementStart(36, "div", 41)(37, "nmfta-button", 42);
7681    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_div_17_Template_nmfta_button_buttonClick_37_listener() {
7682      \u0275\u0275restoreView(_r4);
7683      const ctx_r2 = \u0275\u0275nextContext();
7684      return \u0275\u0275resetView(ctx_r2.resetFilter());
7685    });
7686    \u0275\u0275text(38, " Clear Filters ");
7687    \u0275\u0275elementEnd();
7688    \u0275\u0275elementStart(39, "nmfta-button", 43);
7689    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_div_17_Template_nmfta_button_buttonClick_39_listener() {
7690      \u0275\u0275restoreView(_r4);
7691      const ctx_r2 = \u0275\u0275nextContext();
7692      return \u0275\u0275resetView(ctx_r2.getUsers());
7693    });
7694    \u0275\u0275text(40, " Apply Filters ");
7695    \u0275\u0275elementEnd()()()();
7696  }
7697  if (rf & 2) {
7698    const ctx_r2 = \u0275\u0275nextContext();
7699    \u0275\u0275advance(3);
7700    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(4, 18, "Generic_FirstName")));
7701    \u0275\u0275advance(2);
7702    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(6, 20, "Generic_FirstName")));
7703    \u0275\u0275advance(3);
7704    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(9, 22, "Generic_LastName")));
7705    \u0275\u0275advance(2);
7706    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(11, 24, "Generic_LastName")));
7707    \u0275\u0275advance(3);
7708    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(14, 26, "Generic_EmailAddress")));
7709    \u0275\u0275advance(2);
7710    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(16, 28, "Generic_EmailAddress")));
7711    \u0275\u0275advance(3);
7712    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(19, 30, "Generic_SelectUserRole")));
7713    \u0275\u0275advance(2);
7714    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(21, 32, "Generic_SelectUserRole")));
7715    \u0275\u0275advance(4);
7716    \u0275\u0275repeater(ctx_r2.tableFilterRoles);
7717    \u0275\u0275advance(3);
7718    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(28, 34, "Generic_LicenseStatus")));
7719  }
7720}
7721function ManageCompanyUsersComponent_Conditional_18_Template(rf, ctx) {
7722  if (rf & 1) {
7723    \u0275\u0275elementStart(0, "div", 23);
7724    \u0275\u0275element(1, "ngx-skeleton-loader", 44);
7725    \u0275\u0275elementEnd();
7726  }
7727  if (rf & 2) {
7728    \u0275\u0275advance();
7729    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c73));
7730  }
7731}
7732function ManageCompanyUsersComponent_Conditional_19_For_4_Template(rf, ctx) {
7733  if (rf & 1) {
7734    \u0275\u0275element(0, "col");
7735  }
7736  if (rf & 2) {
7737    const col_r6 = ctx.$implicit;
7738    \u0275\u0275styleProp("width", col_r6.width);
7739  }
7740}
7741function ManageCompanyUsersComponent_Conditional_19_For_6_th_1_Template(rf, ctx) {
7742  if (rf & 1) {
7743    \u0275\u0275elementStart(0, "th", 52);
7744    \u0275\u0275text(1);
7745    \u0275\u0275elementEnd();
7746  }
7747  if (rf & 2) {
7748    const col_r7 = \u0275\u0275nextContext().$implicit;
7749    \u0275\u0275advance();
7750    \u0275\u0275textInterpolate(col_r7.value);
7751  }
7752}
7753function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Conditional_10_Template(rf, ctx) {
7754  if (rf & 1) {
7755    const _r10 = \u0275\u0275getCurrentView();
7756    \u0275\u0275elementStart(0, "button", 55);
7757    \u0275\u0275listener("click", function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Conditional_10_Template_button_click_0_listener() {
7758      \u0275\u0275restoreView(_r10);
7759      const user_r9 = \u0275\u0275nextContext(2).$implicit;
7760      const ctx_r2 = \u0275\u0275nextContext(3);
7761      return \u0275\u0275resetView(ctx_r2.manageResources(user_r9));
7762    });
7763    \u0275\u0275elementStart(1, "mat-icon");
7764    \u0275\u0275text(2, "category");
7765    \u0275\u0275elementEnd();
7766    \u0275\u0275elementStart(3, "span");
7767    \u0275\u0275text(4);
7768    \u0275\u0275pipe(5, "translate");
7769    \u0275\u0275elementEnd()();
7770  }
7771  if (rf & 2) {
7772    \u0275\u0275advance(4);
7773    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(5, 1, "Generic_ManageResources"));
7774  }
7775}
7776function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Template(rf, ctx) {
7777  if (rf & 1) {
7778    const _r8 = \u0275\u0275getCurrentView();
7779    \u0275\u0275elementContainerStart(0);
7780    \u0275\u0275element(1, "nmfta-button", 54);
7781    \u0275\u0275elementStart(2, "mat-menu", null, 8)(4, "button", 55);
7782    \u0275\u0275listener("click", function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Template_button_click_4_listener() {
7783      \u0275\u0275restoreView(_r8);
7784      const user_r9 = \u0275\u0275nextContext().$implicit;
7785      const ctx_r2 = \u0275\u0275nextContext(3);
7786      return \u0275\u0275resetView(ctx_r2.licenseAssignment(user_r9));
7787    });
7788    \u0275\u0275elementStart(5, "mat-icon");
7789    \u0275\u0275text(6, "workspace_premium");
7790    \u0275\u0275elementEnd();
7791    \u0275\u0275elementStart(7, "span");
7792    \u0275\u0275text(8);
7793    \u0275\u0275pipe(9, "translate");
7794    \u0275\u0275elementEnd()();
7795    \u0275\u0275conditionalCreate(10, ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Conditional_10_Template, 6, 3, "button", 56);
7796    \u0275\u0275elementStart(11, "button", 55);
7797    \u0275\u0275listener("click", function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Template_button_click_11_listener() {
7798      \u0275\u0275restoreView(_r8);
7799      const user_r9 = \u0275\u0275nextContext().$implicit;
7800      const ctx_r2 = \u0275\u0275nextContext(3);
7801      return \u0275\u0275resetView(ctx_r2.editUser(user_r9));
7802    });
7803    \u0275\u0275elementStart(12, "mat-icon");
7804    \u0275\u0275text(13, "edit_outline");
7805    \u0275\u0275elementEnd();
7806    \u0275\u0275elementStart(14, "span");
7807    \u0275\u0275text(15, "Edit User");
7808    \u0275\u0275elementEnd()();
7809    \u0275\u0275elementStart(16, "button", 55);
7810    \u0275\u0275listener("click", function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Template_button_click_16_listener() {
7811      \u0275\u0275restoreView(_r8);
7812      const user_r9 = \u0275\u0275nextContext().$implicit;
7813      const ctx_r2 = \u0275\u0275nextContext(3);
7814      return \u0275\u0275resetView(ctx_r2.resetUserPassword(user_r9));
7815    });
7816    \u0275\u0275elementStart(17, "mat-icon");
7817    \u0275\u0275text(18, "key_outline");
7818    \u0275\u0275elementEnd();
7819    \u0275\u0275elementStart(19, "span");
7820    \u0275\u0275text(20, "Reset Password");
7821    \u0275\u0275elementEnd()();
7822    \u0275\u0275elementStart(21, "button", 55);
7823    \u0275\u0275listener("click", function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Template_button_click_21_listener() {
7824      \u0275\u0275restoreView(_r8);
7825      const user_r9 = \u0275\u0275nextContext().$implicit;
7826      const ctx_r2 = \u0275\u0275nextContext(3);
7827      return \u0275\u0275resetView(ctx_r2.deleteUser(user_r9));
7828    });
7829    \u0275\u0275elementStart(22, "mat-icon");
7830    \u0275\u0275text(23, "delete_outline");
7831    \u0275\u0275elementEnd();
7832    \u0275\u0275elementStart(24, "span");
7833    \u0275\u0275text(25, "Delete User");
7834    \u0275\u0275elementEnd()()();
7835    \u0275\u0275elementContainerEnd();
7836  }
7837  if (rf & 2) {
7838    const managUserActions_r11 = \u0275\u0275reference(3);
7839    const ctx_r2 = \u0275\u0275nextContext(4);
7840    \u0275\u0275advance();
7841    \u0275\u0275property("iconName", "more_vert")("blackText", true)("matMenuTriggerFor", managUserActions_r11);
7842    \u0275\u0275advance(7);
7843    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(9, 5, "Generic_ManageLicense"));
7844    \u0275\u0275advance(2);
7845    \u0275\u0275conditional(ctx_r2.company$().enableSynonyms || ctx_r2.company$().enableComments ? 10 : -1);
7846  }
7847}
7848function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_2_Conditional_0_Template(rf, ctx) {
7849  if (rf & 1) {
7850    \u0275\u0275element(0, "nmfta-icon", 57);
7851  }
7852}
7853function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_2_Conditional_1_Template(rf, ctx) {
7854  if (rf & 1) {
7855    \u0275\u0275element(0, "nmfta-icon", 58);
7856  }
7857}
7858function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_2_Template(rf, ctx) {
7859  if (rf & 1) {
7860    \u0275\u0275conditionalCreate(0, ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_2_Conditional_0_Template, 1, 0, "nmfta-icon", 57)(1, Manage
7860CompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_2_Conditional_1_Template, 1, 0, "nmfta-icon", 58);
7861  }
7862  if (rf & 2) {
7863    const user_r9 = \u0275\u0275nextContext().$implicit;
7864    \u0275\u0275conditional(user_r9.isLicensed ? 0 : 1);
7865  }
7866}
7867function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_3_Template(rf, ctx) {
7868  if (rf & 1) {
7869    \u0275\u0275elementStart(0, "nmfta-cell");
7870    \u0275\u0275text(1);
7871    \u0275\u0275elementEnd();
7872  }
7873  if (rf & 2) {
7874    const user_r9 = \u0275\u0275nextContext().$implicit;
7875    const col_r7 = \u0275\u0275nextContext().$implicit;
7876    \u0275\u0275advance();
7877    \u0275\u0275textInterpolate1(" ", user_r9[col_r7.id], " ");
7878  }
7879}
7880function ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Template(rf, ctx) {
7881  if (rf & 1) {
7882    \u0275\u0275elementStart(0, "td", 53);
7883    \u0275\u0275conditionalCreate(1, ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_1_Template, 26, 7, "ng-container")(2, ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_2_Template, 2, 1)(3, ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Conditional_3_Template, 2, 1, "nmfta-cell");
7884    \u0275\u0275elementEnd();
7885  }
7886  if (rf & 2) {
7887    const col_r7 = \u0275\u0275nextContext().$implicit;
7888    \u0275\u0275classMap(col_r7.id);
7889    \u0275\u0275advance();
7890    \u0275\u0275conditional(col_r7.id === "actions" ? 1 : col_r7.id === "isLicensed" ? 2 : 3);
7891  }
7892}
7893function ManageCompanyUsersComponent_Conditional_19_For_6_Template(rf, ctx) {
7894  if (rf & 1) {
7895    \u0275\u0275elementContainerStart(0, 47);
7896    \u0275\u0275template(1, ManageCompanyUsersComponent_Conditional_19_For_6_th_1_Template, 2, 1, "th", 50)(2, ManageCompanyUsersComponent_Conditional_19_For_6_td_2_Template, 4, 3, "td", 51);
7897    \u0275\u0275elementContainerEnd();
7898  }
7899  if (rf & 2) {
7900    const col_r7 = ctx.$implicit;
7901    \u0275\u0275property("matColumnDef", col_r7.id);
7902  }
7903}
7904function ManageCompanyUsersComponent_Conditional_19_tr_7_Template(rf, ctx) {
7905  if (rf & 1) {
7906    \u0275\u0275element(0, "tr", 59);
7907  }
7908}
7909function ManageCompanyUsersComponent_Conditional_19_tr_8_Template(rf, ctx) {
7910  if (rf & 1) {
7911    \u0275\u0275element(0, "tr", 60);
7912  }
7913}
7914function ManageCompanyUsersComponent_Conditional_19_Template(rf, ctx) {
7915  if (rf & 1) {
7916    \u0275\u0275elementStart(0, "div", 24)(1, "table", 45)(2, "colgroup");
7917    \u0275\u0275repeaterCreate(3, ManageCompanyUsersComponent_Conditional_19_For_4_Template, 1, 2, "col", 46, _forTrack05);
7918    \u0275\u0275elementEnd();
7919    \u0275\u0275repeaterCreate(5, ManageCompanyUsersComponent_Conditional_19_For_6_Template, 3, 1, "ng-container", 47, _forTrack05);
7920    \u0275\u0275template(7, ManageCompanyUsersComponent_Conditional_19_tr_7_Template, 1, 0, "tr", 48)(8, ManageCompanyUsersComponent_Conditional_19_tr_8_Template, 1, 0, "tr", 49);
7921    \u0275\u0275elementEnd()();
7922  }
7923  if (rf & 2) {
7924    const ctx_r2 = \u0275\u0275nextContext();
7925    \u0275\u0275advance();
7926    \u0275\u0275property("dataSource", ctx_r2.dataSource());
7927    \u0275\u0275advance(2);
7928    \u0275\u0275repeater(ctx_r2.columns.display);
7929    \u0275\u0275advance(2);
7930    \u0275\u0275repeater(ctx_r2.columns.display);
7931    \u0275\u0275advance(2);
7932    \u0275\u0275property("matHeaderRowDef", ctx_r2.columns.ids);
7933    \u0275\u0275advance();
7934    \u0275\u0275property("matRowDefColumns", ctx_r2.columns.ids);
7935  }
7936}
7937function ManageCompanyUsersComponent_Conditional_20_Template(rf, ctx) {
7938  if (rf & 1) {
7939    \u0275\u0275elementStart(0, "div", 25);
7940    \u0275\u0275text(1);
7941    \u0275\u0275pipe(2, "translate");
7942    \u0275\u0275elementEnd();
7943  }
7944  if (rf & 2) {
7945    \u0275\u0275advance();
7946    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "Generic_NoUsersFound"), " ");
7947  }
7948}
7949function ManageCompanyUsersComponent_ng_template_24_Conditional_38_Template(rf, ctx) {
7950  if (rf & 1) {
7951    \u0275\u0275elementStart(0, "div", 84)(1, "nmfta-alert", 87);
7952    \u0275\u0275text(2);
7953    \u0275\u0275pipe(3, "translate");
7954    \u0275\u0275elementEnd()();
7955  }
7956  if (rf & 2) {
7957    const ctx_r2 = \u0275\u0275nextContext(2);
7958    \u0275\u0275advance();
7959    \u0275\u0275property("color", "success");
7960    \u0275\u0275advance();
7961    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind2(3, 2, "COMPANY_SETTINGS.Activation_Link_Success", \u0275\u0275pureFunction4(5, _c83, ctx_r2.firstName, ctx_r2.lastName, ctx_r2.email, ctx_r2.today)), " ");
7962  }
7963}
7964function ManageCompanyUsersComponent_ng_template_24_Template(rf, ctx) {
7965  if (rf & 1) {
7966    const _r12 = \u0275\u0275getCurrentView();
7967    \u0275\u0275elementStart(0, "div", 61)(1, "mat-tab-group", 62)(2, "mat-tab", 30);
7968    \u0275\u0275pipe(3, "translate");
7969    \u0275\u0275elementStart(4, "div", 63)(5, "div", 64)(6, "nmfta-alert");
7970    \u0275\u0275text(7);
7971    \u0275\u0275pipe(8, "translate");
7972    \u0275\u0275elementEnd()();
7973    \u0275\u0275elementStart(9, "div", 65)(10, "nmfta-user-group-selector", 66);
7974    \u0275\u0275listener("userAction", function ManageCompanyUsersComponent_ng_template_24_Template_nmfta_user_group_selector_userAction_10_listener($event) {
7975      \u0275\u0275restoreView(_r12);
7976      const ctx_r2 = \u0275\u0275nextContext();
7977      return \u0275\u0275resetView(ctx_r2.handleUserAdminAction($event));
7978    });
7979    \u0275\u0275elementEnd()()()();
7980    \u0275\u0275elementStart(11, "mat-tab", 30);
7981    \u0275\u0275pipe(12, "translate");
7982    \u0275\u0275elementStart(13, "div", 67)(14, "div", 68)(15, "nmfta-alert");
7983    \u0275\u0275text(16);
7984    \u0275\u0275pipe(17, "translate");
7985    \u0275\u0275elementEnd()();
7986    \u0275\u0275elementStart(18, "div", 69)(19, "form", 21)(20, "div", 9)(21, "div", 70)(22, "nmfta-input-wrapper", 71);
7987    \u0275\u0275element(23, "input", 72);
7988    \u0275\u0275elementEnd()();
7989    \u0275\u0275elementStart(24, "div", 70)(25, "nmfta-input-wrapper", 73);
7990    \u0275\u0275element(26, "input", 74);
7991    \u0275\u0275elementEnd()()();
7992    \u0275\u0275elementStart(27, "div", 9)(28, "div", 75)(29, "nmfta-input-wrapper", 76);
7993    \u0275\u0275element(30, "input", 77);
7994    \u0275\u0275elementEnd()();
7995    \u0275\u0275elementStart(31, "div", 78)(32, "nmfta-input-wrapper", 79);
7996    \u0275\u0275element(33, "input", 80);
7997    \u0275\u0275elementEnd()()();
7998    \u0275\u0275elementStart(34, "div", 9)(35, "div", 81)(36, "nmfta-input-wrapper", 82);
7999    \u0275\u0275element(37, "input", 83);
8000    \u0275\u0275elementEnd()()()();
8001    \u0275\u0275conditionalCreate(38, ManageCompanyUsersComponent_ng_template_24_Conditional_38_Template, 4, 10, "div", 84);
8002    \u0275\u0275elementEnd();
8003    \u0275\u0275elementStart(39, "div", 85)(40, "nmfta-button", 86);
8004    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_24_Template_nmfta_button_buttonClick_40_listener() {
8005      \u0275\u0275restoreView(_r12);
8006      const ctx_r2 = \u0275\u0275nextContext();
8007      return \u0275\u0275resetView(ctx_r2.createNewCompanyAdmin());
8008    });
8009    \u0275\u0275text(41);
8010    \u0275\u0275pipe(42, "translate");
8011    \u0275\u0275elementEnd()()()()()();
8012  }
8013  if (rf & 2) {
8014    const ctx_r2 = \u0275\u0275nextContext();
8015    \u0275\u0275advance(2);
8016    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(3, 16, "COMPANY_SETTINGS.Assign_to_an_Existing_User")));
8017    \u0275\u0275advance(5);
8018    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(8, 18, "COMPANY_SETTINGS.Add_Company_Admin_Message"), " ");
8019    \u0275\u0275advance(3);
8020    \u0275\u0275property("companyId", ctx_r2.companyId$())("ExternalUsersList", ctx_r2.companyAdmins$)("ExternalUsersLoadingStatus", ctx_r2.submissionStatus$)("isAdmin", true)("forPrimaryAdminAdd", true);
8021    \u0275\u0275advance();
8022    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(12, 20, "COMPANY_SETTINGS.Assign_to_A_New_User")));
8023    \u0275\u0275advance(5);
8024    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(17, 22, "COMPANY_SETTINGS.Add_Company_Admin_Message"), " ");
8025    \u0275\u0275advance(3);
8026    \u0275\u0275property("formGroup", ctx_r2.companyAdminForm);
8027    \u0275\u0275advance(19);
8028    \u0275\u0275conditional(ctx_r2.showAlertCompanyAdmin ? 38 : -1);
8029    \u0275\u0275advance(2);
8030    \u0275\u0275property("disabled", ctx_r2.companyAdminForm.invalid)("isLoading", ctx_r2.updateUserStatus$() === "loading");
8031    \u0275\u0275advance();
8032    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(42, 24, "COMPANY_SETTINGS.Create_Company_Admin"), " ");
8033  }
8034}
8035function ManageCompanyUsersComponent_ng_template_26_Template(rf, ctx) {
8036  if (rf & 1) {
8037    const _r13 = \u0275\u0275getCurrentView();
8038    \u0275\u0275elementStart(0, "form", 88)(1, "div", 9)(2, "div", 89)(3, "nmfta-input-wrapper", 90);
8039    \u0275\u0275pipe(4, "translate");
8040    \u0275\u0275elementStart(5, "div", 91);
8041    \u0275\u0275element(6, "input", 31);
8042    \u0275\u0275pipe(7, "translate");
8043    \u0275\u0275elementEnd()()();
8044    \u0275\u0275elementStart(8, "div", 89)(9, "nmfta-input-wrapper", 92);
8045    \u0275\u0275pipe(10, "translate");
8046    \u0275\u0275elementStart(11, "div", 91);
8047    \u0275\u0275element(12, "input", 32);
8048    \u0275\u0275pipe(13, "translate");
8049    \u0275\u0275elementEnd()()()();
8050    \u0275\u0275elementStart(14, "div", 9)(15, "div", 81)(16, "nmfta-input-wrapper", 93);
8051    \u0275\u0275pipe(17, "translate");
8052    \u0275\u0275elementStart(18, "div", 91);
8053    \u0275\u0275element(19, "input", 94);
8054    \u0275\u0275pipe(20, "translate");
8055    \u0275\u0275elementEnd()()()()();
8056    \u0275\u0275elementStart(21, "div", 95)(22, "nmfta-button", 96);
8057    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_26_Template_nmfta_button_buttonClick_22_listener() {
8058      \u0275\u0275restoreView(_r13);
8059      const ctx_r2 = \u0275\u0275nextContext();
8060      return \u0275\u0275resetView(ctx_r2.sendActivationEmail());
8061    });
8062    \u0275\u0275text(23, " Send Activation ");
8063    \u0275\u0275elementEnd()();
8064  }
8065  if (rf & 2) {
8066    const ctx_r2 = \u0275\u0275nextContext();
8067    \u0275\u0275property("formGroup", ctx_r2.createUserForm);
8068    \u0275\u0275advance(3);
8069    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(4, 15, "PURCHASE.COMPANY_FORM.FIRST_NAME")));
8070    \u0275\u0275advance(3);
8071    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(7, 17, "PURCHASE.COMPANY_FORM.FIRST_NAME")));
8072    \u0275\u0275advance(3);
8073    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(10, 19, "PURCHASE.COMPANY_FORM.LAST_NAME")));
8074    \u0275\u0275advance(3);
8075    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(13, 21, "PURCHASE.COMPANY_FORM.LAST_NAME")));
8076    \u0275\u0275advance(4);
8077    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(17, 23, "PURCHASE.COMPANY_FORM.EMAIL")));
8078    \u0275\u0275advance(3);
8079    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(20, 25, "PURCHASE.COMPANY_FORM.EMAIL")));
8080    \u0275\u0275advance(3);
8081    \u0275\u0275property("disabled", !ctx_r2.createUserForm.valid)("isLoading", ctx_r2.saveUserStatus$() == "loading");
8082  }
8083}
8084function ManageCompanyUsersComponent_ng_template_28_For_46_Template(rf, ctx) {
8085  if (rf & 1) {
8086    \u0275\u0275elementStart(0, "mat-option", 35);
8087    \u0275\u0275text(1);
8088    \u0275\u0275elementEnd();
8089  }
8090  if (rf & 2) {
8091    const role_r15 = ctx.$implicit;
8092    \u0275\u0275property("value", role_r15);
8093    \u0275\u0275advance();
8094    \u0275\u0275textInterpolate1(" ", role_r15, " ");
8095  }
8096}
8097function ManageCompanyUsersComponent_ng_template_28_For_52_Template(rf, ctx) {
8098  if (rf & 1) {
8099    \u0275\u0275elementStart(0, "mat-option", 35);
8100    \u0275\u0275text(1);
8101    \u0275\u0275elementEnd();
8102  }
8103  if (rf & 2) {
8104    const country_r16 = ctx.$implicit;
8105    \u0275\u0275property("value", country_r16.umCountryCode);
8106    \u0275\u0275advance();
8107    \u0275\u0275textInterpolate1(" ", country_r16.umCountryName, " ");
8108  }
8109}
8110function ManageCompanyUsersComponent_ng_template_28_Template(rf, ctx) {
8111  if (rf & 1) {
8112    const _r14 = \u0275\u0275getCurrentView();
8113    \u0275\u0275elementStart(0, "div", 97)(1, "form", 21)(2, "div", 9)(3, "div", 89)(4, "nmfta-input-wrapper", 90);
8114    \u0275\u0275pipe(5, "translate");
8115    \u0275\u0275elementStart(6, "div", 91);
8116    \u0275\u0275element(7, "input", 31);
8117    \u0275\u0275pipe(8, "translate");
8118    \u0275\u0275elementEnd()()();
8119    \u0275\u0275elementStart(9, "div", 89)(10, "nmfta-input-wrapper", 92);
8120    \u0275\u0275pipe(11, "translate");
8121    \u0275\u0275elementStart(12, "div", 91);
8122    \u0275\u0275element(13, "input", 32);
8123    \u0275\u0275pipe(14, "translate");
8124    \u0275\u0275elementEnd()()()();
8125    \u0275\u0275elementStart(15, "div", 9)(16, "div", 98)(17, "nmfta-input-wrapper", 99)(18, "div", 91);
8126    \u0275\u0275element(19, "input", 100);
8127    \u0275\u0275elementEnd()()();
8128    \u0275\u0275elementStart(20, "div", 101)(21, "nmfta-input-wrapper", 102)(22, "div", 91);
8129    \u0275\u0275element(23, "input", 103);
8130    \u0275\u0275elementEnd()()()();
8131    \u0275\u0275elementStart(24, "div", 9)(25, "div", 89)(26, "nmfta-input-wrapper", 104)(27, "div", 91);
8132    \u0275\u0275element(28, "input", 105);
8133    \u0275\u0275elementEnd()()();
8134    \u0275\u0275elementStart(29, "div", 89)(30, "nmfta-input-wrapper", 106)(31, "div", 91);
8135    \u0275\u0275element(32, "input", 107);
8136    \u0275\u0275elementEnd()()()();
8137    \u0275\u0275elementStart(33, "div", 9)(34, "div", 81)(35, "nmfta-input-wrapper", 108);
8138    \u0275\u0275pipe(36, "translate");
8139    \u0275\u0275pipe(37, "translate");
8140    \u0275\u0275elementStart(38, "div", 91);
8141    \u0275\u0275element(39, "input", 109);
8142    \u0275\u0275pipe(40, "translate");
8143    \u0275\u0275elementEnd()()()();
8144    \u0275\u0275elementStart(41, "div", 9)(42, "div", 81)(43, "nmfta-input-wrapper", 110)(44, "mat-select", 111);
8145    \u0275\u0275repeaterCreate(45, ManageCompanyUsersComponent_ng_template_28_For_46_Template, 2, 2, "mat-option", 35, \u0275\u0275repeaterTrackByIdentity);
8146    \u0275\u0275elementEnd()()()();
8147    \u0275\u0275elementStart(47, "div", 9)(48, "div", 101)(49, "nmfta-input-wrapper", 112)(50, "mat-select", 113);
8148    \u0275\u0275repeaterCreate(51, ManageCompanyUsersComponent_ng_template_28_For_52_Template, 2, 2, "mat-option", 35, _forTrack12);
8149    \u0275\u0275elementEnd()()();
8150    \u0275\u0275elementStart(53, "div", 98)(54, "nmfta-input-wrapper", 114)(55, "div", 91);
8151    \u0275\u0275element(56, "input", 115);
8152    \u0275\u0275elementEnd()()()();
8153    \u0275\u0275elementStart(57, "div", 9)(58, "div", 98)(59, "nmfta-input-wrapper", 108);
8154    \u0275\u0275pipe(60, "translate");
8155    \u0275\u0275pipe(61, "translate");
8156    \u0275\u0275elementStart(62, "div", 91);
8157    \u0275\u0275element(63, "input", 116);
8158    \u0275\u0275pipe(64, "translate");
8159    \u0275\u0275elementEnd()()();
8160    \u0275\u0275elementStart(65, "div", 101)(66, "nmfta-input-wrapper", 117)(67, "div", 91);
8161    \u0275\u0275element(68, "input", 118);
8162    \u0275\u0275elementEnd()()()();
8163    \u0275\u0275elementStart(69, "div", 9)(70, "div", 81)(71, "nmfta-input-wrapper", 108);
8164    \u0275\u0275pipe(72, "translate");
8165    \u0275\u0275pipe(73, "translate");
8166    \u0275\u0275elementStart(74, "div", 91);
8167    \u0275\u0275element(75, "input", 119);
8168    \u0275\u0275pipe(76, "translate");
8169    \u0275\u0275elementEnd()()()()();
8170    \u0275\u0275elementStart(77, "div", 120)(78, "nmfta-button", 121);
8171    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_28_Template_nmfta_button_buttonClick_78_listener() {
8172      \u0275\u0275restoreView(_r14);
8173      const ctx_r2 = \u0275\u0275nextContext();
8174      return \u0275\u0275resetView(ctx_r2.cancel());
8175    });
8176    \u0275\u0275text(79, " Cancel");
8177    \u0275\u0275elementEnd();
8178    \u0275\u0275elementStart(80, "nmfta-button", 96);
8179    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_28_Template_nmfta_button_buttonClick_80_listener() {
8180      \u0275\u0275restoreView(_r14);
8181      const ctx_r2 = \u0275\u0275nextContext();
8182      return \u0275\u0275resetView(ctx_r2.saveUserForm());
8183    });
8184    \u0275\u0275text(81, " Save ");
8185    \u0275\u0275elementEnd()()();
8186  }
8187  if (rf & 2) {
8188    const ctx_r2 = \u0275\u0275nextContext();
8189    \u0275\u0275advance();
8190    \u0275\u0275property("formGroup", ctx_r2.editUserForm);
8191    \u0275\u0275advance(3);
8192    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(5, 30, "PURCHASE.COMPANY_FORM.FIRST_NAME")));
8193    \u0275\u0275advance(3);
8194    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(8, 32, "PURCHASE.COMPANY_FORM.FIRST_NAME")));
8195    \u0275\u0275advance(3);
8196    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(11, 34, "PURCHASE.COMPANY_FORM.LAST_NAME")));
8197    \u0275\u0275advance(3);
8198    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(14, 36, "PURCHASE.COMPANY_FORM.LAST_NAME")));
8199    \u0275\u0275advance(22);
8200    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(36, 38, "COMPANY_SETTINGS.COMPANY_NAME")))("toolTip", \u0275\u0275interpolate(\u0275\u0275pipeBind1(37, 40, "COMPANY_SETTINGS.COMPANY_NAME")));
8201    \u0275\u0275advance(4);
8202    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(40, 42, "COMPANY_SETTINGS.COMPANY_NAME")));
8203    \u0275\u0275advance(6);
8204    \u0275\u0275repeater(ctx_r2.editUserRoles);
8205    \u0275\u0275advance(6);
8206    \u0275\u0275repeater(ctx_r2.countries$());
8207    \u0275\u0275advance(8);
8208    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(60, 44, "Generic_StateIntlLabel")))("toolTip", \u0275\u0275interpolate(\u0275\u0275pipeBind1(61, 46, "Generic_StateIntlLabel")));
8209    \u0275\u0275advance(4);
8210    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(64, 48, "Generic_StateIntlLabel")));
8211    \u0275\u0275advance(8);
8212    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(72, 50, "Generic_Address")))("toolTip", \u0275\u0275interpolate(\u0275\u0275pipeBind1(73, 52, "Generic_Address")));
8213    \u0275\u0275advance(4);
8214    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(76, 54, "Generic_Address")));
8215    \u0275\u0275advance(3);
8216    \u0275\u0275property("styleType", "outlined");
8217    \u0275\u0275advance(2);
8218    \u0275\u0275property("disabled", !ctx_r2.editUserForm.valid || ctx_r2.editUserForm.pristine)("isLoading", ctx_r2.saveUserStatus$() == "loading");
8219  }
8220}
8221function ManageCompanyUsersComponent_ng_template_30_Template(rf, ctx) {
8222  if (rf & 1) {
8223    \u0275\u0275elementStart(0, "div", 97)(1, "div", 9)(2, "div", 81)(3, "div", 122)(4, "p");
8224    \u0275\u0275text(5);
8225    \u0275\u0275pipe(6, "translate");
8226    \u0275\u0275elementEnd()()()()();
8227  }
8228  if (rf & 2) {
8229    \u0275\u0275advance(5);
8230    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(6, 1, "COMPANY_SETTINGS.RemoveLicenseInformation"), " ");
8231  }
8232}
8233function ManageCompanyUsersComponent_ng_template_32_Template(rf, ctx) {
8234  if (rf & 1) {
8235    \u0275\u0275elementStart(0, "div", 97)(1, "div", 9)(2, "div", 81)(3, "div", 122)(4, "p");
8236    \u0275\u0275text(5);
8237    \u0275\u0275pipe(6, "translate");
8238    \u0275\u0275elementEnd()()()()();
8239  }
8240  if (rf & 2) {
8241    \u0275\u0275advance(5);
8242    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(6, 1, "COMPANY_SETTINGS.DeleteUserInformation"), " ");
8243  }
8244}
8245function ManageCompanyUsersComponent_ng_template_34_Template(rf, ctx) {
8246  if (rf & 1) {
8247    const _r17 = \u0275\u0275getCurrentView();
8248    \u0275\u0275elementStart(0, "div", 123);
8249    \u0275\u0275element(1, "nmfta-data-panel", 124)(2, "nmfta-data-panel", 124)(3, "nmfta-data-panel", 124);
8250    \u0275\u0275elementEnd();
8251    \u0275\u0275elementStart(4, "div", 120)(5, "nmfta-button", 121);
8252    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_34_Template_nmfta_button_buttonClick_5_listener() {
8253      \u0275\u0275restoreView(_r17);
8254      const ctx_r2 = \u0275\u0275nextContext();
8255      return \u0275\u0275resetView(ctx_r2.closeDialog());
8256    });
8257    \u0275\u0275text(6, " Cancel");
8258    \u0275\u0275elementEnd();
8259    \u0275\u0275elementStart(7, "nmfta-button", 125);
8260    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_34_Template_nmfta_button_buttonClick_7_listener() {
8261      \u0275\u0275restoreView(_r17);
8262      const ctx_r2 = \u0275\u0275nextContext();
8263      return \u0275\u0275resetView(ctx_r2.buyMoreLicenses());
8264    });
8265    \u0275\u0275text(8, " Buy More Licenses ");
8266    \u0275\u0275elementEnd()();
8267  }
8268  if (rf & 2) {
8269    const ctx_r2 = \u0275\u0275nextContext();
8270    \u0275\u0275advance();
8271    \u0275\u0275property("propertyName", "Company Name")("propertyValue", ctx_r2.company$().companyName);
8272    \u0275\u0275advance();
8273    \u0275\u0275property("propertyName", "Total Company Licenses Purchased")("propertyValue", ctx_r2.companytotalLicense$().toString());
8274    \u0275\u0275advance();
8275    \u0275\u0275property("propertyName", "Company Licenses Assigned")("propertyValue", ctx_r2.companyLicensesAssigned$().toString());
8276    \u0275\u0275advance(2);
8277    \u0275\u0275property("styleType", "outlined");
8278    \u0275\u0275advance(2);
8279    \u0275\u0275property("disabled", ctx_r2.disableAddLicenseButton());
8280  }
8281}
8282function ManageCompanyUsersComponent_ng_template_36_Conditional_13_Template(rf, ctx) {
8283  if (rf & 1) {
8284    const _r19 = \u0275\u0275getCurrentView();
8285    \u0275\u0275elementStart(0, "nmfta-button", 128);
8286    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_36_Conditional_13_Template_nmfta_button_buttonClick_0_listener() {
8287      \u0275\u0275restoreView(_r19);
8288      const ctx_r2 = \u0275\u0275nextContext(2);
8289      return \u0275\u0275resetView(ctx_r2.assignUserLicense());
8290    });
8291    \u0275\u0275text(1, " Assign License ");
8292    \u0275\u0275elementEnd();
8293  }
8294  if (rf & 2) {
8295    const ctx_r2 = \u0275\u0275nextContext(2);
8296    \u0275\u0275property("styleType", "contained")("disabled", ctx_r2.disableAssignButton);
8297  }
8298}
8299function ManageCompanyUsersComponent_ng_template_36_Conditional_14_Template(rf, ctx) {
8300  if (rf & 1) {
8301    const _r20 = \u0275\u0275getCurrentView();
8302    \u0275\u0275elementStart(0, "nmfta-button", 129);
8303    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_36_Conditional_14_Template_nmfta_button_buttonClick_0_listener() {
8304      \u0275\u0275restoreView(_r20);
8305      const ctx_r2 = \u0275\u0275nextContext(2);
8306      return \u0275\u0275resetView(ctx_r2.unassignUserLicense());
8307    });
8308    \u0275\u0275text(1, " Unassign License ");
8309    \u0275\u0275elementEnd();
8310  }
8311  if (rf & 2) {
8312    const ctx_r2 = \u0275\u0275nextContext(2);
8313    \u0275\u0275property("styleType", "contained")("color", "error")("disabled", ctx_r2.disableAssignButton);
8314  }
8315}
8316function ManageCompanyUsersComponent_ng_template_36_Template(rf, ctx) {
8317  if (rf & 1) {
8318    const _r18 = \u0275\u0275getCurrentView();
8319    \u0275\u0275elementStart(0, "div", 123)(1, "p");
8320    \u0275\u0275text(2);
8321    \u0275\u0275pipe(3, "translate");
8322    \u0275\u0275elementEnd();
8323    \u0275\u0275elementStart(4, "nmfta-alert", 87);
8324    \u0275\u0275text(5);
8325    \u0275\u0275pipe(6, "translate");
8326    \u0275\u0275elementEnd();
8327    \u0275\u0275element(7, "nmfta-data-panel", 124)(8, "nmfta-data-panel", 124)(9, "nmfta-data-panel", 124);
8328    \u0275\u0275elementEnd();
8329    \u0275\u0275elementStart(10, "div", 120)(11, "nmfta-button", 121);
8330    \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_ng_template_36_Template_nmfta_button_buttonClick_11_listener() {
8331      \u0275\u0275restoreView(_r18);
8332      const ctx_r2 = \u0275\u0275nextContext();
8333      return \u0275\u0275resetView(ctx_r2.closeDialog());
8334    });
8335    \u0275\u0275text(12, " Cancel");
8336    \u0275\u0275elementEnd();
8337    \u0275\u0275conditionalCreate(13, ManageCompanyUsersComponent_ng_template_36_Conditional_13_Template, 2, 2, "nmfta-button", 126)(14, ManageCompanyUsersComponent_ng_template_36_Conditional_14_Template, 2, 3, "nmfta-button", 127);
8338    \u0275\u0275elementEnd();
8339  }
8340  if (rf & 2) {
8341    const ctx_r2 = \u0275\u0275nextContext();
8342    \u0275\u0275advance(2);
8343    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(3, 11, ctx_r2.licenseDescription));
8344    \u0275\u0275advance(2);
8345    \u0275\u0275property("color", ctx_r2.licenseAlertColor);
8346    \u0275\u0275advance();
8347    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 13, ctx_r2.licenseAlertMessage));
8348    \u0275\u0275advance(2);
8349    \u0275\u0275property("propertyName", "Company Name")("propertyValue", ctx_r2.company$().companyName);
8350    \u0275\u0275advance();
8351    \u0275\u0275property("propertyName", "Total Company Licenses Purchased")("propertyValue", ctx_r2.companytotalLicense$().toString());
8352    \u0275\u0275advance();
8353    \u0275\u0275property("propertyName", "Company Licenses Assigned")("propertyValue", ctx_r2.companyLicensesAssigned$(
8353).toString());
8354    \u0275\u0275advance(2);
8355    \u0275\u0275property("styleType", "outlined");
8356    \u0275\u0275advance(2);
8357    \u0275\u0275conditional(ctx_r2.isAssign ? 13 : 14);
8358  }
8359}
8360var ManageCompanyUsersComponent = class _ManageCompanyUsersComponent {
8361  createUserView;
8362  editUserView;
8363  deleteUserView;
8364  licenseInformationDialog;
8365  userLicenseAssignment;
8366  createUserDialog;
8367  dialog = inject(MatDialog);
8368  userStore = inject(UserStore);
8369  userService = inject(UserService);
8370  companyStore = inject(CompanyStore);
8371  purchaseStore = inject(PurchaseStore);
8372  router = inject(Router);
8373  dialogRef;
8374  showfilter = false;
8375  licenseAlertMessage;
8376  licenseAlertColor;
8377  disableAssignButton = false;
8378  licenseDescription;
8379  isAssign = false;
8380  showAlertCompanyAdmin = false;
8381  firstName;
8382  lastName;
8383  email;
8384  today = (/* @__PURE__ */ new Date()).toLocaleDateString();
8385  user;
8386  submissionStatus$ = this.companyStore.submissionStatus;
8387  saveUserStatus$ = this.companyStore.savingUserStatus;
8388  updateUserStatus$ = this.companyStore.updateUserStatus;
8389  companytotalLicense$ = this.companyStore.company.totalNumberOfLicenses;
8390  companyLicensesAssigned$ = this.companyStore.company.numberOfAssignedLicenses;
8391  company$ = this.companyStore.company;
8392  companyId$ = this.companyStore.company.companyId;
8393  isCustomerService$ = this.userStore.isCustomerService;
8394  isCompanyAdmin$ = this.userStore.isCompanyAdmin;
8395  companyAdmins$ = this.companyStore.company.companyAdmins;
8396  isAccountManager$ = this.userStore.isAccountManager;
8397  canEditNmftaRole$ = this.userStore.canEditNmftaUserRole;
8398  isAcademic$ = this.companyStore.isAcademic;
8399  dataSource = computed(() => {
8400    return new MatTableDataSource(this.company$().companyUsers);
8401  }, ...ngDevMode ? [{ debugName: "dataSource" }] : []);
8402  tableFilterRoles = Object.values(Role).filter((role) => role !== Role.NONE);
8403  editUserRoles = Object.values(Role).filter((role) => role !== Role.NONE);
8404  commonStore = inject(CommonStore);
8405  countries$ = this.commonStore.countries;
8406  nationalTierCaps$ = this.purchaseStore.nationalTierWebAppCappedPricing;
8407  overMembershipCap$ = computed(() => {
8408    const company = this.company$();
8409    if (company && company.membershipId) {
8410      const isBundle = !company.companySubscriptions.some((sub) => sub.productName?.includes("BFD")) && company.companySubscriptions.some((sub) => sub.productName?.includes("Bundle"));
8411      const nationalTierCap = isBundle ? this.nationalTierCaps$().bundle : this.nationalTierCaps$().webApp;
8412      return nationalTierCap - (company.totalSpent ?? 0) < 1;
8413    }
8414    return false;
8415  }, ...ngDevMode ? [{ debugName: "overMembershipCap$" }] : []);
8416  totalItems = 0;
8417  pageSize = 10;
8418  pageIndex = 0;
8419  selectedUserId;
8420  primaryUserDialogRef;
8421  addPrimaryUserDialogRef;
8422  createUserForm = new FormGroup({
8423    firstName: new FormControl("", { nonNullable: true, validators: [Validators.required] }),
8424    lastName: new FormControl("", { nonNullable: true, validators: [Validators.required] }),
8425    email: new FormControl("", {
8426      validators: [
8427        Validators.required,
8428        Validators.email,
8429        Validators.pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$")
8430      ]
8431    }),
8432    phone: new FormControl(""),
8433    title: new FormControl("")
8434  });
8435  filterUserForm = new FormGroup({
8436    firstName: new FormControl(""),
8437    lastName: new FormControl(""),
8438    email: new FormControl(""),
8439    role: new FormControl(""),
8440    companyname: new FormControl(""),
8441    licenseStatus: new FormControl("all")
8442  });
8443  companyAdminForm = new FormGroup({
8444    firstName: new FormControl("", Validators.required),
8445    lastName: new FormControl("", Validators.required),
8446    email: new FormControl("", [
8447      Validators.required,
8448      Validators.email,
8449      Validators.pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$")
8450    ], [emailExistsValidator(this.userService)]),
8451    phone: new FormControl(""),
8452    title: new FormControl("")
8453  });
8454  companyUsersFetched = false;
8455  editUserForm = new FormGroup({
8456    firstName: new FormControl("", { nonNullable: true, validators: [Validators.required] }),
8457    lastName: new FormControl("", { nonNullable: true, validators: [Validators.required] }),
8458    company: new FormControl("", { nonNullable: true, validators: [Validators.required] }),
8459    department: new FormControl(""),
8460    title: new FormControl(""),
8461    address: new FormControl(""),
8462    email: new FormControl("", { nonNullable: true, validators: [Validators.required] }),
8463    phone: new FormControl(""),
8464    state: new FormControl(""),
8465    postalCode: new FormControl(""),
8466    city: new FormControl(""),
8467    country: new FormControl(""),
8468    role: new FormControl("", { nonNullable: true, validators: [Validators.required] })
8469  });
8470  columns = {
8471    ids: ["firstName", "lastName", "email", "role", "isLicensed", "actions"],
8472    display: [
8473      {
8474        id: "firstName",
8475        value: "First Name",
8476        width: "auto"
8477      },
8478      {
8479        id: "lastName",
8480        value: "Last Name",
8481        width: "auto"
8482      },
8483      {
8484        id: "email",
8485        value: "Email",
8486        width: "30%"
8487      },
8488      {
8489        id: "role",
8490        value: "Role",
8491        width: "auto"
8492      },
8493      {
8494        id: "isLicensed",
8495        value: "License Status",
8496        width: "100px"
8497      },
8498      {
8499        id: "actions",
8500        value: "View",
8501        width: "100px"
8502      }
8503    ]
8504  };
8505  get filterAction() {
8506    return [
8507      {
8508        id: "filter-manage-company-users",
8509        styleType: "light",
8510        rightIcon: this.showfilter ? "filter_list_off" : "filter_list",
8511        label: this.showfilter ? "SHARED.HIDE_FILTERS" : "SHARED.SHOW_FILTERS",
8512        onClick: () => {
8513          this.showfilter = !this.showfilter;
8514        }
8515      }
8516    ];
8517  }
8518  constructor() {
8519    this.commonStore.getCountries();
8520    effect(() => {
8521      if (this.companyStore.fetched() && !this.companyUsersFetched) {
8522        this.getUsers();
8523        this.companyUsersFetched = true;
8524        this.totalItems = this.company$().totalNumberOfUsers ?? 0;
8525      }
8526    });
8527  }
8528  ngOnInit() {
8529    if (this.isCustomerService$()) {
8530      this.tableFilterRoles = Object.values(Role).filter((role) => role !== Role.NONE);
8531    } else {
8532      this.tableFilterRoles = [Role.ACCOUNT_MANAGER, Role.COMPANY_ADMIN, Role.CUSTOMER];
8533    }
8534  }
8535  getUsers() {
8536    this.companyStore.clearCompanyUsers();
8537    const searchFilter = this.buildSearchFilter();
8538    this.companyStore.userSearch(searchFilter);
8539  }
8540  buildSearchFilter(pageIndex, pageSize) {
8541    return {
8542      companyId: this.company$().companyId,
8543      firstName: this.filterUserForm.get("firstName")?.value ?? "",
8544      lastName: this.filterUserForm.get("lastName")?.value ?? "",
8545      email: this.filterUserForm.get("email")?.value ?? "",
8546      role: this.filterUserForm.get("role")?.value ?? "",
8547      companyName: this.filterUserForm.get("companyName")?.value ?? "",
8548      licenseStatus: this.filterUserForm.get("licenseStatus")?.value ?? "all",
8549      tableSearch: true,
8550      pageNumber: pageIndex ? pageIndex + 1 : void 0,
8551      pageSize,
8552      userSearchType: UserSearchType.COMPANY
8553    };
8554  }
8555  showfilters() {
8556    this.showfilter = !this.showfilter;
8557  }
8558  saveUser() {
8559    this.createUserForm.reset();
8560    this.dialogRef = this.dialog.open(DialogComponent, {
8561      height: "auto",
8562      width: "800px",
8563      data: {
8564        title: "Create User",
8565        icon: "edit",
8566        description: "",
8567        content: this.createUserView,
8568        dataForComponent: this.createUserForm.value
8569      }
8570    });
8571  }
8572  unassignUserLicense() {
8573    const updatedUser = __spreadProps(__spreadValues({}, this.user), { isLicensed: false });
8574    this.companyStore.assignOrUnassignLicense(updatedUser).then((resp) => {
8575      if (resp.success) {
8576        this.dialogRef.close();
8577      }
8578    });
8579  }
8580  assignUserLicense() {
8581    const updatedUser = __spreadProps(__spreadValues({}, this.user), { isLicensed: true });
8582    this.companyStore.assignOrUnassignLicense(updatedUser).then((resp) => {
8583      if (resp.success) {
8584        this.dialogRef.close();
8585      }
8586    });
8587  }
8588  licenseAssignment(user) {
8589    const availableLicense = this.companytotalLicense$() > this.companyLicensesAssigned$();
8590    this.isAssign = !user.isLicensed;
8591    this.user = user;
8592    if (user.role && restrictedExternalRoles.includes(user.role)) {
8593      this.licenseAlertMessage = "COMPANY_SETTINGS.Manage_License_Restricted_External_Roles_Unable_To_Manage";
8594      this.licenseAlertColor = "info";
8595      this.licenseDescription = user.role === Role.COMPANY_ADMIN ? "COMPANY_SETTINGS.Manage_License_User_Has_License" : "COMPANY_SETTINGS.Manage_License_Unable_To_Assign_License_To_AccountManager";
8596      this.disableAssignButton = true;
8597    } else if (user.role && restrictedInternalRoles.includes(user.role)) {
8598      this.licenseAlertMessage = "COMPANY_SETTINGS.Manage_License_Update_Role";
8599      this.licenseAlertColor = "info";
8600      this.licenseDescription = "COMPANY_SETTINGS.Manage_License_Unable_To_Assign_License_To_Internal_Admins";
8601      this.disableAssignButton = true;
8602    } else if (user.isLicensed) {
8603      this.disableAssignButton = false;
8604      this.licenseAlertMessage = "COMPANY_SETTINGS.Manage_License_Unassign";
8605      this.licenseAlertColor = "info";
8606      this.licenseDescription = "COMPANY_SETTINGS.Manage_License_Assigned_License";
8607    } else {
8608      this.licenseDescription = "COMPANY_SETTINGS.Manage_License_User_Does_Not_Have_License_Assigned";
8609      if (availableLicense) {
8610        this.disableAssignButton = false;
8611        this.licenseAlertMessage = "COMPANY_SETTINGS.Manage_License_License_Available";
8612        this.licenseAlertColor = "success";
8613      } else {
8614        this.disableAssignButton = true;
8615        this.licenseAlertMessage = "COMPANY_SETTINGS.Manage_License_No_License_Available";
8616        this.licenseAlertColor = "error";
8617      }
8618    }
8619    this.dialogRef = this.dialog.open(DialogComponent, {
8620      height: "auto",
8621      width: "42rem",
8622      maxWidth: "42rem",
8623      maxHeight: "45.625rem",
8624      data: {
8625        title: "License Assignment",
8626        icon: "workspace_premium",
8627        content: this.userLicenseAssignment,
8628        dataForComponent: null
8629      }
8630    });
8631  }
8632  manageResources(user) {
8633    this.companyStore.getUserInfo(user.userId);
8634    this.dialogRef = this.dialog.open(DialogComponent, {
8635      height: "auto",
8636      width: "42rem",
8637      maxWidth: "42rem",
8638      maxHeight: "45.625rem",
8639      data: {
8640        title: "Manage Resources",
8641        icon: "category",
8642        content: ManageResourcesModalContainerComponent
8643      }
8644    });
8645  }
8646  resetUserPassword(user) {
8647    this.dialogRef = this.dialog.open(DialogComponent, {
8648      width: "530px",
8649      maxHeight: "135px",
8650      data: {
8651        title: "Generic_Reset_Password",
8652        icon: "key_outline",
8653        content: ResetPasswordModalContainerComponent,
8654        dataForComponent: {
8655          companyUser: user,
8656          namespace: "COMPANY_SETTINGS"
8657        }
8658      }
8659    });
8660    this.openDialog();
8661  }
8662  openDialog() {
8663    this.dialogRef.afterOpened().subscribe(() => {
8664      const instance = this.dialogRef.componentInstance;
8665      const contentInstance = instance.contentComponentRef.instance;
8666      if (contentInstance instanceof ResetPasswordModalContainerComponent) {
8667        contentInstance.closeModal.subscribe(() => {
8668          this.dialogRef.close();
8669        });
8670      }
8671    });
8672  }
8673  deleteUser(user) {
8674    const dialogRef = this.dialog.open(DialogComponent, {
8675      height: "200px",
8676      width: "400px",
8677      data: {
8678        title: "COMPANY_SETTINGS.DeleteUser",
8679        icon: "delete",
8680        content: this.deleteUserView,
8681        actions: [
8682          {
8683            id: "cancel",
8684            label: "Generic_Cancel",
8685            styleType: "contained",
8686            color: "light",
8687            onClick: () => dialogRef.close(null)
8688          },
8689          {
8690            id: "remove",
8691            label: "Generic_Delete",
8692            styleType: "contained",
8693            color: "error",
8694            onClick: () => __async(this, null, function* () {
8695              this.companyStore.deleteUser(user);
8696              dialogRef.close();
8697            })
8698          }
8699        ]
8700      }
8701    });
8702  }
8703  editUser(user) {
8704    this.editUserRoles = Object.values(Role).filter((role) => role !== Role.NONE);
8705    this.editUserForm.get("company")?.disable();
8706    this.editUserForm.get("email")?.disable();
8707    this.editUserForm.get("role")?.enable();
8708    this.companyStore.getUserInfo(user.userId).then((resp) => {
8709      this.selectedUserId = user.userId;
8710      this.editUserForm.patchValue({
8711        firstName: resp.data?.firstName,
8712        lastName: resp.data?.lastName,
8713        company: resp.data?.companyName,
8714        department: resp.data?.department,
8715        title: resp.data?.title,
8716        address: resp.data?.address,
8717        state: resp.data?.state,
8718        postalCode: resp.data?.postalCode,
8719        city: resp.data?.city,
8720        country: resp.data?.country,
8721        email: resp.data?.email,
8722        phone: resp.data?.phone,
8723        role: resp.data?.role
8724      });
8725      this.user = resp.data;
8726    });
8727    if (this.userStore.isCompanyAdmin() || this.userStore.isAccountManager() || !this.userStore.canEditNmftaUserRole() && user.isNmfta) {
8728      this.editUserForm.get("role")?.disable();
8729    } else if (this.isCustomerService$() && !user.isNmfta) {
8730      this.editUserRoles = [Role.CUSTOMER, Role.ACCOUNT_MANAGER, Role.COMPANY_ADMIN];
8731    }
8732    this.dialogRef = this.dialog.open(DialogComponent, {
8733      height: "auto",
8734      width: "800px",
8735      data: {
8736        title: "Generic_EditUser",
8737        icon: "edit",
8738        description: "Generic_EditUserInformation",
8739        content: this.editUserView,
8740        dataForComponent: this.editUserForm.value
8741      }
8742    });
8743  }
8744  cancel() {
8745    this.dialogRef.close();
8746  }
8747  saveUserForm() {
8748    const request = {
8749      companyUser: {
8750        companyId: this.company$().companyId,
8751        email: this.editUserForm.get("email")?.value,
8752        userId: this.selectedUserId,
8753        firstName: this.editUserForm.get("firstName")?.value,
8754        lastName: this.editUserForm.get("lastName")?.value,
8755        phone: this.editUserForm.get("phone")?.value,
8756        title: this.editUserForm.get("title")?.value,
8757        role: this.editUserForm.get("role")?.value,
8758        department: this.editUserForm.get("department")?.value,
8759        country: this.editUserForm.get("country")?.value,
8760        city: this.editUserForm.get("city")?.value,
8761        state: this.editUserForm.get("state")?.value,
8762        postalCode: this.editUserForm.get("postalCode")?.value,
8763        address: this.editUserForm.get("address")?.value
8764      },
8765      action: UserAction.UPDATE
8766    };
8767    if (this.primaryCompanyAdminCheck(request)) {
8768      this.setPrimaryUserDialog(request.companyUser);
8769    } else {
8770      this.companyStore.saveCompanyUser(request).then((resp) => {
8771        if (resp.success) {
8772          this.dialogRef.close();
8773        }
8774      });
8775    }
8776  }
8777  onPageChange(event) {
8778    const searchFilter = {
8779      companyId: this.company$().companyId,
8780      firstName: this.filterUserForm.get("firstName")?.value,
8781      lastName: this.filterUserForm.get("lastName")?.value,
8782      email: this.filterUserForm.get("email")?.value,
8783      role: this.filterUserForm.get("role")?.value,
8784      companyName: this.filterUserForm.get("companyName")?.value,
8785      tableSearch: true,
8786      pageNumber: event.pageIndex + 1,
8787      pageSize: event.pageSize,
8788      userSearchType: UserSearchType.COMPANY,
8789      licenseStatus: this.filterUserForm.get("licenseStatus")?.value
8790    };
8791    this.companyStore.updatePageSize(searchFilter.pageSize);
8792    this.companyStore.userSearch(searchFilter);
8793  }
8794  sendActivationEmail() {
8795    const request = {
8796      companyUser: {
8797        companyId: this.companyId$(),
8798        email: this.createUserForm.get("email")?.value,
8799        userId: null,
8800        firstName: this.createUserForm.get("firstName")?.value,
8801        lastName: this.createUserForm.get("lastName")?.value,
8802        phone: this.createUserForm.get("phone")?.value,
8803        title: this.createUserForm.get("title")?.value,
8804        role: Role.CUSTOMER
8805      },
8806      action: UserAction.CREATE
8807    };
8808    this.companyStore.saveCompanyUser(request).then((resp) => {
8809      if (resp.success) {
8810        this.dialogRef.close();
8811        this.createUserForm.reset({
8812          firstName: "",
8813          lastName: "",
8814          email: ""
8815        });
8816      }
8817    });
8818  }
8819  resetFilter() {
8820    this.filterUserForm.reset({
8821      firstName: "",
8822      lastName: "",
8823      email: "",
8824      companyName: "",
8825      role: "",
8826      licenseStatus: "all"
8827    });
8828    this.getUsers();
8829  }
8830  licenseInformation() {
8831    this.dialogRef = this.dialog.open(DialogComponent, {
8832      height: "auto",
8833      width: "42rem",
8834      maxWidth: "42rem",
8835      maxHeight: "45.625rem",
8836      data: {
8837        title: "License Assignment",
8838        icon: "workspace_premium",
8839        content: this.licenseInformationDialog,
8840        dataForComponent: null
8841      }
8842    });
8843  }
8844  buyMoreLicenses() {
8845    return __async(this, null, function* () {
8846      this.closeDialog();
8847      yield firstValueFrom(this.dialogRef.afterClosed());
8848      yield this.router.navigate(["/profile", "company-settings", "manage-subscriptions", "buy-more-licenses"]);
8849    });
8850  }
8851  closeDialog() {
8852    this.dialogRef.close();
8853  }
8854  goToUserActivityReport() {
8855    return __async(this, null, function* () {
8856      const companyId = this.router.routerState.snapshot.root.queryParams["companyId"];
8857      const queryParams = companyId ? { companyId } : void 0;
8858      yield this.router.navigate(["/profile", "company-settings", "user-activity-report"], { queryParams });
8859    });
8860  }
8861  handleUserAdminAction(event) {
8862    const dialogData = this.addPrimaryUserDialogRef.componentInstance.data;
8863    this.companyStore.addAndRemovePrimaryCompanyAdmins({
8864      removedCompanyAdmin: dialogData.currentRemovedCompanyAdmin,
8865      newPrimaryCompanyAdmin: event.user,
8866      addNewCompanyAdmin: true,
8867      newRole: dialogData.newRole,
8868      fromManageCompanyUsers: true
8869    }).then(() => {
8870      this.addPrimaryUserDialogRef.close();
8871      this.dialogRef.close();
8872    });
8873  }
8874  setPrimaryUserDialog(user) {
8875    const companyAdmins = this.company$().companyAdmins.filter((admin) => admin.email !== user.email);
8876    if (companyAdmins.length === 1) {
8877      this.companyStore.addAndRemovePrimaryCompanyAdmins({
8878        removedCompanyAdmin: user,
8879        newPrimaryCompanyAdmin: companyAdmins[0],
8880        newRole: user.role,
8881        fromManageCompanyUsers: true
8882      }).then(() => {
8883        this.dialogRef.close();
8884      });
8885    } else if (companyAdmins.length === 0) {
8886      this.addPrimaryUserDialogRef = this.dialog.open(DialogComponent, {
8887        height: "900px",
8888        maxHeight: "900px",
8889        width: "42rem",
8890        maxWidth: "42rem",
8891        data: {
8892          title: "COMPANY_SETTINGS.Add_Company_Admin",
8893          icon: "group_add",
8894          description: "",
8895          content: this.createUserDialog,
8896          currentRemovedCompanyAdmin: user,
8897          newRole: user.role
8898        }
8899      });
8900    } else {
8901      this.primaryUserDialogRef = this.dialog.open(DialogComponent, {
8902        width: "650px",
8903        height: "600px",
8904        data: {
8905          title: "SELECT_USER.SELECT_A_USER",
8906          icon: "person",
8907          content: UserSelectorModalContainerComponent,
8908          dataForComponent: {
8909            alertMessage: "SELECT_USER.SELECT_A_NEW_PRIMARY_COMPANY_ADMIN_MESSAGE",
8910            companyAdmins,
8911            multiSelect: false
8912          }
8913        }
8914      });
8915      this.openSetPrimaryUserDialog(user);
8916    }
8917  }
8918  primaryCompanyAdminCheck(user) {
8919    return this.user.role !== user.companyUser.role && this.user.role === Role.COMPANY_ADMIN && this.user.isPrimaryUser == true;
8920  }
8921  createNewCompanyAdmin() {
8922    if (this.companyAdminForm.invalid)
8923      return;
8924    const dialogData = this.addPrimaryUserDialogRef.componentInstance.data;
8925    const request = {
8926      companyUser: {
8927        companyId: this.company$().companyId,
8928        email: this.companyAdminForm.get("email")?.value,
8929        userId: null,
8930        firstName: this.companyAdminForm.get("firstName")?.value,
8931        lastName: this.companyAdminForm.get("lastName")?.value,
8932        phone: this.companyAdminForm.get("phone")?.value,
8933        title: this.companyAdminForm.get("title")?.value,
8934        role: Role.COMPANY_ADMIN,
8935        isPrimaryUser: true
8936      },
8937      action: UserAction.CREATE
8938    };
8939    this.companyStore.addAndRemovePrimaryCompanyAdmins({
8940      removedCompanyAdmin: dialogData.currentRemovedCompanyAdmin,
8941      newCreatedUser: request,
8942      fromManageCompanyUsers: true,
8943      newRole: dialogData.newRole
8944    }).then((resp) => {
8945      if (resp.success) {
8946        this.firstName = this.companyAdminForm.get("firstName").value;
8947        this.lastName = this.companyAdminForm.get("lastName").value;
8948        this.email = this.companyAdminForm.get("email").value;
8949        this.showAlertCompanyAdmin = true;
8950        setTimeout(() => {
8951          this.showAlertCompanyAdmin = false;
8952          this.addPrimaryUserDialogRef?.close();
8953          this.dialogRef.close();
8954          this.companyAdminForm.reset();
8955        }, 3e3);
8956      }
8957    });
8958  }
8959  disableAddLicenseButton() {
8960    return this.isAcademic$() && !this.isCustomerService$() || this.overMembershipCap$();
8961  }
8962  openSetPrimaryUserDialog(formData) {
8963    this.primaryUserDialogRef.afterOpened().subscribe(() => {
8964      const instance = this.primaryUserDialogRef.componentInstance;
8965      const contentInstance = instance.contentComponentRef.instance;
8966      if (contentInstance instanceof UserSelectorModalContainerComponent) {
8967        contentInstance.closeModal.subscribe(() => {
8968          this.primaryUserDialogRef.close();
8969        });
8970        contentInstance.selectedCompanyUsers.subscribe((selectedUsers) => {
8971          if (selectedUsers.length > 0) {
8972            const selectedUser = this.company$().companyAdmins.find((user) => user.email === selectedUsers[0].email);
8973            this.companyStore.addAndRemovePrimaryCompanyAdmins({
8974              removedCompanyAdmin: formData,
8975              newPrimaryCompanyAdmin: selectedUser,
8976              fromManageCompanyUsers: true,
8977              newRole: formData.role
8978            }).then(() => {
8979              this.primaryUserDialogRef.close();
8980              this.dialogRef.close();
8981            });
8982          }
8983        });
8984      }
8985    });
8986  }
8987  static \u0275fac = function ManageCompanyUsersComponent_Factory(__ngFactoryType__) {
8988    return new (__ngFactoryType__ || _ManageCompanyUsersComponent)();
8989  };
8990  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ManageCompanyUsersComponent, selectors: [["nmfta-manage-users"]], viewQuery: function ManageCompanyUsersComponent_Query(rf, ctx) {
8991    if (rf & 1) {
8992      \u0275\u0275viewQuery(_c06, 7);
8993      \u0275\u0275viewQuery(_c19, 7);
8994      \u0275\u0275viewQuery(_c23, 7);
8995      \u0275\u0275viewQuery(_c33, 7);
8996      \u0275\u0275viewQuery(_c43, 7);
8997      \u0275\u0275viewQuery(_c53, 7);
8998    }
8999    if (rf & 2) {
9000      let _t;
9001      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.createUserView = _t.first);
9002      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.editUserView = _t.first);
9003      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.deleteUserView = _t.first);
9004      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.licenseInformationDialog = _t.first);
9005      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.userLicenseAssignment = _t.first);
9006      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.createUserDialog = _t.first);
9007    }
9008  }, decls: 38, vars: 22, consts: [["paginator", ""], ["createUserDialog", ""], ["CreateUserView", ""], ["editUserView", ""], ["removeLicenseView", ""], ["deleteUserView", ""], ["licenseInformationDialog", ""], ["userLicenseAssignment", ""], ["managUserActions", "matMenu"], [1, "row"], [1, "col-auto", "pb-4"], [3, "title"], [1, "col-12", "col-md", "pb-4"], [1, "text-end", "d-flex", "gap-2", "justify-content-end"], ["styleType", "outlined", "leftIcon", "group"], ["styleType", "outlined", "leftIcon", "workspace_premium", 3, "buttonClick"], ["styleType", "text", "rightIcon", "group_add", 3, "buttonClick"], [1, "my-3"], [3, "title", "titleIcon", "headerActions"], ["header-content", ""], [3, "ngSwitch"], [1, "edit-form", 3, "formGroup"], [4, "ngSwitchCase"], [1, "w-100", "h-100", "d-grid"], [1, "table-wrapper"], [1, "text-center", "py-4"], ["footer-content", ""], ["showFirstLastButtons", "", 3, "page", "pageSizeOptions", "length", "pageSize", "pageIndex"], ["styleType", "outlined", "leftIcon", "group", 3, "buttonClick"], [1, "col-12", "col-md-6", "col
9008-xl-4"], [3, "label"], ["matInput", "", "type", "text", "name", "firstName", "formControlName", "firstName", 3, "placeholder"], ["matInput", "", "type", "text", "name", "lastName", "formControlName", "lastName", 3, "placeholder"], ["matInput", "", "type", "email", "name", "email", "formControlName", "email", 3, "placeholder"], ["formControlName", "role", 3, "placeholder"], [3, "value"], [1, "col-12", "col-md", "pb-3", "pb-md-0"], ["aria-label", "License Status", "formControlName", "licenseStatus"], ["value", "all"], ["value", "assigned"], ["value", "unassigned"], [1, "col-12", "col-md-auto", "d-flex", "justify-content-end", "gap-2", "align-items-end"], ["styleType", "outlined", "rightIcon", "close", 3, "buttonClick"], ["styleType", "contained", "type", "submit", 3, "buttonClick"], [3, "theme"], ["mat-table", "", "matSort", "", 3, "dataSource"], [3, "width"], [3, "matColumnDef"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 4, "matRowDef", "matRowDefColumns"], ["mat-header-cell", "", "mat-sort-header", "", 4, "matHeaderCellDef"], ["mat-cell", "", 3, "class", 4, "matCellDef"], ["mat-header-cell", "", "mat-sort-header", ""], ["mat-cell", ""], [3, "iconName", "blackText", "matMenuTriggerFor"], ["mat-menu-item", "", 3, "click"], ["mat-menu-item", ""], ["name", "check_circle", "color", "accent"], ["name", "cancel", "color", "error"], ["mat-header-row", ""], ["mat-row", ""], [1, "dialog-container"], ["animationDuration", "0ms"], [1, "company-admin-view"], [1, "company-admin-view-header"], [1, "company-admin-view-body"], [3, "userAction", "companyId", "ExternalUsersList", "ExternalUsersLoadingStatus", "isAdmin", "forPrimaryAdminAdd"], [1, "company-admin-invitation-view"], [1, "company-admin-invitation-view-header"], [1, "company-admin-invitation-view-body"], [1, "col-12", "col-sm-6"], ["label", "First Name"], ["matInput", "", "id", "firstName", "type", "text", "name", "firstName", "formControlName", "firstName"], ["label", "Last Name"], ["matInput", "", "id", "lastName", "type", "text", "name", "lastName", "formControlName", "lastName"], [1, "col-12", "col-sm-7"], ["label", "Email"], ["matInput", "", "id", "email", "type", "text", "inputmode", "email", "name", "email", "formControlName", "email"], [1, "col-12", "col-sm-5"], ["label", "Phone"], ["matInput", "", "id", "phone", "type", "text", "name", "phone", "formControlName", "phone"], [1, "col-12"], ["label", "Title"], ["matInput", "", "id", "title", "type", "text", "name", "title", "formControlName", "title"], [1, "pt-3"], [1, "company-admin-invitation-view-footer"], ["rightIcon", "group_add", "styleType", "contained", 3, "buttonClick", "disabled", "isLoading"], [3, "color"], [1, "edit-form", "p-4", 3, "formGroup"], [1, "col-6"], ["toolTip", "First Name", 3, "label"], [1, "input-container"], ["toolTip", "Last Name of user", 3, "label"], ["toolTip", "Email of the user", 3, "label"], ["matInput", "", "type", "text", "inputmode", "email", "name", "email", "formControlName", "email", 3, "placeholder"], [1, "footer", "p-4"], ["styleType", "contained", "type", "submit", 3, "buttonClick", "disabled", "isLoading"], [1, "py-2", "px-4"], [1, "col-8"], ["label", "Email", "toolTip", "User Email"], ["matInput", "", "type", "text", "name", "email", "formControlName", "email", "placeholder", "Email"], [1, "col-4"], ["label", "Phone", "toolTip", "Phone Number"], ["matInput", "", "type", "text", "name", "phone", "formControlName", "phone", "placeholder", "phone"], ["label", "Department", "toolTip", "User Department Name"], ["matInput", "", "type", "text", "name", "department", "formControlName", "department", "placeholder", "Department"], ["label", "Title", "toolTip", "User Title"], ["matInput", "", "type", "text", "name", "title", "formControlName", "title", "placeholder", "title"], [3, "label", "toolTip"], ["matInput", "", "type", "text", "name", "company", "formControlName", "company", 3, "placeholder"], ["label", "Select User Role"], ["placeholder", "Select User Role", "formControlName", "role"], ["label", "Country", "toolTip", "Country"], ["name", "country", "formControlName", "country", "placeholder", "Select a Country "], ["label", "City", "toolTip", "User City"], ["matInput", "", "type", "text", "n
9008ame", "city", "formControlName", "city", "placeholder", "city"], ["matInput", "", "type", "text", "name", "state", "formControlName", "state", 3, "placeholder"], ["label", "Postal Code", "toolTip", "Postal Code"], ["matInput", "", "type", "text", "name", "postalCode", "formControlName", "postalCode", "placeholder", "Postal Code"], ["matInput", "", "type", "text", "name", "address", "formControlName", "address", 3, "placeholder"], [1, "edit-user-footer", "gap-3"], ["type", "text", 3, "buttonClick", "styleType"], [1, "d-flex", "justify-content-center", "align-items-center"], [1, "p-4", "assign-license"], [3, "propertyName", "propertyValue"], ["styleType", "contained", 3, "buttonClick", "disabled"], ["type", "text", 3, "styleType", "disabled"], ["type", "text", 3, "styleType", "color", "disabled"], ["type", "text", 3, "buttonClick", "styleType", "disabled"], ["type", "text", 3, "buttonClick", "styleType", "color", "disabled"]], template: function ManageCompanyUsersComponent_Template(rf, ctx) {
9009    if (rf & 1) {
9010      const _r1 = \u0275\u0275getCurrentView();
9011      \u0275\u0275elementStart(0, "div", 9)(1, "div", 10);
9012      \u0275\u0275element(2, "nmfta-page-title", 11);
9013      \u0275\u0275pipe(3, "translate");
9014      \u0275\u0275elementEnd();
9015      \u0275\u0275elementStart(4, "div", 12)(5, "div", 13);
9016      \u0275\u0275conditionalCreate(6, ManageCompanyUsersComponent_Conditional_6_Template, 2, 0, "nmfta-button", 14);
9017      \u0275\u0275elementStart(7, "nmfta-button", 15);
9018      \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_Template_nmfta_button_buttonClick_7_listener() {
9019        \u0275\u0275restoreView(_r1);
9020        return \u0275\u0275resetView(ctx.licenseInformation());
9021      });
9022      \u0275\u0275text(8);
9023      \u0275\u0275elementEnd();
9024      \u0275\u0275elementStart(9, "nmfta-button", 16);
9025      \u0275\u0275listener("buttonClick", function ManageCompanyUsersComponent_Template_nmfta_button_buttonClick_9_listener() {
9026        \u0275\u0275restoreView(_r1);
9027        return \u0275\u0275resetView(ctx.saveUser());
9028      });
9029      \u0275\u0275text(10);
9030      \u0275\u0275pipe(11, "translate");
9031      \u0275\u0275elementEnd()()();
9032      \u0275\u0275elementStart(12, "div", 17)(13, "nmfta-card", 18)(14, "div", 19)(15, "div", 20)(16, "form", 21);
9033      \u0275\u0275template(17, ManageCompanyUsersComponent_div_17_Template, 41, 36, "div", 22);
9034      \u0275\u0275elementEnd()()();
9035      \u0275\u0275conditionalCreate(18, ManageCompanyUsersComponent_Conditional_18_Template, 2, 2, "div", 23)(19, ManageCompanyUsersComponent_Conditional_19_Template, 9, 3, "div", 24);
9036      \u0275\u0275conditionalCreate(20, ManageCompanyUsersComponent_Conditional_20_Template, 3, 3, "div", 25);
9037      \u0275\u0275elementStart(21, "div", 26)(22, "mat-paginator", 27, 0);
9038      \u0275\u0275listener("page", function ManageCompanyUsersComponent_Template_mat_paginator_page_22_listener($event) {
9039        \u0275\u0275restoreView(_r1);
9040        return \u0275\u0275resetView(ctx.onPageChange($event));
9041      });
9042      \u0275\u0275elementEnd()()()()();
9043      \u0275\u0275template(24, ManageCompanyUsersComponent_ng_template_24_Template, 43, 26, "ng-template", null, 1, \u0275\u0275templateRefExtractor)(26, ManageCompanyUsersComponent_ng_template_26_Template, 24, 27, "ng-template", null, 2, \u0275\u0275templateRefExtractor)(28, ManageCompanyUsersComponent_ng_template_28_Template, 82, 56, "ng-template", null, 3, \u0275\u0275templateRefExtractor)(30, ManageCompanyUsersComponent_ng_template_30_Template, 7, 3, "ng-template", null, 4, \u0275\u0275templateRefExtractor)(32, ManageCompanyUsersComponent_ng_template_32_Template, 7, 3, "ng-template", null, 5, \u0275\u0275templateRefExtractor)(34, ManageCompanyUsersComponent_ng_template_34_Template, 9, 8, "ng-template", null, 6, \u0275\u0275templateRefExtractor)(36, ManageCompanyUsersComponent_ng_template_36_Template, 15, 15, "ng-template", null, 7, \u0275\u0275templateRefExtractor);
9044    }
9045    if (rf & 2) {
9046      \u0275\u0275advance(2);
9047      \u0275\u0275property("title", \u0275\u0275pipeBind1(3, 17, "Generic_ManageCompanyUsers"));
9048      \u0275\u0275advance(4);
9049      \u0275\u0275conditional(ctx.isCustomerService$() || ctx.isCompanyAdmin$() || ctx.isAccountManager$() ? 6 : -1);
9050      \u0275\u0275advance(2);
9051      \u0275\u0275textInterpolate2(" Company Licenses: ", ctx.companyLicensesAssigned$(
9051).toString(), " / ", ctx.companytotalLicense$().toString(), " ");
9052      \u0275\u0275advance(2);
9053      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(11, 19, "Generic_CreateUser"), " ");
9054      \u0275\u0275advance(3);
9055      \u0275\u0275property("title", ctx.company$().companyName + " Users")("titleIcon", "group")("headerActions", ctx.filterAction);
9056      \u0275\u0275advance(2);
9057      \u0275\u0275property("ngSwitch", ctx.showfilter);
9058      \u0275\u0275advance();
9059      \u0275\u0275property("formGroup", ctx.filterUserForm);
9060      \u0275\u0275advance();
9061      \u0275\u0275property("ngSwitchCase", true);
9062      \u0275\u0275advance();
9063      \u0275\u0275conditional(ctx.submissionStatus$() === "loading" ? 18 : 19);
9064      \u0275\u0275advance(2);
9065      \u0275\u0275conditional(ctx.submissionStatus$() !== "loading" && ctx.dataSource().data.length === 0 ? 20 : -1);
9066      \u0275\u0275advance(2);
9067      \u0275\u0275property("pageSizeOptions", \u0275\u0275pureFunction0(21, _c63))("length", ctx.company$().totalNumberOfUsers ?? 0)("pageSize", ctx.pageSize)("pageIndex", ctx.pageIndex);
9068    }
9069  }, dependencies: [
9070    PageTitleComponent,
9071    ButtonComponent,
9072    MatIconModule,
9073    MatIcon,
9074    InputWrapperComponent,
9075    ReactiveFormsModule,
9076    \u0275NgNoValidate,
9077    DefaultValueAccessor,
9078    NgControlStatus,
9079    NgControlStatusGroup,
9080    FormGroupDirective,
9081    FormControlName,
9082    CardComponent,
9083    MatTable,
9084    MatColumnDef,
9085    MatHeaderCell,
9086    MatCell,
9087    MatHeaderCellDef,
9088    MatCellDef,
9089    MatHeaderRow,
9090    MatHeaderRowDef,
9091    MatRow,
9092    MatRowDef,
9093    CommonModule,
9094    NgSwitch,
9095    NgSwitchCase,
9096    MatPaginatorModule,
9097    MatPaginator,
9098    MatMenuModule,
9099    MatMenu,
9100    MatMenuItem,
9101    MatMenuTrigger,
9102    MatSelectModule,
9103    MatSelect,
9104    MatOption,
9105    MatFormFieldModule,
9106    MatOptionModule,
9107    NgxSkeletonLoaderModule,
9108    NgxSkeletonLoaderComponent,
9109    MatInput,
9110    MatTabGroup,
9111    MatTab,
9112    UserGroupSelectorComponent,
9113    DataPanelComponent,
9114    MatRadioModule,
9115    MatRadioGroup,
9116    MatRadioButton,
9117    AlertComponent,
9118    CellComponent,
9119    NMFTAIconComponent,
9120    TranslatePipe
9121  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.table-wrapper[_ngcontent-%COMP%] {\n  display: block;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-table[_ngcontent-%COMP%] {\n  width: 100%;\n  height: 100%;\n  background-color: #ffffff;\n  overflow-y: scroll;\n  table-layout: fixed;\n  overflow-x: auto;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%] {\n  width: 100%;\n  height: 3.125rem;\n  min-height: 3.5rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .is-group-row[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .is-group-row[_ngcontent-%COMP%] {\n  background: #f9f9f9;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%] {\n  border-bottom: 1px solid #e8e8e8 !important;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%] {\n  font-size: 0.75rem;\n  padding: 0 0.75rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%]:first-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%]:first-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%]:first-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%]:first-of-type {\n  padding-left: 1.5rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%]:last-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%]:last-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%]:last-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%]:last-of-type {\n  padding-right: 1.5rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%] {\n  color: #000000;\n  font-size: 0.75rem;\n  font-style: normal;\n  font-weight: 300;\n  line-height: normal;\n  text-align: left;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%] {\n  border-bottom-style: none;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]:nth-child(odd) {\n  background-color: #fcfcfc !important;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]:nth-child(even) {\n  background-color: #ffffff !important;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]:hover {\n  background: #f2f2f2 !important;\n}\n[_nghost-%COMP%]     mat-card {\n  overflow-x: auto !important;\n}\n[_nghost-%COMP%]     .mat-mdc-card-content {\n  padding: 0 !important;\n  gap: 0 !important;\n}\n[_nghost-%COMP%]     .mat-mdc-card-footer .mat-mdc-paginator {\n  padding-top: 0 !important;\n  background-color: #FFFFFF;\n}\n[_nghost-%COMP%]     table {\n  background-color: #FFFFFF;\n}\n[_nghost-%COMP%]     .text-center .mat-sort-header-container {\n  justify-content: center;\n}\n[_nghost-%COMP%]     .mat-mdc-header-row, \n[_nghost-%COMP%]     .mat-mdc-row, \n[_nghost-%COMP%]     .mdc-data-table__content {\n  font-size: 0.75rem;\n}\n[_nghost-%COMP%]     .page-title {\n  width: 100%;\n  justify-content: space-between;\n}\n[_nghost-%COMP%]   .total-label[_ngcontent-%COMP%] {\n  color: #000000;\n  font-size: 0.75rem;\n  font-style: normal;\n  font-weight: 300;\n  line-height: normal;\n}\n.footer[_ngcontent-%COMP%] {\n  display: flex;\n  justify-content: flex-end;\n  gap: 0.75rem;\n  border-top: 1px solid #e1e1e1;\n}\n.assign-license[_ngcontent-%COMP%] {\n  display: flex;\n  gap: 0.75rem;\n  flex-direction: column;\n}\n.assign-license[_ngcontent-%COMP%]     .alert {\n  width: 100% !important;\n}\n.edit-user-footer[_ngcontent-%COMP%] {\n  padding: 24px;\n  border-top: 1px solid #e8e8e8;\n  display: flex;\n  justify-content: flex-end;\n  gap: 0.75rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   table[_ngcontent-%COMP%] {\n  min-width: 1000px;\n}\n.dialog-container[_ngcontent-%COMP%] {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n}\n.dialog-container[_ngcontent-%COMP%]   mat-tab-group[_ngcontent-%COMP%], \n.dialog-container[_ngcontent-%COMP%]     .mat-mdc-tab-body-wrapper {\n  height: 100% !important;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%]   .company-admin-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%]   .company-admin-view-body[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-body[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n  overflow: auto;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-footer[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: row;\n  grid-row: 3;\n  overflow: hidden;\n  padding: 24px;\n  border-top: 1px solid #e1e1e1;\n  justify-content: flex-end;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-view[_ngcontent-%COMP%]   .manage-account-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .manage-account-view[_ngcontent-%COMP%]   .manage-account-view-body[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n/*# sourceMappingURL=manage-company-users.component-YDFS3PYV.css.map */"] });
9122};
9123(() => {
9124  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ManageCompanyUsersComponent, [{
9125    type: Component,
9126    args: [{ selector: "nmfta-manage-users", imports: [
9127      PageTitleComponent,
9128      ButtonComponent,
9129      MatIconModule,
9130      InputWrapperComponent,
9131      ReactiveFormsModule,
9132      TranslatePipe,
9133      CardComponent,
9134      MatTable,
9135      MatColumnDef,
9136      MatHeaderCell,
9137      MatCell,
9138      MatHeaderCellDef,
9139      MatCellDef,
9140      MatHeaderRow,
9141      MatHeaderRowDef,
9142      MatRow,
9143      MatRowDef,
9144      ButtonComponent,
9145      CommonModule,
9146      MatPaginatorModule,
9147      MatMenuModule,
9148      ButtonComponent,
9149      MatSelectModule,
9150      MatFormFieldModule,
9151      MatOptionModule,
9152      NgxSkeletonLoaderModule,
9153      MatSelect,
9154      MatInput,
9155      MatOption,
9156      MatTabGroup,
9157      MatTab,
9158      UserGroupSelectorComponent,
9159      DataPanelComponent,
9160      MatRadioModule,
9161      AlertComponent,
9162      CellComponent,
9163      NMFTAIconComponent
9164    ], template: `<div class="row">
9165  <div class="col-auto pb-4">
9166    <nmfta-page-title [title]="'Generic_ManageCompanyUsers' | translate"></nmfta-page-title>
9167  </div>
9168  <div class="col-12 col-md pb-4">
9169    <div class="text-end d-flex gap-2 justify-content-end">
9170      @if (isCustomerService$() || isCompanyAdmin$() || isAccountManager$()) {
9171        <nmfta-button styleType="outlined" leftIcon="group" (buttonClick)="goToUserActivityReport()">
9172          User Activity
9173        </nmfta-button>
9174      }
9175      <nmfta-button styleType="outlined" leftIcon="workspace_premium" (buttonClick)="licenseInformation()">
9176        Company Licenses: {{ companyLicensesAssigned$().toString() }} / {{ companytotalLicense$().toString() }}
9177      </nmfta-button>
9178      <nmfta-button styleType="text" rightIcon="group_add" (buttonClick)="saveUser()">
9179        {{ 'Generic_CreateUser' | translate }}
9180      </nmfta-button>
9181    </div>
9182  </div>
9183  <!-- MANAGE USER TABLE -->
9184  <div class="my-3">
9185    <nmfta-card [title]="company$().companyName + ' Users'" [titleIcon]="'group'" [headerActions]="filterAction">
9186      <div header-content>
9187        <div [ngSwitch]="showfilter">
9188          <form [formGroup]="filterUserForm" class="edit-form">
9189            <div *ngSwitchCase="true">
9190              <div class="row">
9191                <div class="col-12 col-md-6 col-xl-4">
9192                  <nmfta-input-wrapper label="{{ 'Generic_FirstName' | translate }}">
9193                    <input
9194                      matInput
9195                      type="text"
9196                      name="firstName"
9197                      formControlName="firstName"
9198                      placeholder="{{ 'Generic_FirstName' | translate }}" />
9199                  </nmfta-input-wrapper>
9200                </div>
9201                <div class="col-12 col-md-6 col-xl-4">
9202                  <nmfta-input-wrapper label="{{ 'Generic_LastName' | translate }}">
9203                    <input
9204                      matInput
9205                      type="text"
9206                      name="lastName"
9207                      formControlName="lastName"
9208                      placeholder="{{ 'Generic_LastName' | translate }}" />
9209                  </nmfta-input-wrapper>
9210                </div>
9211                <div class="col-12 col-md-6 col-xl-4">
9212                  <nmfta-input-wrapper label="{{ 'Generic_EmailAddress' | translate }}">
9213                    <input
9214                      matInput
9215                      type="email"
9216                      name="email"
9217                      formControlName="email"
9218                      placeholder="{{ 'Generic_EmailAddress' | translate }}" />
9219                  </nmfta-input-wrapper>
9220                </div>
9221                <div class="col-12 col-md-6 col-xl-4">
9222                  <nmfta-input-wrapper label="{{ 'Generic_SelectUserRole' | translate }}">
9223                    <mat-select placeholder="{{ 'Generic_SelectUserRole' | translate }}" formControlName="role">
9224                      <mat-option [value]="">----</mat-option>
9225                      @for (role of tableFilterRoles; track role) {
9226                        <mat-option [value]="role">
9227                          {{ role }}
9228                        </mat-option>
9229                      }
9230                    </mat-select>
9231                  </nmfta-input-wrapper>
9232                </div>
9233                <div class="col-12 col-md pb-3 pb-md-0">
9234                  <nmfta-input-wrapper label="{{ 'Generic_LicenseStatus' | translate }}">
9235                    <mat-radio-group aria-label="License Status" formControlName="licenseStatus">
9236                      <mat-radio-button value="all">All</mat-radio-button>
9236
9237                      <mat-radio-button value="assigned">Assigned</mat-radio-button>
9238                      <mat-radio-button value="unassigned">Unassigned</mat-radio-button>
9239                    </mat-radio-group>
9240                  </nmfta-input-wrapper>
9241                </div>
9242                <div class="col-12 col-md-auto d-flex justify-content-end gap-2 align-items-end">
9243                  <nmfta-button styleType="outlined" rightIcon="close" (buttonClick)="resetFilter()">
9244                    Clear Filters
9245                  </nmfta-button>
9246
9247                  <nmfta-button styleType="contained" type="submit" (buttonClick)="getUsers()">
9248                    Apply Filters
9249                  </nmfta-button>
9250                </div>
9251              </div>
9252            </div>
9253          </form>
9254        </div>
9255      </div>
9256
9257      @if (submissionStatus$() === 'loading') {
9258        <div class="w-100 h-100 d-grid">
9259          <ngx-skeleton-loader
9260            [theme]="{
9261              'border-radius': '0',
9262              height: '100%',
9263              'min-height': '45vh',
9264              width: '100%',
9265            }">
9266          </ngx-skeleton-loader>
9267        </div>
9268      } @else {
9269        <div class="table-wrapper">
9270          <table mat-table [dataSource]="dataSource()" matSort>
9271            <colgroup>
9272              @for (col of columns.display; track col.id) {
9273                <col [style.width]="col.width" />
9274              }
9275            </colgroup>
9276            @for (col of columns.display; track col.id) {
9277              <ng-container [matColumnDef]="col.id">
9278                <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ col.value }}</th>
9279                <td class="{{ col.id }}" mat-cell *matCellDef="let user">
9280                  @if (col.id === 'actions') {
9281                    <ng-container>
9282                      <nmfta-button [iconName]="'more_vert'" [blackText]="true" [matMenuTriggerFor]="managUserActions">
9283                      </nmfta-button>
9284                      <mat-menu #managUserActions="matMenu">
9285                        <button mat-menu-item (click)="licenseAssignment(user)">
9286                          <mat-icon>workspace_premium</mat-icon>
9287                          <span>{{ 'Generic_ManageLicense' | translate }}</span>
9288                        </button>
9289                        @if (company$().enableSynonyms || company$().enableComments) {
9290                          <button mat-menu-item (click)="manageResources(user)">
9291                            <mat-icon>category</mat-icon>
9292                            <span>{{ 'Generic_ManageResources' | translate }}</span>
9293                          </button>
9294                        }
9295                        <button mat-menu-item (click)="editUser(user)">
9296                          <mat-icon>edit_outline</mat-icon>
9297                          <span>Edit User</span>
9298                        </button>
9299                        <button mat-menu-item (click)="resetUserPassword(user)">
9300                          <mat-icon>key_outline</mat-icon>
9301                          <span>Reset Password</span>
9302                        </button>
9303                        <button mat-menu-item (click)="deleteUser(user)">
9304                          <mat-icon>delete_outline</mat-icon>
9305                          <span>Delete User</span>
9306                        </button>
9307                      </mat-menu>
9308                    </ng-container>
9309                  } @else if (col.id === 'isLicensed') {
9310                    @if (user.isLicensed) {
9311                      <nmfta-icon name="check_circle" color="accent"></nmfta-icon>
9312                    } @else {
9313                      <nmfta-icon name="cancel" color="error"></nmfta-icon>
9314                    }
9315                  } @else {
9316                    <nmfta-cell>
9317                      {{ user[col.id] }}
9318                    </nmfta-cell>
9319                  }
9320                </td>
9321              </ng-container>
9322            }
9323
9324            <tr mat-header-row *matHeaderRowDef="columns.ids"></tr>
9325            <tr mat-row *matRowDef="let row; columns: columns.ids"></tr>
9326          </table>
9327        </div>
9328      }
9329      @if (submissionStatus$() !== 'loading' && dataSource().data.length === 0) {
9330        <div class="text-center py-4">
9331          {{ 'Generic_NoUsersFound' | translate }}
9332        </div>
9333      }
9334
9335      <div footer-content>
9336        <mat-paginator
9337          #paginator
9338          [pageSizeOptions]="[10, 25, 50]"
9339          showFirstLastButtons
9340          [length]="company$().totalNumberOfUsers ?? 0"
9341          [pageSize]="pageSize"
9342          [pageIndex]="pageIndex"
9343          (page)="onPageChange($event)"></mat-paginator>
9344      </div>
9345    </nmfta-card>
9346  </div>
9347</div>
9348
9349<ng-template #createUserDialog>
9350  <div class="dialog-container">
9351    <mat-tab-group animationDuration="0ms">
9352      <mat-tab label="{{ 'COMPANY_SETTINGS.Assign_to_an_Existing_User' | translate }}">
9353        <div class="company-admin-view">
9354          <div class="company-admin-view-header">
9355            <nmfta-alert>
9356              {{ 'COMPANY_SETTINGS.Add_Company_Admin_Message' | translate }}
9357            </nmfta-alert>
9358          </div>
9359          <div class="company-admin-view-body">
9360            <nmfta-user-group-selector
9361              [companyId]="companyId$()"
9362              [ExternalUsersList]="companyAdmins$"
9363              [ExternalUsersLoadingStatus]="submissionStatus$"
9364              [isAdmin]="true"
9365              [forPrimaryAdminAdd]="true"
9366              (userAction)="handleUserAdminAction($event)">
9367            </nmfta-user-group-selector>
9368          </div>
9369        </div>
9370      </mat-tab>
9371      <mat-tab label="{{ 'COMPANY_SETTINGS.Assign_to_A_New_User' | translate }}">
9372        <div class="company-admin-invitation-view">
9373          <div class="company-admin-invitation-view-header">
9374            <nmfta-alert>
9375              {{ 'COMPANY_SETTINGS.Add_Company_Admin_Message' | translate }}
9376            </nmfta-alert>
9377          </div>
9378          <div class="company-admin-invitation-view-body">
9379            <form [formGroup]="companyAdminForm" class="edit-form">
9380              <div class="row">
9381                <div class="col-12 col-sm-6">
9382                  <nmfta-input-wrapper label="First Name">
9383                    <input matInput id="firstName" type="text" name="firstName" formControlName="firstName" />
9384                  </nmfta-input-wrapper>
9385                </div>
9386                <div class="col-12 col-sm-6">
9387                  <nmfta-input-wrapper label="Last Name">
9388                    <input matInput id="lastName" type="text" name="lastName" formControlName="lastName" />
9389                  </nmfta-input-wrapper>
9390                </div>
9391              </div>
9392              <div class="row">
9393                <div class="col-12 col-sm-7">
9394                  <nmfta-input-wrapper label="Email">
9395                    <input matInput id="email" type="text" inputmode="email" name="email" formControlName="email" />
9396                  </nmfta-input-wrapper>
9397                </div>
9398                <div class="col-12 col-sm-5">
9399                  <nmfta-input-wrapper label="Phone">
9400                    <input matInput id="phone" type="text" name="phone" formControlName="phone" />
9401                  </nmfta-input-wrapper>
9402                </div>
9403              </div>
9404              <div class="row">
9405                <div class="col-12">
9406                  <nmfta-input-wrapper label="Title">
9407                    <input matInput id="title" type="text" name="title" formControlName="title" />
9408                  </nmfta-input-wrapper>
9409                </div>
9410              </div>
9411            </form>
9412            @if (showAlertCompanyAdmin) {
9413              <div class="pt-3">
9414                <nmfta-alert [color]="'success'">
9415                  {{
9416                    'COMPANY_SETTINGS.Activation_Link_Success'
9417                      | translate: { firstName: firstName, lastName: lastName, email: email, today: today }
9418                  }}
9419                </nmfta-alert>
9420              </div>
9421            }
9422          </div>
9423          <div class="company-admin-invitation-view-footer">
9424            <nmfta-button
9425              (buttonClick)="createNewCompanyAdmin()"
9426              [disabled]="companyAdminForm.invalid"
9427              rightIcon="group_add"
9428              styleType="contained"
9429              [isLoading]="updateUserStatus$() === 'loading'">
9430              {{ 'COMPANY_SETTINGS.Create_Company_Admin' | translate }}
9431            </nmfta-button>
9432          </div>
9433        </div>
9434      </mat-tab>
9435    </mat-tab-group>
9436  </div>
9437</ng-template>
9438
9439<ng-template #CreateUserView>
9440  <form [formGroup]="createUserForm" class="edit-form p-4">
9441    <div class="row">
9442      <div class="col-6">
9443        <nmfta-input-wrapper label="{{ 'PURCHASE.COMPANY_FORM.FIRST_NAME' | translate }}" toolTip="First Name">
9444          <div class="input-container">
9445            <input
9446              matInput
9447              type="text"
9448              name="firstName"
9449              formControlName="firstName"
9450              placeholder="{{ 'PURCHASE.COMPANY_FORM.FIRST_NAME' | translate }}" />
9451          </div>
9452        </nmfta-input-wrapper>
9453      </div>
9454
9455      <div class="col-6">
9456        <nmfta-input-wrapper label="{{ 'PURCHASE.COMPANY_FORM.LAST_NAME' | translate }}" toolTip="Last Name of user">
9457          <div class="input-container">
9458            <input
9459              matInput
9460              type="text"
9461              name="lastName"
9462              formControlName="lastName"
9463              placeholder="{{ 'PURCHASE.COMPANY_FORM.LAST_NAME' | translate }}" />
9464          </div>
9465        </nmfta-input-wrapper>
9466      </div>
9467    </div>
9468    <div class="row">
9469      <div class="col-12">
9470        <nmfta-input-wrapper label="{{ 'PURCHASE.COMPANY_FORM.EMAIL' | translate }}" toolTip="Email of the user">
9471          <div class="input-container">
9472            <input
9473              matInput
9474              type="text"
9475              inputmode="email"
9476              name="email"
9477              formControlName="email"
9478              placeholder="{{ 'PURCHASE.COMPANY_FORM.EMAIL' | translate }}" />
9479          </div>
9480        </nmfta-input-wrapper>
9481      </div>
9482    </div>
9483  </form>
9484  <div class="footer p-4">
9485    <nmfta-button
9486      styleType="contained"
9487      type="submit"
9488      [disabled]="!createUserForm.valid"
9489      (buttonClick)="sendActivationEmail()"
9490      [isLoading]="saveUserStatus$() == 'loading'">
9491      Send Activation
9492    </nmfta-button>
9493  </div>
9494</ng-template>
9495
9496<ng-template #editUserView>
9497  <div class="py-2 px-4">
9498    <form [formGroup]="editUserForm" class="edit-form">
9499      <div class="row">
9500        <div class="col-6">
9501          <!-- Edit User : First Name -->
9502          <nmfta-input-wrapper label="{{ 'PURCHASE.COMPANY_FORM.FIRST_NAME' | translate }}" toolTip="First Name">
9503            <div class="input-container">
9504              <input
9505                matInput
9506                type="text"
9507                name="firstName"
9508                formControlName="firstName"
9509                placeholder="{{ 'PURCHASE.COMPANY_FORM.FIRST_NAME' | translate }}" />
9510            </div>
9511          </nmfta-input-wrapper>
9512        </div>
9513        <!-- Edit User : Last Name -->
9514        <div class="col-6">
9515          <nmfta-input-wrapper label="{{ 'PURCHASE.COMPANY_FORM.LAST_NAME' | translate }}" toolTip="Last Name of user">
9516            <div class="input-container">
9517              <input
9518                matInput
9519                type="text"
9520                name="lastName"
9521                formControlName="lastName"
9522                placeholder="{{ 'PURCHASE.COMPANY_FORM.LAST_NAME' | translate }}" />
9523            </div>
9524          </nmfta-input-wrapper>
9525        </div>
9526      </div>
9527      <div class="row">
9528        <div class="col-8">
9529          <!-- Edit User: Email -->
9530          <nmfta-input-wrapper label="Email" toolTip="User Email">
9531            <div class="input-container">
9532              <input matInput type="text" name="email" formControlName="email" placeholder="Email" />
9533            </div>
9534          </nmfta-input-wrapper>
9535        </div>
9536        <!-- Edit User: Phone -->
9537        <div class="col-4">
9538          <nmfta-input-wrapper label="Phone" toolTip="Phone Number">
9539            <div class="input-container">
9540              <input matInput type="text" name="phone" formControlName="phone" placeholder="phone" />
9541            </div>
9542          </nmfta-input-wrapper>
9543        </div>
9544      </div>
9545
9546      <div class="row">
9547        <div class="col-6">
9548          <!-- Edit User: Department -->
9549          <nmfta-input-wrapper label="Department" toolTip="User Department Name">
9550            <div class="input-container">
9551              <input matInput type="text" name="department" formControlName="department" placeholder="Department" />
9552            </div>
9553          </nmfta-input-wrapper>
9554        </div>
9555        <!-- Edit User: Title -->
9556        <div class="col-6">
9557          <nmfta-input-wrapper label="Title" toolTip="User Title">
9558            <div class="input-container">
9559              <input matInput type="text" name="title" formControlName="title" placeholder="title" />
9560            </div>
9561          </nmfta-input-wrapper>
9562        </div>
9563      </div>
9564      <div class="row">
9565        <div class="col-12">
9566          <!-- Edit User: company -->
9567          <nmfta-input-wrapper
9568            label="{{ 'COMPANY_SETTINGS.COMPANY_NAME' | translate }}"
9569            toolTip="{{ 'COMPANY_SETTINGS.COMPANY_NAME' | translate }}">
9570            <div class="input-container">
9571              <input
9572                matInput
9573                type="text"
9574                name="company"
9575                formControlName="company"
9576                placeholder="{{ 'COMPANY_SETTINGS.COMPANY_NAME' | translate }}" />
9577            </div>
9578          </nmfta-input-wrapper>
9579        </div>
9580      </div>
9581
9582      <div class="row">
9583        <div class="col-12">
9584          <!-- Edit User: Role -->
9585          <nmfta-input-wrapper label="Select User Role">
9586            <mat-select placeholder="Select User Role" formControlName="role">
9587              @for (role of editUserRoles; track role) {
9588                <mat-option [value]="role">
9589                  {{ role }}
9590                </mat-option>
9591              }
9592            </mat-select>
9593          </nmfta-input-wrapper>
9594        </div>
9595      </div>
9596
9597      <div class="row">
9598        <div class="col-4">
9599          <!-- Edit User: Country -->
9600          <nmfta-input-wrapper label="Country" toolTip="Country">
9601            <mat-select name="country" formControlName="country" placeholder="Select a Country ">
9602              @for (country of countries$(); track country.countryId) {
9603                <mat-option [value]="country.umCountryCode">
9604                  {{ country.umCountryName }}
9605                </mat-option>
9606              }
9607            </mat-select>
9608          </nmfta-input-wrapper>
9609        </div>
9610        <!-- Edit User: City -->
9611        <div class="col-8">
9612          <nmfta-input-wrapper label="City" toolTip="User City">
9613            <div class="input-container">
9614              <input matInput type="text" name="city" formControlName="city" placeholder="city" />
9615            </div>
9616          </nmfta-input-wrapper>
9617        </div>
9618      </div>
9619
9620      <div class="row">
9621        <div class="col-8">
9622          <!-- Edit User: State -->
9623          <nmfta-input-wrapper
9624            label="{{ 'Generic_StateIntlLabel' | translate }}"
9625            toolTip="{{ 'Generic_StateIntlLabel' | translate }}">
9626            <div class="input-container">
9627              <input
9628                matInput
9629                type="text"
9630                name="state"
9631                formControlName="state"
9632                placeholder="{{ 'Generic_StateIntlLabel' | translate }}" />
9633            </div>
9634          </nmfta-input-wrapper>
9635        </div>
9636        <!-- Edit User: Postal Code -->
9637        <div class="col-4">
9638          <nmfta-input-wrapper label="Postal Code" toolTip="Postal Code">
9639            <div class="input-container">
9640              <input matInput type="text" name="postalCode" formControlName="postalCode" placeholder="Postal Code" />
9641            </div>
9642          </nmfta-input-wrapper>
9643        </div>
9644      </div>
9645      <div class="row">
9646        <div class="col-12">
9647          <!-- Edit User: State -->
9648          <nmfta-input-wrapper
9649            label="{{ 'Generic_Address' | translate }}"
9650            toolTip="{{ 'Generic_Address' | translate }}">
9651            <div class="input-container">
9652              <input
9653                matInput
9654                type="text"
9655                name="address"
9656                formControlName="address"
9657                placeholder="{{ 'Generic_Address' | translate }}" />
9658            </div>
9659          </nmfta-input-wrapper>
9660        </div>
9661      </div>
9662    </form>
9663    <div class="edit-user-footer gap-3">
9664      <nmfta-button type="text" [styleType]="'outlined'" (buttonClick)="cancel()"> Cancel</nmfta-button>
9665      <nmfta-button
9666        styleType="contained"
9667        type="submit"
9668        (buttonClick)="saveUserForm()"
9669        [disabled]="!editUserForm.valid || editUserForm.pristine"
9670        [isLoading]="saveUserStatus$() == 'loading'">
9671        Save
9672      </nmfta-button>
9673    </div>
9674  </div>
9675</ng-template>
9676
9677<ng-template #removeLicenseView>
9678  <div class="py-2 px-4">
9679    <div class="row">
9680      <div class="col-12">
9681        <div class="d-flex justify-content-center align-items-center">
9682          <p>
9683            {{ 'COMPANY_SETTINGS.RemoveLicenseInformation' | translate }}
9684          </p>
9685        </div>
9686      </div>
9687    </div>
9688  </div>
9689</ng-template>
9690
9691<ng-template #deleteUserView>
9692  <div class="py-2 px-4">
9693    <div class="row">
9694      <div class="col-12">
9695        <div class="d-flex justify-content-center align-items-center">
9696          <p>
9697            {{ 'COMPANY_SETTINGS.DeleteUserInformation' | translate }}
9698          </p>
9699        </div>
9700      </div>
9701    </div>
9702  </div>
9703</ng-template>
9704
9705<ng-template #licenseInformationDialog>
9706  <div class="p-4 assign-license">
9707    <nmfta-data-panel [propertyName]="'Company Name'" [propertyValue]="company$().companyName"></nmfta-data-panel>
9708    <nmfta-data-panel
9709      [propertyName]="'Total Company Licenses Purchased'"
9710      [propertyValue]="companytotalLicense$().toString()">
9711    </nmfta-data-panel>
9712    <nmfta-data-panel
9713      [propertyName]="'Company Licenses Assigned'"
9714      [propertyValue]="companyLicensesAssigned$().toString()">
9715    </nmfta-data-panel>
9716  </div>
9717  <div class="edit-user-footer gap-3">
9718    <nmfta-button type="text" [styleType]="'outlined'" (buttonClick)="closeDialog()"> Cancel</nmfta-button>
9719    <nmfta-button
9720      [disabled]="disableAddLicenseButton()"
9721      (buttonClick)="buyMoreLicenses()"
9722      styleType="contained">
9723      Buy More Licenses
9724    </nmfta-button>
9725  </div>
9726</ng-template>
9727
9728<ng-template #userLicenseAssignment>
9729  <div class="p-4 assign-license">
9730    <p>{{ licenseDescription | translate }}</p>
9731    <nmfta-alert [color]="licenseAlertColor">{{ licenseAlertMessage | translate }}</nmfta-alert>
9732    <nmfta-data-panel [propertyName]="'Company Name'" [propertyValue]="company$().companyName"></nmfta-data-panel>
9733    <nmfta-data-panel
9734      [propertyName]="'Total Company Licenses Purchased'"
9735      [propertyValue]="companytotalLicense$().toString()">
9736    </nmfta-data-panel>
9737    <nmfta-data-panel
9738      [propertyName]="'Company Licenses Assigned'"
9739      [propertyValue]="companyLicensesAssigned$().toString()">
9740    </nmfta-data-panel>
9741  </div>
9742  <div class="edit-user-footer gap-3">
9743    <nmfta-button type="text" [styleType]="'outlined'" (buttonClick)="closeDialog()"> Cancel</nmfta-button>
9744    @if (isAssign) {
9745      <nmfta-button
9746        type="text"
9747        [styleType]="'contained'"
9748        [disabled]="disableAssignButton"
9749        (buttonClick)="assignUserLicense()">
9750        Assign License
9751      </nmfta-button>
9752    } @else {
9753      <nmfta-button
9754        type="text"
9755        [styleType]="'contained'"
9756        [color]="'error'"
9757        [disabled]="disableAssignButton"
9758        (buttonClick)="unassignUserLicense()">
9759        Unassign License
9760      </nmfta-button>
9761    }
9762  </div>
9763</ng-template>
9764`, styles: ["/* src/app/features/profile/components/manage-company-users/manage-company-users.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.table-wrapper {\n  display: block;\n}\n.table-wrapper .mat-mdc-table {\n  width: 100%;\n  height: 100%;\n  background-color: #ffffff;\n  overflow-y: scroll;\n  table-layout: fixed;\n  overflow-x: auto;\n}\n.table-wrapper .mat-mdc-row,\n.table-wrapper .mat-mdc-header-row {\n  width: 100%;\n  height: 3.125rem;\n  min-height: 3.5rem;\n}\n.table-wrapper .mat-mdc-row .is-group-row,\n.table-wrapper .mat-mdc-header-row .is-group-row {\n  background: #f9f9f9;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell {\n  border-bottom: 1px solid #e8e8e8 !important;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell,\n.table-wrapper .mat-mdc-row .mat-mdc-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-cell {\n  font-size: 0.75rem;\n  padding: 0 0.75rem;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell:first-of-type,\n.table-wrapper .mat-mdc-row .mat-mdc-cell:first-of-type,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell:first-of-type,\n.table-wrapper .mat-mdc-header-row .mat-mdc-cell:first-of-type {\n  padding-left: 1.5rem;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell:last-of-type,\n.table-wrapper .mat-mdc-row .mat-mdc-cell:last-of-type,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell:last-of-type,\n.table-wrapper .mat-mdc-header-row .mat-mdc-cell:last-of-type {\n  padding-right: 1.5rem;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell {\n  color: #000000;\n  font-size: 0.75rem;\n  font-style: normal;\n  font-weight: 300;\n  line-height: normal;\n  text-align: left;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-cell {\n  border-bottom-style: none;\n}\n.table-wrapper .mat-mdc-row:nth-child(odd) {\n  background-color: #fcfcfc !important;\n}\n.table-wrapper .mat-mdc-row:nth-child(even) {\n  background-color: #ffffff !important;\n}\n.table-wrapper .mat-mdc-row:hover {\n  background: #f2f2f2 !important;\n}\n:host ::ng-deep mat-card {\n  overflow-x: auto !important;\n}\n:host ::ng-deep .mat-mdc-card-content {\n  padding: 0 !important;\n  gap: 0 !important;\n}\n:host ::ng-deep .mat-mdc-card-footer .mat-mdc-paginator {\n  padding-top: 0 !important;\n  background-color: #FFFFFF;\n}\n:host ::ng-deep table {\n  background-color: #FFFFFF;\n}\n:host ::ng-deep .text-center .mat-sort-header-container {\n  justify-content: center;\n}\n:host ::ng-deep .mat-mdc-header-row,\n:host ::ng-deep .mat-mdc-row,\n:host ::ng-deep .mdc-data-table__content {\n  font-size: 0.75rem;\n}\n:host ::ng-deep .page-title {\n  width: 100%;\n  justify-content: space-between;\n}\n:host .total-label {\n  color: #000000;\n  font-size: 0.75rem;\n  font-style: normal;\n  font-weight: 300;\n  line-height: normal;\n}\n.footer {\n  display: flex;\n  justify-content: flex-end;\n  gap: 0.75rem;\n  border-top: 1px solid #e1e1e1;\n}\n.assign-license {\n  display: flex;\n  gap: 0.75rem;\n  flex-direction: column;\n}\n.assign-license ::ng-deep .alert {\n  width: 100% !important;\n}\n.edit-user-footer {\n  padding: 24px;\n  border-top: 1px solid #e8e8e8;\n  display: flex;\n  justify-content: flex-end;\n  gap: 0.75rem;\n}\n.table-wrapper table {\n  min-width: 1000px;\n}\n.dialog-container {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n}\n.dialog-container mat-tab-group,\n.dialog-container ::ng-deep .mat-mdc-tab-body-wrapper {\n  height: 100% !important;\n}\n.dialog-container .company-admin-view {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container .company-admin-view .company-admin-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .company-admin-view .company-admin-view-body {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n.dialog-container .company-admin-invitation-view {\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-body {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n  overflow: auto;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-footer {\n  display: flex;\n  flex-direction: row;\n  grid-row: 3;\n  overflow: hidden;\n  padding: 24px;\n  border-top: 1px solid #e1e1e1;\n  justify-content: flex-end;\n}\n.dialog-container .manage-account-view {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container .manage-account-view .manage-account-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .manage-account-view .manage-account-view-body {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n/*# sourceMappingURL=manage-company-users.component-YDFS3PYV.css.map */\n"] }]
9765  }], () => [], { createUserView: [{
9766    type: ViewChild,
9767    args: ["CreateUserView", { static: true }]
9768  }], editUserView: [{
9769    type: ViewChild,
9770    args: ["editUserView", { static: true }]
9771  }], deleteUserView: [{
9772    type: ViewChild,
9773    args: ["deleteUserView", { static: true }]
9774  }], licenseInformationDialog: [{
9775    type: ViewChild,
9776    args: ["licenseInformationDialog", { static: true }]
9777  }], userLicenseAssignment: [{
9778    type: ViewChild,
9779    args: ["userLicenseAssignment", { static: true }]
9780  }], createUserDialog: [{
9781    type: ViewChild,
9782    args: ["createUserDialog", { static: true }]
9783  }] });
9784})();
9785(() => {
9786  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ManageCompanyUsersComponent, { className: "ManageCompanyUsersComponent", filePath: "src/app/features/profile/components/manage-company-users/manage-company-users.component.ts", lineNumber: 101 });
9787})();
9788
9789// src/app/features/profile/store/add-licenses.store.ts
9790var AddLicenseNetworkState;
9791(function(AddLicenseNetworkState2) {
9792  AddLicenseNetworkState2[AddLicenseNetworkState2["IDLE"] = 0] = "IDLE";
9793  AddLicenseNetworkState2[AddLicenseNetworkState2["LOADING_PRODUCTS"] = 1] = "LOADING_PRODUCTS";
9794  AddLicenseNetworkState2[AddLicenseNetworkState2["LOADING_SUBSCRIPTIONS"] = 2] = "LOADING_SUBSCRIPTIONS";
9795  AddLicenseNetworkState2[AddLicenseNetworkState2["LOADING_MEMBER_VERIFY"] = 3] = "LOADING_MEMBER_VERIFY";
9796  AddLicenseNetworkState2[AddLicenseNetworkState2["LOADING_MAIN_COMPONENT"] = 4] = "LOADING_MAIN_COMPONENT";
9797  AddLicenseNetworkState2[AddLicenseNetworkState2["SUBMITTING"] = 5] = "SUBMITTING";
9798  AddLicenseNetworkState2[AddLicenseNetworkState2["COMPLETE"] = 6] = "COMPLETE";
9799  AddLicenseNetworkState2[AddLicenseNetworkState2["ERROR"] = 7] = "ERROR";
9800})(AddLicenseNetworkState || (AddLicenseNetworkState = {}));
9801var addLicenseInitialState = __spreadProps(__spreadValues({}, initialState), {
9802  isMember: false,
9803  networkState: AddLicenseNetworkState.LOADING_PRODUCTS,
9804  numLicenses: 1,
9805  purchasingOverMaxLimit: false,
9806  purchasingOverMemberCap: false,
9807  purchasingAfterLicensesLimitReached: false
9808});
9809var AddLicensesStore = signalStore({ providedIn: "root" }, withDevtools("add-licenses-flow"), withState(addLicenseInitialState), withMethods((store, purchaseService = inject(PurchaseService), purchaseStore = inject(PurchaseStore), subscriptionStore = inject(SubscriptionStore), companyStore = inject(CompanyStore), userStore = inject(UserStore), logger = inject(Logger)) => ({
9810  setStepAsComplete(stepIndex) {
9811    const currentSteps = store.completedSteps();
9812    currentSteps[stepIndex] = true;
9813    patchState(store, {
9814      completedSteps: currentSteps
9815    });
9816  },
9817  resetState() {
9818    purchaseStore.resetMembershipVerificationState();
9819    updateState(store, "reset add-license-flow", __spreadProps(__spreadValues({}, addLicenseInitialState), {
9820      completedSteps: [false, false, false, false, false, false]
9821    }));
9822  },
9823  setNumLicenses(numLicenses, maxPrice = 0, aboveMarketCap = false) {
9824    const pricePerLicense = this.getPricePerLicense();
9825    const prevOrder = store.order();
9826    const totalAmount = !aboveMarketCap ? (pricePerLicense * numLicenses).toString() : maxPrice.toString();
9827    updateState(store, "add-licences-flow - setNumLicenses", {
9828      pricePerLicense,
9829      numLicenses,
9830      order: __spreadProps(__spreadValues({}, prevOrder), {
9831        paymentPayload: __spreadProps(__spreadValues({}, prevOrder.paymentPayload), {
9832          paymentInfo: __spreadProps(__spreadValues({}, prevOrder.paymentPayload.paymentInfo), {
9833            totalAmount
9834          })
9835        })
9836      }),
9837      purchasingOverMemberCap: aboveMarketCap
9838    });
9839  },
9840  setAdditionalLicenses(additionalLicenses, totalAmount, currentLicenseAmount, licensesSeatMax) {
9841    const order = store.order();
9842    patchState(store, {
9843      purchasingOverMaxLimit: additionalLicenses > licensesSeatMax,
9844      purchasingAfterLicensesLimitReached: currentLicenseAmount > licensesSeatMax,
9845      numLicenses: additionalLicenses,
9846      order: __spreadProps(__spreadValues({}, order), {
9847        paymentPayload: __spreadProps(__spreadValues({}, order.paymentPayload), {
9848          paymentInfo: __spreadProps(__spreadValues({}, order.paymentPayload.paymentInfo), {
9849            totalAmount: totalAmount.toString()
9850          })
9851        })
9852      })
9853    });
9854  },
9855  getPricePerLicense() {
9856    const isMember = store.isMember();
9857    const discountPercentage = subscriptionStore.getAddLicenseDiscountPercentage();
9858    let pricePerLicense = isMember ? store.selectedProduct().memberCost : store.selectedProduct().nonMemberCost;
9859    if (discountPercentage > 0) {
9860      pricePerLicense -= Math.floor(pricePerLicense * (discountPercentage / 100));
9861    }
9862    return pricePerLicense;
9863  },
9864  submitOrder: rxMethod(pipe(tap(() => patchState(store, { networkState: AddLicenseNetworkState.SUBMITTING })), switchMap(() => {
9865    const user$ = userStore.user;
9866    const companyId$ = companyStore.company.companyId;
9867    const order = {
9868      purchaseInformation: __spreadProps(__spreadValues({}, store.order().purchaseInformation), {
9869        licenseSeats: store.numLicenses()
9870      }),
9871      paymentPayload: purchaseStore.order().paymentPayload,
9872      userId: user$().userId,
9873      companyId: companyId$()
9874    };
9875    return purchaseService.submitAddNewLicensesOrder(order).pipe(tapResponse({
9876      next: (response) => {
9877        if (response.success) {
9878          purchaseStore.setOrderNumber(response.data.transactionId ?? "");
9879          purchaseStore.setBasicPaymentInfo({
9880            productName: store.selectedProduct().productName,
9881            paymentId: response.data.paymentId ?? "",
9882            licenses: store.numLicenses(),
9883            forAdditionalLicenses: true
9884          });
9885          companyStore.loadCompanyInfo(companyId$());
9886          subscriptionStore.loadSubscriptions();
9887          patchState(store, { networkState: AddLicenseNetworkState.COMPLETE });
9888        } else {
9889          patchState(store, { networkState: AddLicenseNetworkState.ERROR });
9890          logger.error(response.message ?? "Failed to purchase additional licenses.");
9891        }
9892      },
9893      error: (err) => {
9894        patchState(store, {
9895          networkState: AddLicenseNetworkState.ERROR
9896        });
9897        logger.error("Failed to purchase additional licenses.", err);
9898      }
9899    }));
9900  })))
9901})), withHooks({
9902  onInit: (store, userStore = inject(UserStore), purchaseStore = inject(PurchaseStore), subscriptionStore = inject(SubscriptionStore), companyStore = inject(CompanyStore), logger = inject(Logger), router = inject(Router)) => {
9903    effect(() => __async(null, null, function* () {
9904      if (userStore.user()) {
9905        if (store.networkState() === AddLicenseNetworkState.LOADING_PRODUCTS) {
9906          if (purchaseStore.productResponseStatus() !== ResponseStatus.LOADED) {
9907            purchaseStore.getProductInfo();
9908          }
9909          patchState(store, {
9910            networkState: AddLicenseNetworkState.LOADING_SUBSCRIPTIONS
9911          });
9912        } else if (store.networkState() === AddLicenseNetworkState.LOADING_SUBSCRIPTIONS) {
9913          if (subscriptionStore.submissionStatus() !== ResponseStatus.LOADED) {
9914            subscriptionStore.loadSubscriptions();
9915          }
9916          patchState(store, {
9917            networkState: AddLicenseNetworkState.LOADING_MEMBER_VERIFY
9918          });
9919        } else if (store.networkState() === AddLicenseNetworkState.LOADING_MEMBER_VERIFY) {
9920          const memberId = companyStore.company().membershipId ?? "";
9921          if (memberId.trim().length === 0 || memberId.trim() === "Not a Member" || [
9922            ResponseStatus.ERROR,
9923            ResponseStatus.LOADED
9924          ].includes(purchaseStore.membershipResponseStatus())) {
9925            patchState(store, {
9926              networkState: AddLicenseNetworkState.LOADING_MAIN_COMPONENT,
9927              isMember: purchaseStore.membershipResponseStatus() === ResponseStatus.LOADED
9928            });
9929            return;
9930          } else if (purchaseStore.membershipResponseStatus() === ResponseStatus.LOADING) {
9931            return;
9932          } else if (purchaseStore.membershipResponseStatus() === ResponseStatus.IDLE && purchaseStore.suggestedCompanyName().length > 0) {
9933            patchState(store, {
9934              networkState: AddLicenseNetworkState.LOADING_MAIN_COMPONENT,
9935              isMember: true
9936            });
9937            purchaseStore.setMembershipVerificationState(ResponseStatus.LOADED, true);
9938            return;
9939          }
9940          purchaseStore.verifyMembership({
9941            companyId: companyStore.company().companyId,
9942            companyName: companyStore.company().companyName,
9943            memberId
9944          });
9945        } else if (store.networkState() === AddLicenseNetworkState.LOADING_MAIN_COMPONENT && purchaseStore.productResponseStatus() === ResponseStatus.LOADED && companyStore.submissionStatus() === ResponseStatus.LOADED && subscriptionStore.submissionStatus() === ResponseStatus.LOADED) {
9946          const subscription = subscriptionStore.subscriptions().website;
9947          if (!subscription) {
9948            logger.error("No website subscription detected");
9949            yield router.navigate(["/profile", "company-settings", "manage-subscriptions"]);
9950          }
9951          const productsFilter = purchaseStore.allWebProducts().filter((x) => x.productId === subscription.productId && x.productPricingId === subscription.productPricingId && x.productPricingTierId === subscription.productPricingTierId);
9952          let selectedProduct;
9953          if (productsFilter && productsFilter.length > 0)
9954            selectedProduct = productsFilter[0];
9955          const licenseSeats = 1;
9956          const purchaseInformation = {
9957            licenseSeats,
9958            productType: ProductType.WebApplication,
9959            subscriptionTierId: selectedProduct?.productPricingTierId ?? ""
9960          };
9961          const order$ = store.order;
9962          patchState(store, {
9963            networkState: AddLicenseNetworkState.IDLE,
9964            selectedProduct,
9965            order: __spreadProps(__spreadValues({}, order$()), {
9966              purchaseInformation
9967            })
9968          });
9969          store.setNumLicenses(licenseSeats);
9970        }
9971      }
9972    }));
9973  }
9974}));
9975
9976// src/app/features/profile/components/website-add-seats/components/website-add-seats-licenses/website-add-seats-licenses.component.ts
9977var _c07 = ["exceedLicenseModal"];
9978var _c110 = ["purchaseBeyondLicensesLimit"];
9979var _c24 = (a0) => ({ subscriptionTier: a0 });
9980var _c34 = (a0) => ({ memberLabel: a0 });
9981var _c44 = () => ({ height: "600px", width: "100%", margin: "1rem 0rem", "border-radius": "22px" });
9982var _c54 = (a0) => ({ assignedLicenses: a0 });
9983var _c64 = (a0, a1) => ({ pricePerLicense: a0, membership: a1 });
9984var _c74 = (a0) => ({ maxLicenses: a0 });
9985var _c84 = (a0) => ({ adjustedAmount: a0 });
9986function WebsiteAddSeatsLicensesComponent_Conditional_3_Conditional_5_Template(rf, ctx) {
9987  if (rf & 1) {
9988    \u0275\u0275elementStart(0, "div", 12)(1, "div")(2, "strong");
9989    \u0275\u0275text(3);
9990    \u0275\u0275pipe(4, "translate");
9991    \u0275\u0275elementEnd()();
9992    \u0275\u0275elementStart(5, "div");
9993    \u0275\u0275text(6, "$ 3500");
9994    \u0275\u0275elementEnd()();
9995  }
9996  if (rf & 2) {
9997    \u0275\u0275advance(3);
9998    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 1, "COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.ADDITIONAL_LICENSES_BUNDLE_PRICE"));
9999  }
10000}
10001function WebsiteAddSeatsLicensesComponent_Conditional_3_Conditional_6_Template(rf, ctx) {
10002  if (rf & 1) {
10003    \u0275\u0275elementStart(0, "div", 24)(1, "div")(2, "strong");
10004    \u0275\u0275text(3);
10005    \u0275\u0275pipe(4, "translate");
10006    \u0275\u0275elementEnd()();
10007    \u0275\u0275elementStart(5, "div");
10008    \u0275\u0275text(6);
10009    \u0275\u0275elementEnd()();
10010    \u0275\u0275elementStart(7, "div", 24)(8, "div")(9, "strong");
10011    \u0275\u0275text(10);
10012    \u0275\u0275pipe(11, "translate");
10013    \u0275\u0275elementEnd()();
10014    \u0275\u0275elementStart(12, "div");
10015    \u0275\u0275text(13);
10016    \u0275\u0275elementEnd()();
10017  }
10018  if (rf & 2) {
10019    const ctx_r1 = \u0275\u0275nextContext(2);
10020    \u0275\u0275advance(3);
10021    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 4, "COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.MEMBER_PRICE_PER_LICENSE"));
10022    \u0275\u0275advance(3);
10023    \u0275\u0275textInterpolate1("$ ", ctx_r1.selectedProduct$().memberCost);
10024    \u0275\u0275advance(4);
10025    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(11, 6, "COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.NON_MEMBER_PRICE_PER_LICENSE"));
10026    \u0275\u0275advance(3);
10027    \u0275\u0275textInterpolate1("$ ", ctx_r1.selectedProduct$().nonMemberCost);
10028  }
10029}
10030function WebsiteAddSeatsLicensesComponent_Conditional_3_Conditional_24_Template(rf, ctx) {
10031  if (rf & 1) {
10032    \u0275\u0275elementStart(0, "p");
10033    \u0275\u0275text(1);
10034    \u0275\u0275elementEnd();
10035  }
10036  if (rf & 2) {
10037    const ctx_r1 = \u0275\u0275nextContext(2);
10038    \u0275\u0275advance();
10039    \u0275\u0275textInterpolate(ctx_r1.discountText);
10040  }
10041}
10042function WebsiteAddSeatsLicensesComponent_Conditional_3_Template(rf, ctx) {
10043  if (rf & 1) {
10044    const _r1 = \u0275\u0275getCurrentView();
10045    \u0275\u0275elementStart(0, "nmfta-card", 5);
10046    \u0275\u0275pipe(1, "translate");
10047    \u0275\u0275pipe(2, "translate");
10048    \u0275\u0275elementStart(3, "div", 10)(4, "div", 11);
10049    \u0275\u0275conditionalCreate(5, WebsiteAddSeatsLicensesComponent_Conditional_3_Conditional_5_Template, 7, 3, "div", 12)(6, WebsiteAddSeatsLicensesComponent_Conditional_3_Conditional_6_Template, 14, 8);
10050    \u0275\u0275elementEnd()();
10051    \u0275\u0275elementStart(7, "div", 13)(8, "div", 14)(9, "div", 15)(10, "p", 16);
10052    \u0275\u0275text(11);
10053    \u0275\u0275pipe(12, "translate");
10054    \u0275\u0275elementEnd();
10055    \u0275\u0275elementStart(13, "div", 17)(14, "nmfta-button", 18);
10056    \u0275\u0275listener("buttonClick", function WebsiteAddSeatsLicensesComponent_Conditional_3_Template_nmfta_button_buttonClick_14_listener() {
10057      \u0275\u0275restoreView(_r1);
10058      const ctx_r1 = \u0275\u0275nextContext();
10059      return \u0275\u0275resetView(ctx_r1.removeLicense());
10060    });
10061    \u0275\u0275elementEnd();
10062    \u0275\u0275elementStart(15, "nmfta-input-wrapper")(16, "input", 19);
10063    \u0275\u0275listener("change", function WebsiteAddSeatsLicensesComponent_Conditional_3_Template_input_change_16_listener() {
10064      \u0275\u0275restoreView(_r1);
10065      const ctx_r1 = \u0275\u0275nextContext();
10066      return \u0275\u0275resetView(ctx_r1.onLicenseTextChange());
10067    })("keydown.enter", function WebsiteAddSeatsLicensesComponent_Conditional_3_Template_input_keydown_enter_16_listener() {
10068      \u0275\u0275restoreView(_r1);
10069      const ctx_r1 = \u0275\u0275nextContext();
10070      return \u0275\u0275resetView(ctx_r1.onEnterPressed());
10071    });
10072    \u0275\u0275elementEnd()();
10073    \u0275\u0275elementStart(17, "nmfta-button", 20);
10074    \u0275\u0275listener("buttonClick", function WebsiteAddSeatsLicensesComponent_Conditional_3_Template_nmfta_button_buttonClick_17_listener() {
10075      \u0275\u0275restoreView(_r1);
10076      const ctx_r1 = \u0275\u0275nextContext();
10077      return \u0275\u0275resetView(ctx_r1.addLicense());
10078    });
10079    \u0275\u0275elementEnd()()();
10080    \u0275\u0275elementStart(18, "div", 21);
10081    \u0275\u0275element(19, "p", 22);
10082    \u0275\u0275pipe(20, "translate");
10083    \u0275\u0275elementStart(21, "p", 23);
10084    \u0275\u0275text(22);
10085    \u0275\u0275pipe(23, "currency");
10086    \u0275\u0275elementEnd();
10087    \u0275\u0275conditionalCreate(24, WebsiteAddSeatsLicensesComponent_Conditional_3_Conditional_24_Template, 2, 1, "p");
10088    \u0275\u0275elementEnd()()()();
10089  }
10090  if (rf & 2) {
10091    const ctx_r1 = \u0275\u0275nextContext();
10092    \u0275\u0275property("title", \u0275\u0275pipeBind1(1, 9, "COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.HEADER"))("subTitle", \u0275\u0275pipeBind2(2, 11, "COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.DESCRIPTION", \u0275\u0275pureFunction1(21, _c24, ctx_r1.subscription$().website.subscriptionTier)));
10093    \u0275\u0275advance(5);
10094    \u0275\u0275conditional(ctx_r1.currentLicenseAmount$() >= ctx_r1.licensesSeatMax$() ? 5 : 6);
10095    \u0275\u0275advance(6);
10096    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(12, 14, "COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.ENTER_NUM_LICENSES_DESC"), " ");
10097    \u0275\u0275advance(3);
10098    \u0275\u0275property("disabled", ctx_r1.licenseQuantity <= 1);
10099    \u0275\u0275advance(5);
10100    \u0275\u0275property("innerHTML", \u0275\u0275interpolate(\u0275\u0275pipeBind2(20, 16, "COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.TOTAL_MEMBER_PRICE_DESC", \u0275\u0275pureFunction1(23, _c34, ctx_r1.isMember$() ? "Member" : "Non-Member"))), \u0275\u0275sanitizeHtml);
10101    \u0275\u0275advance(3);
10102    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(23, 19, ctx_r1.calculateTotalCost()), " ");
10103    \u0275\u0275advance(2);
10104    \u0275\u0275conditional(ctx_r1.discountText.length > 0 ? 24 : -1);
10105  }
10106}
10107function WebsiteAddSeatsLicensesComponent_Conditional_4_Template(rf, ctx) {
10108  if (rf & 1) {
10109    \u0275\u0275element(0, "ngx-skeleton-loader", 6);
10110  }
10111  if (rf & 2) {
10112    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c44));
10113  }
10114}
10115function WebsiteAddSeatsLicensesComponent_Conditional_6_Template(rf, ctx) {
10116  if (rf & 1) {
10117    \u0275\u0275elementStart(0, "nmfta-card", 7);
10118    \u0275\u0275pipe(1, "translate");
10119    \u0275\u0275element(2, "nmfta-data-panel", 25);
10120    \u0275\u0275pipe(3, "translate");
10121    \u0275\u0275pipe(4, "translate");
10122    \u0275\u0275element(5, "nmfta-data-panel", 26);
10123    \u0275\u0275pipe(6, "translate");
10124    \u0275\u0275pipe(7, "translate");
10125    \u0275\u0275element(8, "nmfta-data-panel", 25);
10126    \u0275\u0275pipe(9, "translate");
10127    \u0275\u0275pipe(10, "translate");
10128    \u0275\u0275elementStart(11, "div", 13)(12, "div", 27)(13, "div", 28)(14, "p");
10129    \u0275\u0275text(15);
10130    \u0275\u0275pipe(16, "translate");
10131    \u0275\u0275elementEnd();
10132    \u0275\u0275elementStart(17, "p", 23);
10133    \u0275\u0275text(18);
10134    \u0275\u0275elementEnd()()()()();
10135  }
10136  if (rf & 2) {
10137    const ctx_r1 = \u0275\u0275nextContext();
10138    \u0275\u0275property("title", \u0275\u0275interpolate(\u0275\u0275pipeBind1(1, 18, "COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.HEADER")));
10139    \u0275\u0275advance(2);
10140    \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(3, 20, "COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.EXISTING_LICENSES_PROPERTY.LABEL")))("description", \u0275\u0275interpolate(\u0275\u0275pipeBind2(4, 22, "COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.EXISTING_LICENSES_PROPERTY.VALUE", \u0275\u0275pureFunction1(37, _c24, ctx_r1.subscription$().website.subscriptionTier))))("propertyValue", \u0275\u0275interpolate(ctx_r1.subscription$().website.licenses));
10141    \u0275\u0275advance(3);
10142    \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(6, 25, "COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.ASSIGNED_LICENSES_PROPERTY.LABEL")))("description", \u0275\u0275interpolate(\u0275\u0275pipeBind2(7, 27, "COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.ASSIGNED_LICENSES_PROPERTY.VALUE", \u0275\u0275pureFunction1(39, _c54, ctx_r1.company$().numberOfAssignedLicenses))));
10143    \u0275\u0275advance(3);
10144    \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(9, 30, "COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.ADDITIONAL_LICENSES_PROPERTY.LABEL")))("description", \u0275\u0275pipeBind2(10, 32, "COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.ADDITIONAL_LICENSES_PROPERTY.VALUE", \u0275\u0275pureFunction2(41, _c64, ctx_r1.isMember$() ? ctx_r1.selectedProduct$().memberCost : ctx_r1.selectedProduct$().nonMemberCost, ctx_r1.isMember$() ? "Member" : "Non-Member")) + ctx_r1.discountText)("propertyValue", ctx_r1.licenseQuantity.toString());
10145    \u0275\u0275advance(7);
10146    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(16, 35, "COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.FOOTER"), " ");
10147    \u0275\u0275advance(3);
10148    \u0275\u0275textInterpolate1(" ", (ctx_r1.subscription$().website.licenses ?? 0) + ctx_r1.licenseQuantity, " ");
10149  }
10150}
10151function WebsiteAddSeatsLicensesComponent_Conditional_7_Template(rf, ctx) {
10152  if (rf & 1) {
10153    \u0275\u0275element(0, "ngx-skeleton-loader", 6);
10154  }
10155  if (rf & 2) {
10156    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c44));
10157  }
10158}
10159function WebsiteAddSeatsLicensesComponent_Conditional_8_Template(rf, ctx) {
10160  if (rf & 1) {
10161    const _r3 = \u0275\u0275getCurrentView();
10162    \u0275\u0275elementStart(0, "div", 8)(1, "nmfta-button", 29);
10163    \u0275\u0275listener("buttonClick", function WebsiteAddSeatsLicensesComponent_Conditional_8_Template_nmfta_button_buttonClick_1_listener() {
10164      \u0275\u0275restoreView(_r3);
10165      const ctx_r1 = \u0275\u0275nextContext();
10166      return \u0275\u0275resetView(ctx_r1.onComplete());
10167    });
10168    \u0275\u0275text(2);
10169    \u0275\u0275pipe(3, "translate");
10170    \u0275\u0275elementEnd()();
10171  }
10172  if (rf & 2) {
10173    let tmp_4_0;
10174    const ctx_r1 = \u0275\u0275nextContext();
10175    \u0275\u0275advance();
10176    \u0275\u0275property("type", "submit")("disabled", !((((tmp_4_0 = ctx_r1.licenseForm.get("licenseQuantity")) == null ? null : tmp_4_0.value) ?? 0) > 0));
10177    \u0275\u0275advance();
10178    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(3, 3, "COMPANY_SETTINGS.ADD_NEW_LICENSES.BUTTONS.NEXT"), " ");
10179  }
10180}
10181function WebsiteAddSeatsLicensesComponent_ng_template_9_Conditional_7_Template(rf, ctx) {
10182  if (rf & 1) {
10183    \u0275\u0275elementStart(0, "span");
10184    \u0275\u0275text(1);
10185    \u0275\u0275pipe(2, "translate");
10186    \u0275\u0275elementEnd();
10187  }
10188  if (rf & 2) {
10189    const ctx_r1 = \u0275\u0275nextContext(2);
10190    \u0275\u0275advance();
10191    \u0275\u0275textInterpolate(\u0275\u0275pipeBind2(2, 1, "PURCHASE.PURCHASE_LICENSES.PURCHASE_LIMIT_EXCEEDED_DESC_1_PART_2", \u0275\u0275pureFunction1(4, _c84, ctx_r1.licenseQuantity)));
10192  }
10193}
10194function WebsiteAddSeatsLicensesComponent_ng_template_9_Template(rf, ctx) {
10195  if (rf & 1) {
10196    \u0275\u0275elementStart(0, "div", 10)(1, "div", 30)(2, "div", 31)(3, "div", 32)(4, "div");
10197    \u0275\u0275text(5);
10198    \u0275\u0275pipe(6, "translate");
10199    \u0275\u0275conditionalCreate(7, WebsiteAddSeatsLicensesComponent_ng_template_9_Conditional_7_Template, 3, 6, "span");
10200    \u0275\u0275elementEnd();
10201    \u0275\u0275elementStart(8, "div", 33);
10202    \u0275\u0275text(9);
10203    \u0275\u0275pipe(10, "translate");
10204    \u0275\u0275elementStart(11, "a", 34);
10205    \u0275\u0275text(12, "Customer Service");
10206    \u0275\u0275elementEnd();
10207    \u0275\u0275text(13, ". ");
10208    \u0275\u0275elementEnd()()()()();
10209  }
10210  if (rf & 2) {
10211    const ctx_r1 = \u0275\u0275nextContext();
10212    \u0275\u0275advance(5);
10213    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind2(6, 3, "PURCHASE.PURCHASE_LICENSES.PURCHASE_LIMIT_EXCEEDED_DESC_1_PART_1", \u0275\u0275pureFunction1(8, _c74, ctx_r1.licensesSeatMax$())), " ");
10214    \u0275\u0275advance(2);
10215    \u0275\u0275conditional(ctx_r1.currentLicenseAmount$() < ctx_r1.licensesSeatMax$() ? 7 : -1);
10216    \u0275\u0275advance(2);
10217    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(10, 6, "PURCHASE.PURCHASE_LICENSES.PURCHASE_LIMIT_EXCEEDED_DESC_2"), " ");
10218  }
10219}
10220function WebsiteAddSeatsLicensesComponent_ng_template_11_Template(rf, ctx) {
10221  if (rf & 1) {
10222    const _r4 = \u0275\u0275getCurrentView();
10223    \u0275\u0275elementStart(0, "div", 35)(1, "div", 36)(2, "nmfta-alert");
10224    \u0275\u0275text(3);
10225    \u0275\u0275pipe(4, "translate");
10226    \u0275\u0275elementEnd()();
10227    \u0275\u0275elementStart(5, "div", 37)(6, "div", 38)(7, "div", 24)(8, "p", 39);
10228    \u0275\u0275text(9);
10229    \u0275\u0275pipe(10, "translate");
10230    \u0275\u0275elementEnd();
10231    \u0275\u0275elementStart(11, "div", 40)(12, "nmfta-button", 18);
10232    \u0275\u0275listener("buttonClick", function WebsiteAddSeatsLicensesComponent_ng_template_11_Template_nmfta_button_buttonClick_12_listener() {
10233      \u0275\u0275restoreView(_r4);
10234      const ctx_r1 = \u0275\u0275nextContext();
10235      return \u0275\u0275resetView(ctx_r1.removeAdditionalLicense());
10236    });
10237    \u0275\u0275elementEnd();
10238    \u0275\u0275elementStart(13, "nmfta-input-wrapper");
10239    \u0275\u0275element(14, "input", 41);
10240    \u0275\u0275elementEnd();
10241    \u0275\u0275elementStart(15, "nmfta-button", 20);
10242    \u0275\u0275listener("buttonClick", function WebsiteAddSeatsLicensesComponent_ng_template_11_Template_nmfta_button_buttonClick_15_listener() {
10243      \u0275\u0275restoreView(_r4);
10244      const ctx_r1 = \u0275\u0275nextContext();
10245      return \u0275\u0275resetView(ctx_r1.addAdditionalLicense());
10246    });
10247    \u0275\u0275elementEnd()()();
10248    \u0275\u0275elementStart(16, "div", 42);
10249    \u0275\u0275element(17, "p", 22);
10250    \u0275\u0275pipe(18, "translate");
10251    \u0275\u0275elementStart(19, "p", 43);
10252    \u0275\u0275text(20);
10253    \u0275\u0275pipe(21, "currency");
10254    \u0275\u0275elementEnd()()()()();
10255  }
10256  if (rf & 2) {
10257    let tmp_5_0;
10258    const ctx_r1 = \u0275\u0275nextContext();
10259    \u0275\u0275advance(3);
10260    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(4, 6, "PURCHASE.PURCHASE_LICENSES.PURCHASE_BEYOND_LIMIT_DESC"), " ");
10261    \u0275\u0275advance(6);
10262    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(10, 8, "PURCHASE.PURCHASE_LICENSES.PURCHASE_BEYOND_LIMIT_BY_500_DESC"), " ");
10263    \u0275\u0275advance(3);
10264    \u0275\u0275property("disabled", ((tmp_5_0 = ctx_r1.addAdditionalLicenseForm.get("additionalLicenseQuantity")) == null ? null : tmp_5_0.value) == 0);
10265    \u0275\u0275advance(5);
10266    \u0275\u0275property("innerHTML", \u0275\u0275interpolate(\u0275\u0275pipeBind1(18, 
1026610, "PURCHASE.PURCHASE_LICENSES.TOTAL_ADDITIONAL_PRICE")), \u0275\u0275sanitizeHtml);
10267    \u0275\u0275advance(3);
10268    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(21, 12, ctx_r1.totalAdditionalCost));
10269  }
10270}
10271var WebsiteAddSeatsLicensesComponent = class _WebsiteAddSeatsLicensesComponent {
10272  exceedLicenseModal;
10273  purchaseBeyondLicensesLimit;
10274  // Inputs/Outputs
10275  complete = new EventEmitter();
10276  back = new EventEmitter();
10277  // DI Services
10278  addLicenseStore = inject(AddLicensesStore);
10279  userStore = inject(UserStore);
10280  dialog = inject(MatDialog);
10281  purchaseStore = inject(PurchaseStore);
10282  subscriptionStore = inject(SubscriptionStore);
10283  companyStore = inject(CompanyStore);
10284  cdr = inject(ChangeDetectorRef);
10285  translateService = inject(TranslateService);
10286  // Properties
10287  licenseForm = new FormGroup({
10288    licenseQuantity: new FormControl(1, [Validators.required, Validators.min(1)])
10289  });
10290  addAdditionalLicenseForm = new FormGroup({
10291    additionalLicenseQuantity: new FormControl({ value: 0, disabled: true })
10292  });
10293  isMember$ = this.addLicenseStore.isMember;
10294  isCustomerService$ = this.userStore.isCustomerService;
10295  selectedProduct$ = this.addLicenseStore.selectedProduct;
10296  subscription$ = this.subscriptionStore.subscriptions;
10297  company$ = this.companyStore.company;
10298  networkState$ = this.addLicenseStore.networkState;
10299  seatDiscount$ = this.subscriptionStore.getAddLicenseDiscountPercentage;
10300  networkingStates = AddLicenseNetworkState;
10301  webProducts$ = computed(() => {
10302    return this.purchaseStore.webProducts();
10303  }, ...ngDevMode ? [{ debugName: "webProducts$" }] : []);
10304  licensesSeatMax$ = computed(() => {
10305    return this.webProducts$().find((p) => p.subscriptionTier === "National")?.licenseSeatMax ?? 0;
10306  }, ...ngDevMode ? [{ debugName: "licensesSeatMax$" }] : []);
10307  currentLicenseAmount$ = computed(() => {
10308    return this.subscription$().website?.licenses ?? 0;
10309  }, ...ngDevMode ? [{ debugName: "currentLicenseAmount$" }] : []);
10310  nationalTierCaps$ = this.purchaseStore.nationalTierWebAppCappedPricing;
10311  maxRemaingMemberPrice$ = computed(() => {
10312    const company = this.company$();
10313    const isBundle = !company.companySubscriptions.some((sub) => sub.productName?.includes("BFD")) && company.companySubscriptions.some((sub) => sub.productName?.includes("Bundle"));
10314    const nationalTierCap = isBundle ? this.nationalTierCaps$().bundle : this.nationalTierCaps$().webApp;
10315    return nationalTierCap - (company?.totalSpent ?? 0);
10316  }, ...ngDevMode ? [{ debugName: "maxRemaingMemberPrice$" }] : []);
10317  preventNext = false;
10318  totalAdditionalCost = 0;
10319  dialogRef;
10320  isDialogOpen = false;
10321  constructor() {
10322    effect(() => {
10323      const webSubscription = this.subscriptionStore.subscriptions().website;
10324      const licenseSeatMax = this.licensesSeatMax$();
10325      if (webSubscription && licenseSeatMax) {
10326        if ((webSubscription.licenses ?? 0) >= licenseSeatMax) {
10327          this.licenseForm.get("licenseQuantity")?.setValue(0);
10328          this.licenseForm.get("licenseQuantity")?.disable();
10329        }
10330      }
10331    });
10332  }
10333  // Component Actions
10334  onComplete() {
10335    if (!this.preventNext) {
10336      this.checkForAdditionalLicenses();
10337      this.complete.emit();
10338    }
10339    this.preventNext = false;
10340  }
10341  onGoBack() {
10342    this.back.emit();
10343  }
10344  onLicenseTextChange() {
10345    this.checkExceedLicenseLimit();
10346    const isMemberOverTheCap = this.isMember$() && Number(this.calculateTotalCost()) >= this.maxRemaingMemberPrice$();
10347    this.addLicenseStore.setNumLicenses(this.licenseQuantity, this.maxRemaingMemberPrice$(), isMemberOverTheCap);
10348  }
10349  addLicense() {
10350    const licenseCtrl = this.licenseForm.get("licenseQuantity");
10351    const additionalCtrl = this.addAdditionalLicenseForm.get("additionalLicenseQuantity");
10352    const currentQuantity = licenseCtrl?.value ?? 0;
10353    const additionalQuantity = additionalCtrl?.value ?? 0;
10354    if (additionalQuantity == 0) {
10355      if (this.currentLicenseAmount$() < this.licensesSeatMax$()) {
10356        licenseCtrl?.setValue(currentQuantity + 1);
10357      }
10358    }
10359    this.checkExceedLicenseLimit(additionalQuantity > 0);
10360    const isMemberOverTheCap = this.isMember$() && Number(this.calculateTotalCost()) >= this.maxRemaingMemberPrice$();
10361    this.addLicenseStore.setNumLicenses(this.licenseQuantity, this.maxRemaingMemberPrice$(), isMemberOverTheCap);
10362  }
10363  removeLicense() {
10364    const licenseCtrl = this.licenseForm.get("licenseQuantity");
10365    const additionalCtrl = this.addAdditionalLicenseForm.get("additionalLicenseQuantity");
10366    const currentQuantity = licenseCtrl?.value ?? 0;
10367    const additionalQuantity = additionalCtrl?.value ?? 0;
10368    if (additionalQuantity > 0) {
10369      if (this.currentLicenseAmount$() > this.licensesSeatMax$()) {
10370        additionalCtrl?.setValue(additionalQuantity - 500);
10371        this.totalAdditionalCost -= 3500;
10372        licenseCtrl?.setValue(currentQuantity - 500);
10373        licenseCtrl?.disable();
10374      } else {
10375        additionalCtrl?.setValue(0);
10376        this.totalAdditionalCost = 0;
10377        licenseCtrl?.setValue(this.licensesSeatMax$() - this.currentLicenseAmount$());
10378        licenseCtrl?.[this.currentLicenseAmount$() >= this.licensesSeatMax$() ? "disable" : "enable"]();
10379      }
10380    } else if (currentQuantity > 1) {
10381      this.licenseForm.get("licenseQuantity")?.setValue(currentQuantity - 1);
10382    }
10383    const isMemberOverTheCap = this.isMember$() && Number(this.calculateTotalCost()) >= this.maxRemaingMemberPrice$();
10384    this.addLicenseStore.setNumLicenses(this.licenseQuantity, this.maxRemaingMemberPrice$(), isMemberOverTheCap);
10385  }
10386  onEnterPressed() {
10387    this.checkExceedLicenseLimit(false, true);
10388  }
10389  addAdditionalLicense() {
10390    const addQty = 500;
10391    const additionalCtrl = this.addAdditionalLicenseForm.get("additionalLicenseQuantity");
10392    const licenseCtrl = this.licenseForm.get("licenseQuantity");
10393    const newAdditional = (additionalCtrl?.value ?? 0) + addQty;
10394    const newLicense = (licenseCtrl?.value ?? 0) + addQty;
10395    additionalCtrl?.setValue(newAdditional);
10396    licenseCtrl?.setValue(newLicense, { emitEvent: false });
10397    licenseCtrl?.[newLicense > this.licensesSeatMax$() || this.currentLicenseAmount$() >= this.licensesSeatMax$() ? "disable" : "enable"]();
10398    this.totalAdditionalCost += 3500;
10399    this.calculateTotalCost();
10400    this.cdr.detectChanges();
10401  }
10402  removeAdditionalLicense() {
10403    const removeQty = 500;
10404    const additionalCtrl = this.addAdditionalLicenseForm.get("additionalLicenseQuantity");
10405    const licenseCtrl = this.licenseForm.get("licenseQuantity");
10406    const newAdditional = (additionalCtrl?.value ?? 0) - removeQty;
10407    const newLicense = (licenseCtrl?.value ?? 0) - removeQty;
10408    additionalCtrl?.setValue(newAdditional);
10409    licenseCtrl?.setValue(newLicense, { emitEvent: false });
10410    licenseCtrl?.[newLicense > this.licensesSeatMax$() || this.currentLicenseAmount$() >= this.licensesSeatMax$() ? "disable" : "enable"]();
10411    this.totalAdditionalCost -= 3500;
10412    this.calculateTotalCost();
10413    this.cdr.detectChanges();
10414  }
10415  calculateTotalCost() {
10416    const quantity = this.licenseForm.get("licenseQuantity")?.value ?? 0;
10417    let totalCost = 0;
10418    const currentLicenses = this.currentLicenseAmount$();
10419    if (this.selectedProduct$()) {
10420      totalCost = this.addLicenseStore.getPricePerLicense();
10421      if (!this.isMember$()) {
10422        const additionalLicenseCtrl = this.addAdditionalLicenseForm.get("additionalLicenseQuantity");
10423        if (additionalLicenseCtrl && additionalLicenseCtrl.value && additionalLicenseCtrl.value > 0) {
10424          if (currentLicenses > this.licensesSeatMax$()) {
10425            return this.totalAdditionalCost.toString();
10426          } else {
10427            const licenseQuantity = this.licensesSeatMax$() - this.currentLicenseAmount$();
10428            totalCost *= licenseQuantity;
10429            return (totalCost + this.totalAdditionalCost).toString();
10430          }
10431        } else if (currentLicenses > this.licensesSeatMax$()) {
10432          return "0";
10433        } else {
10434          totalCost *= quantity;
10435        }
10436      } else {
10437        if (currentLicenses >= this.licensesSeatMax$()) {
10438          totalCost = 0;
10439          this.totalAdditionalCost = 0;
10440        } else {
10441          totalCost *= quantity;
10442          if (totalCost >= this.maxRemaingMemberPrice$()) {
10443            totalCost = this.maxRemaingMemberPrice$();
10444            this.totalAdditionalCost = 0;
10445          }
10446        }
10447      }
10448    }
10449    return (totalCost ?? 0).toString();
10450  }
10451  checkForAdditionalLicenses() {
10452    const additionalQuantity = this.addAdditionalLicenseForm.get("additionalLicenseQuantity")?.value ?? 0;
10453    if (additionalQuantity > 0) {
10454      const totalCost = parseFloat(this.calculateTotalCost());
10455      this.addLicenseStore.setAdditionalLicenses(this.licenseQuantity, totalCost, this.currentLicenseAmount$(), this.licensesSeatMax$());
10456    }
10457  }
10458  checkExceedLicenseLimit(fromAddButton = false, enterPressed = false) {
10459    if (!this.webProducts$().length) {
10460      return;
10461    }
10462    if (this.currentLicenseAmount$() >= this.licensesSeatMax$()) {
10463      const additionalLicenseCtrl = this.addAdditionalLicenseForm.get("additionalLicenseQuantity");
10464      if (additionalLicenseCtrl?.value == 0) {
10465        this.licenseForm.get("licenseQuantity")?.setValue(0);
10466      }
10467      if (!this.isCustomerService$()) {
10468        this.showExceededLimitModal();
10469      } else {
10470        this.showPurchaseBeyondLicensesLimitModal();
10471      }
10472    } else {
10473      const quantity = this.currentLicenseAmount$() + this.licenseQuantity;
10474      const licenseMax = this.licensesSeatMax$() - this.currentLicenseAmount$();
10475      if (quantity > this.licensesSeatMax$()) {
10476        if (!fromAddButton) {
10477          this.licenseForm.get("licenseQuantity")?.setValue(licenseMax);
10478        }
10479        if (!this.isCustomerService$()) {
10480          this.showExceededLimitModal();
10481          if (enterPressed) {
10482            this.preventNext = true;
10483          }
10484        } else {
10485          this.showPurchaseBeyondLicensesLimitModal();
10486          if (enterPressed) {
10487            this.preventNext = true;
10488          }
10489        }
10490      }
10491    }
10492  }
10493  showExceededLimitModal() {
10494    if (this.isDialogOpen) {
10495      return;
10496    }
10497    this.isDialogOpen = true;
10498    this.dialogRef = this.dialog.open(DialogComponent, {
10499      maxWidth: "640px",
10500      height: "370px",
10501      data: {
10502        title: "PURCHASE.PURCHASE_LICENSES.PURCHASE_LIMIT_EXCEEDED",
10503        icon: "warning_amber",
10504        content: this.exceedLicenseModal,
10505        actions: [
10506          {
10507            id: "Generic_OK",
10508            label: "Generic_OK",
10509            styleType: "contained",
10510            onClick: () => this.dialogRef.close()
10511          }
10512        ]
10513      }
10514    });
10515    this.dialogRef.afterClosed().subscribe(() => {
10516      this.isDialogOpen = false;
10517    });
10518  }
10519  showPurchaseBeyondLicensesLimitModal(fromRemoveLicenseButton = false) {
10520    this.dialogRef = this.dialog.open(DialogComponent, {
10521      maxWidth: "675px",
10522      height: "430px",
10523      data: {
10524        title: "PURCHASE.PURCHASE_LICENSES.PURCHASE_BEYOND_LIMIT",
10525        icon: "workspace_premium",
10526        content: this.purchaseBeyondLicensesLimit,
10527        actions: [
10528          {
10529            id: "Generic_Close",
10530            label: "Generic_Close",
10531            styleType: "contained",
10532            onClick: () => this.dialogRef.close()
10533          }
10534        ]
10535      }
10536    });
10537  }
10538  get licenseQuantity() {
10539    return this.licenseForm.get("licenseQuantity")?.value || 0;
10540  }
10541  get discountText() {
10542    const translatedDesc = this.translateService.instant("COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.PRORATED");
10543    return this.seatDiscount$() > 0 ? ` (-${this.seatDiscount$()}% ${translatedDesc})` : "";
10544  }
10545  static \u0275fac = function WebsiteAddSeatsLicensesComponent_Factory(__ngFactoryType__) {
10546    return new (__ngFactoryType__ || _WebsiteAddSeatsLicensesComponent)();
10547  };
10548  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _WebsiteAddSeatsLicensesComponent, selectors: [["nmfta-website-add-seats-licenses"]], viewQuery: function WebsiteAddSeatsLicensesComponent_Query(rf, ctx) {
10549    if (rf & 1) {
10550      \u0275\u0275viewQuery(_c07, 7);
10551      \u0275\u0275viewQuery(_c110, 7);
10552    }
10553    if (rf & 2) {
10554      let _t;
10555      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.exceedLicenseModal = _t.first);
10556      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.purchaseBeyondLicensesLimit = _t.first);
10557    }
10558  }, outputs: { complete: "complete", back: "back" }, decls: 13, vars: 5, consts: [["exceedLicenseModal", ""], ["purchaseBeyondLicensesLimit", ""], [1, "pt-3", 3, "formGroup"], [1, "card-columns", "pb-4"], [1, "card"], [3, "title", "subTitle"], ["count", "1", 3, "theme"], [3, "title"], [1, "form-actions"], [3, "formGroup"], [1, "container-fluid"], [1, "row"], [1, "col-12"], ["footer-content", ""], [1, "row", "align-items-center", "license-row"], [1, "col-12", "col-md"], [1, "license-input-label", "text-center", "text-md-start"], [1, "license-input", "d-flex", "gap-2", "align-bottom", "justify-content-center", "justify-content-md-start"], ["iconName", "remove", "styleType", "contained", 3, "buttonClick", "disabled"], ["type", "number", "formControlName", "licenseQuantity", 3, "change", "keydown.enter"], ["iconName", "add", "styleType", "contained", 3, "buttonClick"], [1, "col-12", "col-md-auto", "license-total", "align-items-center", "align-items-md-end", "pt-3", "pt-md-0"], [3, "innerHTML"], [1, "total"], [1, "col-12", "col-md-6"], [3, "propertyName", "description", "propertyValue"], ["propertyValue", "", 3, "propertyName", "description"], [1, "row", "license-row"], [1, "col-12", "col-md-6", "license-total-info"], ["styleType", "contained", "rightIcon", "chevron_right", 3, "buttonClick", "type", "disabled"], [1, "p-1", "p-md-4"], [1, "row", "p-1", "p-md-3", "text-center"], [1, "text-black"], [1, "mt-4"], ["href", "https://nmfta.org/contact", "target", "_blank", "rel", "noopener noreferrer", 1, "text-accent"], [1, "dialog-container"], [1, "purchase-beyond-lice
10558nses-header"], [1, "purchase-beyond-licenses-body"], [1, "row", "align-items-center"], [1, "text-center", "text-md-start"], [1, "d-flex", "gap-2", "align-bottom", "justify-content-center", "justify-content-md-start"], ["type", "number", "formControlName", "additionalLicenseQuantity"], [1, "col-12", "col-md-6", "additional-license-total", "align-items-center", "align-items-md-end", "pt-3", "pt-md-0"], [1, "additional-total"]], template: function WebsiteAddSeatsLicensesComponent_Template(rf, ctx) {
10559    if (rf & 1) {
10560      \u0275\u0275elementStart(0, "form", 2)(1, "div", 3)(2, "div", 4);
10561      \u0275\u0275conditionalCreate(3, WebsiteAddSeatsLicensesComponent_Conditional_3_Template, 25, 25, "nmfta-card", 5)(4, WebsiteAddSeatsLicensesComponent_Conditional_4_Template, 1, 2, "ngx-skeleton-loader", 6);
10562      \u0275\u0275elementEnd();
10563      \u0275\u0275elementStart(5, "div", 4);
10564      \u0275\u0275conditionalCreate(6, WebsiteAddSeatsLicensesComponent_Conditional_6_Template, 19, 44, "nmfta-card", 7)(7, WebsiteAddSeatsLicensesComponent_Conditional_7_Template, 1, 2, "ngx-skeleton-loader", 6);
10565      \u0275\u0275elementEnd()();
10566      \u0275\u0275conditionalCreate(8, WebsiteAddSeatsLicensesComponent_Conditional_8_Template, 4, 5, "div", 8);
10567      \u0275\u0275elementEnd();
10568      \u0275\u0275template(9, WebsiteAddSeatsLicensesComponent_ng_template_9_Template, 14, 10, "ng-template", null, 0, \u0275\u0275templateRefExtractor)(11, WebsiteAddSeatsLicensesComponent_ng_template_11_Template, 22, 14, "ng-template", 9, 1, \u0275\u0275templateRefExtractor);
10569    }
10570    if (rf & 2) {
10571      \u0275\u0275property("formGroup", ctx.licenseForm);
10572      \u0275\u0275advance(3);
10573      \u0275\u0275conditional(ctx.networkState$() === ctx.networkingStates.IDLE ? 3 : 4);
10574      \u0275\u0275advance(3);
10575      \u0275\u0275conditional(ctx.networkState$() === ctx.networkingStates.IDLE ? 6 : 7);
10576      \u0275\u0275advance(2);
10577      \u0275\u0275conditional(ctx.networkState$() === ctx.networkingStates.IDLE ? 8 : -1);
10578      \u0275\u0275advance(3);
10579      \u0275\u0275property("formGroup", ctx.addAdditionalLicenseForm);
10580    }
10581  }, dependencies: [
10582    ButtonComponent,
10583    CardComponent,
10584    ReactiveFormsModule,
10585    \u0275NgNoValidate,
10586    DefaultValueAccessor,
10587    NumberValueAccessor,
10588    NgControlStatus,
10589    NgControlStatusGroup,
10590    FormGroupDirective,
10591    FormControlName,
10592    InputWrapperComponent,
10593    DataPanelComponent,
10594    NgxSkeletonLoaderModule,
10595    NgxSkeletonLoaderComponent,
10596    AlertComponent,
10597    CurrencyPipe,
10598    TranslatePipe
10599  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n[_nghost-%COMP%]   .form-actions[_ngcontent-%COMP%] {\n  display: flex;\n  justify-content: end;\n  margin-top: 24px;\n}\n[_nghost-%COMP%]   .license-total[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  justify-content: center;\n}\n[_nghost-%COMP%]   .license-total[_ngcontent-%COMP%]   .total[_ngcontent-%COMP%] {\n  font-size: 40px;\n  line-height: 40px;\n}\n[_nghost-%COMP%]   .license-total-info[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n}\n[_nghost-%COMP%]   .license-total-info[_ngcontent-%COMP%]   .total[_ngcontent-%COMP%] {\n  font-size: 40px;\n  line-height: 40px;\n}\n[_nghost-%COMP%]   .card-columns[_ngcontent-%COMP%] {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n[_nghost-%COMP%]   .card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%] {\n  padding-top: 24px;\n}\n@media (min-width: 992px) {\n  [_nghost-%COMP%]   .card-columns[_ngcontent-%COMP%] {\n    column-count: 2;\n  }\n}\n.dialog-container[_ngcontent-%COMP%] {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n}\n.dialog-container[_ngcontent-%COMP%]   .purchase-beyond-licenses-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .purchase-beyond-licenses-body[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n}\n.dialog-container[_ngcontent-%COMP%]   .additional-license-total[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  justify-content: center;\n  margin-top: 4px;\n}\n.dialog-container[_ngcontent-%COMP%]   .additional-license-total[_ngcontent-%COMP%]   .additional-total[_ngcontent-%COMP%] {\n  margin-top: 10px;\n  font-size: 40px;\n  line-height: 40px;\n}\n/*# sourceMappingURL=website-add-seats-licenses.component-UKEQBDNR.css.map */"] });
10600};
10601(() => {
10602  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(WebsiteAddSeatsLicensesComponent, [{
10603    type: Component,
10604    args: [{ selector: "nmfta-website-add-seats-licenses", imports: [
10605      ButtonComponent,
10606      CardComponent,
10607      ReactiveFormsModule,
10608      CurrencyPipe,
10609      InputWrapperComponent,
10610      DataPanelComponent,
10611      NgxSkeletonLoaderModule,
10612      TranslatePipe,
10613      AlertComponent
10614    ], template: `<form [formGroup]="licenseForm" class="pt-3">
10615  <div class="card-columns pb-4">
10616    <div class="card">
10617      @if (networkState$() === networkingStates.IDLE) {
10618        <nmfta-card [title]="'COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.HEADER' | translate"
10619                    [subTitle]="'COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.DESCRIPTION' | translate: {subscriptionTier: subscription$().website.subscriptionTier}">
10620          <div class="container-fluid">
10621            <div class="row">
10622              @if(currentLicenseAmount$() >= licensesSeatMax$()) {
10623                <div class="col-12">
10624                  <div><strong>{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.ADDITIONAL_LICENSES_BUNDLE_PRICE' | translate }}</strong></div>
10625                  <div>$ 3500</div>
10626                </div>
10627              }
10628              @else {
10629                <div class="col-12 col-md-6">
10630                  <div><strong>{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.MEMBER_PRICE_PER_LICENSE' | translate }}</strong></div>
10631                  <div>$ {{ selectedProduct$().memberCost }}</div>
10632                </div>
10633                <div class="col-12 col-md-6">
10634                  <div><strong>{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.NON_MEMBER_PRICE_PER_LICENSE' | translate }}</strong></div>
10635                  <div>$ {{ selectedProduct$().nonMemberCost }}</div>
10636                </div>
10637              }
10638            </div>
10639          </div>
10640          <div footer-content>
10641            <div class="row align-items-center license-row">
10642              <div class="col-12 col-md">
10643                <p class="license-input-label text-center text-md-start">
10644                  {{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.ENTER_NUM_LICENSES_DESC' | translate }}
10645                </p>
10646                <div class="license-input d-flex gap-2 align-bottom justify-content-center justify-content-md-start">
10647                  <nmfta-button iconName="remove" styleType="contained" (buttonClick)="removeLicense()"
10648                                [disabled]="licenseQuantity <= 1"></nmfta-button>
10649                  <nmfta-input-wrapper>
10650                    <input type="number" formControlName="licenseQuantity" (change)="onLicenseTextChange()" (keydown.enter)="onEnterPressed()" />
10651                  </nmfta-input-wrapper>
10652                  <nmfta-button iconName="add" styleType="contained" (buttonClick)="addLicense()"></nmfta-button>
10653                </div>
10654              </div>
10655              <div class="col-12 col-md-auto license-total align-items-center align-items-md-end pt-3 pt-md-0">
10656                <p innerHTML="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.MANAGE_LICENSES_CARD.TOTAL_MEMBER_PRICE_DESC' | translate: {memberLabel: isMember$() ? 'Member' : 'Non-Member'} }}">
10657                </p>
10658                <p class="total">
10659                  {{ calculateTotalCost() | currency }}
10660                </p>
10661                @if (discountText.length > 0) {
10662                  <p>{{ discountText }}</p>
10663                }
10664              </div>
10665            </div>
10666          </div>
10667        </nmfta-card>
10668      } @else {
10669        <ngx-skeleton-loader
10670          count="1"
10671          [theme]="{ height: '600px', width: '100%', margin: '1rem 0rem', 'border-radius': '22px' }"
10672        />
10673      }
10674    </div>
10675    <div class="card">
10676      @if (networkState$() === networkingStates.IDLE) {
10677        <nmfta-card
10678          title="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.HEADER' | translate }}"
10679        >
10680          <nmfta-data-panel
10681            propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.EXISTING_LICENSES_PROPERTY.LABEL' | translate }}"
10682            description="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.EXISTING_LICENSES_PROPERTY.VALUE' | translate: {subscriptionTier: subscription$().website.subscriptionTier} }}"
10683            propertyValue="{{ subscription$().website.licenses }}"
10684          >
10685          </nmfta-data-panel>
10686          <nmfta-data-panel
10687            propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.ASSIGNED_LICENSES_PROPERTY.LABEL' | translate }}"
10688            description="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.ASSIGNED_LICENSES_PROPERTY.VALUE' | translate: {assignedLicenses: company$().numberOfAssignedLicenses} }}"
10689            propertyValue=""
10690          >
10691          </nmfta-data-panel>
10692          <nmfta-data-panel
10693            propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.ADDITIONAL_LICENSES_PROPERTY.LABEL' | translate }}"
10694            [description]="('COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.ADDITIONAL_LICENSES_PROPERTY.VALUE' | translate: {pricePerLicense: (isMember$() ? selectedProduct$().memberCost : selectedProduct$().nonMemberCost), membership: (isMember$() ? 'Member' : 'Non-Member')}) + discountText"
10695            [propertyValue]="licenseQuantity.toString()"
10696          >
10697          </nmfta-data-panel>
10698          <div footer-content>
10699            <div class="row license-row">
10700              <div class="col-12 col-md-6 license-total-info">
10701                <p>
10702                  {{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.SUMMARY_CARD.FOOTER' | translate }}
10703                </p>
10704                <p class="total">
10705                  {{ (subscription$().website.licenses ?? 0) + licenseQuantity }}
10706                </p>
10707              </div>
10708            </div>
10709          </div>
10710        </nmfta-card>
10711      } @else {
10712        <ngx-skeleton-loader
10713          count="1"
10714          [theme]="{ height: '600px', width: '100%', margin: '1rem 0rem', 'border-radius': '22px' }"
10715        />
10716      }
10717    </div>
10718  </div>
10719
10720  @if (networkState$() === networkingStates.IDLE) {
10721    <div class="form-actions">
10722      <nmfta-button
10723        styleType="contained"
10724        rightIcon="chevron_right"
10725        [type]="'submit'"
10726        [disabled]="!((licenseForm.get('licenseQuantity')?.value ?? 0) > 0)"
10727        (buttonClick)="onComplete()"
10728      >
10729        {{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.BUTTONS.NEXT' | translate }}
10730      </nmfta-button>
10731    </div>
10732  }
10733</form>
10734
10735<ng-template #exceedLicenseModal>
10736  <div class="container-fluid">
10737    <div class="p-1 p-md-4">
10738      <div class="row p-1 p-md-3 text-center">
10739        <div class="text-black">
10740          <div>
10741            {{ 'PURCHASE.PURCHASE_LICENSES.PURCHASE_LIMIT_EXCEEDED_DESC_1_PART_1' | translate: { maxLicenses: licensesSeatMax$() } }}
10742            @if(currentLicenseAmount$() < licensesSeatMax$()) {
10743              <span>{{ 'PURCHASE.PURCHASE_LICENSES.PURCHASE_LIMIT_EXCEEDED_DESC_1_PART_2' | translate: { adjustedAmount: licenseQuantity } }}</span>
10744            }
10745          </div>
10746          <div class="mt-4">
10747            {{ 'PURCHASE.PURCHASE_LICENSES.PURCHASE_LIMIT_EXCEEDED_DESC_2' | translate }}
10748            <a class="text-accent" href="https://nmfta.org/contact" target="_blank" rel="noopener noreferrer">Customer Service</a>.
10749          </div>
10750        </div>
10751      </div>
10752    </div>
10753  </div>
10754</ng-template>
10755
10756<ng-template [formGroup]="addAdditionalLicenseForm" #purchaseBeyondLicensesLimit>
10757  <div class="dialog-container">
10758    <div class="purchase-beyond-licenses-header">
10759      <nmfta-alert>
10760        {{ 'PURCHASE.PURCHASE_LICENSES.PURCHASE_BEYOND_LIMIT_DESC' | translate }}
10761      </nmfta-alert>
10762    </div>
10763
10764    <div class="purchase-beyond-licenses-body">
10765      <div class="row align-items-center">
10766        <div class="col-12 col-md-6">
10767          <p class="text-center text-md-start">
10768            {{ 'PURCHASE.PURCHASE_LICENSES.PURCHASE_BEYOND_LIMIT_BY_500_DESC' | translate }}
10769          </p>
10770          <div class="d-flex gap-2 align-bottom justify-content-center justify-content-md-start">
10771            <nmfta-button iconName="remove" styleType="contained" (buttonClick)="removeAdditionalLicense()"
10772                  [disabled]="addAdditionalLicenseForm.get('additionalLicenseQuantity')?.value == 0">
10773            </nmfta-button>
10774            <nmfta-input-wrapper>
10775              <input type="number" formControlName="additionalLicenseQuantity"/>
10776            </nmfta-input-wrapper>
10777            <nmfta-button iconName="add" styleType="contained" (buttonClick)="addAdditionalLicense()"></nmfta-button>
10778          </div>
10779        </div>
10780        <div class="col-12 col-md-6 additional-license-total align-items-center align-items-md-end pt-3 pt-md-0">
10781          <p innerHTML="{{ 'PURCHASE.PURCHASE_LICENSES.TOTAL_ADDITIONAL_PRICE' | translate }}">
10782          </p>
10783          <p class="additional-total">{{ totalAdditionalCost | currency }}</p>
10784        </div>
10785      </div>
10786    </div>
10787  </div>
10788</ng-template>
10789`, styles: ["/* src/app/features/profile/components/website-add-seats/components/website-add-seats-licenses/website-add-seats-licenses.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n:host .form-actions {\n  display: flex;\n  justify-content: end;\n  margin-top: 24px;\n}\n:host .license-total {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  justify-content: center;\n}\n:host .license-total .total {\n  font-size: 40px;\n  line-height: 40px;\n}\n:host .license-total-info {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n}\n:host .license-total-info .total {\n  font-size: 40px;\n  line-height: 40px;\n}\n:host .card-columns {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n:host .card-columns .card {\n  padding-top: 24px;\n}\n@media (min-width: 992px) {\n  :host .card-columns {\n    column-count: 2;\n  }\n}\n.dialog-container {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n}\n.dialog-container .purchase-beyond-licenses-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .purchase-beyond-licenses-body {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n}\n.dialog-container .additional-license-total {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  justify-content: center;\n  margin-top: 4px;\n}\n.dialog-container .additional-license-total .additional-total {\n  margin-top: 10px;\n  font-size: 40px;\n  line-height: 40px;\n}\n/*# sourceMappingURL=website-add-seats-licenses.component-UKEQBDNR.css.map */\n"] }]
10790  }], () => [], { exceedLicenseModal: [{
10791    type: ViewChild,
10792    args: ["exceedLicenseModal", { static: true }]
10793  }], purchaseBeyondLicensesLimit: [{
10794    type: ViewChild,
10795    args: ["purchaseBeyondLicensesLimit", { static: true }]
10796  }], complete: [{
10797    type: Output
10798  }], back: [{
10799    type: Output
10800  }] });
10801})();
10802(() => {
10803  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(WebsiteAddSeatsLicensesComponent, { className: "WebsiteAddSeatsLicensesComponent", filePath: "src/app/features/profile/components/website-add-seats/components/website-add-seats-licenses/website-add-seats-licenses.component.ts", lineNumber: 39 });
10804})();
10805
10806// src/app/features/profile/components/website-add-seats/components/website-add-seats-review/website-add-seats-review.component.ts
10807var _c08 = (a0) => ({ totalAmount: a0 });
10808var _c111 = (a0, a1) => ({ newLicenses: a0, existingLicenses: a1 });
10809var _c25 = (a0) => ({ newLicenses: a0 });
10810var _c35 = (a0) => ({ achDiscountDisplay: a0 });
10811function WebsiteAddSeatsReviewComponent_Conditional_8_Conditional_2_Template(rf, ctx) {
10812  if (rf & 1) {
10813    \u0275\u0275element(0, "nmfta-data-panel", 3);
10814    \u0275\u0275pipe(1, "translate");
10815  }
10816  if (rf & 2) {
10817    const ctx_r0 = \u0275\u0275nextContext(2);
10818    \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(1, 3, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.BILLING_ADDRESS_PROPERTY.LABEL")))("propertyValue", ctx_r0.paymentFullAddress$());
10819  }
10820}
10821function WebsiteAddSeatsReviewComponent_Conditional_8_Template(rf, ctx) {
10822  if (rf & 1) {
10823    \u0275\u0275element(0, "nmfta-data-panel", 3);
10824    \u0275\u0275pipe(1, "translate");
10825    \u0275\u0275conditionalCreate(2, WebsiteAddSeatsReviewComponent_Conditional_8_Conditional_2_Template, 2, 5, "nmfta-data-panel", 3);
10826  }
10827  if (rf & 2) {
10828    const ctx_r0 = \u0275\u0275nextContext();
10829    \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(1, 4, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.CARD_HOLDER_PROPERTY.LABEL")))("propertyValue", ctx_r0.getPaymentName());
10830    \u0275\u0275advance(2);
10831    \u0275\u0275conditional(ctx_r0.order$().paymentPayload.paymentInfo.paymentType !== ctx_r0.paymentTypes.Check ? 2 : -1);
10832  }
10833}
10834function WebsiteAddSeatsReviewComponent_Conditional_17_Conditional_0_Template(rf, ctx) {
10835  if (rf & 1) {
10836    \u0275\u0275element(0, "nmfta-data-panel", 15);
10837    \u0275\u0275pipe(1, "translate");
10838  }
10839  if (rf & 2) {
10840    \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(1, 2, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRICE_PER_LICENSE_BUNDLE_PROPERTY.LABEL")));
10841  }
10842}
10843function WebsiteAddSeatsReviewComponent_Conditional_17_Conditional_1_Conditional_0_Conditional_2_Template(rf, ctx) {
10844  if (rf & 1) {
10845    \u0275\u0275element(0, "nmfta-data-panel", 15);
10846    \u0275\u0275pipe(1, "translate");
10847  }
10848  if (rf & 2) {
10849    \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(1, 2, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRICE_PER_LICENSE_BUNDLE_PROPERTY.LABEL")));
10850  }
10851}
10852function WebsiteAddSeatsReviewComponent_Conditional_17_Conditional_1_Conditional_0_Template(rf, ctx) {
10853  if (rf & 1) {
10854    \u0275\u0275element(0, "nmfta-data-panel", 3);
10855    \u0275\u0275pipe(1, "translate");
10856    \u0275\u0275conditionalCreate(2, WebsiteAddSeatsReviewComponent_Conditional_17_Conditional_1_Conditional_0_Conditional_2_Template, 2, 4, "nmfta-data-panel", 15);
10857  }
10858  if (rf & 2) {
10859    const ctx_r0 = \u0275\u0275nextContext(3);
10860    \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(1, 5, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRICE_PER_SEAT_PROPERTY.LABEL")))("propertyValue", \u0275\u0275interpolate1("$", ctx_r0.addLicenseStore.getPricePerLicense()));
10861    \u0275\u0275advance(2);
10862    \u0275\u0275conditional(ctx_r0.addLicenseStore.purchasingOverMaxLimit() ? 2 : -1);
10863  }
10864}
10865function WebsiteAddSeatsReviewComponent_Conditional_17_Conditional_1_Template(rf, ctx) {
10866  if (rf & 1) {
10867    \u0275\u0275conditionalCreate(0, WebsiteAddSeatsReviewComponent_Conditional_17_Conditional_1_Conditional_0_Template, 3, 7);
10868  }
10869  if (rf & 2) {
10870    const ctx_r0 = \u0275\u0275nextContext(2);
10871    \u0275\u0275conditional(!ctx_r0.addLicenseStore.purchasingOverMemberCap() ? 0 : -1);
10872  }
10873}
10874function WebsiteAddSeatsReviewComponent_Conditional_17_Template(rf, ctx) {
10875  if (rf & 1) {
10876    \u0275\u0275conditionalCreate(0, WebsiteAddSeatsReviewComponent_Conditional_17_Conditional_0_Template, 2, 4, "nmfta-data-panel", 15)(1, WebsiteAddSeatsReviewComponent_Conditional_17_Conditional_1_Template, 1, 1);
10877  }
10878  if (rf & 2) {
10879    const ctx_r0 = \u0275\u0275nextContext();
10880    \u0275\u0275conditional(ctx_r0.addLicenseStore.purchasingAfterLicensesLimitReached() ? 0 : 1);
10881  }
10882}
10883function WebsiteAddSeatsReviewComponent_Conditional_26_Template(rf, ctx) {
10884  if (rf & 1) {
10885    const _r2 = \u0275\u0275getCurrentView();
10886    \u0275\u0275elementStart(0, "span", 16);
10887    \u0275\u0275text(1, "$");
10888    \u0275\u0275elementEnd();
10889    \u0275\u0275elementStart(2, "nmfta-input-wrapper")(3, "input", 
1088917);
10890    \u0275\u0275listener("blur", function WebsiteAddSeatsReviewComponent_Conditional_26_Template_input_blur_3_listener() {
10891      \u0275\u0275restoreView(_r2);
10892      const ctx_r0 = \u0275\u0275nextContext();
10893      return \u0275\u0275resetView(ctx_r0.onBlur());
10894    });
10895    \u0275\u0275elementEnd()();
10896  }
10897  if (rf & 2) {
10898    const ctx_r0 = \u0275\u0275nextContext();
10899    \u0275\u0275advance(3);
10900    \u0275\u0275property("formControl", ctx_r0.totalAmountCtrl);
10901  }
10902}
10903function WebsiteAddSeatsReviewComponent_Conditional_27_Template(rf, ctx) {
10904  if (rf & 1) {
10905    \u0275\u0275text(0);
10906    \u0275\u0275pipe(1, "currency");
10907  }
10908  if (rf & 2) {
10909    const ctx_r0 = \u0275\u0275nextContext();
10910    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind4(1, 1, ctx_r0.getTotalAmount(), "USD", "symbol", "1.2-2"), " ");
10911  }
10912}
10913function WebsiteAddSeatsReviewComponent_Conditional_28_Template(rf, ctx) {
10914  if (rf & 1) {
10915    \u0275\u0275elementStart(0, "em", 11);
10916    \u0275\u0275text(1);
10917    \u0275\u0275pipe(2, "translate");
10918    \u0275\u0275elementEnd();
10919  }
10920  if (rf & 2) {
10921    const ctx_r0 = \u0275\u0275nextContext();
10922    \u0275\u0275advance();
10923    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind2(2, 1, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.ACH_DISCOUNT.LABEL", \u0275\u0275pureFunction1(4, _c35, ctx_r0.achDiscountDisplay$())), " ");
10924  }
10925}
10926function WebsiteAddSeatsReviewComponent_Conditional_29_Template(rf, ctx) {
10927  if (rf & 1) {
10928    \u0275\u0275elementStart(0, "div", 8)(1, "div", 9)(2, "span");
10929    \u0275\u0275text(3);
10930    \u0275\u0275pipe(4, "translate");
10931    \u0275\u0275elementEnd();
10932    \u0275\u0275elementStart(5, "span", 10);
10933    \u0275\u0275text(6);
10934    \u0275\u0275pipe(7, "currency");
10935    \u0275\u0275elementEnd()();
10936    \u0275\u0275elementStart(8, "em", 11);
10937    \u0275\u0275text(9);
10938    \u0275\u0275pipe(10, "translate");
10939    \u0275\u0275elementEnd()();
10940  }
10941  if (rf & 2) {
10942    const ctx_r0 = \u0275\u0275nextContext();
10943    \u0275\u0275advance(3);
10944    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 3, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRICE_AFTER_DISCOUNT.LABEL"));
10945    \u0275\u0275advance(3);
10946    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind4(7, 5, ctx_r0.getTotalAmount(), "USD", "symbol", "1.2-2"), " ");
10947    \u0275\u0275advance(3);
10948    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind2(10, 10, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.ACH_DISCOUNT.LABEL", \u0275\u0275pureFunction1(13, _c35, ctx_r0.achDiscountDisplay$())));
10949  }
10950}
10951var WebsiteAddSeatsReviewComponent = class _WebsiteAddSeatsReviewComponent {
10952  // Inputs/Outputs
10953  complete = new EventEmitter();
10954  back = new EventEmitter();
10955  // DI Services
10956  addLicenseStore = inject(AddLicensesStore);
10957  userStore = inject(UserStore);
10958  purchaseStore = inject(PurchaseStore);
10959  subscriptionStore = inject(SubscriptionStore);
10960  companyStore = inject(CompanyStore);
10961  commonStore = inject(CommonStore);
10962  // Component Properties
10963  subscription$ = this.subscriptionStore.subscriptions;
10964  company$ = this.companyStore.company;
10965  numLicenses$ = this.addLicenseStore.numLicenses;
10966  order$ = this.purchaseStore.order;
10967  paymentFullAddress$ = this.purchaseStore.paymentFullAddress;
10968  networkState$ = this.addLicenseStore.networkState;
10969  isCustomerService$ = this.userStore.isCustomerService;
10970  paymentTypes = PaymentType;
10971  networkStates = AddLicenseNetworkState;
10972  totalAmountCtrl = new FormControl("0", { nonNullable: true });
10973  get isPaymentTypeAch() {
10974    return this.order$().paymentPayload.paymentInfo.paymentType === PaymentType.ACH;
10975  }
10976  achDiscountDisplay$ = computed(() => {
10977    const achDiscount = this.commonStore.variables().achDiscountPricing ?? 0;
10978    return (achDiscount * 100).toString();
10979  }, ...ngDevMode ? [{ debugName: "achDiscountDisplay$" }] : []);
10980  constructor() {
10981    effect(() => {
10982      const sigVal = this.order$().paymentPayload.paymentInfo.totalAmount;
10983      if (sigVal == null)
10984        return;
10985      const currentVal = this.totalAmountCtrl.value ?? "";
10986      const parsedCtrl = AmountHelper.parseAmount(currentVal) ?? 0;
10987      const parsedSig = AmountHelper.parseAmount(sigVal) ?? 0;
10988      if (parsedCtrl !== parsedSig) {
10989        const display = AmountHelper.formatAmount(parsedSig);
10990        this.totalAmountCtrl.setValue(display, { emitEvent: false });
10991      }
10992    });
10993  }
10994  ngOnInit() {
10995    const initial = this.order$().paymentPayload.paymentInfo.totalAmount ?? "0.00";
10996    this.totalAmountCtrl.setValue(initial);
10997    this.totalAmountCtrl.valueChanges.subscribe((val) => {
10998      if (val == null || val === "")
10999        return;
11000      const cleaned = val.replace(/,/g, "");
11001      const n = parseFloat(cleaned);
11002      if (!isNaN(n)) {
11003        const formatted = n.toFixed(2);
11004        this.purchaseStore.setTotalAmount(formatted);
11005      }
11006    });
11007  }
11008  onBlur() {
11009    const raw = this.totalAmountCtrl.value ?? "";
11010    const n = AmountHelper.parseAmount(raw);
11011    if (n == null || n < 0) {
11012      this.totalAmountCtrl.setValue("0.00", { emitEvent: false });
11013      this.purchaseStore.setTotalAmount("0.00");
11014      return;
11015    }
11016    const display = AmountHelper.formatAmount(n);
11017    this.totalAmountCtrl.setValue(display, { emitEvent: false });
11018  }
11019  // Component Actions
11020  onComplete() {
11021    this.complete.emit();
11022  }
11023  onGoBack() {
11024    this.back.emit();
11025  }
11026  getPaymentTypeName() {
11027    return PaymentTypeLabels[this.order$().paymentPayload.paymentInfo.paymentType];
11028  }
11029  getPaymentName() {
11030    return `${this.order$().paymentPayload.paymentInfo.contact.firstName} ${this.order$().paymentPayload.paymentInfo.contact.lastName}`;
11031  }
11032  getTotalAmount() {
11033    const totalAmount = AmountHelper.parseAmount(this.order$().paymentPayload.paymentInfo.totalAmount) ?? 0;
11034    if (!this.isPaymentTypeAch) {
11035      return totalAmount.toFixed(2);
11036    }
11037    const rawDiscountRate = this.commonStore.variables().achDiscountPricing ?? 0;
11038    const discountRate = rawDiscountRate > 1 ? rawDiscountRate / 100 : rawDiscountRate;
11039    const totalInCents = Math.round((totalAmount + Number.EPSILON) * 100);
11040    const discountedInCents = Math.round(totalInCents * (1 - discountRate) + Number.EPSILON);
11041    return (discountedInCents / 100).toFixed(2);
11042  }
11043  static \u0275fac = function WebsiteAddSeatsReviewComponent_Factory(__ngFactoryType__) {
11044    return new (__ngFactoryType__ || _WebsiteAddSeatsReviewComponent)();
11045  };
11046  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _WebsiteAddSeatsReviewComponent, selectors: [["nmfta-website-add-seats-review"]], outputs: { complete: "complete", back: "back" }, decls: 37, vars: 57, consts: [[1, "row", "pt-3"], [1, "col-12", "col-md-6", "pt-1"], [1, "pt-1", 3, "title", "subTitle"], [3, "propertyName", "propertyValue"], [1, "pt-1", 3, "title"], ["propertyName", "ClassIT+ Web Application Additional Licenses", 3, "description", "propertyValue"], [1, "card"], [1, "features"], [1, "feature-item", "column"], [1, "d-flex", "justify-content-between", "align-items-center", "w-100"], [1, "d-flex", "flex-row", "align-items-center"], [1, "discount-note", "w-100", "justify-content-end"], [1, "form-actions"], ["styleType", "contained", "leftIcon", "chevron_left", 3, "buttonClick", "disabled"], ["styleType", "contained", 3, "buttonClick", "disabled"], ["propertyValue", "$ 3500.00", 3, "propertyName"], [1, "pe-2"], ["id", "txtTotalAmount", "type", "text", "inputmode", "decimal", 3, "blur", "formControl"]], template: function WebsiteAddSeatsReviewComponent_Template(rf, ctx) {
11047    if (rf & 1) {
11048      \u0275\u0275elementStart(0, "div", 0)(1, "div", 1)(2, "nmfta-card", 2);
11049      \u0275\u0275pipe(3, "translate");
11050      \u0275\u0275pipe(4, "currency");
11051      \u0275\u0275pipe(5, "translate");
11052      \u0275\u0275element(6, "nmfta-data-panel", 3);
11053      \u0275\u0275pipe(7, "translate");
11054      \u0275\u0275conditionalCreate(8, WebsiteAddSeatsReviewComponent_Conditional_8_Template, 3, 6);
11055      \u0275\u0275elementEnd()();
11056      \u0275\u0275elementStart(9, "div", 1)(10, "nmfta-card", 4);
11057      \u0275\u0275pipe(11, "translate");
11058      \u0275\u0275element(12, "nmfta-data-panel", 5);
11059      \u0275\u0275pipe(13, "translate");
11060      \u0275\u0275pipe(14, "translate");
11061      \u0275\u0275element(15, "nmfta-data-panel", 3);
11062      \u0275\u0275pipe(16, "translate");
11063      \u0275\u0275conditionalCreate(17, WebsiteAddSeatsReviewComponent_Conditional_17_Template, 2, 1);
11064      \u0275\u0275elementStart(18, "div", 6)(19, "div", 7)(20, "div", 8)(21, "div", 9)(22, "span");
11065      \u0275\u0275text(23);
11066      \u0275\u0275pipe(24, "translate");
11067      \u0275\u0275elementEnd();
11068      \u0275\u0275elementStart(25, "span", 10);
11069      \u0275\u0275conditionalCreate(26, WebsiteAddSeatsReviewComponent_Conditional_26_Template, 4, 1)(27, WebsiteAddSeatsReviewComponent_Conditional_27_Template, 2, 6);
11070      \u0275\u0275elementEnd()();
11071      \u0275\u0275conditionalCreate(28, WebsiteAddSeatsReviewComponent_Conditional_28_Template, 3, 6, "em", 11);
11072      \u0275\u0275elementEnd();
11073      \u0275\u0275conditionalCreate(29, WebsiteAddSeatsReviewComponent_Conditional_29_Template, 11, 15, "div", 8);
11074      \u0275\u0275elementEnd()()()()();
11075      \u0275\u0275elementStart(30, "div", 12)(31, "nmfta-button", 13);
11076      \u0275\u0275listener("buttonClick", function WebsiteAddSeatsReviewComponent_Template_nmfta_button_buttonClick_31_listener() {
11077        return ctx.onGoBack();
11078      });
11079      \u0275\u0275text(32);
11080      \u0275\u0275pipe(33, "translate");
11081      \u0275\u0275elementEnd();
11082      \u0275\u0275elementStart(34, "nmfta-button", 14);
11083      \u0275\u0275listener("buttonClick", function WebsiteAddSeatsReviewComponent_Template_nmfta_button_buttonClick_34_listener() {
11084        return ctx.onComplete();
11085      });
11086      \u0275\u0275text(35);
11087      \u0275\u0275pipe(36, "translate");
11088      \u0275\u0275elementEnd()();
11089    }
11090    if (rf & 2) {
11091      \u0275\u0275advance(2);
11092      \u0275\u0275property("title", \u0275\u0275interpolate(\u0275\u0275pipeBind1(3, 25, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.HEADER")))("subTitle", \u0275\u0275pipeBind2(5, 29, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.DESCRIPTION", \u0275\u0275pureFunction1(50, _c08, \u0275\u0275pipeBind1(4, 27, ctx.getTotalAmount()))));
11093      \u0275\u0275advance(4);
11094      \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(7, 32, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.HEADER")))("propertyValue", ctx.getPaymentTypeName());
11095      \u0275\u0275advance(2);
11096      \u0275\u0275conditional(ctx.order$().paymentPayload.paymentInfo.paymentType !== ctx.paymentTypes.CSBypass ? 8 : -1);
11097      \u0275\u0275advance(2);
11098      \u0275\u0275property("title", \u0275\u0275interpolate(\u0275\u0275pipeBind1(11, 34, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.HEADER")));
11099      \u0275\u0275advance(2);
11100      \u0275\u0275property("description", \u0275\u0275interpolate(\u0275\u0275pipeBind2(13, 36, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRODUCT_PROPERTY.DESC", \u0275\u0275pureFunction2(52, _c111, (ctx.subscription$().website.licenses ?? 0) + ctx.numLicenses$(), ctx.subscription$().website.licenses))))("propertyValue", \u0275\u0275interpolate(\u0275\u0275pipeBind2(14, 39, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRODUCT_PROPERTY.VALUE", \u0275\u0275pureFunction1(55, _c25, ctx.numLicenses$()))));
11101      \u0275\u0275advance(3);
11102      \u0275\u0275property("propertyName", \u0275\u0275interpolate(\u0275\u0275pipeBind1(16, 42, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.SUBSCRIPTION_TIER_PROPERTY.LABEL")))("propertyValue", ctx.subscription$().website.subscriptionTier);
11103      \u0275\u0275advance(2);
11104      \u0275\u0275conditional(!ctx.addLicenseStore.purchasingOverMemberCap() ? 17 : -1);
11105      \u0275\u0275advance(6);
11106      \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(24, 44, "COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.TOTAL_PRICE_PROPERTY.LABEL"));
11107      \u0275\u0275advance(3);
11108      \u0275\u0275conditional(ctx.isCustomerService$() ? 26 : 27);
11109      \u0275\u0275advance(2);
11110      \u0275\u0275conditional(!ctx.isCustomerService$() && ctx.isPaymentTypeAch ? 28 : -1);
11111      \u0275\u0275advance();
11112      \u0275\u0275conditional(ctx.isPaymentTypeAch && ctx.isCustomerService$() ? 29 : -1);
11113      \u0275\u0275advance(2);
11114      \u0275\u0275property("disabled", ctx.networkState$() === ctx.networkStates.SUBMITTING);
11115      \u0275\u0275advance();
11116      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(33, 46, "COMPANY_SETTINGS.ADD_NEW_LICENSES.BUTTONS.BACK"), " ");
11117      \u0275\u0275advance(2);
11118      \u0275\u0275property("disabled", ctx.networkState$() === ctx.networkStates.SUBMITTING || ctx.networkState$() === ctx.networkStates.
11118COMPLETE);
11119      \u0275\u0275advance();
11120      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(36, 48, "COMPANY_SETTINGS.ADD_NEW_LICENSES.BUTTONS.PLACE_ORDER"), " ");
11121    }
11122  }, dependencies: [
11123    ButtonComponent,
11124    CardComponent,
11125    DataPanelComponent,
11126    ReactiveFormsModule,
11127    DefaultValueAccessor,
11128    NgControlStatus,
11129    FormControlDirective,
11130    InputWrapperComponent,
11131    CurrencyPipe,
11132    TranslatePipe
11133  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n[_nghost-%COMP%]   .form-actions[_ngcontent-%COMP%] {\n  display: flex;\n  justify-content: space-between;\n  margin-top: 24px;\n}\n[_nghost-%COMP%]   .features[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  align-items: start;\n  gap: 0.75rem;\n  align-self: stretch;\n  padding-bottom: 1.5rem;\n}\n[_nghost-%COMP%]   .features[_ngcontent-%COMP%]   .feature-item[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  min-height: 4.25rem;\n  padding: 0.75rem;\n  gap: 0.75rem;\n  align-self: stretch;\n  border-radius: 0.5rem;\n  border: 0.0625rem solid #f2f2f2;\n  background: #f8f8f8;\n}\n[_nghost-%COMP%]   .features[_ngcontent-%COMP%]   .feature-item.column[_ngcontent-%COMP%] {\n  flex-direction: column;\n  align-items: start;\n}\n[_nghost-%COMP%]   .payment-method-shifted[_ngcontent-%COMP%] {\n  position: relative;\n  top: -80px;\n}\n[_nghost-%COMP%]   .discount-note[_ngcontent-%COMP%] {\n  font-size: 12px;\n  display: flex;\n  line-height: 1.2;\n  color: #a3a3a3;\n}\n@media (max-width: 767.98px) {\n  [_nghost-%COMP%]   .payment-method-shifted[_ngcontent-%COMP%] {\n    position: relative;\n    top: 0;\n  }\n}\n.card-columns[_ngcontent-%COMP%] {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%] {\n  padding-top: 24px;\n}\n@media (min-width: 992px) {\n  .card-columns[_ngcontent-%COMP%] {\n    column-count: 2;\n  }\n}\n/*# sourceMappingURL=website-add-seats-review.component-6HXUARY3.css.map */"] });
11134};
11135(() => {
11136  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(WebsiteAddSeatsReviewComponent, [{
11137    type: Component,
11138    args: [{ selector: "nmfta-website-add-seats-review", imports: [
11139      ButtonComponent,
11140      CardComponent,
11141      CurrencyPipe,
11142      DataPanelComponent,
11143      ReactiveFormsModule,
11144      TranslatePipe,
11145      InputWrapperComponent
11146    ], template: `<div class="row pt-3">
11147  <div class="col-12 col-md-6 pt-1">
11148    <nmfta-card title="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.HEADER' | translate }}"
11149                [subTitle]="'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.DESCRIPTION' | translate: 
11150                  { totalAmount: getTotalAmount() | currency }"
11151                class="pt-1">
11152      <nmfta-data-panel
11153        propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.HEADER' | translate }}"
11154        [propertyValue]="getPaymentTypeName()"
11155      >
11156      </nmfta-data-panel>
11157      @if (order$().paymentPayload.paymentInfo.paymentType !== paymentTypes.CSBypass) {
11158        <nmfta-data-panel
11159          propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.CARD_HOLDER_PROPERTY.LABEL' | translate }}"
11160          [propertyValue]="getPaymentName()"
11161        >
11162        </nmfta-data-panel>
11163        @if (order$().paymentPayload.paymentInfo.paymentType !== paymentTypes.Check) {
11164          <nmfta-data-panel
11165            propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PAYMENT_METHOD_CARD.BILLING_ADDRESS_PROPERTY.LABEL' | translate }}"
11166            [propertyValue]="paymentFullAddress$()"
11167          >
11168          </nmfta-data-panel>
11169        }
11170      }
11171    </nmfta-card>
11172  </div>
11173  <div class="col-12 col-md-6 pt-1">
11174    <nmfta-card title="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.HEADER' | translate }}"
11175                class="pt-1">
11176      <nmfta-data-panel
11177        propertyName="ClassIT+ Web Application Additional Licenses"
11178        description="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRODUCT_PROPERTY.DESC' | translate: {newLicenses: (subscription$().website.licenses ?? 0) + numLicenses$(), existingLicenses: subscription$().website.licenses } }}"
11179        propertyValue="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRODUCT_PROPERTY.VALUE' | translate: {newLicenses: numLicenses$() } }}"
11180      >
11181      </nmfta-data-panel>
11182      <nmfta-data-panel
11183        propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.SUBSCRIPTION_TIER_PROPERTY.LABEL' | translate }}"
11184        [propertyValue]="subscription$().website.subscriptionTier"
11185      >
11186      </nmfta-data-panel>
11187      @if(!addLicenseStore.purchasingOverMemberCap()) {
11188        @if(addLicenseStore.purchasingAfterLicensesLimitReached()) {
11189          <nmfta-data-panel
11190            propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRICE_PER_LICENSE_BUNDLE_PROPERTY.LABEL' | translate }}"
11191            propertyValue="$ 3500.00"
11192          >
11193          </nmfta-data-panel>
11194        }
11195        @else {
11196          @if(!addLicenseStore.purchasingOverMemberCap()) {
11197            <nmfta-data-panel
11198              propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRICE_PER_SEAT_PROPERTY.LABEL' | translate }}"
11199              propertyValue="\${{addLicenseStore.getPricePerLicense()}}">
11200            </nmfta-data-panel>
11201            @if(addLicenseStore.purchasingOverMaxLimit()) {
11202              <nmfta-data-panel
11203                propertyName="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRICE_PER_LICENSE_BUNDLE_PROPERTY.LABEL' | translate }}"
11204                propertyValue="$ 3500.00">
11205              </nmfta-data-panel>
11206            }
11207          }
11208        }
11209      }
11210      <div class="card">
11211        <div class="features">
11212          <div class="feature-item column">
11213            <div class="d-flex justify-content-between align-items-center w-100">
11214              <span>{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.TOTAL_PRICE_PROPERTY.LABEL' | translate }}</span>
11215              <span class="d-flex flex-row align-items-center">
11216                @if (isCustomerService$()) {
11217                  <span class="pe-2">$</span>
11218                  <nmfta-input-wrapper>
11219                    <input id="txtTotalAmount"
11220                      type="text"
11221                      inputmode="decimal"
11222                      [formControl]="totalAmountCtrl"
11223                      (blur)="onBlur()"
11224                    />
11225                  </nmfta-input-wrapper>
11226                } 
11227                @else {
11228                  {{ getTotalAmount() | currency:'USD':'symbol':'1.2-2' }}
11229                }
11230              </span>
11231            </div>
11232            @if (!isCustomerService$() && isPaymentTypeAch) {
11233              <em class="discount-note w-100 justify-content-end">
11234                {{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.ACH_DISCOUNT.LABEL' | translate: {achDiscountDisplay: achDiscountDisplay$() } }}
11235              </em>
11236            }
11237          </div>
11238          @if(isPaymentTypeAch && isCustomerService$()) {
11239            <div class="feature-item column">
11240              <div class="d-flex justify-content-between align-items-center w-100">
11241                <span>{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.PRICE_AFTER_DISCOUNT.LABEL' | translate }}</span>
11242                <span class="d-flex flex-row align-items-center">
11243                  {{ getTotalAmount() | currency:'USD':'symbol':'1.2-2' }}
11244                </span>
11245              </div>
11246              <em class="discount-note w-100 justify-content-end">
11247                {{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.REVIEW_PURCHASED_PRODUCT_CARD.ACH_DISCOUNT.LABEL' | translate: {achDiscountDisplay: achDiscountDisplay$() } }}</em>
11248            </div>
11249          }
11250        </div>
11251      </div>
11252    </nmfta-card>
11253  </div>
11254</div>
11255
11256<div class="form-actions">
11257  <nmfta-button
11258    styleType="contained"
11259    leftIcon="chevron_left"
11260    [disabled]="networkState$() === networkStates.SUBMITTING"
11261    (buttonClick)="onGoBack()"
11262  >
11263    {{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.BUTTONS.BACK' | translate }}
11264  </nmfta-button>
11265
11266  <nmfta-button
11267    styleType="contained"
11268    [disabled]="networkState$() === networkStates.SUBMITTING || networkState$() === networkStates.COMPLETE"
11269    (buttonClick)="onComplete()"
11270  >
11271    {{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.BUTTONS.PLACE_ORDER' | translate }}
11272  </nmfta-button>
11273</div>
11274`, styles: ["/* src/app/features/profile/components/website-add-seats/components/website-add-seats-review/website-add-seats-review.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n:host .form-actions {\n  display: flex;\n  justify-content: space-between;\n  margin-top: 24px;\n}\n:host .features {\n  display: flex;\n  flex-direction: column;\n  align-items: start;\n  gap: 0.75rem;\n  align-self: stretch;\n  padding-bottom: 1.5rem;\n}\n:host .features .feature-item {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  min-height: 4.25rem;\n  padding: 0.75rem;\n  gap: 0.75rem;\n  align-self: stretch;\n  border-radius: 0.5rem;\n  border: 0.0625rem solid #f2f2f2;\n  background: #f8f8f8;\n}\n:host .features .feature-item.column {\n  flex-direction: column;\n  align-items: start;\n}\n:host .payment-method-shifted {\n  position: relative;\n  top: -80px;\n}\n:host .discount-note {\n  font-size: 12px;\n  display: flex;\n  line-height: 1.2;\n  color: #a3a3a3;\n}\n@media (max-width: 767.98px) {\n  :host .payment-method-shifted {\n    position: relative;\n    top: 0;\n  }\n}\n.card-columns {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n.card-columns .card {\n  padding-top: 24px;\n}\n@media (min-width: 992px) {\n  .card-columns {\n    column-count: 2;\n  }\n}\n/*# sourceMappingURL=website-add-seats-review.component-6HXUARY3.css.map */\n"] }]
11275  }], () => [], { complete: [{
11276    type: Output
11277  }], back: [{
11278    type: Output
11279  }] });
11280})();
11281(() => {
11282  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(WebsiteAddSeatsReviewComponent, { className: "WebsiteAddSeatsReviewComponent", filePath: "src/app/features/profile/components/website-add-seats/components/website-add-seats-review/website-add-seats-review.component.ts", lineNumber: 32 });
11283})();
11284
11285// src/app/features/profile/components/website-add-seats/website-add-seats.component.ts
11286var _c09 = ["stepper"];
11287function WebsiteAddSeatsComponent_Conditional_10_Template(rf, ctx) {
11288  if (rf & 1) {
11289    const _r2 = \u0275\u0275getCurrentView();
11290    \u0275\u0275elementStart(0, "div", 4)(1, "nmfta-purchase-payment", 6);
11291    \u0275\u0275listener("complete", function WebsiteAddSeatsComponent_Conditional_10_Template_nmfta_purchase_payment_complete_1_listener() {
11292      \u0275\u0275restoreView(_r2);
11293      const ctx_r2 = \u0275\u0275nextContext();
11294      return \u0275\u0275resetView(ctx_r2.markStepAsComplete(1));
11295    })("back", function WebsiteAddSeatsComponent_Conditional_10_Template_nmfta_purchase_payment_back_1_listener() {
11296      \u0275\u0275restoreView(_r2);
11297      const ctx_r2 = \u0275\u0275nextContext();
11298      return \u0275\u0275resetView(ctx_r2.moveToPreviousStep());
11299    });
11300    \u0275\u0275elementEnd()();
11301  }
11302  if (rf & 2) {
11303    const ctx_r2 = \u0275\u0275nextContext();
11304    const stepper_r4 = \u0275\u0275reference(3);
11305    \u0275\u0275advance();
11306    \u0275\u0275styleProp("display", stepper_r4.selectedIndex === 1 ? "block" : "none");
11307    \u0275\u0275property("paymentInitialCost", ctx_r2.getTotalCostInt());
11308  }
11309}
11310var WebsiteAddSeatsComponent = class _WebsiteAddSeatsComponent {
11311  // DI Services
11312  addLicensesStore = inject(AddLicensesStore);
11313  paymentComponentStore = inject(PaymentComponentStore);
11314  companyStore = inject(CompanyStore);
11315  cdr = inject(ChangeDetectorRef);
11316  router = inject(Router);
11317  dialog = inject(MatDialog);
11318  location = inject(Location);
11319  translate = inject(TranslateService);
11320  // Properties
11321  stepper;
11322  completedSteps$ = this.addLicensesStore.completedSteps;
11323  order$ = this.addLicensesStore.order;
11324  networkState$ = this.addLicensesStore.networkState;
11325  company$ = this.companyStore.company;
11326  networkingStates = AddLicenseNetworkState;
11327  unassignedLicensesDialog;
11328  // Component Actions
11329  constructor() {
11330    effect(() => {
11331      if (this.networkState$() === this.networkingStates.COMPLETE)
11332        this.goToComplete();
11333    });
11334  }
11335  ngOnInit() {
11336    this.addLicensesStore.resetState();
11337    this.paymentComponentStore.setCompanyAddressInfo({
11338      address: this.company$().companyAddress,
11339      city: this.company$().city,
11340      state: this.company$().state,
11341      postalCode: this.company$().postalCode,
11342      country: this.company$().country
11343    });
11344    this.checkForUnassignedLicenses();
11345  }
11346  checkForUnassignedLicenses() {
11347    const unassignedLicenses = this.company$().totalNumberOfLicenses - this.company$().numberOfAssignedLicenses;
11348    if (unassignedLicenses > 0) {
11349      this.unassignedLicensesDialog = this.dialog.open(DialogComponent, {
11350        width: "530px",
11351        data: {
11352          title: "SUBSCRIPTIONS.UNASSIGNED_LICENSES_AVAILABLE",
11353          icon: "workspace_premium",
11354          description: "",
11355          content: "",
11356          message: this.translate.instant("SUBSCRIPTIONS.UNASSIGNED_LICENSES_AVAILABLE_MESSAGE", { count: unassignedLicenses }),
11357          actions: [
11358            {
11359              id: "cancel",
11360              label: "Generic_No",
11361              styleType: "outlined",
11362              onClick: () => {
11363                this.location.back();
11364              }
11365            },
11366            {
11367              id: "confirm",
11368              label: "Generic_Yes",
11369              styleType: "contained",
11370              color: "accent",
11371              onClick: () => __async(this, null, function* () {
11372                this.unassignedLicensesDialog.close();
11373              })
11374            }
11375          ]
11376        }
11377      });
11378    }
11379  }
11380  markStepAsComplete(stepIndex) {
11381    this.addLicensesStore.setStepAsComplete(stepIndex);
11382    this.cdr.detectChanges();
11383    this.moveToNextStep();
11384  }
11385  moveToNextStep() {
11386    this.stepper.next();
11387  }
11388  moveToPreviousStep() {
11389    this.stepper.previous();
11390  }
11391  submitOrder() {
11392    this.addLicensesStore.submitOrder();
11393  }
11394  goToComplete() {
11395    this.router.navigate(["/purchase/confirmation"]);
11396  }
11397  getTotalCostInt() {
11398    const orderAmount = this.order$().paymentPayload.paymentInfo.totalAmount;
11399    try {
11400      return parseInt(orderAmount);
11401    } catch {
11402      return 0;
11403    }
11404  }
11405  static \u0275fac = function WebsiteAddSeatsComponent_Factory(__ngFactoryType__) {
11406    return new (__ngFactoryType__ || _WebsiteAddSeatsComponent)();
11407  };
11408  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _WebsiteAddSeatsComponent, selectors: [["nmfta-website-add-seats"]], viewQuery: function WebsiteAddSeatsComponent_Query(rf, ctx) {
11409    if (rf & 1) {
11410      \u0275\u0275viewQuery(_c09, 5);
11411    }
11412    if (rf & 2) {
11413      let _t;
11414      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.stepper = _t.first);
11415    }
11416  }, decls: 15, vars: 24, consts: [["stepper", ""], [3, "title"], ["labelPosition", "end", 3, "linear"], [3, "label", "completed"], [1, "pb-4"], [3, "complete", "back"], [3, "complete", "back", "paymentInitialCost"]], template: function WebsiteAddSeatsComponent_Template(rf, ctx) {
11417    if (rf & 1) {
11418      const _r1 = \u0275\u0275getCurrentView();
11419      \u0275\u0275element(0, "nmfta-page-title", 1);
11420      \u0275\u0275pipe(1, "translate");
11421      \u0275\u0275elementStart(2, "mat-stepper", 2, 0)(4, "mat-step", 3);
11422      \u0275\u0275pipe(5, "translate");
11423      \u0275\u0275elementStart(6, "div", 4)(7, "nmfta-website-add-seats-licenses", 5);
11424      \u0275\u0275listener("complete", function WebsiteAddSeatsComponent_Template_nmfta_website_add_seats_licenses_complete_7_listener() {
11425        \u0275\u0275restoreView(_r1);
11426        return \u0275\u0275resetView(ctx.markStepAsComplete(0));
11427      })("back", function WebsiteAddSeatsComponent_Template_nmfta_website_add_seats_licenses_back_7_listener() {
11428        \u0275\u0275restoreView(_r1);
11429        return \u0275\u0275resetView(ctx.moveToPreviousStep());
11430      });
11431      \u0275\u0275elementEnd()()();
11432      \u0275\u0275elementStart(8, "mat-step", 3);
11433      \u0275\u0275pipe(9, "translate");
11434      \u0275\u0275conditionalCreate(10, WebsiteAddSeatsComponent_Conditional_10_Template, 2, 3, "div", 4);
11435      \u0275\u0275elementEnd();
11436      \u0275\u0275elementStart(11, "mat-step", 3);
11437      \u0275\u0275pipe(12, "translate");
11438      \u0275\u0275elementStart(13, "div", 4)(14, "nmfta-website-add-seats-review", 5);
11439      \u0275\u0275listener("complete", function WebsiteAddSeatsComponent_Template_nmfta_website_add_seats_review_complete_14_listener() {
11440        \u0275\u0275restoreView(_r1);
11441        ctx.markStepAsComplete(2);
11442        return \u0275\u0275resetView(ctx.submitOrder());
11443      })("back", function WebsiteAddSeatsComponent_Template_nmfta_website_add_seats_review_back_14_listener() {
11444        \u0275\u0275restoreView(_r1);
11445        return \u0275\u0275resetView(ctx.moveToPreviousStep());
11446      });
11447      \u0275\u0275elementEnd()()()();
11448    }
11449    if (rf & 2) {
11450      const stepper_r4 = \u0275\u0275reference(3);
11451      \u0275\u0275property("title", \u0275\u0275pipeBind1(1, 16, "COMPANY_SETTINGS.ADD_NEW_LICENSES.PAGE_TITLE"));
11452      \u0275\u0275advance(2);
11453      \u0275\u0275property("linear", true);
11454      \u0275\u0275advance(2);
11455      \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(5, 18, "COMPANY_SETTINGS.ADD_NEW_LICENSES.STEPPER_LABELS.LICENSES")))("completed", ctx.completedSteps$()[0]);
11456      \u0275\u0275advance(3);
11457      \u0275\u0275styleProp("display", stepper_r4.selectedIndex === 0 ? "block" : "none");
11458      \u0275\u0275advance();
11459      \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(9, 20, "COMPANY_SETTINGS.ADD_NEW_LICENSES.STEPPER_LABELS.PAYMENT")))("completed", ctx.completedSteps$()[1]);
11460      \u0275\u0275advance(2);
11461      \u0275\u0275conditional(ctx.networkState$() === ctx.networkingStates.IDLE ? 10 : -1);
11462      \u0275\u0275advance();
11463      \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(12, 22, "COMPANY_SETTINGS.ADD_NEW_LICENSES.STEPPER_LABELS.REVIEW")))("completed", ctx.completedSteps$()[2]);
11464      \u0275\u0275advance(3);
11465      \u0275\u0275styleProp("display", stepper_r4.selectedIndex === 2 ? "block" : "none");
11466    }
11467  }, dependencies: [
11468    PageTitleComponent,
11469    MatStep,
11470    MatStepper,
11471    PurchasePaymentComponent,
11472    WebsiteAddSeatsLicensesComponent,
11473    WebsiteAddSeatsReviewComponent,
11474    TranslatePipe
11475  ], styles: ["\n\n[_nghost-%COMP%]   .mat-stepper-vertical[_ngcontent-%COMP%], \n[_nghost-%COMP%]   .mat-stepper-horizontal[_ngcontent-%COMP%] {\n  background: inherit;\n}\n[_nghost-%COMP%]     .input-wrapper {\n  gap: unset !important;\n}\n[_nghost-%COMP%]     .mat-horizontal-content-container {\n  padding: 0 !important;\n}\n/*# sourceMappingURL=website-add-seats.component-3WCK5VAL.css.map */"] });
11476};
11477(() => {
11478  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(WebsiteAddSeatsComponent, [{
11479    type: Component,
11480    args: [{ selector: "nmfta-website-add-seats", imports: [
11481      PageTitleComponent,
11482      TranslatePipe,
11483      MatStep,
11484      MatStepper,
11485      PurchasePaymentComponent,
11486      WebsiteAddSeatsLicensesComponent,
11487      WebsiteAddSeatsReviewComponent
11488    ], template: `<nmfta-page-title [title]="'COMPANY_SETTINGS.ADD_NEW_LICENSES.PAGE_TITLE' | translate"></nmfta-page-title>
11489
11490<mat-stepper labelPosition="end" [linear]="true" #stepper>
11491  <mat-step label="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.STEPPER_LABELS.LICENSES' | translate }}" [completed]="completedSteps$()[0]">
11492    <div class="pb-4">
11493      <nmfta-website-add-seats-licenses
11494        [style.display]="stepper.selectedIndex === 0 ? 'block' : 'none'"
11495        (complete)="markStepAsComplete(0)"
11496        (back)="moveToPreviousStep()"
11497      >
11498      </nmfta-website-add-seats-licenses>
11499    </div>
11500  </mat-step>
11501
11502  <mat-step label="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.STEPPER_LABELS.PAYMENT' | translate }}" [completed]="completedSteps$()[1]">
11503    @if (networkState$() === networkingStates.IDLE) {
11504      <div class="pb-4">
11505        <nmfta-purchase-payment
11506          [style.display]="stepper.selectedIndex === 1 ? 'block' : 'none'"
11507          [paymentInitialCost]="getTotalCostInt()"
11508          (complete)="markStepAsComplete(1)"
11509          (back)="moveToPreviousStep()"
11510        >
11511        </nmfta-purchase-payment>
11512      </div>
11513    }
11514  </mat-step>
11515
11516  <mat-step label="{{ 'COMPANY_SETTINGS.ADD_NEW_LICENSES.STEPPER_LABELS.REVIEW' | translate }}" [completed]="completedSteps$()[2]">
11517    <div class="pb-4">
11518      <nmfta-website-add-seats-review
11519        [style.display]="stepper.selectedIndex === 2 ? 'block' : 'none'"
11520        (complete)="markStepAsComplete(2); submitOrder()"
11521        (back)="moveToPreviousStep()">
11522      </nmfta-website-add-seats-review>
11523    </div>
11524  </mat-step>
11525</mat-stepper>
11526`, styles: ["/* src/app/features/profile/components/website-add-seats/website-add-seats.component.scss */\n:host .mat-stepper-vertical,\n:host .mat-stepper-horizontal {\n  background: inherit;\n}\n:host ::ng-deep .input-wrapper {\n  gap: unset !important;\n}\n:host ::ng-deep .mat-horizontal-content-container {\n  padding: 0 !important;\n}\n/*# sourceMappingURL=website-add-seats.component-3WCK5VAL.css.map */\n"] }]
11527  }], () => [], { stepper: [{
11528    type: ViewChild,
11529    args: ["stepper"]
11530  }] });
11531})();
11532(() => {
11533  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(WebsiteAddSeatsComponent, { className: "WebsiteAddSeatsComponent", filePath: "src/app/features/profile/components/website-add-seats/website-add-seats.component.ts", lineNumber: 35 });
11534})();
11535
11536// src/app/shared/components/organisms/user-profile/user-profile-constants.ts
11537var notificationFormFields = [
11538  {
11539    propertyName: "Online Notification",
11540    formControl: "onlineNotification",
11541    itemDescription: "Receive notifications via the Bell icon (default, can only be disabled if email is selected)",
11542    toggle: true
11543  },
11544  {
11545    propertyName: "Email Notification",
11546    formControl: "emailNotification",
11547    itemDescription: "Receive notifications directly to your email inbox",
11548    toggle: true
11549  }
11550];
11551
vendor: 93,087 bytes, lines 11552-15443
11552// node_modules/windows-iana/dist/windows-iana.esm.js
11553var IANA_ALIAS_MAP = [{
11554  name: "adalv",
11555  description: "Andorra",
11556  alias: ["Europe/Andorra"]
11557}, {
11558  name: "aedxb",
11559  description: "Dubai, United Arab Emirates",
11560  alias: ["Asia/Dubai"]
11561}, {
11562  name: "afkbl",
11563  description: "Kabul, Afghanistan",
11564  alias: ["Asia/Kabul"]
11565}, {
11566  name: "aganu",
11567  description: "Antigua",
11568  alias: ["America/Antigua"]
11569}, {
11570  name: "aiaxa",
11571  description: "Anguilla",
11572  alias: ["America/Anguilla"]
11573}, {
11574  name: "altia",
11575  description: "Tirane, Albania",
11576  alias: ["Europe/Tirane"]
11577}, {
11578  name: "amevn",
11579  description: "Yerevan, Armenia",
11580  alias: ["Asia/Yerevan"]
11581}, {
11582  name: "ancur",
11583  description: "Cura\xE7ao",
11584  alias: ["America/Curacao"]
11585}, {
11586  name: "aolad",
11587  description: "Luanda, Angola",
11588  alias: ["Africa/Luanda"]
11589}, {
11590  name: "aqcas",
11591  description: "Casey Station, Bailey Peninsula",
11592  alias: ["Antarctica/Casey"]
11593}, {
11594  name: "aqdav",
11595  description: "Davis Station, Vestfold Hills",
11596  alias: ["Antarctica/Davis"]
11597}, {
11598  name: "aqddu",
11599  description: "Dumont d'Urville Station, Terre Ad\xE9lie",
11600  alias: ["Antarctica/DumontDUrville"]
11601}, {
11602  name: "aqmaw",
11603  description: "Mawson Station, Holme Bay",
11604  alias: ["Antarctica/Mawson"]
11605}, {
11606  name: "aqmcm",
11607  description: "McMurdo Station, Ross Island",
11608  alias: ["Antarctica/McMurdo"]
11609}, {
11610  name: "aqplm",
11611  description: "Palmer Station, Anvers Island",
11612  alias: ["Antarctica/Palmer"]
11613}, {
11614  name: "aqrot",
11615  description: "Rothera Station, Adelaide Island",
11616  alias: ["Antarctica/Rothera"]
11617}, {
11618  name: "aqsyw",
11619  description: "Syowa Station, East Ongul Island",
11620  alias: ["Antarctica/Syowa"]
11621}, {
11622  name: "aqtrl",
11623  description: "Troll Station, Queen Maud Land",
11624  alias: ["Antarctica/Troll"]
11625}, {
11626  name: "aqvos",
11627  description: "Vostok Station, Lake Vostok",
11628  alias: ["Antarctica/Vostok"]
11629}, {
11630  name: "arbue",
11631  description: "Buenos Aires, Argentina",
11632  alias: ["America/Buenos_Aires", "America/Argentina/Buenos_Aires"]
11633}, {
11634  name: "arcor",
11635  description: "C\xF3rdoba, Argentina",
11636  alias: ["America/Cordoba", "America/Argentina/Cordoba", "America/Rosario"]
11637}, {
11638  name: "arctc",
11639  description: "Catamarca, Argentina",
11640  alias: ["America/Catamarca", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia"]
11641}, {
11642  name: "arirj",
11643  description: "La Rioja, Argentina",
11644  alias: ["America/Argentina/La_Rioja"]
11645}, {
11646  name: "arjuj",
11647  description: "Jujuy, Argentina",
11648  alias: ["America/Jujuy", "America/Argentina/Jujuy"]
11649}, {
11650  name: "arluq",
11651  description: "San Luis, Argentina",
11652  alias: ["America/Argentina/San_Luis"]
11653}, {
11654  name: "armdz",
11655  description: "Mendoza, Argentina",
11656  alias: ["America/Mendoza", "America/Argentina/Mendoza"]
11657}, {
11658  name: "arrgl",
11659  description: "R\xEDo Gallegos, Argentina",
11660  alias: ["America/Argentina/Rio_Gallegos"]
11661}, {
11662  name: "arsla",
11663  description: "Salta, Argentina",
11664  alias: ["America/Argentina/Salta"]
11665}, {
11666  name: "artuc",
11667  description: "Tucum\xE1n, Argentina",
11668  alias: ["America/Argentina/Tucuman"]
11669}, {
11670  name: "aruaq",
11671  description: "San Juan, Argentina",
11672  alias: ["America/Argentina/San_Juan"]
11673}, {
11674  name: "arush",
11675  description: "Ushuaia, Argentina",
11676  alias: ["America/Argentina/Ushuaia"]
11677}, {
11678  name: "asppg",
11679  description: "Pago Pago, American Samoa",
11680  alias: ["Pacific/Pago_Pago", "Pacific/Samoa", "US/Samoa"]
11681}, {
11682  name: "atvie",
11683  description: "Vienna, Austria",
11684  alias: ["Europe/Vienna"]
11685}, {
11686  name: "auadl",
11687  description: "Adelaide, Australia",
11688  alias: ["Australia/Adelaide", "Australia/South"]
11689}, {
11690  name: "aubhq",
11691  description: "Broken Hill, Australia",
11692  alias: ["Australia/Broken_Hill", "Australia/Yancowinna"]
11693}, {
11694  name: "aubne",
11695  description: "Brisbane, Australia",
11696  alias: ["Australia/Brisbane", "Australia/Queensland"]
11697}, {
11698  name: "audrw",
11699  description: "Darwin, Australia",
11700  alias: ["Australia/Darwin", "Australia/North"]
11701}, {
11702  name: "aueuc",
11703  description: "Eucla, Australia",
11704  alias: ["Australia/Eucla"]
11705}, {
11706  name: "auhba",
11707  description: "Hobart, Australia",
11708  alias: ["Australia/Hobart", "Australia/Tasmania"]
11709}, {
11710  name: "aukns",
11711  description: "Currie, Australia",
11712  alias: ["Australia/Currie"]
11713}, {
11714  name: "auldc",
11715  description: "Lindeman Island, Australia",
11716  alias: ["Australia/Lindeman"]
11717}, {
11718  name: "auldh",
11719  description: "Lord Howe Island, Australia",
11720  alias: ["Australia/Lord_Howe", "Australia/LHI"]
11721}, {
11722  name: "aumel",
11723  description: "Melbourne, Australia",
11724  alias: ["Australia/Melbourne", "Australia/Victoria"]
11725}, {
11726  name: "aumqi",
11727  description: "Macquarie Island Station, Macquarie Island",
11728  alias: ["Antarctica/Macquarie"]
11729}, {
11730  name: "auper",
11731  description: "Perth, Australia",
11732  alias: ["Australia/Perth", "Australia/West"]
11733}, {
11734  name: "ausyd",
11735  description: "Sydney, Australia",
11736  alias: ["Australia/Sydney", "Australia/ACT", "Australia/Canberra", "Australia/NSW"]
11737}, {
11738  name: "awaua",
11739  description: "Aruba",
11740  alias: ["America/Aruba"]
11741}, {
11742  name: "azbak",
11743  description: "Baku, Azerbaijan",
11744  alias: ["Asia/Baku"]
11745}, {
11746  name: "basjj",
11747  description: "Sarajevo, Bosnia and Herzegovina",
11748  alias: ["Europe/Sarajevo"]
11749}, {
11750  name: "bbbgi",
11751  description: "Barbados",
11752  alias: ["America/Barbados"]
11753}, {
11754  name: "bddac",
11755  description: "Dhaka, Bangladesh",
11756  alias: ["Asia/Dhaka", "Asia/Dacca"]
11757}, {
11758  name: "bebru",
11759  description: "Brussels, Belgium",
11760  alias: ["Europe/Brussels"]
11761}, {
11762  name: "bfoua",
11763  description: "Ouagadougou, Burkina Faso",
11764  alias: ["Africa/Ouagadougou"]
11765}, {
11766  name: "bgsof",
11767  description: "Sofia, Bulgaria",
11768  alias: ["Europe/Sofia"]
11769}, {
11770  name: "bhbah",
11771  description: "Bahrain",
11772  alias: ["Asia/Bahrain"]
11773}, {
11774  name: "bibjm",
11775  description: "Bujumbura, Burundi",
11776  alias: ["Africa/Bujumbura"]
11777}, {
11778  name: "bjptn",
11779  description: "Porto-Novo, Benin",
11780  alias: ["Africa/Porto-Novo"]
11781}, {
11782  name: "bmbda",
11783  description: "Bermuda",
11784  alias: ["Atlantic/Bermuda"]
11785}, {
11786  name: "bnbwn",
11787  description: "Brunei",
11788  alias: ["Asia/Brunei"]
11789}, {
11790  name: "bolpb",
11791  description: "La Paz, Bolivia",
11792  alias: ["America/La_Paz"]
11793}, {
11794  name: "bqkra",
11795  description: "Bonaire, Sint Estatius and Saba",
11796  alias: ["America/Kralendijk"]
11797}, {
11798  name: "braux",
11799  description: "Aragua\xEDna, Brazil",
11800  alias: ["America/Araguaina"]
11801}, {
11802  name: "brbel",
11803  description: "Bel\xE9m, Brazil",
11804  alias: ["America/Belem"]
11805}, {
11806  name: "brbvb",
11807  description: "Boa Vista, Brazil",
11808  alias: ["America/Boa_Vista"]
11809}, {
11810  name: "brcgb",
11811  description: "Cuiab\xE1, Brazil",
11812  alias: ["America/Cuiaba"]
11813}, {
11814  name: "brcgr",
11815  description: "Campo Grande, Brazil",
11816  alias: ["America/Campo_Grande"]
11817}, {
11818  name: "brern",
11819  description: "Eirunep\xE9, Brazil",
11820  alias: ["America/Eirunepe"]
11821}, {
11822  name: "brfen",
11823  description: "Fernando de Noronha, Brazil",
11824  alias: ["America/Noronha", "Brazil/DeNoronha"]
11825}, {
11826  name: "brfor",
11827  description: "Fortaleza, Brazil",
11828  alias: ["America/Fortaleza"]
11829}, {
11830  name: "brmao",
11831  description: "Manaus, Brazil",
11832  alias: ["America/Manaus", "Brazil/West"]
11833}, {
11834  name: "brmcz",
11835  description: "Macei\xF3, Brazil",
11836  alias: ["America/Maceio"]
11837}, {
11838  name: "brpvh",
11839  description: "Porto Velho, Brazil",
11840  alias: ["America/Porto_Velho"]
11841}, {
11842  name: "brrbr",
11843  description: "Rio Branco, Brazil",
11844  alias: ["America/Rio_Branco", "America/Porto_Acre", "Brazil/Acre"]
11845}, {
11846  name: "brrec",
11847  description: "Recife, Brazil",
11848  alias: ["America/Recife"]
11849}, {
11850  name: "brsao",
11851  description: "S\xE3o Paulo, Brazil",
11852  alias: ["America/Sao_Paulo", "Brazil/East"]
11853}, {
11854  name: "brssa",
11855  description: "Bahia, Brazil",
11856  alias: ["America/Bahia"]
11857}, {
11858  name: "brstm",
11859  description: "Santar\xE9m, Brazil",
11860  alias: ["America/Santarem"]
11861}, {
11862  name: "bsnas",
11863  description: "Nassau, Bahamas",
11864  alias: ["America/Nassau"]
11865}, {
11866  name: "btthi",
11867  description: "Thimphu, Bhutan",
11868  alias: ["Asia/Thimphu", "Asia/Thimbu"]
11869}, {
11870  name: "bwgbe",
11871  description: "Gaborone, Botswana",
11872  alias: ["Africa/Gaborone"]
11873}, {
11874  name: "bymsq",
11875  description: "Minsk, Belarus",
11876  alias: ["Europe/Minsk"]
11877}, {
11878  name: "bzbze",
11879  description: "Belize",
11880  alias: ["America/Belize"]
11881}, {
11882  name: "cacfq",
11883  description: "Creston, Canada",
11884  alias: ["America/Creston"]
11885}, {
11886  name: "caedm",
11887  description: "Edmonton, Canada",
11888  alias: ["America/Edmonton", "Canada/Mountain"]
11889}, {
11890  name: "caffs",
11891  description: "Rainy River, Canada",
11892  alias: ["America/Rainy_River"]
11893}, {
11894  name: "cafne",
11895  description: "Fort Nelson, Canada",
11896  alias: ["America/Fort_Nelson"]
11897}, {
11898  name: "caglb",
11899  description: "Glace Bay, Canada",
11900  alias: ["America/Glace_Bay"]
11901}, {
11902  name: "cagoo",
11903  description: "Goose Bay, Canada",
11904  alias: ["America/Goose_Bay"]
11905}, {
11906  name: "cahal",
11907  description: "Halifax, Canada",
11908  alias: ["America/Halifax", "Canada/Atlantic"]
11909}, {
11910  name: "caiql",
11911  description: "Iqaluit, Canada",
11912  alias: ["America/Iqaluit"]
11913}, {
11914  name: "camon",
11915  description: "Moncton, Canada",
11916  alias: ["America/Moncton"]
11917}, {
11918  name: "capnt",
11919  description: "Pangnirtung, Canada",
11920  alias: ["America/Pangnirtung"]
11921}, {
11922  name: "careb",
11923  description: "Resolute, Canada",
11924  alias: ["America/Resolute"]
11925}, {
11926  name: "careg",
11927  description: "Regina, Canada",
11928  alias: ["America/Regina", "Canada/East-Saskatchewan", "Canada/Saskatchewan"]
11929}, {
11930  name: "casjf",
11931  description: "St. John's, Canada",
11932  alias: ["America/St_Johns", "Canada/Newfoundland"]
11933}, {
11934  name: "canpg",
11935  description: "Nipigon, Canada",
11936  alias: ["America/Nipigon"]
11937}, {
11938  name: "cathu",
11939  description: "Thunder Bay, Canada",
11940  alias: ["America/Thunder_Bay"]
11941}, {
11942  name: "cator",
11943  description: "Toronto, Canada",
11944  alias: ["America/Toronto", "Canada/Eastern"]
11945}, {
11946  name: "cavan",
11947  description: "Vancouver, Canada",
11948  alias: ["America/Vancouver", "Canada/Pacific"]
11949}, {
11950  name: "cawnp",
11951  description: "Winnipeg, Canada",
11952  alias: ["America/Winnipeg", "Canada/Central"]
11953}, {
11954  name: "caybx",
11955  description: "Blanc-Sablon, Canada",
11956  alias: ["America/Blanc-Sablon"]
11957}, {
11958  name: "caycb",
11959  description: "Cambridge Bay, Canada",
11960  alias: ["America/Cambridge_Bay"]
11961}, {
11962  name: "cayda",
11963  description: "Dawson, Canada",
11964  alias: ["America/Dawson"]
11965}, {
11966  name: "caydq",
11967  description: "Dawson Creek, Canada",
11968  alias: ["America/Dawson_Creek"]
11969}, {
11970  name: "cayek",
11971  description: "Rankin Inlet, Canada",
11972  alias: ["America/Rankin_Inlet"]
11973}, {
11974  name: "cayev",
11975  description: "Inuvik, Canada",
11976  alias: ["America/Inuvik"]
11977}, {
11978  name: "cayxy",
11979  description: "Whitehorse, Canada",
11980  alias: ["America/Whitehorse", "Canada/Yukon"]
11981}, {
11982  name: "cayyn",
11983  description: "Swift Current, Canada",
11984  alias: ["America/Swift_Current"]
11985}, {
11986  name: "cayzf",
11987  description: "Yellowknife, Canada",
11988  alias: ["America/Yellowknife"]
11989}, {
11990  name: "cayzs",
11991  description: "Atikokan, Canada",
11992  alias: ["America/Coral_Harbour", "America/Atikokan"]
11993}, {
11994  name: "cccck",
11995  description: "Cocos (Keeling) Islands",
11996  alias: ["Indian/Cocos"]
11997}, {
11998  name: "cdfbm",
11999  description: "Lubumbashi, Democratic Republic of the Congo",
12000  alias: ["Africa/Lubumbashi"]
12001}, {
12002  name: "cdfih",
12003  description: "Kinshasa, Democratic Republic of the Congo",
12004  alias: ["Africa/Kinshasa"]
12005}, {
12006  name: "cfbgf",
12007  description: "Bangui, Central African Republic",
12008  alias: ["Africa/Bangui"]
12009}, {
12010  name: "cgbzv",
12011  description: "Brazzaville, Republic of the Congo",
12012  alias: ["Africa/Brazzaville"]
12013}, {
12014  name: "chzrh",
12015  description: "Zurich, Switzerland",
12016  alias: ["Europe/Zurich"]
12017}, {
12018  name: "ciabj",
12019  description: "Abidjan, C\xF4te d'Ivoire",
12020  alias: ["Africa/Abidjan"]
12021}, {
12022  name: "ckrar",
12023  description: "Rarotonga, Cook Islands",
12024  alias: ["Pacific/Rarotonga"]
12025}, {
12026  name: "clipc",
12027  description: "Easter Island, Chile",
12028  alias: ["Pacific/Easter", "Chile/EasterIsland"]
12029}, {
12030  name: "clpuq",
12031  description: "Punta Arenas, Chile",
12032  alias: ["America/Punta_Arenas"]
12033}, {
12034  name: "clscl",
12035  description: "Santiago, Chile",
12036  alias: ["America/Santiago", "Chile/Continental"]
12037}, {
12038  name: "cmdla",
12039  description: "Douala, Cameroon",
12040  alias: ["Africa/Douala"]
12041}, {
12042  name: "cnsha",
12043  description: "Shanghai, China",
12044  alias: ["Asia/Shanghai", "Asia/Chongqing", "Asia/Chungking", "Asia/Harbin", "PRC"]
12045}, {
12046  name: "cnurc",
12047  description: "\xDCr\xFCmqi, China",
12048  alias: ["Asia/Urumqi", "Asia/Kashgar"]
12049}, {
12050  name: "cobog",
12051  description: "Bogot\xE1, Colombia",
12052  alias: ["America/Bogota"]
12053}, {
12054  name: "crsjo",
12055  description: "Costa Rica",
12056  alias: ["America/Costa_Rica"]
12057}, {
12058  name: "cst6cdt",
12059  description: "POSIX style time zone for US Central Time",
12060  alias: ["CST6CDT"]
12061}, {
12062  name: "cuhav",
12063  description: "Havana, Cuba",
12064  alias: ["America/Havana", "Cuba"]
12065}, {
12066  name: "cvrai",
12067  description: "Cape Verde",
12068  alias: ["Atlantic/Cape_Verde"]
12069}, {
12070  name: "cxxch",
12071  description: "Christmas Island",
12072  alias: ["Indian/Christmas"]
12073}, {
12074  name: "cyfmg",
12075  description: "Famagusta, Cyprus",
12076  alias: ["Asia/Famagusta"]
12077}, {
12078  name: "cynic",
12079  description: "Nicosia, Cyprus",
12080  alias: ["Asia/Nicosia", "Europe/Nicosia"]
12081}, {
12082  name: "czprg",
12083  description: "Prague, Czech Republic",
12084  alias: ["Europe/Prague"]
12085}, {
12086  name: "deber",
12087  description: "Berlin, Germany",
12088  alias: ["Europe/Berlin"]
12089}, {
12090  name: "debsngn",
12091  description: "Busingen, Germany",
12092  alias: ["Europe/Busingen"]
12093}, {
12094  name: "djjib",
12095  description: "Djibouti",
12096  alias: ["Africa/Djibouti"]
12097}, {
12098  name: "dkcph",
12099  description: "Copenhagen, Denmark",
12100  alias: ["Europe/Copenhagen"]
12101}, {
12102  name: "dmdom",
12103  description: "Dominica",
12104  alias: ["America/Dominica"]
12105}, {
12106  name: "dosdq",
12107  description: "Santo Domingo, Dominican Republic",
12108  alias: ["America/Santo_Domingo"]
12109}, {
12110  name: "dzalg",
12111  description: "Algiers, Algeria",
12112  alias: ["Africa/Algiers"]
12113}, {
12114  name: "ecgps",
12115  description: "Gal\xE1pagos Islands, Ecuador",
12116  alias: ["Pacific/Galapagos"]
12117}, {
12118  name: "ecgye",
12119  description: "Guayaquil, Ecuador",
12120  alias: ["America/Guayaquil"]
12121}, {
12122  name: "eetll",
12123  description: "Tallinn, Estonia",
12124  alias: ["Europe/Tallinn"]
12125}, {
12126  name: "egcai",
12127  description: "Cairo, Egypt",
12128  alias: ["Africa/Cairo", "Egypt"]
12129}, {
12130  name: "eheai",
12131  description: "El Aai\xFAn, Western Sahara",
12132  alias: ["Africa/El_Aaiun"]
12133}, {
12134  name: "erasm",
12135  description: "Asmara, Eritrea",
12136  alias: ["Africa/Asmera", "Africa/Asmara"]
12137}, {
12138  name: "esceu",
12139  description: "Ceuta, Spain",
12140  alias: ["Africa/Ceuta"]
12141}, {
12142  name: "eslpa",
12143  description: "Canary Islands, Spain",
12144  alias: ["Atlantic/Canary"]
12145}, {
12146  name: "esmad",
12147  description: "Madrid, Spain",
12148  alias: ["Europe/Madrid"]
12149}, {
12150  name: "est5edt",
12151  description: "POSIX style time zone for US Eastern Time",
12152  alias: ["EST5EDT"]
12153}, {
12154  name: "etadd",
12155  description: "Addis Ababa, Ethiopia",
12156  alias: ["Africa/Addis_Ababa"]
12157}, {
12158  name: "fihel",
12159  description: "Helsinki, Finland",
12160  alias: ["Europe/Helsinki"]
12161}, {
12162  name: "fimhq",
12163  description: "Mariehamn, \xC5land, Finland",
12164  alias: ["Europe/Mariehamn"]
12165}, {
12166  name: "fjsuv",
12167  description: "Fiji",
12168  alias: ["Pacific/Fiji"]
12169}, {
12170  name: "fkpsy",
12171  description: "Stanley, Falkland Islands",
12172  alias: ["Atlantic/Stanley"]
12173}, {
12174  name: "fmksa",
12175  description: "Kosrae, Micronesia",
12176  alias: ["Pacific/Kosrae"]
12177}, {
12178  name: "fmpni",
12179  description: "Pohnpei, Micronesia",
12180  alias: ["Pacific/Ponape", "Pacific/Pohnpei"]
12181}, {
12182  name: "fmtkk",
12183  description: "Chuuk, Micronesia",
12184  alias: ["Pacific/Truk", "Pacific/Chuuk", "Pacific/Yap"]
12185}, {
12186  name: "fotho",
12187  description: "Faroe Islands",
12188  alias: ["Atlantic/Faeroe", "Atlantic/Faroe"]
12189}, {
12190  name: "frpar",
12191  description: "Paris, France",
12192  alias: ["Europe/Paris"]
12193}, {
12194  name: "galbv",
12195  description: "Libreville, Gabon",
12196  alias: ["Africa/Libreville"]
12197}, {
12198  name: "gazastrp",
12199  description: "Gaza Strip, Palestinian Territories",
12200  alias: ["Asia/Gaza"]
12201}, {
12202  name: "gblon",
12203  description: "London, United Kingdom",
12204  alias: ["Europe/London", "Europe/Belfast", "GB", "GB-Eire"]
12205}, {
12206  name: "gdgnd",
12207  description: "Grenada",
12208  alias: ["America/Grenada"]
12209}, {
12210  name: "getbs",
12211  description: "Tbilisi, Georgia",
12212  alias: ["Asia/Tbilisi"]
12213}, {
12214  name: "gfcay",
12215  description: "Cayenne, French Guiana",
12216  alias: ["America/Cayenne"]
12217}, {
12218  name: "gggci",
12219  description: "Guernsey",
12220  alias: ["Europe/Guernsey"]
12221}, {
12222  name: "ghacc",
12223  description: "Accra, Ghana",
12224  alias: ["Africa/Accra"]
12225}, {
12226  name: "gigib",
12227  description: "Gibraltar",
12228  alias: ["Europe/Gibraltar"]
12229}, {
12230  name: "gldkshvn",
12231  description: "Danmarkshavn, Greenland",
12232  alias: ["America/Danmarkshavn"]
12233}, {
12234  name: "glgoh",
12235  description: "Nuuk (Godth\xE5b), Greenland",
12236  alias: ["America/Godthab", "America/Nuuk"]
12237}, {
12238  name: "globy",
12239  description: "Ittoqqortoormiit (Scoresbysund), Greenland",
12240  alias: ["America/Scoresbysund"]
12241}, {
12242  name: "glthu",
12243  description: "Qaanaaq (Thule), Greenland",
12244  alias: ["America/Thule"]
12245}, {
12246  name: "gmbjl",
12247  description: "Banjul, Gambia",
12248  alias: ["Africa/Banjul"]
12249}, {
12250  name: "gmt",
12251  description: "Greenwich Mean Time",
12252  alias: ["Etc/GMT", "Etc/GMT+0", "Etc/GMT-0", "Etc/GMT0", "Etc/Greenwich", "GMT", "GMT+0", "GMT-0", "GMT0", "Greenwich"]
12253}, {
12254  name: "gncky",
12255  description: "Conakry, Guinea",
12256  alias: ["Africa/Conakry"]
12257}, {
12258  name: "gpbbr",
12259  description: "Guadeloupe",
12260  alias: ["America/Guadeloupe"]
12261}, {
12262  name: "gpmsb",
12263  description: "Marigot, Saint Martin",
12264  alias: ["America/Marigot"]
12265}, {
12266  name: "gpsbh",
12267  description: "Saint Barth\xE9lemy",
12268  alias: ["America/St_Barthelemy"]
12269}, {
12270  name: "gqssg",
12271  description: "Malabo, Equatorial Guinea",
12272  alias: ["Africa/Malabo"]
12273}, {
12274  name: "grath",
12275  description: "Athens, Greece",
12276  alias: ["Europe/Athens"]
12277}, {
12278  name: "gsgrv",
12279  description: "South Georgia and the South Sandwich Islands",
12280  alias: ["Atlantic/South_Georgia"]
12281}, {
12282  name: "gtgua",
12283  description: "Guatemala",
12284  alias: ["America/Guatemala"]
12285}, {
12286  name: "gugum",
12287  description: "Guam",
12288  alias: ["Pacific/Guam"]
12289}, {
12290  name: "gwoxb",
12291  description: "Bissau, Guinea-Bissau",
12292  alias: ["Africa/Bissau"]
12293}, {
12294  name: "gygeo",
12295  description: "Guyana",
12296  alias: ["America/Guyana"]
12297}, {
12298  name: "hebron",
12299  description: "West Bank, Palestinian Territories",
12300  alias: ["Asia/Hebron"]
12301}, {
12302  name: "hkhkg",
12303  description: "Hong Kong SAR China",
12304  alias: ["Asia/Hong_Kong", "Hongkong"]
12305}, {
12306  name: "hntgu",
12307  description: "Tegucigalpa, Honduras",
12308  alias: ["America/Tegucigalpa"]
12309}, {
12310  name: "hrzag",
12311  description: "Zagreb, Croatia",
12312  alias: ["Europe/Zagreb"]
12313}, {
12314  name: "htpap",
12315  description: "Port-au-Prince, Haiti",
12316  alias: ["America/Port-au-Prince"]
12317}, {
12318  name: "hubud",
12319  description: "Budapest, Hungary",
12320  alias: ["Europe/Budapest"]
12321}, {
12322  name: "iddjj",
12323  description: "Jayapura, Indonesia",
12324  alias: ["Asia/Jayapura"]
12325}, {
12326  name: "idjkt",
12327  description: "Jakarta, Indonesia",
12328  alias: ["Asia/Jakarta"]
12329}, {
12330  name: "idmak",
12331  description: "Makassar, Indonesia",
12332  alias: ["Asia/Makassar", "Asia/Ujung_Pandang"]
12333}, {
12334  name: "idpnk",
12335  description: "Pontianak, Indonesia",
12336  alias: ["Asia/Pontianak"]
12337}, {
12338  name: "iedub",
12339  description: "Dublin, Ireland",
12340  alias: ["Europe/Dublin", "Eire"]
12341}, {
12342  name: "imdgs",
12343  description: "Isle of Man",
12344  alias: ["Europe/Isle_of_Man"]
12345}, {
12346  name: "inccu",
12347  description: "Kolkata, India",
12348  alias: ["Asia/Calcutta", "Asia/Kolkata"]
12349}, {
12350  name: "iodga",
12351  description: "Chagos Archipelago",
12352  alias: ["Indian/Chagos"]
12353}, {
12354  name: "iqbgw",
12355  description: "Baghdad, Iraq",
12356  alias: ["Asia/Baghdad"]
12357}, {
12358  name: "irthr",
12359  description: "Tehran, Iran",
12360  alias: ["Asia/Tehran", "Iran"]
12361}, {
12362  name: "isrey",
12363  description: "Reykjavik, Iceland",
12364  alias: ["Atlantic/Reykjavik", "Iceland"]
12365}, {
12366  name: "itrom",
12367  description: "Rome, Italy",
12368  alias: ["Europe/Rome"]
12369}, {
12370  name: "jeruslm",
12371  description: "Jerusalem",
12372  alias: ["Asia/Jerusalem", "Asia/Tel_Aviv", "Israel"]
12373}, {
12374  name: "jesth",
12375  description: "Jersey",
12376  alias: ["Europe/Jersey"]
12377}, {
12378  name: "jmkin",
12379  description: "Jamaica",
12380  alias: ["America/Jamaica", "Jamaica"]
12381}, {
12382  name: "joamm",
12383  description: "Amman, Jordan",
12384  alias: ["Asia/Amman"]
12385}, {
12386  name: "jptyo",
12387  description: "Tokyo, Japan",
12388  alias: ["Asia/Tokyo", "Japan"]
12389}, {
12390  name: "kenbo",
12391  description: "Nairobi, Kenya",
12392  alias: ["Africa/Nairobi"]
12393}, {
12394  name: "kgfru",
12395  description: "Bishkek, Kyrgyzstan",
12396  alias: ["Asia/Bishkek"]
12397}, {
12398  name: "khpnh",
12399  description: "Phnom Penh, Cambodia",
12400  alias: ["Asia/Phnom_Penh"]
12401}, {
12402  name: "kicxi",
12403  description: "Kiritimati, Kiribati",
12404  alias: ["Pacific/Kiritimati"]
12405}, {
12406  name: "kipho",
12407  description: "Enderbury Island, Kiribati",
12408  alias: ["Pacific/Enderbury"]
12409}, {
12410  name: "kitrw",
12411  description: "Tarawa, Kiribati",
12412  alias: ["Pacific/Tarawa"]
12413}, {
12414  name: "kmyva",
12415  description: "Comoros",
12416  alias: ["Indian/Comoro"]
12417}, {
12418  name: "knbas",
12419  description: "Saint Kitts",
12420  alias: ["America/St_Kitts"]
12421}, {
12422  name: "kpfnj",
12423  description: "Pyongyang, North Korea",
12424  alias: ["Asia/Pyongyang"]
12425}, {
12426  name: "krsel",
12427  description: "Seoul, South Korea",
12428  alias: ["Asia/Seoul", "ROK"]
12429}, {
12430  name: "kwkwi",
12431  description: "Kuwait",
12432  alias: ["Asia/Kuwait"]
12433}, {
12434  name: "kygec",
12435  description: "Cayman Islands",
12436  alias: ["America/Cayman"]
12437}, {
12438  name: "kzaau",
12439  description: "Aqtau, Kazakhstan",
12440  alias: ["Asia/Aqtau"]
12441}, {
12442  name: "kzakx",
12443  description: "Aqtobe, Kazakhstan",
12444  alias: ["Asia/Aqtobe"]
12445}, {
12446  name: "kzala",
12447  description: "Almaty, Kazakhstan",
12448  alias: ["Asia/Almaty"]
12449}, {
12450  name: "kzguw",
12451  description: "Atyrau (Guryev), Kazakhstan",
12452  alias: ["Asia/Atyrau"]
12453}, {
12454  name: "kzksn",
12455  description: "Qostanay (Kostanay), Kazakhstan",
12456  alias: ["Asia/Qostanay"]
12457}, {
12458  name: "kzkzo",
12459  description: "Kyzylorda, Kazakhstan",
12460  alias: ["Asia/Qyzylorda"]
12461}, {
12462  name: "kzura",
12463  description: "Oral, Kazakhstan",
12464  alias: ["Asia/Oral"]
12465}, {
12466  name: "lavte",
12467  description: "Vientiane, Laos",
12468  alias: ["Asia/Vientiane"]
12469}, {
12470  name: "lbbey",
12471  description: "Beirut, Lebanon",
12472  alias: ["Asia/Beirut"]
12473}, {
12474  name: "lccas",
12475  description: "Saint Lucia",
12476  alias: ["America/St_Lucia"]
12477}, {
12478  name: "livdz",
12479  description: "Vaduz, Liechtenstein",
12480  alias: ["Europe/Vaduz"]
12481}, {
12482  name: "lkcmb",
12483  description: "Colombo, Sri Lanka",
12484  alias: ["Asia/Colombo"]
12485}, {
12486  name: "lrmlw",
12487  description: "Monrovia, Liberia",
12488  alias: ["Africa/Monrovia"]
12489}, {
12490  name: "lsmsu",
12491  description: "Maseru, Lesotho",
12492  alias: ["Africa/Maseru"]
12493}, {
12494  name: "ltvno",
12495  description: "Vilnius, Lithuania",
12496  alias: ["Europe/Vilnius"]
12497}, {
12498  name: "lulux",
12499  description: "Luxembourg",
12500  alias: ["Europe/Luxembourg"]
12501}, {
12502  name: "lvrix",
12503  description: "Riga, Latvia",
12504  alias: ["Europe/Riga"]
12505}, {
12506  name: "lytip",
12507  description: "Tripoli, Libya",
12508  alias: ["Africa/Tripoli", "Libya"]
12509}, {
12510  name: "macas",
12511  description: "Casablanca, Morocco",
12512  alias: ["Africa/Casablanca"]
12513}, {
12514  name: "mcmon",
12515  description: "Monaco",
12516  alias: ["Europe/Monaco"]
12517}, {
12518  name: "mdkiv",
12519  description: "Chi\u015Fin\u0103u, Moldova",
12520  alias: ["Europe/Chisinau", "Europe/Tiraspol"]
12521}, {
12522  name: "metgd",
12523  description: "Podgorica, Montenegro",
12524  alias: ["Europe/Podgorica"]
12525}, {
12526  name: "mgtnr",
12527  description: "Antananarivo, Madagascar",
12528  alias: ["Indian/Antananarivo"]
12529}, {
12530  name: "mhkwa",
12531  description: "Kwajalein, Marshall Islands",
12532  alias: ["Pacific/Kwajalein", "Kwajalein"]
12533}, {
12534  name: "mhmaj",
12535  description: "Majuro, Marshall Islands",
12536  alias: ["Pacific/Majuro"]
12537}, {
12538  name: "mkskp",
12539  description: "Skopje, Macedonia",
12540  alias: ["Europe/Skopje"]
12541}, {
12542  name: "mlbko",
12543  description: "Bamako, Mali",
12544  alias: ["Africa/Bamako", "Africa/Timbuktu"]
12545}, {
12546  name: "mmrgn",
12547  description: "Yangon (Rangoon), Burma",
12548  alias: ["Asia/Rangoon", "Asia/Yangon"]
12549}, {
12550  name: "mncoq",
12551  description: "Choibalsan, Mongolia",
12552  alias: ["Asia/Choibalsan"]
12553}, {
12554  name: "mnhvd",
12555  description: "Khovd (Hovd), Mongolia",
12556  alias: ["Asia/Hovd"]
12557}, {
12558  name: "mnuln",
12559  description: "Ulaanbaatar (Ulan Bator), Mongolia",
12560  alias: ["Asia/Ulaanbaatar", "Asia/Ulan_Bator"]
12561}, {
12562  name: "momfm",
12563  description: "Macau SAR China",
12564  alias: ["Asia/Macau", "Asia/Macao"]
12565}, {
12566  name: "mpspn",
12567  description: "Saipan, Northern Mariana Islands",
12568  alias: ["Pacific/Saipan"]
12569}, {
12570  name: "mqfdf",
12571  description: "Martinique",
12572  alias: ["America/Martinique"]
12573}, {
12574  name: "mrnkc",
12575  description: "Nouakchott, Mauritania",
12576  alias: ["Africa/Nouakchott"]
12577}, {
12578  name: "msmni",
12579  description: "Montserrat",
12580  alias: ["America/Montserrat"]
12581}, {
12582  name: "mst7mdt",
12583  description: "POSIX style time zone for US Mountain Time",
12584  alias: ["MST7MDT"]
12585}, {
12586  name: "mtmla",
12587  description: "Malta",
12588  alias: ["Europe/Malta"]
12589}, {
12590  name: "muplu",
12591  description: "Mauritius",
12592  alias: ["Indian/Mauritius"]
12593}, {
12594  name: "mvmle",
12595  description: "Maldives",
12596  alias: ["Indian/Maldives"]
12597}, {
12598  name: "mwblz",
12599  description: "Blantyre, Malawi",
12600  alias: ["Africa/Blantyre"]
12601}, {
12602  name: "mxchi",
12603  description: "Chihuahua, Mexico",
12604  alias: ["America/Chihuahua"]
12605}, {
12606  name: "mxcun",
12607  description: "Canc\xFAn, Mexico",
12608  alias: ["America/Cancun"]
12609}, {
12610  name: "mxhmo",
12611  description: "Hermosillo, Mexico",
12612  alias: ["America/Hermosillo"]
12613}, {
12614  name: "mxmam",
12615  description: "Matamoros, Mexico",
12616  alias: ["America/Matamoros"]
12617}, {
12618  name: "mxmex",
12619  description: "Mexico City, Mexico",
12620  alias: ["America/Mexico_City", "Mexico/General"]
12621}, {
12622  name: "mxmid",
12623  description: "M\xE9rida, Mexico",
12624  alias: ["America/Merida"]
12625}, {
12626  name: "mxmty",
12627  description: "Monterrey, Mexico",
12628  alias: ["America/Monterrey"]
12629}, {
12630  name: "mxmzt",
12631  description: "Mazatl\xE1n, Mexico",
12632  alias: ["America/Mazatlan", "Mexico/BajaSur"]
12633}, {
12634  name: "mxoji",
12635  description: "Ojinaga, Mexico",
12636  alias: ["America/Ojinaga"]
12637}, {
12638  name: "mxpvr",
12639  description: "Bah\xEDa de Banderas, Mexico",
12640  alias: ["America/Bahia_Banderas"]
12641}, {
12642  name: "mxstis",
12643  description: "Santa Isabel (Baja California), Mexico",
12644  alias: ["America/Santa_Isabel"]
12645}, {
12646  name: "mxtij",
12647  description: "Tijuana, Mexico",
12648  alias: ["America/Tijuana", "America/Ensenada", "Mexico/BajaNorte"]
12649}, {
12650  name: "mykch",
12651  description: "Kuching, Malaysia",
12652  alias: ["Asia/Kuching"]
12653}, {
12654  name: "mykul",
12655  description: "Kuala Lumpur, Malaysia",
12656  alias: ["Asia/Kuala_Lumpur"]
12657}, {
12658  name: "mzmpm",
12659  description: "Maputo, Mozambique",
12660  alias: ["Africa/Maputo"]
12661}, {
12662  name: "nawdh",
12663  description: "Windhoek, Namibia",
12664  alias: ["Africa/Windhoek"]
12665}, {
12666  name: "ncnou",
12667  description: "Noumea, New Caledonia",
12668  alias: ["Pacific/Noumea"]
12669}, {
12670  name: "nenim",
12671  description: "Niamey, Niger",
12672  alias: ["Africa/Niamey"]
12673}, {
12674  name: "nfnlk",
12675  description: "Norfolk Island",
12676  alias: ["Pacific/Norfolk"]
12677}, {
12678  name: "nglos",
12679  description: "Lagos, Nigeria",
12680  alias: ["Africa/Lagos"]
12681}, {
12682  name: "nimga",
12683  description: "Managua, Nicaragua",
12684  alias: ["America/Managua"]
12685}, {
12686  name: "nlams",
12687  description: "Amsterdam, Netherlands",
12688  alias: ["Europe/Amsterdam"]
12689}, {
12690  name: "noosl",
12691  description: "Oslo, Norway",
12692  alias: ["Europe/Oslo"]
12693}, {
12694  name: "npktm",
12695  description: "Kathmandu, Nepal",
12696  alias: ["Asia/Katmandu", "Asia/Kathmandu"]
12697}, {
12698  name: "nrinu",
12699  description: "Nauru",
12700  alias: ["Pacific/Nauru"]
12701}, {
12702  name: "nuiue",
12703  description: "Niue",
12704  alias: ["Pacific/Niue"]
12705}, {
12706  name: "nzakl",
12707  description: "Auckland, New Zealand",
12708  alias: ["Pacific/Auckland", "Antarctica/South_Pole", "NZ"]
12709}, {
12710  name: "nzcht",
12711  description: "Chatham Islands, New Zealand",
12712  alias: ["Pacific/Chatham", "NZ-CHAT"]
12713}, {
12714  name: "ommct",
12715  description: "Muscat, Oman",
12716  alias: ["Asia/Muscat"]
12717}, {
12718  name: "papty",
12719  description: "Panama",
12720  alias: ["America/Panama"]
12721}, {
12722  name: "pelim",
12723  description: "Lima, Peru",
12724  alias: ["America/Lima"]
12725}, {
12726  name: "pfgmr",
12727  description: "Gambiera Islands, French Polynesia",
12728  alias: ["Pacific/Gambier"]
12729}, {
12730  name: "pfnhv",
12731  description: "Marquesas Islands, French Polynesia",
12732  alias: ["Pacific/Marquesas"]
12733}, {
12734  name: "pfppt",
12735  description: "Tahiti, French Polynesia",
12736  alias: ["Pacific/Tahiti"]
12737}, {
12738  name: "pgpom",
12739  description: "Port Moresby, Papua New Guinea",
12740  alias: ["Pacific/Port_Moresby"]
12741}, {
12742  name: "pgraw",
12743  description: "Bougainville, Papua New Guinea",
12744  alias: ["Pacific/Bougainville"]
12745}, {
12746  name: "phmnl",
12747  description: "Manila, Philippines",
12748  alias: ["Asia/Manila"]
12749}, {
12750  name: "pkkhi",
12751  description: "Karachi, Pakistan",
12752  alias: ["Asia/Karachi"]
12753}, {
12754  name: "plwaw",
12755  description: "Warsaw, Poland",
12756  alias: ["Europe/Warsaw", "Poland"]
12757}, {
12758  name: "pmmqc",
12759  description: "Saint Pierre and Miquelon",
12760  alias: ["America/Miquelon"]
12761}, {
12762  name: "pnpcn",
12763  description: "Pitcairn Islands",
12764  alias: ["Pacific/Pitcairn"]
12765}, {
12766  name: "prsju",
12767  description: "Puerto Rico",
12768  alias: ["America/Puerto_Rico"]
12769}, {
12770  name: "pst8pdt",
12771  description: "POSIX style time zone for US Pacific Time",
12772  alias: ["PST8PDT"]
12773}, {
12774  name: "ptfnc",
12775  description: "Madeira, Portugal",
12776  alias: ["Atlantic/Madeira"]
12777}, {
12778  name: "ptlis",
12779  description: "Lisbon, Portugal",
12780  alias: ["Europe/Lisbon", "Portugal"]
12781}, {
12782  name: "ptpdl",
12783  description: "Azores, Portugal",
12784  alias: ["Atlantic/Azores"]
12785}, {
12786  name: "pwror",
12787  description: "Palau",
12788  alias: ["Pacific/Palau"]
12789}, {
12790  name: "pyasu",
12791  description: "Asunci\xF3n, Paraguay",
12792  alias: ["America/Asuncion"]
12793}, {
12794  name: "qadoh",
12795  description: "Qatar",
12796  alias: ["Asia/Qatar"]
12797}, {
12798  name: "rereu",
12799  description: "R\xE9union",
12800  alias: ["Indian/Reunion"]
12801}, {
12802  name: "robuh",
12803  description: "Bucharest, Romania",
12804  alias: ["Europe/Bucharest"]
12805}, {
12806  name: "rsbeg",
12807  description: "Belgrade, Serbia",
12808  alias: ["Europe/Belgrade"]
12809}, {
12810  name: "ruasf",
12811  description: "Astrakhan, Russia",
12812  alias: ["Europe/Astrakhan"]
12813}, {
12814  name: "rubax",
12815  description: "Barnaul, Russia",
12816  alias: ["Asia/Barnaul"]
12817}, {
12818  name: "ruchita",
12819  description: "Chita Zabaykalsky, Russia",
12820  alias: ["Asia/Chita"]
12821}, {
12822  name: "rudyr",
12823  description: "Anadyr, Russia",
12824  alias: ["Asia/Anadyr"]
12825}, {
12826  name: "rugdx",
12827  description: "Magadan, Russia",
12828  alias: ["Asia/Magadan"]
12829}, {
12830  name: "ruikt",
12831  description: "Irkutsk, Russia",
12832  alias: ["Asia/Irkutsk"]
12833}, {
12834  name: "rukgd",
12835  description: "Kaliningrad, Russia",
12836  alias: ["Europe/Kaliningrad"]
12837}, {
12838  name: "rukhndg",
12839  description: "Khandyga Tomponsky, Russia",
12840  alias: ["Asia/Khandyga"]
12841}, {
12842  name: "rukra",
12843  description: "Krasnoyarsk, Russia",
12844  alias: ["Asia/Krasnoyarsk"]
12845}, {
12846  name: "rukuf",
12847  description: "Samara, Russia",
12848  alias: ["Europe/Samara"]
12849}, {
12850  name: "rukvx",
12851  description: "Kirov, Russia",
12852  alias: ["Europe/Kirov"]
12853}, {
12854  name: "rumow",
12855  description: "Moscow, Russia",
12856  alias: ["Europe/Moscow", "W-SU"]
12857}, {
12858  name: "runoz",
12859  description: "Novokuznetsk, Russia",
12860  alias: ["Asia/Novokuznetsk"]
12861}, {
12862  name: "ruoms",
12863  description: "Omsk, Russia",
12864  alias: ["Asia/Omsk"]
12865}, {
12866  name: "ruovb",
12867  description: "Novosibirsk, Russia",
12868  alias: ["Asia/Novosibirsk"]
12869}, {
12870  name: "rupkc",
12871  description: "Kamchatka Peninsula, Russia",
12872  alias: ["Asia/Kamchatka"]
12873}, {
12874  name: "rurtw",
12875  description: "Saratov, Russia",
12876  alias: ["Europe/Saratov"]
12877}, {
12878  name: "rusred",
12879  description: "Srednekolymsk, Russia",
12880  alias: ["Asia/Srednekolymsk"]
12881}, {
12882  name: "rutof",
12883  description: "Tomsk, Russia",
12884  alias: ["Asia/Tomsk"]
12885}, {
12886  name: "ruuly",
12887  description: "Ulyanovsk, Russia",
12888  alias: ["Europe/Ulyanovsk"]
12889}, {
12890  name: "ruunera",
12891  description: "Ust-Nera Oymyakonsky, Russia",
12892  alias: ["Asia/Ust-Nera"]
12893}, {
12894  name: "ruuus",
12895  description: "Sakhalin, Russia",
12896  alias: ["Asia/Sakhalin"]
12897}, {
12898  name: "ruvog",
12899  description: "Volgograd, Russia",
12900  alias: ["Europe/Volgograd"]
12901}, {
12902  name: "ruvvo",
12903  description: "Vladivostok, Russia",
12904  alias: ["Asia/Vladivostok"]
12905}, {
12906  name: "ruyek",
12907  description: "Yekaterinburg, Russia",
12908  alias: ["Asia/Yekaterinburg"]
12909}, {
12910  name: "ruyks",
12911  description: "Yakutsk, Russia",
12912  alias: ["Asia/Yakutsk"]
12913}, {
12914  name: "rwkgl",
12915  description: "Kigali, Rwanda",
12916  alias: ["Africa/Kigali"]
12917}, {
12918  name: "saruh",
12919  description: "Riyadh, Saudi Arabia",
12920  alias: ["Asia/Riyadh"]
12921}, {
12922  name: "sbhir",
12923  description: "Guadalcanal, Solomon Islands",
12924  alias: ["Pacific/Guadalcanal"]
12925}, {
12926  name: "scmaw",
12927  description: "Mah\xE9, Seychelles",
12928  alias: ["Indian/Mahe"]
12929}, {
12930  name: "sdkrt",
12931  description: "Khartoum, Sudan",
12932  alias: ["Africa/Khartoum"]
12933}, {
12934  name: "sesto",
12935  description: "Stockholm, Sweden",
12936  alias: ["Europe/Stockholm"]
12937}, {
12938  name: "sgsin",
12939  description: "Singapore",
12940  alias: ["Asia/Singapore", "Singapore"]
12941}, {
12942  name: "shshn",
12943  description: "Saint Helena",
12944  alias: ["Atlantic/St_Helena"]
12945}, {
12946  name: "silju",
12947  description: "Ljubljana, Slovenia",
12948  alias: ["Europe/Ljubljana"]
12949}, {
12950  name: "sjlyr",
12951  description: "Longyearbyen, Svalbard",
12952  alias: ["Arctic/Longyearbyen", "Atlantic/Jan_Mayen"]
12953}, {
12954  name: "skbts",
12955  description: "Bratislava, Slovakia",
12956  alias: ["Europe/Bratislava"]
12957}, {
12958  name: "slfna",
12959  description: "Freetown, Sierra Leone",
12960  alias: ["Africa/Freetown"]
12961}, {
12962  name: "smsai",
12963  description: "San Marino",
12964  alias: ["Europe/San_Marino"]
12965}, {
12966  name: "sndkr",
12967  description: "Dakar, Senegal",
12968  alias: ["Africa/Dakar"]
12969}, {
12970  name: "somgq",
12971  description: "Mogadishu, Somalia",
12972  alias: ["Africa/Mogadishu"]
12973}, {
12974  name: "srpbm",
12975  description: "Paramaribo, Suriname",
12976  alias: ["America/Paramaribo"]
12977}, {
12978  name: "ssjub",
12979  description: "Juba, South Sudan",
12980  alias: ["Africa/Juba"]
12981}, {
12982  name: "sttms",
12983  description: "S\xE3o Tom\xE9, S\xE3o Tom\xE9 and Pr\xEDncipe",
12984  alias: ["Africa/Sao_Tome"]
12985}, {
12986  name: "svsal",
12987  description: "El Salvador",
12988  alias: ["America/El_Salvador"]
12989}, {
12990  name: "sxphi",
12991  description: "Sint Maarten",
12992  alias: ["America/Lower_Princes"]
12993}, {
12994  name: "sydam",
12995  description: "Damascus, Syria",
12996  alias: ["Asia/Damascus"]
12997}, {
12998  name: "szqmn",
12999  description: "Mbabane, Swaziland",
13000  alias: ["Africa/Mbabane"]
13001}, {
13002  name: "tcgdt",
13003  description: "Grand Turk, Turks and Caicos Islands",
13004  alias: ["America/Grand_Turk"]
13005}, {
13006  name: "tdndj",
13007  description: "N'Djamena, Chad",
13008  alias: ["Africa/Ndjamena"]
13009}, {
13010  name: "tfpfr",
13011  description: "Kerguelen Islands, French Southern Territories",
13012  alias: ["Indian/Kerguelen"]
13013}, {
13014  name: "tglfw",
13015  description: "Lom\xE9, Togo",
13016  alias: ["Africa/Lome"]
13017}, {
13018  name: "thbkk",
13019  description: "Bangkok, Thailand",
13020  alias: ["Asia/Bangkok"]
13021}, {
13022  name: "tjdyu",
13023  description: "Dushanbe, Tajikistan",
13024  alias: ["Asia/Dushanbe"]
13025}, {
13026  name: "tkfko",
13027  description: "Fakaofo, Tokelau",
13028  alias: ["Pacific/Fakaofo"]
13029}, {
13030  name: "tldil",
13031  description: "Dili, East Timor",
13032  alias: ["Asia/Dili"]
13033}, {
13034  name: "tmasb",
13035  description: "Ashgabat, Turkmenistan",
13036  alias: ["Asia/Ashgabat", "Asia/Ashkhabad"]
13037}, {
13038  name: "tntun",
13039  description: "Tunis, Tunisia",
13040  alias: ["Africa/Tunis"]
13041}, {
13042  name: "totbu",
13043  description: "Tongatapu, Tonga",
13044  alias: ["Pacific/Tongatapu"]
13045}, {
13046  name: "trist",
13047  description: "Istanbul, Turkey",
13048  alias: ["Europe/Istanbul", "Asia/Istanbul", "Turkey"]
13049}, {
13050  name: "ttpos",
13051  description: "Port of Spain, Trinidad and Tobago",
13052  alias: ["America/Port_of_Spain"]
13053}, {
13054  name: "tvfun",
13055  description: "Funafuti, Tuvalu",
13056  alias: ["Pacific/Funafuti"]
13057}, {
13058  name: "twtpe",
13059  description: "Taipei, Taiwan",
13060  alias: ["Asia/Taipei", "ROC"]
13061}, {
13062  name: "tzdar",
13063  description: "Dar es Salaam, Tanzania",
13064  alias: ["Africa/Dar_es_Salaam"]
13065}, {
13066  name: "uaiev",
13067  description: "Kiev, Ukraine",
13068  alias: ["Europe/Kiev"]
13069}, {
13070  name: "uaozh",
13071  description: "Zaporizhia (Zaporozhye), Ukraine",
13072  alias: ["Europe/Zaporozhye"]
13073}, {
13074  name: "uasip",
13075  description: "Simferopol, Ukraine",
13076  alias: ["Europe/Simferopol"]
13077}, {
13078  name: "uauzh",
13079  description: "Uzhhorod (Uzhgorod), Ukraine",
13080  alias: ["Europe/Uzhgorod"]
13081}, {
13082  name: "ugkla",
13083  description: "Kampala, Uganda",
13084  alias: ["Africa/Kampala"]
13085}, {
13086  name: "umawk",
13087  description: "Wake Island, U.S. Minor Outlying Islands",
13088  alias: ["Pacific/Wake"]
13089}, {
13090  name: "umjon",
13091  description: "Johnston Atoll, U.S. Minor Outlying Islands",
13092  alias: ["Pacific/Johnston"]
13093}, {
13094  name: "ummdy",
13095  description: "Midway Islands, U.S. Minor Outlying Islands",
13096  alias: ["Pacific/Midway"]
13097}, {
13098  name: "unk",
13099  description: "Unknown time zone",
13100  alias: ["Etc/Unknown"]
13101}, {
13102  name: "usadk",
13103  description: "Adak (Alaska), United States",
13104  alias: ["America/Adak", "America/Atka", "US/Aleutian"]
13105}, {
13106  name: "usaeg",
13107  description: "Marengo (Indiana), United States",
13108  alias: ["America/Indiana/Marengo"]
13109}, {
13110  name: "usanc",
13111  description: "Anchorage, United States",
13112  alias: ["America/Anchorage", "US/Alaska"]
13113}, {
13114  name: "usboi",
13115  description: "Boise (Idaho), United States",
13116  alias: ["America/Boise"]
13117}, {
13118  name: "uschi",
13119  description: "Chicago, United States",
13120  alias: ["America/Chicago", "US/Central"]
13121}, {
13122  name: "usden",
13123  description: "Denver, United States",
13124  alias: ["America/Denver", "America/Shiprock", "Navajo", "US/Mountain"]
13125}, {
13126  name: "usdet",
13127  description: "Detroit, United States",
13128  alias: ["America/Detroit", "US/Michigan"]
13129}, {
13130  name: "ushnl",
13131  description: "Honolulu, United States",
13132  alias: ["Pacific/Honolulu", "US/Hawaii"]
13133}, {
13134  name: "usind",
13135  description: "Indianapolis, United States",
13136  alias: ["America/Indianapolis", "America/Fort_Wayne", "America/Indiana/Indianapolis", "US/East-Indiana"]
13137}, {
13138  name: "usinvev",
13139  description: "Vevay (Indiana), United States",
13140  alias: ["America/Indiana/Vevay"]
13141}, {
13142  name: "usjnu",
13143  description: "Juneau (Alaska), United States",
13144  alias: ["America/Juneau"]
13145}, {
13146  name: "usknx",
13147  description: "Knox (Indiana), United States",
13148  alias: ["America/Indiana/Knox", "America/Knox_IN", "US/Indiana-Starke"]
13149}, {
13150  name: "uslax",
13151  description: "Los Angeles, United States",
13152  alias: ["America/Los_Angeles", "US/Pacific", "US/Pacific-New"]
13153}, {
13154  name: "uslui",
13155  description: "Louisville (Kentucky), United States",
13156  alias: ["America/Louisville", "America/Kentucky/Louisville"]
13157}, {
13158  name: "usmnm",
13159  description: "Menominee (Michigan), United States",
13160  alias: ["America/Menominee"]
13161}, {
13162  name: "usmtm",
13163  description: "Metlakatla (Alaska), United States",
13164  alias: ["America/Metlakatla"]
13165}, {
13166  name: "usmoc",
13167  description: "Monticello (Kentucky), United States",
13168  alias: ["America/Kentucky/Monticello"]
13169}, {
13170  name: "usndcnt",
13171  description: "Center (North Dakota), United States",
13172  alias: ["America/North_Dakota/Center"]
13173}, {
13174  name: "usndnsl",
13175  description: "New Salem (North Dakota), United States",
13176  alias: ["America/North_Dakota/New_Salem"]
13177}, {
13178  name: "usnyc",
13179  description: "New York, United States",
13180  alias: ["America/New_York", "US/Eastern"]
13181}, {
13182  name: "usoea",
13183  description: "Vincennes (Indiana), United States",
13184  alias: ["America/Indiana/Vincennes"]
13185}, {
13186  name: "usome",
13187  description: "Nome (Alaska), United States",
13188  alias: ["America/Nome"]
13189}, {
13190  name: "usphx",
13191  description: "Phoenix, United States",
13192  alias: ["America/Phoenix", "US/Arizona"]
13193}, {
13194  name: "ussit",
13195  description: "Sitka (Alaska), United States",
13196  alias: ["America/Sitka"]
13197}, {
13198  name: "ustel",
13199  description: "Tell City (Indiana), United States",
13200  alias: ["America/Indiana/Tell_City"]
13201}, {
13202  name: "uswlz",
13203  description: "Winamac (Indiana), United States",
13204  alias: ["America/Indiana/Winamac"]
13205}, {
13206  name: "uswsq",
13207  description: "Petersburg (Indiana), United States",
13208  alias: ["America/Indiana/Petersburg"]
13209}, {
13210  name: "usxul",
13211  description: "Beulah (North Dakota), United States",
13212  alias: ["America/North_Dakota/Beulah"]
13213}, {
13214  name: "usyak",
13215  description: "Yakutat (Alaska), United States",
13216  alias: ["America/Yakutat"]
13217}, {
13218  name: "utc",
13219  description: "UTC (Coordinated Universal Time)",
13220  alias: ["Etc/UTC", "Etc/UCT", "Etc/Universal", "Etc/Zulu", "UCT", "UTC", "Universal", "Zulu"]
13221}, {
13222  name: "utce01",
13223  description: "1 hour ahead of UTC",
13224  alias: ["Etc/GMT-1"]
13225}, {
13226  name: "utce02",
13227  description: "2 hours ahead of UTC",
13228  alias: ["Etc/GMT-2"]
13229}, {
13230  name: "utce03",
13231  description: "3 hours ahead of UTC",
13232  alias: ["Etc/GMT-3"]
13233}, {
13234  name: "utce04",
13235  description: "4 hours ahead of UTC",
13236  alias: ["Etc/GMT-4"]
13237}, {
13238  name: "utce05",
13239  description: "5 hours ahead of UTC",
13240  alias: ["Etc/GMT-5"]
13241}, {
13242  name: "utce06",
13243  description: "6 hours ahead of UTC",
13244  alias: ["Etc/GMT-6"]
13245}, {
13246  name: "utce07",
13247  description: "7 hours ahead of UTC",
13248  alias: ["Etc/GMT-7"]
13249}, {
13250  name: "utce08",
13251  description: "8 hours ahead of UTC",
13252  alias: ["Etc/GMT-8"]
13253}, {
13254  name: "utce09",
13255  description: "9 hours ahead of UTC",
13256  alias: ["Etc/GMT-9"]
13257}, {
13258  name: "utce10",
13259  description: "10 hours ahead of UTC",
13260  alias: ["Etc/GMT-10"]
13261}, {
13262  name: "utce11",
13263  description: "11 hours ahead of UTC",
13264  alias: ["Etc/GMT-11"]
13265}, {
13266  name: "utce12",
13267  description: "12 hours ahead of UTC",
13268  alias: ["Etc/GMT-12"]
13269}, {
13270  name: "utce13",
13271  description: "13 hours ahead of UTC",
13272  alias: ["Etc/GMT-13"]
13273}, {
13274  name: "utce14",
13275  description: "14 hours ahead of UTC",
13276  alias: ["Etc/GMT-14"]
13277}, {
13278  name: "utcw01",
13279  description: "1 hour behind UTC",
13280  alias: ["Etc/GMT+1"]
13281}, {
13282  name: "utcw02",
13283  description: "2 hours behind UTC",
13284  alias: ["Etc/GMT+2"]
13285}, {
13286  name: "utcw03",
13287  description: "3 hours behind UTC",
13288  alias: ["Etc/GMT+3"]
13289}, {
13290  name: "utcw04",
13291  description: "4 hours behind UTC",
13292  alias: ["Etc/GMT+4"]
13293}, {
13294  name: "utcw05",
13295  description: "5 hours behind UTC",
13296  alias: ["Etc/GMT+5", "EST"]
13297}, {
13298  name: "utcw06",
13299  description: "6 hours behind UTC",
13300  alias: ["Etc/GMT+6"]
13301}, {
13302  name: "utcw07",
13303  description: "7 hours behind UTC",
13304  alias: ["Etc/GMT+7", "MST"]
13305}, {
13306  name: "utcw08",
13307  description: "8 hours behind UTC",
13308  alias: ["Etc/GMT+8"]
13309}, {
13310  name: "utcw09",
13311  description: "9 hours behind UTC",
13312  alias: ["Etc/GMT+9"]
13313}, {
13314  name: "utcw10",
13315  description: "10 hours behind UTC",
13316  alias: ["Etc/GMT+10", "HST"]
13317}, {
13318  name: "utcw11",
13319  description: "11 hours behind UTC",
13320  alias: ["Etc/GMT+11"]
13321}, {
13322  name: "utcw12",
13323  description: "12 hours behind UTC",
13324  alias: ["Etc/GMT+12"]
13325}, {
13326  name: "uymvd",
13327  description: "Montevideo, Uruguay",
13328  alias: ["America/Montevideo"]
13329}, {
13330  name: "uzskd",
13331  description: "Samarkand, Uzbekistan",
13332  alias: ["Asia/Samarkand"]
13333}, {
13334  name: "uztas",
13335  description: "Tashkent, Uzbekistan",
13336  alias: ["Asia/Tashkent"]
13337}, {
13338  name: "vavat",
13339  description: "Vatican City",
13340  alias: ["Europe/Vatican"]
13341}, {
13342  name: "vcsvd",
13343  description: "Saint Vincent, Saint Vincent and the Grenadines",
13344  alias: ["America/St_Vincent"]
13345}, {
13346  name: "veccs",
13347  description: "Caracas, Venezuela",
13348  alias: ["America/Caracas"]
13349}, {
13350  name: "vgtov",
13351  description: "Tortola, British Virgin Islands",
13352  alias: ["America/Tortola"]
13353}, {
13354  name: "vistt",
13355  description: "Saint Thomas, U.S. Virgin Islands",
13356  alias: ["America/St_Thomas", "America/Virgin"]
13357}, {
13358  name: "vnsgn",
13359  description: "Ho Chi Minh City, Vietnam",
13360  alias: ["Asia/Saigon", "Asia/Ho_Chi_Minh"]
13361}, {
13362  name: "vuvli",
13363  description: "Efate, Vanuatu",
13364  alias: ["Pacific/Efate"]
13365}, {
13366  name: "wfmau",
13367  description: "Wallis Islands, Wallis and Futuna",
13368  alias: ["Pacific/Wallis"]
13369}, {
13370  name: "wsapw",
13371  description: "Apia, Samoa",
13372  alias: ["Pacific/Apia"]
13373}, {
13374  name: "yeade",
13375  description: "Aden, Yemen",
13376  alias: ["Asia/Aden"]
13377}, {
13378  name: "ytmam",
13379  description: "Mayotte",
13380  alias: ["Indian/Mayotte"]
13381}, {
13382  name: "zajnb",
13383  description: "Johannesburg, South Africa",
13384  alias: ["Africa/Johannesburg"]
13385}, {
13386  name: "zmlun",
13387  description: "Lusaka, Zambia",
13388  alias: ["Africa/Lusaka"]
13389}, {
13390  name: "zwhre",
13391  description: "Harare, Zimbabwe",
13392  alias: ["Africa/Harare"]
13393}];
13394var WINDOWS_TO_IANA_MAP = [{
13395  windowsName: "Dateline Standard Time",
13396  territory: "001",
13397  iana: ["Etc/GMT+12"]
13398}, {
13399  windowsName: "Dateline Standard Time",
13400  territory: "ZZ",
13401  iana: ["Etc/GMT+12"]
13402}, {
13403  windowsName: "UTC-11",
13404  territory: "001",
13405  iana: ["Etc/GMT+11"]
13406}, {
13407  windowsName: "UTC-11",
13408  territory: "AS",
13409  iana: ["Pacific/Pago_Pago"]
13410}, {
13411  windowsName: "UTC-11",
13412  territory: "NU",
13413  iana: ["Pacific/Niue"]
13414}, {
13415  windowsName: "UTC-11",
13416  territory: "UM",
13417  iana: ["Pacific/Midway"]
13418}, {
13419  windowsName: "UTC-11",
13420  territory: "ZZ",
13421  iana: ["Etc/GMT+11"]
13422}, {
13423  windowsName: "Aleutian Standard Time",
13424  territory: "001",
13425  iana: ["America/Adak"]
13426}, {
13427  windowsName: "Aleutian Standard Time",
13428  territory: "US",
13429  iana: ["America/Adak"]
13430}, {
13431  windowsName: "Hawaiian Standard Time",
13432  territory: "001",
13433  iana: ["Pacific/Honolulu"]
13434}, {
13435  windowsName: "Hawaiian Standard Time",
13436  territory: "CK",
13437  iana: ["Pacific/Rarotonga"]
13438}, {
13439  windowsName: "Hawaiian Standard Time",
13440  territory: "PF",
13441  iana: ["Pacific/Tahiti"]
13442}, {
13443  windowsName: "Hawaiian Standard Time",
13444  territory: "UM",
13445  iana: ["Pacific/Johnston"]
13446}, {
13447  windowsName: "Hawaiian Standard Time",
13448  territory: "US",
13449  iana: ["Pacific/Honolulu"]
13450}, {
13451  windowsName: "Hawaiian Standard Time",
13452  territory: "ZZ",
13453  iana: ["Etc/GMT+10"]
13454}, {
13455  windowsName: "Marquesas Standard Time",
13456  territory: "001",
13457  iana: ["Pacific/Marquesas"]
13458}, {
13459  windowsName: "Marquesas Standard Time",
13460  territory: "PF",
13461  iana: ["Pacific/Marquesas"]
13462}, {
13463  windowsName: "Alaskan Standard Time",
13464  territory: "001",
13465  iana: ["America/Anchorage"]
13466}, {
13467  windowsName: "Alaskan Standard Time",
13468  territory: "US",
13469  iana: ["America/Anchorage", "America/Juneau", "America/Metlakatla", "America/Nome", "America/Sitka", "America/Yakutat"]
13470}, {
13471  windowsName: "UTC-09",
13472  territory: "001",
13473  iana: ["Etc/GMT+9"]
13474}, {
13475  windowsName: "UTC-09",
13476  territory: "PF",
13477  iana: ["Pacific/Gambier"]
13478}, {
13479  windowsName: "UTC-09",
13480  territory: "ZZ",
13481  iana: ["Etc/GMT+9"]
13482}, {
13483  windowsName: "Pacific Standard Time (Mexico)",
13484  territory: "001",
13485  iana: ["America/Tijuana"]
13486}, {
13487  windowsName: "Pacific Standard Time (Mexico)",
13488  territory: "MX",
13489  iana: ["America/Tijuana", "America/Santa_Isabel"]
13490}, {
13491  windowsName: "UTC-08",
13492  territory: "001",
13493  iana: ["Etc/GMT+8"]
13494}, {
13495  windowsName: "UTC-08",
13496  territory: "PN",
13497  iana: ["Pacific/Pitcairn"]
13498}, {
13499  windowsName: "UTC-08",
13500  territory: "ZZ",
13501  iana: ["Etc/GMT+8"]
13502}, {
13503  windowsName: "Pacific Standard Time",
13504  territory: "001",
13505  iana: ["America/Los_Angeles"]
13506}, {
13507  windowsName: "Pacific Standard Time",
13508  territory: "CA",
13509  iana: ["America/Vancouver"]
13510}, {
13511  windowsName: "Pacific Standard Time",
13512  territory: "US",
13513  iana: ["America/Los_Angeles"]
13514}, {
13515  windowsName: "Pacific Standard Time",
13516  territory: "ZZ",
13517  iana: ["PST8PDT"]
13518}, {
13519  windowsName: "US Mountain Standard Time",
13520  territory: "001",
13521  iana: ["America/Phoenix"]
13522}, {
13523  windowsName: "US Mountain Standard Time",
13524  territory: "CA",
13525  iana: ["America/Creston", "America/Dawson_Creek", "America/Fort_Nelson"]
13526}, {
13527  windowsName: "US Mountain Standard Time",
13528  territory: "MX",
13529  iana: ["America/Hermosillo"]
13530}, {
13531  windowsName: "US Mountain Standard Time",
13532  territory: "US",
13533  iana: ["America/Phoenix"]
13534}, {
13535  windowsName: "US Mountain Standard Time",
13536  territory: "ZZ",
13537  iana: ["Etc/GMT+7"]
13538}, {
13539  windowsName: "Mountain Standard Time (Mexico)",
13540  territory: "001",
13541  iana: ["America/Chihuahua"]
13542}, {
13543  windowsName: "Mountain Standard Time (Mexico)",
13544  territory: "MX",
13545  iana: ["America/Chihuahua", "America/Mazatlan"]
13546}, {
13547  windowsName: "Mountain Standard Time",
13548  territory: "001",
13549  iana: ["America/Denver"]
13550}, {
13551  windowsName: "Mountain Standard Time",
13552  territory: "CA",
13553  iana: ["America/Edmonton", "America/Cambridge_Bay", "America/Inuvik", "America/Yellowknife"]
13554}, {
13555  windowsName: "Mountain Standard Time",
13556  territory: "MX",
13557  iana: ["America/Ojinaga"]
13558}, {
13559  windowsName: "Mountain Standard Time",
13560  territory: "US",
13561  iana: ["America/Denver", "America/Boise"]
13562}, {
13563  windowsName: "Mountain Standard Time",
13564  territory: "ZZ",
13565  iana: ["MST7MDT"]
13566}, {
13567  windowsName: "Yukon Standard Time",
13568  territory: "001",
13569  iana: ["America/Whitehorse"]
13570}, {
13571  windowsName: "Yukon Standard Time",
13572  territory: "CA",
13573  iana: ["America/Whitehorse", "America/Dawson"]
13574}, {
13575  windowsName: "Central America Standard Time",
13576  territory: "001",
13577  iana: ["America/Guatemala"]
13578}, {
13579  windowsName: "Central America Standard Time",
13580  territory: "BZ",
13581  iana: ["America/Belize"]
13582}, {
13583  windowsName: "Central America Standard Time",
13584  territory: "CR",
13585  iana: ["America/Costa_Rica"]
13586}, {
13587  windowsName: "Central America Standard Time",
13588  territory: "EC",
13589  iana: ["Pacific/Galapagos"]
13590}, {
13591  windowsName: "Central America Standard Time",
13592  territory: "GT",
13593  iana: ["America/Guatemala"]
13594}, {
13595  windowsName: "Central America Standard Time",
13596  territory: "HN",
13597  iana: ["America/Tegucigalpa"]
13598}, {
13599  windowsName: "Central America Standard Time",
13600  territory: "NI",
13601  iana: ["America/Managua"]
13602}, {
13603  windowsName: "Central America Standard Time",
13604  territory: "SV",
13605  iana: ["America/El_Salvador"]
13606}, {
13607  windowsName: "Central America Standard Time",
13608  territory: "ZZ",
13609  iana: ["Etc/GMT+6"]
13610}, {
13611  windowsName: "Central Standard Time",
13612  territory: "001",
13613  iana: ["America/Chicago"]
13614}, {
13615  windowsName: "Central Standard Time",
13616  territory: "CA",
13617  iana: ["America/Winnipeg", "America/Rainy_River", "America/Rankin_Inlet", "America/Resolute"]
13618}, {
13619  windowsName: "Central Standard Time",
13620  territory: "MX",
13621  iana: ["America/Matamoros"]
13622}, {
13623  windowsName: "Central Standard Time",
13624  territory: "US",
13625  iana: ["America/Chicago", "America/Indiana/Knox", "America/Indiana/Tell_City", "America/Menominee", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem"]
13626}, {
13627  windowsName: "Central Standard Time",
13628  territory: "ZZ",
13629  iana: ["CST6CDT"]
13630}, {
13631  windowsName: "Easter Island Standard Time",
13632  territory: "001",
13633  iana: ["Pacific/Easter"]
13634}, {
13635  windowsName: "Easter Island Standard Time",
13636  territory: "CL",
13637  iana: ["Pacific/Easter"]
13638}, {
13639  windowsName: "Central Standard Time (Mexico)",
13640  territory: "001",
13641  iana: ["America/Mexico_City"]
13642}, {
13643  windowsName: "Central Standard Time (Mexico)",
13644  territory: "MX",
13645  iana: ["America/Mexico_City", "America/Bahia_Banderas", "America/Merida", "America/Monterrey"]
13646}, {
13647  windowsName: "Canada Central Standard Time",
13648  territory: "001",
13649  iana: ["America/Regina"]
13650}, {
13651  windowsName: "Canada Central Standard Time",
13652  territory: "CA",
13653  iana: ["America/Regina", "America/Swift_Current"]
13654}, {
13655  windowsName: "SA Pacific Standard Time",
13656  territory: "001",
13657  iana: ["America/Bogota"]
13658}, {
13659  windowsName: "SA Pacific Standard Time",
13660  territory: "BR",
13661  iana: ["America/Rio_Branco", "America/Eirunepe"]
13662}, {
13663  windowsName: "SA Pacific Standard Time",
13664  territory: "CA",
13665  iana: ["America/Coral_Harbour"]
13666}, {
13667  windowsName: "SA Pacific Standard Time",
13668  territory: "CO",
13669  iana: ["America/Bogota"]
13670}, {
13671  windowsName: "SA Pacific Standard Time",
13672  territory: "EC",
13673  iana: ["America/Guayaquil"]
13674}, {
13675  windowsName: "SA Pacific Standard Time",
13676  territory: "JM",
13677  iana: ["America/Jamaica"]
13678}, {
13679  windowsName: "SA Pacific Standard Time",
13680  territory: "KY",
13681  iana: ["America/Cayman"]
13682}, {
13683  windowsName: "SA Pacific Standard Time",
13684  territory: "PA",
13685  iana: ["America/Panama"]
13686}, {
13687  windowsName: "SA Pacific Standard Time",
13688  territory: "PE",
13689  iana: ["America/Lima"]
13690}, {
13691  windowsName: "SA Pacific Standard Time",
13692  territory: "ZZ",
13693  iana: ["Etc/GMT+5"]
13694}, {
13695  windowsName: "Eastern Standard Time (Mexico)",
13696  territory: "001",
13697  iana: ["America/Cancun"]
13698}, {
13699  windowsName: "Eastern Standard Time (Mexico)",
13700  territory: "MX",
13701  iana: ["America/Cancun"]
13702}, {
13703  windowsName: "Eastern Standard Time",
13704  territory: "001",
13705  iana: ["America/New_York"]
13706}, {
13707  windowsName: "Eastern Standard Time",
13708  territory: "BS",
13709  iana: ["America/Nassau"]
13710}, {
13711  windowsName: "Eastern Standard Time",
13712  territory: "CA",
13713  iana: ["America/Toronto", "America/Iqaluit", "America/Montreal", "America/Nipigon", "America/Pangnirtung", "America/Thunder_Bay"]
13714}, {
13715  windowsName: "Eastern Standard Time",
13716  territory: "US",
13717  iana: ["America/New_York", "America/Detroit", "America/Indiana/Petersburg", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Kentucky/Monticello", "America/Louisville"]
13718}, {
13719  windowsName: "Eastern Standard Time",
13720  territory: "ZZ",
13721  iana: ["EST5EDT"]
13722}, {
13723  windowsName: "Haiti Standard Time",
13724  territory: "001",
13725  iana: ["America/Port-au-Prince"]
13726}, {
13727  windowsName: "Haiti Standard Time",
13728  territory: "HT",
13729  iana: ["America/Port-au-Prince"]
13730}, {
13731  windowsName: "Cuba Standard Time",
13732  territory: "001",
13733  iana: ["America/Havana"]
13734}, {
13735  windowsName: "Cuba Standard Time",
13736  territory: "CU",
13737  iana: ["America/Havana"]
13738}, {
13739  windowsName: "US Eastern Standard Time",
13740  territory: "001",
13741  iana: ["America/Indianapolis"]
13742}, {
13743  windowsName: "US Eastern Standard Time",
13744  territory: "US",
13745  iana: ["America/Indianapolis", "America/Indiana/Marengo", "America/Indiana/Vevay"]
13746}, {
13747  windowsName: "Turks And Caicos Standard Time",
13748  territory: "001",
13749  iana: ["America/Grand_Turk"]
13750}, {
13751  windowsName: "Turks And Caicos Standard Time",
13752  territory: "TC",
13753  iana: ["America/Grand_Turk"]
13754}, {
13755  windowsName: "Paraguay Standard Time",
13756  territory: "001",
13757  iana: ["America/Asuncion"]
13758}, {
13759  windowsName: "Paraguay Standard Time",
13760  territory: "PY",
13761  iana: ["America/Asuncion"]
13762}, {
13763  windowsName: "Atlantic Standard Time",
13764  territory: "001",
13765  iana: ["America/Halifax"]
13766}, {
13767  windowsName: "Atlantic Standard Time",
13768  territory: "BM",
13769  iana: ["Atlantic/Bermuda"]
13770}, {
13771  windowsName: "Atlantic Standard Time",
13772  territory: "CA",
13773  iana: ["America/Halifax", "America/Glace_Bay", "America/Goose_Bay", "America/Moncton"]
13774}, {
13775  windowsName: "Atlantic Standard Time",
13776  territory: "GL",
13777  iana: ["America/Thule"]
13778}, {
13779  windowsName: "Venezuela Standard Time",
13780  territory: "001",
13781  iana: ["America/Caracas"]
13782}, {
13783  windowsName: "Venezuela Standard Time",
13784  territory: "VE",
13785  iana: ["America/Caracas"]
13786}, {
13787  windowsName: "Central Brazilian Standard Time",
13788  territory: "001",
13789  iana: ["America/Cuiaba"]
13790}, {
13791  windowsName: "Central Brazilian Standard Time",
13792  territory: "BR",
13793  iana: ["America/Cuiaba", "America/Campo_Grande"]
13794}, {
13795  windowsName: "SA Western Standard Time",
13796  territory: "001",
13797  iana: ["America/La_Paz"]
13798}, {
13799  windowsName: "SA Western Standard Time",
13800  territory: "AG",
13801  iana: ["America/Antigua"]
13802}, {
13803  windowsName: "SA Western Standard Time",
13804  territory: "AI",
13805  iana: ["America/Anguilla"]
13806}, {
13807  windowsName: "SA Western Standard Time",
13808  territory: "AW",
13809  iana: ["America/Aruba"]
13810}, {
13811  windowsName: "SA Western Standard Time",
13812  territory: "BB",
13813  iana: ["America/Barbados"]
13814}, {
13815  windowsName: "SA Western Standard Time",
13816  territory: "BL",
13817  iana: ["America/St_Barthelemy"]
13818}, {
13819  windowsName: "SA Western Standard Time",
13820  territory: "BO",
13821  iana: ["America/La_Paz"]
13822}, {
13823  windowsName: "SA Western Standard Time",
13824  territory: "BQ",
13825  iana: ["America/Kralendijk"]
13826}, {
13827  windowsName: "SA Western Standard Time",
13828  territory: "BR",
13829  iana: ["America/Manaus", "America/Boa_Vista", "America/Porto_Velho"]
13830}, {
13831  windowsName: "SA Western Standard Time",
13832  territory: "CA",
13833  iana: ["America/Blanc-Sablon"]
13834}, {
13835  windowsName: "SA Western Standard Time",
13836  territory: "CW",
13837  iana: ["America/Curacao"]
13838}, {
13839  windowsName: "SA Western Standard Time",
13840  territory: "DM",
13841  iana: ["America/Dominica"]
13842}, {
13843  windowsName: "SA Western Standard Time",
13844  territory: "DO",
13845  iana: ["America/Santo_Domingo"]
13846}, {
13847  windowsName: "SA Western Standard Time",
13848  territory: "GD",
13849  iana: ["America/Grenada"]
13850}, {
13851  windowsName: "SA Western Standard Time",
13852  territory: "GP",
13853  iana: ["America/Guadeloupe"]
13854}, {
13855  windowsName: "SA Western Standard Time",
13856  territory: "GY",
13857  iana: ["America/Guyana"]
13858}, {
13859  windowsName: "SA Western Standard Time",
13860  territory: "KN",
13861  iana: ["America/St_Kitts"]
13862}, {
13863  windowsName: "SA Western Standard Time",
13864  territory: "LC",
13865  iana: ["America/St_Lucia"]
13866}, {
13867  windowsName: "SA Western Standard Time",
13868  territory: "MF",
13869  iana: ["America/Marigot"]
13870}, {
13871  windowsName: "SA Western Standard Time",
13872  territory: "MQ",
13873  iana: ["America/Martinique"]
13874}, {
13875  windowsName: "SA Western Standard Time",
13876  territory: "MS",
13877  iana: ["America/Montserrat"]
13878}, {
13879  windowsName: "SA Western Standard Time",
13880  territory: "PR",
13881  iana: ["America/Puerto_Rico"]
13882}, {
13883  windowsName: "SA Western Standard Time",
13884  territory: "SX",
13885  iana: ["America/Lower_Princes"]
13886}, {
13887  windowsName: "SA Western Standard Time",
13888  territory: "TT",
13889  iana: ["America/Port_of_Spain"]
13890}, {
13891  windowsName: "SA Western Standard Time",
13892  territory: "VC",
13893  iana: ["America/St_Vincent"]
13894}, {
13895  windowsName: "SA Western Standard Time",
13896  territory: "VG",
13897  iana: ["America/Tortola"]
13898}, {
13899  windowsName: "SA Western Standard Time",
13900  territory: "VI",
13901  iana: ["America/St_Thomas"]
13902}, {
13903  windowsName: "SA Western Standard Time",
13904  territory: "ZZ",
13905  iana: ["Etc/GMT+4"]
13906}, {
13907  windowsName: "Pacific SA Standard Time",
13908  territory: "001",
13909  iana: ["America/Santiago"]
13910}, {
13911  windowsName: "Pacific SA Standard Time",
13912  territory: "CL",
13913  iana: ["America/Santiago"]
13914}, {
13915  windowsName: "Newfoundland Standard Time",
13916  territory: "001",
13917  iana: ["America/St_Johns"]
13918}, {
13919  windowsName: "Newfoundland Standard Time",
13920  territory: "CA",
13921  iana: ["America/St_Johns"]
13922}, {
13923  windowsName: "Tocantins Standard Time",
13924  territory: "001",
13925  iana: ["America/Araguaina"]
13926}, {
13927  windowsName: "Tocantins Standard Time",
13928  territory: "BR",
13929  iana: ["America/Araguaina"]
13930}, {
13931  windowsName: "E. South America Standard Time",
13932  territory: "001",
13933  iana: ["America/Sao_Paulo"]
13934}, {
13935  windowsName: "E. South America Standard Time",
13936  territory: "BR",
13937  iana: ["America/Sao_Paulo"]
13938}, {
13939  windowsName: "SA Eastern Standard Time",
13940  territory: "001",
13941  iana: ["America/Cayenne"]
13942}, {
13943  windowsName: "SA Eastern Standard Time",
13944  territory: "AQ",
13945  iana: ["Antarctica/Rothera", "Antarctica/Palmer"]
13946}, {
13947  windowsName: "SA Eastern Standard Time",
13948  territory: "BR",
13949  iana: ["America/Fortaleza", "America/Belem", "America/Maceio", "America/Recife", "America/Santarem"]
13950}, {
13951  windowsName: "SA Eastern Standard Time",
13952  territory: "FK",
13953  iana: ["Atlantic/Stanley"]
13954}, {
13955  windowsName: "SA Eastern Standard Time",
13956  territory: "GF",
13957  iana: ["America/Cayenne"]
13958}, {
13959  windowsName: "SA Eastern Standard Time",
13960  territory: "SR",
13961  iana: ["America/Paramaribo"]
13962}, {
13963  windowsName: "SA Eastern Standard Time",
13964  territory: "ZZ",
13965  iana: ["Etc/GMT+3"]
13966}, {
13967  windowsName: "Argentina Standard Time",
13968  territory: "001",
13969  iana: ["America/Buenos_Aires"]
13970}, {
13971  windowsName: "Argentina Standard Time",
13972  territory: "AR",
13973  iana: ["America/Buenos_Aires", "America/Argentina/La_Rioja", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Catamarca", "America/Cordoba", "America/Jujuy", "America/Mendoza"]
13974}, {
13975  windowsName: "Greenland Standard Time",
13976  territory: "001",
13977  iana: ["America/Godthab"]
13978}, {
13979  windowsName: "Greenland Standard Time",
13980  territory: "GL",
13981  iana: ["America/Godthab"]
13982}, {
13983  windowsName: "Montevideo Standard Time",
13984  territory: "001",
13985  iana: ["America/Montevideo"]
13986}, {
13987  windowsName: "Montevideo Standard Time",
13988  territory: "UY",
13989  iana: ["America/Montevideo"]
13990}, {
13991  windowsName: "Magallanes Standard Time",
13992  territory: "001",
13993  iana: ["America/Punta_Arenas"]
13994}, {
13995  windowsName: "Magallanes Standard Time",
13996  territory: "CL",
13997  iana: ["America/Punta_Arenas"]
13998}, {
13999  windowsName: "Saint Pierre Standard Time",
14000  territory: "001",
14001  iana: ["America/Miquelon"]
14002}, {
14003  windowsName: "Saint Pierre Standard Time",
14004  territory: "PM",
14005  iana: ["America/Miquelon"]
14006}, {
14007  windowsName: "Bahia Standard Time",
14008  territory: "001",
14009  iana: ["America/Bahia"]
14010}, {
14011  windowsName: "Bahia Standard Time",
14012  territory: "BR",
14013  iana: ["America/Bahia"]
14014}, {
14015  windowsName: "UTC-02",
14016  territory: "001",
14017  iana: ["Etc/GMT+2"]
14018}, {
14019  windowsName: "UTC-02",
14020  territory: "BR",
14021  iana: ["America/Noronha"]
14022}, {
14023  windowsName: "UTC-02",
14024  territory: "GS",
14025  iana: ["Atlantic/South_Georgia"]
14026}, {
14027  windowsName: "UTC-02",
14028  territory: "ZZ",
14029  iana: ["Etc/GMT+2"]
14030}, {
14031  windowsName: "Azores Standard Time",
14032  territory: "001",
14033  iana: ["Atlantic/Azores"]
14034}, {
14035  windowsName: "Azores Standard Time",
14036  territory: "GL",
14037  iana: ["America/Scoresbysund"]
14038}, {
14039  windowsName: "Azores Standard Time",
14040  territory: "PT",
14041  iana: ["Atlantic/Azores"]
14042}, {
14043  windowsName: "Cape Verde Standard Time",
14044  territory: "001",
14045  iana: ["Atlantic/Cape_Verde"]
14046}, {
14047  windowsName: "Cape Verde Standard Time",
14048  territory: "CV",
14049  iana: ["Atlantic/Cape_Verde"]
14050}, {
14051  windowsName: "Cape Verde Standard Time",
14052  territory: "ZZ",
14053  iana: ["Etc/GMT+1"]
14054}, {
14055  windowsName: "UTC",
14056  territory: "001",
14057  iana: ["Etc/UTC"]
14058}, {
14059  windowsName: "UTC",
14060  territory: "ZZ",
14061  iana: ["Etc/UTC", "Etc/GMT"]
14062}, {
14063  windowsName: "GMT Standard Time",
14064  territory: "001",
14065  iana: ["Europe/London"]
14066}, {
14067  windowsName: "GMT Standard Time",
14068  territory: "ES",
14069  iana: ["Atlantic/Canary"]
14070}, {
14071  windowsName: "GMT Standard Time",
14072  territory: "FO",
14073  iana: ["Atlantic/Faeroe"]
14074}, {
14075  windowsName: "GMT Standard Time",
14076  territory: "GB",
14077  iana: ["Europe/London"]
14078}, {
14079  windowsName: "GMT Standard Time",
14080  territory: "GG",
14081  iana: ["Europe/Guernsey"]
14082}, {
14083  windowsName: "GMT Standard Time",
14084  territory: "IE",
14085  iana: ["Europe/Dublin"]
14086}, {
14087  windowsName: "GMT Standard Time",
14088  territory: "IM",
14089  iana: ["Europe/Isle_of_Man"]
14090}, {
14091  windowsName: "GMT Standard Time",
14092  territory: "JE",
14093  iana: ["Europe/Jersey"]
14094}, {
14095  windowsName: "GMT Standard Time",
14096  territory: "PT",
14097  iana: ["Europe/Lisbon", "Atlantic/Madeira"]
14098}, {
14099  windowsName: "Greenwich Standard Time",
14100  territory: "001",
14101  iana: ["Atlantic/Reykjavik"]
14102}, {
14103  windowsName: "Greenwich Standard Time",
14104  territory: "BF",
14105  iana: ["Africa/Ouagadougou"]
14106}, {
14107  windowsName: "Greenwich Standard Time",
14108  territory: "CI",
14109  iana: ["Africa/Abidjan"]
14110}, {
14111  windowsName: "Greenwich Standard Time",
14112  territory: "GH",
14113  iana: ["Africa/Accra"]
14114}, {
14115  windowsName: "Greenwich Standard Time",
14116  territory: "GL",
14117  iana: ["America/Danmarkshavn"]
14118}, {
14119  windowsName: "Greenwich Standard Time",
14120  territory: "GM",
14121  iana: ["Africa/Banjul"]
14122}, {
14123  windowsName: "Greenwich Standard Time",
14124  territory: "GN",
14125  iana: ["Africa/Conakry"]
14126}, {
14127  windowsName: "Greenwich Standard Time",
14128  territory: "GW",
14129  iana: ["Africa/Bissau"]
14130}, {
14131  windowsName: "Greenwich Standard Time",
14132  territory: "IS",
14133  iana: ["Atlantic/Reykjavik"]
14134}, {
14135  windowsName: "Greenwich Standard Time",
14136  territory: "LR",
14137  iana: ["Africa/Monrovia"]
14138}, {
14139  windowsName: "Greenwich Standard Time",
14140  territory: "ML",
14141  iana: ["Africa/Bamako"]
14142}, {
14143  windowsName: "Greenwich Standard Time",
14144  territory: "MR",
14145  iana: ["Africa/Nouakchott"]
14146}, {
14147  windowsName: "Greenwich Standard Time",
14148  territory: "SH",
14149  iana: ["Atlantic/St_Helena"]
14150}, {
14151  windowsName: "Greenwich Standard Time",
14152  territory: "SL",
14153  iana: ["Africa/Freetown"]
14154}, {
14155  windowsName: "Greenwich Standard Time",
14156  territory: "SN",
14157  iana: ["Africa/Dakar"]
14158}, {
14159  windowsName: "Greenwich Standard Time",
14160  territory: "TG",
14161  iana: ["Africa/Lome"]
14162}, {
14163  windowsName: "Sao Tome Standard Time",
14164  territory: "001",
14165  iana: ["Africa/Sao_Tome"]
14166}, {
14167  windowsName: "Sao Tome Standard Time",
14168  territory: "ST",
14169  iana: ["Africa/Sao_Tome"]
14170}, {
14171  windowsName: "Morocco Standard Time",
14172  territory: "001",
14173  iana: ["Africa/Casablanca"]
14174}, {
14175  windowsName: "Morocco Standard Time",
14176  territory: "EH",
14177  iana: ["Africa/El_Aaiun"]
14178}, {
14179  windowsName: "Morocco Standard Time",
14180  territory: "MA",
14181  iana: ["Africa/Casablanca"]
14182}, {
14183  windowsName: "W. Europe Standard Time",
14184  territory: "001",
14185  iana: ["Europe/Berlin"]
14186}, {
14187  windowsName: "W. Europe Standard Time",
14188  territory: "AD",
14189  iana: ["Europe/Andorra"]
14190}, {
14191  windowsName: "W. Europe Standard Time",
14192  territory: "AT",
14193  iana: ["Europe/Vienna"]
14194}, {
14195  windowsName: "W. Europe Standard Time",
14196  territory: "CH",
14197  iana: ["Europe/Zurich"]
14198}, {
14199  windowsName: "W. Europe Standard Time",
14200  territory: "DE",
14201  iana: ["Europe/Berlin", "Europe/Busingen"]
14202}, {
14203  windowsName: "W. Europe Standard Time",
14204  territory: "GI",
14205  iana: ["Europe/Gibraltar"]
14206}, {
14207  windowsName: "W. Europe Standard Time",
14208  territory: "IT",
14209  iana: ["Europe/Rome"]
14210}, {
14211  windowsName: "W. Europe Standard Time",
14212  territory: "LI",
14213  iana: ["Europe/Vaduz"]
14214}, {
14215  windowsName: "W. Europe Standard Time",
14216  territory: "LU",
14217  iana: ["Europe/Luxembourg"]
14218}, {
14219  windowsName: "W. Europe Standard Time",
14220  territory: "MC",
14221  iana: ["Europe/Monaco"]
14222}, {
14223  windowsName: "W. Europe Standard Time",
14224  territory: "MT",
14225  iana: ["Europe/Malta"]
14226}, {
14227  windowsName: "W. Europe Standard Time",
14228  territory: "NL",
14229  iana: ["Europe/Amsterdam"]
14230}, {
14231  windowsName: "W. Europe Standard Time",
14232  territory: "NO",
14233  iana: ["Europe/Oslo"]
14234}, {
14235  windowsName: "W. Europe Standard Time",
14236  territory: "SE",
14237  iana: ["Europe/Stockholm"]
14238}, {
14239  windowsName: "W. Europe Standard Time",
14240  territory: "SJ",
14241  iana: ["Arctic/Longyearbyen"]
14242}, {
14243  windowsName: "W. Europe Standard Time",
14244  territory: "SM",
14245  iana: ["Europe/San_Marino"]
14246}, {
14247  windowsName: "W. Europe Standard Time",
14248  territory: "VA",
14249  iana: ["Europe/Vatican"]
14250}, {
14251  windowsName: "Central Europe Standard Time",
14252  territory: "001",
14253  iana: ["Europe/Budapest"]
14254}, {
14255  windowsName: "Central Europe Standard Time",
14256  territory: "AL",
14257  iana: ["Europe/Tirane"]
14258}, {
14259  windowsName: "Central Europe Standard Time",
14260  territory: "CZ",
14261  iana: ["Europe/Prague"]
14262}, {
14263  windowsName: "Central Europe Standard Time",
14264  territory: "HU",
14265  iana: ["Europe/Budapest"]
14266}, {
14267  windowsName: "Central Europe Standard Time",
14268  territory: "ME",
14269  iana: ["Europe/Podgorica"]
14270}, {
14271  windowsName: "Central Europe Standard Time",
14272  territory: "RS",
14273  iana: ["Europe/Belgrade"]
14274}, {
14275  windowsName: "Central Europe Standard Time",
14276  territory: "SI",
14277  iana: ["Europe/Ljubljana"]
14278}, {
14279  windowsName: "Central Europe Standard Time",
14280  territory: "SK",
14281  iana: ["Europe/Bratislava"]
14282}, {
14283  windowsName: "Romance Standard Time",
14284  territory: "001",
14285  iana: ["Europe/Paris"]
14286}, {
14287  windowsName: "Romance Standard Time",
14288  territory: "BE",
14289  iana: ["Europe/Brussels"]
14290}, {
14291  windowsName: "Romance Standard Time",
14292  territory: "DK",
14293  iana: ["Europe/Copenhagen"]
14294}, {
14295  windowsName: "Romance Standard Time",
14296  territory: "ES",
14297  iana: ["Europe/Madrid", "Africa/Ceuta"]
14298}, {
14299  windowsName: "Romance Standard Time",
14300  territory: "FR",
14301  iana: ["Europe/Paris"]
14302}, {
14303  windowsName: "Central European Standard Time",
14304  territory: "001",
14305  iana: ["Europe/Warsaw"]
14306}, {
14307  windowsName: "Central European Standard Time",
14308  territory: "BA",
14309  iana: ["Europe/Sarajevo"]
14310}, {
14311  windowsName: "Central European Standard Time",
14312  territory: "HR",
14313  iana: ["Europe/Zagreb"]
14314}, {
14315  windowsName: "Central European Standard Time",
14316  territory: "MK",
14317  iana: ["Europe/Skopje"]
14318}, {
14319  windowsName: "Central European Standard Time",
14320  territory: "PL",
14321  iana: ["Europe/Warsaw"]
14322}, {
14323  windowsName: "W. Central Africa Standard Time",
14324  territory: "001",
14325  iana: ["Africa/Lagos"]
14326}, {
14327  windowsName: "W. Central Africa Standard Time",
14328  territory: "AO",
14329  iana: ["Africa/Luanda"]
14330}, {
14331  windowsName: "W. Central Africa Standard Time",
14332  territory: "BJ",
14333  iana: ["Africa/Porto-Novo"]
14334}, {
14335  windowsName: "W. Central Africa Standard Time",
14336  territory: "CD",
14337  iana: ["Africa/Kinshasa"]
14338}, {
14339  windowsName: "W. Central Africa Standard Time",
14340  territory: "CF",
14341  iana: ["Africa/Bangui"]
14342}, {
14343  windowsName: "W. Central Africa Standard Time",
14344  territory: "CG",
14345  iana: ["Africa/Brazzaville"]
14346}, {
14347  windowsName: "W. Central Africa Standard Time",
14348  territory: "CM",
14349  iana: ["Africa/Douala"]
14350}, {
14351  windowsName: "W. Central Africa Standard Time",
14352  territory: "DZ",
14353  iana: ["Africa/Algiers"]
14354}, {
14355  windowsName: "W. Central Africa Standard Time",
14356  territory: "GA",
14357  iana: ["Africa/Libreville"]
14358}, {
14359  windowsName: "W. Central Africa Standard Time",
14360  territory: "GQ",
14361  iana: ["Africa/Malabo"]
14362}, {
14363  windowsName: "W. Central Africa Standard Time",
14364  territory: "NE",
14365  iana: ["Africa/Niamey"]
14366}, {
14367  windowsName: "W. Central Africa Standard Time",
14368  territory: "NG",
14369  iana: ["Africa/Lagos"]
14370}, {
14371  windowsName: "W. Central Africa Standard Time",
14372  territory: "TD",
14373  iana: ["Africa/Ndjamena"]
14374}, {
14375  windowsName: "W. Central Africa Standard Time",
14376  territory: "TN",
14377  iana: ["Africa/Tunis"]
14378}, {
14379  windowsName: "W. Central Africa Standard Time",
14380  territory: "ZZ",
14381  iana: ["Etc/GMT-1"]
14382}, {
14383  windowsName: "Jordan Standard Time",
14384  territory: "001",
14385  iana: ["Asia/Amman"]
14386}, {
14387  windowsName: "Jordan Standard Time",
14388  territory: "JO",
14389  iana: ["Asia/Amman"]
14390}, {
14391  windowsName: "GTB Standard Time",
14392  territory: "001",
14393  iana: ["Europe/Bucharest"]
14394}, {
14395  windowsName: "GTB Standard Time",
14396  territory: "CY",
14397  iana: ["Asia/Nicosia", "Asia/Famagusta"]
14398}, {
14399  windowsName: "GTB Standard Time",
14400  territory: "GR",
14401  iana: ["Europe/Athens"]
14402}, {
14403  windowsName: "GTB Standard Time",
14404  territory: "RO",
14405  iana: ["Europe/Bucharest"]
14406}, {
14407  windowsName: "Middle East Standard Time",
14408  territory: "001",
14409  iana: ["Asia/Beirut"]
14410}, {
14411  windowsName: "Middle East Standard Time",
14412  territory: "LB",
14413  iana: ["Asia/Beirut"]
14414}, {
14415  windowsName: "Egypt Standard Time",
14416  territory: "001",
14417  iana: ["Africa/Cairo"]
14418}, {
14419  windowsName: "Egypt Standard Time",
14420  territory: "EG",
14421  iana: ["Africa/Cairo"]
14422}, {
14423  windowsName: "E. Europe Standard Time",
14424  territory: "001",
14425  iana: ["Europe/Chisinau"]
14426}, {
14427  windowsName: "E. Europe Standard Time",
14428  territory: "MD",
14429  iana: ["Europe/Chisinau"]
14430}, {
14431  windowsName: "Syria Standard Time",
14432  territory: "001",
14433  iana: ["Asia/Damascus"]
14434}, {
14435  windowsName: "Syria Standard Time",
14436  territory: "SY",
14437  iana: ["Asia/Damascus"]
14438}, {
14439  windowsName: "West Bank Standard Time",
14440  territory: "001",
14441  iana: ["Asia/Hebron"]
14442}, {
14443  windowsName: "West Bank Standard Time",
14444  territory: "PS",
14445  iana: ["Asia/Hebron", "Asia/Gaza"]
14446}, {
14447  windowsName: "South Africa Standard Time",
14448  territory: "001",
14449  iana: ["Africa/Johannesburg"]
14450}, {
14451  windowsName: "South Africa Standard Time",
14452  territory: "BI",
14453  iana: ["Africa/Bujumbura"]
14454}, {
14455  windowsName: "South Africa Standard Time",
14456  territory: "BW",
14457  iana: ["Africa/Gaborone"]
14458}, {
14459  windowsName: "South Africa Standard Time",
14460  territory: "CD",
14461  iana: ["Africa/Lubumbashi"]
14462}, {
14463  windowsName: "South Africa Standard Time",
14464  territory: "LS",
14465  iana: ["Africa/Maseru"]
14466}, {
14467  windowsName: "South Africa Standard Time",
14468  territory: "MW",
14469  iana: ["Africa/Blantyre"]
14470}, {
14471  windowsName: "South Africa Standard Time",
14472  territory: "MZ",
14473  iana: ["Africa/Maputo"]
14474}, {
14475  windowsName: "South Africa Standard Time",
14476  territory: "RW",
14477  iana: ["Africa/Kigali"]
14478}, {
14479  windowsName: "South Africa Standard Time",
14480  territory: "SZ",
14481  iana: ["Africa/Mbabane"]
14482}, {
14483  windowsName: "South Africa Standard Time",
14484  territory: "ZA",
14485  iana: ["Africa/Johannesburg"]
14486}, {
14487  windowsName: "South Africa Standard Time",
14488  territory: "ZM",
14489  iana: ["Africa/Lusaka"]
14490}, {
14491  windowsName: "South Africa Standard Time",
14492  territory: "ZW",
14493  iana: ["Africa/Harare"]
14494}, {
14495  windowsName: "South Africa Standard Time",
14496  territory: "ZZ",
14497  iana: ["Etc/GMT-2"]
14498}, {
14499  windowsName: "FLE Standard Time",
14500  territory: "001",
14501  iana: ["Europe/Kiev"]
14502}, {
14503  windowsName: "FLE Standard Time",
14504  territory: "AX",
14505  iana: ["Europe/Mariehamn"]
14506}, {
14507  windowsName: "FLE Standard Time",
14508  territory: "BG",
14509  iana: ["Europe/Sofia"]
14510}, {
14511  windowsName: "FLE Standard Time",
14512  territory: "EE",
14513  iana: ["Europe/Tallinn"]
14514}, {
14515  windowsName: "FLE Standard Time",
14516  territory: "FI",
14517  iana: ["Europe/Helsinki"]
14518}, {
14519  windowsName: "FLE Standard Time",
14520  territory: "LT",
14521  iana: ["Europe/Vilnius"]
14522}, {
14523  windowsName: "FLE Standard Time",
14524  territory: "LV",
14525  iana: ["Europe/Riga"]
14526}, {
14527  windowsName: "FLE Standard Time",
14528  territory: "UA",
14529  iana: ["Europe/Kiev", "Europe/Uzhgorod", "Europe/Zaporozhye"]
14530}, {
14531  windowsName: "Israel Standard Time",
14532  territory: "001",
14533  iana: ["Asia/Jerusalem"]
14534}, {
14535  windowsName: "Israel Standard Time",
14536  territory: "IL",
14537  iana: ["Asia/Jerusalem"]
14538}, {
14539  windowsName: "South Sudan Standard Time",
14540  territory: "001",
14541  iana: ["Africa/Juba"]
14542}, {
14543  windowsName: "South Sudan Standard Time",
14544  territory: "SS",
14545  iana: ["Africa/Juba"]
14546}, {
14547  windowsName: "Kaliningrad Standard Time",
14548  territory: "001",
14549  iana: ["Europe/Kaliningrad"]
14550}, {
14551  windowsName: "Kaliningrad Standard Time",
14552  territory: "RU",
14553  iana: ["Europe/Kaliningrad"]
14554}, {
14555  windowsName: "Sudan Standard Time",
14556  territory: "001",
14557  iana: ["Africa/Khartoum"]
14558}, {
14559  windowsName: "Sudan Standard Time",
14560  territory: "SD",
14561  iana: ["Africa/Khartoum"]
14562}, {
14563  windowsName: "Libya Standard Time",
14564  territory: "001",
14565  iana: ["Africa/Tripoli"]
14566}, {
14567  windowsName: "Libya Standard Time",
14568  territory: "LY",
14569  iana: ["Africa/Tripoli"]
14570}, {
14571  windowsName: "Namibia Standard Time",
14572  territory: "001",
14573  iana: ["Africa/Windhoek"]
14574}, {
14575  windowsName: "Namibia Standard Time",
14576  territory: "NA",
14577  iana: ["Africa/Windhoek"]
14578}, {
14579  windowsName: "Arabic Standard Time",
14580  territory: "001",
14581  iana: ["Asia/Baghdad"]
14582}, {
14583  windowsName: "Arabic Standard Time",
14584  territory: "IQ",
14585  iana: ["Asia/Baghdad"]
14586}, {
14587  windowsName: "Turkey Standard Time",
14588  territory: "001",
14589  iana: ["Europe/Istanbul"]
14590}, {
14591  windowsName: "Turkey Standard Time",
14592  territory: "TR",
14593  iana: ["Europe/Istanbul"]
14594}, {
14595  windowsName: "Arab Standard Time",
14596  territory: "001",
14597  iana: ["Asia/Riyadh"]
14598}, {
14599  windowsName: "Arab Standard Time",
14600  territory: "BH",
14601  iana: ["Asia/Bahrain"]
14602}, {
14603  windowsName: "Arab Standard Time",
14604  territory: "KW",
14605  iana: ["Asia/Kuwait"]
14606}, {
14607  windowsName: "Arab Standard Time",
14608  territory: "QA",
14609  iana: ["Asia/Qatar"]
14610}, {
14611  windowsName: "Arab Standard Time",
14612  territory: "SA",
14613  iana: ["Asia/Riyadh"]
14614}, {
14615  windowsName: "Arab Standard Time",
14616  territory: "YE",
14617  iana: ["Asia/Aden"]
14618}, {
14619  windowsName: "Belarus Standard Time",
14620  territory: "001",
14621  iana: ["Europe/Minsk"]
14622}, {
14623  windowsName: "Belarus Standard Time",
14624  territory: "BY",
14625  iana: ["Europe/Minsk"]
14626}, {
14627  windowsName: "Russian Standard Time",
14628  territory: "001",
14629  iana: ["Europe/Moscow"]
14630}, {
14631  windowsName: "Russian Standard Time",
14632  territory: "RU",
14633  iana: ["Europe/Moscow", "Europe/Kirov"]
14634}, {
14635  windowsName: "Russian Standard Time",
14636  territory: "UA",
14637  iana: ["Europe/Simferopol"]
14638}, {
14639  windowsName: "E. Africa Standard Time",
14640  territory: "001",
14641  iana: ["Africa/Nairobi"]
14642}, {
14643  windowsName: "E. Africa Standard Time",
14644  territory: "AQ",
14645  iana: ["Antarctica/Syowa"]
14646}, {
14647  windowsName: "E. Africa Standard Time",
14648  territory: "DJ",
14649  iana: ["Africa/Djibouti"]
14650}, {
14651  windowsName: "E. Africa Standard Time",
14652  territory: "ER",
14653  iana: ["Africa/Asmera"]
14654}, {
14655  windowsName: "E. Africa Standard Time",
14656  territory: "ET",
14657  iana: ["Africa/Addis_Ababa"]
14658}, {
14659  windowsName: "E. Africa Standard Time",
14660  territory: "KE",
14661  iana: ["Africa/Nairobi"]
14662}, {
14663  windowsName: "E. Africa Standard Time",
14664  territory: "KM",
14665  iana: ["Indian/Comoro"]
14666}, {
14667  windowsName: "E. Africa Standard Time",
14668  territory: "MG",
14669  iana: ["Indian/Antananarivo"]
14670}, {
14671  windowsName: "E. Africa Standard Time",
14672  territory: "SO",
14673  iana: ["Africa/Mogadishu"]
14674}, {
14675  windowsName: "E. Africa Standard Time",
14676  territory: "TZ",
14677  iana: ["Africa/Dar_es_Salaam"]
14678}, {
14679  windowsName: "E. Africa Standard Time",
14680  territory: "UG",
14681  iana: ["Africa/Kampala"]
14682}, {
14683  windowsName: "E. Africa Standard Time",
14684  territory: "YT",
14685  iana: ["Indian/Mayotte"]
14686}, {
14687  windowsName: "E. Africa Standard Time",
14688  territory: "ZZ",
14689  iana: ["Etc/GMT-3"]
14690}, {
14691  windowsName: "Iran Standard Time",
14692  territory: "001",
14693  iana: ["Asia/Tehran"]
14694}, {
14695  windowsName: "Iran Standard Time",
14696  territory: "IR",
14697  iana: ["Asia/Tehran"]
14698}, {
14699  windowsName: "Arabian Standard Time",
14700  territory: "001",
14701  iana: ["Asia/Dubai"]
14702}, {
14703  windowsName: "Arabian Standard Time",
14704  territory: "AE",
14705  iana: ["Asia/Dubai"]
14706}, {
14707  windowsName: "Arabian Standard Time",
14708  territory: "OM",
14709  iana: ["Asia/Muscat"]
14710}, {
14711  windowsName: "Arabian Standard Time",
14712  territory: "ZZ",
14713  iana: ["Etc/GMT-4"]
14714}, {
14715  windowsName: "Astrakhan Standard Time",
14716  territory: "001",
14717  iana: ["Europe/Astrakhan"]
14718}, {
14719  windowsName: "Astrakhan Standard Time",
14720  territory: "RU",
14721  iana: ["Europe/Astrakhan", "Europe/Ulyanovsk"]
14722}, {
14723  windowsName: "Azerbaijan Standard Time",
14724  territory: "001",
14725  iana: ["Asia/Baku"]
14726}, {
14727  windowsName: "Azerbaijan Standard Time",
14728  territory: "AZ",
14729  iana: ["Asia/Baku"]
14730}, {
14731  windowsName: "Russia Time Zone 3",
14732  territory: "001",
14733  iana: ["Europe/Samara"]
14734}, {
14735  windowsName: "Russia Time Zone 3",
14736  territory: "RU",
14737  iana: ["Europe/Samara"]
14738}, {
14739  windowsName: "Mauritius Standard Time",
14740  territory: "001",
14741  iana: ["Indian/Mauritius"]
14742}, {
14743  windowsName: "Mauritius Standard Time",
14744  territory: "MU",
14745  iana: ["Indian/Mauritius"]
14746}, {
14747  windowsName: "Mauritius Standard Time",
14748  territory: "RE",
14749  iana: ["Indian/Reunion"]
14750}, {
14751  windowsName: "Mauritius Standard Time",
14752  territory: "SC",
14753  iana: ["Indian/Mahe"]
14754}, {
14755  windowsName: "Saratov Standard Time",
14756  territory: "001",
14757  iana: ["Europe/Saratov"]
14758}, {
14759  windowsName: "Saratov Standard Time",
14760  territory: "RU",
14761  iana: ["Europe/Saratov"]
14762}, {
14763  windowsName: "Georgian Standard Time",
14764  territory: "001",
14765  iana: ["Asia/Tbilisi"]
14766}, {
14767  windowsName: "Georgian Standard Time",
14768  territory: "GE",
14769  iana: ["Asia/Tbilisi"]
14770}, {
14771  windowsName: "Volgograd Standard Time",
14772  territory: "001",
14773  iana: ["Europe/Volgograd"]
14774}, {
14775  windowsName: "Volgograd Standard Time",
14776  territory: "RU",
14777  iana: ["Europe/Volgograd"]
14778}, {
14779  windowsName: "Caucasus Standard Time",
14780  territory: "001",
14781  iana: ["Asia/Yerevan"]
14782}, {
14783  windowsName: "Caucasus Standard Time",
14784  territory: "AM",
14785  iana: ["Asia/Yerevan"]
14786}, {
14787  windowsName: "Afghanistan Standard Time",
14788  territory: "001",
14789  iana: ["Asia/Kabul"]
14790}, {
14791  windowsName: "Afghanistan Standard Time",
14792  territory: "AF",
14793  iana: ["Asia/Kabul"]
14794}, {
14795  windowsName: "West Asia Standard Time",
14796  territory: "001",
14797  iana: ["Asia/Tashkent"]
14798}, {
14799  windowsName: "West Asia Standard Time",
14800  territory: "AQ",
14801  iana: ["Antarctica/Mawson"]
14802}, {
14803  windowsName: "West Asia Standard Time",
14804  territory: "KZ",
14805  iana: ["Asia/Oral", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Atyrau"]
14806}, {
14807  windowsName: "West Asia Standard Time",
14808  territory: "MV",
14809  iana: ["Indian/Maldives"]
14810}, {
14811  windowsName: "West Asia Standard Time",
14812  territory: "TF",
14813  iana: ["Indian/Kerguelen"]
14814}, {
14815  windowsName: "West Asia Standard Time",
14816  territory: "TJ",
14817  iana: ["Asia/Dushanbe"]
14818}, {
14819  windowsName: "West Asia Standard Time",
14820  territory: "TM",
14821  iana: ["Asia/Ashgabat"]
14822}, {
14823  windowsName: "West Asia Standard Time",
14824  territory: "UZ",
14825  iana: ["Asia/Tashkent", "Asia/Samarkand"]
14826}, {
14827  windowsName: "West Asia Standard Time",
14828  territory: "ZZ",
14829  iana: ["Etc/GMT-5"]
14830}, {
14831  windowsName: "Ekaterinburg Standard Time",
14832  territory: "001",
14833  iana: ["Asia/Yekaterinburg"]
14834}, {
14835  windowsName: "Ekaterinburg Standard Time",
14836  territory: "RU",
14837  iana: ["Asia/Yekaterinburg"]
14838}, {
14839  windowsName: "Pakistan Standard Time",
14840  territory: "001",
14841  iana: ["Asia/Karachi"]
14842}, {
14843  windowsName: "Pakistan Standard Time",
14844  territory: "PK",
14845  iana: ["Asia/Karachi"]
14846}, {
14847  windowsName: "Qyzylorda Standard Time",
14848  territory: "001",
14849  iana: ["Asia/Qyzylorda"]
14850}, {
14851  windowsName: "Qyzylorda Standard Time",
14852  territory: "KZ",
14853  iana: ["Asia/Qyzylorda"]
14854}, {
14855  windowsName: "India Standard Time",
14856  territory: "001",
14857  iana: ["Asia/Calcutta"]
14858}, {
14859  windowsName: "India Standard Time",
14860  territory: "IN",
14861  iana: ["Asia/Calcutta"]
14862}, {
14863  windowsName: "Sri Lanka Standard Time",
14864  territory: "001",
14865  iana: ["Asia/Colombo"]
14866}, {
14867  windowsName: "Sri Lanka Standard Time",
14868  territory: "LK",
14869  iana: ["Asia/Colombo"]
14870}, {
14871  windowsName: "Nepal Standard Time",
14872  territory: "001",
14873  iana: ["Asia/Katmandu"]
14874}, {
14875  windowsName: "Nepal Standard Time",
14876  territory: "NP",
14877  iana: ["Asia/Katmandu"]
14878}, {
14879  windowsName: "Central Asia Standard Time",
14880  territory: "001",
14881  iana: ["Asia/Almaty"]
14882}, {
14883  windowsName: "Central Asia Standard Time",
14884  territory: "AQ",
14885  iana: ["Antarctica/Vostok"]
14886}, {
14887  windowsName: "Central Asia Standard Time",
14888  territory: "CN",
14889  iana: ["Asia/Urumqi"]
14890}, {
14891  windowsName: "Central Asia Standard Time",
14892  territory: "IO",
14893  iana: ["Indian/Chagos"]
14894}, {
14895  windowsName: "Central Asia Standard Time",
14896  territory: "KG",
14897  iana: ["Asia/Bishkek"]
14898}, {
14899  windowsName: "Central Asia Standard Time",
14900  territory: "KZ",
14901  iana: ["Asia/Almaty", "Asia/Qostanay"]
14902}, {
14903  windowsName: "Central Asia Standard Time",
14904  territory: "ZZ",
14905  iana: ["Etc/GMT-6"]
14906}, {
14907  windowsName: "Bangladesh Standard Time",
14908  territory: "001",
14909  iana: ["Asia/Dhaka"]
14910}, {
14911  windowsName: "Bangladesh Standard Time",
14912  territory: "BD",
14913  iana: ["Asia/Dhaka"]
14914}, {
14915  windowsName: "Bangladesh Standard Time",
14916  territory: "BT",
14917  iana: ["Asia/Thimphu"]
14918}, {
14919  windowsName: "Omsk Standard Time",
14920  territory: "001",
14921  iana: ["Asia/Omsk"]
14922}, {
14923  windowsName: "Omsk Standard Time",
14924  territory: "RU",
14925  iana: ["Asia/Omsk"]
14926}, {
14927  windowsName: "Myanmar Standard Time",
14928  territory: "001",
14929  iana: ["Asia/Rangoon"]
14930}, {
14931  windowsName: "Myanmar Standard Time",
14932  territory: "CC",
14933  iana: ["Indian/Cocos"]
14934}, {
14935  windowsName: "Myanmar Standard Time",
14936  territory: "MM",
14937  iana: ["Asia/Rangoon"]
14938}, {
14939  windowsName: "SE Asia Standard Time",
14940  territory: "001",
14941  iana: ["Asia/Bangkok"]
14942}, {
14943  windowsName: "SE Asia Standard Time",
14944  territory: "AQ",
14945  iana: ["Antarctica/Davis"]
14946}, {
14947  windowsName: "SE Asia Standard Time",
14948  territory: "CX",
14949  iana: ["Indian/Christmas"]
14950}, {
14951  windowsName: "SE Asia Standard Time",
14952  territory: "ID",
14953  iana: ["Asia/Jakarta", "Asia/Pontianak"]
14954}, {
14955  windowsName: "SE Asia Standard Time",
14956  territory: "KH",
14957  iana: ["Asia/Phnom_Penh"]
14958}, {
14959  windowsName: "SE Asia Standard Time",
14960  territory: "LA",
14961  iana: ["Asia/Vientiane"]
14962}, {
14963  windowsName: "SE Asia Standard Time",
14964  territory: "TH",
14965  iana: ["Asia/Bangkok"]
14966}, {
14967  windowsName: "SE Asia Standard Time",
14968  territory: "VN",
14969  iana: ["Asia/Saigon"]
14970}, {
14971  windowsName: "SE Asia Standard Time",
14972  territory: "ZZ",
14973  iana: ["Etc/GMT-7"]
14974}, {
14975  windowsName: "Altai Standard Time",
14976  territory: "001",
14977  iana: ["Asia/Barnaul"]
14978}, {
14979  windowsName: "Altai Standard Time",
14980  territory: "RU",
14981  iana: ["Asia/Barnaul"]
14982}, {
14983  windowsName: "W. Mongolia Standard Time",
14984  territory: "001",
14985  iana: ["Asia/Hovd"]
14986}, {
14987  windowsName: "W. Mongolia Standard Time",
14988  territory: "MN",
14989  iana: ["Asia/Hovd"]
14990}, {
14991  windowsName: "North Asia Standard Time",
14992  territory: "001",
14993  iana: ["Asia/Krasnoyarsk"]
14994}, {
14995  windowsName: "North Asia Standard Time",
14996  territory: "RU",
14997  iana: ["Asia/Krasnoyarsk", "Asia/Novokuznetsk"]
14998}, {
14999  windowsName: "N. Central Asia Standard Time",
15000  territory: "001",
15001  iana: ["Asia/Novosibirsk"]
15002}, {
15003  windowsName: "N. Central Asia Standard Time",
15004  territory: "RU",
15005  iana: ["Asia/Novosibirsk"]
15006}, {
15007  windowsName: "Tomsk Standard Time",
15008  territory: "001",
15009  iana: ["Asia/Tomsk"]
15010}, {
15011  windowsName: "Tomsk Standard Time",
15012  territory: "RU",
15013  iana: ["Asia/Tomsk"]
15014}, {
15015  windowsName: "China Standard Time",
15016  territory: "001",
15017  iana: ["Asia/Shanghai"]
15018}, {
15019  windowsName: "China Standard Time",
15020  territory: "CN",
15021  iana: ["Asia/Shanghai"]
15022}, {
15023  windowsName: "China Standard Time",
15024  territory: "HK",
15025  iana: ["Asia/Hong_Kong"]
15026}, {
15027  windowsName: "China Standard Time",
15028  territory: "MO",
15029  iana: ["Asia/Macau"]
15030}, {
15031  windowsName: "North Asia East Standard Time",
15032  territory: "001",
15033  iana: ["Asia/Irkutsk"]
15034}, {
15035  windowsName: "North Asia East Standard Time",
15036  territory: "RU",
15037  iana: ["Asia/Irkutsk"]
15038}, {
15039  windowsName: "Singapore Standard Time",
15040  territory: "001",
15041  iana: ["Asia/Singapore"]
15042}, {
15043  windowsName: "Singapore Standard Time",
15044  territory: "BN",
15045  iana: ["Asia/Brunei"]
15046}, {
15047  windowsName: "Singapore Standard Time",
15048  territory: "ID",
15049  iana: ["Asia/Makassar"]
15050}, {
15051  windowsName: "Singapore Standard Time",
15052  territory: "MY",
15053  iana: ["Asia/Kuala_Lumpur", "Asia/Kuching"]
15054}, {
15055  windowsName: "Singapore Standard Time",
15056  territory: "PH",
15057  iana: ["Asia/Manila"]
15058}, {
15059  windowsName: "Singapore Standard Time",
15060  territory: "SG",
15061  iana: ["Asia/Singapore"]
15062}, {
15063  windowsName: "Singapore Standard Time",
15064  territory: "ZZ",
15065  iana: ["Etc/GMT-8"]
15066}, {
15067  windowsName: "W. Australia Standard Time",
15068  territory: "001",
15069  iana: ["Australia/Perth"]
15070}, {
15071  windowsName: "W. Australia Standard Time",
15072  territory: "AU",
15073  iana: ["Australia/Perth"]
15074}, {
15075  windowsName: "Taipei Standard Time",
15076  territory: "001",
15077  iana: ["Asia/Taipei"]
15078}, {
15079  windowsName: "Taipei Standard Time",
15080  territory: "TW",
15081  iana: ["Asia/Taipei"]
15082}, {
15083  windowsName: "Ulaanbaatar Standard Time",
15084  territory: "001",
15085  iana: ["Asia/Ulaanbaatar"]
15086}, {
15087  windowsName: "Ulaanbaatar Standard Time",
15088  territory: "MN",
15089  iana: ["Asia/Ulaanbaatar", "Asia/Choibalsan"]
15090}, {
15091  windowsName: "Aus Central W. Standard Time",
15092  territory: "001",
15093  iana: ["Australia/Eucla"]
15094}, {
15095  windowsName: "Aus Central W. Standard Time",
15096  territory: "AU",
15097  iana: ["Australia/Eucla"]
15098}, {
15099  windowsName: "Transbaikal Standard Time",
15100  territory: "001",
15101  iana: ["Asia/Chita"]
15102}, {
15103  windowsName: "Transbaikal Standard Time",
15104  territory: "RU",
15105  iana: ["Asia/Chita"]
15106}, {
15107  windowsName: "Tokyo Standard Time",
15108  territory: "001",
15109  iana: ["Asia/Tokyo"]
15110}, {
15111  windowsName: "Tokyo Standard Time",
15112  territory: "ID",
15113  iana: ["Asia/Jayapura"]
15114}, {
15115  windowsName: "Tokyo Standard Time",
15116  territory: "JP",
15117  iana: ["Asia/Tokyo"]
15118}, {
15119  windowsName: "Tokyo Standard Time",
15120  territory: "PW",
15121  iana: ["Pacific/Palau"]
15122}, {
15123  windowsName: "Tokyo Standard Time",
15124  territory: "TL",
15125  iana: ["Asia/Dili"]
15126}, {
15127  windowsName: "Tokyo Standard Time",
15128  territory: "ZZ",
15129  iana: ["Etc/GMT-9"]
15130}, {
15131  windowsName: "North Korea Standard Time",
15132  territory: "001",
15133  iana: ["Asia/Pyongyang"]
15134}, {
15135  windowsName: "North Korea Standard Time",
15136  territory: "KP",
15137  iana: ["Asia/Pyongyang"]
15138}, {
15139  windowsName: "Korea Standard Time",
15140  territory: "001",
15141  iana: ["Asia/Seoul"]
15142}, {
15143  windowsName: "Korea Standard Time",
15144  territory: "KR",
15145  iana: ["Asia/Seoul"]
15146}, {
15147  windowsName: "Yakutsk Standard Time",
15148  territory: "001",
15149  iana: ["Asia/Yakutsk"]
15150}, {
15151  windowsName: "Yakutsk Standard Time",
15152  territory: "RU",
15153  iana: ["Asia/Yakutsk", "Asia/Khandyga"]
15154}, {
15155  windowsName: "Cen. Australia Standard Time",
15156  territory: "001",
15157  iana: ["Australia/Adelaide"]
15158}, {
15159  windowsName: "Cen. Australia Standard Time",
15160  territory: "AU",
15161  iana: ["Australia/Adelaide", "Australia/Broken_Hill"]
15162}, {
15163  windowsName: "AUS Central Standard Time",
15164  territory: "001",
15165  iana: ["Australia/Darwin"]
15166}, {
15167  windowsName: "AUS Central Standard Time",
15168  territory: "AU",
15169  iana: ["Australia/Darwin"]
15170}, {
15171  windowsName: "E. Australia Standard Time",
15172  territory: "001",
15173  iana: ["Australia/Brisbane"]
15174}, {
15175  windowsName: "E. Australia Standard Time",
15176  territory: "AU",
15177  iana: ["Australia/Brisbane", "Australia/Lindeman"]
15178}, {
15179  windowsName: "AUS Eastern Standard Time",
15180  territory: "001",
15181  iana: ["Australia/Sydney"]
15182}, {
15183  windowsName: "AUS Eastern Standard Time",
15184  territory: "AU",
15185  iana: ["Australia/Sydney", "Australia/Melbourne"]
15186}, {
15187  windowsName: "West Pacific Standard Time",
15188  territory: "001",
15189  iana: ["Pacific/Port_Moresby"]
15190}, {
15191  windowsName: "West Pacific Standard Time",
15192  territory: "AQ",
15193  iana: ["Antarctica/DumontDUrville"]
15194}, {
15195  windowsName: "West Pacific Standard Time",
15196  territory: "FM",
15197  iana: ["Pacific/Truk"]
15198}, {
15199  windowsName: "West Pacific Standard Time",
15200  territory: "GU",
15201  iana: ["Pacific/Guam"]
15202}, {
15203  windowsName: "West Pacific Standard Time",
15204  territory: "MP",
15205  iana: ["Pacific/Saipan"]
15206}, {
15207  windowsName: "West Pacific Standard Time",
15208  territory: "PG",
15209  iana: ["Pacific/Port_Moresby"]
15210}, {
15211  windowsName: "West Pacific Standard Time",
15212  territory: "ZZ",
15213  iana: ["Etc/GMT-10"]
15214}, {
15215  windowsName: "Tasmania Standard Time",
15216  territory: "001",
15217  iana: ["Australia/Hobart"]
15218}, {
15219  windowsName: "Tasmania Standard Time",
15220  territory: "AU",
15221  iana: ["Australia/Hobart", "Australia/Currie", "Antarctica/Macquarie"]
15222}, {
15223  windowsName: "Vladivostok Standard Time",
15224  territory: "001",
15225  iana: ["Asia/Vladivostok"]
15226}, {
15227  windowsName: "Vladivostok Standard Time",
15228  territory: "RU",
15229  iana: ["Asia/Vladivostok", "Asia/Ust-Nera"]
15230}, {
15231  windowsName: "Lord Howe Standard Time",
15232  territory: "001",
15233  iana: ["Australia/Lord_Howe"]
15234}, {
15235  windowsName: "Lord Howe Standard Time",
15236  territory: "AU",
15237  iana: ["Australia/Lord_Howe"]
15238}, {
15239  windowsName: "Bougainville Standard Time",
15240  territory: "001",
15241  iana: ["Pacific/Bougainville"]
15242}, {
15243  windowsName: "Bougainville Standard Time",
15244  territory: "PG",
15245  iana: ["Pacific/Bougainville"]
15246}, {
15247  windowsName: "Russia Time Zone 10",
15248  territory: "001",
15249  iana: ["Asia/Srednekolymsk"]
15250}, {
15251  windowsName: "Russia Time Zone 10",
15252  territory: "RU",
15253  iana: ["Asia/Srednekolymsk"]
15254}, {
15255  windowsName: "Magadan Standard Time",
15256  territory: "001",
15257  iana: ["Asia/Magadan"]
15258}, {
15259  windowsName: "Magadan Standard Time",
15260  territory: "RU",
15261  iana: ["Asia/Magadan"]
15262}, {
15263  windowsName: "Norfolk Standard Time",
15264  territory: "001",
15265  iana: ["Pacific/Norfolk"]
15266}, {
15267  windowsName: "Norfolk Standard Time",
15268  territory: "NF",
15269  iana: ["Pacific/Norfolk"]
15270}, {
15271  windowsName: "Sakhalin Standard Time",
15272  territory: "001",
15273  iana: ["Asia/Sakhalin"]
15274}, {
15275  windowsName: "Sakhalin Standard Time",
15276  territory: "RU",
15277  iana: ["Asia/Sakhalin"]
15278}, {
15279  windowsName: "Central Pacific Standard Time",
15280  territory: "001",
15281  iana: ["Pacific/Guadalcanal"]
15282}, {
15283  windowsName: "Central Pacific Standard Time",
15284  territory: "AQ",
15285  iana: ["Antarctica/Casey"]
15286}, {
15287  windowsName: "Central Pacific Standard Time",
15288  territory: "FM",
15289  iana: ["Pacific/Ponape", "Pacific/Kosrae"]
15290}, {
15291  windowsName: "Central Pacific Standard Time",
15292  territory: "NC",
15293  iana: ["Pacific/Noumea"]
15294}, {
15295  windowsName: "Central Pacific Standard Time",
15296  territory: "SB",
15297  iana: ["Pacific/Guadalcanal"]
15298}, {
15299  windowsName: "Central Pacific Standard Time",
15300  territory: "VU",
15301  iana: ["Pacific/Efate"]
15302}, {
15303  windowsName: "Central Pacific Standard Time",
15304  territory: "ZZ",
15305  iana: ["Etc/GMT-11"]
15306}, {
15307  windowsName: "Russia Time Zone 11",
15308  territory: "001",
15309  iana: ["Asia/Kamchatka"]
15310}, {
15311  windowsName: "Russia Time Zone 11",
15312  territory: "RU",
15313  iana: ["Asia/Kamchatka", "Asia/Anadyr"]
15314}, {
15315  windowsName: "New Zealand Standard Time",
15316  territory: "001",
15317  iana: ["Pacific/Auckland"]
15318}, {
15319  windowsName: "New Zealand Standard Time",
15320  territory: "AQ",
15321  iana: ["Antarctica/McMurdo"]
15322}, {
15323  windowsName: "New Zealand Standard Time",
15324  territory: "NZ",
15325  iana: ["Pacific/Auckland"]
15326}, {
15327  windowsName: "UTC+12",
15328  territory: "001",
15329  iana: ["Etc/GMT-12"]
15330}, {
15331  windowsName: "UTC+12",
15332  territory: "KI",
15333  iana: ["Pacific/Tarawa"]
15334}, {
15335  windowsName: "UTC+12",
15336  territory: "MH",
15337  iana: ["Pacific/Majuro", "Pacific/Kwajalein"]
15338}, {
15339  windowsName: "UTC+12",
15340  territory: "NR",
15341  iana: ["Pacific/Nauru"]
15342}, {
15343  windowsName: "UTC+12",
15344  territory: "TV",
15345  iana: ["Pacific/Funafuti"]
15346}, {
15347  windowsName: "UTC+12",
15348  territory: "UM",
15349  iana: ["Pacific/Wake"]
15350}, {
15351  windowsName: "UTC+12",
15352  territory: "WF",
15353  iana: ["Pacific/Wallis"]
15354}, {
15355  windowsName: "UTC+12",
15356  territory: "ZZ",
15357  iana: ["Etc/GMT-12"]
15358}, {
15359  windowsName: "Fiji Standard Time",
15360  territory: "001",
15361  iana: ["Pacific/Fiji"]
15362}, {
15363  windowsName: "Fiji Standard Time",
15364  territory: "FJ",
15365  iana: ["Pacific/Fiji"]
15366}, {
15367  windowsName: "Chatham Islands Standard Time",
15368  territory: "001",
15369  iana: ["Pacific/Chatham"]
15370}, {
15371  windowsName: "Chatham Islands Standard Time",
15372  territory: "NZ",
15373  iana: ["Pacific/Chatham"]
15374}, {
15375  windowsName: "UTC+13",
15376  territory: "001",
15377  iana: ["Etc/GMT-13"]
15378}, {
15379  windowsName: "UTC+13",
15380  territory: "KI",
15381  iana: ["Pacific/Enderbury"]
15382}, {
15383  windowsName: "UTC+13",
15384  territory: "TK",
15385  iana: ["Pacific/Fakaofo"]
15386}, {
15387  windowsName: "UTC+13",
15388  territory: "ZZ",
15389  iana: ["Etc/GMT-13"]
15390}, {
15391  windowsName: "Tonga Standard Time",
15392  territory: "001",
15393  iana: ["Pacific/Tongatapu"]
15394}, {
15395  windowsName: "Tonga Standard Time",
15396  territory: "TO",
15397  iana: ["Pacific/Tongatapu"]
15398}, {
15399  windowsName: "Samoa Standard Time",
15400  territory: "001",
15401  iana: ["Pacific/Apia"]
15402}, {
15403  windowsName: "Samoa Standard Time",
15404  territory: "WS",
15405  iana: ["Pacific/Apia"]
15406}, {
15407  windowsName: "Line Islands Standard Time",
15408  territory: "001",
15409  iana: ["Pacific/Kiritimati"]
15410}, {
15411  windowsName: "Line Islands Standard Time",
15412  territory: "KI",
15413  iana: ["Pacific/Kiritimati"]
15414}, {
15415  windowsName: "Line Islands Standard Time",
15416  territory: "ZZ",
15417  iana: ["Etc/GMT-14"]
15418}];
15419function findIanaAliases(ianaTimeZone) {
15420  var result = /* @__PURE__ */ new Set();
15421  IANA_ALIAS_MAP.filter(function(_ref) {
15422    var alias = _ref.alias;
15423    return alias.includes(ianaTimeZone);
15424  }).map(function(it) {
15425    return it.alias;
15426  }).flat().forEach(function(it) {
15427    result.add(it);
15428  });
15429  return Array.from(result);
15430}
15431function findWindows(ianaTimeZone) {
15432  var aliases = findIanaAliases(ianaTimeZone);
15433  var result = /* @__PURE__ */ new Set();
15434  WINDOWS_TO_IANA_MAP.filter(function(it) {
15435    return it.iana.find(function(it2) {
15436      return aliases.includes(it2);
15437    });
15438  }).forEach(function(entry) {
15439    result.add(entry.windowsName);
15440  });
15441  return Array.from(result);
15442}
15443
15444// src/app/shared/services/time-zone-service.service.ts
15445var TimezoneService = class _TimezoneService {
15446  constructor() {
15447  }
15448  /**
15449   * Gets all timezones with Windows mappings, GMT offsets, and display information
15450   * @returns An array of TimezoneInfo objects
15451   */
15452  getCompleteTimezoneList() {
15453    return __async(this, null, function* () {
15454      const allTimezones = Intl.supportedValuesOf("timeZone");
15455      const timezoneInfoList = [];
15456      const now = /* @__PURE__ */ new Date();
15457      for (const ianaId of allTimezones) {
15458        try {
15459          const windowsId = findWindows(ianaId);
15460          if (windowsId) {
15461            const offsetInMinutes = this.getTimezoneOffset(ianaId);
15462            const hours = Math.floor(Math.abs(offsetInMinutes) / 60);
15463            const minutes = Math.abs(offsetInMinutes) % 60;
15464            const sign = offsetInMinutes >= 0 ? "+" : "-";
15465            const formattedOffset = `GMT${sign}${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`;
15466            const cityName = this.extractCityName(ianaId);
15467            const displayName = `(${formattedOffset}) ${cityName} - ${windowsId}`;
15468            timezoneInfoList.push({
15469              ianaId,
15470              windowsId,
15471              displayName,
15472              formattedOffset,
15473              offsetInMinutes
15474            });
15475          }
15476        } catch (error) {
15477        }
15478      }
15479      timezoneInfoList.sort((a, b) => {
15480        if (a.offsetInMinutes !== b.offsetInMinutes) {
15481          return a.offsetInMinutes - b.offsetInMinutes;
15482        }
15483        return a.ianaId.localeCompare(b.ianaId);
15484      });
15485      return timezoneInfoList;
15486    });
15487  }
15488  /**
15489   * Extracts a user-friendly city name from the IANA ID
15490   */
15491  extractCityName(ianaId) {
15492    const parts = ianaId.split("/");
15493    if (parts.length > 1) {
15494      return parts[parts.length - 1].replace(/_/g, " ");
15495    }
15496    return ianaId;
15497  }
15498  /**
15499   * Calculates the offset in minutes for a timezone
15500   */
15501  getTimezoneOffset(timezone) {
15502    const date = /* @__PURE__ */ new Date();
15503    const utcDate = new Date(date.toLocaleString("en-US", { timeZone: "UTC" }));
15504    const tzDate = new Date(date.toLocaleString("en-US", { timeZone: timezone }));
15505    return (tzDate.getTime() - utcDate.getTime()) / 6e4;
15506  }
15507  static \u0275fac = function TimezoneService_Factory(__ngFactoryType__) {
15508    return new (__ngFactoryType__ || _TimezoneService)();
15509  };
15510  static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _TimezoneService, factory: _TimezoneService.\u0275fac, providedIn: "root" });
15511};
15512(() => {
15513  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(TimezoneService, [{
15514    type: Injectable,
15515    args: [{
15516      providedIn: "root"
15517    }]
15518  }], () => [], null);
15519})();
15520
15521// src/app/shared/components/organisms/user-profile/user-profile.component.ts
15522var _c010 = ["editAccountProfile"];
15523var _c112 = ["userLicenseAssignment"];
15524var _c26 = ["editRole"];
15525var _c36 = ["addCompanyAdmins"];
15526var _c45 = ["unableToUpdateNotifications"];
15527var _c55 = () => ({ height: "48px", width: "350px", "border-radius": "0.5rem" });
15528var _c65 = () => ({ height: "48px", width: "160px", "margin-left": "12px", "border-radius": "0.5rem" });
15529var _c75 = () => ({ width: "100%", height: "4.6rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
15530var _c85 = () => ({ width: "100%", height: "5.375rem", "border-radius": "0.5rem", "margin-bottom": "0.3rem" });
15531var _c92 = (a0, a1, a2, a3) => ({ firstName: a0, lastName: a1, email: a2, today: a3 });
15532var _forTrack06 = ($index, $item) => $item.propertyName;
15533function UserProfileComponent_Conditional_1_Conditional_2_Template(rf, ctx) {
15534  if (rf & 1) {
15535    \u0275\u0275elementStart(0, "div", 18);
15536    \u0275\u0275element(1, "ngx-skeleton-loader", 12);
15537    \u0275\u0275elementEnd();
15538  }
15539  if (rf & 2) {
15540    \u0275\u0275advance();
15541    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c65));
15542  }
15543}
15544function UserProfileComponent_Conditional_1_Template(rf, ctx) {
15545  if (rf & 1) {
15546    \u0275\u0275elementStart(0, "div", 16);
15547    \u0275\u0275element(1, "ngx-skeleton-loader", 17);
15548    \u0275\u0275elementEnd();
15549    \u0275\u0275conditionalCreate(2, UserProfileComponent_Conditional_1_Conditional_2_Template, 2, 2, "div", 18);
15550  }
15551  if (rf & 2) {
15552    const ctx_r0 = \u0275\u0275nextContext();
15553    \u0275\u0275advance();
15554    \u0275\u0275property("theme", \u0275\u0275pureFunction0(2, _c55));
15555    \u0275\u0275advance();
15556    \u0275\u0275conditional(ctx_r0.isEditing() ? 2 : -1);
15557  }
15558}
15559function UserProfileComponent_Conditional_2_Conditional_5_Template(rf, ctx) {
15560  if (rf & 1) {
15561    const _r2 = \u0275\u0275getCurrentView();
15562    \u0275\u0275elementStart(0, "nmfta-button", 21);
15563    \u0275\u0275listener("buttonClick", function UserProfileComponent_Conditional_2_Conditional_5_Template_nmfta_button_buttonClick_0_listener() {
15564      \u0275\u0275restoreView(_r2);
15565      const ctx_r0 = \u0275\u0275nextContext(2);
15566      return \u0275\u0275resetView(ctx_r0.licenseAssignment());
15567    });
15568    \u0275\u0275text(1);
15569    \u0275\u0275pipe(2, "translate");
15570    \u0275\u0275elementEnd();
15571    \u0275\u0275elementStart(3, "nmfta-button", 22);
15572    \u0275\u0275listener("buttonClick", function UserProfileComponent_Conditional_2_Conditional_5_Template_nmfta_button_buttonClick_3_listener() {
15573      \u0275\u0275restoreView(_r2);
15574      const ctx_r0 = \u0275\u0275nextContext(2);
15575      return \u0275\u0275resetView(ctx_r0.deleteUser());
15576    });
15577    \u0275\u0275text(4);
15578    \u0275\u0275pipe(5, "translate");
15579    \u0275\u0275elementEnd();
15580  }
15581  if (rf & 2) {
15582    const ctx_r0 = \u0275\u0275nextContext(2);
15583    \u0275\u0275property("rightIcon", \u0275\u0275interpolate(ctx_r0.user$().isLicensed ? "check_circle" : "cancel"))("color", ctx_r0.user$().isLicensed ? "accent" : "error");
15584    \u0275\u0275advance();
15585    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 5, ctx_r0.user$().isLicensed ? "Generic_LicenseStatusAssigned" : "Generic_LicenseStatusNotAssigned"), " ");
15586    \u0275\u0275advance(3);
15587    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 7, "Generic_DeleteUser"), " ");
15588  }
15589}
15590function UserProfileComponent_Conditional_2_Template(rf, ctx) {
15591  if (rf & 1) {
15592    \u0275\u0275elementStart(0, "div", 16);
15593    \u0275\u0275element(1, "nmfta-page-title", 19);
15594    \u0275\u0275pipe(2, "translate");
15595    \u0275\u0275elementEnd();
15596    \u0275\u0275elementStart(3, "div", 18)(4, "div", 20);
15597    \u0275\u0275conditionalCreate(5, UserProfileComponent_Conditional_2_Conditional_5_Template, 6, 9);
15598    \u0275\u0275elementEnd()();
15599  }
15600  if (rf & 2) {
15601    const ctx_r0 = \u0275\u0275nextContext();
15602    \u0275\u0275advance();
15603    \u0275\u0275property("title", ctx_r0.isEditing() ? ctx_r0.user$().firstName + " " + ctx_r0.user$().lastName : \u0275\u0275pipeBind1(2, 2, "Generic_UserProfile"));
15604    \u0275\u0275advance(4);
15605    \u0275\u0275conditional(ctx_r0.isEditing() ? 5 : -1);
15606  }
15607}
15608function UserProfileComponent_Conditional_6_Template(rf, ctx) {
15609  if (rf & 1) {
15610    \u0275\u0275element(0, "ngx-skeleton-loader", 10);
15611  }
15612  if (rf & 2) {
15613    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c75));
15614  }
15615}
15616function UserProfileComponent_Conditional_7_For_1_Template(rf, ctx) {
15617  if (rf & 1) {
15618    \u0275\u0275element(0, "nmfta-data-panel", 23);
15619  }
15620  if (rf & 2) {
15621    const field_r3 = ctx.$implicit;
15622    const ctx_r0 = \u0275\u0275nextContext(2);
15623    \u0275\u0275property("propertyName", field_r3.propertyName)("propertyValue", field_r3.propertyValue)("control", ctx_r0.accountProfileForm.get(field_r3.controlName));
15624  }
15625}
15626function UserProfileComponent_Conditional_7_Template(rf, ctx) {
15627  if (rf & 1) {
15628    \u0275\u0275repeaterCreate(0, UserProfileComponent_Conditional_7_For_1_Template, 1, 3, "nmfta-data-panel", 23, _forTrack06);
15629  }
15630  if (rf & 2) {
15631    const ctx_r0 = \u0275\u0275nextContext();
15632    \u0275\u0275repeater(ctx_r0.userDataFields$());
15633  }
15634}
15635function UserProfileComponent_Conditional_10_Template(rf, ctx) {
15636  if (rf & 1) {
15637    \u0275\u0275element(0, "ngx-skeleton-loader", 12);
15638  }
15639  if (rf & 2) {
15640    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c85));
15641  }
15642}
15643function UserProfileComponent_Conditional_11_Template(rf, ctx) {
15644  if (rf & 1) {
15645    \u0275\u0275element(0, "nmfta-data-panel", 24)(1, "nmfta-data-panel", 24);
15646  }
15647  if (rf & 2) {
15648    const ctx_r0 = \u0275\u0275nextContext();
15649    \u0275\u0275property("propertyName", "Account Type")("propertyValue", ctx_r0.user$().role)("fullLineDescription", "Managed by Customer Service Only")("control", ctx_r0.accountAccessForm.get("accountType"));
15650    \u0275\u0275advance();
15651    \u0275\u0275property("propertyName", "User Name")("propertyValue", ctx_r0.user$().email)("fullLineDescription", "All Admin users are followed by the badge icon with the letter A")("control", ctx_r0.accountAccessForm.get("userName"));
15652  }
15653}
15654function UserProfileComponent_Conditional_15_Template(rf, ctx) {
15655  if (rf & 1) {
15656    \u0275\u0275element(0, "ngx-skeleton-loader", 12);
15657  }
15658  if (rf & 2) {
15659    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c85));
15660  }
15661}
15662function UserProfileComponent_Conditional_16_For_1_Template(rf, ctx) {
15663  if (rf & 1) {
15664    \u0275\u0275element(0, "nmfta-data-panel", 25);
15665  }
15666  if (rf & 2) {
15667    const field_r4 = ctx.$implicit;
15668    const ctx_r0 = \u0275\u0275nextContext(2);
15669    \u0275\u0275property("propertyName", field_r4.propertyName)("propertyValue", field_r4.propertyValue)("fullLineDescription", field_r4.itemDescription)("isToggle", true)("control", ctx_r0.notificationsForm.get(field_r4.controlName));
15670  }
15671}
15672function UserProfileComponent_Conditional_16_Template(rf, ctx) {
15673  if (rf & 1) {
15674    \u0275\u0275repeaterCreate(0, UserProfileComponent_Conditional_16_For_1_Template, 1, 5, "nmfta-data-panel", 25, _forTrack06);
15675  }
15676  if (rf & 2) {
15677    const ctx_r0 = \u0275\u0275nextContext();
15678    \u0275\u0275repeater(ctx_r0.userNotifications$());
15679  }
15680}
15681function UserProfileComponent_Conditional_20_Template(rf, ctx) {
15682  if (rf & 1) {
15683    \u0275\u0275element(0, "ngx-skeleton-loader", 12);
15684  }
15685  if (rf & 2) {
15686    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c85));
15687  }
15688}
15689function UserProfileComponent_Conditional_21_For_1_Template(rf, ctx) {
15690  if (rf & 1) {
15691    \u0275\u0275element(0, "nmfta-data-panel", 25);
15692  }
15693  if (rf & 2) {
15694    const field_r5 = ctx.$implicit;
15695    const ctx_r0 = \u0275\u0275nextContext(2);
15696    \u0275\u0275property("propertyName", field_r5.propertyName)("propertyValue", field_r5.propertyValue)("fullLineDescription", field_r5.itemDescription)("isToggle", true)("control", ctx_r0.detailedSearchViewForm.get(field_r5.controlName));
15697  }
15698}
15699function UserProfileComponent_Conditional_21_Template(rf, ctx) {
15700  if (rf & 1) {
15701    \u0275\u0275repeaterCreate(0, UserProfileComponent_Conditional_21_For_1_Template, 1, 5, "nmfta-data-panel", 25, _forTrack06);
15702  }
15703  if (rf & 2) {
15704    const ctx_r0 = \u0275\u0275nextContext();
15705    \u0275\u0275repeater(ctx_r0.userDetailedSearchViewResults$());
15706  }
15707}
15708function UserProfileComponent_ng_template_22_For_15_Template(rf, ctx) {
15709  if (rf & 1) {
15710    const _r7 = \u0275\u0275getCurrentView();
15711    \u0275\u0275elementStart(0, "mat-option", 59);
15712    \u0275\u0275listener("onSelectionChange", function UserProfileComponent_ng_template_22_For_15_Template_mat_option_onSelectionChange_0_listener() {
15713      const company_r8 = \u0275\u0275restoreView(_r7).$implicit;
15714      const ctx_r0 = \u0275\u0275nextContext(2);
15715      return \u0275\u0275resetView(ctx_r0.onSelectedCompany(company_r8.companyId));
15716    });
15717    \u0275\u0275text(1);
15718    \u0275\u0275elementEnd();
15719  }
15720  if (rf & 2) {
15721    const company_r8 = ctx.$implicit;
15722    \u0275\u0275property("value", company_r8.companyName);
15723    \u0275\u0275advance();
15724    \u0275\u0275textInterpolate3(" ", company_r8.companyName, " [", company_r8.city, ", ", company_r8.state, "] ");
15725  }
15726}
15727function UserProfileComponent_ng_template_22_For_35_Template(rf, ctx) {
15728  if (rf & 1) {
15729    \u0275\u0275elementStart(0, "mat-option", 36);
15730    \u0275\u0275text(1);
15731    \u0275\u0275elementEnd();
15732  }
15733  if (rf & 2) {
15734    const country_r9 = ctx.$implicit;
15735    \u0275\u0275property("value", country_r9.umCountryCode);
15736    \u0275\u0275advance();
15737    \u0275\u0275textInterpolate1(" ", country_r9.umCountryName, " ");
15738  }
15739}
15740function UserProfileComponent_ng_template_22_For_58_Template(rf, ctx) {
15741  if (rf & 1) {
15742    \u0275\u0275elementStart(0, "mat-option", 36);
15743    \u0275\u0275text(1);
15744    \u0275\u0275elementEnd();
15745  }
15746  if (rf & 2) {
15747    const timezone_r10 = ctx.$implicit;
15748    \u0275\u0275property("value", timezone_r10.ianaId);
15749    \u0275\u0275advance();
15750    \u0275\u0275textInterpolate1(" ", timezone_r10.displayName, " ");
15751  }
15752}
15753function UserProfileComponent_ng_template_22_Template(rf, ctx) {
15754  if (rf & 1) {
15755    const _r6 = \u0275\u0275getCurrentView();
15756    \u0275\u0275elementStart(0, "form", 26)(1, "div", 27)(2, "div", 6)(3, "div", 28)(4, "nmfta-input-wrapper", 29);
15757    \u0275\u0275element(5, "input", 30);
15758    \u0275\u0275elementEnd()();
15759    \u0275\u0275elementStart(6, "div", 28)(7, "nmfta-input-wrapper", 31);
15760    \u0275\u0275element(8, "input", 32);
15761    \u0275\u0275elementEnd()();
15762    \u0275\u0275elementStart(9, "div", 33)(10, "nmfta-input-wrapper", 34);
15763    \u0275\u0275element(11, "input", 35);
15764    \u0275\u0275elementStart(12, "mat-autocomplete", null, 5);
15765    \u0275\u0275repeaterCreate(14, UserProfileComponent_ng_template_22_For_15_Template, 2, 4, "mat-option", 36, \u0275\u0275repeaterTrackByIdentity);
15766    \u0275\u0275elementEnd()()();
15767    \u0275\u0275elementStart(16, "div", 28)(17, "nmfta-input-wrapper", 37);
15768    \u0275\u0275element(18, "input", 38);
15769    \u0275\u0275elementEnd()();
15770    \u0275\u0275elementStart(19, "div", 28)(20, "nmfta-input-wrapper", 39);
15771    \u0275\u0275element(21, "input", 40);
15772    \u0275\u0275elementEnd()();
15773    \u0275\u0275elementStart(22, "div", 41)(23, "nmfta-input-wrapper", 42);
15774    \u0275\u0275element(24, "input", 43);
15775    \u0275\u0275elementEnd()();
15776    \u0275\u0275elementStart(25, "div", 44)(26, "nmfta-input-wrapper", 45);
15777    \u0275\u0275element(27, "input", 46);
15778    \u0275\u0275elementEnd()();
15779    \u0275\u0275elementStart(28, "div", 47)(29, "mat-checkbox", 48);
15780    \u0275\u0275listener("change", function UserProfileComponent_ng_template_22_Template_mat_checkbox_change_29_listener($event) {
15781      \u0275\u0275restoreView(_r6);
15782      const ctx_r0 = \u0275\u0275nextContext();
15783      return \u0275\u0275resetView(ctx_r0.onUseCompanyAddress($event));
15784    });
15785    \u0275\u0275text(30, " Use Company Address ");
15786    \u0275\u0275elementEnd()();
15787    \u0275\u0275elementStart(31, "div", 44)(32, "nmfta-input-wrapper", 49)(33, "mat-select", 50);
15788    \u0275\u0275repeaterCreate(34, UserProfileComponent_ng_template_22_For_35_Template, 2, 2, "mat-option", 36, \u0275\u0275repeaterTrackByIndex);
15789    \u0275\u0275elementEnd()()();
15790    \u0275\u0275elementStart(36, "div", 41)(37, "nmfta-input-wrapper", 49);
15791    \u0275\u0275element(38, "input", 51);
15792    \u0275\u0275pipe(39, "translate");
15793    \u0275\u0275elementEnd()();
15794    \u0275\u0275elementStart(40, "div", 41)(41, "nmfta-input-wrapper", 49);
15795    \u0275\u0275element(42, "input", 52);
15796    \u0275\u0275pipe(43, "translate");
15797    \u0275\u0275elementEnd()();
15798    \u0275\u0275elementStart(44, "div", 44)(45, "nmfta-input-wrapper", 49);
15799    \u0275\u0275element(46, "input", 53);
15800    \u0275\u0275pipe(47, "translate");
15801    \u0275\u0275elementEnd()();
15802    \u0275\u0275elementStart(48, "div", 33)(49, "nmfta-input-wrapper", 49);
15803    \u0275\u0275element(50, "input", 54);
15804    \u0275\u0275pipe(51, "translate");
15805    \u0275\u0275elementEnd()();
15806    \u0275\u0275elementStart(52, "div", 33)(53, "nmfta-input-wrapper", 49)(54, "mat-select", 55)(55, "mat-option", 36
15806);
15807    \u0275\u0275text(56, "(GMT+00:00) UTC ");
15808    \u0275\u0275elementEnd();
15809    \u0275\u0275repeaterCreate(57, UserProfileComponent_ng_template_22_For_58_Template, 2, 2, "mat-option", 36, \u0275\u0275repeaterTrackByIndex);
15810    \u0275\u0275elementEnd()()()()();
15811    \u0275\u0275elementStart(59, "div", 56)(60, "nmfta-button", 57);
15812    \u0275\u0275listener("buttonClick", function UserProfileComponent_ng_template_22_Template_nmfta_button_buttonClick_60_listener() {
15813      \u0275\u0275restoreView(_r6);
15814      const ctx_r0 = \u0275\u0275nextContext();
15815      return \u0275\u0275resetView(ctx_r0.closeEditDialog());
15816    });
15817    \u0275\u0275text(61, " Cancel ");
15818    \u0275\u0275elementEnd();
15819    \u0275\u0275elementStart(62, "nmfta-button", 58);
15820    \u0275\u0275listener("buttonClick", function UserProfileComponent_ng_template_22_Template_nmfta_button_buttonClick_62_listener() {
15821      \u0275\u0275restoreView(_r6);
15822      const ctx_r0 = \u0275\u0275nextContext();
15823      return \u0275\u0275resetView(ctx_r0.saveUserInfo());
15824    });
15825    \u0275\u0275text(63, " Save ");
15826    \u0275\u0275elementEnd()()();
15827  }
15828  if (rf & 2) {
15829    let tmp_28_0;
15830    let tmp_29_0;
15831    const auto_r11 = \u0275\u0275reference(13);
15832    const ctx_r0 = \u0275\u0275nextContext();
15833    \u0275\u0275property("formGroup", ctx_r0.accountProfileForm);
15834    \u0275\u0275advance(5);
15835    \u0275\u0275property("id", "firstName")("type", "text");
15836    \u0275\u0275advance(3);
15837    \u0275\u0275property("id", "lastName")("type", "text");
15838    \u0275\u0275advance(3);
15839    \u0275\u0275property("id", "company")("type", "text")("matAutocomplete", auto_r11);
15840    \u0275\u0275advance(3);
15841    \u0275\u0275repeater(ctx_r0.adminManageUsersStore.companyList());
15842    \u0275\u0275advance(4);
15843    \u0275\u0275property("id", "department")("type", "text");
15844    \u0275\u0275advance(3);
15845    \u0275\u0275property("id", "title")("type", "text");
15846    \u0275\u0275advance(3);
15847    \u0275\u0275property("id", "email")("type", "text");
15848    \u0275\u0275advance(3);
15849    \u0275\u0275property("id", "phone")("type", "text");
15850    \u0275\u0275advance(5);
15851    \u0275\u0275property("label", "Generic_Country");
15852    \u0275\u0275advance(2);
15853    \u0275\u0275repeater(ctx_r0.countries$());
15854    \u0275\u0275advance(3);
15855    \u0275\u0275property("label", "Generic_City");
15856    \u0275\u0275advance();
15857    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(39, 32, "Generic_City"));
15858    \u0275\u0275advance(3);
15859    \u0275\u0275property("label", (tmp_28_0 = ctx_r0.accountProfileForm.get("stateLabelText")) == null ? null : tmp_28_0.value);
15860    \u0275\u0275advance();
15861    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(43, 34, (tmp_29_0 = ctx_r0.accountProfileForm.get("stateLabelText")) == null ? null : tmp_29_0.value)));
15862    \u0275\u0275attribute("maxLength", ctx_r0.countryService.isAddressRequired ? 2 : null);
15863    \u0275\u0275advance(3);
15864    \u0275\u0275property("label", "Generic_PostalCode");
15865    \u0275\u0275advance();
15866    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(47, 36, "Generic_PostalCode"));
15867    \u0275\u0275advance(3);
15868    \u0275\u0275property("label", "Generic_AddressLine");
15869    \u0275\u0275advance();
15870    \u0275\u0275property("placeholder", \u0275\u0275pipeBind1(51, 38, "Generic_AddressLine"));
15871    \u0275\u0275advance(3);
15872    \u0275\u0275property("label", "Generic_Timezone");
15873    \u0275\u0275advance(2);
15874    \u0275\u0275property("value", "UTC");
15875    \u0275\u0275advance(2);
15876    \u0275\u0275repeater(ctx_r0.timeZones);
15877    \u0275\u0275advance(3);
15878    \u0275\u0275property("styleType", "outlined");
15879    \u0275\u0275advance(2);
15880    \u0275\u0275property("styleType", "contained")("disabled", ctx_r0.accountProfileForm.invalid);
15881  }
15882}
15883function UserProfileComponent_ng_template_24_Conditional_14_Template(rf, ctx) {
15884  if (rf & 1) {
15885    const _r13 = \u0275\u0275getCurrentView();
15886    \u0275\u0275elementStart(0, "nmfta-button", 58);
15887    \u0275\u0275listener("buttonClick", function UserProfileComponent_ng_template_24_Conditional_14_Template_nmfta_button_buttonClick_0_listener() {
15888      \u0275\u0275restoreView(_r13);
15889      const ctx_r0 = \u0275\u0275nextContext(2);
15890      return \u0275\u0275resetView(ctx_r0.assignUserLicense());
15891    });
15892    \u0275\u0275text(1, " Assign License ");
15893    \u0275\u0275elementEnd();
15894  }
15895  if (rf & 2) {
15896    const ctx_r0 = \u0275\u0275nextContext(2);
15897    \u0275\u0275property("styleType", "contained")("disabled", ctx_r0.disableAssignButton);
15898  }
15899}
15900function UserProfileComponent_ng_template_24_Conditional_15_Template(rf, ctx) {
15901  if (rf & 1) {
15902    const _r14 = \u0275\u0275getCurrentView();
15903    \u0275\u0275elementStart(0, "nmfta-button", 66);
15904    \u0275\u0275listener("buttonClick", function UserProfileComponent_ng_template_24_Conditional_15_Template_nmfta_button_buttonClick_0_listener() {
15905      \u0275\u0275restoreView(_r14);
15906      const ctx_r0 = \u0275\u0275nextContext(2);
15907      return \u0275\u0275resetView(ctx_r0.unassignUserLicense());
15908    });
15909    \u0275\u0275text(1, " Unassign License ");
15910    \u0275\u0275elementEnd();
15911  }
15912  if (rf & 2) {
15913    const ctx_r0 = \u0275\u0275nextContext(2);
15914    \u0275\u0275property("styleType", "contained")("disabled", ctx_r0.disableAssignButton)("color", "error");
15915  }
15916}
15917function UserProfileComponent_ng_template_24_Template(rf, ctx) {
15918  if (rf & 1) {
15919    const _r12 = \u0275\u0275getCurrentView();
15920    \u0275\u0275elementStart(0, "div", 60)(1, "div", 61)(2, "p");
15921    \u0275\u0275text(3);
15922    \u0275\u0275pipe(4, "translate");
15923    \u0275\u0275elementEnd();
15924    \u0275\u0275elementStart(5, "nmfta-alert", 62);
15925    \u0275\u0275text(6);
15926    \u0275\u0275pipe(7, "translate");
15927    \u0275\u0275elementEnd();
15928    \u0275\u0275element(8, "nmfta-data-panel", 63)(9, "nmfta-data-panel", 63)(10, "nmfta-data-panel", 63);
15929    \u0275\u0275elementEnd();
15930    \u0275\u0275elementStart(11, "div", 56)(12, "nmfta-button", 57);
15931    \u0275\u0275listener("buttonClick", function UserProfileComponent_ng_template_24_Template_nmfta_button_buttonClick_12_listener() {
15932      \u0275\u0275restoreView(_r12);
15933      const ctx_r0 = \u0275\u0275nextContext();
15934      return \u0275\u0275resetView(ctx_r0.closeDialog());
15935    });
15936    \u0275\u0275text(13, " Cancel ");
15937    \u0275\u0275elementEnd();
15938    \u0275\u0275conditionalCreate(14, UserProfileComponent_ng_template_24_Conditional_14_Template, 2, 2, "nmfta-button", 64)(15, UserProfileComponent_ng_template_24_Conditional_15_Template, 2, 3, "nmfta-button", 65);
15939    \u0275\u0275elementEnd()();
15940  }
15941  if (rf & 2) {
15942    const ctx_r0 = \u0275\u0275nextContext();
15943    \u0275\u0275advance(3);
15944    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 11, ctx_r0.licenseDescription));
15945    \u0275\u0275advance(2);
15946    \u0275\u0275property("color", ctx_r0.licenseAlertColor);
15947    \u0275\u0275advance();
15948    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(7, 13, ctx_r0.licenseMessage));
15949    \u0275\u0275advance(2);
15950    \u0275\u0275property("propertyName", "Company Name")("propertyValue", ctx_r0.companyLicenseInfo$().companyName);
15951    \u0275\u0275advance();
15952    \u0275\u0275property("propertyName", "Total Company Licenses Purchased")("propertyValue", ctx_r0.companyLicenseInfo$().totalLicenses.toString());
15953    \u0275\u0275advance();
15954    \u0275\u0275property("propertyName", "Company Licenses Assigned")("propertyValue", ctx_r0.companyLicenseInfo$().assignedLicenseCount.toString());
15955    \u0275\u0275advance(2);
15956    \u0275\u0275property("styleType", "outlined");
15957    \u0275\u0275advance(2);
15958    \u0275\u0275conditional(!ctx_r0.user$().isLicensed ? 14 : 15);
15959  }
15960}
15961function UserProfileComponent_ng_template_26_For_5_Template(rf, ctx) {
15962  if (rf & 1) {
15963    \u0275\u0275elementStart(0, "mat-option", 36);
15964    \u0275\u0275text(1);
15965    \u0275\u0275elementEnd();
15966  }
15967  if (rf & 2) {
15968    const role_r16 = ctx.$implicit;
15969    \u0275\u0275property("value", role_r16);
15970    \u0275\u0275advance();
15971    \u0275\u0275textInterpolate1(" ", role_r16, " ");
15972  }
15973}
15974function UserProfileComponent_ng_template_26_Template(rf, ctx) {
15975  if (rf & 1) {
15976    const _r15 = \u0275\u0275getCurrentView();
15977    \u0275\u0275elementStart(0, "div", 26)(1, "div", 27)(2, "nmfta-input-wrapper", 67)(3, "mat-select", 68);
15978    \u0275\u0275repeaterCreate(4, UserProfileComponent_ng_template_26_For_5_Template, 2, 2, "mat-option", 36, \u0275\u0275repeaterTrackByIdentity);
15979    \u0275\u0275elementEnd()()();
15980    \u0275\u0275elementStart(6, "div", 56)(7, "nmfta-button", 57);
15981    \u0275\u0275listener("buttonClick", function UserProfileComponent_ng_template_26_Template_nmfta_button_buttonClick_7_listener() {
15982      \u0275\u0275restoreView(_r15);
15983      const ctx_r0 = \u0275\u0275nextContext();
15984      return \u0275\u0275resetView(ctx_r0.closeDialog());
15985    });
15986    \u0275\u0275text(8, " Cancel ");
15987    \u0275\u0275elementEnd();
15988    \u0275\u0275elementStart(9, "nmfta-button", 58);
15989    \u0275\u0275listener("buttonClick", function UserProfileComponent_ng_template_26_Template_nmfta_button_buttonClick_9_listener() {
15990      \u0275\u0275restoreView(_r15);
15991      const ctx_r0 = \u0275\u0275nextContext();
15992      return \u0275\u0275resetView(ctx_r0.updateRole());
15993    });
15994    \u0275\u0275text(10, " Save ");
15995    \u0275\u0275elementEnd()()();
15996  }
15997  if (rf & 2) {
15998    const ctx_r0 = \u0275\u0275nextContext();
15999    \u0275\u0275property("formGroup", ctx_r0.changeUserRole);
16000    \u0275\u0275advance(4);
16001    \u0275\u0275repeater(ctx_r0.roles);
16002    \u0275\u0275advance(3);
16003    \u0275\u0275property("styleType", "outlined");
16004    \u0275\u0275advance(2);
16005    \u0275\u0275property("styleType", "contained")("disabled", ctx_r0.roleChanged());
16006  }
16007}
16008function UserProfileComponent_ng_template_28_Conditional_38_Template(rf, ctx) {
16009  if (rf & 1) {
16010    \u0275\u0275elementStart(0, "div", 85)(1, "nmfta-alert", 88);
16011    \u0275\u0275text(2);
16012    \u0275\u0275pipe(3, "translate");
16013    \u0275\u0275elementEnd()();
16014  }
16015  if (rf & 2) {
16016    const ctx_r0 = \u0275\u0275nextContext(2);
16017    \u0275\u0275advance();
16018    \u0275\u0275property("color", "success");
16019    \u0275\u0275advance();
16020    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind2(3, 2, "COMPANY_SETTINGS.Activation_Link_Success", \u0275\u0275pureFunction4(5, _c92, ctx_r0.firstName, ctx_r0.lastName, ctx_r0.email, ctx_r0.today)), " ");
16021  }
16022}
16023function UserProfileComponent_ng_template_28_Template(rf, ctx) {
16024  if (rf & 1) {
16025    const _r17 = \u0275\u0275getCurrentView();
16026    \u0275\u0275elementStart(0, "div", 69)(1, "mat-tab-group", 70)(2, "mat-tab", 49);
16027    \u0275\u0275pipe(3, "translate");
16028    \u0275\u0275elementStart(4, "div", 71)(5, "div", 72)(6, "nmfta-alert");
16029    \u0275\u0275text(7);
16030    \u0275\u0275pipe(8, "translate");
16031    \u0275\u0275elementEnd()();
16032    \u0275\u0275elementStart(9, "div", 73)(10, "nmfta-user-group-selector", 74);
16033    \u0275\u0275listener("userAction", function UserProfileComponent_ng_template_28_Template_nmfta_user_group_selector_userAction_10_listener($event) {
16034      \u0275\u0275restoreView(_r17);
16035      const ctx_r0 = \u0275\u0275nextContext();
16036      return \u0275\u0275resetView(ctx_r0.handleUserAdminAction($event));
16037    });
16038    \u0275\u0275elementEnd()()()();
16039    \u0275\u0275elementStart(11, "mat-tab", 49);
16040    \u0275\u0275pipe(12, "translate");
16041    \u0275\u0275elementStart(13, "div", 75)(14, "div", 76)(15, "nmfta-alert");
16042    \u0275\u0275text(16);
16043    \u0275\u0275pipe(17, "translate");
16044    \u0275\u0275elementEnd()();
16045    \u0275\u0275elementStart(18, "div", 77)(19, "form", 78)(20, "div", 6)(21, "div", 28)(22, "nmfta-input-wrapper", 29);
16046    \u0275\u0275element(23, "input", 79);
16047    \u0275\u0275elementEnd()();
16048    \u0275\u0275elementStart(24, "div", 28)(25, "nmfta-input-wrapper", 31);
16049    \u0275\u0275element(26, "input", 80);
16050    \u0275\u0275elementEnd()()();
16051    \u0275\u0275elementStart(27, "div", 6)(28, "div", 41)(29, "nmfta-input-wrapper", 42);
16052    \u0275\u0275element(30, "input", 81);
16053    \u0275\u0275elementEnd()();
16054    \u0275\u0275elementStart(31, "div", 44)(32, "nmfta-input-wrapper", 82);
16055    \u0275\u0275element(33, "input", 83);
16056    \u0275\u0275elementEnd()()();
16057    \u0275\u0275elementStart(34, "div", 6)(35, "div", 33)(36, "nmfta-input-wrapper", 39);
16058    \u0275\u0275element(37, "input", 84);
16059    \u0275\u0275elementEnd()()()();
16060    \u0275\u0275conditionalCreate(38, UserProfileComponent_ng_template_28_Conditional_38_Template, 4, 10, "div", 85);
16061    \u0275\u0275elementEnd();
16062    \u0275\u0275elementStart(39, "div", 86)(40, "nmfta-button", 87);
16063    \u0275\u0275listener("buttonClick", function UserProfileComponent_ng_template_28_Template_nmfta_button_buttonClick_40_listener() {
16064      \u0275\u0275restoreView(_r17);
16065      const ctx_r0 = \u0275\u0275nextContext();
16066      return \u0275\u0275resetView(ctx_r0.createNewCompanyAdmin());
16067    });
16068    \u0275\u0275text(41);
16069    \u0275\u0275pipe(42, "translate");
16070    \u0275\u0275elementEnd()()()()()();
16071  }
16072  if (rf & 2) {
16073    const ctx_r0 = \u0275\u0275nextContext();
16074    \u0275\u0275advance(2);
16075    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(3, 16, "COMPANY_SETTINGS.Assign_to_an_Existing_User")));
16076    \u0275\u0275advance(5);
16077    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(8, 18, "COMPANY_SETTINGS.Add_Company_Admin_Message"), " ");
16078    \u0275\u0275advance(3);
16079    \u0275\u0275property("companyId", ctx_r0.company$().companyId)("ExternalUsersList", ctx_r0.companyAdmins$)("Exter
16079nalUsersLoadingStatus", ctx_r0.submissionStatus$)("isAdmin", true)("forPrimaryAdminAdd", true);
16080    \u0275\u0275advance();
16081    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(12, 20, "COMPANY_SETTINGS.Assign_to_A_New_User")));
16082    \u0275\u0275advance(5);
16083    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(17, 22, "COMPANY_SETTINGS.Add_Company_Admin_Message"), " ");
16084    \u0275\u0275advance(3);
16085    \u0275\u0275property("formGroup", ctx_r0.companyAdminForm);
16086    \u0275\u0275advance(19);
16087    \u0275\u0275conditional(ctx_r0.showAlertCompanyAdmin ? 38 : -1);
16088    \u0275\u0275advance(2);
16089    \u0275\u0275property("disabled", ctx_r0.companyAdminForm.invalid)("isLoading", ctx_r0.updateUserStatus$() === "loading");
16090    \u0275\u0275advance();
16091    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(42, 24, "COMPANY_SETTINGS.Create_Company_Admin"), " ");
16092  }
16093}
16094function UserProfileComponent_ng_template_30_Template(rf, ctx) {
16095  if (rf & 1) {
16096    \u0275\u0275elementStart(0, "div", 89)(1, "div", 90)(2, "span");
16097    \u0275\u0275text(3);
16098    \u0275\u0275pipe(4, "translate");
16099    \u0275\u0275elementEnd()()();
16100  }
16101  if (rf & 2) {
16102    const ctx_r0 = \u0275\u0275nextContext();
16103    \u0275\u0275advance(3);
16104    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 1, ctx_r0.notificationsMessage));
16105  }
16106}
16107var UserProfileComponent = class _UserProfileComponent {
16108  countryService;
16109  route;
16110  router;
16111  editAccountProfile;
16112  userLicenseAssignment;
16113  editUserRole;
16114  addCompanyAdmins;
16115  unableToUpdateNotifications;
16116  commonStore = inject(CommonStore);
16117  userStore = inject(UserStore);
16118  userService = inject(UserService);
16119  companyStore = inject(CompanyStore);
16120  adminManageUsersStore = inject(AdminManageUsersStore);
16121  dialog = inject(MatDialog);
16122  formBuilder = inject(FormBuilder);
16123  timezoneService = inject(TimezoneService);
16124  accountProfileForm;
16125  notificationsForm;
16126  detailedSearchViewForm;
16127  synonymsForm;
16128  accountAccessForm;
16129  notificationFormFields = notificationFormFields;
16130  disabledAddressFields;
16131  isEditing = signal(false, ...ngDevMode ? [{ debugName: "isEditing" }] : []);
16132  roles = Object.values(Role).filter((role) => role !== Role.NONE);
16133  submissionStatus$ = this.companyStore.submissionStatus;
16134  updateUserStatus$ = this.adminManageUsersStore.updateUserStatus;
16135  companyLicenseInfo$ = this.adminManageUsersStore.licenseInfo;
16136  company$ = this.adminManageUsersStore.company;
16137  companyUsers$ = this.adminManageUsersStore.company.companyUsers;
16138  companyAdmins$ = this.adminManageUsersStore.company.companyAdmins;
16139  countries$ = this.commonStore.countries;
16140  dialogRef;
16141  primaryUserDialogRef;
16142  addPrimaryUserDialogRef;
16143  timeZones = [];
16144  selectedCompanyId;
16145  licenseMessage;
16146  notificationsMessage;
16147  licenseAlertColor;
16148  disableAssignButton = false;
16149  alertMessageCompanyAdmin = "";
16150  showAlertCompanyAdmin = false;
16151  licenseDescription;
16152  firstName;
16153  lastName;
16154  email;
16155  today = (/* @__PURE__ */ new Date()).toLocaleDateString();
16156  companyAdminForm = new FormGroup({
16157    firstName: new FormControl("", Validators.required),
16158    lastName: new FormControl("", Validators.required),
16159    email: new FormControl("", [
16160      Validators.required,
16161      Validators.email,
16162      Validators.pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$")
16163    ], [emailExistsValidator(this.userService)]),
16164    phone: new FormControl(""),
16165    title: new FormControl("")
16166  });
16167  get store() {
16168    return this.isEditing() ? this.adminManageUsersStore : this.userStore;
16169  }
16170  userLoading$ = computed(() => {
16171    return this.isEditing() ? this.adminManageUsersStore.submissionStatus() == ResponseStatus.LOADING : this.userStore.userStatus() == ResponseStatus.LOADING;
16172  }, ...ngDevMode ? [{ debugName: "userLoading$" }] : []);
16173  user$ = computed(() => {
16174    return this.isEditing() ? this.adminManageUsersStore.userToEdit() : this.userStore.user();
16175  }, ...ngDevMode ? [{ debugName: "user$" }] : []);
16176  userDataFields$ = computed(() => {
16177    return this.isEditing() ? this.adminManageUsersStore.userDataFields() : this.userStore.userDataFields();
16178  }, ...ngDevMode ? [{ debugName: "userDataFields$" }] : []);
16179  userNotifications$ = computed(() => {
16180    return this.isEditing() ? this.adminManageUsersStore.userNotifications() : this.userStore.userNotifications();
16181  }, ...ngDevMode ? [{ debugName: "userNotifications$" }] : []);
16182  userDetailedSearchViewResults$ = computed(() => {
16183    return this.isEditing() ? this.adminManageUsersStore.userDetailedSearchViewResults() : this.userStore.userDetailedSearchViewResults();
16184  }, ...ngDevMode ? [{ debugName: "userDetailedSearchViewResults$" }] : []);
16185  constructor(countryService, route, router) {
16186    this.countryService = countryService;
16187    this.route = route;
16188    this.router = router;
16189    this.commonStore.getCountries();
16190    this.initializeMyDetailsForm();
16191  }
16192  changeUserRole = new FormGroup({
16193    role: new FormControl(null)
16194  });
16195  ngOnInit() {
16196    this.loadTimeZones();
16197    this.route.queryParams.subscribe((params) => {
16198      if (params["id"]) {
16199        this.isEditing.set(true);
16200        this.adminManageUsersStore.getUserInfo(params["id"]).then((response) => {
16201          this.initializeMyDetailsForm();
16202          this.adminManageUsersStore.setUserCompany(response.data?.companyId);
16203        });
16204      } else {
16205        this.isEditing.set(false);
16206        this.initializeMyDetailsForm();
16207      }
16208    });
16209  }
16210  myDetailsHeaderActions = [
16211    {
16212      id: "1",
16213      label: "Generic_Edit",
16214      styleType: "light",
16215      onClick: () => {
16216        this.editMyDetails();
16217      }
16218    }
16219  ];
16220  accountAccessHeaderActions() {
16221    const buttons = [];
16222    const editRoleButton = {
16223      id: "2",
16224      label: "Edit Role",
16225      styleType: "light",
16226      disabled: !this.userStore.canEditNmftaUserRole() && this.user$().isNmfta,
16227      //NMFTA Customer Service can only edit roles of non-nmfta users, CSM and SA can edit all roles
16228      onClick: () => {
16229        this.changeUserRole.get("role")?.setValue(this.user$()?.role);
16230        if (!this.user$().isNmfta) {
16231          this.roles = [Role.CUSTOMER, Role.ACCOUNT_MANAGER, Role.COMPANY_ADMIN];
16232        }
16233        this.editRole();
16234      }
16235    };
16236    const resetPasswordButton = {
16237      id: "1",
16238      label: "Reset Password",
16239      disabled: this.user$().isNmfta,
16240      //NMFTA users cannot reset their password
16241      styleType: "light",
16242      onClick: () => {
16243        this.resetPassword();
16244      }
16245    };
16246    buttons.push(resetPasswordButton);
16247    if (this.isEditing()) {
16248      buttons.push(editRoleButton);
16249    }
16250    return buttons;
16251  }
16252  openDialog() {
16253    this.dialogRef.afterOpened().subscribe(() => {
16254      const instance = this.dialogRef.componentInstance;
16255      const contentInstance = instance.contentComponentRef.instance;
16256      if (contentInstance instanceof ResetPasswordModalContainerComponent) {
16257        contentInstance.closeModal.subscribe(() => {
16258          this.dialogRef.close();
16259        });
16260      }
16261    });
16262  }
16263  initializeMyDetailsForm() {
16264    this.accountProfileForm = this.formBuilder.group({
16265      firstName: [this.user$().firstName, [Validators.required, noWhiteSpaces]],
16266      lastName: [this.user$().lastName, [Validators.required, noWhiteSpaces]],
16267      company: [this.user$().companyName, noWhiteSpaces],
16268      department: [this.user$().department, [Validators.required, noWhiteSpaces]],
16269      title: [this.user$().title, [Validators.required, noWhiteSpaces]],
16270      address: [this.user$().address, [Validators.required, noWhiteSpaces, specialCharactersValidator]],
16271      email: [this.user$().email],
16272      phone: [this.user$().phone, [Validators.required, phoneValidator]],
16273      stateLabelText: ["Generic_StateIntlLabel"],
16274      state: [this.user$().state, noWhiteSpaces],
16275      postalCode: [this.user$().postalCode, noWhiteSpaces],
16276      city: [this.user$().city, noWhiteSpaces],
16277      country: [this.user$().country],
16278      companyAddressCheckbox: [this.user$().usingCompanyAddress],
16279      timezone: [this.user$().timezone]
16280    });
16281    this.notifications();
16282    this.detailedSearchView();
16283    this.accountAccessForm = this.formBuilder.group({
16284      accountType: [this.user$().role],
16285      userName: [this.user$().email]
16286    });
16287    this.countryService.updateAddressRequiredFields(this.accountProfileForm);
16288  }
16289  resetPassword() {
16290    let user = {
16291      userId: this.user$().userId,
16292      companyId: this.user$().companyId,
16293      email: this.user$().email
16294    };
16295    this.dialogRef = this.dialog.open(DialogComponent, {
16296      width: "530px",
16297      maxHeight: "135px",
16298      data: {
16299        title: "Generic_Reset_Password",
16300        icon: "key_outline",
16301        content: ResetPasswordModalContainerComponent,
16302        dataForComponent: {
16303          companyUser: user,
16304          namespace: "USER_PROFILE"
16305        }
16306      }
16307    });
16308    this.openDialog();
16309  }
16310  notifications() {
16311    let originalValues = {
16312      emailNotification: this.user$().emailNotification,
16313      onlineNotification: this.user$().onlineNotification
16314    };
16315    this.notificationsForm = this.formBuilder.group({
16316      emailNotification: [this.user$().emailNotification],
16317      onlineNotification: [this.user$().onlineNotification]
16318    });
16319    this.notificationsForm.valueChanges.subscribe((notifications) => {
16320      if (!notifications.emailNotification && !notifications.onlineNotification) {
16321        this.notificationsMessage = !originalValues.emailNotification && originalValues.onlineNotification ? "USER_PROFILE.Unable_To_Update_Notifications_1" : "USER_PROFILE.Unable_To_Update_Notifications_2";
16322        const dialogRef = this.dialog.open(DialogComponent, {
16323          width: "500px",
16324          data: {
16325            title: "Generic_Warning",
16326            icon: "warning",
16327            content: this.unableToUpdateNotifications,
16328            actions: [
16329              {
16330                id: "close",
16331                label: "Generic_Close",
16332                styleType: "contained",
16333                color: "accent",
16334                onClick: () => dialogRef.close()
16335              }
16336            ]
16337          }
16338        });
16339        this.notificationsForm.patchValue(originalValues, { emitEvent: false });
16340        return;
16341      }
16342      originalValues = __spreadValues({}, notifications);
16343      const notificationSettings = {
16344        userId: this.user$().userId,
16345        emailNotification: notifications.emailNotification,
16346        onlineNotification: notifications.onlineNotification
16347      };
16348      this.store.updateNotification(notificationSettings);
16349    });
16350  }
16351  detailedSearchView() {
16352    this.detailedSearchViewForm = this.formBuilder.group({
16353      compactView: [this.user$().isDetailedSearchCompact],
16354      expandedView: [!this.user$().isDetailedSearchCompact]
16355    });
16356    this.detailedSearchViewForm.valueChanges.subscribe((detailedSearchView) => {
16357      const prevCompact = this.user$().isDetailedSearchCompact;
16358      const prevExpanded = !this.user$().isDetailedSearchCompact;
16359      const compact = detailedSearchView.compactView;
16360      const expanded = detailedSearchView.expandedView;
16361      if (prevCompact && expanded || !prevExpanded && !compact) {
16362        this.detailedSearchViewForm.patchValue({ expandedView: true, compactView: false }, { emitEvent: false });
16363      }
16364      if (prevExpanded && compact || !prevCompact && !expanded) {
16365        this.detailedSearchViewForm.patchValue({ compactView: true, expandedView: false }, { emitEvent: false });
16366      }
16367      const userDetailedSearchViewRequest = {
16368        userId: this.user$().userId,
16369        isDetailedSearchCompact: this.detailedSearchViewForm.value.compactView
16370      };
16371      this.store.updateDetailedSearchView(userDetailedSearchViewRequest);
16372    });
16373  }
16374  saveUserInfo() {
16375    if (this.accountProfileForm.invalid)
16376      return;
16377    const userId = this.user$().userId;
16378    const isCompanyChanged = this.user$().companyId !== this.selectedCompanyId;
16379    if (isCompanyChanged) {
16380    }
16381    const companyId = this.selectedCompanyId ?? this.user$().companyId;
16382    const formData = this.accountProfileForm.get("companyAddressCheckbox")?.value ? __spreadProps(__spreadValues(__spreadValues({}, this.disabledAddressFields), this.accountProfileForm.value), {
16383      userId,
16384      companyId
16385    }) : __spreadProps(__spreadValues({}, this.accountProfileForm.value), {
16386      userId,
16387      companyId
16388    });
16389    this.store.updateUserInfo(formData, isCompanyChanged);
16390    this.dialogRef.close(null);
16391  }
16392  closeEditDialog() {
16393    this.accountProfileForm.reset();
16394    this.dialogRef.close();
16395  }
16396  editMyDetails() {
16397    this.accountProfileForm.patchValue({
16398      firstName: this.user$().firstName,
16399      lastName: this.user$().lastName,
16400      company: this.user$().companyName,
16401      department: this.user$().department,
16402      title: this.user$().title,
16403      address: this.user$().address,
16404      state: this.user$().state,
16405      postalCode: this.user$().postalCode,
16406      city: this.user$().city,
16407      country: this.user$().country,
16408      email: this.user$().email,
16409      phone: this.user$().phone,
16410      companyAddressCheckbox: this.user$().usingCompanyAddress,
16411      timezone: this.user$().timezone
16412    });
16413    this.selectedCompanyId = this.user$().companyId;
16414    this.isEditing() ? this.accountProfileForm.get("company")?.enable() : this.accountProfileForm.get("company")?.disable();
16415    this.accountProfileForm.get("email")?.disable();
16416    this.accountProfileForm.get("company")?.valueChanges.pipe(debounceTime(1e3)).subscribe((companyName) => {
16417      this.adminManageUsersStore.companysearch(companyName);
16418    });
16419    this.disableAddress();
16420    this.dialogRef = this.dialog.open(DialogComponent, {
16421      height: "auto",
16422      width: "42rem",
16423      disableClose: true,
16424      data: {
16425        title: "Generic_EditUser",
16426        icon: "edit",
16427        content: this.editAccountProfile,
16428        dataForComponent: this.accountProfileForm.value
16429      }
16430    });
16431  }
16432  onUseCompanyAddress($event) {
16433    if ($event && $event?.checked) {
16434      this.store.getCompanyAddress(this.selectedCompanyId).then((x) => {
16435        if (x.data) {
16436          this.accountProfileForm.patchValue({
16437            state: this.store.companyAddress().state,
16438            postalCode: this.store.companyAddress().postalCode,
16439            city: this.store.companyAddress().city,
16440            country: this.store.companyAddress().country,
16441            address: this.store.companyAddress().companyAddress
16442          });
16443          this.disableAddress();
16444        }
16445      });
16446    } else {
16447      this.resetCompanyAddress();
16448    }
16449  }
16450  disableAddress() {
16451    if (this.accountProfileForm.get("companyAddressCheckbox")?.value) {
16452      this.disabledAddressFields = __spreadValues({}, this.accountProfileForm.value);
16453      const addressControls = ["address", "city", "state", "country", "postalCode"];
16454      addressControls.forEach((control) => {
16455        this.accountProfileForm.get(control)?.disable();
16456      });
16457    }
16458  }
16459  resetCompanyAddress() {
16460    this.accountProfileForm.get("companyAddressCheckbox")?.setValue(false);
16461    this.accountProfileForm.patchValue({
16462      state: "",
16463      postalCode: "",
16464      city: "",
16465      country: "",
16466      address: ""
16467    });
16468    const addressControls = ["address", "city", "state", "country", "postalCode"];
16469    addressControls.forEach((control) => {
16470      this.accountProfileForm.get(control)?.enable();
16471    });
16472  }
16473  loadTimeZones() {
16474    this.timezoneService.getCompleteTimezoneList().then((timezones) => {
16475      this.timeZones = timezones;
16476    });
16477  }
16478  licenseAssignment() {
16479    this.adminManageUsersStore.getCompanyLicenseInfo(this.user$().companyId).then((response) => {
16480      if (response.success) {
16481        var availableLicense = this.companyLicenseInfo$().totalLicenses > this.companyLicenseInfo$().assignedLicenseCount;
16482        if (this.user$().role && restrictedExternalRoles.includes(this.user$().role)) {
16483          this.licenseMessage = "COMPANY_SETTINGS.Manage_License_Restricted_External_Roles_Unable_To_Manage";
16484          this.licenseAlertColor = "info";
16485          this.licenseDescription = this.user$().role === Role.COMPANY_ADMIN ? "COMPANY_SETTINGS.Manage_License_User_Has_License" : "COMPANY_SETTINGS.Manage_License_Unable_To_Assign_License_To_AccountManager";
16486          this.disableAssignButton = true;
16487        } else if (this.user$().role && restrictedInternalRoles.includes(this.user$().role) || this.user$().email?.includes("@nmfta.org")) {
16488          this.licenseAlertColor = "error";
16489          this.licenseDescription = "COMPANY_SETTINGS.Manage_License_Unable_To_Assign_License_To_Internal_Admins";
16490          this.disableAssignButton = true;
16491          this.licenseMessage = "Internal Admins cannot be assigned a license.";
16492        } else if (this.user$().isLicensed) {
16493          this.licenseMessage = "You can unassign it if needed. This will free up one license for the company.";
16494          this.licenseAlertColor = "info";
16495          this.licenseDescription = "This user currently has a license assigned from their company allocation.";
16496          this.disableAssignButton = false;
16497        } else {
16498          this.licenseDescription = "This user currently does not have a license assigned. Please review the company's license count below before proceeding.";
16499          if (availableLicense) {
16500            this.licenseMessage = "License available you can assign it to this user";
16501            this.licenseAlertColor = "success";
16502            this.disableAssignButton = false;
16503          } else {
16504            this.licenseMessage = "No licenses available to assign. To assign a new license, you must free up one by assigning an existing user or increase the license amount.";
16505            this.licenseAlertColor = "error";
16506            this.disableAssignButton = true;
16507          }
16508        }
16509        this.dialogRef = this.dialog.open(DialogComponent, {
16510          height: "auto",
16511          width: "42rem",
16512          maxWidth: "42rem",
16513          maxHeight: "45.625rem",
16514          data: {
16515            title: "License Assignment",
16516            icon: "workspace_premium",
16517            content: this.userLicenseAssignment,
16518            dataForComponent: null
16519          }
16520        });
16521      }
16522    });
16523  }
16524  deleteUser() {
16525    this.dialogRef = this.dialog.open(DialogComponent, {
16526      width: "530px",
16527      data: {
16528        title: "Delete User",
16529        icon: "delete",
16530        description: "",
16531        content: "",
16532        message: "Are you sure you want to delete this user from this company? This will result in the user losing access to ClassIT+ and cannot be undone. If they have a license assigned, it will be removed.",
16533        actions: [
16534          {
16535            id: "cancel",
16536            label: "Generic_Cancel",
16537            styleType: "outlined",
16538            onClick: () => this.dialogRef.close()
16539          },
16540          {
16541            id: "share_off",
16542            label: "Generic_Delete",
16543            styleType: "contained",
16544            color: "error",
16545            onClick: () => __async(this, null, function* () {
16546              const email = this.user$().email ?? "";
16547              this.adminManageUsersStore.deleteUser(email).then((response) => {
16548                if (response.success) {
16549                  this.dialogRef.close();
16550                  this.router.navigate(["admin/users"]);
16551                }
16552              });
16553            })
16554          }
16555        ]
16556      }
16557    });
16558  }
16559  editRole() {
16560    this.dialogRef = this.dialog.open(DialogComponent, {
16561      height: "auto",
16562      width: "42rem",
16563      maxWidth: "42rem",
16564      maxHeight: "45.625rem",
16565      data: {
16566        title: "Edit Role",
16567        icon: "edit",
16568        description: "",
16569        content: this.editUserRole,
16570        dataForComponent: null
16571      }
16572    });
16573  }
16574  roleChanged() {
16575    return this.changeUserRole.get("role")?.value === this.user$()?.role;
16576  }
16577  unassignUserLicense() {
16578    const updatedUser = __spreadProps(__spreadValues({}, this.user$()), { isLicensed: false });
16579    this.adminManageUsersStore.assignOrUnassignLicense(updatedUser).then((response) => {
16580      if (response.success) {
16581        this.dialogRef.close();
16582      }
16583    });
16584  }
16585  assignUserLicense() {
16586    const updatedUser = __spreadProps(__spreadValues({}, this.user$()), { isLicensed: true });
16587    this.adminManageUsersStore.assignOrUnassignLicense(updatedUser).then((response) => {
16588      if (response.success) {
16589        this.dialogRef.close();
16590      }
16591    });
16592  }
16593  closeDialog() {
16594    this.dialogRef.close();
16595  }
16596  updateRole() {
16597    if (this.user$()?.role === "Company Admin" && this.user$()?.isPrimaryUser) {
16598      const companyAdmins = this.company$().companyAdmins?.filter((ca) => ca.userId !== this.user$()?.userId);
16599      if (companyAdmins.length === 1) {
16600        this.adminManageUsersStore.addAndRemovePrimaryCompanyAdmins({
16601          removedCompanyAdmin: this.user$(),
16602          newPrimaryCompanyAdmin: companyAdmins[0],
16603          newRole: this.changeUserRole.get("role")?.value
16604        }).then(() => {
16605          this.dialogRef.close();
16606        });
16607      } else if (companyAdmins.length === 0) {
16608        this.addPrimaryUserDialogRef = this.dialog.open(DialogComponent, {
16609          height: "920px",
16610          maxHeight: "920px",
16611          width: "40rem",
16612          maxWidth: "40rem",
16613          data: {
16614            title: "COMPANY_SETTINGS.Add_Company_Admin",
16615            icon: "group_add",
16616            description: "",
16617            content: this.addCompanyAdmins,
16618            currentRemovedCompanyAdmin: this.user$()
16619          }
16620        });
16621      } else {
16622        this.primaryUserDialogRef = this.dialog.open(DialogComponent, {
16623          width: "650px",
16624          height: "600px",
16625          data: {
16626            title: "SELECT_USER.SELECT_A_USER",
16627            icon: "person",
16628            content: UserSelectorModalContainerComponent,
16629            dataForComponent: {
16630              alertMessage: "SELECT_USER.SELECT_A_NEW_PRIMARY_COMPANY_ADMIN_MESSAGE",
16631              companyAdmins,
16632              multiSelect: false
16633            }
16634          }
16635        });
16636        this.openSetPrimaryUserDialog(this.user$());
16637      }
16638    } else {
16639      const updateUserRoleRequest = {
16640        userId: this.user$()?.userId,
16641        companyId: this.user$()?.companyId,
16642        isLicensed: this.user$()?.isLicensed ?? false,
16643        role: convertRoleToRolesEnum(this.changeUserRole.get("role")?.value)
16644      };
16645      this.adminManageUsersStore.updateUserRole(updateUserRoleRequest).then((response) => {
16646        if (response.success) {
16647          this.dialogRef.close();
16648        }
16649      });
16650    }
16651  }
16652  onSelectedCompany(companyId) {
16653    this.selectedCompanyId = companyId;
16654    this.resetCompanyAddress();
16655  }
16656  handleUserAdminAction(event) {
16657    const dialogData = this.addPrimaryUserDialogRef.componentInstance.data;
16658    this.adminManageUsersStore.addAndRemovePrimaryCompanyAdmins({
16659      removedCompanyAdmin: dialogData.currentRemovedCompanyAdmin,
16660      newPrimaryCompanyAdmin: event.user,
16661      addNewCompanyAdmin: true,
16662      newRole: this.changeUserRole.get("role")?.value
16663    }).then(() => {
16664      this.addPrimaryUserDialogRef.close();
16665      this.dialogRef.close();
16666    });
16667  }
16668  openSetPrimaryUserDialog(formData) {
16669    this.primaryUserDialogRef.afterOpened().subscribe(() => {
16670      const instance = this.primaryUserDialogRef.componentInstance;
16671      const contentInstance = instance.contentComponentRef.instance;
16672      if (contentInstance instanceof UserSelectorModalContainerComponent) {
16673        contentInstance.closeModal.subscribe(() => {
16674          this.primaryUserDialogRef.close();
16675        });
16676        contentInstance.selectedCompanyUsers.subscribe((selectedUsers) => {
16677          if (selectedUsers.length > 0) {
16678            const selectedUser = this.company$().companyAdmins.find((user) => user.email === selectedUsers[0].email);
16679            this.adminManageUsersStore.addAndRemovePrimaryCompanyAdmins({
16680              removedCompanyAdmin: formData,
16681              newPrimaryCompanyAdmin: selectedUser,
16682              newRole: this.changeUserRole.get("role")?.value
16683            }).then(() => {
16684              this.primaryUserDialogRef.close();
16685              this.dialogRef.close();
16686            });
16687          }
16688        });
16689      }
16690    });
16691  }
16692  createNewCompanyAdmin() {
16693    if (this.companyAdminForm.invalid)
16694      return;
16695    const dialogData = this.addPrimaryUserDialogRef.componentInstance.data;
16696    const request = {
16697      companyUser: {
16698        companyId: this.company$().companyId,
16699        email: this.companyAdminForm.get("email")?.value,
16700        userId: null,
16701        firstName: this.companyAdminForm.get("firstName")?.value,
16702        lastName: this.companyAdminForm.get("lastName")?.value,
16703        phone: this.companyAdminForm.get("phone")?.value,
16704        title: this.companyAdminForm.get("title")?.value,
16705        role: Role.COMPANY_ADMIN,
16706        isPrimaryUser: true
16707      },
16708      action: UserAction.CREATE
16709    };
16710    this.adminManageUsersStore.addAndRemovePrimaryCompanyAdmins({
16711      removedCompanyAdmin: dialogData.currentRemovedCompanyAdmin,
16712      newCreatedUser: request,
16713      newRole: this.changeUserRole.get("role")?.value
16714    }).then((resp) => {
16715      if (resp.success) {
16716        this.firstName = this.companyAdminForm.get("firstName").value;
16717        this.lastName = this.companyAdminForm.get("lastName").value;
16718        this.email = this.companyAdminForm.get("email").value;
16719        this.showAlertCompanyAdmin = true;
16720      }
16721      setTimeout(() => {
16722        this.companyAdminForm.reset();
16723        this.showAlertCompanyAdmin = false;
16724        this.addPrimaryUserDialogRef?.close();
16725        this.dialogRef?.close();
16726      }, 3e3);
16727    });
16728  }
16729  static \u0275fac = function UserProfileComponent_Factory(__ngFactoryType__) {
16730    return new (__ngFactoryType__ || _UserProfileComponent)(\u0275\u0275directiveInject(CountryService), \u0275\u0275directiveInject(ActivatedRoute), \u0275\u0275directiveInject(Router));
16731  };
16732  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _UserProfileComponent, selectors: [["app-user-profile"]], viewQuery: function UserProfileComponent_Query(rf, ctx) {
16733    if (rf & 1) {
16734      \u0275\u0275viewQuery(_c010, 7);
16735      \u0275\u0275viewQuery(_c112, 7);
16736      \u0275\u0275viewQuery(_c26, 7);
16737      \u0275\u0275viewQuery(_c36, 7);
16738      \u0275\u0275viewQuery(_c45, 7);
16739    }
16740    if (rf & 2) {
16741      let _t;
16742      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.editAccountProfile = _t.first);
16743      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.userLicenseAssignment = _t.first);
16744      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.editUserRole = _t.first);
16745      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.addCompanyAdmins = _t.first);
16746      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.unableToUpdateNotifications = _t.first);
16747    }
16748  }, decls: 32, vars: 13, consts: [["editAccountProfile", ""], ["userLicenseAssignment", ""], ["editRole", ""], ["addCompanyAdmins", ""], ["unableToUpdateNotifications", ""], ["auto", "matAutocomplete"], [1, "row"], [1, "card-columns", "pb-4"], [1, "card"], ["title", "My Details", 3, "isLoading", "headerActions"], ["count", "8", 3, "theme"], ["title", "Account Access", 3, "isLoading", "headerActions"], ["count", "2", 3, "theme"], ["title", "What's New Notifications", 3, "isLoading"], [1, "form-row", 3, "formGroup"], ["title", "Detailed Search Results View", 3, "isLoading"], [1, "col"], ["count", "1", 3, "theme"], [1, "col-12", "col-lg-auto", "d-flex", "justify-content-end"], [3, "title"], [1, "text-end"], ["styleType", "icon", 3, "buttonClick", "rightIcon", "color"], ["styleType", "icon", "rightIcon", "delete", 3, "buttonClick"], [3, "propertyName", "propertyValue", "control"], [3, "propertyName", "propertyValue", "fullLineDescription", "control"], [3, "propertyName", "propertyValue", "fullLineDescription", "isToggle", "control"], [1, "dialog-template", 3, "formGroup"], [1, "dialog-template-scrollable-container"], [1, "col-12", "col-sm-6"], ["label", "First Name"], ["formControlName", "firstName", 3, "id", "type"], ["label", "Last Name"], ["formControlName", "lastName", 3, "id", "type"], [1, "col-12"], ["label", "Company"], ["formControlName", "company", 3, "id", "type", "matAutocomplete"], [3, "value"], ["label", "Department"], ["formControlName", "department", 3, "id", "type"], ["label", "Title"], ["formControlName", "title", 3, "id", "type"], [1, "col-12", "col-sm-7"], ["label", "Email"], ["formControlName", "email", 3, "id", "type"], [1, "col-12", "col-sm-5"], ["label", "Phone Number"], ["formControlName", "phone", 3, "id", "type"], [1, "col-12", "d-flex", "justify-content-end", "pt-3"], ["labelPosition", "before", "name", "companyAddressCheckbox", "formControlName", "companyAddressCheckbox", "color", "primary", 1, "company-address-checkbox", 3, "change"], [3, "label"], ["id", "country", "formControlName", "country"], ["type", "text", "n
16748ame", "city", "id", "city", "formControlName", "city", "maxlength", "50", 3, "placeholder"], ["type", "text", "name", "state", "id", "state", "formControlName", "state", 3, "placeholder"], ["type", "text", "name", "postalCode", "id", "postalCode", "formControlName", "postalCode", "maxlength", "10", 3, "placeholder"], ["type", "text", "name", "address", "id", "address", "formControlName", "address", "maxlength", "200", 3, "placeholder"], ["id", "timezone", "formControlName", "timezone"], [1, "dialog-template-footer"], ["type", "text", 3, "buttonClick", "styleType"], ["type", "text", 3, "buttonClick", "styleType", "disabled"], [3, "onSelectionChange", "value"], [1, "dialog-template"], [1, "dialog-template-scrollable-container", "gap-2"], [1, "pb-3", 3, "color"], [3, "propertyName", "propertyValue"], ["type", "text", 3, "styleType", "disabled"], ["type", "text", 3, "styleType", "disabled", "color"], ["type", "text", 3, "buttonClick", "styleType", "disabled", "color"], ["label", "Select User Role"], ["placeholder", "Select User Role", "formControlName", "role"], [1, "dialog-container"], ["animationDuration", "0ms"], [1, "company-admin-view"], [1, "company-admin-view-header"], [1, "company-admin-view-body"], [3, "userAction", "companyId", "ExternalUsersList", "ExternalUsersLoadingStatus", "isAdmin", "forPrimaryAdminAdd"], [1, "company-admin-invitation-view"], [1, "company-admin-invitation-view-header"], [1, "company-admin-invitation-view-body"], [1, "edit-form", 3, "formGroup"], ["matInput", "", "id", "firstName", "type", "text", "name", "firstName", "formControlName", "firstName"], ["matInput", "", "id", "lastName", "type", "text", "name", "lastName", "formControlName", "lastName"], ["matInput", "", "id", "email", "type", "text", "inputmode", "email", "name", "email", "formControlName", "email"], ["label", "Phone"], ["matInput", "", "id", "phone", "type", "text", "name", "phone", "formControlName", "phone"], ["matInput", "", "id", "title", "type", "text", "name", "title", "formControlName", "title"], [1, "pt-3"], [1, "company-admin-invitation-view-footer"], ["rightIcon", "group_add", "styleType", "contained", 3, "buttonClick", "disabled", "isLoading"], [3, "color"], [1, "container-fluid", "p-1", "p-md-4"], [1, "row", "p-1", "p-md-3", "text-center"]], template: function UserProfileComponent_Template(rf, ctx) {
16749    if (rf & 1) {
16750      \u0275\u0275elementStart(0, "div", 6);
16751      \u0275\u0275conditionalCreate(1, UserProfileComponent_Conditional_1_Template, 3, 3)(2, UserProfileComponent_Conditional_2_Template, 6, 4);
16752      \u0275\u0275elementEnd();
16753      \u0275\u0275elementStart(3, "div", 7)(4, "div", 8)(5, "nmfta-card", 9);
16754      \u0275\u0275conditionalCreate(6, UserProfileComponent_Conditional_6_Template, 1, 2, "ngx-skeleton-loader", 10)(7, UserProfileComponent_Conditional_7_Template, 2, 0);
16755      \u0275\u0275elementEnd()();
16756      \u0275\u0275elementStart(8, "div", 8)(9, "nmfta-card", 11);
16757      \u0275\u0275conditionalCreate(10, UserProfileComponent_Conditional_10_Template, 1, 2, "ngx-skeleton-loader", 12)(11, UserProfileComponent_Conditional_11_Template, 2, 8);
16758      \u0275\u0275elementEnd()();
16759      \u0275\u0275elementStart(12, "div", 8)(13, "nmfta-card", 13)(14, "form", 14);
16760      \u0275\u0275conditionalCreate(15, UserProfileComponent_Conditional_15_Template, 1, 2, "ngx-skeleton-loader", 12)(16, UserProfileComponent_Conditional_16_Template, 2, 0);
16761      \u0275\u0275elementEnd()()();
16762      \u0275\u0275elementStart(17, "div", 8)(18, "nmfta-card", 15)(19, "form", 14);
16763      \u0275\u0275conditionalCreate(20, UserProfileComponent_Conditional_20_Template, 1, 2, "ngx-skeleton-loader", 12)(21, UserProfileComponent_Conditional_21_Template, 2, 0);
16764      \u0275\u0275elementEnd()()()();
16765      \u0275\u0275template(22, UserProfileComponent_ng_template_22_Template, 64, 40, "ng-template", null, 0, \u0275\u0275templateRefExtractor)(24, UserProfileComponent_ng_template_24_Template, 16, 15, "ng-template", null, 1, \u0275\u0275templateRefExtractor)(26, UserProfileComponent_ng_template_26_Template, 11, 4, "ng-template", null, 2, \u0275\u0275templateRefExtractor)(28, UserProfileComponent_ng_template_28_Template, 43, 26, "ng-template", null, 3, \u0275\u0275templateRefExtractor)(30, UserProfileComponent_ng_template_30_Template, 5, 3, "ng-template", null, 4, \u0275\u0275templateRefExtractor);
16766    }
16767    if (rf & 2) {
16768      \u0275\u0275advance();
16769      \u0275\u0275conditional(ctx.userLoading$() ? 1 : 2);
16770      \u0275\u0275advance(4);
16771      \u0275\u0275property("isLoading", ctx.userLoading$())("headerActions", ctx.myDetailsHeaderActions);
16772      \u0275\u0275advance();
16773      \u0275\u0275conditional(ctx.userLoading$() ? 6 : 7);
16774      \u0275\u0275advance(3);
16775      \u0275\u0275property("isLoading", ctx.userLoading$())("headerActions", ctx.accountAccessHeaderActions());
16776      \u0275\u0275advance();
16777      \u0275\u0275conditional(ctx.userLoading$() ? 10 : 11);
16778      \u0275\u0275advance(3);
16779      \u0275\u0275property("isLoading", ctx.userLoading$());
16780      \u0275\u0275advance();
16781      \u0275\u0275property("formGroup", ctx.notificationsForm);
16782      \u0275\u0275advance();
16783      \u0275\u0275conditional(ctx.userLoading$() ? 15 : 16);
16784      \u0275\u0275advance(3);
16785      \u0275\u0275property("isLoading", ctx.userLoading$());
16786      \u0275\u0275advance();
16787      \u0275\u0275property("formGroup", ctx.detailedSearchViewForm);
16788      \u0275\u0275advance();
16789      \u0275\u0275conditional(ctx.userLoading$() ? 20 : 21);
16790    }
16791  }, dependencies: [
16792    MatCardModule,
16793    DataPanelComponent,
16794    PageTitleComponent,
16795    MatFormFieldModule,
16796    ReactiveFormsModule,
16797    \u0275NgNoValidate,
16798    DefaultValueAccessor,
16799    NgControlStatus,
16800    NgControlStatusGroup,
16801    MaxLengthValidator,
16802    FormGroupDirective,
16803    FormControlName,
16804    ButtonComponent,
16805    MatInputModule,
16806    MatInput,
16807    TranslateModule,
16808    InputWrapperComponent,
16809    CardComponent,
16810    NgxSkeletonLoaderModule,
16811    NgxSkeletonLoaderComponent,
16812    MatOption,
16813    MatSelect,
16814    MatCheckbox,
16815    MatAutocompleteModule,
16816    MatAutocomplete,
16817    MatAutocompleteTrigger,
16818    MatTabGroup,
16819    MatTab,
16820    UserGroupSelectorComponent,
16821    AlertComponent,
16822    TranslatePipe
16823  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.cards-container[_ngcontent-%COMP%]   nmfta-card[_ngcontent-%COMP%] {\n  padding-bottom: 24px;\n  display: flex;\n}\n.cards-container[_ngcontent-%COMP%]   nmfta-card[_ngcontent-%COMP%]   .form-row[_ngcontent-%COMP%] {\n  display: flex;\n  gap: 12px;\n  flex-direction: column;\n}\n.header-with-buttons[_ngcontent-%COMP%] {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%;\n  padding: 10px;\n}\n.actions-container[_ngcontent-%COMP%] {\n  display: flex;\n  gap: 10px;\n  margin-left: auto;\n}\n.edit-form[_ngcontent-%COMP%]   .form-field[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 1rem;\n}\n.edit-form[_ngcontent-%COMP%]   .form-field[_ngcontent-%COMP%]   label[_ngcontent-%COMP%] {\n  flex: 0 0 30%;\n  margin-right: 10px;\n}\n.edit-form[_ngcontent-%COMP%]   .form-field[_ngcontent-%COMP%]   input[_ngcontent-%COMP%] {\n  flex: 1;\n}\n.error-message[_ngcontent-%COMP%] {\n  color: red;\n  font-size: 0.875rem;\n  margin-top: 0.5rem;\n}\n.edit-user-footer[_ngcontent-%COMP%] {\n  padding: 24px;\n  border-top: 1px solid #e8e8e8;\n  display: flex;\n  justify-content: flex-end;\n}\n.assign-license[_ngcontent-%COMP%] {\n  display: flex;\n  gap: 0.75rem;\n  flex-direction: column;\n}\n.assign-license[_ngcontent-%COMP%]     .alert {\n  width: 100% !important;\n}\n.form-row[_ngcontent-%COMP%] {\n  gap: 12px;\n  display: flex;\n  flex-direction: column;\n}\n.card-columns[_ngcontent-%COMP%] {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%] {\n  padding-top: 24px;\n}\n@media (min-width: 992px) {\n  .card-columns[_ngcontent-%COMP%] {\n    column-count: 2;\n  }\n}\n.dialog-container[_ngcontent-%COMP%] {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n}\n.dialog-container[_ngcontent-%COMP%]   mat-tab-group[_ngcontent-%COMP%], \n.dialog-container[_ngcontent-%COMP%]     .mat-mdc-tab-body-wrapper {\n  height: 100% !important;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-body[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n  overflow: auto;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-invitation-view[_ngcontent-%COMP%]   .company-admin-invitation-view-footer[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: row;\n  grid-row: 3;\n  overflow: hidden;\n  padding: 24px;\n  border-top: 1px solid #e1e1e1;\n  justify-content: flex-end;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%]   .company-admin-view-header[_ngcontent-%COMP%] {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container[_ngcontent-%COMP%]   .company-admin-view[_ngcontent-%COMP%]   .company-admin-view-body[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n/*# sourceMappingURL=user-profile.component-ZFXRPK6L.css.map */"] });
16824};
16825(() => {
16826  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(UserProfileComponent, [{
16827    type: Component,
16828    args: [{ selector: "app-user-profile", imports: [
16829      MatCardModule,
16830      DataPanelComponent,
16831      PageTitleComponent,
16832      MatFormFieldModule,
16833      ReactiveFormsModule,
16834      ButtonComponent,
16835      MatInputModule,
16836      TranslateModule,
16837      InputWrapperComponent,
16838      CardComponent,
16839      NgxSkeletonLoaderModule,
16840      MatOption,
16841      MatSelect,
16842      MatCheckbox,
16843      MatAutocompleteModule,
16844      MatTabGroup,
16845      MatTab,
16846      UserGroupSelectorComponent,
16847      AlertComponent
16848    ], template: `<div class="row">
16849  @if (userLoading$()) {
16850    <div class="col">
16851      <ngx-skeleton-loader
16852        count="1"
16853        [theme]="{
16854        height: '48px',
16855        width: '350px',
16856        'border-radius': '0.5rem',
16857      }" />
16858      </div>
16859      @if (isEditing()) {
16860        <div class="col-12 col-lg-auto d-flex justify-content-end">
16861          <ngx-skeleton-loader
16862            count="2"
16863          [theme]="{
16864          height: '48px',
16865          width: '160px',
16866          'margin-left': '12px',
16867          'border-radius': '0.5rem',
16868        }">
16869          </ngx-skeleton-loader>
16870        </div>
16871      }
16872    } @else {
16873      <div class="col">
16874        <nmfta-page-title
16875        [title]="
16876        isEditing() ? user$().firstName + ' ' + user$().lastName : ('Generic_UserProfile' | translate)
16877      "></nmfta-page-title>
16878      </div>
16879      <div class="col-12 col-lg-auto d-flex justify-content-end">
16880        <div class="text-end">
16881          @if (isEditing()) {
16882            <nmfta-button
16883              styleType="icon"
16884              rightIcon="{{ user$().isLicensed ? 'check_circle' : 'cancel' }}"
16885              [color]="user$().isLicensed ? 'accent' : 'error'"
16886              (buttonClick)="licenseAssignment()">
16887              {{
16888              (user$().isLicensed ? 'Generic_LicenseStatusAssigned' : 'Generic_LicenseStatusNotAssigned') | translate
16889              }}
16890            </nmfta-button>
16891            <nmfta-button styleType="icon" rightIcon="delete" (buttonClick)="deleteUser()">
16892              {{ 'Generic_DeleteUser' | translate }}
16893            </nmfta-button>
16894          }
16895        </div>
16896      </div>
16897    }
16898  </div>
16899  <div class="card-columns pb-4">
16900    <div class="card">
16901      <nmfta-card title="My Details" [isLoading]="userLoading$()" [headerActions]="myDetailsHeaderActions">
16902        @if (userLoading$()) {
16903          <ngx-skeleton-loader
16904            count="8"
16905          [theme]="{
16906            width: '100%',
16907            height: '4.6rem',
16908            'border-radius': '0.5rem',
16909            'margin-bottom': '0.3rem',
16910          }">
16911          </ngx-skeleton-loader>
16912        } @else {
16913          @for (field of userDataFields$(); track field.propertyName) {
16914            <nmfta-data-panel
16915              [propertyName]="field.propertyName"
16916              [propertyValue]="field.propertyValue"
16917              [control]="accountProfileForm.get(field.controlName)">
16918            </nmfta-data-panel>
16919          }
16920        }
16921      </nmfta-card>
16922    </div>
16923
16924    <div class="card">
16925      <nmfta-card [isLoading]="userLoading$()" title="Account Access" [headerActions]="accountAccessHeaderActions()">
16926        @if (userLoading$()) {
16927          <ngx-skeleton-loader
16928            count="2"
16929          [theme]="{
16930            width: '100%',
16931            height: '5.375rem',
16932            'border-radius': '0.5rem',
16933            'margin-bottom': '0.3rem',
16934          }">
16935          </ngx-skeleton-loader>
16936        } @else {
16937          <nmfta-data-panel
16938            [propertyName]="'Account Type'"
16939            [propertyValue]="user$().role"
16940            [fullLineDescription]="'Managed by Customer Service Only'"
16941            [control]="accountAccessForm.get('accountType')">
16942          </nmfta-data-panel>
16943
16944          <nmfta-data-panel
16945            [propertyName]="'User Name'"
16946            [propertyValue]="user$().email"
16947            [fullLineDescription]="'All Admin users are followed by the badge icon with the letter A'"
16948            [control]="accountAccessForm.get('userName')">
16949          </nmfta-data-panel>
16950        }
16951      </nmfta-card>
16952    </div>
16953
16954    <div class="card">
16955      <nmfta-card title="What's New Notifications" [isLoading]="userLoading$()">
16956        <form class="form-row" [formGroup]="notificationsForm">
16957          @if (userLoading$()) {
16958            <ngx-skeleton-loader
16959              count="2"
16960            [theme]="{
16961              width: '100%',
16962              height: '5.375rem',
16963              'border-radius': '0.5rem',
16964              'margin-bottom': '0.3rem',
16965            }">
16966            </ngx-skeleton-loader>
16967          } @else {
16968            @for (field of userNotifications$(); track field.propertyName) {
16969              <nmfta-data-panel
16970                [propertyName]="field.propertyName"
16971                [propertyValue]="field.propertyValue"
16972                [fullLineDescription]="field.itemDescription"
16973                [isToggle]="true"
16974                [control]="notificationsForm.get(field.controlName)">
16975              </nmfta-data-panel>
16976            }
16977          }
16978        </form>
16979      </nmfta-card>
16980    </div>
16981    <div class="card">
16982      <nmfta-card title="Detailed Search Results View" [isLoading]="userLoading$()">
16983        <form class="form-row" [formGroup]="detailedSearchViewForm">
16984          @if (userLoading$()) {
16985            <ngx-skeleton-loader
16986              count="2"
16987            [theme]="{
16988              width: '100%',
16989              height: '5.375rem',
16990              'border-radius': '0.5rem',
16991              'margin-bottom': '0.3rem',
16992            }">
16993            </ngx-skeleton-loader>
16994          } @else {
16995            @for (field of userDetailedSearchViewResults$(); track field.propertyName) {
16996              <nmfta-data-panel
16997                [propertyName]="field.propertyName"
16998                [propertyValue]="field.propertyValue"
16999                [fullLineDescription]="field.itemDescription"
17000                [isToggle]="true"
17001                [control]="detailedSearchViewForm.get(field.controlName)"
17002                >
17003              </nmfta-data-panel>
17004            }
17005          }
17006        </form>
17007      </nmfta-card>
17008    </div>
17009  </div>
17010
17011  <ng-template #editAccountProfile>
17012    <form [formGroup]="accountProfileForm" class="dialog-template">
17013      <div class="dialog-template-scrollable-container">
17014        <div class="row">
17015          <div class="col-12 col-sm-6">
17016            <nmfta-input-wrapper label="First Name">
17017              <input [id]="'firstName'" [type]="'text'" formControlName="firstName" />
17018            </nmfta-input-wrapper>
17019          </div>
17020          <div class="col-12 col-sm-6">
17021            <nmfta-input-wrapper label="Last Name">
17022              <input [id]="'lastName'" [type]="'text'" formControlName="lastName" />
17023            </nmfta-input-wrapper>
17024          </div>
17025          <div class="col-12">
17026            <nmfta-input-wrapper label="Company">
17027              <input [id]="'company'" [type]="'text'" formControlName="company" [matAutocomplete]="auto" />
17028              <mat-autocomplete #auto="matAutocomplete">
17029                @for (company of adminManageUsersStore.companyList(); track company) {
17030                  <mat-option
17031                    [value]="company.companyName"
17032                    (onSelectionChange)="onSelectedCompany(company.companyId)">
17033                    {{ company.companyName }} [{{ company.city }}, {{ company.state }}]
17034                  </mat-option>
17035                }
17036              </mat-autocomplete>
17037            </nmfta-input-wrapper>
17038          </div>
17039          <div class="col-12 col-sm-6">
17040            <nmfta-input-wrapper label="Department">
17041              <input [id]="'department'" [type]="'text'" formControlName="department" />
17042            </nmfta-input-wrapper>
17043          </div>
17044          <div class="col-12 col-sm-6">
17045            <nmfta-input-wrapper label="Title">
17046              <input [id]="'title'" [type]="'text'" formControlName="title" />
17047            </nmfta-input-wrapper>
17048          </div>
17049          <div class="col-12 col-sm-7">
17050            <nmfta-input-wrapper label="Email">
17051              <input [id]="'email'" [type]="'text'" formControlName="email" />
17052            </nmfta-input-wrapper>
17053          </div>
17054          <div class="col-12 col-sm-5">
17055            <nmfta-input-wrapper label="Phone Number">
17056              <input [id]="'phone'" [type]="'text'" formControlName="phone" />
17057            </nmfta-input-wrapper>
17058          </div>
17059          <div class="col-12 d-flex justify-content-end pt-3">
17060            <mat-checkbox
17061              labelPosition="before"
17062              class="company-address-checkbox"
17063              name="companyAddressCheckbox"
17064              formControlName="companyAddressCheckbox"
17065              color="primary"
17066              (change)="onUseCompanyAddress($event)">
17067              Use Company Address
17068            </mat-checkbox>
17069          </div>
17070          <div class="col-12 col-sm-5">
17071            <nmfta-input-wrapper [label]="'Generic_Country'">
17072              <mat-select id="country" formControlName="country">
17073                @for (country of countries$(); track $index) {
17074                  <mat-option [value]="country.umCountryCode">
17075                    {{ country.umCountryName }}
17076                  </mat-option>
17077                }
17078              </mat-select>
17079            </nmfta-input-wrapper>
17080          </div>
17081          <div class="col-12 col-sm-7">
17082            <nmfta-input-wrapper [label]="'Generic_City'">
17083              <input
17084                type="text"
17085                name="city"
17086                id="city"
17087                [placeholder]="'Generic_City' | translate"
17088                formControlName="city"
17089                maxlength="50" />
17090              </nmfta-input-wrapper>
17091            </div>
17092            <div class="col-12 col-sm-7">
17093              <nmfta-input-wrapper [label]="accountProfileForm.get('stateLabelText')?.value">
17094                <input
17095                  type="text"
17096                  name="state"
17097                  id="state"
17098                  [attr.maxLength]="countryService.isAddressRequired ? 2 : null"
17099                  placeholder="{{ accountProfileForm.get('stateLabelText')?.value | translate }}"
17100                  formControlName="state" />
17101                </nmfta-input-wrapper>
17102              </div>
17103              <div class="col-12 col-sm-5">
17104                <nmfta-input-wrapper [label]="'Generic_PostalCode'">
17105                  <input
17106                    type="text"
17107                    name="postalCode"
17108                    id="postalCode"
17109                    [placeholder]="'Generic_PostalCode' | translate"
17110                    formControlName="postalCode"
17111                    maxlength="10" />
17112                  </nmfta-input-wrapper>
17113                </div>
17114                <div class="col-12">
17115                  <nmfta-input-wrapper [label]="'Generic_AddressLine'">
17116                    <input
17117                      type="text"
17118                      name="address"
17119                      id="address"
17120                      [placeholder]="'Generic_AddressLine' | translate"
17121                      formControlName="address"
17122                      maxlength="200" />
17123                    </nmfta-input-wrapper>
17124                  </div>
17125                  <div class="col-12">
17126                    <nmfta-input-wrapper [label]="'Generic_Timezone'">
17127                      <mat-select id="timezone" formControlName="timezone">
17128                        <mat-option [value]="'UTC'">(GMT+00:00) UTC </mat-option>
17129                        @for (timezone of timeZones; track $index) {
17130                          <mat-option [value]="timezone.ianaId">
17131                            {{ timezone.displayName }}
17132                          </mat-option>
17133                        }
17134                      </mat-select>
17135                    </nmfta-input-wrapper>
17136                  </div>
17137                </div>
17138              </div>
17139
17140              <div class="dialog-template-footer">
17141                <nmfta-button type="text" [styleType]="'outlined'" (buttonClick)="closeEditDialog()"> Cancel </nmfta-button>
17142                <nmfta-button
17143                  type="text"
17144                  [styleType]="'contained'"
17145                  [disabled]="accountProfileForm.invalid"
17146                  (buttonClick)="saveUserInfo()">
17147                  Save
17148                </nmfta-button>
17149              </div>
17150            </form>
17151          </ng-template>
17152
17153          <ng-template #userLicenseAssignment>
17154            <div class="dialog-template">
17155              <div class="dialog-template-scrollable-container gap-2">
17156                <p>{{ licenseDescription | translate }}</p>
17157                <nmfta-alert class="pb-3" [color]="licenseAlertColor">{{ licenseMessage | translate }}</nmfta-alert>
17158                <nmfta-data-panel [propertyName]="'Company Name'" [propertyValue]="companyLicenseInfo$().companyName">
17159                </nmfta-data-panel>
17160                <nmfta-data-panel
17161                  [propertyName]="'Total Company Licenses Purchased'"
17162                  [propertyValue]="companyLicenseInfo$().totalLicenses.toString()">
17163                </nmfta-data-panel>
17164                <nmfta-data-panel
17165                  [propertyName]="'Company Licenses Assigned'"
17166                  [propertyValue]="companyLicenseInfo$().assignedLicenseCount.toString()">
17167                </nmfta-data-panel>
17168              </div>
17169              <div class="dialog-template-footer">
17170                <nmfta-button type="text" [styleType]="'outlined'" (buttonClick)="closeDialog()"> Cancel </nmfta-button>
17171                @if (!user$().isLicensed) {
17172                  <nmfta-button
17173                    type="text"
17174                    [styleType]="'contained'"
17175                    [disabled]="disableAssignButton"
17176                    (buttonClick)="assignUserLicense()">
17177                    Assign License
17178                  </nmfta-button>
17179                } @else {
17180                  <nmfta-button
17181                    type="text"
17182                    [styleType]="'contained'"
17183                    [disabled]="disableAssignButton"
17184                    [color]="'error'"
17185                    (buttonClick)="unassignUserLicense()">
17186                    Unassign License
17187                  </nmfta-button>
17188                }
17189              </div>
17190            </div>
17191          </ng-template>
17192
17193          <ng-template #editRole>
17194            <div class="dialog-template" [formGroup]="changeUserRole">
17195              <div class="dialog-template-scrollable-container">
17196                <nmfta-input-wrapper label="Select User Role">
17197                  <mat-select placeholder="Select User Role" formControlName="role">
17198                    @for (role of roles; track role) {
17199                      <mat-option [value]="role">
17200                        {{ role }}
17201                      </mat-option>
17202                    }
17203                  </mat-select>
17204                </nmfta-input-wrapper>
17205              </div>
17206              <div class="dialog-template-footer">
17207                <nmfta-button type="text" [styleType]="'outlined'" (buttonClick)="closeDialog()"> Cancel </nmfta-button>
17208                <nmfta-button type="text" [styleType]="'contained'" [disabled]="roleChanged()" (buttonClick)="updateRole()"> Save </nmfta-button>
17209              </div>
17210            </div>
17211          </ng-template>
17212
17213          <ng-template #addCompanyAdmins>
17214            <div class="dialog-container">
17215              <mat-tab-group animationDuration="0ms">
17216                <mat-tab label="{{ 'COMPANY_SETTINGS.Assign_to_an_Existing_User' | translate }}">
17217                  <div class="company-admin-view">
17218                    <div class="company-admin-view-header">
17219                      <nmfta-alert>
17220                        {{ "COMPANY_SETTINGS.Add_Company_Admin_Message" | translate }}
17221                      </nmfta-alert>
17222                    </div>
17223                    <div class="company-admin-view-body">
17224                      <nmfta-user-group-selector
17225                        [companyId]="company$().companyId"
17226                        [ExternalUsersList]="companyAdmins$"
17227                        [ExternalUsersLoadingStatus]="submissionStatus$"
17228                        [isAdmin]="true"
17229                        [forPrimaryAdminAdd]="true"
17230                        (userAction)="handleUserAdminAction($event)">
17231                      </nmfta-user-group-selector>
17232                    </div>
17233                  </div>
17234                </mat-tab>
17235                <mat-tab label="{{ 'COMPANY_SETTINGS.Assign_to_A_New_User' | translate }}">
17236                  <div class="company-admin-invitation-view">
17237                    <div class="company-admin-invitation-view-header">
17238                      <nmfta-alert>
17239                        {{ "COMPANY_SETTINGS.Add_Company_Admin_Message" | translate }}
17240                      </nmfta-alert>
17241                    </div>
17242                    <div class="company-admin-invitation-view-body">
17243                      <form [formGroup]="companyAdminForm" class="edit-form">
17244                        <div class="row">
17245                          <div class="col-12 col-sm-6">
17246                            <nmfta-input-wrapper label="First Name">
17247                              <input matInput
17248                                id="firstName"
17249                                type="text"
17250                                name="firstName"
17251                                formControlName="firstName">
17252                              </nmfta-input-wrapper>
17253                            </div>
17254                            <div class="col-12 col-sm-6">
17255                              <nmfta-input-wrapper label="Last Name">
17256                                <input matInput
17257                                  id="lastName"
17258                                  type="text"
17259                                  name="lastName"
17260                                  formControlName="lastName">
17261                                </nmfta-input-wrapper>
17262                              </div>
17263                            </div>
17264                            <div class="row">
17265                              <div class="col-12 col-sm-7">
17266                                <nmfta-input-wrapper label="Email">
17267                                  <input matInput
17268                                    id="email"
17269                                    type="text"
17270                                    inputmode="email"
17271                                    name="email"
17272                                    formControlName="email">
17273                                  </nmfta-input-wrapper>
17274                                </div>
17275                                <div class="col-12 col-sm-5">
17276                                  <nmfta-input-wrapper label="Phone">
17277                                    <input matInput
17278                                      id="phone"
17279                                      type="text"
17280                                      name="phone"
17281                                      formControlName="phone">
17282                                    </nmfta-input-wrapper>
17283                                  </div>
17284                                </div>
17285                                <div class="row">
17286                                  <div class="col-12">
17287                                    <nmfta-input-wrapper label="Title">
17288                                      <input matInput
17289                                        id="title"
17290                                        type="text"
17291                                        name="title"
17292                                        formControlName="title">
17293                                      </nmfta-input-wrapper>
17294                                    </div>
17295                                  </div>
17296                                </form>
17297                                @if (showAlertCompanyAdmin) {
17298                                  <div class="pt-3">
17299                                    <nmfta-alert [color]="'success'">
17300                                      {{ 'COMPANY_SETTINGS.Activation_Link_Success' | translate: { firstName: firstName, lastName: lastName, email: email, today: today } }}
17301                                    </nmfta-alert>
17302                                  </div>
17303                                }
17304                              </div>
17305                              <div class="company-admin-invitation-view-footer">
17306                                <nmfta-button
17307                                  (buttonClick)="createNewCompanyAdmin()"
17308                                  [disabled]="companyAdminForm.invalid"
17309                                  rightIcon="group_add"
17310                                  styleType="contained"
17311                                  [isLoading]="updateUserStatus$() === 'loading'">
17312                                  {{ "COMPANY_SETTINGS.Create_Company_Admin" | translate }}
17313                                </nmfta-button>
17314                              </div>
17315                            </div>
17316                          </mat-tab>
17317                        </mat-tab-group>
17318                      </div>
17319                    </ng-template>
17320
17321                    <ng-template #unableToUpdateNotifications>
17322                      <div class="container-fluid p-1 p-md-4">
17323                        <div class="row p-1 p-md-3 text-center">
17324                          <span>{{ notificationsMessage | translate }}</span>
17325                        </div>
17326                      </div>
17327                    </ng-template>
17328`, styles: ["/* src/app/shared/components/organisms/user-profile/user-profile.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.cards-container nmfta-card {\n  padding-bottom: 24px;\n  display: flex;\n}\n.cards-container nmfta-card .form-row {\n  display: flex;\n  gap: 12px;\n  flex-direction: column;\n}\n.header-with-buttons {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%;\n  padding: 10px;\n}\n.actions-container {\n  display: flex;\n  gap: 10px;\n  margin-left: auto;\n}\n.edit-form .form-field {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 1rem;\n}\n.edit-form .form-field label {\n  flex: 0 0 30%;\n  margin-right: 10px;\n}\n.edit-form .form-field input {\n  flex: 1;\n}\n.error-message {\n  color: red;\n  font-size: 0.875rem;\n  margin-top: 0.5rem;\n}\n.edit-user-footer {\n  padding: 24px;\n  border-top: 1px solid #e8e8e8;\n  display: flex;\n  justify-content: flex-end;\n}\n.assign-license {\n  display: flex;\n  gap: 0.75rem;\n  flex-direction: column;\n}\n.assign-license ::ng-deep .alert {\n  width: 100% !important;\n}\n.form-row {\n  gap: 12px;\n  display: flex;\n  flex-direction: column;\n}\n.card-columns {\n  column-count: 1;\n  column-gap: 1.5rem;\n}\n.card-columns .card {\n  padding-top: 24px;\n}\n@media (min-width: 992px) {\n  .card-columns {\n    column-count: 2;\n  }\n}\n.dialog-container {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n}\n.dialog-container mat-tab-group,\n.dialog-container ::ng-deep .mat-mdc-tab-body-wrapper {\n  height: 100% !important;\n}\n.dialog-container .company-admin-invitation-view {\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-body {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 2;\n  overflow: auto;\n}\n.dialog-container .company-admin-invitation-view .company-admin-invitation-view-footer {\n  display: flex;\n  flex-direction: row;\n  grid-row: 3;\n  overflow: hidden;\n  padding: 24px;\n  border-top: 1px solid #e1e1e1;\n  justify-content: flex-end;\n}\n.dialog-container .company-admin-view {\n  display: grid;\n  grid-template-rows: auto 1fr;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n.dialog-container .company-admin-view .company-admin-view-header {\n  padding: 1.5rem 24px 0.5rem;\n  grid-row: 1;\n}\n.dialog-container .company-admin-view .company-admin-view-body {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  grid-row: 2;\n  overflow: hidden;\n}\n/*# sourceMappingURL=user-profile.component-ZFXRPK6L.css.map */\n"] }]
17329  }], () => [{ type: CountryService }, { type: ActivatedRoute }, { type: Router }], { editAccountProfile: [{
17330    type: ViewChild,
17331    args: ["editAccountProfile", { static: true }]
17332  }], userLicenseAssignment: [{
17333    type: ViewChild,
17334    args: ["userLicenseAssignment", { static: true }]
17335  }], editUserRole: [{
17336    type: ViewChild,
17337    args: ["editRole", { static: true }]
17338  }], addCompanyAdmins: [{
17339    type: ViewChild,
17340    args: ["addCompanyAdmins", { static: true }]
17341  }], unableToUpdateNotifications: [{
17342    type: ViewChild,
17343    args: ["unableToUpdateNotifications", { static: true }]
17344  }] });
17345})();
17346(() => {
17347  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(UserProfileComponent, { className: "UserProfileComponent", filePath: "src/app/shared/components/organisms/user-profile/user-profile.component.ts", lineNumber: 73 });
17348})();
17349
17350// src/app/shared/guards/company-settings-menu.guard.ts
17351var companySettingsMenuGuard = () => __async(null, null, function* () {
17352  const userStore = inject(UserStore);
17353  const router = inject(Router);
17354  const isCompanySettingsEnabled = userStore.user().features.CompanySettings;
17355  const isLoggedIn$ = userStore.isAuthenticated;
17356  if (!isCompanySettingsEnabled && isLoggedIn$()) {
17357    router.navigate(["/home"]);
17358    return false;
17359  }
17360  return isCompanySettingsEnabled || !isLoggedIn$();
17361});
17362
17363// src/app/shared/resolvers/profile.resolver.ts
17364var profileResolver = (route) => {
17365  const userStore = inject(UserStore);
17366  const router = inject(Router);
17367  const isValidRole$ = userStore.isCustomerService;
17368  const queryCompanyId = route.queryParamMap.get("id");
17369  if (!isValidRole$() && queryCompanyId) {
17370    router.navigate(["/home"]);
17371    return false;
17372  }
17373  return true;
17374};
17375
17376// src/app/features/profile/components/renew-subscription/renew-subscription.component.ts
17377var _c011 = ["stepper"];
17378var _c113 = () => ({ display: "block", height: "48px", width: "100%", "border-radius": "0.5rem", "margin": "1.5rem 0" });
17379var _c27 = () => ({ "display": "block", "height": "calc(100% - 250px)", "width": "100%", "border-radius": "0.5rem", "margin": "1.5rem 0" });
17380var _forTrack07 = ($index, $item) => $item.id;
17381function RenewSubscriptionComponent_Conditional_2_For_3_Case_1_Template(rf, ctx) {
17382  if (rf & 1) {
17383    const _r1 = \u0275\u0275getCurrentView();
17384    \u0275\u0275elementStart(0, "nmfta-purchase-company-info", 9);
17385    \u0275\u0275listener("complete", function RenewSubscriptionComponent_Conditional_2_For_3_Case_1_Template_nmfta_purchase_company_info_complete_0_listener() {
17386      \u0275\u0275restoreView(_r1);
17387      const ctx_r1 = \u0275\u0275nextContext(3);
17388      return \u0275\u0275resetView(ctx_r1.markStepAsComplete("company"));
17389    });
17390    \u0275\u0275elementEnd();
17391  }
17392  if (rf & 2) {
17393    let tmp_15_0;
17394    const ctx_r1 = \u0275\u0275nextContext(3);
17395    \u0275\u0275property("user", ctx_r1.companyPrimaryUser$())("company", (tmp_15_0 = ctx_r1.renewSubscriptionInfo$()) == null ? null : tmp_15_0.company)("enforceExistingEmail", false)("disableCSSelectExistingCompany", true)("isRenew", true);
17396  }
17397}
17398function RenewSubscriptionComponent_Conditional_2_For_3_Case_2_Template(rf, ctx) {
17399  if (rf & 1) {
17400    const _r3 = \u0275\u0275getCurrentView();
17401    \u0275\u0275elementStart(0, "nmfta-purchase-tiers", 10);
17402    \u0275\u0275listener("complete", function RenewSubscriptionComponent_Conditional_2_For_3_Case_2_Template_nmfta_purchase_tiers_complete_0_listener() {
17403      \u0275\u0275restoreView(_r3);
17404      const ctx_r1 = \u0275\u0275nextContext(3);
17405      return \u0275\u0275resetView(ctx_r1.markStepAsComplete("tiers"));
17406    })("back", function RenewSubscriptionComponent_Conditional_2_For_3_Case_2_Template_nmfta_purchase_tiers_back_0_listener() {
17407      \u0275\u0275restoreView(_r3);
17408      const ctx_r1 = \u0275\u0275nextContext(3);
17409      return \u0275\u0275resetView(ctx_r1.moveToPreviousStep());
17410    });
17411    \u0275\u0275elementEnd();
17412  }
17413  if (rf & 2) {
17414    let tmp_19_0;
17415    const \u0275$index_7_r4 = \u0275\u0275nextContext().$index;
17416    \u0275\u0275nextContext();
17417    const stepper_r5 = \u0275\u0275reference(1);
17418    const ctx_r1 = \u0275\u0275nextContext();
17419    \u0275\u0275styleProp("display", stepper_r5.selectedIndex === \u0275$index_7_r4 ? "block" : "none");
17420    \u0275\u0275property("isMember", ctx_r1.isMember$())("apiProducts", ctx_r1.apiProducts$())("bfdProducts", ctx_r1.bfdProducts$())("companyType", ctx_r1.companyType$())("subscriptionTier", ((tmp_19_0 = ctx_r1.renewSubscriptionInfo$()) == null ? null : tmp_19_0.apiProduct == null ? null : tmp_19_0.apiProduct.subscriptionTier) ?? "National")("isBFDMode", ctx_r1.productType$() === ctx_r1.productTypes.BFD);
17421  }
17422}
17423function RenewSubscriptionComponent_Conditional_2_For_3_Case_3_Template(rf, ctx) {
17424  if (rf & 1) {
17425    const _r6 = \u0275\u0275getCurrentView();
17426    \u0275\u0275elementStart(0, "nmfta-purchase-licenses", 11);
17427    \u0275\u0275listener("complete", function RenewSubscriptionComponent_Conditional_2_For_3_Case_3_Template_nmfta_purchase_licenses_complete_0_listener() {
17428      \u0275\u0275restoreView(_r6);
17429      const ctx_r1 = \u0275\u0275nextContext(3);
17430      return \u0275\u0275resetView(ctx_r1.markStepAsComplete("licenses"));
17431    })("back", function RenewSubscriptionComponent_Conditional_2_For_3_Case_3_Template_nmfta_purchase_licenses_back_0_listener() {
17432      \u0275\u0275restoreView(_r6);
17433      const ctx_r1 = \u0275\u0275nextContext(3);
17434      return \u0275\u0275resetView(ctx_r1.moveToPreviousStep());
17435    });
17436    \u0275\u0275elementEnd();
17437  }
17438  if (rf & 2) {
17439    let tmp_18_0;
17440    let tmp_19_0;
17441    let tmp_20_0;
17442    const \u0275$index_7_r4 = \u0275\u0275nextContext().$index;
17443    \u0275\u0275nextContext();
17444    const stepper_r5 = \u0275\u0275reference(1);
17445    const ctx_r1 = \u0275\u0275nextContext();
17446    \u0275\u0275styleProp("display", stepper_r5.selectedIndex === \u0275$index_7_r4 ? "block" : "none");
17447    \u0275\u0275property("user", ctx_r1.user$())("isCustomerService", ctx_r1.isCustomerService$())("webProducts", ctx_r1.webProducts$())("renewWebProduct", (tmp_18_0 = ctx_r1.renewSubscriptionInfo$()) == null ? null : tmp_18_0.webProduct)("renewWebLicenseCount", (tmp_19_0 = ctx_r1.renewSubscriptionInfo$()) == null ? null : tmp_19_0.companySubscriptions == null ? null : tmp_19_0.companySubscriptions.website == null ? null : tmp_19_0.companySubscriptions.website.licenses)("renewMinLicenseCount", ((tmp_20_0 = ctx_r1.renewSubscriptionInfo$()) == null ? null : tmp_20_0.assignedLicenses) ?? 1)("isMember", ctx_r1.isMember$());
17448  }
17449}
17450function RenewSubscriptionComponent_Conditional_2_For_3_Case_4_Template(rf, ctx) {
17451  if (rf & 1) {
17452    const _r7 = \u0275\u0275getCurrentView();
17453    \u0275\u0275elementStart(0, "nmfta-purchase-payment", 12);
17454    \u0275\u0275listener("complete", function RenewSubscriptionComponent_Conditional_2_For_3_Case_4_Template_nmfta_purchase_payment_complete_0_listener() {
17455      \u0275\u0275restoreView(_r7);
17456      const ctx_r1 = \u0275\u0275nextContext(3);
17457      return \u0275\u0275resetView(ctx_r1.markStepAsComplete("payment"));
17458    })("back", function RenewSubscriptionComponent_Conditional_2_For_3_Case_4_Template_nmfta_purchase_payment_back_0_listener() {
17459      \u0275\u0275restoreView(_r7);
17460      const ctx_r1 = \u0275\u0275nextContext(3);
17461      return \u0275\u0275resetView(ctx_r1.moveToPreviousStep());
17462    });
17463    \u0275\u0275elementEnd();
17464  }
17465  if (rf & 2) {
17466    const \u0275$index_7_r4 = \u0275\u0275nextContext().$index;
17467    \u0275\u0275nextContext();
17468    const stepper_r5 = \u0275\u0275reference(1);
17469    const ctx_r1 = \u0275\u0275nextContext();
17470    \u0275\u0275styleProp("display", stepper_r5.selectedIndex === \u0275$index_7_r4 ? "block" : "none");
17471    \u0275\u0275property("paymentInitialCost", ctx_r1.getTotalCostInt(ctx_r1.paymentInitialCost$()));
17472  }
17473}
17474function RenewSubscriptionComponent_Conditional_2_For_3_Case_5_Template(rf, ctx) {
17475  if (rf & 1) {
17476    const _r8 = \u0275\u0275getCurrentView();
17477    \u0275\u0275elementStart(0, "nmfta-purchase-agreement", 13);
17478    \u0275\u0275listener("forward", function RenewSubscriptionComponent_Conditional_2_For_3_Case_5_Template_nmfta_purchase_agreement_forward_0_listener() {
17479      \u0275\u0275restoreView(_r8);
17480      const ctx_r1 = \u0275\u0275nextContext(3);
17481      return \u0275\u0275resetView(ctx_r1.markStepAsComplete("agreement"));
17482    })("back", function RenewSubscriptionComponent_Conditional_2_For_3_Case_5_Template_nmfta_purchase_agreement_back_0_listener() {
17483      \u0275\u0275restoreView(_r8);
17484      const ctx_r1 = \u0275\u0275nextContext(3);
17485      return \u0275\u0275resetView(ctx_r1.moveToPreviousStep());
17486    });
17487    \u0275\u0275elementEnd();
17488  }
17489  if (rf & 2) {
17490    const \u0275$index_7_r4 = \u0275\u0275nextContext().$index;
17491    \u0275\u0275nextContext();
17492    const stepper_r5 = \u0275\u0275reference(1);
17493    \u0275\u0275styleProp("display", stepper_r5.selectedIndex === \u0275$index_7_r4 ? "block" : "none");
17494  }
17495}
17496function RenewSubscriptionComponent_Conditional_2_For_3_Case_6_Template(rf, ctx) {
17497  if (rf & 1) {
17498    const _r9 = \u0275\u0275getCurrentView();
17499    \u0275\u0275elementStart(0, "nmfta-purchase-review", 14);
17500    \u0275\u0275listener("back", function RenewSubscriptionComponent_Conditional_2_For_3_Case_6_Template_nmfta_purchase_review_back_0_listener() {
17501      \u0275\u0275restoreView(_r9);
17502      const ctx_r1 = \u0275\u0275nextContext(3);
17503      return \u0275\u0275resetView(ctx_r1.moveToPreviousStep());
17504    })("orderSubmitted", function RenewSubscriptionComponent_Conditional_2_For_3_Case_6_Template_nmfta_purchase_review_orderSubmitted_0_listener() {
17505      \u0275\u0275restoreView(_r9);
17506      const ctx_r1 = \u0275\u0275nextContext(3);
17507      return \u0275\u0275resetView(ctx_r1.orderSubmitted());
17508    });
17509    \u0275\u0275elementEnd();
17510  }
17511}
17512function RenewSubscriptionComponent_Conditional_2_For_3_Template(rf, ctx) {
17513  if (rf & 1) {
17514    \u0275\u0275elementStart(0, "mat-step", 3);
17515    \u0275\u0275conditionalCreate(1, RenewSubscriptionComponent_Conditional_2_For_3_Case_1_Template, 1, 5, "nmfta-purchase-company-info", 4)(2, RenewSubscriptionComponent_Conditional_2_For_3_Case_2_Template, 1, 8, "nmfta-purchase-tiers", 5)(3, RenewSubscriptionComponent_Conditional_2_For_3_Case_3_Template, 1, 9, "nmfta-purchase-licenses", 6)(4, RenewSubscriptionComponent_Conditional_2_For_3_Case_4_Template, 1, 3, "nmfta-purchase-payment", 7)(5, RenewSubscriptionComponent_Conditional_2_For_3_Case_5_Template, 1, 2, "nmfta-purchase-agreement", 8)(6, RenewSubscriptionComponent_Conditional_2_For_3_Case_6_Template, 1, 0, "nmfta-purchase-review");
17516    \u0275\u0275elementEnd();
17517  }
17518  if (rf & 2) {
17519    let tmp_15_0;
17520    const step_r10 = ctx.$implicit;
17521    const \u0275$index_7_r4 = ctx.$index;
17522    const ctx_r1 = \u0275\u0275nextContext(2);
17523    \u0275\u0275property("label", step_r10.label)("completed", ctx_r1.completedSteps$()[\u0275$index_7_r4]);
17524    \u0275\u0275advance();
17525    \u0275\u0275conditional((tmp_15_0 = step_r10.id) === "company" ? 1 : tmp_15_0 === "tiers" ? 2 : tmp_15_0 === "licenses" ? 3 : tmp_15_0 === "payment" ? 4 : tmp_15_0 === "agreement" ? 5 : tmp_15_0 === "review" ? 6 : -1);
17526  }
17527}
17528function RenewSubscriptionComponent_Conditional_2_Template(rf, ctx) {
17529  if (rf & 1) {
17530    \u0275\u0275elementStart(0, "mat-stepper", 2, 0);
17531    \u0275\u0275repeaterCreate(2, RenewSubscriptionComponent_Conditional_2_For_3_Template, 7, 3, "mat-step", 3, _forTrack07);
17532    \u0275\u0275elementEnd();
17533  }
17534  if (rf & 2) {
17535    const ctx_r1 = \u0275\u0275nextContext();
17536    \u0275\u0275property("linear", true)("orientation", ctx_r1.isDesktop ? "horizontal" : "vertical");
17537    \u0275\u0275advance(2);
17538    \u0275\u0275repeater(ctx_r1.steps());
17539  }
17540}
17541function RenewSubscriptionComponent_Conditional_3_Template(rf, ctx) {
17542  if (rf & 1) {
17543    \u0275\u0275element(0, "ngx-skeleton-loader", 15)(1, "ngx-skeleton-loader", 15);
17544  }
17545  if (rf & 2) {
17546    \u0275\u0275property("theme", \u0275\u0275pureFunction0(2, _c113));
17547    \u0275\u0275advance();
17548    \u0275\u0275property("theme", \u0275\u0275pureFunction0(3, _c27));
17549  }
17550}
17551var RenewSubscriptionComponent = class _RenewSubscriptionComponent {
17552  // DI Services
17553  renewSubscriptionStore = inject(RenewSubscriptionStore);
17554  purchaseStore = inject(PurchaseStore);
17555  companyStore = inject(CompanyStore);
17556  userStore = inject(UserStore);
17557  paymentComponentStore = inject(PaymentComponentStore);
17558  cdr = inject(ChangeDetectorRef);
17559  activatedRoute = inject(ActivatedRoute);
17560  router = inject(Router);
17561  breakpointService = inject(BreakpointService);
17562  stepFlowService = inject(StepFlowService);
17563  // Component Properties
17564  stepper;
17565  parseInt = parseInt;
17566  productTypes = ProductType;
17567  isLoading$ = this.renewSubscriptionStore.isLoading;
17568  completedSteps$ = this.renewSubscriptionStore.completedSteps;
17569  productType$ = this.renewSubscriptionStore.getTargetProductType;
17570  webProducts$ = this.purchaseStore.webProducts;
17571  apiProducts$ = this.purchaseStore.apiProducts;
17572  bfdProducts$ = this.purchaseStore.bfdProducts;
17573  companyType$ = this.renewSubscriptionStore.order.companyInformation.companyType;
17574  isMember$ = this.renewSubscriptionStore.isCompanyMember;
17575  paymentInitialCost$ = this.purchaseStore.order.paymentPayload.paymentInfo.totalAmount;
17576  renewSubscriptionInfo$ = this.renewSubscriptionStore.subscriptionRenewalInfo;
17577  company$ = this.companyStore.company;
17578  companyPrimaryUser$ = computed(() => {
17579    const company = this.company$();
17580    const primaryUser = company?.primaryUser;
17581    if (!company?.companyId || !primaryUser) {
17582      return void 0;
17583    }
17584    return {
17585      userId: primaryUser.userId,
17586      companyId: primaryUser.companyId,
17587      firstName: primaryUser.firstName,
17588      lastName: primaryUser.lastName,
17589      title: primaryUser.title,
17590      email: primaryUser.email,
17591      phone: primaryUser.phone
17592    };
17593  }, ...ngDevMode ? [{ debugName: "companyPrimaryUser$" }] : []);
17594  isCustomerService$ = this.userStore.isCustomerService;
17595  user$ = this.userStore.user;
17596  subscriptionId;
17597  isDesktop = true;
17598  destroy$ = new Subject();
17599  steps = computed(() => {
17600    return this.stepFlowService.getRenewSteps({
17601      productType: this.productType$(),
17602      isBundled: this.renewSubscriptionInfo$()?.isBundled ?? false
17603    });
17604  }, ...ngDevMode ? [{ debugName: "steps" }] : []);
17605  constructor() {
17606    this.isDesktop = this.breakpointService.isBreakpointOrLarger(BreakPoint.LG);
17607    this.breakpointService.observeIsBreakpointOrLarger(BreakPoint.LG).pipe(takeUntil(this.destroy$)).subscribe((isDesktop) => {
17608      this.isDesktop = isDesktop;
17609    });
17610  }
17611  // Component Actions
17612  ngOnInit() {
17613    this.subscriptionId = this.activatedRoute.snapshot.paramMap.get("subscriptionId") ?? "";
17614    this.purchaseStore.setRenewalMode(true);
17615    if (this.subscriptionId && this.subscriptionId !== "") {
17616      this.reloadData();
17617    }
17618    this.paymentComponentStore.setCompanyAddressInfo({
17619      address: this.company$().companyAddress,
17620      city: this.company$().city,
17621      state: this.company$().state,
17622      postalCode: this.company$().postalCode,
17623      country: this.company$().country
17624    });
17625  }
17626  ngOnDestroy() {
17627    this.destroy$.next();
17628    this.destroy$.complete();
17629  }
17630  markStepAsComplete(stepId) {
17631    const index = this.stepFlowService.getStepIndex(this.steps(), stepId);
17632    if (index === -1)
17633      return;
17634    this.renewSubscriptionStore.setStepAsComplete(index);
17635    this.cdr.detectChanges();
17636    this.moveToNextStep();
17637  }
17638  reloadData() {
17639    if (this.subscriptionId) {
17640      this.renewSubscriptionStore.reloadData(this.subscriptionId);
17641    }
17642  }
17643  moveToNextStep() {
17644    this.stepper.next();
17645  }
17646  moveToPreviousStep() {
17647    this.stepper.previous();
17648  }
17649  orderSubmitted() {
17650    return __async(this, null, function* () {
17651      yield this.router.navigate(["/purchase/confirmation"]);
17652    });
17653  }
17654  getTotalCostInt(totalCostString) {
17655    try {
17656      return parseInt(totalCostString);
17657    } catch {
17658      return 0;
17659    }
17660  }
17661  static \u0275fac = function RenewSubscriptionComponent_Factory(__ngFactoryType__) {
17662    return new (__ngFactoryType__ || _RenewSubscriptionComponent)();
17663  };
17664  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _RenewSubscriptionComponent, selectors: [["nmfta-renew-subscription"]], viewQuery: function RenewSubscriptionComponent_Query(rf, ctx) {
17665    if (rf & 1) {
17666      \u0275\u0275viewQuery(_c011, 5);
17667    }
17668    if (rf & 2) {
17669      let _t;
17670      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.stepper = _t.first);
17671    }
17672  }, decls: 4, vars: 4, consts: [["stepper", ""], [3, "title"], ["labelPosition", "end", 3, "linear", "orientation"], [3, "label", "completed"], [3, "user", "company", "enforceExistingEmail", "disableCSSelectExistingCompany", "isRenew"], [3, "isMember", "display", "apiProducts", "bfdProducts", "companyType", "subscriptionTier", "isBFDMode"], [3, "user", "display", "isCustomerService", "webProducts", "renewWebProduct", "renewWebLicenseCount", "renewMinLicenseCount", "isMember"], [3, "display", "paymentInitialCost"], [3, "display"], [3, "complete", "user", "company", "enforceExistingEmail", "disableCSSelectExistingCompany", "isRenew"], [3, "complete", "back", "isMember", "apiProducts", "bfdProducts", "companyType", "subscriptionTier", "isBFDMode"], [3, "complete", "back", "user", "isCustomerService", "webProducts", "renewWebProduct", "renewWebLicenseCount", "renewMinLicenseCount", "isMember"], [3, "complete", "back", "paymentInitialCost"], [3, "forward", "back"], [3, "back", "orderSubmitted"], [3, "theme"]], template: function RenewSubscriptionComponent_Template(rf, ctx) {
17673    if (rf & 1) {
17674      \u0275\u0275element(0, "nmfta-page-title", 1);
17675      \u0275\u0275pipe(1, "translate");
17676      \u0275\u0275conditionalCreate(2, RenewSubscriptionComponent_Conditional_2_Template, 4, 2, "mat-stepper", 2)(3, RenewSubscriptionComponent_Conditional_3_Template, 2, 4);
17677    }
17678    if (rf & 2) {
17679      \u0275\u0275property("title", \u0275\u0275pipeBind1(1, 2, "COMPANY_SETTINGS.RENEW_LICENSES.PAGE_TITLE"));
17680      \u0275\u0275advance(2);
17681      \u0275\u0275conditional(!ctx.isLoading$() ? 2 : 3);
17682    }
17683  }, dependencies: [
17684    PageTitleComponent,
17685    MatStepper,
17686    MatStep,
17687    PurchaseCompanyInfoComponent,
17688    PurchaseTiersComponent,
17689    PurchaseLicensesComponent,
17690    NgxSkeletonLoaderModule,
17691    NgxSkeletonLoaderComponent,
17692    PurchasePaymentComponent,
17693    PurchaseReviewComponent,
17694    PurchaseAgreementComponent,
17695    TranslatePipe
17696  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n[_nghost-%COMP%]   .mat-stepper-vertical[_ngcontent-%COMP%], \n[_nghost-%COMP%]   .mat-stepper-horizontal[_ngcontent-%COMP%] {\n  background: inherit;\n}\n[_nghost-%COMP%]     .input-wrapper {\n  gap: unset !important;\n}\n@media (max-width: 767.98px) {\n  [_nghost-%COMP%]   .mat-stepper-vertical[_ngcontent-%COMP%]     .mat-vertical-content {\n    padding: 0 0.75rem 0.75rem;\n  }\n  [_nghost-%COMP%]   .mat-stepper-vertical[_ngcontent-%COMP%]     .mat-step:last-child .mat-vertical-content-container {\n    margin-left: 0;\n    margin-top: 0.75rem;\n  }\n}\n/*# sourceMappingURL=renew-subscription.component-FDDLP7RN.css.map */"] });
17697};
17698(() => {
17699  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(RenewSubscriptionComponent, [{
17700    type: Component,
17701    args: [{ selector: "nmfta-renew-subscription", imports: [
17702      PageTitleComponent,
17703      TranslatePipe,
17704      MatStepper,
17705      MatStep,
17706      PurchaseCompanyInfoComponent,
17707      PurchaseTiersComponent,
17708      PurchaseLicensesComponent,
17709      NgxSkeletonLoaderModule,
17710      PurchasePaymentComponent,
17711      PurchaseReviewComponent,
17712      PurchaseAgreementComponent
17713    ], template: `<nmfta-page-title [title]="'COMPANY_SETTINGS.RENEW_LICENSES.PAGE_TITLE' | translate" />
17714
17715@if (!isLoading$()) {
17716
17717  <mat-stepper
17718    labelPosition="end"
17719    [linear]="true"
17720    [orientation]="isDesktop ? 'horizontal' : 'vertical'"
17721    #stepper>
17722
17723    @for (step of steps(); track step.id; let i = $index) {
17724
17725      <mat-step [label]="step.label" [completed]="completedSteps$()[i]">
17726
17727        @switch (step.id) {
17728
17729          @case ('company') {
17730            <nmfta-purchase-company-info
17731              [user]="companyPrimaryUser$()"
17732              [company]="renewSubscriptionInfo$()?.company"
17733              [enforceExistingEmail]="false"
17734              [disableCSSelectExistingCompany]="true"
17735              (complete)="markStepAsComplete('company')"
17736              [isRenew]="true" />
17737          }
17738
17739          @case ('tiers') {
17740            <nmfta-purchase-tiers
17741              [isMember]="isMember$()"
17742              [style.display]="stepper.selectedIndex === i ? 'block' : 'none'"
17743              [apiProducts]="apiProducts$()"
17744              [bfdProducts]="bfdProducts$()"
17745              [companyType]="companyType$()"
17746              [subscriptionTier]="renewSubscriptionInfo$()?.apiProduct?.subscriptionTier ?? 'National'"
17747              [isBFDMode]="productType$() === productTypes.BFD"
17748              (complete)="markStepAsComplete('tiers')"
17749              (back)="moveToPreviousStep()"/>
17750          }
17751
17752          @case ('licenses') {
17753            <nmfta-purchase-licenses
17754              [user]="user$()"
17755              [style.display]="stepper.selectedIndex === i ? 'block' : 'none'"
17756              [isCustomerService]="isCustomerService$()"
17757              [webProducts]="webProducts$()"
17758              [renewWebProduct]="renewSubscriptionInfo$()?.webProduct"
17759              [renewWebLicenseCount]="renewSubscriptionInfo$()?.companySubscriptions?.website?.licenses"
17760              [renewMinLicenseCount]="renewSubscriptionInfo$()?.assignedLicenses ?? 1"
17761              [isMember]="isMember$()"
17762              (complete)="markStepAsComplete('licenses')"
17763              (back)="moveToPreviousStep()"/>
17764          }
17765
17766          @case ('payment') {
17767            <nmfta-purchase-payment
17768              [style.display]="stepper.selectedIndex === i ? 'block' : 'none'"
17769              [paymentInitialCost]="getTotalCostInt(paymentInitialCost$())"
17770              (complete)="markStepAsComplete('payment')"
17771              (back)="moveToPreviousStep()"/>
17772          }
17773
17774          @case ('agreement') {
17775            <nmfta-purchase-agreement
17776              [style.display]="stepper.selectedIndex === i ? 'block' : 'none'"
17777              (forward)="markStepAsComplete('agreement')"
17778              (back)="moveToPreviousStep()" />
17779          }
17780
17781          @case ('review') {
17782            <nmfta-purchase-review
17783              (back)="moveToPreviousStep()"
17784              (orderSubmitted)="orderSubmitted()"/>
17785          }
17786
17787        }
17788      </mat-step>
17789    }
17790  </mat-stepper>
17791} @else {
17792  <ngx-skeleton-loader
17793    [theme]="{
17794      display: 'block',
17795      height: '48px',
17796      width: '100%',
17797      'border-radius': '0.5rem',
17798      'margin': '1.5rem 0',
17799    }" />
17800  <ngx-skeleton-loader
17801    [theme]="{
17802        'display': 'block',
17803        'height': 'calc(100% - 250px)',
17804        'width': '100%',
17805        'border-radius': '0.5rem',
17806        'margin': '1.5rem 0',
17807      }" />
17808}
17809`, styles: ["/* src/app/features/profile/components/renew-subscription/renew-subscription.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n:host .mat-stepper-vertical,\n:host .mat-stepper-horizontal {\n  background: inherit;\n}\n:host ::ng-deep .input-wrapper {\n  gap: unset !important;\n}\n@media (max-width: 767.98px) {\n  :host .mat-stepper-vertical ::ng-deep .mat-vertical-content {\n    padding: 0 0.75rem 0.75rem;\n  }\n  :host .mat-stepper-vertical ::ng-deep .mat-step:last-child .mat-vertical-content-container {\n    margin-left: 0;\n    margin-top: 0.75rem;\n  }\n}\n/*# sourceMappingURL=renew-subscription.component-FDDLP7RN.css.map */\n"] }]
17810  }], () => [], { stepper: [{
17811    type: ViewChild,
17812    args: ["stepper"]
17813  }] });
17814})();
17815(() => {
17816  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(RenewSubscriptionComponent, { className: "RenewSubscriptionComponent", filePath: "src/app/features/profile/components/renew-subscription/renew-subscription.component.ts", lineNumber: 50 });
17817})();
17818
17819// src/app/features/profile/components/company-user-activity/company-user-activity.component.ts
17820var _c012 = (a0) => ({ count: a0 });
17821var _c114 = () => ({ "border-radius": "0", height: "100%", "min-height": "45vh", width: "100%" });
17822var _forTrack08 = ($index, $item) => $item.id;
17823function CompanyUserActivityComponent_Conditional_11_Template(rf, ctx) {
17824  if (rf & 1) {
17825    const _r1 = \u0275\u0275getCurrentView();
17826    \u0275\u0275elementStart(0, "div", 9)(1, "form", 18)(2, "div", 1)(3, "div", 19)(4, "nmfta-input-wrapper", 20);
17827    \u0275\u0275pipe(5, "translate");
17828    \u0275\u0275element(6, "input", 21);
17829    \u0275\u0275pipe(7, "translate");
17830    \u0275\u0275elementEnd()();
17831    \u0275\u0275elementStart(8, "div", 19)(9, "nmfta-input-wrapper", 20);
17832    \u0275\u0275pipe(10, "translate");
17833    \u0275\u0275element(11, "input", 22);
17834    \u0275\u0275pipe(12, "translate");
17835    \u0275\u0275elementEnd()();
17836    \u0275\u0275elementStart(13, "div", 19)(14, "nmfta-input-wrapper", 20);
17837    \u0275\u0275pipe(15, "translate");
17838    \u0275\u0275element(16, "input", 23);
17839    \u0275\u0275pipe(17, "translate");
17840    \u0275\u0275elementEnd()()();
17841    \u0275\u0275elementStart(18, "div", 24)(19, "div", 19)(20, "nmfta-input-wrapper", 20);
17842    \u0275\u0275pipe(21, "translate");
17843    \u0275\u0275elementStart(22, "mat-date-range-input", 25);
17844    \u0275\u0275element(23, "input", 26)(24, "input", 27);
17845    \u0275\u0275elementEnd();
17846    \u0275\u0275element(25, "mat-datepicker-toggle", 28)(26, "mat-date-range-picker", null, 0);
17847    \u0275\u0275elementEnd()();
17848    \u0275\u0275elementStart(28, "div", 29)(29, "nmfta-input-wrapper", 20);
17849    \u0275\u0275pipe(30, "translate");
17850    \u0275\u0275elementStart(31, "mat-radio-group", 30)(32, "mat-radio-button", 31);
17851    \u0275\u0275text(33, "All");
17852    \u0275\u0275elementEnd();
17853    \u0275\u0275elementStart(34, "mat-radio-button", 32);
17854    \u0275\u0275text(35, "Assigned");
17855    \u0275\u0275elementEnd();
17856    \u0275\u0275elementStart(36, "mat-radio-button", 33);
17857    \u0275\u0275text(37, "Unassigned");
17858    \u0275\u0275elementEnd()()()()();
17859    \u0275\u0275elementStart(38, "div", 24)(39, "div", 34)(40, "nmfta-button", 35);
17860    \u0275\u0275listener("buttonClick", function CompanyUserActivityComponent_Conditional_11_Template_nmfta_button_buttonClick_40_listener() {
17861      \u0275\u0275restoreView(_r1);
17862      const ctx_r1 = \u0275\u0275nextContext();
17863      return \u0275\u0275resetView(ctx_r1.clearFilters());
17864    });
17865    \u0275\u0275text(41);
17866    \u0275\u0275pipe(42, "translate");
17867    \u0275\u0275elementEnd();
17868    \u0275\u0275elementStart(43, "nmfta-button", 36);
17869    \u0275\u0275listener("buttonClick", function CompanyUserActivityComponent_Conditional_11_Template_nmfta_button_buttonClick_43_listener() {
17870      \u0275\u0275restoreView(_r1);
17871      const ctx_r1 = \u0275\u0275nextContext();
17872      return \u0275\u0275resetView(ctx_r1.applyFilters());
17873    });
17874    \u0275\u0275text(44);
17875    \u0275\u0275pipe(45, "translate");
17876    \u0275\u0275elementEnd()()()()();
17877  }
17878  if (rf & 2) {
17879    const picker_r3 = \u0275\u0275reference(27);
17880    const ctx_r1 = \u0275\u0275nextContext();
17881    \u0275\u0275advance();
17882    \u0275\u0275property("formGroup", ctx_r1.filtersForm);
17883    \u0275\u0275advance(3);
17884    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(5, 22, "Generic_FirstName")));
17885    \u0275\u0275advance(2);
17886    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(7, 24, "Generic_FirstName")));
17887    \u0275\u0275advance(3);
17888    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(10, 26, "Generic_LastName")));
17889    \u0275\u0275advance(2);
17890    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(12, 28, "Generic_LastName")));
17891    \u0275\u0275advance(3);
17892    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(15, 30, "Generic_EmailAddress")));
17893    \u0275\u0275advance(2);
17894    \u0275\u0275property("placeholder", \u0275\u0275interpolate(\u0275\u0275pipeBind1(17, 32, "Generic_EmailAddress")));
17895    \u0275\u0275advance(4);
17896    \u0275\u0275property("label", \u0275\u0275pipeBind1(21, 34, "SHARED.DATE_RANGES.CUSTOM_RANGE"));
17897    \u0275\u0275advance(2);
17898    \u0275\u0275property("rangePicker", picker_r3)("min", ctx_r1.minDate);
17899    \u0275\u0275advance(3);
17900    \u0275\u0275property("for", picker_r3);
17901    \u0275\u0275advance(4);
17902    \u0275\u0275property("label", \u0275\u0275interpolate(\u0275\u0275pipeBind1(30, 36, "Generic_LicenseStatus")));
17903    \u0275\u0275advance(12);
17904    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(42, 38, "Generic_Clear_Filters"), " ");
17905    \u0275\u0275advance(2);
17906    \u0275\u0275property("disabled", !ctx_r1.filtersForm.valid);
17907    \u0275\u0275advance();
17908    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(45, 40, "Generic_Apply_Filters"), " ");
17909  }
17910}
17911function CompanyUserActivityComponent_Conditional_12_Template(rf, ctx) {
17912  if (rf & 1) {
17913    \u0275\u0275elementStart(0, "div", 10);
17914    \u0275\u0275element(1, "ngx-skeleton-loader", 37);
17915    \u0275\u0275elementEnd();
17916  }
17917  if (rf & 2) {
17918    \u0275\u0275advance();
17919    \u0275\u0275property("theme", \u0275\u0275pureFunction0(1, _c114));
17920  }
17921}
17922function CompanyUserActivityComponent_Conditional_13_For_4_Template(rf, ctx) {
17923  if (rf & 1) {
17924    \u0275\u0275element(0, "col");
17925  }
17926  if (rf & 2) {
17927    const col_r5 = ctx.$implicit;
17928    \u0275\u0275styleProp("width", col_r5.width);
17929  }
17930}
17931function CompanyUserActivityComponent_Conditional_13_For_6_Conditional_1_th_0_Template(rf, ctx) {
17932  if (rf & 1) {
17933    \u0275\u0275elementStart(0, "th", 43);
17934    \u0275\u0275text(1);
17935    \u0275\u0275pipe(2, "translate");
17936    \u0275\u0275elementEnd();
17937  }
17938  if (rf & 2) {
17939    const col_r6 = \u0275\u0275nextContext(2).$implicit;
17940    \u0275\u0275advance();
17941    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, col_r6.value), " ");
17942  }
17943}
17944function CompanyUserActivityComponent_Conditional_13_For_6_Conditional_1_Template(rf, ctx) {
17945  if (rf & 1) {
17946    \u0275\u0275template(0, CompanyUserActivityComponent_Conditional_13_For_6_Conditional_1_th_0_Template, 3, 3, "th", 46);
17947  }
17948}
17949function CompanyUserActivityComponent_Conditional_13_For_6_Conditional_2_th_0_Template(rf, ctx) {
17950  if (rf & 1) {
17951    \u0275\u0275elementStart(0, "th", 44);
17952    \u0275\u0275text(1);
17953    \u0275\u0275pipe(2, "translate");
17954    \u0275\u0275elementEnd();
17955  }
17956  if (rf & 2) {
17957    const col_r6 = \u0275\u0275nextContext(2).$implicit;
17958    \u0275\u0275advance();
17959    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, col_r6.value), " ");
17960  }
17961}
17962function CompanyUserActivityComponent_Conditional_13_For_6_Conditional_2_Template(rf, ctx) {
17963  if (rf & 1) {
17964    \u0275\u0275template(0, CompanyUserActivityComponent_Conditional_13_For_6_Conditional_2_th_0_Template, 3, 3, "th", 47);
17965  }
17966}
17967function CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_1_Template(rf, ctx) {
17968  if (rf & 1) {
17969    \u0275\u0275elementStart(0, "nmfta-cell");
17970    \u0275\u0275text(1);
17971    \u0275\u0275elementEnd();
17972  }
17973  if (rf & 2) {
17974    const user_r7 = \u0275\u0275nextContext().$implicit;
17975    const col_r6 = \u0275\u0275nextContext().$implicit;
17976    \u0275\u0275advance();
17977    \u0275\u0275textInterpolate1(" ", user_r7[col_r6.id], " ");
17978  }
17979}
17980function CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_2_Conditional_1_Template(rf, ctx) {
17981  if (rf & 1) {
17982    \u0275\u0275element(0, "nmfta-icon", 49);
17983  }
17984}
17985function CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_2_Conditional_2_Template(rf, ctx) {
17986  if (rf & 1) {
17987    \u0275\u0275element(0, "nmfta-icon", 50);
17988  }
17989}
17990function CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_2_Template(rf, ctx) {
17991  if (rf & 1) {
17992    \u0275\u0275elementStart(0, "nmfta-cell");
17993    \u0275\u0275conditionalCreate(1, CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_2_Conditional_1_Template, 1, 0, "nmfta-icon", 49)(2, CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_2_Conditional_2_Template, 1, 0, "nmfta-icon", 50);
17994    \u0275\u0275elementEnd();
17995  }
17996  if (rf & 2) {
17997    const user_r7 = \u0275\u0275nextContext().$implicit;
17998    const col_r6 = \u0275\u0275nextContext().$implicit;
17999    \u0275\u0275advance();
18000    \u0275\u0275conditional(user_r7[col_r6.id] ? 1 : 2);
18001  }
18002}
18003function CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_3_Template(rf, ctx) {
18004  if (rf & 1) {
18005    \u0275\u0275elementStart(0, "nmfta-cell");
18006    \u0275\u0275text(1);
18007    \u0275\u0275elementEnd();
18008  }
18009  if (rf & 2) {
18010    const user_r7 = \u0275\u0275nextContext().$implicit;
18011    const col_r6 = \u0275\u0275nextContext().$implicit;
18012    \u0275\u0275advance();
18013    \u0275\u0275textInterpolate1(" ", user_r7[col_r6.id], " ");
18014  }
18015}
18016function CompanyUserActivityComponent_Conditional_13_For_6_td_3_Template(rf, ctx) {
18017  if (rf & 1) {
18018    \u0275\u0275elementStart(0, "td", 48);
18019    \u0275\u0275conditionalCreate(1, CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_1_Template, 2, 1, "nmfta-cell")(2, CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_2_Template, 3, 1, "nmfta-cell")(3, CompanyUserActivityComponent_Conditional_13_For_6_td_3_Conditional_3_Template, 2, 1, "nmfta-cell");
18020    \u0275\u0275elementEnd();
18021  }
18022  if (rf & 2) {
18023    const col_r6 = \u0275\u0275nextContext().$implicit;
18024    \u0275\u0275classMap(col_r6.id);
18025    \u0275\u0275advance();
18026    \u0275\u0275conditional(col_r6.id === "lastLogin" ? 1 : col_r6.id === "isLicensed" ? 2 : 3);
18027  }
18028}
18029function CompanyUserActivityComponent_Conditional_13_For_6_Template(rf, ctx) {
18030  if (rf & 1) {
18031    \u0275\u0275elementContainerStart(0, 40);
18032    \u0275\u0275conditionalCreate(1, CompanyUserActivityComponent_Conditional_13_For_6_Conditional_1_Template, 1, 0, "th", 43)(2, CompanyUserActivityComponent_Conditional_13_For_6_Conditional_2_Template, 1, 0, "th", 44);
18033    \u0275\u0275template(3, CompanyUserActivityComponent_Conditional_13_For_6_td_3_Template, 4, 3, "td", 45);
18034    \u0275\u0275elementContainerEnd();
18035  }
18036  if (rf & 2) {
18037    const col_r6 = ctx.$implicit;
18038    \u0275\u0275property("matColumnDef", col_r6.id);
18039    \u0275\u0275advance();
18040    \u0275\u0275conditional(col_r6.id === "loginCount" || col_r6.id === "isLicensed" ? 1 : 2);
18041  }
18042}
18043function CompanyUserActivityComponent_Conditional_13_tr_7_Template(rf, ctx) {
18044  if (rf & 1) {
18045    \u0275\u0275element(0, "tr", 51);
18046  }
18047}
18048function CompanyUserActivityComponent_Conditional_13_tr_8_Template(rf, ctx) {
18049  if (rf & 1) {
18050    \u0275\u0275element(0, "tr", 52);
18051  }
18052}
18053function CompanyUserActivityComponent_Conditional_13_Template(rf, ctx) {
18054  if (rf & 1) {
18055    const _r4 = \u0275\u0275getCurrentView();
18056    \u0275\u0275elementStart(0, "div", 11)(1, "table", 38);
18057    \u0275\u0275listener("matSortChange", function CompanyUserActivityComponent_Conditional_13_Template_table_matSortChange_1_listener($event) {
18058      \u0275\u0275restoreView(_r4);
18059      const ctx_r1 = \u0275\u0275nextContext();
18060      return \u0275\u0275resetView(ctx_r1.onSortChange($event));
18061    });
18062    \u0275\u0275elementStart(2, "colgroup");
18063    \u0275\u0275repeaterCreate(3, CompanyUserActivityComponent_Conditional_13_For_4_Template, 1, 2, "col", 39, _forTrack08);
18064    \u0275\u0275elementEnd();
18065    \u0275\u0275repeaterCreate(5, CompanyUserActivityComponent_Conditional_13_For_6_Template, 4, 2, "ng-container", 40, _forTrack08);
18066    \u0275\u0275template(7, CompanyUserActivityComponent_Conditional_13_tr_7_Template, 1, 0, "tr", 41)(8, CompanyUserActivityComponent_Conditional_13_tr_8_Template, 1, 0, "tr", 42);
18067    \u0275\u0275elementEnd()();
18068  }
18069  if (rf & 2) {
18070    const ctx_r1 = \u0275\u0275nextContext();
18071    \u0275\u0275advance();
18072    \u0275\u0275property("dataSource", ctx_r1.dataSource)("matSortActive", ctx_r1.sortBy$())("matSortDirection", ctx_r1.direction$());
18073    \u0275\u0275advance(2);
18074    \u0275\u0275repeater(ctx_r1.columns.display);
18075    \u0275\u0275advance(2);
18076    \u0275\u0275repeater(ctx_r1.columns.display);
18077    \u0275\u0275advance(2);
18078    \u0275\u0275property("matHeaderRowDef", ctx_r1.columns.ids);
18079    \u0275\u0275advance();
18080    \u0275\u0275property("matRowDefColumns", ctx_r1.columns.ids);
18081  }
18082}
18083var CompanyUserActivityComponent = class _CompanyUserActivityComponent {
18084  fb;
18085  // DI Services
18086  userStore = inject(UserStore);
18087  companyStore = inject(CompanyStore);
18088  companyService = inject(CompanyService);
18089  fileDownloadService = inject(FileDownloadService);
18090  router = inject(Router);
18091  // Component properties
18092  isExporting = false;
18093  networkState$ = this.companyStore.reporting.networkState;
18094  company$ = this.companyStore.company;
18095  user$ = this.userStore.user;
18096  total$ = this.companyStore.userActivityReportTotal;
18097  pageSize$ = this.companyStore.userActivityReportSize;
18098  pageIndex$ = this.companyStore.userActivityReportPage;
18099  sortBy$ = this.companyStore.userActivityReportSortBy;
18100  direction$ = this.companyStore.userActivityReportDirection;
18101  networkStates = ReportingNetworkState;
18102  columns = {
18103    ids: ["firstName", "lastName", "email", "lastLogin", "loginCount", "isLicensed"],
18104    display: [
18105      {
18106        id: "firstName",
18107        value: "First Name",
18108        width: "auto"
18109      },
18110      {
18111        id: "lastName",
18112        value: "Last Name",
18113        width: "auto"
18114      },
18115      {
18116        id: "email",
18117        value: "Email",
18118        width: "30%"
18119      },
18120      {
18121        id: "lastLogin",
18122        value: "Last Login (UTC)",
18123        width: "auto"
18124      },
18125      {
18126        id: "loginCount",
18127        value: "Login Count",
18128        width: "auto"
18129      },
18130      {
18131        id: "isLicensed",
18132        value: "License Status",
18133        width: "150px"
18134      }
18135    ]
18136  };
18137  pageSizeOptions = [10, 20, 50, 100];
18138  minDate = new Date(2025, 6, 15);
18139  dataSource = new MatTableDataSource();
18140  filtersForm;
18141  displayFilters = signal(false, ...ngDevMode ? [{ debugName: "displayFilters" }] : []);
18142  filterAction = computed(() => [
18143    {
18144      id: "filter-user-activity",
18145      styleType: "light",
18146      rightIcon: this.displayFilters() ? "filter_list_off" : "filter_list",
18147      label: this.displayFilters() ? "SHARED.HIDE_FILTERS" : "SHARED.SHOW_FILTERS",
18148      onClick: () => {
18149        this.displayFilters.set(!this.displayFilters());
18150      }
18151    }
18152  ], ...ngDevMode ? [{ debugName: "filterAction" }] : []);
18153  // Component actions
18154  constructor(fb) {
18155    this.fb = fb;
18156    effect(() => {
18157      this.dataSource.data = this.companyStore.companyUserActivityTableSource();
18158    });
18159    this.filtersForm = this.fb.group({
18160      startDate: new FormControl(null),
18161      endDate: new FormControl(null),
18162      firstName: new FormControl(""),
18163      lastName: new FormControl(""),
18164      email: new FormControl(""),
18165      licenseStatus: new FormControl("all")
18166    });
18167    this.loadUserActivity();
18168  }
18169  ngOnInit() {
18170    this.companyStore.setReportingNetworkState(ReportingNetworkState.LOADING);
18171  }
18172  exportExcel() {
18173    return __async(this, null, function* () {
18174      this.isExporting = true;
18175      try {
18176        yield this.fileDownloadService.downloadFile(new URL("company/GetCompanyUserActivityReport", environment.apiUrl).href, "user_activity_report.csv", {
18177          companyId: this.router.routerState.snapshot.root.queryParams["companyId"] ?? this.user$().companyId,
18178          shouldExportExcel: true,
18179          firstName: this.filtersForm.get("firstName")?.value ?? null,
18180          lastName: this.filtersForm.get("lastName")?.value ?? null,
18181          email: this.filtersForm.get("email")?.value ?? null,
18182          licenseStatus: this.filtersForm.get("licenseStatus")?.value ?? "all",
18183          startDate: this.filtersForm.get("startDate")?.value ?? null,
18184          endDate: this.filtersForm.get("endDate")?.value ?? null,
18185          page: this.pageIndex$(),
18186          size: this.pageSize$(),
18187          sortBy: this.sortBy$(),
18188          sortDirection: this.direction$()
18189        });
18190      } catch {
18191        console.error("Failed to export excel");
18192      }
18193      this.isExporting = false;
18194    });
18195  }
18196  loadUserActivity() {
18197    this.companyStore.getCompanyUserActivityReport({
18198      companyId: this.router.routerState.snapshot.root.queryParams["companyId"] ?? this.user$().companyId,
18199      shouldExportExcel: false,
18200      firstName: this.filtersForm.get("firstName")?.value ?? null,
18201      lastName: this.filtersForm.get("lastName")?.value ?? null,
18202      email: this.filtersForm.get("email")?.value ?? null,
18203      startDate: this.filtersForm.get("startDate")?.value ?? null,
18204      endDate: this.filtersForm.get("endDate")?.value ?? null,
18205      licenseStatus: this.filtersForm.get("licenseStatus")?.value ?? "all",
18206      page: this.pageIndex$(),
18207      size: this.pageSize$(),
18208      sortBy: this.sortBy$(),
18209      sortDirection: this.direction$()
18210    });
18211  }
18212  onPageChange(pageEvent) {
18213    this.companyStore.setUserActivityPage(pageEvent);
18214    this.loadUserActivity();
18215  }
18216  onSortChange(sort) {
18217    this.companyStore.setUserActivitySort(sort);
18218    this.loadUserActivity();
18219  }
18220  clearFilters() {
18221    this.filtersForm.reset({
18222      firstName: "",
18223      lastName: "",
18224      email: "",
18225      licenseStatus: "all",
18226      startDate: null,
18227      endDate: null
18228    });
18229    this.loadUserActivity();
18230  }
18231  applyFilters() {
18232    this.companyStore.resetUserActivityPage(0);
18233    this.loadUserActivity();
18234  }
18235  static \u0275fac = function CompanyUserActivityComponent_Factory(__ngFactoryType__) {
18236    return new (__ngFactoryType__ || _CompanyUserActivityComponent)(\u0275\u0275directiveInject(FormBuilder));
18237  };
18238  static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _CompanyUserActivityComponent, selectors: [["nmfta-company-user-activity"]], decls: 22, vars: 22, consts: [["picker", ""], [1, "row"], [1, "col-auto", "pb-4"], [3, "title"], [1, "col-12", "col-md", "pb-4"], [1, "text-end"], ["styleType", "outlined", "leftIcon", "description", 3, "buttonClick", "disabled"], [1, "my-3"], ["title", "User Activity", 3, "titleIcon", "headerActions"], ["header-content", "", 1, "mt-3"], [1, "w-100", "h-100", "d-grid"], [1, "table-wrapper"], ["footer-content", ""], [1, "row", "w-100", "gap-3", "justify-content-between", "align-items-center"], [1, "col"], [1, "total-label"], [1, "col-12", "col-lg-auto"], [3, "page", "showFirstLastButtons", "pageSize", "pageIndex", "length", "pageSizeOptions"], [3, "formGroup"], [1, "col-12", "col-md-6", "col-xl-4"], [3, "label"], ["matInput", "", "type", "text", "name", "firstName", "formControlName", "firstName", 3, "placeholder"], ["matInput", "", "type", "text", "name", "lastName", "formControlName", "lastName", 3, "placeholder"], ["matInput", "", "type", "email", "name", "email", "formControlName", "email", 3, "placeholder"], [1, "row", "mt-1"], [3, "rangePicker", "min"], ["matStartDate", "", "nmftaDateMask", "", "formControlName", "startDate", "placeholder", "Start date"], ["matEndDate", "", "nmftaDateMask", "", "formControlName", "endDate", "placeholder", "End date"], ["matSuffix", "", 3, "for"], [1, "col-12", "col-md", "pb-3", "pb-md-0"], ["aria-label", "License Status", "formControlName", "licenseStatus"], ["value", "all"], ["value", "assigned"], ["value", "unassigned"], [1, "col", "pt-3", "pt-lg-0", "align-items-end", "d-flex", "gap-2", "justify-content-end"], ["styleType", "outlined", "rightIcon", "close", 3, "buttonClick"], ["styleType", "contained", 3, "buttonClick", "disabled"], [3, "theme"], ["mat-table", "", "matSort", "", 3, "matSortChange", "dataSource", "matSortActive", "matSortDirection"], [3, "width"], [3, "matColumnDef"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 4, "matRowDef", "matRowDefColumns"], ["mat-header-cell", ""], ["mat-header-cell", "", "mat-sort-header", ""], ["mat-cell", "", 3, "class", 4, "matCellDef"], ["mat-header-cell", "", 4, "matHeaderCellDef"], ["mat-header-cell", "", "mat-sort-header", "", 4, "matHeaderCellDef"], ["mat-cell", ""], ["name", "check_circle", "color", "accent"], ["name", "cancel", "color", "error"], ["mat-header-row", ""], ["mat-row", ""]], template: function CompanyUserActivityComponent_Template(rf, ctx) {
18239    if (rf & 1) {
18240      \u0275\u0275elementStart(0, "div", 1)(1, "div", 2);
18241      \u0275\u0275element(2, "nmfta-page-title", 3);
18242      \u0275\u0275pipe(3, "translate");
18243      \u0275\u0275elementEnd();
18244      \u0275\u0275elementStart(4, "div", 4)(5, "div", 5)(6, "nmfta-button", 6);
18245      \u0275\u0275listener("buttonClick", function CompanyUserActivityComponent_Template_nmfta_button_buttonClick_6_listener() {
18246        return ctx.exportExcel();
18247      });
18248      \u0275\u0275text(7);
18249      \u0275\u0275pipe(8, "translate");
18250      \u0275\u0275elementEnd()()();
18251      \u0275\u0275elementStart(9, "div", 7)(10, "nmfta-card", 8);
18252      \u0275\u0275conditionalCreate(11, CompanyUserActivityComponent_Conditional_11_Template, 46, 42, "div", 9);
18253      \u0275\u0275conditionalCreate(12, CompanyUserActivityComponent_Conditional_12_Template, 2, 2, "div", 10)(13, CompanyUserActivityComponent_Conditional_13_Template, 9, 5, "div", 11);
18254      \u0275\u0275elementStart(14, "div", 12)(15, "div", 13)(16, "div", 14)(17, "span", 15);
18255      \u0275\u0275text(18);
18256      \u0275\u0275pipe(19, "translate");
18257      \u0275\u0275elementEnd()();
18258      \u0275\u0275elementStart(20, "div", 16)(21, "mat-paginator", 17);
18259      \u0275\u0275listener("page", function CompanyUserActivityComponent_Template_mat_paginator_page_21_listener($event) {
18260        return ctx.onPageChange($event);
18261      });
18262      \u0275\u0275elementEnd()()()()()()();
18263    }
18264    if (rf & 2) {
18265      \u0275\u0275advance(2);
18266      \u0275\u0275property("title", \u0275\u0275pipeBind1(3, 13, "COMPANY_SETTINGS.USER_ACTIVITY_REPORT.PAGE_TITLE"));
18267      \u0275\u0275advance(4);
18268      \u0275\u0275property("disabled", ctx.isExporting);
18269      \u0275\u0275advance();
18270      \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(8, 15, "Generic_Export"), " ");
18271      \u0275\u0275advance(3);
18272      \u0275\u0275property("titleIcon", "group")("headerActions", ctx.filterAction);
18273      \u0275\u0275advance();
18274      \u0275\u0275conditional(ctx.displayFilters() ? 11 : -1);
18275      \u0275\u0275advance();
18276      \u0275\u0275conditional(ctx.networkState$() === ctx.networkStates.LOADING ? 12 : 13);
18277      \u0275\u0275advance(6);
18278      \u0275\u0275textInterpolate(\u0275\u0275pipeBind2(19, 17, "Generic_Results_Found", \u0275\u0275pureFunction1(20, _c012, ctx.total$())));
18279      \u0275\u0275advance(3);
18280      \u0275\u0275property("showFirstLastButtons", true)("pageSize", ctx.pageSize$())("pageIndex", ctx.pageIndex$())("length", ctx.total$())("pageSizeOptions", ctx.pageSizeOptions);
18281    }
18282  }, dependencies: [
18283    PageTitleComponent,
18284    ButtonComponent,
18285    InputWrapperComponent,
18286    CardComponent,
18287    NgxSkeletonLoaderModule,
18288    NgxSkeletonLoaderComponent,
18289    MatTable,
18290    MatSort,
18291    MatSortHeader,
18292    MatHeaderRow,
18293    MatRow,
18294    MatRowDef,
18295    MatHeaderRowDef,
18296    CellComponent,
18297    MatCell,
18298    MatCellDef,
18299    ReactiveFormsModule,
18300    \u0275NgNoValidate,
18301    DefaultValueAccessor,
18302    NgControlStatus,
18303    NgControlStatusGroup,
18304    FormGroupDirective,
18305    FormControlName,
18306    MatHeaderCell,
18307    MatColumnDef,
18308    MatHeaderCellDef,
18309    MatPaginator,
18310    MatRadioModule,
18311    MatRadioGroup,
18312    MatRadioButton,
18313    MatDatepickerModule,
18314    MatDatepickerToggle,
18315    MatDateRangeInput,
18316    MatStartDate,
18317    MatEndDate,
18318    MatDateRangePicker,
18319    MatNativeDateModule,
18320    MatFormFieldModule,
18321    MatSuffix,
18322    NmftaDateMaskDirective,
18323    NMFTAIconComponent,
18324    TranslatePipe
18325  ], styles: ["\n\n[_ngcontent-%COMP%]:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.table-wrapper[_ngcontent-%COMP%] {\n  display: block;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-table[_ngcontent-%COMP%] {\n  width: 100%;\n  height: 100%;\n  background-color: #ffffff;
18325\n  overflow-y: scroll;\n  table-layout: fixed;\n  overflow-x: auto;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%] {\n  width: 100%;\n  height: 3.125rem;\n  min-height: 3.5rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .is-group-row[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .is-group-row[_ngcontent-%COMP%] {\n  background: #f9f9f9;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%] {\n  border-bottom: 1px solid #e8e8e8 !important;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%] {\n  font-size: 0.75rem;\n  padding: 0 0.75rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%]:first-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%]:first-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%]:first-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%]:first-of-type {\n  padding-left: 1.5rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%]:last-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%]:last-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%]:last-of-type, \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%]:last-of-type {\n  padding-right: 1.5rem;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-header-cell[_ngcontent-%COMP%] {\n  color: #000000;\n  font-size: 0.75rem;\n  font-style: normal;\n  font-weight: 300;\n  line-height: normal;\n  text-align: left;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%], \n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-header-row[_ngcontent-%COMP%]   .mat-mdc-cell[_ngcontent-%COMP%] {\n  border-bottom-style: none;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]:nth-child(odd) {\n  background-color: #fcfcfc !important;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]:nth-child(even) {\n  background-color: #ffffff !important;\n}\n.table-wrapper[_ngcontent-%COMP%]   .mat-mdc-row[_ngcontent-%COMP%]:hover {\n  background: #f2f2f2 !important;\n}\n[_nghost-%COMP%]     mat-card {\n  overflow-x: auto !important;\n}\n[_nghost-%COMP%]     .mat-mdc-card-content {\n  padding: 0 !important;\n  gap: 0 !important;\n}\n[_nghost-%COMP%]     .mat-mdc-card-footer .mat-mdc-paginator {\n  padding-top: 0 !important;\n  background-color: #FFFFFF;\n}\n[_nghost-%COMP%]     table {\n  background-color: #FFFFFF;\n}\n[_nghost-%COMP%]     .text-center .mat-sort-header-container {\n  justify-content: center;\n}\n[_nghost-%COMP%]     .mat-mdc-header-row, \n[_nghost-%COMP%]     .mat-mdc-row, \n[_nghost-%COMP%]     .mdc-data-table__content {\n  font-size: 0.75rem;\n}\n[_nghost-%COMP%]     .page-title {\n  width: 100%;\n  justify-content: space-between;\n}\n[_nghost-%COMP%]   .total-label[_ngcontent-%COMP%] {\n  color: #000000;\n  font-size: 0.75rem;\n  font-style: normal;\n  font-weight: 300;\n  line-height: normal;\n}\n.footer[_ngcontent-%COMP%] {\n  display: flex;\n  justify-content: flex-end;\n  gap: 0.75rem;\n  border-top: 1px solid #e1e1e1;\n}\n.table-wrapper[_ngcontent-%COMP%]   table[_ngcontent-%COMP%] {\n  min-width: 1000px;\n}\n/*# sourceMappingURL=company-user-activity.component-NYZNHEMP.css.map */"] });
18326};
18327(() => {
18328  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CompanyUserActivityComponent, [{
18329    type: Component,
18330    args: [{ selector: "nmfta-company-user-activity", imports: [
18331      PageTitleComponent,
18332      TranslatePipe,
18333      ButtonComponent,
18334      InputWrapperComponent,
18335      CardComponent,
18336      NgxSkeletonLoaderModule,
18337      MatTable,
18338      MatSort,
18339      MatSortHeader,
18340      MatHeaderRow,
18341      MatRow,
18342      MatRowDef,
18343      MatHeaderRowDef,
18344      CellComponent,
18345      MatCell,
18346      MatCellDef,
18347      ReactiveFormsModule,
18348      MatHeaderCell,
18349      MatColumnDef,
18350      MatHeaderCellDef,
18351      MatPaginator,
18352      MatRadioModule,
18353      MatDatepickerModule,
18354      MatNativeDateModule,
18355      MatFormFieldModule,
18356      NmftaDateMaskDirective,
18357      NMFTAIconComponent
18358    ], template: `<div class="row">
18359  <div class="col-auto pb-4">
18360    <nmfta-page-title [title]="'COMPANY_SETTINGS.USER_ACTIVITY_REPORT.PAGE_TITLE' | translate"></nmfta-page-title>
18361  </div>
18362  <div class="col-12 col-md pb-4">
18363    <div class="text-end">
18364      <nmfta-button styleType="outlined"
18365                    leftIcon="description"
18366                    (buttonClick)="exportExcel()"
18367                    [disabled]="isExporting"
18368      >
18369        {{ 'Generic_Export' | translate }}
18370      </nmfta-button>
18371    </div>
18372  </div>
18373  <!-- USER ACTIVITY TABLE -->
18374  <div class="my-3">
18375    <nmfta-card title="User Activity"
18376                [titleIcon]="'group'"
18377                [headerActions]="filterAction">
18378      @if (displayFilters()) {
18379        <div header-content class="mt-3">
18380          <form [formGroup]="filtersForm">
18381            <div class="row">
18382               <div class="col-12 col-md-6 col-xl-4">
18383                <nmfta-input-wrapper label="{{ 'Generic_FirstName' | translate }}">
18384                  <input
18385                    matInput
18386                    type="text"
18387                    name="firstName"
18388                    formControlName="firstName"
18389                    placeholder="{{ 'Generic_FirstName' | translate }}" />
18390                </nmfta-input-wrapper>
18391              </div>
18392              <div class="col-12 col-md-6 col-xl-4">
18393                <nmfta-input-wrapper label="{{ 'Generic_LastName' | translate }}">
18394                  <input
18395                    matInput
18396                    type="text"
18397                    name="lastName"
18398                    formControlName="lastName"
18399                    placeholder="{{ 'Generic_LastName' | translate }}" />
18400                </nmfta-input-wrapper>
18401              </div>
18402              <div class="col-12 col-md-6 col-xl-4">
18403                <nmfta-input-wrapper label="{{ 'Generic_EmailAddress' | translate }}">
18404                  <input
18405                    matInput
18406                    type="email"
18407                    name="email"
18408                    formControlName="email"
18409                    placeholder="{{ 'Generic_EmailAddress' | translate }}" />
18410                </nmfta-input-wrapper>
18411              </div>
18412            </div>
18413            <div class="row mt-1">
18414              <div class="col-12 col-md-6 col-xl-4">
18415                <nmfta-input-wrapper [label]="'SHARED.DATE_RANGES.CUSTOM_RANGE' | translate">
18416                  <mat-date-range-input 
18417                    [rangePicker]="picker" 
18418                    [min]="minDate">
18419                    <input matStartDate nmftaDateMask formControlName="startDate" placeholder="Start date"/>
18420                    <input matEndDate nmftaDateMask formControlName="endDate" placeholder="End date" />
18421                  </mat-date-range-input>
18422                  <mat-datepicker-toggle matSuffix [for]="picker" />
18423                  <mat-date-range-picker #picker/>
18424                </nmfta-input-wrapper>
18425              </div>
18426              <div class="col-12 col-md pb-3 pb-md-0">
18427                <nmfta-input-wrapper label="{{ 'Generic_LicenseStatus' | translate }}">
18428                  <mat-radio-group aria-label="License Status" formControlName="licenseStatus">
18429                    <mat-radio-button value="all">All</mat-radio-button>
18429
18430                    <mat-radio-button value="assigned">Assigned</mat-radio-button>
18431                    <mat-radio-button value="unassigned">Unassigned</mat-radio-button>
18432                  </mat-radio-group>
18433                </nmfta-input-wrapper>
18434              </div>
18435            </div>
18436
18437            <div class="row mt-1">
18438              <div class="col pt-3 pt-lg-0 align-items-end d-flex gap-2 justify-content-end">
18439                <nmfta-button styleType="outlined" rightIcon="close" (buttonClick)="clearFilters()">
18440                  {{ 'Generic_Clear_Filters' | translate }}
18441                </nmfta-button>
18442
18443                <nmfta-button 
18444                  styleType="contained" 
18445                  (buttonClick)="applyFilters()"
18446                  [disabled]="!filtersForm.valid"
18447                >
18448                  {{ 'Generic_Apply_Filters' | translate }}
18449                </nmfta-button>
18450              </div>
18451            </div>
18452          </form>
18453        </div>
18454      }
18455      @if (networkState$() === networkStates.LOADING) {
18456        <div class="w-100 h-100 d-grid">
18457          <ngx-skeleton-loader
18458            [theme]="{
18459            'border-radius': '0',
18460            height: '100%',
18461            'min-height': '45vh',
18462            width: '100%'
18463          }">
18464          </ngx-skeleton-loader>
18465        </div>
18466      } @else {
18467        <div class="table-wrapper">
18468          <table mat-table [dataSource]="dataSource" 
18469            matSort
18470            [matSortActive]="sortBy$()"
18471            [matSortDirection]="direction$()"
18472            (matSortChange)="onSortChange($event)"
18473          >
18474            <colgroup>
18475              @for (col of columns.display; track col.id) {
18476                <col [style.width]="col.width" />
18477              }
18478            </colgroup>
18479            @for (col of columns.display; track col.id) {
18480              <ng-container [matColumnDef]="col.id">
18481                @if (col.id === 'loginCount' || col.id === 'isLicensed') {
18482                  <th mat-header-cell *matHeaderCellDef>
18483                    {{ col.value | translate }}
18484                  </th>
18485                } @else {
18486                  <th mat-header-cell *matHeaderCellDef mat-sort-header>
18487                    {{ col.value | translate }}
18488                  </th>
18489                }
18490
18491                <td class="{{ col.id }}" mat-cell *matCellDef="let user">
18492                  @if (col.id === 'lastLogin') {
18493                    <nmfta-cell>
18494                      {{ user[col.id] }}
18495                    </nmfta-cell>
18496                  } 
18497                  @else if (col.id === 'isLicensed') {
18498                    <nmfta-cell>
18499                      @if (user[col.id]) {
18500                        <nmfta-icon name="check_circle" color="accent"></nmfta-icon>
18501                      } @else {
18502                        <nmfta-icon name="cancel" color="error"></nmfta-icon>
18503                      }
18504                    </nmfta-cell>
18505                  }
18506                  @else {
18507                    <nmfta-cell>
18508                      {{ user[col.id] }}
18509                    </nmfta-cell> 
18510                  }
18511                </td>
18512
18513              </ng-container>
18514            }
18515            <tr mat-header-row *matHeaderRowDef="columns.ids"></tr>
18516            <tr mat-row *matRowDef="let row; columns: columns.ids"></tr>
18517          </table>
18518        </div>
18519      }
18520
18521      <div footer-content>
18522        <div class="row w-100 gap-3 justify-content-between align-items-center">
18523          <div class="col">
18524              <span class="total-label">{{ 'Generic_Results_Found' | translate:{ count: total$()} }}</span>
18525          </div>
18526          <div class="col-12 col-lg-auto">
18527            <mat-paginator
18528              [showFirstLastButtons]="true"
18529              [pageSize]="pageSize$()"
18530              [pageIndex]="pageIndex$()"
18531              [length]="total$()"
18532              [pageSizeOptions]="pageSizeOptions"
18533              (page)="onPageChange($event)"
18534            >
18535            </mat-paginator>
18536          </div>
18537        </div>
18538      </div>
18539    </nmfta-card>
18540  </div>
18541</div>
18542`, styles: ["/* src/app/features/profile/components/company-user-activity/company-user-activity.component.scss */\n:root {\n  --color-amended: #FFFAF3;\n  --color-amended-dark: #856953;\n}\n.table-wrapper {\n  display: block;\n}\n.table-wrapper .mat-mdc-table {\n  width: 100%;\n  height: 100%;\n  background-color: #ffffff;
18542\n  overflow-y: scroll;\n  table-layout: fixed;\n  overflow-x: auto;\n}\n.table-wrapper .mat-mdc-row,\n.table-wrapper .mat-mdc-header-row {\n  width: 100%;\n  height: 3.125rem;\n  min-height: 3.5rem;\n}\n.table-wrapper .mat-mdc-row .is-group-row,\n.table-wrapper .mat-mdc-header-row .is-group-row {\n  background: #f9f9f9;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell {\n  border-bottom: 1px solid #e8e8e8 !important;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell,\n.table-wrapper .mat-mdc-row .mat-mdc-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-cell {\n  font-size: 0.75rem;\n  padding: 0 0.75rem;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell:first-of-type,\n.table-wrapper .mat-mdc-row .mat-mdc-cell:first-of-type,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell:first-of-type,\n.table-wrapper .mat-mdc-header-row .mat-mdc-cell:first-of-type {\n  padding-left: 1.5rem;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell:last-of-type,\n.table-wrapper .mat-mdc-row .mat-mdc-cell:last-of-type,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell:last-of-type,\n.table-wrapper .mat-mdc-header-row .mat-mdc-cell:last-of-type {\n  padding-right: 1.5rem;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-header-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-header-cell {\n  color: #000000;\n  font-size: 0.75rem;\n  font-style: normal;\n  font-weight: 300;\n  line-height: normal;\n  text-align: left;\n}\n.table-wrapper .mat-mdc-row .mat-mdc-cell,\n.table-wrapper .mat-mdc-header-row .mat-mdc-cell {\n  border-bottom-style: none;\n}\n.table-wrapper .mat-mdc-row:nth-child(odd) {\n  background-color: #fcfcfc !important;\n}\n.table-wrapper .mat-mdc-row:nth-child(even) {\n  background-color: #ffffff !important;\n}\n.table-wrapper .mat-mdc-row:hover {\n  background: #f2f2f2 !important;\n}\n:host ::ng-deep mat-card {\n  overflow-x: auto !important;\n}\n:host ::ng-deep .mat-mdc-card-content {\n  padding: 0 !important;\n  gap: 0 !important;\n}\n:host ::ng-deep .mat-mdc-card-footer .mat-mdc-paginator {\n  padding-top: 0 !important;\n  background-color: #FFFFFF;\n}\n:host ::ng-deep table {\n  background-color: #FFFFFF;\n}\n:host ::ng-deep .text-center .mat-sort-header-container {\n  justify-content: center;\n}\n:host ::ng-deep .mat-mdc-header-row,\n:host ::ng-deep .mat-mdc-row,\n:host ::ng-deep .mdc-data-table__content {\n  font-size: 0.75rem;\n}\n:host ::ng-deep .page-title {\n  width: 100%;\n  justify-content: space-between;\n}\n:host .total-label {\n  color: #000000;\n  font-size: 0.75rem;\n  font-style: normal;\n  font-weight: 300;\n  line-height: normal;\n}\n.footer {\n  display: flex;\n  justify-content: flex-end;\n  gap: 0.75rem;\n  border-top: 1px solid #e1e1e1;\n}\n.table-wrapper table {\n  min-width: 1000px;\n}\n/*# sourceMappingURL=company-user-activity.component-NYZNHEMP.css.map */\n"] }]
18543  }], () => [{ type: FormBuilder }], null);
18544})();
18545(() => {
18546  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(CompanyUserActivityComponent, { className: "CompanyUserActivityComponent", filePath: "src/app/features/profile/components/company-user-activity/company-user-activity.component.ts", lineNumber: 73 });
18547})();
18548
18549// src/app/shared/guards/website-add-seat.guard.ts
18550var websiteAddSeatGuard = (route) => __async(null, null, function* () {
18551  const companyStore = inject(CompanyStore);
18552  const router = inject(Router);
18553  const company = companyStore.company();
18554  if (!company.companyId) {
18555    router.navigate(["/home"]);
18556    return false;
18557  }
18558  return true;
18559});
18560
18561// src/app/features/profile/profile.routes.ts
18562var PROFILE_ROUTES = [
18563  {
18564    path: "",
18565    redirectTo: "user-profile",
18566    pathMatch: "full"
18567  },
18568  {
18569    path: "user-profile",
18570    resolve: { profile: profileResolver },
18571    component: UserProfileComponent,
18572    canActivate: [userGuard]
18573  },
18574  {
18575    path: "company-settings",
18576    canActivate: [userGuard, companySettingsMenuGuard],
18577    runGuardsAndResolvers: "paramsOrQueryParamsChange",
18578    children: [
18579      {
18580        path: "",
18581        component: CompanySettingsComponent,
18582        pathMatch: "full",
18583        resolve: { companyInfo: companyInfoResolver }
18584      },
18585      {
18586        path: "manage-subscriptions",
18587        children: [
18588          {
18589            path: "",
18590            component: ManageSubscriptionsComponent,
18591            pathMatch: "full",
18592            resolve: { companyInfo: companyInfoResolver }
18593          },
18594          {
18595            path: "buy-more-licenses",
18596            component: WebsiteAddSeatsComponent,
18597            pathMatch: "full",
18598            canActivate: [websiteAddSeatGuard]
18599          },
18600          {
18601            path: "renew/:subscriptionId",
18602            component: RenewSubscriptionComponent,
18603            pathMatch: "full"
18604          }
18605        ]
18606      },
18607      {
18608        path: "manage-users",
18609        component: ManageCompanyUsersComponent,
18610        pathMatch: "full",
18611        resolve: { companyInfo: companyInfoResolver }
18612      },
18613      {
18614        path: "user-activity-report",
18615        component: CompanyUserActivityComponent,
18616        pathMatch: "full",
18617        resolve: { companyInfo: companyInfoResolver }
18618      }
18619    ]
18620  }
18621];
18622export {
18623  PROFILE_ROUTES
18624};
18625//# sourceMappingURL=profile.routes-75ML6BHS.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.