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.