@ieeesa-npm/groups 0.15.8 → 0.15.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ import { Component, ViewEncapsulation, Inject, Injectable, EventEmitter, Input,
3
3
  import * as i3 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i3$1 from '@angular/forms';
6
- import { FormsModule, Validators } from '@angular/forms';
6
+ import { FormsModule, Validators, FormControl } from '@angular/forms';
7
7
  import * as i2$1 from '@ieeesa-npm/presentation';
8
8
  import { SlideToggleComponent, AlignType, FormControlType, DynamicFormComponent, MenuComponent, IconButtonComponent, TextTruncatedDirective, SearchType, ExportFormat, PolicyConfirmationDialogComponent, ExportSuccessDialogComponent, ChipsType, TableColumnType, TableColumnSortDirection, ModalConfirmationComponent, DataTableComponent, ExportFormatPopoverComponent, ModalComponent, SearchComponent, SelectComponent, LegendComponent } from '@ieeesa-npm/presentation';
9
9
  import * as i2 from '@ieeesa-npm/utility';
@@ -12,7 +12,7 @@ import * as i1$1 from '@angular/common/http';
12
12
  import { HttpErrorResponse, HttpParams } from '@angular/common/http';
13
13
  import * as i1 from '@angular/material/dialog';
14
14
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
15
- import { BehaviorSubject, map, catchError, Subject, takeUntil, forkJoin, merge, interval, takeWhile, timer, EMPTY } from 'rxjs';
15
+ import { BehaviorSubject, map, catchError, Subject, takeUntil, forkJoin, merge, timer, interval, takeWhile, EMPTY } from 'rxjs';
16
16
  import { AlertType, FormStatus, ModalType } from '@ieeesa-npm/models';
17
17
  import * as i4 from '@angular/material/button';
18
18
  import { MatButtonModule } from '@angular/material/button';
@@ -23,6 +23,9 @@ import * as i4$1 from '@angular/material/tree';
23
23
  import { MatTreeModule } from '@angular/material/tree';
24
24
  import * as i5 from '@angular/material/tooltip';
25
25
  import { MatTooltipModule } from '@angular/material/tooltip';
26
+ import { ENTER, COMMA, DOWN_ARROW, UP_ARROW, ESCAPE } from '@angular/cdk/keycodes';
27
+ import * as i2$2 from '@angular/material/checkbox';
28
+ import { MatCheckboxModule } from '@angular/material/checkbox';
26
29
  import * as i3$2 from '@angular/material/progress-bar';
27
30
  import { MatProgressBarModule } from '@angular/material/progress-bar';
28
31
  import * as i7 from '@angular/material/menu';
@@ -3095,6 +3098,447 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3095
3098
  type: Output
3096
3099
  }] } });
3097
3100
 
3101
+ /**
3102
+ * A self-contained multi-select organization field used inside the Add/Edit
3103
+ * roster popups.
3104
+ *
3105
+ * It intentionally does NOT reuse the shared MultiSelectAutocompleteComponent
3106
+ * (which is built on mat-autocomplete). Material's autocomplete closes its panel
3107
+ * and overwrites the input on every option pick, which made multi-selection
3108
+ * feel single-select and cleared the user's typed text. This component uses a
3109
+ * fully-owned custom dropdown (<div> + checkboxes) so:
3110
+ * - the panel stays open while the user ticks several results,
3111
+ * - the typed search text is never overwritten by a pick,
3112
+ * - pressing Enter adds the typed value as a free-text chip,
3113
+ * - clicking outside clears any leftover typed text (old behavior),
3114
+ * - selected values render as removable chips (old behavior).
3115
+ *
3116
+ * The parent supplies search results via {@link options} and reacts to
3117
+ * {@link search} (debounced typed term) and {@link selectionChange}.
3118
+ * @export
3119
+ * @class OrgMultiSelectComponent
3120
+ */
3121
+ class OrgMultiSelectComponent {
3122
+ constructor() {
3123
+ /** Field label (e.g. "Representing Organization *"). */
3124
+ this.label = '';
3125
+ /** Placeholder for the input. */
3126
+ this.placeholder = '';
3127
+ /** Support/help text shown below the field. */
3128
+ this.supportMessage = '';
3129
+ /** aria-label for the input. */
3130
+ this.ariaLabel = '';
3131
+ this._options = [];
3132
+ this._selectedOptions = [];
3133
+ /** Marks the field required (drives the required message + error border). */
3134
+ this.required = true;
3135
+ /**
3136
+ * Icon URLs (same sprite refs the shared multi-select field used). Defaulted
3137
+ * so the popups don't need to pass them; overridable via input if needed.
3138
+ */
3139
+ this.removeIconURL = 'assets/images/sprites/sprites.svg#icon-trailing';
3140
+ this.clearAllIconURL = 'assets/images/sprites/sprites.svg#icon-clear-all';
3141
+ /** Emits the trimmed typed term (debounced) so the parent can call the API. */
3142
+ this.search = new EventEmitter();
3143
+ /** Emits the current selection array whenever it changes. */
3144
+ this.selectionChange = new EventEmitter();
3145
+ /** Emitted when the field is blurred (parent can re-evaluate validation). */
3146
+ this.fieldBlur = new EventEmitter();
3147
+ /**
3148
+ * Emits true when the input holds an uncommitted free-text token that fails
3149
+ * validation (too short / too long / invalid pattern), and false when the
3150
+ * input is empty or the token is valid. The parent uses this to keep the Save
3151
+ * button disabled while an invalid token remains — otherwise a previously
3152
+ * added valid chip would keep the parent control valid and let the form submit
3153
+ * with an invalid token still in the input.
3154
+ */
3155
+ this.invalidFreeText = new EventEmitter();
3156
+ /** Tracks the last emitted invalid-token state to avoid duplicate emits. */
3157
+ this.hasInvalidFreeText = false;
3158
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3159
+ this.constants = screenTexts;
3160
+ this.addUserRosterTexts = this.constants?.addUserRoster;
3161
+ /** Whether the results dropdown is open. */
3162
+ this.isDropdownOpen = false;
3163
+ /** The current typed search text. */
3164
+ this.searchText = '';
3165
+ /** Inline validation message for the free-text (Enter) path. */
3166
+ this.errorMessage = '';
3167
+ /** Whether the field has been touched (to show required error after blur). */
3168
+ this.isTouched = false;
3169
+ /**
3170
+ * Index of the keyboard-highlighted result row (-1 = none). Enables arrow-key
3171
+ * navigation and Enter-to-toggle for keyboard users, mirroring the mat-option
3172
+ * behavior this custom dropdown replaces.
3173
+ */
3174
+ this.activeOptionIndex = -1;
3175
+ /** Stable id prefix for option rows (used for aria-activedescendant). */
3176
+ this.optionIdPrefix = 'ieeesa-org-option-';
3177
+ this.destroy$ = new Subject();
3178
+ this.debounceMs = 300;
3179
+ this.minCharToSearch = 3;
3180
+ this.separatorKeys = [ENTER, COMMA];
3181
+ }
3182
+ /** Search results supplied by the parent (repopulated on each search). */
3183
+ set options(value) {
3184
+ this._options = value ?? [];
3185
+ // Reset keyboard highlight whenever the result set changes.
3186
+ this.activeOptionIndex = -1;
3187
+ // Open the dropdown as soon as fresh results arrive while the user is still
3188
+ // typing/searching (has non-empty text). Closes when results are emptied.
3189
+ this.isDropdownOpen =
3190
+ this._options.length > 0 && this.searchText.trim().length > 0;
3191
+ }
3192
+ get options() {
3193
+ return this._options;
3194
+ }
3195
+ /** Pre-selected options (edit prefill). Rendered as chips. */
3196
+ set selectedOptions(value) {
3197
+ this._selectedOptions = value ?? [];
3198
+ }
3199
+ get selectedOptions() {
3200
+ return this._selectedOptions;
3201
+ }
3202
+ ngOnInit() {
3203
+ // Fallback labels from the shared constants if inputs are not provided.
3204
+ this.placeholder = this.placeholder ?? '';
3205
+ }
3206
+ /**
3207
+ * Handles typing in the search input: tracks the text, opens/closes the
3208
+ * dropdown and debounces the search emit to the parent.
3209
+ * @param {Event} event -input event.
3210
+ * @memberof OrgMultiSelectComponent
3211
+ */
3212
+ onInput(event) {
3213
+ const value = event.target.value;
3214
+ this.searchText = value;
3215
+ this.errorMessage = '';
3216
+ // Any non-empty, uncommitted text is a pending token — flag the field
3217
+ // invalid so the parent disables Save until it is committed (Enter) or
3218
+ // cleared. Cleared text resets the flag.
3219
+ this.emitInvalidState(!!value.trim());
3220
+ const trimmed = value.trim();
3221
+ this.searchDebounce?.unsubscribe();
3222
+ if (trimmed.length < this.minCharToSearch) {
3223
+ this.options = [];
3224
+ this.isDropdownOpen = false;
3225
+ return;
3226
+ }
3227
+ this.searchDebounce = timer(this.debounceMs).subscribe(() => {
3228
+ this.search.emit(trimmed);
3229
+ });
3230
+ }
3231
+ /**
3232
+ * Emits the invalid-free-text state to the parent (deduped). True means an
3233
+ * uncommitted token is present and Save should stay disabled.
3234
+ * @param {boolean} isInvalid -whether an uncommitted token is present.
3235
+ * @memberof OrgMultiSelectComponent
3236
+ */
3237
+ emitInvalidState(isInvalid) {
3238
+ if (this.hasInvalidFreeText !== isInvalid) {
3239
+ this.hasInvalidFreeText = isInvalid;
3240
+ this.invalidFreeText.emit(isInvalid);
3241
+ }
3242
+ }
3243
+ /**
3244
+ * Opens the dropdown on focus only when there are results AND the input still
3245
+ * holds a valid search term (at or above minCharToSearch). This prevents
3246
+ * re-opening stale results — e.g. a late API response that populated options
3247
+ * after the input was cleared — when the user simply refocuses the field.
3248
+ * @memberof OrgMultiSelectComponent
3249
+ */
3250
+ onFocus() {
3251
+ if (this.options?.length &&
3252
+ this.searchText.trim().length >= this.minCharToSearch) {
3253
+ this.isDropdownOpen = true;
3254
+ }
3255
+ }
3256
+ /**
3257
+ * Called by the parent (via a setter re-assign) or internally after new
3258
+ * options arrive so the dropdown opens to show them.
3259
+ * @memberof OrgMultiSelectComponent
3260
+ */
3261
+ showResults() {
3262
+ this.isDropdownOpen = !!this.options?.length;
3263
+ }
3264
+ /**
3265
+ * Handles keydown for the Enter/comma "add typed value" path.
3266
+ * @param {KeyboardEvent} event -keyboard event.
3267
+ * @memberof OrgMultiSelectComponent
3268
+ */
3269
+ onKeydown(event) {
3270
+ // Arrow keys move the highlight through the open results list (opening it
3271
+ // first if there are results). This makes the custom dropdown operable by
3272
+ // keyboard, matching the mat-option list it replaces.
3273
+ if (event.keyCode === DOWN_ARROW || event.keyCode === UP_ARROW) {
3274
+ if (!this.options?.length) {
3275
+ return;
3276
+ }
3277
+ event.preventDefault();
3278
+ this.isDropdownOpen = true;
3279
+ this.moveActiveOption(event.keyCode === DOWN_ARROW ? 1 : -1);
3280
+ return;
3281
+ }
3282
+ // Escape closes the results without committing anything.
3283
+ if (event.keyCode === ESCAPE) {
3284
+ if (this.isDropdownOpen) {
3285
+ event.preventDefault();
3286
+ this.isDropdownOpen = false;
3287
+ this.activeOptionIndex = -1;
3288
+ }
3289
+ return;
3290
+ }
3291
+ if (!this.separatorKeys.includes(event.keyCode)) {
3292
+ return;
3293
+ }
3294
+ event.preventDefault();
3295
+ // Enter/comma: if a result row is highlighted, toggle that option (keyboard
3296
+ // parity with clicking it). Otherwise fall back to adding the typed text as
3297
+ // a free-text chip.
3298
+ if (this.isDropdownOpen &&
3299
+ this.activeOptionIndex >= 0 &&
3300
+ this.activeOptionIndex < this.options.length) {
3301
+ this.toggleOption(this.options[this.activeOptionIndex]);
3302
+ return;
3303
+ }
3304
+ this.addTypedValue();
3305
+ }
3306
+ /**
3307
+ * Moves the keyboard highlight up/down the results list, wrapping at the ends.
3308
+ * @param {number} delta -+1 to move down, -1 to move up.
3309
+ * @memberof OrgMultiSelectComponent
3310
+ */
3311
+ moveActiveOption(delta) {
3312
+ const count = this.options.length;
3313
+ if (!count) {
3314
+ return;
3315
+ }
3316
+ const next = this.activeOptionIndex + delta;
3317
+ // Wrap around so the highlight cycles through the list.
3318
+ this.activeOptionIndex = (next + count) % count;
3319
+ }
3320
+ /**
3321
+ * Whether the given result index is the keyboard-highlighted row.
3322
+ * @param {number} index -the option's index.
3323
+ * @return {boolean}
3324
+ * @memberof OrgMultiSelectComponent
3325
+ */
3326
+ isActiveOption(index) {
3327
+ return index === this.activeOptionIndex;
3328
+ }
3329
+ /**
3330
+ * Adds the typed free-text value as a selection (chip) after validating its
3331
+ * length and pattern (parity with the previous chip-input behavior).
3332
+ * @memberof OrgMultiSelectComponent
3333
+ */
3334
+ addTypedValue() {
3335
+ const value = this.searchText.trim();
3336
+ if (!value) {
3337
+ return;
3338
+ }
3339
+ const validationError = this.validateFreeText(value);
3340
+ if (validationError) {
3341
+ this.errorMessage = validationError;
3342
+ // Keep the field flagged invalid so the parent's Save button stays
3343
+ // disabled even when a valid chip already exists — the uncommitted token
3344
+ // is invalid and must be corrected or cleared before submitting.
3345
+ this.emitInvalidState(true);
3346
+ return;
3347
+ }
3348
+ // Avoid duplicates (case-insensitive by name).
3349
+ const exists = this._selectedOptions.some((option) => option.name?.toLowerCase() === value.toLowerCase());
3350
+ if (!exists) {
3351
+ this._selectedOptions = [
3352
+ ...this._selectedOptions,
3353
+ { id: '', name: value },
3354
+ ];
3355
+ this.emitSelection();
3356
+ }
3357
+ // Token committed successfully — input is cleared, so the field is valid.
3358
+ this.clearSearchText();
3359
+ }
3360
+ /**
3361
+ * Validates a free-text organization value against the shared min/max/pattern
3362
+ * rules. Returns an error message when invalid, otherwise an empty string.
3363
+ * @param {string} value -the typed value.
3364
+ * @return {string}
3365
+ * @memberof OrgMultiSelectComponent
3366
+ */
3367
+ validateFreeText(value) {
3368
+ const messages = this.addUserRosterTexts?.message?.error;
3369
+ if (value.length < GroupsValidationPatterns.representingOrgNameMinLength) {
3370
+ return messages?.limit?.representingOrganizationMinChars ?? '';
3371
+ }
3372
+ if (value.length > GroupsValidationPatterns.representingOrgNameMaxLength) {
3373
+ return messages?.limit?.representingOrganizationMaxChars ?? '';
3374
+ }
3375
+ if (!GroupsValidationPatterns.representingOrganization.test(value)) {
3376
+ return messages?.pattern?.representingOrganization ?? '';
3377
+ }
3378
+ return '';
3379
+ }
3380
+ /**
3381
+ * Toggles selection of a result option. Keeps the dropdown open and the typed
3382
+ * text intact so the user can keep selecting.
3383
+ * @param {SelectOption} option -the clicked result option.
3384
+ * @memberof OrgMultiSelectComponent
3385
+ */
3386
+ toggleOption(option) {
3387
+ const index = this._selectedOptions.findIndex((item) => item.id === option.id && item.name === option.name);
3388
+ if (index >= 0) {
3389
+ this._selectedOptions = this._selectedOptions.filter((_, i) => i !== index);
3390
+ }
3391
+ else {
3392
+ this._selectedOptions = [...this._selectedOptions, option];
3393
+ }
3394
+ this.emitSelection();
3395
+ // Keep focus in the input so the user can continue typing/selecting.
3396
+ this.searchInput?.nativeElement?.focus();
3397
+ }
3398
+ /**
3399
+ * Whether an option is currently selected (drives the checkbox checked state).
3400
+ * @param {SelectOption} option -option to test.
3401
+ * @return {boolean}
3402
+ * @memberof OrgMultiSelectComponent
3403
+ */
3404
+ isSelected(option) {
3405
+ return this._selectedOptions.some((item) => item.id === option.id && item.name === option.name);
3406
+ }
3407
+ /**
3408
+ * Removes a selected chip.
3409
+ * @param {SelectOption} option -the option to remove.
3410
+ * @memberof OrgMultiSelectComponent
3411
+ */
3412
+ removeOption(option) {
3413
+ this._selectedOptions = this._selectedOptions.filter((item) => !(item.id === option.id && item.name === option.name));
3414
+ this.emitSelection();
3415
+ }
3416
+ /**
3417
+ * Clears all selected chips.
3418
+ * @memberof OrgMultiSelectComponent
3419
+ */
3420
+ clearAll() {
3421
+ this._selectedOptions = [];
3422
+ this.options = [];
3423
+ this.isDropdownOpen = false;
3424
+ this.emitSelection();
3425
+ }
3426
+ /**
3427
+ * Clears the leftover typed text on blur (old behavior) and closes the
3428
+ * dropdown. Deferred so a click on a dropdown option (which also blurs the
3429
+ * input) is handled first.
3430
+ * @memberof OrgMultiSelectComponent
3431
+ */
3432
+ onBlur() {
3433
+ this.isTouched = true;
3434
+ this.blurTimer?.unsubscribe();
3435
+ this.blurTimer = timer(150).subscribe(() => {
3436
+ // If focus moved into the dropdown (option click), the click handler
3437
+ // re-focuses the input, so document.activeElement is the input again.
3438
+ const active = document.activeElement;
3439
+ if (active === this.searchInput?.nativeElement) {
3440
+ return;
3441
+ }
3442
+ this.clearSearchText();
3443
+ this.isDropdownOpen = false;
3444
+ this.fieldBlur.emit();
3445
+ });
3446
+ }
3447
+ /**
3448
+ * Whether the required error should show (touched, no selection).
3449
+ * @return {boolean}
3450
+ * @memberof OrgMultiSelectComponent
3451
+ */
3452
+ get showRequiredError() {
3453
+ return (this.required && this.isTouched && this._selectedOptions.length === 0);
3454
+ }
3455
+ /**
3456
+ * Clears the typed search text and hides the results.
3457
+ * @memberof OrgMultiSelectComponent
3458
+ */
3459
+ clearSearchText() {
3460
+ // Cancel any pending debounced search so a blur/clear before the timer
3461
+ // expires does not emit the now-cleared query to the parent.
3462
+ this.searchDebounce?.unsubscribe();
3463
+ this.searchDebounce = undefined;
3464
+ this.searchText = '';
3465
+ if (this.searchInput?.nativeElement) {
3466
+ this.searchInput.nativeElement.value = '';
3467
+ }
3468
+ this.options = [];
3469
+ this.errorMessage = '';
3470
+ // No leftover text — the field is no longer holding an invalid token.
3471
+ this.emitInvalidState(false);
3472
+ }
3473
+ /**
3474
+ * Emits the current selection to the parent.
3475
+ * @memberof OrgMultiSelectComponent
3476
+ */
3477
+ emitSelection() {
3478
+ this.selectionChange.emit(this._selectedOptions.map((option) => ({
3479
+ id: option.id,
3480
+ name: option.name,
3481
+ })));
3482
+ }
3483
+ /**
3484
+ * TrackBy for both result and chip lists.
3485
+ * @param {number} index -list index.
3486
+ * @param {SelectOption} option -the option.
3487
+ * @return {(string | number)}
3488
+ * @memberof OrgMultiSelectComponent
3489
+ */
3490
+ trackByFn(index, option) {
3491
+ return `${option.id}-${option.name}`;
3492
+ }
3493
+ ngOnDestroy() {
3494
+ this.searchDebounce?.unsubscribe();
3495
+ this.blurTimer?.unsubscribe();
3496
+ this.destroy$.next(true);
3497
+ this.destroy$.complete();
3498
+ }
3499
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrgMultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3500
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrgMultiSelectComponent, isStandalone: true, selector: "ieeesa-org-multi-select", inputs: { label: "label", placeholder: "placeholder", supportMessage: "supportMessage", ariaLabel: "ariaLabel", options: "options", selectedOptions: "selectedOptions", required: "required", removeIconURL: "removeIconURL", clearAllIconURL: "clearAllIconURL" }, outputs: { search: "search", selectionChange: "selectionChange", fieldBlur: "fieldBlur", invalidFreeText: "invalidFreeText" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"ieeesa-org-multi-select\"\r\n [class.ieeesa-org-multi-select--invalid]=\"showRequiredError || errorMessage\"\r\n>\r\n <label class=\"ieeesa-org-multi-select__label ieeesa-body-sm-14\">\r\n {{ label }}\r\n </label>\r\n\r\n <div class=\"ieeesa-org-multi-select__field\">\r\n <!--\r\n Chips and the search input flow together inline (like the Material\r\n chip-grid). This keeps a single-row field appearance that grows as chips\r\n wrap, with the clear-all button pinned to the right as a suffix.\r\n -->\r\n <div class=\"ieeesa-org-multi-select__control\">\r\n <span\r\n class=\"ieeesa-org-multi-select__chip\"\r\n *ngFor=\"let option of selectedOptions; trackBy: trackByFn\"\r\n [attr.aria-label]=\"option.name\"\r\n >\r\n <span class=\"ieeesa-org-multi-select__chip-label\">\r\n {{ option.name }}\r\n </span>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-org-multi-select__chip-remove\"\r\n [attr.aria-label]=\"'Remove ' + option.name\"\r\n (click)=\"removeOption(option)\"\r\n >\r\n <svg\r\n class=\"ieeesa-org-multi-select__chip-remove-icon\"\r\n *ngIf=\"removeIconURL\"\r\n >\r\n <use [attr.xlink:href]=\"removeIconURL\"></use>\r\n </svg>\r\n <span *ngIf=\"!removeIconURL\" aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </span>\r\n\r\n <input\r\n #searchInput\r\n type=\"text\"\r\n class=\"ieeesa-org-multi-select__input ieeesa-title-sm-16\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n [attr.aria-expanded]=\"isDropdownOpen\"\r\n [attr.aria-controls]=\"optionIdPrefix + 'listbox'\"\r\n [attr.aria-activedescendant]=\"\r\n isDropdownOpen && activeOptionIndex >= 0\r\n ? optionIdPrefix + activeOptionIndex\r\n : null\r\n \"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"searchText\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onFocus()\"\r\n (keydown)=\"onKeydown($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n </div>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-org-multi-select__clear-all\"\r\n [matTooltip]=\"'Clear all'\"\r\n aria-label=\"Clear all\"\r\n *ngIf=\"selectedOptions.length\"\r\n (click)=\"clearAll()\"\r\n >\r\n <svg\r\n class=\"ieeesa-org-multi-select__clear-all-icon\"\r\n *ngIf=\"clearAllIconURL\"\r\n >\r\n <use [attr.xlink:href]=\"clearAllIconURL\"></use>\r\n </svg>\r\n <span *ngIf=\"!clearAllIconURL\" aria-hidden=\"true\">&times;</span>\r\n </button>\r\n\r\n <!--\r\n Custom results dropdown. Fully owned (not mat-autocomplete) so a pick never\r\n closes the panel or overwrites the typed text. mousedown is prevented so\r\n clicking a row does not blur the input before the click registers.\r\n -->\r\n <div\r\n class=\"ieeesa-org-multi-select__dropdown\"\r\n role=\"listbox\"\r\n [id]=\"optionIdPrefix + 'listbox'\"\r\n aria-multiselectable=\"true\"\r\n *ngIf=\"isDropdownOpen && options.length\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n >\r\n <div\r\n class=\"ieeesa-org-multi-select__option\"\r\n role=\"option\"\r\n *ngFor=\"let option of options; let i = index; trackBy: trackByFn\"\r\n [id]=\"optionIdPrefix + i\"\r\n [attr.aria-selected]=\"isSelected(option)\"\r\n [class.ieeesa-org-multi-select__option--selected]=\"isSelected(option)\"\r\n [class.ieeesa-org-multi-select__option--active]=\"isActiveOption(i)\"\r\n (click)=\"toggleOption(option)\"\r\n (mouseenter)=\"activeOptionIndex = i\"\r\n >\r\n <mat-checkbox\r\n color=\"primary\"\r\n [checked]=\"isSelected(option)\"\r\n (click)=\"$event.preventDefault()\"\r\n ></mat-checkbox>\r\n <span\r\n class=\"ieeesa-org-multi-select__option-label ieeesa-title-sm-16\"\r\n >\r\n {{ option.name }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Inline free-text validation error (Enter path) -->\r\n <p\r\n class=\"ieeesa-org-multi-select__error ieeesa-body-sm-14\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n {{ errorMessage }}\r\n </p>\r\n\r\n <!-- Required error (touched, nothing selected) -->\r\n <p\r\n class=\"ieeesa-org-multi-select__error ieeesa-body-sm-14\"\r\n *ngIf=\"showRequiredError && !errorMessage\"\r\n >\r\n {{ addUserRosterTexts?.message?.error?.required }}\r\n </p>\r\n\r\n <!-- Support/help text -->\r\n <p\r\n class=\"ieeesa-org-multi-select__support ieeesa-body-sm-14\"\r\n *ngIf=\"supportMessage && !errorMessage && !showRequiredError\"\r\n >\r\n {{ supportMessage }}\r\n </p>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-org-multi-select{display:block;width:100%;position:relative;font-family:Calibri Regular}.ieeesa-org-multi-select__label,.ieeesa-org-multi-select__label.ieeesa-body-sm-14{display:block;margin-bottom:4px;color:#49454f;font-family:Calibri Regular;font-size:.75rem}.ieeesa-org-multi-select__field{display:flex;align-items:center;gap:8px;position:relative;background:#fff;border:1px solid #878b8f;border-radius:4px;padding:8px 12px;min-height:48px;transition:border-color .15s ease}.ieeesa-org-multi-select__field:focus-within{border:2px solid #00629b;padding:7px 11px}.ieeesa-org-multi-select__control{flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.ieeesa-org-multi-select__chip{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border:1px solid #79747e;border-radius:.25em;background-color:linear-gradient(0deg,rgba(0,98,155,.05) 0%,rgba(0,98,155,.05) 100%),#fffbfe}.ieeesa-org-multi-select__chip-label{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#49454f;font-family:Calibri Regular;font-size:1rem}.ieeesa-org-multi-select__chip-remove{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0;margin-left:6px;color:#878b8f;font-size:16px;line-height:1}.ieeesa-org-multi-select__chip-remove-icon{height:18px;width:18px;fill:currentColor}.ieeesa-org-multi-select__input,.ieeesa-org-multi-select__input.ieeesa-title-sm-16{flex:1 1 120px;border:none;outline:none;background:transparent;min-width:120px;padding:4px 0;color:#1c1b1f;font-family:Calibri Regular;font-size:1rem}.ieeesa-org-multi-select__input::placeholder,.ieeesa-org-multi-select__input.ieeesa-title-sm-16::placeholder{color:#63666a;font-family:Calibri Regular;font-size:1rem}.ieeesa-org-multi-select__clear-all{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0;color:#878b8f}.ieeesa-org-multi-select__clear-all-icon{height:24px;width:24px;fill:currentColor}.ieeesa-org-multi-select__dropdown{position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:1000;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #878b8f;border-radius:4px;box-shadow:0 4px 12px #0000001f}.ieeesa-org-multi-select__option{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;font-family:Calibri Regular}.ieeesa-org-multi-select__option:hover,.ieeesa-org-multi-select__option--active{background:#fff}.ieeesa-org-multi-select__option--selected .ieeesa-org-multi-select__option-label{color:#00629b}.ieeesa-org-multi-select__option-label,.ieeesa-org-multi-select__option-label.ieeesa-title-sm-16{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#000;font-family:Calibri Regular;font-size:1rem}.ieeesa-org-multi-select__error,.ieeesa-org-multi-select__error.ieeesa-body-sm-14{margin:4px 0 0;color:#ba0c2f;font-family:Calibri Regular;font-size:.75rem}.ieeesa-org-multi-select__support,.ieeesa-org-multi-select__support.ieeesa-body-sm-14{margin:4px 0 0;color:#49454f;font-family:Calibri Regular;font-size:.75rem}.ieeesa-org-multi-select--invalid .ieeesa-org-multi-select__label{color:#ba0c2f}.ieeesa-org-multi-select--invalid .ieeesa-org-multi-select__field{border:2px solid #ba0c2f;padding:7px 11px}.ieeesa-org-multi-select .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{background-color:#00629b;border-color:#00629b}@media (max-width: 767px){.ieeesa-org-multi-select__chip-label{max-width:120px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
3501
+ }
3502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrgMultiSelectComponent, decorators: [{
3503
+ type: Component,
3504
+ args: [{ selector: 'ieeesa-org-multi-select', standalone: true, imports: [
3505
+ CommonModule,
3506
+ MatButtonModule,
3507
+ MatCheckboxModule,
3508
+ MatIconModule,
3509
+ MatTooltipModule,
3510
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-org-multi-select\"\r\n [class.ieeesa-org-multi-select--invalid]=\"showRequiredError || errorMessage\"\r\n>\r\n <label class=\"ieeesa-org-multi-select__label ieeesa-body-sm-14\">\r\n {{ label }}\r\n </label>\r\n\r\n <div class=\"ieeesa-org-multi-select__field\">\r\n <!--\r\n Chips and the search input flow together inline (like the Material\r\n chip-grid). This keeps a single-row field appearance that grows as chips\r\n wrap, with the clear-all button pinned to the right as a suffix.\r\n -->\r\n <div class=\"ieeesa-org-multi-select__control\">\r\n <span\r\n class=\"ieeesa-org-multi-select__chip\"\r\n *ngFor=\"let option of selectedOptions; trackBy: trackByFn\"\r\n [attr.aria-label]=\"option.name\"\r\n >\r\n <span class=\"ieeesa-org-multi-select__chip-label\">\r\n {{ option.name }}\r\n </span>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-org-multi-select__chip-remove\"\r\n [attr.aria-label]=\"'Remove ' + option.name\"\r\n (click)=\"removeOption(option)\"\r\n >\r\n <svg\r\n class=\"ieeesa-org-multi-select__chip-remove-icon\"\r\n *ngIf=\"removeIconURL\"\r\n >\r\n <use [attr.xlink:href]=\"removeIconURL\"></use>\r\n </svg>\r\n <span *ngIf=\"!removeIconURL\" aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </span>\r\n\r\n <input\r\n #searchInput\r\n type=\"text\"\r\n class=\"ieeesa-org-multi-select__input ieeesa-title-sm-16\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n [attr.aria-expanded]=\"isDropdownOpen\"\r\n [attr.aria-controls]=\"optionIdPrefix + 'listbox'\"\r\n [attr.aria-activedescendant]=\"\r\n isDropdownOpen && activeOptionIndex >= 0\r\n ? optionIdPrefix + activeOptionIndex\r\n : null\r\n \"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"searchText\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onFocus()\"\r\n (keydown)=\"onKeydown($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n </div>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-org-multi-select__clear-all\"\r\n [matTooltip]=\"'Clear all'\"\r\n aria-label=\"Clear all\"\r\n *ngIf=\"selectedOptions.length\"\r\n (click)=\"clearAll()\"\r\n >\r\n <svg\r\n class=\"ieeesa-org-multi-select__clear-all-icon\"\r\n *ngIf=\"clearAllIconURL\"\r\n >\r\n <use [attr.xlink:href]=\"clearAllIconURL\"></use>\r\n </svg>\r\n <span *ngIf=\"!clearAllIconURL\" aria-hidden=\"true\">&times;</span>\r\n </button>\r\n\r\n <!--\r\n Custom results dropdown. Fully owned (not mat-autocomplete) so a pick never\r\n closes the panel or overwrites the typed text. mousedown is prevented so\r\n clicking a row does not blur the input before the click registers.\r\n -->\r\n <div\r\n class=\"ieeesa-org-multi-select__dropdown\"\r\n role=\"listbox\"\r\n [id]=\"optionIdPrefix + 'listbox'\"\r\n aria-multiselectable=\"true\"\r\n *ngIf=\"isDropdownOpen && options.length\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n >\r\n <div\r\n class=\"ieeesa-org-multi-select__option\"\r\n role=\"option\"\r\n *ngFor=\"let option of options; let i = index; trackBy: trackByFn\"\r\n [id]=\"optionIdPrefix + i\"\r\n [attr.aria-selected]=\"isSelected(option)\"\r\n [class.ieeesa-org-multi-select__option--selected]=\"isSelected(option)\"\r\n [class.ieeesa-org-multi-select__option--active]=\"isActiveOption(i)\"\r\n (click)=\"toggleOption(option)\"\r\n (mouseenter)=\"activeOptionIndex = i\"\r\n >\r\n <mat-checkbox\r\n color=\"primary\"\r\n [checked]=\"isSelected(option)\"\r\n (click)=\"$event.preventDefault()\"\r\n ></mat-checkbox>\r\n <span\r\n class=\"ieeesa-org-multi-select__option-label ieeesa-title-sm-16\"\r\n >\r\n {{ option.name }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Inline free-text validation error (Enter path) -->\r\n <p\r\n class=\"ieeesa-org-multi-select__error ieeesa-body-sm-14\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n {{ errorMessage }}\r\n </p>\r\n\r\n <!-- Required error (touched, nothing selected) -->\r\n <p\r\n class=\"ieeesa-org-multi-select__error ieeesa-body-sm-14\"\r\n *ngIf=\"showRequiredError && !errorMessage\"\r\n >\r\n {{ addUserRosterTexts?.message?.error?.required }}\r\n </p>\r\n\r\n <!-- Support/help text -->\r\n <p\r\n class=\"ieeesa-org-multi-select__support ieeesa-body-sm-14\"\r\n *ngIf=\"supportMessage && !errorMessage && !showRequiredError\"\r\n >\r\n {{ supportMessage }}\r\n </p>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-org-multi-select{display:block;width:100%;position:relative;font-family:Calibri Regular}.ieeesa-org-multi-select__label,.ieeesa-org-multi-select__label.ieeesa-body-sm-14{display:block;margin-bottom:4px;color:#49454f;font-family:Calibri Regular;font-size:.75rem}.ieeesa-org-multi-select__field{display:flex;align-items:center;gap:8px;position:relative;background:#fff;border:1px solid #878b8f;border-radius:4px;padding:8px 12px;min-height:48px;transition:border-color .15s ease}.ieeesa-org-multi-select__field:focus-within{border:2px solid #00629b;padding:7px 11px}.ieeesa-org-multi-select__control{flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.ieeesa-org-multi-select__chip{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border:1px solid #79747e;border-radius:.25em;background-color:linear-gradient(0deg,rgba(0,98,155,.05) 0%,rgba(0,98,155,.05) 100%),#fffbfe}.ieeesa-org-multi-select__chip-label{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#49454f;font-family:Calibri Regular;font-size:1rem}.ieeesa-org-multi-select__chip-remove{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0;margin-left:6px;color:#878b8f;font-size:16px;line-height:1}.ieeesa-org-multi-select__chip-remove-icon{height:18px;width:18px;fill:currentColor}.ieeesa-org-multi-select__input,.ieeesa-org-multi-select__input.ieeesa-title-sm-16{flex:1 1 120px;border:none;outline:none;background:transparent;min-width:120px;padding:4px 0;color:#1c1b1f;font-family:Calibri Regular;font-size:1rem}.ieeesa-org-multi-select__input::placeholder,.ieeesa-org-multi-select__input.ieeesa-title-sm-16::placeholder{color:#63666a;font-family:Calibri Regular;font-size:1rem}.ieeesa-org-multi-select__clear-all{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0;color:#878b8f}.ieeesa-org-multi-select__clear-all-icon{height:24px;width:24px;fill:currentColor}.ieeesa-org-multi-select__dropdown{position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:1000;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #878b8f;border-radius:4px;box-shadow:0 4px 12px #0000001f}.ieeesa-org-multi-select__option{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;font-family:Calibri Regular}.ieeesa-org-multi-select__option:hover,.ieeesa-org-multi-select__option--active{background:#fff}.ieeesa-org-multi-select__option--selected .ieeesa-org-multi-select__option-label{color:#00629b}.ieeesa-org-multi-select__option-label,.ieeesa-org-multi-select__option-label.ieeesa-title-sm-16{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#000;font-family:Calibri Regular;font-size:1rem}.ieeesa-org-multi-select__error,.ieeesa-org-multi-select__error.ieeesa-body-sm-14{margin:4px 0 0;color:#ba0c2f;font-family:Calibri Regular;font-size:.75rem}.ieeesa-org-multi-select__support,.ieeesa-org-multi-select__support.ieeesa-body-sm-14{margin:4px 0 0;color:#49454f;font-family:Calibri Regular;font-size:.75rem}.ieeesa-org-multi-select--invalid .ieeesa-org-multi-select__label{color:#ba0c2f}.ieeesa-org-multi-select--invalid .ieeesa-org-multi-select__field{border:2px solid #ba0c2f;padding:7px 11px}.ieeesa-org-multi-select .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{background-color:#00629b;border-color:#00629b}@media (max-width: 767px){.ieeesa-org-multi-select__chip-label{max-width:120px}}\n"] }]
3511
+ }], propDecorators: { label: [{
3512
+ type: Input
3513
+ }], placeholder: [{
3514
+ type: Input
3515
+ }], supportMessage: [{
3516
+ type: Input
3517
+ }], ariaLabel: [{
3518
+ type: Input
3519
+ }], options: [{
3520
+ type: Input
3521
+ }], selectedOptions: [{
3522
+ type: Input
3523
+ }], required: [{
3524
+ type: Input
3525
+ }], removeIconURL: [{
3526
+ type: Input
3527
+ }], clearAllIconURL: [{
3528
+ type: Input
3529
+ }], search: [{
3530
+ type: Output
3531
+ }], selectionChange: [{
3532
+ type: Output
3533
+ }], fieldBlur: [{
3534
+ type: Output
3535
+ }], invalidFreeText: [{
3536
+ type: Output
3537
+ }], searchInput: [{
3538
+ type: ViewChild,
3539
+ args: ['searchInput']
3540
+ }] } });
3541
+
3098
3542
  /**
3099
3543
  * Component implements the view and functionalities to edit group users to roster.
3100
3544
  * @class EditUserRolesComponent
@@ -3102,6 +3546,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3102
3546
  * @implements {OnDestroy}
3103
3547
  */
3104
3548
  class EditUserRolesComponent {
3549
+ /**
3550
+ * True when the selected group's roster type is INDIVIDUAL (the only roster
3551
+ * type that shows the Representing Organization field).
3552
+ * @readonly
3553
+ * @memberof EditUserRolesComponent
3554
+ */
3555
+ get isIndividualRoster() {
3556
+ return this.groupRosterType === GroupRosterType.INDIVIDUAL;
3557
+ }
3105
3558
  constructor(
3106
3559
  // eslint-disable-next-line no-unused-vars
3107
3560
  groupsService,
@@ -3129,6 +3582,11 @@ class EditUserRolesComponent {
3129
3582
  this.hasClassification = false;
3130
3583
  this.representingOrganizations = [];
3131
3584
  this.orgSearchValue = '';
3585
+ /**
3586
+ * True when the org field holds an uncommitted, invalid free-text token. Used
3587
+ * to keep Save disabled even when a valid chip already exists.
3588
+ */
3589
+ this.hasInvalidOrgFreeText = false;
3132
3590
  this.submitFormResponse = new EventEmitter();
3133
3591
  this.formCancel = new EventEmitter();
3134
3592
  }
@@ -3274,38 +3732,12 @@ class EditUserRolesComponent {
3274
3732
  ariaLabel: this.addUserRosterTexts?.label?.ariaLabel?.memberType,
3275
3733
  ariaDescribedById: this.addUserRosterTexts?.label?.ariaDescribedById?.memberType,
3276
3734
  });
3277
- this.updateEditUserRoleFormControls(this.editUserRoleFormGroup?.formGroup[0]?.controls?.length, {
3278
- type: FormControlType.MULTI_SELECT_AUTO_COMPLETE,
3279
- label: this.addUserRosterTexts?.label?.representingOrganization + '*',
3280
- controlName: 'representingOrg',
3281
- // Validate on blur so the required error surfaces only after the user
3282
- // leaves the field — never mid-selection (avoids the error flash).
3283
- updateOn: 'blur',
3284
- validation: [
3285
- representingOrgRequiredValidator(),
3286
- skipWhenArray(Validators.maxLength(GroupsValidationPatterns.representingOrgNameMaxLength)),
3287
- skipWhenArray(Validators.minLength(GroupsValidationPatterns.representingOrgNameMinLength)),
3288
- skipWhenArray(Validators.pattern(GroupsValidationPatterns.representingOrganization)),
3289
- ],
3290
- multiSelectAutoCompleteOptions: this.organizations,
3291
- value: this.representingOrganizations?.length
3292
- ? this.orgSearchValue?.length
3293
- ? this.orgSearchValue
3294
- : this.representingOrganizations
3295
- : '',
3296
- placeholder: '',
3297
- supportMessage: this.addUserRosterTexts?.supportText?.representingOrganization,
3298
- requiredErrorMessage: this.addUserRosterTexts?.message?.error?.required,
3299
- maxErrorMessage: this.addUserRosterTexts?.message?.error?.limit
3300
- ?.representingOrganizationMaxChars,
3301
- minErrorMessage: this.addUserRosterTexts?.message?.error?.limit
3302
- ?.representingOrganizationMinChars,
3303
- patternErrorMessage: this.addUserRosterTexts?.message?.error?.pattern
3304
- ?.representingOrganization,
3305
- ariaLabel: this.addUserRosterTexts?.label?.ariaLabel?.representingOrganization,
3306
- ariaDescribedById: this.addUserRosterTexts?.label?.ariaDescribedById
3307
- ?.representingOrganization,
3308
- });
3735
+ // The "Representing Organization" field is rendered by the custom
3736
+ // OrgMultiSelectComponent in the template (not by the dynamic form). The
3737
+ // reactive `representingOrg` control is registered on the captured form
3738
+ // group ref in registerRepresentingOrgControl() so all existing submit/
3739
+ // Save-button logic (which reads form.get('representingOrg')) keeps working.
3740
+ // Its value stays in sync via getSelectedOrganizations().
3309
3741
  }
3310
3742
  /**
3311
3743
  * Gets selected organizations.
@@ -3314,11 +3746,32 @@ class EditUserRolesComponent {
3314
3746
  */
3315
3747
  getSelectedOrganizations(selectedOrg) {
3316
3748
  this.representingOrganizations = selectedOrg;
3749
+ // Keep the reactive control's value in sync with the selection so the
3750
+ // required validator and submit/Save-button logic stay accurate.
3751
+ this.editUserRoleFormGroupRef
3752
+ ?.get('representingOrg')
3753
+ ?.setValue(selectedOrg?.length ? selectedOrg : '');
3317
3754
  // eslint-disable-next-line no-unused-expressions
3318
- this.representingOrganizations.length
3755
+ this.representingOrganizations.length && !this.hasInvalidOrgFreeText
3319
3756
  ? (this.isSubmitButtonDisabled = false)
3320
3757
  : (this.isSubmitButtonDisabled = true);
3321
3758
  }
3759
+ /**
3760
+ * Handles the org field's invalid-free-text state. Disables Save while an
3761
+ * uncommitted invalid token remains; re-evaluates when it clears.
3762
+ * @param {boolean} isInvalid -whether an uncommitted invalid token is present.
3763
+ * @memberof EditUserRolesComponent
3764
+ */
3765
+ onOrgInvalidFreeText(isInvalid) {
3766
+ this.hasInvalidOrgFreeText = isInvalid;
3767
+ if (isInvalid) {
3768
+ this.isSubmitButtonDisabled = true;
3769
+ }
3770
+ else {
3771
+ // Recompute from the selection when the invalid token clears.
3772
+ this.isSubmitButtonDisabled = !this.representingOrganizations.length;
3773
+ }
3774
+ }
3322
3775
  /**
3323
3776
  * Updates the edit user form group controls by adding fieldConfig at required index.
3324
3777
  * @param {number} indexPosition
@@ -3351,6 +3804,11 @@ class EditUserRolesComponent {
3351
3804
  */
3352
3805
  onEditUserRoleFormSubmit(form) {
3353
3806
  form[0]?.markAllAsTouched();
3807
+ // Block submit if an uncommitted, invalid free-text token remains in the
3808
+ // org field even when other controls / selected chips are valid.
3809
+ if (this.hasInvalidOrgFreeText) {
3810
+ return;
3811
+ }
3354
3812
  const isAllOtherControlsValid = Object.keys(form[0].controls)
3355
3813
  .filter((controlName) => controlName !== 'representingOrg')
3356
3814
  .every((controlName) => form[0].get(controlName)?.status === FormStatus?.VALID);
@@ -3439,6 +3897,36 @@ class EditUserRolesComponent {
3439
3897
  ?.at(0)
3440
3898
  ?.disable();
3441
3899
  }
3900
+ this.registerRepresentingOrgControl();
3901
+ }
3902
+ /**
3903
+ * Registers the `representingOrg` reactive control on the dynamic form's
3904
+ * FormGroup for INDIVIDUAL rosters. The field itself is rendered by the custom
3905
+ * OrgMultiSelectComponent (not the dynamic form), but keeping this control on
3906
+ * the same FormGroup — with the original validators — means all existing
3907
+ * submit/Save-button logic that reads `form.get('representingOrg')` keeps
3908
+ * working unchanged. Its value is the selected-organizations array, kept in
3909
+ * sync by getSelectedOrganizations(). Prefilled with the user's existing
3910
+ * organizations on edit.
3911
+ * @memberof EditUserRolesComponent
3912
+ */
3913
+ registerRepresentingOrgControl() {
3914
+ if (this.groupRosterType !== GroupRosterType.INDIVIDUAL ||
3915
+ !this.editUserRoleFormGroupRef ||
3916
+ this.editUserRoleFormGroupRef.contains('representingOrg')) {
3917
+ return;
3918
+ }
3919
+ this.editUserRoleFormGroupRef.addControl('representingOrg', new FormControl(this.representingOrganizations?.length
3920
+ ? this.representingOrganizations
3921
+ : '', {
3922
+ updateOn: 'blur',
3923
+ validators: [
3924
+ representingOrgRequiredValidator(),
3925
+ skipWhenArray(Validators.maxLength(GroupsValidationPatterns.representingOrgNameMaxLength)),
3926
+ skipWhenArray(Validators.minLength(GroupsValidationPatterns.representingOrgNameMinLength)),
3927
+ skipWhenArray(Validators.pattern(GroupsValidationPatterns.representingOrganization)),
3928
+ ],
3929
+ }));
3442
3930
  }
3443
3931
  /**
3444
3932
  * Handles edit user role form change event.
@@ -3456,6 +3944,11 @@ class EditUserRolesComponent {
3456
3944
  else if (this.representingOrganizations.length === 0) {
3457
3945
  this.isSubmitButtonDisabled = true;
3458
3946
  }
3947
+ // An uncommitted, invalid free-text token in the org field must block submit
3948
+ // regardless of any valid chips already selected.
3949
+ if (this.hasInvalidOrgFreeText) {
3950
+ this.isSubmitButtonDisabled = true;
3951
+ }
3459
3952
  }
3460
3953
  /**
3461
3954
  * Gets the classifications from master data.
@@ -3515,25 +4008,17 @@ class EditUserRolesComponent {
3515
4008
  .pipe(takeUntil(this.destroy$))
3516
4009
  .subscribe({
3517
4010
  next: (response) => {
3518
- this.organizations = [];
4011
+ const orgs = [];
3519
4012
  response?.body?.forEach((option) => {
3520
- this.organizations?.push({
4013
+ orgs.push({
3521
4014
  id: option.orgId,
3522
4015
  name: option.orgName,
3523
4016
  });
3524
4017
  });
3525
- this.updateFormControlOptions('representingOrg', 'multiSelectAutoCompleteOptions', this.organizations, orgName);
3526
- const orgNameLength = this.editUserRoleFormGroupRef?.get('representingOrg')?.value?.name
3527
- ?.length;
3528
- if (orgNameLength &&
3529
- orgNameLength <
3530
- GroupsValidationPatterns.representingOrgNameMinLength &&
3531
- orgNameLength !== 0) {
3532
- this.editUserRoleFormGroupRef?.get('representingOrg')?.setErrors({
3533
- minlength: this.addUserRosterTexts?.message?.error?.limit
3534
- ?.representingOrganizationMinChars,
3535
- });
3536
- }
4018
+ // Assign a new array reference so the custom OrgMultiSelectComponent's
4019
+ // [options] setter runs and opens the results dropdown. Free-text
4020
+ // min/max/pattern validation is handled inside that component.
4021
+ this.organizations = orgs;
3537
4022
  },
3538
4023
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3539
4024
  error: (error) => {
@@ -3606,11 +4091,11 @@ class EditUserRolesComponent {
3606
4091
  this.destroy$.unsubscribe();
3607
4092
  }
3608
4093
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditUserRolesComponent, deps: [{ token: GroupsService }, { token: i2.GlobalErrorHandlerService }, { token: i2.AlertsService }], target: i0.ɵɵFactoryTarget.Component }); }
3609
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditUserRolesComponent, isStandalone: true, selector: "ieeesa-edit-user-roles", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"editUserRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onEditUserRoleFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onEditUserRoleCancelled()\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formChange)=\"onEditUserRoleFormChange($event)\"\r\n (formMultiSelectAutoCompleteSearch)=\"getOrganizations($event)\"\r\n (multiSelectAutoCompleteOptionsSelected)=\"getSelectedOrganizations($event)\"\r\n (formMultiSelectAutoCompleteClearSearchValue)=\"disableSubmitButton()\"\r\n></ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-edit-user-roles .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em .8em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field{margin-bottom:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "projectedContentAfterControlName", "fileDownloadAndDeleteConfig"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
4094
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditUserRolesComponent, isStandalone: true, selector: "ieeesa-edit-user-roles", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"editUserRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onEditUserRoleFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onEditUserRoleCancelled()\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formChange)=\"onEditUserRoleFormChange($event)\"\r\n>\r\n <!--\r\n Representing Organization (INDIVIDUAL rosters only). Projected into the\r\n dynamic form's [component] slot so it renders after the other fields but\r\n BEFORE the Save/Cancel action buttons. Uses the custom multi-select field so\r\n multiple orgs can be picked from an open dropdown without the Material\r\n autocomplete closing or clearing the typed text. Prefilled with the user's\r\n existing organizations and synced to the reactive `representingOrg` control\r\n via getSelectedOrganizations().\r\n -->\r\n <ieeesa-org-multi-select\r\n component\r\n *ngIf=\"isIndividualRoster\"\r\n class=\"ieeesa-edit-user-roles__org\"\r\n [label]=\"addUserRosterTexts?.label?.representingOrganization + '*'\"\r\n [ariaLabel]=\"addUserRosterTexts?.label?.ariaLabel?.representingOrganization\"\r\n [supportMessage]=\"addUserRosterTexts?.supportText?.representingOrganization\"\r\n [options]=\"organizations\"\r\n [selectedOptions]=\"representingOrganizations\"\r\n (search)=\"getOrganizations($event)\"\r\n (selectionChange)=\"getSelectedOrganizations($event)\"\r\n (invalidFreeText)=\"onOrgInvalidFreeText($event)\"\r\n ></ieeesa-org-multi-select>\r\n</ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-edit-user-roles .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em .8em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field{margin-bottom:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "projectedContentAfterControlName", "fileDownloadAndDeleteConfig"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }, { kind: "component", type: OrgMultiSelectComponent, selector: "ieeesa-org-multi-select", inputs: ["label", "placeholder", "supportMessage", "ariaLabel", "options", "selectedOptions", "required", "removeIconURL", "clearAllIconURL"], outputs: ["search", "selectionChange", "fieldBlur", "invalidFreeText"] }], encapsulation: i0.ViewEncapsulation.None }); }
3610
4095
  }
3611
4096
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditUserRolesComponent, decorators: [{
3612
4097
  type: Component,
3613
- args: [{ selector: 'ieeesa-edit-user-roles', standalone: true, imports: [CommonModule, DynamicFormComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"editUserRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onEditUserRoleFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onEditUserRoleCancelled()\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formChange)=\"onEditUserRoleFormChange($event)\"\r\n (formMultiSelectAutoCompleteSearch)=\"getOrganizations($event)\"\r\n (multiSelectAutoCompleteOptionsSelected)=\"getSelectedOrganizations($event)\"\r\n (formMultiSelectAutoCompleteClearSearchValue)=\"disableSubmitButton()\"\r\n></ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-edit-user-roles .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em .8em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field{margin-bottom:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field{width:100%}}\n"] }]
4098
+ args: [{ selector: 'ieeesa-edit-user-roles', standalone: true, imports: [CommonModule, DynamicFormComponent, OrgMultiSelectComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"editUserRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onEditUserRoleFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onEditUserRoleCancelled()\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formChange)=\"onEditUserRoleFormChange($event)\"\r\n>\r\n <!--\r\n Representing Organization (INDIVIDUAL rosters only). Projected into the\r\n dynamic form's [component] slot so it renders after the other fields but\r\n BEFORE the Save/Cancel action buttons. Uses the custom multi-select field so\r\n multiple orgs can be picked from an open dropdown without the Material\r\n autocomplete closing or clearing the typed text. Prefilled with the user's\r\n existing organizations and synced to the reactive `representingOrg` control\r\n via getSelectedOrganizations().\r\n -->\r\n <ieeesa-org-multi-select\r\n component\r\n *ngIf=\"isIndividualRoster\"\r\n class=\"ieeesa-edit-user-roles__org\"\r\n [label]=\"addUserRosterTexts?.label?.representingOrganization + '*'\"\r\n [ariaLabel]=\"addUserRosterTexts?.label?.ariaLabel?.representingOrganization\"\r\n [supportMessage]=\"addUserRosterTexts?.supportText?.representingOrganization\"\r\n [options]=\"organizations\"\r\n [selectedOptions]=\"representingOrganizations\"\r\n (search)=\"getOrganizations($event)\"\r\n (selectionChange)=\"getSelectedOrganizations($event)\"\r\n (invalidFreeText)=\"onOrgInvalidFreeText($event)\"\r\n ></ieeesa-org-multi-select>\r\n</ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-edit-user-roles .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em .8em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field{margin-bottom:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field{width:100%}}\n"] }]
3614
4099
  }], ctorParameters: function () { return [{ type: GroupsService }, { type: i2.GlobalErrorHandlerService }, { type: i2.AlertsService }]; }, propDecorators: { dynamicFormComponent: [{
3615
4100
  type: ViewChild,
3616
4101
  args: [DynamicFormComponent]
@@ -4122,6 +4607,25 @@ var RosterFunctionType;
4122
4607
  * @implements {OnDestroy}
4123
4608
  */
4124
4609
  class AddUserRosterComponent {
4610
+ /**
4611
+ * True when the selected group's roster type is INDIVIDUAL (the only roster
4612
+ * type that shows the Representing Organization field).
4613
+ * @readonly
4614
+ * @memberof AddUserRosterComponent
4615
+ */
4616
+ get isIndividualRoster() {
4617
+ return this.groupRosterType === GroupRosterType.INDIVIDUAL;
4618
+ }
4619
+ /**
4620
+ * Handles the org field's invalid-free-text state and recomputes Save-button
4621
+ * state so the form cannot be submitted while an invalid token remains.
4622
+ * @param {boolean} isInvalid -whether an uncommitted invalid token is present.
4623
+ * @memberof AddUserRosterComponent
4624
+ */
4625
+ onOrgInvalidFreeText(isInvalid) {
4626
+ this.hasInvalidOrgFreeText = isInvalid;
4627
+ this.updateSubmitButtonStatus();
4628
+ }
4125
4629
  constructor(
4126
4630
  // eslint-disable-next-line no-unused-vars
4127
4631
  groupService,
@@ -4160,6 +4664,11 @@ class AddUserRosterComponent {
4160
4664
  this.hasClassification = false;
4161
4665
  this.isUserExist = false;
4162
4666
  this.selectedOrganizations = [];
4667
+ /**
4668
+ * True when the org field holds an uncommitted, invalid free-text token. Used
4669
+ * to keep Save disabled even when a valid chip already exists.
4670
+ */
4671
+ this.hasInvalidOrgFreeText = false;
4163
4672
  this.submitFormResponse = new EventEmitter();
4164
4673
  this.formCancel = new EventEmitter();
4165
4674
  }
@@ -4492,35 +5001,13 @@ class AddUserRosterComponent {
4492
5001
  ariaLabel: this.addUserRosterTexts?.label?.ariaLabel?.memberType,
4493
5002
  ariaDescribedById: this.addUserRosterTexts?.label?.ariaDescribedById?.memberType,
4494
5003
  });
4495
- this.updateAddUserFormControls(this.addUserFormGroup.formGroup[0].controls.length, {
4496
- type: FormControlType.MULTI_SELECT_AUTO_COMPLETE,
4497
- label: this.addUserRosterTexts?.label?.representingOrganization + '*',
4498
- controlName: 'representingOrg',
4499
- // Validate on blur so the required error surfaces only after the user
4500
- // leaves the field — never mid-selection (avoids the error flash).
4501
- updateOn: 'blur',
4502
- value: this.selectedOrganizations.length
4503
- ? this.selectedOrganizations
4504
- : '',
4505
- validation: [
4506
- representingOrgRequiredValidator(),
4507
- skipWhenArray(Validators.maxLength(GroupsValidationPatterns.representingOrgNameMaxLength)),
4508
- skipWhenArray(Validators.minLength(GroupsValidationPatterns.representingOrgNameMinLength)),
4509
- skipWhenArray(Validators.pattern(GroupsValidationPatterns.representingOrganization)),
4510
- ],
4511
- multiSelectAutoCompleteOptions: this.organizations,
4512
- supportMessage: this.addUserRosterTexts?.supportText?.representingOrganization,
4513
- requiredErrorMessage: this.addUserRosterTexts?.message?.error?.required,
4514
- maxErrorMessage: this.addUserRosterTexts?.message?.error?.limit
4515
- ?.representingOrganizationMaxChars,
4516
- minErrorMessage: this.addUserRosterTexts?.message?.error?.limit
4517
- ?.representingOrganizationMinChars,
4518
- patternErrorMessage: this.addUserRosterTexts?.message?.error?.pattern
4519
- ?.representingOrganization,
4520
- ariaLabel: this.addUserRosterTexts?.label?.ariaLabel?.representingOrganization,
4521
- ariaDescribedById: this.addUserRosterTexts?.label?.ariaDescribedById
4522
- ?.representingOrganization,
4523
- });
5004
+ // The "Representing Organization" field is rendered by the custom
5005
+ // OrgMultiSelectComponent in the template (not by the dynamic form), so we
5006
+ // no longer add a MULTI_SELECT_AUTO_COMPLETE control to the dynamic-form
5007
+ // config here. The reactive `representingOrg` control is registered on the
5008
+ // captured form group ref in registerRepresentingOrgControl() so all
5009
+ // existing submit/Save-button logic (which reads form.get('representingOrg'))
5010
+ // keeps working unchanged. Its value stays in sync via selectedOrganizations.
4524
5011
  }
4525
5012
  /**
4526
5013
  * Updates the add user form group controls by adding fieldConfig at required index.
@@ -4553,6 +5040,11 @@ class AddUserRosterComponent {
4553
5040
  */
4554
5041
  onAddUserFormSubmit(form) {
4555
5042
  form[0]?.markAllAsTouched();
5043
+ // Block submit if an uncommitted, invalid free-text token remains in the
5044
+ // org field even when other controls / selected chips are valid.
5045
+ if (this.hasInvalidOrgFreeText) {
5046
+ return;
5047
+ }
4556
5048
  if ((form[0].get('representingOrg')?.status === FormStatus?.INVALID &&
4557
5049
  this.isAllOtherControlsValid() &&
4558
5050
  this.selectedOrganizations.length > 0) ||
@@ -4580,6 +5072,33 @@ class AddUserRosterComponent {
4580
5072
  */
4581
5073
  getAddUserFormGroupRef(form) {
4582
5074
  this.addUserFormGroupRef = form[0];
5075
+ this.registerRepresentingOrgControl();
5076
+ }
5077
+ /**
5078
+ * Registers the `representingOrg` reactive control on the dynamic form's
5079
+ * FormGroup for INDIVIDUAL rosters. The field itself is rendered by the custom
5080
+ * OrgMultiSelectComponent (not the dynamic form), but keeping this control on
5081
+ * the same FormGroup — with the original validators — means all existing
5082
+ * submit/Save-button logic that reads `form.get('representingOrg')` keeps
5083
+ * working unchanged. Its value is the selected-organizations array, kept in
5084
+ * sync by getSelectedOrganizations().
5085
+ * @memberof AddUserRosterComponent
5086
+ */
5087
+ registerRepresentingOrgControl() {
5088
+ if (this.groupRosterType !== GroupRosterType.INDIVIDUAL ||
5089
+ !this.addUserFormGroupRef ||
5090
+ this.addUserFormGroupRef.contains('representingOrg')) {
5091
+ return;
5092
+ }
5093
+ this.addUserFormGroupRef.addControl('representingOrg', new FormControl(this.selectedOrganizations.length ? this.selectedOrganizations : '', {
5094
+ updateOn: 'blur',
5095
+ validators: [
5096
+ representingOrgRequiredValidator(),
5097
+ skipWhenArray(Validators.maxLength(GroupsValidationPatterns.representingOrgNameMaxLength)),
5098
+ skipWhenArray(Validators.minLength(GroupsValidationPatterns.representingOrgNameMinLength)),
5099
+ skipWhenArray(Validators.pattern(GroupsValidationPatterns.representingOrganization)),
5100
+ ],
5101
+ }));
4583
5102
  }
4584
5103
  /**
4585
5104
  * Handles user role selection in add user form.
@@ -4650,7 +5169,6 @@ class AddUserRosterComponent {
4650
5169
  getOrganizations(orgName) {
4651
5170
  this.organizations = [];
4652
5171
  orgName = orgName?.trimStart();
4653
- this.updateFormControlOptions('representingOrg', 'multiSelectAutoCompleteOptions', []);
4654
5172
  if (!orgName)
4655
5173
  return;
4656
5174
  const orgRequestPayload = {
@@ -4668,7 +5186,9 @@ class AddUserRosterComponent {
4668
5186
  name: option.orgName,
4669
5187
  });
4670
5188
  });
4671
- this.updateFormControlOptions('representingOrg', 'multiSelectAutoCompleteOptions', this.organizations);
5189
+ // this.organizations is bound to the custom OrgMultiSelectComponent's
5190
+ // [options] input; assigning a new array reference opens its dropdown.
5191
+ this.organizations = [...this.organizations];
4672
5192
  },
4673
5193
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4674
5194
  error: (error) => {
@@ -4762,6 +5282,11 @@ class AddUserRosterComponent {
4762
5282
  this.selectedOrganizations?.length > 0) {
4763
5283
  isDisabled = false;
4764
5284
  }
5285
+ // An uncommitted, invalid free-text token in the org field must block submit
5286
+ // regardless of any valid chips already selected.
5287
+ if (this.hasInvalidOrgFreeText) {
5288
+ isDisabled = true;
5289
+ }
4765
5290
  this.isSubmitButtonDisabled = isDisabled;
4766
5291
  }
4767
5292
  /**
@@ -4853,6 +5378,11 @@ class AddUserRosterComponent {
4853
5378
  */
4854
5379
  getSelectedOrganizations(selectedOrg) {
4855
5380
  this.selectedOrganizations = selectedOrg;
5381
+ // Keep the reactive control's value in sync with the selection so the
5382
+ // required validator and submit/Save-button logic stay accurate.
5383
+ this.addUserFormGroupRef
5384
+ ?.get('representingOrg')
5385
+ ?.setValue(selectedOrg?.length ? selectedOrg : '');
4856
5386
  // Recompute through the single source of truth so the representingOrg
4857
5387
  // exception (org selected while the control is INVALID) is applied.
4858
5388
  this.updateSubmitButtonStatus();
@@ -4870,11 +5400,16 @@ class AddUserRosterComponent {
4870
5400
  }
4871
5401
  }
4872
5402
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddUserRosterComponent, deps: [{ token: GroupsService }, { token: i2.GlobalErrorHandlerService }, { token: i2.AlertsService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
4873
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AddUserRosterComponent, isStandalone: true, selector: "ieeesa-add-user-roster", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, providers: [AlertsService], viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"searchUserFormGroup && isSearchUserForm\"\r\n class=\"ieeesa-search-user-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"searchUserFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onSearchUserFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n></ieeesa-dynamic-form>\r\n\r\n<ieeesa-dynamic-form\r\n *ngIf=\"addUserFormGroup && !isSearchUserForm\"\r\n class=\"ieeesa-add-user-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"addUserFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onAddUserFormSubmit($event)\"\r\n (formSearchApply)=\"formSearchApply($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getAddUserFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formChange)=\"onAddUserFormChange($event)\"\r\n (formMultiSelectAutoCompleteSearch)=\"getOrganizations($event)\"\r\n (multiSelectAutoCompleteOptionsSelected)=\"getSelectedOrganizations($event)\"\r\n (formMultiSelectAutoCompleteClearSearchValue)=\"disableSubmitButton()\"\r\n></ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-add-user-roster{max-width:97vw!important}.ieeesa-modal-dialog.ieeesa-add-user-roster .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-search-user-form .ieeesa-dynamic-form__actions,.ieeesa-add-user-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em;padding:2em 1em .75em;margin-top:2em}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-mdc-form-field{display:flex}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-form-field-invalid,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-form-field-invalid{border:2px solid #ba0c2f}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-multi-select-autocomplete__input,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-multi-select-autocomplete__input{position:relative}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field{padding-top:0;margin-bottom:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name .mat-mdc-text-field-wrapper,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-search-user-form .ieeesa-checkbox-field .mat-mdc-list,.ieeesa-add-user-form .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}.ieeesa-search-user-form .mat-mdc-form-field-subscript-wrapper,.ieeesa-add-user-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-search-user-form .ieeesa-dynamic-form__actions--right-btn{min-width:175px!important}@media (min-width: 767px){.ieeesa-search-user-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-search-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-search-field .mat-mdc-form-field{width:32%}.ieeesa-modal-dialog.ieeesa-add-user-roster{max-width:65vw!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "projectedContentAfterControlName", "fileDownloadAndDeleteConfig"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }, { kind: "ngmodule", type: MatDialogModule }], encapsulation: i0.ViewEncapsulation.None }); }
5403
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AddUserRosterComponent, isStandalone: true, selector: "ieeesa-add-user-roster", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, providers: [AlertsService], viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"searchUserFormGroup && isSearchUserForm\"\r\n class=\"ieeesa-search-user-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"searchUserFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onSearchUserFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n></ieeesa-dynamic-form>\r\n\r\n<ieeesa-dynamic-form\r\n *ngIf=\"addUserFormGroup && !isSearchUserForm\"\r\n class=\"ieeesa-add-user-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"addUserFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onAddUserFormSubmit($event)\"\r\n (formSearchApply)=\"formSearchApply($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getAddUserFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formChange)=\"onAddUserFormChange($event)\"\r\n>\r\n <!--\r\n Representing Organization (INDIVIDUAL rosters only). Projected into the\r\n dynamic form's [component] slot so it renders after the other fields but\r\n BEFORE the Save/Cancel action buttons. Uses the custom multi-select field so\r\n multiple orgs can be picked from an open dropdown without the Material\r\n autocomplete closing or clearing the typed text. Its value stays synced to\r\n the reactive `representingOrg` control via getSelectedOrganizations().\r\n -->\r\n <ieeesa-org-multi-select\r\n component\r\n *ngIf=\"addUserFormGroup && !isSearchUserForm && isIndividualRoster\"\r\n class=\"ieeesa-add-user-form__org\"\r\n [label]=\"addUserRosterTexts?.label?.representingOrganization + '*'\"\r\n [ariaLabel]=\"addUserRosterTexts?.label?.ariaLabel?.representingOrganization\"\r\n [supportMessage]=\"addUserRosterTexts?.supportText?.representingOrganization\"\r\n [options]=\"organizations\"\r\n [selectedOptions]=\"selectedOrganizations\"\r\n (search)=\"getOrganizations($event)\"\r\n (selectionChange)=\"getSelectedOrganizations($event)\"\r\n (invalidFreeText)=\"onOrgInvalidFreeText($event)\"\r\n ></ieeesa-org-multi-select>\r\n</ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-add-user-roster{max-width:97vw!important}.ieeesa-modal-dialog.ieeesa-add-user-roster .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-search-user-form .ieeesa-dynamic-form__actions,.ieeesa-add-user-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em;padding:2em 1em .75em;margin-top:2em}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-mdc-form-field{display:flex}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-form-field-invalid,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-form-field-invalid{border:2px solid #ba0c2f}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-multi-select-autocomplete__input,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-multi-select-autocomplete__input{position:relative}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field{padding-top:0;margin-bottom:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name .mat-mdc-text-field-wrapper,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-search-user-form .ieeesa-checkbox-field .mat-mdc-list,.ieeesa-add-user-form .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}.ieeesa-search-user-form .mat-mdc-form-field-subscript-wrapper,.ieeesa-add-user-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-search-user-form .ieeesa-dynamic-form__actions--right-btn{min-width:175px!important}@media (min-width: 767px){.ieeesa-search-user-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-search-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-search-field .mat-mdc-form-field{width:32%}.ieeesa-modal-dialog.ieeesa-add-user-roster{max-width:65vw!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "projectedContentAfterControlName", "fileDownloadAndDeleteConfig"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "component", type: OrgMultiSelectComponent, selector: "ieeesa-org-multi-select", inputs: ["label", "placeholder", "supportMessage", "ariaLabel", "options", "selectedOptions", "required", "removeIconURL", "clearAllIconURL"], outputs: ["search", "selectionChange", "fieldBlur", "invalidFreeText"] }], encapsulation: i0.ViewEncapsulation.None }); }
4874
5404
  }
4875
5405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddUserRosterComponent, decorators: [{
4876
5406
  type: Component,
4877
- args: [{ selector: 'ieeesa-add-user-roster', standalone: true, imports: [CommonModule, DynamicFormComponent, MatDialogModule], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<ieeesa-dynamic-form\r\n *ngIf=\"searchUserFormGroup && isSearchUserForm\"\r\n class=\"ieeesa-search-user-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"searchUserFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onSearchUserFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n></ieeesa-dynamic-form>\r\n\r\n<ieeesa-dynamic-form\r\n *ngIf=\"addUserFormGroup && !isSearchUserForm\"\r\n class=\"ieeesa-add-user-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"addUserFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onAddUserFormSubmit($event)\"\r\n (formSearchApply)=\"formSearchApply($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getAddUserFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formChange)=\"onAddUserFormChange($event)\"\r\n (formMultiSelectAutoCompleteSearch)=\"getOrganizations($event)\"\r\n (multiSelectAutoCompleteOptionsSelected)=\"getSelectedOrganizations($event)\"\r\n (formMultiSelectAutoCompleteClearSearchValue)=\"disableSubmitButton()\"\r\n></ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-add-user-roster{max-width:97vw!important}.ieeesa-modal-dialog.ieeesa-add-user-roster .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-search-user-form .ieeesa-dynamic-form__actions,.ieeesa-add-user-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em;padding:2em 1em .75em;margin-top:2em}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-mdc-form-field{display:flex}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-form-field-invalid,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-form-field-invalid{border:2px solid #ba0c2f}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-multi-select-autocomplete__input,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-multi-select-autocomplete__input{position:relative}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field{padding-top:0;margin-bottom:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name .mat-mdc-text-field-wrapper,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-search-user-form .ieeesa-checkbox-field .mat-mdc-list,.ieeesa-add-user-form .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}.ieeesa-search-user-form .mat-mdc-form-field-subscript-wrapper,.ieeesa-add-user-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-search-user-form .ieeesa-dynamic-form__actions--right-btn{min-width:175px!important}@media (min-width: 767px){.ieeesa-search-user-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-search-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-search-field .mat-mdc-form-field{width:32%}.ieeesa-modal-dialog.ieeesa-add-user-roster{max-width:65vw!important}}\n"] }]
5407
+ args: [{ selector: 'ieeesa-add-user-roster', standalone: true, imports: [
5408
+ CommonModule,
5409
+ DynamicFormComponent,
5410
+ MatDialogModule,
5411
+ OrgMultiSelectComponent,
5412
+ ], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<ieeesa-dynamic-form\r\n *ngIf=\"searchUserFormGroup && isSearchUserForm\"\r\n class=\"ieeesa-search-user-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"searchUserFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onSearchUserFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n></ieeesa-dynamic-form>\r\n\r\n<ieeesa-dynamic-form\r\n *ngIf=\"addUserFormGroup && !isSearchUserForm\"\r\n class=\"ieeesa-add-user-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"addUserFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onAddUserFormSubmit($event)\"\r\n (formSearchApply)=\"formSearchApply($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getAddUserFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formChange)=\"onAddUserFormChange($event)\"\r\n>\r\n <!--\r\n Representing Organization (INDIVIDUAL rosters only). Projected into the\r\n dynamic form's [component] slot so it renders after the other fields but\r\n BEFORE the Save/Cancel action buttons. Uses the custom multi-select field so\r\n multiple orgs can be picked from an open dropdown without the Material\r\n autocomplete closing or clearing the typed text. Its value stays synced to\r\n the reactive `representingOrg` control via getSelectedOrganizations().\r\n -->\r\n <ieeesa-org-multi-select\r\n component\r\n *ngIf=\"addUserFormGroup && !isSearchUserForm && isIndividualRoster\"\r\n class=\"ieeesa-add-user-form__org\"\r\n [label]=\"addUserRosterTexts?.label?.representingOrganization + '*'\"\r\n [ariaLabel]=\"addUserRosterTexts?.label?.ariaLabel?.representingOrganization\"\r\n [supportMessage]=\"addUserRosterTexts?.supportText?.representingOrganization\"\r\n [options]=\"organizations\"\r\n [selectedOptions]=\"selectedOrganizations\"\r\n (search)=\"getOrganizations($event)\"\r\n (selectionChange)=\"getSelectedOrganizations($event)\"\r\n (invalidFreeText)=\"onOrgInvalidFreeText($event)\"\r\n ></ieeesa-org-multi-select>\r\n</ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-add-user-roster{max-width:97vw!important}.ieeesa-modal-dialog.ieeesa-add-user-roster .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-search-user-form .ieeesa-dynamic-form__actions,.ieeesa-add-user-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em;padding:2em 1em .75em;margin-top:2em}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-mdc-form-field{display:flex}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-form-field-invalid,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-search-field .mat-form-field-invalid{border:2px solid #ba0c2f}.ieeesa-search-user-form .ieeesa-dynamic-form .ieeesa-multi-select-autocomplete__input,.ieeesa-add-user-form .ieeesa-dynamic-form .ieeesa-multi-select-autocomplete__input{position:relative}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field{padding-top:0;margin-bottom:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-search-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-search-user-form .ieeesa-dynamic-form .full-name .mat-mdc-text-field-wrapper,.ieeesa-add-user-form .ieeesa-dynamic-form .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-search-user-form .ieeesa-checkbox-field .mat-mdc-list,.ieeesa-add-user-form .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}.ieeesa-search-user-form .mat-mdc-form-field-subscript-wrapper,.ieeesa-add-user-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-search-user-form .ieeesa-dynamic-form__actions--right-btn{min-width:175px!important}@media (min-width: 767px){.ieeesa-search-user-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-search-user-form .ieeesa-search-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-input-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-select-field .mat-mdc-form-field,.ieeesa-add-user-form .ieeesa-search-field .mat-mdc-form-field{width:32%}.ieeesa-modal-dialog.ieeesa-add-user-roster{max-width:65vw!important}}\n"] }]
4878
5413
  }], ctorParameters: function () { return [{ type: GroupsService }, { type: i2.GlobalErrorHandlerService }, { type: i2.AlertsService }, { type: i0.ElementRef }]; }, propDecorators: { dynamicFormComponent: [{
4879
5414
  type: ViewChild,
4880
5415
  args: [DynamicFormComponent]