@ieeesa-npm/groups 0.15.14 → 0.15.15

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.
@@ -2,13 +2,13 @@ import * as i0 from '@angular/core';
2
2
  import { Component, ViewEncapsulation, Inject, Injectable, EventEmitter, Input, Output, ViewChild, Optional, ElementRef, ChangeDetectionStrategy, HostListener, NgModule } from '@angular/core';
3
3
  import * as i3 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import * as i3$1 from '@angular/forms';
6
- import { FormsModule, Validators, FormControl } from '@angular/forms';
5
+ import * as i1$1 from '@angular/forms';
6
+ import { FormsModule, Validators, FormControl, ReactiveFormsModule } from '@angular/forms';
7
7
  import * as i2$1 from '@ieeesa-npm/presentation';
8
- import { SlideToggleComponent, AlignType, FormControlType, DynamicFormComponent, MenuComponent, IconButtonComponent, TextTruncatedDirective, TableColumnType, DataTableComponent, RadioComponent, TabsComponent, SearchType, ExportFormat, PolicyConfirmationDialogComponent, ExportSuccessDialogComponent, ChipsType, TableColumnSortDirection, ModalConfirmationComponent, ExportFormatPopoverComponent, ModalComponent, SearchComponent, SelectComponent, LegendComponent } from '@ieeesa-npm/presentation';
8
+ import { SlideToggleComponent, AlignType, FormControlType, DynamicFormComponent, MenuComponent, IconButtonComponent, TextTruncatedDirective, TableColumnType, DataTableComponent, ExpressInterestDialogComponent, RadioComponent, TabsComponent, SearchType, ExportFormat, PolicyConfirmationDialogComponent, ExportSuccessDialogComponent, ChipsType, TableColumnSortDirection, ModalConfirmationComponent, ExportFormatPopoverComponent, ModalComponent, SearchComponent, SelectComponent, LegendComponent } from '@ieeesa-npm/presentation';
9
9
  import * as i2 from '@ieeesa-npm/utility';
10
- import { StorageKeys, AlertsService } from '@ieeesa-npm/utility';
11
- import * as i1$1 from '@angular/common/http';
10
+ import { StorageKeys, AlertsService, AlertType as AlertType$1 } from '@ieeesa-npm/utility';
11
+ import * as i1$2 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';
@@ -28,6 +28,8 @@ import * as i2$2 from '@angular/material/checkbox';
28
28
  import { MatCheckboxModule } from '@angular/material/checkbox';
29
29
  import * as i5$1 from '@angular/material/progress-bar';
30
30
  import { MatProgressBarModule } from '@angular/material/progress-bar';
31
+ import * as i6 from '@angular/cdk/drag-drop';
32
+ import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
31
33
  import * as i7 from '@angular/material/menu';
32
34
  import { MatMenuModule } from '@angular/material/menu';
33
35
  import { saveAs } from 'file-saver';
@@ -297,13 +299,51 @@ var rosterInterests = {
297
299
  ],
298
300
  defaultMembershipTitle: "Default Membership Level",
299
301
  defaultMembershipDescription: "Select the membership level automatically assigned",
302
+ noLevelsMessage: "No membership levels are configured for this group type. Please configure membership levels before enabling the interest form.",
300
303
  membershipLevels: [
301
304
  "Observer",
302
305
  "Voting Member",
303
306
  "Associate Member"
304
307
  ],
305
308
  customQuestionsTitle: "Custom Questions",
306
- addQuestionLabel: "+ Add Question"
309
+ addQuestionLabel: "+ Add Question",
310
+ preview: {
311
+ heading: "Interest Form Preview",
312
+ closeAriaLabel: "Close preview",
313
+ standardInformationHeading: "Standard Information",
314
+ additionalQuestionsHeading: "Additional Questions",
315
+ selectPlaceholder: "Select an option",
316
+ cancelButtonLabel: "Cancel",
317
+ labels: {
318
+ name: "Name",
319
+ email: "Email Address",
320
+ affiliation: "Affiliation"
321
+ }
322
+ },
323
+ requiredTag: "Required",
324
+ newQuestionLabel: "New Question",
325
+ editQuestionAriaLabel: "Edit question",
326
+ deleteQuestionAriaLabel: "Delete question",
327
+ questionEditor: {
328
+ labelLabel: "Question Label",
329
+ typeLabel: "Type",
330
+ requiredLabel: "Required",
331
+ placeholderLabel: "PlaceHolder",
332
+ helpTextLabel: "Help Text",
333
+ optionsLabel: "Options (one per line)",
334
+ typeHerePlaceholder: "Type here",
335
+ selectPlaceholder: "Select from here",
336
+ cancel: "Cancel",
337
+ save: "Save",
338
+ types: {
339
+ text: "Text Input",
340
+ textArea: "Text Area",
341
+ dropdown: "Dropdown",
342
+ checkbox: "Checkbox",
343
+ radio: "Radio Button",
344
+ date: "Date Picker"
345
+ }
346
+ }
307
347
  }
308
348
  };
309
349
  var deleteGroup = {
@@ -734,7 +774,7 @@ class AddWorkingGroupsComponent {
734
774
  this.dialogRef.close(selected);
735
775
  }
736
776
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddWorkingGroupsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
737
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AddWorkingGroupsComponent, isStandalone: true, selector: "ieeesa-add-working-groups", ngImport: i0, template: "<div class=\"ieeesa-add-working-groups\">\r\n <div class=\"ieeesa-add-working-groups__header\">\r\n <h2 class=\"ieeesa-add-working-groups__title\">\r\n Add Working Groups ({{ selectedCount }})\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-add-working-groups__close\"\r\n (click)=\"onCancel()\"\r\n aria-label=\"Close\"\r\n >\r\n \u00D7\r\n </button>\r\n </div>\r\n\r\n <p class=\"ieeesa-add-working-groups__subtitle\">Choose working groups under the same committee</p>\r\n\r\n <!-- Search -->\r\n <div class=\"ieeesa-add-working-groups__search\">\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"searchTerm\"\r\n placeholder=\"Search by name...\"\r\n aria-label=\"Search working groups\"\r\n />\r\n </div>\r\n\r\n <!-- Table -->\r\n <div class=\"ieeesa-add-working-groups__table\">\r\n <div class=\"ieeesa-add-working-groups__table-head\">\r\n <span class=\"ieeesa-add-working-groups__col-name\">Working Group</span>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let row of filteredRows\"\r\n class=\"ieeesa-add-working-groups__row\"\r\n >\r\n <label class=\"ieeesa-add-working-groups__col-name\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"row.selected\"\r\n (change)=\"toggleRow(row)\"\r\n />\r\n <span>{{ row.groupName }}</span>\r\n </label>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"filteredRows.length === 0\"\r\n class=\"ieeesa-add-working-groups__empty\"\r\n >\r\n No working groups found.\r\n </div>\r\n </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"ieeesa-add-working-groups__actions\">\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"mat-tertiary-button\"\r\n (click)=\"onCancel()\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"mat-primary-button\"\r\n [disabled]=\"selectedCount === 0\"\r\n (click)=\"onAdd()\"\r\n >\r\n Add\r\n </button>\r\n </div>\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-add-working-groups{padding:20px 24px;min-width:420px;font-family:Calibri Regular}.ieeesa-add-working-groups__header{display:flex;align-items:center;justify-content:space-between}.ieeesa-add-working-groups__title{font-family:Calibri Bold;font-size:1.25rem;font-weight:700;margin:0}.ieeesa-add-working-groups__close{border:none;background:none;font-size:1.5rem;line-height:1;cursor:pointer;color:#49454f}.ieeesa-add-working-groups__subtitle{font-size:.875rem;color:#49454f;margin:8px 0 16px}.ieeesa-add-working-groups__search{margin-bottom:12px}.ieeesa-add-working-groups__search input{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid #878b8f;border-radius:4px;font-size:.875rem}.ieeesa-add-working-groups__table{border-top:1px solid #e0e0e0;max-height:360px;overflow-y:auto}.ieeesa-add-working-groups__table-head{display:flex;align-items:center;padding:8px 0;background:#f7f7f7;font-family:Calibri Bold;font-weight:700;font-size:.8125rem;color:#49454f;position:sticky;top:0;z-index:1}.ieeesa-add-working-groups__row{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid #f0f0f0}.ieeesa-add-working-groups__col-name{flex:1 1 auto;display:flex;align-items:center;gap:10px;font-size:.875rem}.ieeesa-add-working-groups__empty{padding:16px 0;text-align:center;color:#878b8f;font-size:.875rem}.ieeesa-add-working-groups__actions{display:flex;justify-content:flex-start;gap:12px;margin-top:20px}\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: FormsModule }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }], encapsulation: i0.ViewEncapsulation.None }); }
777
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AddWorkingGroupsComponent, isStandalone: true, selector: "ieeesa-add-working-groups", ngImport: i0, template: "<div class=\"ieeesa-add-working-groups\">\r\n <div class=\"ieeesa-add-working-groups__header\">\r\n <h2 class=\"ieeesa-add-working-groups__title\">\r\n Add Working Groups ({{ selectedCount }})\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-add-working-groups__close\"\r\n (click)=\"onCancel()\"\r\n aria-label=\"Close\"\r\n >\r\n \u00D7\r\n </button>\r\n </div>\r\n\r\n <p class=\"ieeesa-add-working-groups__subtitle\">Choose working groups under the same committee</p>\r\n\r\n <!-- Search -->\r\n <div class=\"ieeesa-add-working-groups__search\">\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"searchTerm\"\r\n placeholder=\"Search by name...\"\r\n aria-label=\"Search working groups\"\r\n />\r\n </div>\r\n\r\n <!-- Table -->\r\n <div class=\"ieeesa-add-working-groups__table\">\r\n <div class=\"ieeesa-add-working-groups__table-head\">\r\n <span class=\"ieeesa-add-working-groups__col-name\">Working Group</span>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let row of filteredRows\"\r\n class=\"ieeesa-add-working-groups__row\"\r\n >\r\n <label class=\"ieeesa-add-working-groups__col-name\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"row.selected\"\r\n (change)=\"toggleRow(row)\"\r\n />\r\n <span>{{ row.groupName }}</span>\r\n </label>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"filteredRows.length === 0\"\r\n class=\"ieeesa-add-working-groups__empty\"\r\n >\r\n No working groups found.\r\n </div>\r\n </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"ieeesa-add-working-groups__actions\">\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"mat-tertiary-button\"\r\n (click)=\"onCancel()\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n mat-button\r\n type=\"button\"\r\n class=\"mat-primary-button\"\r\n [disabled]=\"selectedCount === 0\"\r\n (click)=\"onAdd()\"\r\n >\r\n Add\r\n </button>\r\n </div>\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-add-working-groups{padding:20px 24px;min-width:420px;font-family:Calibri Regular}.ieeesa-add-working-groups__header{display:flex;align-items:center;justify-content:space-between}.ieeesa-add-working-groups__title{font-family:Calibri Bold;font-size:1.25rem;font-weight:700;margin:0}.ieeesa-add-working-groups__close{border:none;background:none;font-size:1.5rem;line-height:1;cursor:pointer;color:#49454f}.ieeesa-add-working-groups__subtitle{font-size:.875rem;color:#49454f;margin:8px 0 16px}.ieeesa-add-working-groups__search{margin-bottom:12px}.ieeesa-add-working-groups__search input{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid #878b8f;border-radius:4px;font-size:.875rem}.ieeesa-add-working-groups__table{border-top:1px solid #e0e0e0;max-height:360px;overflow-y:auto}.ieeesa-add-working-groups__table-head{display:flex;align-items:center;padding:8px 0;background:#f7f7f7;font-family:Calibri Bold;font-weight:700;font-size:.8125rem;color:#49454f;position:sticky;top:0;z-index:1}.ieeesa-add-working-groups__row{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid #f0f0f0}.ieeesa-add-working-groups__col-name{flex:1 1 auto;display:flex;align-items:center;gap:10px;font-size:.875rem}.ieeesa-add-working-groups__empty{padding:16px 0;text-align:center;color:#878b8f;font-size:.875rem}.ieeesa-add-working-groups__actions{display:flex;justify-content:flex-start;gap:12px;margin-top:20px}\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: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }], encapsulation: i0.ViewEncapsulation.None }); }
738
778
  }
739
779
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AddWorkingGroupsComponent, decorators: [{
740
780
  type: Component,
@@ -5505,21 +5545,443 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5505
5545
  args: [{ selector: 'ieeesa-interested-rosters', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-interested-rosters ieeesa-body-md-16\">\r\n {{ placeholderMessage }}\r\n</div>\r\n", styles: [".ieeesa-interested-rosters{padding:16px 0}\n"] }]
5506
5546
  }] });
5507
5547
 
5548
+ /* eslint-disable no-unused-vars */
5549
+ /**
5550
+ * Supported field types for a custom interest-form question (SP3M-317). Values
5551
+ * match the backend FieldType enum / field_type CHECK constraint exactly.
5552
+ */
5553
+ var QuestionFieldType;
5554
+ (function (QuestionFieldType) {
5555
+ QuestionFieldType["TEXT"] = "TEXT";
5556
+ QuestionFieldType["TEXTAREA"] = "TEXTAREA";
5557
+ QuestionFieldType["SELECT"] = "SELECT";
5558
+ QuestionFieldType["CHECKBOX"] = "CHECKBOX";
5559
+ QuestionFieldType["RADIO"] = "RADIO";
5560
+ QuestionFieldType["DATE"] = "DATE";
5561
+ })(QuestionFieldType || (QuestionFieldType = {}));
5562
+ /**
5563
+ * Field types that require a configurable list of options
5564
+ * (SELECT / CHECKBOX / RADIO), matching the backend's choice-type validation.
5565
+ */
5566
+ const CHOICE_FIELD_TYPES = [
5567
+ QuestionFieldType.SELECT,
5568
+ QuestionFieldType.CHECKBOX,
5569
+ QuestionFieldType.RADIO,
5570
+ ];
5571
+ /**
5572
+ * Interest-expression mode for a group (matches backend InterestMode).
5573
+ */
5574
+ var InterestMode;
5575
+ (function (InterestMode) {
5576
+ InterestMode["DISABLED"] = "DISABLED";
5577
+ InterestMode["BASIC"] = "BASIC";
5578
+ InterestMode["FORM"] = "FORM";
5579
+ })(InterestMode || (InterestMode = {}));
5580
+ /**
5581
+ * roleTypeName value identifying member-level roles.
5582
+ */
5583
+ const MEMBER_LEVEL_ROLE_TYPE = 'Member Level';
5584
+
5585
+ /**
5586
+ * Editable card for a single custom interest-form question (SP3M-317). Renders
5587
+ * the Question Label, Type, Required toggle, Placeholder, Help Text and (for
5588
+ * choice types) Options fields. Emits save/cancel so the parent manages the
5589
+ * questions list. The Options field is only shown for choice field types
5590
+ * (SELECT / CHECKBOX / RADIO), matching the backend's choice-type validation.
5591
+ * @export
5592
+ * @class CustomQuestionEditorComponent
5593
+ */
5594
+ class CustomQuestionEditorComponent {
5595
+ // eslint-disable-next-line no-unused-vars
5596
+ constructor(formBuilder) {
5597
+ this.formBuilder = formBuilder;
5598
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5599
+ this.constants = screenTexts;
5600
+ this.editorTexts = this.constants?.rosterInterests?.interestForm?.questionEditor;
5601
+ this.fieldType = QuestionFieldType;
5602
+ this.typeOptions = [
5603
+ { value: QuestionFieldType.TEXT, label: this.editorTexts?.types?.text },
5604
+ {
5605
+ value: QuestionFieldType.TEXTAREA,
5606
+ label: this.editorTexts?.types?.textArea,
5607
+ },
5608
+ {
5609
+ value: QuestionFieldType.SELECT,
5610
+ label: this.editorTexts?.types?.dropdown,
5611
+ },
5612
+ {
5613
+ value: QuestionFieldType.CHECKBOX,
5614
+ label: this.editorTexts?.types?.checkbox,
5615
+ },
5616
+ { value: QuestionFieldType.RADIO, label: this.editorTexts?.types?.radio },
5617
+ { value: QuestionFieldType.DATE, label: this.editorTexts?.types?.date },
5618
+ ];
5619
+ this.save = new EventEmitter();
5620
+ this.cancel = new EventEmitter();
5621
+ }
5622
+ /**
5623
+ * Builds the reactive form, seeding values from the question being edited.
5624
+ * The question's options are stored as a raw JSON string, so they are parsed
5625
+ * into one-per-line text for editing.
5626
+ * @memberof CustomQuestionEditorComponent
5627
+ */
5628
+ ngOnInit() {
5629
+ this.form = this.formBuilder.group({
5630
+ label: [this.question?.questionLabel ?? '', [Validators.required]],
5631
+ type: [this.question?.fieldType ?? null, [Validators.required]],
5632
+ required: [this.question?.isRequired ?? true],
5633
+ placeholder: [this.question?.placeholder ?? ''],
5634
+ helpText: [this.question?.helpText ?? ''],
5635
+ options: [this.parseOptionsString(this.question?.options)],
5636
+ });
5637
+ }
5638
+ /**
5639
+ * Parses a stored options JSON string into one-per-line text for the textarea.
5640
+ * @param {(string | undefined)} optionsJson
5641
+ * @return {string}
5642
+ * @memberof CustomQuestionEditorComponent
5643
+ */
5644
+ parseOptionsString(optionsJson) {
5645
+ if (!optionsJson)
5646
+ return '';
5647
+ try {
5648
+ const parsed = JSON.parse(optionsJson);
5649
+ return Array.isArray(parsed) ? parsed.join('\n') : '';
5650
+ }
5651
+ catch {
5652
+ return '';
5653
+ }
5654
+ }
5655
+ /**
5656
+ * Whether the currently selected type requires an options list.
5657
+ * @return {boolean}
5658
+ * @memberof CustomQuestionEditorComponent
5659
+ */
5660
+ get isChoiceType() {
5661
+ return CHOICE_FIELD_TYPES.includes(this.form?.get('type')?.value);
5662
+ }
5663
+ /**
5664
+ * Parses the options textarea into a trimmed, non-empty string array,
5665
+ * stripping trailing commas.
5666
+ * @return {string[]}
5667
+ * @memberof CustomQuestionEditorComponent
5668
+ */
5669
+ parseOptions() {
5670
+ const raw = (this.form?.get('options')?.value ?? '');
5671
+ return raw
5672
+ .split('\n')
5673
+ .map((option) => option.trim().replace(/,+$/, '').trim())
5674
+ .filter((option) => option.length > 0);
5675
+ }
5676
+ /**
5677
+ * Whether the editor is valid: label and type are required, and choice types
5678
+ * require at least one option.
5679
+ * @return {boolean}
5680
+ * @memberof CustomQuestionEditorComponent
5681
+ */
5682
+ get isSaveDisabled() {
5683
+ if (this.form?.invalid)
5684
+ return true;
5685
+ if (this.isChoiceType && this.parseOptions().length === 0)
5686
+ return true;
5687
+ return false;
5688
+ }
5689
+ /**
5690
+ * Emits the assembled question on save. Options are serialized to a JSON
5691
+ * string to match the backend's JSONB column.
5692
+ * @memberof CustomQuestionEditorComponent
5693
+ */
5694
+ onSave() {
5695
+ this.form.markAllAsTouched();
5696
+ if (this.isSaveDisabled)
5697
+ return;
5698
+ const value = this.form.getRawValue();
5699
+ this.save.emit({
5700
+ questionId: this.question?.questionId,
5701
+ groupId: this.question?.groupId,
5702
+ viewOrder: this.question?.viewOrder,
5703
+ questionLabel: value.label?.trim(),
5704
+ fieldType: value.type,
5705
+ isRequired: value.required,
5706
+ placeholder: value.placeholder?.trim(),
5707
+ helpText: value.helpText?.trim(),
5708
+ options: this.isChoiceType
5709
+ ? JSON.stringify(this.parseOptions())
5710
+ : undefined,
5711
+ });
5712
+ }
5713
+ /**
5714
+ * Emits the cancel event.
5715
+ * @memberof CustomQuestionEditorComponent
5716
+ */
5717
+ onCancel() {
5718
+ this.cancel.emit();
5719
+ }
5720
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomQuestionEditorComponent, deps: [{ token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
5721
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomQuestionEditorComponent, isStandalone: true, selector: "ieeesa-custom-question-editor", inputs: { question: "question" }, outputs: { save: "save", cancel: "cancel" }, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"ieeesa-question-editor\">\r\n <div class=\"ieeesa-question-editor__grid\">\r\n <div class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.labelLabel }}\r\n <span class=\"ieeesa-question-editor__required-mark\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"ieeesa-question-editor__input ieeesa-body-sm-14\"\r\n formControlName=\"label\"\r\n [attr.placeholder]=\"editorTexts?.typeHerePlaceholder\"\r\n [attr.aria-label]=\"editorTexts?.labelLabel\"\r\n />\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.typeLabel }}\r\n </label>\r\n <select\r\n class=\"ieeesa-question-editor__input ieeesa-body-sm-14\"\r\n formControlName=\"type\"\r\n [attr.aria-label]=\"editorTexts?.typeLabel\"\r\n >\r\n <option [ngValue]=\"null\" disabled>\r\n {{ editorTexts?.selectPlaceholder }}\r\n </option>\r\n <option\r\n *ngFor=\"let option of typeOptions\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.label }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__required-row d-flex align-items-center gap-2\">\r\n <span class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">{{\r\n editorTexts?.requiredLabel\r\n }}</span>\r\n <label class=\"ieeesa-question-editor__switch\">\r\n <input type=\"checkbox\" formControlName=\"required\" />\r\n <span class=\"ieeesa-question-editor__slider\"></span>\r\n </label>\r\n <span class=\"ieeesa-question-editor__required-hint ieeesa-body-sm-14\">{{\r\n editorTexts?.requiredLabel\r\n }}</span>\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__grid\">\r\n <div class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.placeholderLabel }}\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"ieeesa-question-editor__input ieeesa-body-sm-14\"\r\n formControlName=\"placeholder\"\r\n [attr.placeholder]=\"editorTexts?.typeHerePlaceholder\"\r\n [attr.aria-label]=\"editorTexts?.placeholderLabel\"\r\n />\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.helpTextLabel }}\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"ieeesa-question-editor__input ieeesa-body-sm-14\"\r\n formControlName=\"helpText\"\r\n [attr.placeholder]=\"editorTexts?.typeHerePlaceholder\"\r\n [attr.aria-label]=\"editorTexts?.helpTextLabel\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isChoiceType\" class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.optionsLabel }}\r\n </label>\r\n <textarea\r\n class=\"ieeesa-question-editor__textarea ieeesa-body-sm-14\"\r\n formControlName=\"options\"\r\n rows=\"5\"\r\n [attr.placeholder]=\"editorTexts?.typeHerePlaceholder\"\r\n [attr.aria-label]=\"editorTexts?.optionsLabel\"\r\n ></textarea>\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__actions d-flex gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-question-editor__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"editorTexts?.cancel\"\r\n >\r\n {{ editorTexts?.cancel }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-question-editor__save\"\r\n [disabled]=\"isSaveDisabled\"\r\n (click)=\"onSave()\"\r\n [attr.aria-label]=\"editorTexts?.save\"\r\n >\r\n {{ editorTexts?.save }}\r\n </button>\r\n </div>\r\n</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-question-editor__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.ieeesa-question-editor__field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.ieeesa-question-editor__label{font-weight:600;color:#1c1d1e}.ieeesa-question-editor__required-mark{color:#b3261e}.ieeesa-question-editor__input,.ieeesa-question-editor__textarea{width:100%;padding:10px 12px;border:1px solid #d7d6d6;border-radius:4px;background:#fff;color:#1c1d1e}.ieeesa-question-editor__input:focus,.ieeesa-question-editor__textarea:focus{outline:none;border-color:#00629b}.ieeesa-question-editor__textarea{resize:vertical}.ieeesa-question-editor__required-row{margin-bottom:16px}.ieeesa-question-editor__required-hint{color:#777a7e}.ieeesa-question-editor__switch{position:relative;display:inline-block;width:40px;height:20px}.ieeesa-question-editor__switch input{opacity:0;width:0;height:0}.ieeesa-question-editor__switch input:checked+.ieeesa-question-editor__slider{background-color:#00629b}.ieeesa-question-editor__switch input:checked+.ieeesa-question-editor__slider:before{transform:translate(20px)}.ieeesa-question-editor__slider{position:absolute;inset:0;cursor:pointer;background-color:#a7a8aa;border-radius:20px;transition:background-color .2s}.ieeesa-question-editor__slider:before{content:\"\";position:absolute;height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;border-radius:50%;transition:transform .2s}.ieeesa-question-editor__actions{margin-top:8px}.ieeesa-question-editor__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-question-editor__save{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-question-editor__save:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}\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: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
5722
+ }
5723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomQuestionEditorComponent, decorators: [{
5724
+ type: Component,
5725
+ args: [{ selector: 'ieeesa-custom-question-editor', standalone: true, imports: [CommonModule, ReactiveFormsModule], encapsulation: ViewEncapsulation.None, template: "<form [formGroup]=\"form\" class=\"ieeesa-question-editor\">\r\n <div class=\"ieeesa-question-editor__grid\">\r\n <div class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.labelLabel }}\r\n <span class=\"ieeesa-question-editor__required-mark\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"ieeesa-question-editor__input ieeesa-body-sm-14\"\r\n formControlName=\"label\"\r\n [attr.placeholder]=\"editorTexts?.typeHerePlaceholder\"\r\n [attr.aria-label]=\"editorTexts?.labelLabel\"\r\n />\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.typeLabel }}\r\n </label>\r\n <select\r\n class=\"ieeesa-question-editor__input ieeesa-body-sm-14\"\r\n formControlName=\"type\"\r\n [attr.aria-label]=\"editorTexts?.typeLabel\"\r\n >\r\n <option [ngValue]=\"null\" disabled>\r\n {{ editorTexts?.selectPlaceholder }}\r\n </option>\r\n <option\r\n *ngFor=\"let option of typeOptions\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.label }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__required-row d-flex align-items-center gap-2\">\r\n <span class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">{{\r\n editorTexts?.requiredLabel\r\n }}</span>\r\n <label class=\"ieeesa-question-editor__switch\">\r\n <input type=\"checkbox\" formControlName=\"required\" />\r\n <span class=\"ieeesa-question-editor__slider\"></span>\r\n </label>\r\n <span class=\"ieeesa-question-editor__required-hint ieeesa-body-sm-14\">{{\r\n editorTexts?.requiredLabel\r\n }}</span>\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__grid\">\r\n <div class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.placeholderLabel }}\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"ieeesa-question-editor__input ieeesa-body-sm-14\"\r\n formControlName=\"placeholder\"\r\n [attr.placeholder]=\"editorTexts?.typeHerePlaceholder\"\r\n [attr.aria-label]=\"editorTexts?.placeholderLabel\"\r\n />\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.helpTextLabel }}\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"ieeesa-question-editor__input ieeesa-body-sm-14\"\r\n formControlName=\"helpText\"\r\n [attr.placeholder]=\"editorTexts?.typeHerePlaceholder\"\r\n [attr.aria-label]=\"editorTexts?.helpTextLabel\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isChoiceType\" class=\"ieeesa-question-editor__field\">\r\n <label class=\"ieeesa-question-editor__label ieeesa-body-sm-14\">\r\n {{ editorTexts?.optionsLabel }}\r\n </label>\r\n <textarea\r\n class=\"ieeesa-question-editor__textarea ieeesa-body-sm-14\"\r\n formControlName=\"options\"\r\n rows=\"5\"\r\n [attr.placeholder]=\"editorTexts?.typeHerePlaceholder\"\r\n [attr.aria-label]=\"editorTexts?.optionsLabel\"\r\n ></textarea>\r\n </div>\r\n\r\n <div class=\"ieeesa-question-editor__actions d-flex gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-question-editor__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"editorTexts?.cancel\"\r\n >\r\n {{ editorTexts?.cancel }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-question-editor__save\"\r\n [disabled]=\"isSaveDisabled\"\r\n (click)=\"onSave()\"\r\n [attr.aria-label]=\"editorTexts?.save\"\r\n >\r\n {{ editorTexts?.save }}\r\n </button>\r\n </div>\r\n</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-question-editor__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.ieeesa-question-editor__field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.ieeesa-question-editor__label{font-weight:600;color:#1c1d1e}.ieeesa-question-editor__required-mark{color:#b3261e}.ieeesa-question-editor__input,.ieeesa-question-editor__textarea{width:100%;padding:10px 12px;border:1px solid #d7d6d6;border-radius:4px;background:#fff;color:#1c1d1e}.ieeesa-question-editor__input:focus,.ieeesa-question-editor__textarea:focus{outline:none;border-color:#00629b}.ieeesa-question-editor__textarea{resize:vertical}.ieeesa-question-editor__required-row{margin-bottom:16px}.ieeesa-question-editor__required-hint{color:#777a7e}.ieeesa-question-editor__switch{position:relative;display:inline-block;width:40px;height:20px}.ieeesa-question-editor__switch input{opacity:0;width:0;height:0}.ieeesa-question-editor__switch input:checked+.ieeesa-question-editor__slider{background-color:#00629b}.ieeesa-question-editor__switch input:checked+.ieeesa-question-editor__slider:before{transform:translate(20px)}.ieeesa-question-editor__slider{position:absolute;inset:0;cursor:pointer;background-color:#a7a8aa;border-radius:20px;transition:background-color .2s}.ieeesa-question-editor__slider:before{content:\"\";position:absolute;height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;border-radius:50%;transition:transform .2s}.ieeesa-question-editor__actions{margin-top:8px}.ieeesa-question-editor__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-question-editor__save{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-question-editor__save:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}\n"] }]
5726
+ }], ctorParameters: function () { return [{ type: i1$1.FormBuilder }]; }, propDecorators: { question: [{
5727
+ type: Input
5728
+ }], save: [{
5729
+ type: Output
5730
+ }], cancel: [{
5731
+ type: Output
5732
+ }] } });
5733
+
5734
+ /**
5735
+ * Preview host for the interest form (SP3M-317 R6.7). Reuses the shared,
5736
+ * presentational ExpressInterestDialogComponent in read-only preview mode so
5737
+ * the admin sees the form exactly as an end user would, without any submit
5738
+ * action — only Cancel closes the dialog. No backend call is made; the admin's
5739
+ * in-progress custom questions are passed straight through.
5740
+ * @export
5741
+ * @class InterestFormPreviewComponent
5742
+ */
5743
+ class InterestFormPreviewComponent {
5744
+ constructor(
5745
+ // eslint-disable-next-line no-unused-vars
5746
+ dialogRef,
5747
+ // eslint-disable-next-line no-unused-vars
5748
+ data) {
5749
+ this.dialogRef = dialogRef;
5750
+ this.data = data;
5751
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5752
+ this.constants = screenTexts;
5753
+ this.previewTexts = this.constants?.rosterInterests?.interestForm?.preview;
5754
+ this.subtitle = '';
5755
+ this.customQuestions = [];
5756
+ this.subtitle = this.data?.groupName ?? '';
5757
+ // Only questions with a chosen field type are previewable; a half-added
5758
+ // question (null fieldType) is skipped.
5759
+ this.customQuestions = (this.data?.customQuestions ?? [])
5760
+ .filter((question) => !!question.fieldType)
5761
+ .map((question) => ({
5762
+ questionId: question.questionId ?? '',
5763
+ questionLabel: question.questionLabel,
5764
+ fieldType: question.fieldType,
5765
+ placeholder: question.placeholder ?? null,
5766
+ helpText: question.helpText ?? null,
5767
+ isRequired: question.isRequired ?? false,
5768
+ viewOrder: question.viewOrder ?? null,
5769
+ options: question.options ?? null,
5770
+ }));
5771
+ }
5772
+ /**
5773
+ * Closes the preview dialog.
5774
+ * @memberof InterestFormPreviewComponent
5775
+ */
5776
+ onClose() {
5777
+ this.dialogRef?.close();
5778
+ }
5779
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormPreviewComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
5780
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InterestFormPreviewComponent, isStandalone: true, selector: "ieeesa-interest-form-preview", ngImport: i0, template: "<ieeesa-express-interest-dialog\r\n [isPreview]=\"true\"\r\n [subtitle]=\"subtitle\"\r\n [customQuestions]=\"customQuestions\"\r\n [texts]=\"previewTexts\"\r\n (cancel)=\"onClose()\"\r\n></ieeesa-express-interest-dialog>\r\n", styles: [".ieeesa-interest-form-preview{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "component", type: ExpressInterestDialogComponent, selector: "ieeesa-express-interest-dialog", inputs: ["title", "subtitle", "userName", "userEmail", "standardFields", "isSubmitting", "isPreview", "loadFailed", "texts", "affiliationSuggestions", "customQuestions"], outputs: ["affiliationSearch", "save", "cancel"] }], encapsulation: i0.ViewEncapsulation.None }); }
5781
+ }
5782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormPreviewComponent, decorators: [{
5783
+ type: Component,
5784
+ args: [{ selector: 'ieeesa-interest-form-preview', standalone: true, imports: [CommonModule, MatDialogModule, ExpressInterestDialogComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-express-interest-dialog\r\n [isPreview]=\"true\"\r\n [subtitle]=\"subtitle\"\r\n [customQuestions]=\"customQuestions\"\r\n [texts]=\"previewTexts\"\r\n (cancel)=\"onClose()\"\r\n></ieeesa-express-interest-dialog>\r\n", styles: [".ieeesa-interest-form-preview{display:block}\n"] }]
5785
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
5786
+ type: Inject,
5787
+ args: [MAT_DIALOG_DATA]
5788
+ }] }]; } });
5789
+
5790
+ /**
5791
+ * Service for managing a group's interest form configuration and custom
5792
+ * questions (SP3M-317). Talks to the groups backend endpoints:
5793
+ * - GET /v1/groups/interest-config/{groupId}
5794
+ * - PUT /v1/groups/interest-config
5795
+ * - GET /v1/groups/interest-questions/{groupId}
5796
+ * - POST /v1/groups/interest-questions
5797
+ * - PUT /v1/groups/interest-questions
5798
+ * - PUT /v1/groups/interest-questions/reorder
5799
+ * - PUT /v1/groups/interest-questions/{questionId}/remove
5800
+ * - GET /v1/groups/interest-questions/{groupId}/preview
5801
+ * All write payloads are wrapped in the shared Request envelope ({ payload }).
5802
+ * @export
5803
+ * @class InterestFormService
5804
+ */
5805
+ class InterestFormService {
5806
+ // eslint-disable-next-line no-unused-vars
5807
+ constructor(httpService) {
5808
+ this.httpService = httpService;
5809
+ }
5810
+ /**
5811
+ * Sets the API base URL (resolved from the hosting application's config).
5812
+ * @param {string} apiBaseUrl
5813
+ * @memberof InterestFormService
5814
+ */
5815
+ setApiBaseUrl(apiBaseUrl) {
5816
+ this.apiBaseUrl = apiBaseUrl;
5817
+ }
5818
+ /**
5819
+ * Loads a group's interest configuration (mode + default member level).
5820
+ * @param {string} groupId
5821
+ * @return {Observable<InterestApiResponse<GroupInterestConfig>>}
5822
+ * @memberof InterestFormService
5823
+ */
5824
+ getInterestConfig(groupId) {
5825
+ return this.httpService
5826
+ .getData(`${this.apiBaseUrl}/groups/interest-config/${groupId}`)
5827
+ .pipe(map((response) => response), catchError((error) => {
5828
+ throw error;
5829
+ }));
5830
+ }
5831
+ /**
5832
+ * Loads the tenant's roles. Member levels (used to populate the default
5833
+ * membership level options) are the subset where roleTypeName is
5834
+ * "Member Level"; filtering is done by the caller.
5835
+ * @param {string} appId
5836
+ * @return {Observable<InterestApiResponse<GroupRole[]>>}
5837
+ * @memberof InterestFormService
5838
+ */
5839
+ getRoles(appId) {
5840
+ return this.httpService
5841
+ .getData(`${this.apiBaseUrl}/groups/role/${appId}`)
5842
+ .pipe(map((response) => response), catchError((error) => {
5843
+ throw error;
5844
+ }));
5845
+ }
5846
+ /**
5847
+ * Saves a group's interest configuration.
5848
+ * @param {GroupInterestConfig} config
5849
+ * @return {Observable<InterestApiResponse<string>>}
5850
+ * @memberof InterestFormService
5851
+ */
5852
+ saveInterestConfig(config) {
5853
+ return this.httpService
5854
+ .putData(`${this.apiBaseUrl}/groups/interest-config`, {
5855
+ payload: config,
5856
+ })
5857
+ .pipe(map((response) => response), catchError((error) => {
5858
+ throw error;
5859
+ }));
5860
+ }
5861
+ /**
5862
+ * Loads a group's custom interest questions (ordered by view order).
5863
+ * @param {string} groupId
5864
+ * @return {Observable<InterestApiResponse<CustomQuestion[]>>}
5865
+ * @memberof InterestFormService
5866
+ */
5867
+ getQuestions(groupId) {
5868
+ return this.httpService
5869
+ .getData(`${this.apiBaseUrl}/groups/interest-questions/${groupId}`)
5870
+ .pipe(map((response) => response), catchError((error) => {
5871
+ throw error;
5872
+ }));
5873
+ }
5874
+ /**
5875
+ * Creates a new custom interest question.
5876
+ * @param {CustomQuestion} question
5877
+ * @return {Observable<InterestApiResponse<CustomQuestion>>}
5878
+ * @memberof InterestFormService
5879
+ */
5880
+ createQuestion(question) {
5881
+ return this.httpService
5882
+ .postData(`${this.apiBaseUrl}/groups/interest-questions`, {
5883
+ payload: question,
5884
+ })
5885
+ .pipe(map((response) => response), catchError((error) => {
5886
+ throw error;
5887
+ }));
5888
+ }
5889
+ /**
5890
+ * Updates an existing custom interest question.
5891
+ * @param {CustomQuestion} question
5892
+ * @return {Observable<InterestApiResponse<string>>}
5893
+ * @memberof InterestFormService
5894
+ */
5895
+ updateQuestion(question) {
5896
+ return this.httpService
5897
+ .putData(`${this.apiBaseUrl}/groups/interest-questions`, {
5898
+ payload: question,
5899
+ })
5900
+ .pipe(map((response) => response), catchError((error) => {
5901
+ throw error;
5902
+ }));
5903
+ }
5904
+ /**
5905
+ * Persists the updated view order for a group's custom questions.
5906
+ * @param {QuestionOrder[]} questionOrders
5907
+ * @return {Observable<InterestApiResponse<string>>}
5908
+ * @memberof InterestFormService
5909
+ */
5910
+ reorderQuestions(questionOrders) {
5911
+ return this.httpService
5912
+ .putData(`${this.apiBaseUrl}/groups/interest-questions/reorder`, {
5913
+ payload: questionOrders,
5914
+ })
5915
+ .pipe(map((response) => response), catchError((error) => {
5916
+ throw error;
5917
+ }));
5918
+ }
5919
+ /**
5920
+ * Soft-deletes a custom interest question by id.
5921
+ * @param {string} questionId
5922
+ * @return {Observable<InterestApiResponse<string>>}
5923
+ * @memberof InterestFormService
5924
+ */
5925
+ removeQuestion(questionId) {
5926
+ return this.httpService
5927
+ .putData(`${this.apiBaseUrl}/groups/interest-questions/${questionId}/remove`, {})
5928
+ .pipe(map((response) => response), catchError((error) => {
5929
+ throw error;
5930
+ }));
5931
+ }
5932
+ /**
5933
+ * Builds a non-publishing preview of a group's interest form.
5934
+ * @param {string} groupId
5935
+ * @return {Observable<InterestApiResponse<unknown>>}
5936
+ * @memberof InterestFormService
5937
+ */
5938
+ previewForm(groupId) {
5939
+ return this.httpService
5940
+ .getData(`${this.apiBaseUrl}/groups/interest-questions/${groupId}/preview`)
5941
+ .pipe(map((response) => response), catchError((error) => {
5942
+ throw error;
5943
+ }));
5944
+ }
5945
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormService, deps: [{ token: i2.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5946
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormService, providedIn: 'root' }); }
5947
+ }
5948
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormService, decorators: [{
5949
+ type: Injectable,
5950
+ args: [{
5951
+ providedIn: 'root',
5952
+ }]
5953
+ }], ctorParameters: function () { return [{ type: i2.HttpService }]; } });
5954
+
5508
5955
  /**
5509
5956
  * "Interest Form" tab content of the Roster Interests dialog (SP3M-317). The
5510
- * group admin configures the interest form here: enable/disable the form, view
5511
- * the locked standard questions, choose the default membership level and manage
5512
- * custom questions. Interactive controls reuse the shared presentation
5513
- * components (slide toggle, radio). Persistence via a mocked service and the
5514
- * custom-question builder will be added in subsequent increments.
5957
+ * group admin enables/disables the form, views locked standard questions,
5958
+ * chooses the default membership level and manages custom questions
5959
+ * (add / edit / reorder / remove), persisted to the groups backend via
5960
+ * InterestFormService. Each question is saved individually (create/update) and
5961
+ * the enable mode + default level are saved via the interest-config endpoint.
5515
5962
  * @export
5516
5963
  * @class InterestFormComponent
5517
5964
  */
5518
5965
  class InterestFormComponent {
5519
5966
  constructor(
5520
5967
  // eslint-disable-next-line no-unused-vars
5521
- dialogRef) {
5968
+ dialogRef,
5969
+ // eslint-disable-next-line no-unused-vars
5970
+ group,
5971
+ // eslint-disable-next-line no-unused-vars
5972
+ interestFormService,
5973
+ // eslint-disable-next-line no-unused-vars
5974
+ groupsService,
5975
+ // eslint-disable-next-line no-unused-vars
5976
+ alertService,
5977
+ // eslint-disable-next-line no-unused-vars
5978
+ dialog) {
5522
5979
  this.dialogRef = dialogRef;
5980
+ this.group = group;
5981
+ this.interestFormService = interestFormService;
5982
+ this.groupsService = groupsService;
5983
+ this.alertService = alertService;
5984
+ this.dialog = dialog;
5523
5985
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5524
5986
  this.constants = screenTexts;
5525
5987
  this.interestFormTexts = this.constants?.rosterInterests?.interestForm;
@@ -5532,22 +5994,35 @@ class InterestFormComponent {
5532
5994
  this.defaultMembershipDescription = this.interestFormTexts?.defaultMembershipDescription;
5533
5995
  this.customQuestionsTitle = this.interestFormTexts?.customQuestionsTitle;
5534
5996
  this.addQuestionLabel = this.interestFormTexts?.addQuestionLabel;
5997
+ this.requiredTag = this.interestFormTexts?.requiredTag;
5535
5998
  this.standardTag = this.interestFormTexts?.standardTag;
5999
+ this.newQuestionLabel = this.interestFormTexts?.newQuestionLabel;
6000
+ this.editQuestionAriaLabel = this.interestFormTexts?.editQuestionAriaLabel;
6001
+ this.deleteQuestionAriaLabel = this.interestFormTexts?.deleteQuestionAriaLabel;
6002
+ this.noLevelsMessage = this.interestFormTexts?.noLevelsMessage;
6003
+ this.typeLabels = this.interestFormTexts?.questionEditor?.types;
5536
6004
  this.cancelLabel = this.constants?.rosterInterests?.footer?.cancel;
5537
6005
  this.previewLabel = this.constants?.rosterInterests?.footer?.preview;
5538
6006
  this.standardQuestions = [];
5539
6007
  this.membershipLevels = [];
5540
- // Controls whether the lower sections (standard questions, default membership
5541
- // level, custom questions) are shown. When the interest form is disabled only
5542
- // the toggle section is visible.
5543
- this.isFormEnabled = true;
6008
+ // Defaults to disabled (OFF). The real state is driven by the API response in
6009
+ // loadConfig; when no config has been saved yet the backend returns DISABLED,
6010
+ // so the first-time view correctly shows the toggle OFF.
6011
+ this.isFormEnabled = false;
6012
+ this.selectedLevelId = null;
6013
+ this.levels = [];
6014
+ this.customQuestions = [];
6015
+ this.editingQuestionId = null;
6016
+ this.isEditingNewQuestion = false;
6017
+ this.destroy$ = new Subject();
5544
6018
  }
5545
6019
  /**
5546
- * Initializes the toggle, locked standard questions and default membership
5547
- * level options from constants.
6020
+ * Initializes static UI options and loads the group's interest config and
6021
+ * custom questions from the backend.
5548
6022
  * @memberof InterestFormComponent
5549
6023
  */
5550
6024
  ngOnInit() {
6025
+ this.interestFormService.setApiBaseUrl(this.groupsService?.apiBaseUrl);
5551
6026
  this.enableFormToggle = {
5552
6027
  id: 1,
5553
6028
  label: '',
@@ -5559,20 +6034,348 @@ class InterestFormComponent {
5559
6034
  label,
5560
6035
  tag: this.standardTag,
5561
6036
  }));
5562
- this.membershipLevels = (this.interestFormTexts?.membershipLevels ?? []).map((label, index) => ({
5563
- id: index + 1,
5564
- label,
5565
- checked: index === 0,
6037
+ if (this.group?.groupId) {
6038
+ this.loadMembershipLevels();
6039
+ this.loadQuestions();
6040
+ }
6041
+ }
6042
+ /**
6043
+ * Loads the real membership levels for the group's group type and then the
6044
+ * saved interest configuration (so the saved default level can be
6045
+ * preselected).
6046
+ * @memberof InterestFormComponent
6047
+ */
6048
+ loadMembershipLevels() {
6049
+ const appId = this.groupsService?.getUserInfo()?.appId;
6050
+ if (!appId) {
6051
+ this.loadConfig();
6052
+ return;
6053
+ }
6054
+ this.interestFormService
6055
+ .getRoles(appId)
6056
+ .pipe(takeUntil(this.destroy$))
6057
+ .subscribe({
6058
+ next: (response) => {
6059
+ // Member levels are the roles whose roleTypeName is "Member Level".
6060
+ this.levels = (response?.body ?? []).filter((role) => role.roleTypeName === MEMBER_LEVEL_ROLE_TYPE);
6061
+ this.loadConfig();
6062
+ },
6063
+ error: (error) => {
6064
+ this.handleError(error);
6065
+ this.loadConfig();
6066
+ },
6067
+ });
6068
+ }
6069
+ /**
6070
+ * Loads the group's interest configuration (mode + default level) and syncs
6071
+ * the toggle and the default-level radio selection.
6072
+ * @memberof InterestFormComponent
6073
+ */
6074
+ loadConfig() {
6075
+ this.interestFormService
6076
+ .getInterestConfig(this.group.groupId)
6077
+ .pipe(takeUntil(this.destroy$))
6078
+ .subscribe({
6079
+ next: (response) => {
6080
+ const config = response?.body;
6081
+ this.isFormEnabled = config?.interestMode === InterestMode.FORM;
6082
+ this.enableFormToggle = {
6083
+ ...this.enableFormToggle,
6084
+ checked: this.isFormEnabled,
6085
+ };
6086
+ // Preselect the saved default level, else the first member level.
6087
+ this.selectedLevelId =
6088
+ config?.defaultLevelId ?? this.levels[0]?.roleId ?? null;
6089
+ this.buildMembershipLevelOptions();
6090
+ },
6091
+ error: (error) => this.handleError(error),
6092
+ });
6093
+ }
6094
+ /**
6095
+ * Builds the radio options from the real membership levels, marking the
6096
+ * currently selected level as checked.
6097
+ * @memberof InterestFormComponent
6098
+ */
6099
+ buildMembershipLevelOptions() {
6100
+ this.membershipLevels = this.levels.map((level) => ({
6101
+ id: level.roleId,
6102
+ label: level.roleName,
6103
+ checked: level.roleId === this.selectedLevelId,
5566
6104
  }));
5567
6105
  }
5568
6106
  /**
5569
- * Updates the form-enabled state when the toggle changes so the dependent
5570
- * sections show or hide accordingly.
6107
+ * Loads the group's custom questions.
6108
+ * @memberof InterestFormComponent
6109
+ */
6110
+ loadQuestions() {
6111
+ this.interestFormService
6112
+ .getQuestions(this.group.groupId)
6113
+ .pipe(takeUntil(this.destroy$))
6114
+ .subscribe({
6115
+ next: (response) => {
6116
+ this.customQuestions = response?.body ?? [];
6117
+ },
6118
+ error: (error) => this.handleError(error),
6119
+ });
6120
+ }
6121
+ /**
6122
+ * Updates the form-enabled state and persists the new interest mode.
5571
6123
  * @param {SlideToggleOption} toggle
5572
6124
  * @memberof InterestFormComponent
5573
6125
  */
5574
6126
  onEnableFormToggle(toggle) {
5575
6127
  this.isFormEnabled = toggle?.checked;
6128
+ if (!this.isFormEnabled) {
6129
+ // Disabling always persists immediately (no level needed).
6130
+ this.saveConfig();
6131
+ return;
6132
+ }
6133
+ // Enabling requires a default level (backend rejects FORM without one). If
6134
+ // none is selected yet, auto-select the level flagged default, else the
6135
+ // first available level, so the toggle persists immediately.
6136
+ if (!this.selectedLevelId) {
6137
+ this.selectedLevelId = this.levels[0]?.roleId ?? null;
6138
+ this.buildMembershipLevelOptions();
6139
+ }
6140
+ if (this.selectedLevelId) {
6141
+ this.saveConfig();
6142
+ }
6143
+ else {
6144
+ // No membership levels configured for this group type: cannot enable.
6145
+ this.alertService?.showMessage({
6146
+ status: 'custom',
6147
+ message: this.interestFormTexts?.noLevelsMessage,
6148
+ alertType: AlertType$1?.ERROR,
6149
+ isCloseNeeded: true,
6150
+ });
6151
+ }
6152
+ }
6153
+ /**
6154
+ * Persists the interest config. The default level is only sent for the
6155
+ * enabled (FORM) mode; DISABLED clears it. Enabling without a selected level
6156
+ * is skipped so an invalid request is never sent.
6157
+ * @memberof InterestFormComponent
6158
+ */
6159
+ saveConfig() {
6160
+ if (!this.group?.groupId)
6161
+ return;
6162
+ if (this.isFormEnabled && !this.selectedLevelId)
6163
+ return;
6164
+ this.interestFormService
6165
+ .saveInterestConfig({
6166
+ groupId: this.group.groupId,
6167
+ interestMode: this.isFormEnabled
6168
+ ? InterestMode.FORM
6169
+ : InterestMode.DISABLED,
6170
+ defaultLevelId: this.isFormEnabled ? this.selectedLevelId : null,
6171
+ })
6172
+ .pipe(takeUntil(this.destroy$))
6173
+ .subscribe({
6174
+ error: (error) => this.handleError(error),
6175
+ });
6176
+ }
6177
+ /**
6178
+ * Records the selected default membership level and persists the config when
6179
+ * the form is enabled.
6180
+ * @param {RadioOption} option
6181
+ * @memberof InterestFormComponent
6182
+ */
6183
+ onMembershipLevelChange(option) {
6184
+ this.selectedLevelId = String(option?.id);
6185
+ if (this.isFormEnabled) {
6186
+ this.saveConfig();
6187
+ }
6188
+ }
6189
+ /**
6190
+ * Adds a new blank question and opens its editor. Only one editor is open at
6191
+ * a time.
6192
+ * @memberof InterestFormComponent
6193
+ */
6194
+ onAddQuestion() {
6195
+ if (this.editingQuestionId)
6196
+ return;
6197
+ const tempId = `new-${Date.now()}`;
6198
+ const newQuestion = {
6199
+ questionId: tempId,
6200
+ groupId: this.group?.groupId,
6201
+ questionLabel: '',
6202
+ fieldType: null,
6203
+ isRequired: true,
6204
+ placeholder: '',
6205
+ helpText: '',
6206
+ options: undefined,
6207
+ viewOrder: this.customQuestions.length,
6208
+ };
6209
+ this.customQuestions = [...this.customQuestions, newQuestion];
6210
+ this.editingQuestionId = tempId;
6211
+ this.isEditingNewQuestion = true;
6212
+ }
6213
+ /**
6214
+ * Opens the editor for an existing question.
6215
+ * @param {CustomQuestion} question
6216
+ * @memberof InterestFormComponent
6217
+ */
6218
+ onEditQuestion(question) {
6219
+ if (this.editingQuestionId)
6220
+ return;
6221
+ this.editingQuestionId = question.questionId ?? null;
6222
+ this.isEditingNewQuestion = false;
6223
+ }
6224
+ /**
6225
+ * Creates or updates the question on the backend and refreshes the list.
6226
+ * @param {CustomQuestion} question
6227
+ * @memberof InterestFormComponent
6228
+ */
6229
+ onSaveQuestion(question) {
6230
+ if (this.isEditingNewQuestion) {
6231
+ const payload = { ...question };
6232
+ // Remove the temporary client id so the backend generates one.
6233
+ delete payload.questionId;
6234
+ this.interestFormService
6235
+ .createQuestion(payload)
6236
+ .pipe(takeUntil(this.destroy$))
6237
+ .subscribe({
6238
+ next: () => this.afterQuestionSaved(),
6239
+ error: (error) => this.handleError(error),
6240
+ });
6241
+ }
6242
+ else {
6243
+ this.interestFormService
6244
+ .updateQuestion(question)
6245
+ .pipe(takeUntil(this.destroy$))
6246
+ .subscribe({
6247
+ next: () => this.afterQuestionSaved(),
6248
+ error: (error) => this.handleError(error),
6249
+ });
6250
+ }
6251
+ }
6252
+ /**
6253
+ * Closes the editor and reloads the questions after a successful save.
6254
+ * @memberof InterestFormComponent
6255
+ */
6256
+ afterQuestionSaved() {
6257
+ this.editingQuestionId = null;
6258
+ this.isEditingNewQuestion = false;
6259
+ this.loadQuestions();
6260
+ }
6261
+ /**
6262
+ * Closes the editor. A newly added question is removed on cancel; an existing
6263
+ * question keeps its previous values.
6264
+ * @param {string} questionId
6265
+ * @memberof InterestFormComponent
6266
+ */
6267
+ onCancelQuestion(questionId) {
6268
+ if (this.isEditingNewQuestion) {
6269
+ this.customQuestions = this.customQuestions.filter((question) => question.questionId !== questionId);
6270
+ }
6271
+ this.editingQuestionId = null;
6272
+ this.isEditingNewQuestion = false;
6273
+ }
6274
+ /**
6275
+ * Removes a question on the backend and refreshes the list.
6276
+ * @param {string} questionId
6277
+ * @memberof InterestFormComponent
6278
+ */
6279
+ onDeleteQuestion(questionId) {
6280
+ if (!questionId)
6281
+ return;
6282
+ // A not-yet-saved question only exists client-side.
6283
+ if (questionId.startsWith('new-')) {
6284
+ this.onCancelQuestion(questionId);
6285
+ return;
6286
+ }
6287
+ this.interestFormService
6288
+ .removeQuestion(questionId)
6289
+ .pipe(takeUntil(this.destroy$))
6290
+ .subscribe({
6291
+ next: () => {
6292
+ if (this.editingQuestionId === questionId) {
6293
+ this.editingQuestionId = null;
6294
+ this.isEditingNewQuestion = false;
6295
+ }
6296
+ this.loadQuestions();
6297
+ },
6298
+ error: (error) => this.handleError(error),
6299
+ });
6300
+ }
6301
+ /**
6302
+ * Reorders questions on drag-drop and persists the new order.
6303
+ * @param {CdkDragDrop<CustomQuestion[]>} event
6304
+ * @memberof InterestFormComponent
6305
+ */
6306
+ onReorderQuestions(event) {
6307
+ const reordered = [...this.customQuestions];
6308
+ moveItemInArray(reordered, event.previousIndex, event.currentIndex);
6309
+ this.customQuestions = reordered.map((question, index) => ({
6310
+ ...question,
6311
+ viewOrder: index,
6312
+ }));
6313
+ this.interestFormService
6314
+ .reorderQuestions(this.customQuestions.map((question) => ({
6315
+ questionId: question.questionId,
6316
+ viewOrder: question.viewOrder,
6317
+ })))
6318
+ .pipe(takeUntil(this.destroy$))
6319
+ .subscribe({
6320
+ error: (error) => this.handleError(error),
6321
+ });
6322
+ }
6323
+ /**
6324
+ * Returns the display label for a question's field type.
6325
+ * @param {(QuestionFieldType | null)} type
6326
+ * @return {string}
6327
+ * @memberof InterestFormComponent
6328
+ */
6329
+ getTypeLabel(type) {
6330
+ switch (type) {
6331
+ case QuestionFieldType.TEXT:
6332
+ return this.typeLabels?.text;
6333
+ case QuestionFieldType.TEXTAREA:
6334
+ return this.typeLabels?.textArea;
6335
+ case QuestionFieldType.SELECT:
6336
+ return this.typeLabels?.dropdown;
6337
+ case QuestionFieldType.CHECKBOX:
6338
+ return this.typeLabels?.checkbox;
6339
+ case QuestionFieldType.RADIO:
6340
+ return this.typeLabels?.radio;
6341
+ case QuestionFieldType.DATE:
6342
+ return this.typeLabels?.date;
6343
+ default:
6344
+ return '';
6345
+ }
6346
+ }
6347
+ /**
6348
+ * Shows an error alert for a failed interest-form operation.
6349
+ * @param {*} error
6350
+ * @memberof InterestFormComponent
6351
+ */
6352
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6353
+ handleError(error) {
6354
+ this.alertService?.showMessage({
6355
+ status: 'custom',
6356
+ message: error?.error?.message ?? error?.message,
6357
+ alertType: AlertType$1?.ERROR,
6358
+ isCloseNeeded: true,
6359
+ });
6360
+ }
6361
+ /**
6362
+ * Opens the interest form in read-only preview mode (SP3M-317 R6.7), reusing
6363
+ * the shared express-interest dialog. Shows the admin's current custom
6364
+ * questions as an end user would see them; no submit, Cancel only.
6365
+ * @memberof InterestFormComponent
6366
+ */
6367
+ onPreview() {
6368
+ this.dialog?.open(InterestFormPreviewComponent, {
6369
+ width: '720px',
6370
+ maxWidth: '92vw',
6371
+ maxHeight: '90vh',
6372
+ panelClass: ['ieeesa-modal-dialog', 'ieeesa-interest-form-preview'],
6373
+ ariaModal: true,
6374
+ data: {
6375
+ groupName: this.group?.groupName ?? '',
6376
+ customQuestions: this.customQuestions,
6377
+ },
6378
+ });
5576
6379
  }
5577
6380
  /**
5578
6381
  * Closes the Roster Interests dialog (Cancel action).
@@ -5582,8 +6385,7 @@ class InterestFormComponent {
5582
6385
  this.dialogRef?.close();
5583
6386
  }
5584
6387
  /**
5585
- * Returns the unique identifier for a standard question row for ngFor
5586
- * tracking.
6388
+ * ngFor tracking for standard question rows.
5587
6389
  * @param {number} index
5588
6390
  * @param {StandardQuestionRow} question
5589
6391
  * @return {number}
@@ -5592,15 +6394,36 @@ class InterestFormComponent {
5592
6394
  trackByFn(index, question) {
5593
6395
  return question.id;
5594
6396
  }
5595
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormComponent, deps: [{ token: i1.MatDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
5596
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InterestFormComponent, isStandalone: true, selector: "ieeesa-interest-form", ngImport: i0, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n ></ieeesa-radio>\r\n </section>\r\n\r\n <section\r\n *ngIf=\"isFormEnabled\"\r\n class=\"ieeesa-interest-form__section ieeesa-interest-form__section--custom d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\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-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\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: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled", "canShowIcon"], outputs: ["slideToggleChange"] }, { kind: "component", type: RadioComponent, selector: "ieeesa-radio", inputs: ["formControlName", "radioGroup", "isDisabled"], outputs: ["selectedRadioOption"] }], encapsulation: i0.ViewEncapsulation.None }); }
6397
+ /**
6398
+ * ngFor tracking for custom questions.
6399
+ * @param {number} index
6400
+ * @param {CustomQuestion} question
6401
+ * @return {string}
6402
+ * @memberof InterestFormComponent
6403
+ */
6404
+ trackByQuestionId(index, question) {
6405
+ return question.questionId;
6406
+ }
6407
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormComponent, deps: [{ token: i1.MatDialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }, { token: InterestFormService }, { token: GroupsService }, { token: i2.AlertsService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
6408
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InterestFormComponent, isStandalone: true, selector: "ieeesa-interest-form", ngImport: i0, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n *ngIf=\"membershipLevels.length > 0\"\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n (selectedRadioOption)=\"onMembershipLevelChange($event)\"\r\n ></ieeesa-radio>\r\n <p\r\n *ngIf=\"membershipLevels.length === 0\"\r\n class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\"\r\n >\r\n {{ noLevelsMessage }}\r\n </p>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__custom-header d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [disabled]=\"editingQuestionId\"\r\n (click)=\"onAddQuestion()\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </div>\r\n\r\n <div\r\n cdkDropList\r\n class=\"ieeesa-interest-form__question-list\"\r\n (cdkDropListDropped)=\"onReorderQuestions($event)\"\r\n >\r\n <div\r\n *ngFor=\"let question of customQuestions; trackBy: trackByQuestionId\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"editingQuestionId\"\r\n class=\"ieeesa-interest-form__question\"\r\n [class.ieeesa-interest-form__question--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div\r\n class=\"ieeesa-interest-form__question-row d-flex align-items-center justify-content-between gap-2\"\r\n [class.ieeesa-interest-form__question-row--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div class=\"d-flex align-items-center gap-2 ieeesa-interest-form__question-main\">\r\n <span\r\n class=\"ieeesa-interest-form__drag-handle\"\r\n cdkDragHandle\r\n aria-hidden=\"true\"\r\n >\r\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 12 16\" fill=\"none\">\r\n <circle cx=\"3\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ieeesa-interest-form__question-label ieeesa-body-sm-14\">\r\n {{ question.questionLabel || newQuestionLabel }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <span\r\n *ngIf=\"question.fieldType\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--type ieeesa-body-sm-14\"\r\n >\r\n {{ getTypeLabel(question.fieldType) }}\r\n </span>\r\n <span\r\n *ngIf=\"question.isRequired\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--required ieeesa-body-sm-14\"\r\n >\r\n {{ requiredTag }}\r\n </span>\r\n <button\r\n *ngIf=\"editingQuestionId !== question.questionId\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn\"\r\n (click)=\"onEditQuestion(question)\"\r\n [attr.aria-label]=\"editQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.06.59l1.35 1.35c.79.78.79 2.05 0 2.83L4.18 18H0v-4.18L10.4 3.41 13.23.59c.78-.78 2.05-.78 2.83 0zM2 16l1.41.06L13.23 6.23l-1.41-1.41L2 14.64V16z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn ieeesa-interest-form__icon-btn--delete\"\r\n (click)=\"onDeleteQuestion(question.questionId)\"\r\n [attr.aria-label]=\"deleteQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 3V4H20V6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4V4H9V3H15ZM7 19H17V6H7V19ZM9 8H11V17H9V8ZM15 8H13V17H15V8Z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ieeesa-custom-question-editor\r\n *ngIf=\"editingQuestionId === question.questionId\"\r\n [question]=\"question\"\r\n (save)=\"onSaveQuestion($event)\"\r\n (cancel)=\"onCancelQuestion(question.questionId)\"\r\n ></ieeesa-custom-question-editor>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n (click)=\"onPreview()\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\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-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form__custom-header{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__add-question:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}.ieeesa-interest-form__question{border:1px solid #d7d6d6;border-radius:4px;margin-bottom:12px;overflow:hidden}.ieeesa-interest-form__question:last-child{margin-bottom:0}.ieeesa-interest-form__question--editing{border:2px solid #00629b}.ieeesa-interest-form .cdk-drag-preview,.ieeesa-interest-form .cdk-drag-placeholder{border:1px solid #d7d6d6!important;border-radius:4px;background:#fff}.ieeesa-interest-form__question-row{padding:12px 16px}.ieeesa-interest-form__question-row--editing{background-color:#eaf3f9;border-bottom:1px solid #d7d6d6}.ieeesa-interest-form__drag-handle{cursor:grab;color:#777a7e;display:flex;align-items:center}.ieeesa-interest-form ieeesa-custom-question-editor{display:block;padding:16px}.ieeesa-interest-form .ieeesa-interest-form__question-label{font-weight:600;color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px}.ieeesa-interest-form .ieeesa-interest-form__chip--type{background-color:#f0f5f9;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__chip--required{background-color:#b3261e14;color:#b3261e}.ieeesa-interest-form__icon-btn{background:none;border:none;cursor:pointer;color:#00629b;padding:0}.ieeesa-interest-form__icon-btn--delete{color:#b3261e}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\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: DragDropModule }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled", "canShowIcon"], outputs: ["slideToggleChange"] }, { kind: "component", type: RadioComponent, selector: "ieeesa-radio", inputs: ["formControlName", "radioGroup", "isDisabled"], outputs: ["selectedRadioOption"] }, { kind: "component", type: CustomQuestionEditorComponent, selector: "ieeesa-custom-question-editor", inputs: ["question"], outputs: ["save", "cancel"] }], encapsulation: i0.ViewEncapsulation.None }); }
5597
6409
  }
5598
6410
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormComponent, decorators: [{
5599
6411
  type: Component,
5600
- args: [{ selector: 'ieeesa-interest-form', standalone: true, imports: [CommonModule, SlideToggleComponent, RadioComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n ></ieeesa-radio>\r\n </section>\r\n\r\n <section\r\n *ngIf=\"isFormEnabled\"\r\n class=\"ieeesa-interest-form__section ieeesa-interest-form__section--custom d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\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-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"] }]
6412
+ args: [{ selector: 'ieeesa-interest-form', standalone: true, imports: [
6413
+ CommonModule,
6414
+ DragDropModule,
6415
+ SlideToggleComponent,
6416
+ RadioComponent,
6417
+ CustomQuestionEditorComponent,
6418
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n *ngIf=\"membershipLevels.length > 0\"\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n (selectedRadioOption)=\"onMembershipLevelChange($event)\"\r\n ></ieeesa-radio>\r\n <p\r\n *ngIf=\"membershipLevels.length === 0\"\r\n class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\"\r\n >\r\n {{ noLevelsMessage }}\r\n </p>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__custom-header d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [disabled]=\"editingQuestionId\"\r\n (click)=\"onAddQuestion()\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </div>\r\n\r\n <div\r\n cdkDropList\r\n class=\"ieeesa-interest-form__question-list\"\r\n (cdkDropListDropped)=\"onReorderQuestions($event)\"\r\n >\r\n <div\r\n *ngFor=\"let question of customQuestions; trackBy: trackByQuestionId\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"editingQuestionId\"\r\n class=\"ieeesa-interest-form__question\"\r\n [class.ieeesa-interest-form__question--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div\r\n class=\"ieeesa-interest-form__question-row d-flex align-items-center justify-content-between gap-2\"\r\n [class.ieeesa-interest-form__question-row--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div class=\"d-flex align-items-center gap-2 ieeesa-interest-form__question-main\">\r\n <span\r\n class=\"ieeesa-interest-form__drag-handle\"\r\n cdkDragHandle\r\n aria-hidden=\"true\"\r\n >\r\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 12 16\" fill=\"none\">\r\n <circle cx=\"3\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ieeesa-interest-form__question-label ieeesa-body-sm-14\">\r\n {{ question.questionLabel || newQuestionLabel }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <span\r\n *ngIf=\"question.fieldType\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--type ieeesa-body-sm-14\"\r\n >\r\n {{ getTypeLabel(question.fieldType) }}\r\n </span>\r\n <span\r\n *ngIf=\"question.isRequired\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--required ieeesa-body-sm-14\"\r\n >\r\n {{ requiredTag }}\r\n </span>\r\n <button\r\n *ngIf=\"editingQuestionId !== question.questionId\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn\"\r\n (click)=\"onEditQuestion(question)\"\r\n [attr.aria-label]=\"editQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.06.59l1.35 1.35c.79.78.79 2.05 0 2.83L4.18 18H0v-4.18L10.4 3.41 13.23.59c.78-.78 2.05-.78 2.83 0zM2 16l1.41.06L13.23 6.23l-1.41-1.41L2 14.64V16z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn ieeesa-interest-form__icon-btn--delete\"\r\n (click)=\"onDeleteQuestion(question.questionId)\"\r\n [attr.aria-label]=\"deleteQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 3V4H20V6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4V4H9V3H15ZM7 19H17V6H7V19ZM9 8H11V17H9V8ZM15 8H13V17H15V8Z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ieeesa-custom-question-editor\r\n *ngIf=\"editingQuestionId === question.questionId\"\r\n [question]=\"question\"\r\n (save)=\"onSaveQuestion($event)\"\r\n (cancel)=\"onCancelQuestion(question.questionId)\"\r\n ></ieeesa-custom-question-editor>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n (click)=\"onPreview()\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\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-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form__custom-header{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__add-question:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}.ieeesa-interest-form__question{border:1px solid #d7d6d6;border-radius:4px;margin-bottom:12px;overflow:hidden}.ieeesa-interest-form__question:last-child{margin-bottom:0}.ieeesa-interest-form__question--editing{border:2px solid #00629b}.ieeesa-interest-form .cdk-drag-preview,.ieeesa-interest-form .cdk-drag-placeholder{border:1px solid #d7d6d6!important;border-radius:4px;background:#fff}.ieeesa-interest-form__question-row{padding:12px 16px}.ieeesa-interest-form__question-row--editing{background-color:#eaf3f9;border-bottom:1px solid #d7d6d6}.ieeesa-interest-form__drag-handle{cursor:grab;color:#777a7e;display:flex;align-items:center}.ieeesa-interest-form ieeesa-custom-question-editor{display:block;padding:16px}.ieeesa-interest-form .ieeesa-interest-form__question-label{font-weight:600;color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px}.ieeesa-interest-form .ieeesa-interest-form__chip--type{background-color:#f0f5f9;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__chip--required{background-color:#b3261e14;color:#b3261e}.ieeesa-interest-form__icon-btn{background:none;border:none;cursor:pointer;color:#00629b;padding:0}.ieeesa-interest-form__icon-btn--delete{color:#b3261e}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"] }]
5601
6419
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef, decorators: [{
5602
6420
  type: Optional
5603
- }] }]; } });
6421
+ }] }, { type: undefined, decorators: [{
6422
+ type: Optional
6423
+ }, {
6424
+ type: Inject,
6425
+ args: [MAT_DIALOG_DATA]
6426
+ }] }, { type: InterestFormService }, { type: GroupsService }, { type: i2.AlertsService }, { type: i1.MatDialog }]; } });
5604
6427
 
5605
6428
  /**
5606
6429
  * Roster Interests dialog host (SP3M-317). Opened from the "Manage Interest
@@ -7035,7 +7858,7 @@ class RosterExportService {
7035
7858
  this.destroy$.next(true);
7036
7859
  this.destroy$ = new Subject();
7037
7860
  }
7038
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RosterExportService, deps: [{ token: i1$1.HttpClient }, { token: i1.MatDialog }, { token: i2.AlertsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
7861
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RosterExportService, deps: [{ token: i1$2.HttpClient }, { token: i1.MatDialog }, { token: i2.AlertsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
7039
7862
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RosterExportService, providedIn: 'root' }); }
7040
7863
  }
7041
7864
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RosterExportService, decorators: [{
@@ -7043,7 +7866,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
7043
7866
  args: [{
7044
7867
  providedIn: 'root',
7045
7868
  }]
7046
- }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.MatDialog }, { type: i2.AlertsService }]; } });
7869
+ }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.MatDialog }, { type: i2.AlertsService }]; } });
7047
7870
 
7048
7871
  /**
7049
7872
  * ViewRosterComponent implements the functionalities to add, edit, delete user to group roster, assign and modify roles(s) to the group users, and search user from roster.
@@ -8712,5 +9535,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8712
9535
  * Generated bundle index. Do not edit.
8713
9536
  */
8714
9537
 
8715
- export { AddWorkingGroupsComponent, CreateGroupComponent, EditUserRolesComponent, FilterType, GroupAction, GroupFunctionType, GroupNode, GroupRosterType, Groups, GroupsComponent, GroupsDataSource, GroupsModule, GroupsService, GroupsValidationPatterns, InterestFormComponent, InterestFormManagementComponent, InterestedRostersComponent, ReciprocalCreditSectionComponent, RoleType, RosterExportService, RosterFunctionType, RosterImportApiService, RosterImportComponent, RosterImportHistoryComponent, RosterImportStatus, RosterUploadStatus, TableColumnSchemaUserGroup, TreeViewComponent, representingOrgRequiredValidator, skipWhenArray };
9538
+ export { AddWorkingGroupsComponent, CHOICE_FIELD_TYPES, CreateGroupComponent, CustomQuestionEditorComponent, EditUserRolesComponent, FilterType, GroupAction, GroupFunctionType, GroupNode, GroupRosterType, Groups, GroupsComponent, GroupsDataSource, GroupsModule, GroupsService, GroupsValidationPatterns, InterestFormComponent, InterestFormManagementComponent, InterestFormPreviewComponent, InterestFormService, InterestMode, InterestedRostersComponent, MEMBER_LEVEL_ROLE_TYPE, QuestionFieldType, ReciprocalCreditSectionComponent, RoleType, RosterExportService, RosterFunctionType, RosterImportApiService, RosterImportComponent, RosterImportHistoryComponent, RosterImportStatus, RosterUploadStatus, TableColumnSchemaUserGroup, TreeViewComponent, representingOrgRequiredValidator, skipWhenArray };
8716
9539
  //# sourceMappingURL=ieeesa-npm-groups.mjs.map