@ieeesa-npm/groups 0.15.14 → 0.15.16
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.
- package/esm2022/lib/assets/constants.json +43 -5
- package/esm2022/lib/components/custom-question-editor/custom-question-editor.component.mjs +164 -0
- package/esm2022/lib/components/interest-form/interest-form.component.mjs +435 -27
- package/esm2022/lib/components/interest-form-preview/interest-form-preview.component.mjs +63 -0
- package/esm2022/lib/components/roster-import/roster-import.component.mjs +27 -10
- package/esm2022/lib/models/custom-question.model.mjs +37 -0
- package/esm2022/lib/services/interest-form.service.mjs +186 -0
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/ieeesa-npm-groups.mjs +932 -47
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/lib/components/custom-question-editor/custom-question-editor.component.d.ts +75 -0
- package/lib/components/interest-form/interest-form.component.d.ts +151 -16
- package/lib/components/interest-form-preview/interest-form-preview.component.d.ts +37 -0
- package/lib/components/roster-import/roster-import.component.d.ts +7 -1
- package/lib/models/custom-question.model.d.ts +72 -0
- package/lib/services/groups.service.d.ts +6 -0
- package/lib/services/interest-form.service.d.ts +114 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Component, Inject, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MAT_DIALOG_DATA, MatDialogModule, } from '@angular/material/dialog';
|
|
4
|
+
import { ExpressInterestDialogComponent } from '@ieeesa-npm/presentation';
|
|
5
|
+
import * as constants from '../../assets/constants.json';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/dialog";
|
|
8
|
+
/**
|
|
9
|
+
* Preview host for the interest form (SP3M-317 R6.7). Reuses the shared,
|
|
10
|
+
* presentational ExpressInterestDialogComponent in read-only preview mode so
|
|
11
|
+
* the admin sees the form exactly as an end user would, without any submit
|
|
12
|
+
* action — only Cancel closes the dialog. No backend call is made; the admin's
|
|
13
|
+
* in-progress custom questions are passed straight through.
|
|
14
|
+
* @export
|
|
15
|
+
* @class InterestFormPreviewComponent
|
|
16
|
+
*/
|
|
17
|
+
export class InterestFormPreviewComponent {
|
|
18
|
+
constructor(
|
|
19
|
+
// eslint-disable-next-line no-unused-vars
|
|
20
|
+
dialogRef,
|
|
21
|
+
// eslint-disable-next-line no-unused-vars
|
|
22
|
+
data) {
|
|
23
|
+
this.dialogRef = dialogRef;
|
|
24
|
+
this.data = data;
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
+
this.constants = constants;
|
|
27
|
+
this.previewTexts = this.constants?.rosterInterests?.interestForm?.preview;
|
|
28
|
+
this.subtitle = '';
|
|
29
|
+
this.customQuestions = [];
|
|
30
|
+
this.subtitle = this.data?.groupName ?? '';
|
|
31
|
+
// Only questions with a chosen field type are previewable; a half-added
|
|
32
|
+
// question (null fieldType) is skipped.
|
|
33
|
+
this.customQuestions = (this.data?.customQuestions ?? [])
|
|
34
|
+
.filter((question) => !!question.fieldType)
|
|
35
|
+
.map((question) => ({
|
|
36
|
+
questionId: question.questionId ?? '',
|
|
37
|
+
questionLabel: question.questionLabel,
|
|
38
|
+
fieldType: question.fieldType,
|
|
39
|
+
placeholder: question.placeholder ?? null,
|
|
40
|
+
helpText: question.helpText ?? null,
|
|
41
|
+
isRequired: question.isRequired ?? false,
|
|
42
|
+
viewOrder: question.viewOrder ?? null,
|
|
43
|
+
options: question.options ?? null,
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Closes the preview dialog.
|
|
48
|
+
* @memberof InterestFormPreviewComponent
|
|
49
|
+
*/
|
|
50
|
+
onClose() {
|
|
51
|
+
this.dialogRef?.close();
|
|
52
|
+
}
|
|
53
|
+
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 }); }
|
|
54
|
+
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 }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormPreviewComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
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"] }]
|
|
59
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
60
|
+
type: Inject,
|
|
61
|
+
args: [MAT_DIALOG_DATA]
|
|
62
|
+
}] }]; } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvaW50ZXJlc3QtZm9ybS1wcmV2aWV3L2ludGVyZXN0LWZvcm0tcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0tcHJldmlldy9pbnRlcmVzdC1mb3JtLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxHQUVoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzFFLE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7OztBQVd6RDs7Ozs7Ozs7R0FRRztBQVNILE1BQU0sT0FBTyw0QkFBNEI7SUFPdkM7SUFDRSwwQ0FBMEM7SUFDbkMsU0FBcUQ7SUFDNUQsMENBQTBDO0lBQ1QsSUFBNkI7UUFGdkQsY0FBUyxHQUFULFNBQVMsQ0FBNEM7UUFFM0IsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFWaEUsOERBQThEO1FBQzlELGNBQVMsR0FBUSxTQUFTLENBQUM7UUFDM0IsaUJBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDO1FBQ3RFLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxvQkFBZSxHQUEyQixFQUFFLENBQUM7UUFRM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDM0Msd0VBQXdFO1FBQ3hFLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxlQUFlLElBQUksRUFBRSxDQUFDO2FBQ3RELE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7YUFDMUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDckMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxhQUFhO1lBQ3JDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBOEI7WUFDbEQsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSTtZQUN6QyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJO1lBQ25DLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxJQUFJLEtBQUs7WUFDeEMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLElBQUksSUFBSTtZQUNyQyxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJO1NBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBcENVLDRCQUE0Qiw4Q0FXN0IsZUFBZTttR0FYZCw0QkFBNEIsd0ZDdEN6Qyx1T0FPQSx1R0QwQlksWUFBWSw4QkFBRSxlQUFlLCtCQUFFLDhCQUE4Qjs7NEZBSzVELDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDRSw4QkFBOEIsY0FDNUIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSw4QkFBOEIsQ0FBQyxpQkFHekQsaUJBQWlCLENBQUMsSUFBSTs7MEJBYWxDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9ESUFMT0dfREFUQSxcclxuICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgTWF0RGlhbG9nUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEV4cHJlc3NJbnRlcmVzdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEludGVyZXN0RmllbGRUeXBlLCBJbnRlcmVzdEZvcm1RdWVzdGlvbiB9IGZyb20gJ0BpZWVlc2EtbnBtL21vZGVscyc7XHJcbmltcG9ydCB7IEN1c3RvbVF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2N1c3RvbS1xdWVzdGlvbi5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5cclxuLyoqXHJcbiAqIERhdGEgcGFzc2VkIHRvIHRoZSBwcmV2aWV3IGRpYWxvZzogdGhlIGdyb3VwIG5hbWUgKHN1YnRpdGxlKSBhbmQgdGhlIGFkbWluJ3NcclxuICogY3VycmVudCBjdXN0b20gcXVlc3Rpb25zLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmVzdEZvcm1QcmV2aWV3RGF0YSB7XHJcbiAgZ3JvdXBOYW1lOiBzdHJpbmc7XHJcbiAgY3VzdG9tUXVlc3Rpb25zOiBDdXN0b21RdWVzdGlvbltdO1xyXG59XHJcblxyXG4vKipcclxuICogUHJldmlldyBob3N0IGZvciB0aGUgaW50ZXJlc3QgZm9ybSAoU1AzTS0zMTcgUjYuNykuIFJldXNlcyB0aGUgc2hhcmVkLFxyXG4gKiBwcmVzZW50YXRpb25hbCBFeHByZXNzSW50ZXJlc3REaWFsb2dDb21wb25lbnQgaW4gcmVhZC1vbmx5IHByZXZpZXcgbW9kZSBzb1xyXG4gKiB0aGUgYWRtaW4gc2VlcyB0aGUgZm9ybSBleGFjdGx5IGFzIGFuIGVuZCB1c2VyIHdvdWxkLCB3aXRob3V0IGFueSBzdWJtaXRcclxuICogYWN0aW9uIOKAlCBvbmx5IENhbmNlbCBjbG9zZXMgdGhlIGRpYWxvZy4gTm8gYmFja2VuZCBjYWxsIGlzIG1hZGU7IHRoZSBhZG1pbidzXHJcbiAqIGluLXByb2dyZXNzIGN1c3RvbSBxdWVzdGlvbnMgYXJlIHBhc3NlZCBzdHJhaWdodCB0aHJvdWdoLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBJbnRlcmVzdEZvcm1QcmV2aWV3Q29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1pbnRlcmVzdC1mb3JtLXByZXZpZXcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0RGlhbG9nTW9kdWxlLCBFeHByZXNzSW50ZXJlc3REaWFsb2dDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcmVzdC1mb3JtLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ludGVyZXN0LWZvcm0tcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1QcmV2aWV3Q29tcG9uZW50IHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIHByZXZpZXdUZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5yb3N0ZXJJbnRlcmVzdHM/LmludGVyZXN0Rm9ybT8ucHJldmlldztcclxuICBzdWJ0aXRsZSA9ICcnO1xyXG4gIGN1c3RvbVF1ZXN0aW9uczogSW50ZXJlc3RGb3JtUXVlc3Rpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEludGVyZXN0Rm9ybVByZXZpZXdDb21wb25lbnQ+LFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBJbnRlcmVzdEZvcm1QcmV2aWV3RGF0YVxyXG4gICkge1xyXG4gICAgdGhpcy5zdWJ0aXRsZSA9IHRoaXMuZGF0YT8uZ3JvdXBOYW1lID8/ICcnO1xyXG4gICAgLy8gT25seSBxdWVzdGlvbnMgd2l0aCBhIGNob3NlbiBmaWVsZCB0eXBlIGFyZSBwcmV2aWV3YWJsZTsgYSBoYWxmLWFkZGVkXHJcbiAgICAvLyBxdWVzdGlvbiAobnVsbCBmaWVsZFR5cGUpIGlzIHNraXBwZWQuXHJcbiAgICB0aGlzLmN1c3RvbVF1ZXN0aW9ucyA9ICh0aGlzLmRhdGE/LmN1c3RvbVF1ZXN0aW9ucyA/PyBbXSlcclxuICAgICAgLmZpbHRlcigocXVlc3Rpb24pID0+ICEhcXVlc3Rpb24uZmllbGRUeXBlKVxyXG4gICAgICAubWFwKChxdWVzdGlvbikgPT4gKHtcclxuICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbi5xdWVzdGlvbklkID8/ICcnLFxyXG4gICAgICAgIHF1ZXN0aW9uTGFiZWw6IHF1ZXN0aW9uLnF1ZXN0aW9uTGFiZWwsXHJcbiAgICAgICAgZmllbGRUeXBlOiBxdWVzdGlvbi5maWVsZFR5cGUgYXMgSW50ZXJlc3RGaWVsZFR5cGUsXHJcbiAgICAgICAgcGxhY2Vob2xkZXI6IHF1ZXN0aW9uLnBsYWNlaG9sZGVyID8/IG51bGwsXHJcbiAgICAgICAgaGVscFRleHQ6IHF1ZXN0aW9uLmhlbHBUZXh0ID8/IG51bGwsXHJcbiAgICAgICAgaXNSZXF1aXJlZDogcXVlc3Rpb24uaXNSZXF1aXJlZCA/PyBmYWxzZSxcclxuICAgICAgICB2aWV3T3JkZXI6IHF1ZXN0aW9uLnZpZXdPcmRlciA/PyBudWxsLFxyXG4gICAgICAgIG9wdGlvbnM6IHF1ZXN0aW9uLm9wdGlvbnMgPz8gbnVsbCxcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBwcmV2aWV3IGRpYWxvZy5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtUHJldmlld0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGllZWVzYS1leHByZXNzLWludGVyZXN0LWRpYWxvZ1xyXG4gIFtpc1ByZXZpZXddPVwidHJ1ZVwiXHJcbiAgW3N1YnRpdGxlXT1cInN1YnRpdGxlXCJcclxuICBbY3VzdG9tUXVlc3Rpb25zXT1cImN1c3RvbVF1ZXN0aW9uc1wiXHJcbiAgW3RleHRzXT1cInByZXZpZXdUZXh0c1wiXHJcbiAgKGNhbmNlbCk9XCJvbkNsb3NlKClcIlxyXG4+PC9pZWVlc2EtZXhwcmVzcy1pbnRlcmVzdC1kaWFsb2c+XHJcbiJdfQ==
|