@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.
- package/esm2022/lib/assets/constants.json +39 -1
- package/esm2022/lib/components/custom-question-editor/custom-question-editor.component.mjs +157 -0
- package/esm2022/lib/components/interest-form/interest-form.component.mjs +414 -27
- package/esm2022/lib/components/interest-form-preview/interest-form-preview.component.mjs +63 -0
- package/esm2022/lib/models/custom-question.model.mjs +37 -0
- package/esm2022/lib/services/interest-form.service.mjs +169 -0
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/ieeesa-npm-groups.mjs +857 -34
- 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 +143 -14
- package/lib/components/interest-form-preview/interest-form-preview.component.d.ts +37 -0
- package/lib/models/custom-question.model.d.ts +72 -0
- package/lib/services/interest-form.service.d.ts +105 -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==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
/**
|
|
3
|
+
* Supported field types for a custom interest-form question (SP3M-317). Values
|
|
4
|
+
* match the backend FieldType enum / field_type CHECK constraint exactly.
|
|
5
|
+
*/
|
|
6
|
+
export var QuestionFieldType;
|
|
7
|
+
(function (QuestionFieldType) {
|
|
8
|
+
QuestionFieldType["TEXT"] = "TEXT";
|
|
9
|
+
QuestionFieldType["TEXTAREA"] = "TEXTAREA";
|
|
10
|
+
QuestionFieldType["SELECT"] = "SELECT";
|
|
11
|
+
QuestionFieldType["CHECKBOX"] = "CHECKBOX";
|
|
12
|
+
QuestionFieldType["RADIO"] = "RADIO";
|
|
13
|
+
QuestionFieldType["DATE"] = "DATE";
|
|
14
|
+
})(QuestionFieldType || (QuestionFieldType = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Field types that require a configurable list of options
|
|
17
|
+
* (SELECT / CHECKBOX / RADIO), matching the backend's choice-type validation.
|
|
18
|
+
*/
|
|
19
|
+
export const CHOICE_FIELD_TYPES = [
|
|
20
|
+
QuestionFieldType.SELECT,
|
|
21
|
+
QuestionFieldType.CHECKBOX,
|
|
22
|
+
QuestionFieldType.RADIO,
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* Interest-expression mode for a group (matches backend InterestMode).
|
|
26
|
+
*/
|
|
27
|
+
export var InterestMode;
|
|
28
|
+
(function (InterestMode) {
|
|
29
|
+
InterestMode["DISABLED"] = "DISABLED";
|
|
30
|
+
InterestMode["BASIC"] = "BASIC";
|
|
31
|
+
InterestMode["FORM"] = "FORM";
|
|
32
|
+
})(InterestMode || (InterestMode = {}));
|
|
33
|
+
/**
|
|
34
|
+
* roleTypeName value identifying member-level roles.
|
|
35
|
+
*/
|
|
36
|
+
export const MEMBER_LEVEL_ROLE_TYPE = 'Member Level';
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXF1ZXN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvbW9kZWxzL2N1c3RvbS1xdWVzdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFFbkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFOLElBQVksaUJBT1g7QUFQRCxXQUFZLGlCQUFpQjtJQUMzQixrQ0FBYSxDQUFBO0lBQ2IsMENBQXFCLENBQUE7SUFDckIsc0NBQWlCLENBQUE7SUFDakIsMENBQXFCLENBQUE7SUFDckIsb0NBQWUsQ0FBQTtJQUNmLGtDQUFhLENBQUE7QUFDZixDQUFDLEVBUFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQU81QjtBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUF3QjtJQUNyRCxpQkFBaUIsQ0FBQyxNQUFNO0lBQ3hCLGlCQUFpQixDQUFDLFFBQVE7SUFDMUIsaUJBQWlCLENBQUMsS0FBSztDQUN4QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxZQUlYO0FBSkQsV0FBWSxZQUFZO0lBQ3RCLHFDQUFxQixDQUFBO0lBQ3JCLCtCQUFlLENBQUE7SUFDZiw2QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCO0FBbUREOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cclxuXHJcbi8qKlxyXG4gKiBTdXBwb3J0ZWQgZmllbGQgdHlwZXMgZm9yIGEgY3VzdG9tIGludGVyZXN0LWZvcm0gcXVlc3Rpb24gKFNQM00tMzE3KS4gVmFsdWVzXHJcbiAqIG1hdGNoIHRoZSBiYWNrZW5kIEZpZWxkVHlwZSBlbnVtIC8gZmllbGRfdHlwZSBDSEVDSyBjb25zdHJhaW50IGV4YWN0bHkuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBRdWVzdGlvbkZpZWxkVHlwZSB7XHJcbiAgVEVYVCA9ICdURVhUJyxcclxuICBURVhUQVJFQSA9ICdURVhUQVJFQScsXHJcbiAgU0VMRUNUID0gJ1NFTEVDVCcsXHJcbiAgQ0hFQ0tCT1ggPSAnQ0hFQ0tCT1gnLFxyXG4gIFJBRElPID0gJ1JBRElPJyxcclxuICBEQVRFID0gJ0RBVEUnLFxyXG59XHJcblxyXG4vKipcclxuICogRmllbGQgdHlwZXMgdGhhdCByZXF1aXJlIGEgY29uZmlndXJhYmxlIGxpc3Qgb2Ygb3B0aW9uc1xyXG4gKiAoU0VMRUNUIC8gQ0hFQ0tCT1ggLyBSQURJTyksIG1hdGNoaW5nIHRoZSBiYWNrZW5kJ3MgY2hvaWNlLXR5cGUgdmFsaWRhdGlvbi5cclxuICovXHJcbmV4cG9ydCBjb25zdCBDSE9JQ0VfRklFTERfVFlQRVM6IFF1ZXN0aW9uRmllbGRUeXBlW10gPSBbXHJcbiAgUXVlc3Rpb25GaWVsZFR5cGUuU0VMRUNULFxyXG4gIFF1ZXN0aW9uRmllbGRUeXBlLkNIRUNLQk9YLFxyXG4gIFF1ZXN0aW9uRmllbGRUeXBlLlJBRElPLFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEludGVyZXN0LWV4cHJlc3Npb24gbW9kZSBmb3IgYSBncm91cCAobWF0Y2hlcyBiYWNrZW5kIEludGVyZXN0TW9kZSkuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBJbnRlcmVzdE1vZGUge1xyXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcclxuICBCQVNJQyA9ICdCQVNJQycsXHJcbiAgRk9STSA9ICdGT1JNJyxcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgc2luZ2xlIGFkbWluLWNvbmZpZ3VyZWQgY3VzdG9tIHF1ZXN0aW9uIG9uIGEgZ3JvdXAncyBpbnRlcmVzdCBmb3JtLiBGaWVsZFxyXG4gKiBuYW1lcyBtaXJyb3IgdGhlIGJhY2tlbmQgSW50ZXJlc3RGb3JtUXVlc3Rpb24gZW50aXR5IHNvIHBheWxvYWRzIG1hcCBkaXJlY3RseS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUXVlc3Rpb24ge1xyXG4gIHF1ZXN0aW9uSWQ/OiBzdHJpbmc7XHJcbiAgZ3JvdXBJZDogc3RyaW5nO1xyXG4gIHF1ZXN0aW9uTGFiZWw6IHN0cmluZztcclxuICBmaWVsZFR5cGU6IFF1ZXN0aW9uRmllbGRUeXBlIHwgbnVsbDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBoZWxwVGV4dD86IHN0cmluZztcclxuICBpc1JlcXVpcmVkOiBib29sZWFuO1xyXG4gIHZpZXdPcmRlcjogbnVtYmVyO1xyXG4gIC8vIE9wdGlvbnMgYXJlIHN0b3JlZCBieSB0aGUgYmFja2VuZCBhcyBhIHJhdyBKU09OIHN0cmluZyAoSlNPTkIpLiBUaGUgc2VydmljZVxyXG4gIC8vIGxheWVyIHN0cmluZ2lmaWVzL3BhcnNlcyBiZXR3ZWVuIHRoaXMgc3RyaW5nIGFuZCBhIHN0cmluZ1tdIGluIHRoZSBVSS5cclxuICBvcHRpb25zPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogTGlnaHR3ZWlnaHQgdHJhbnNmZXIgb2JqZWN0IGZvciByZW9yZGVyaW5nIHF1ZXN0aW9ucyAobWF0Y2hlcyBiYWNrZW5kXHJcbiAqIFF1ZXN0aW9uT3JkZXIpLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbk9yZGVyIHtcclxuICBxdWVzdGlvbklkOiBzdHJpbmc7XHJcbiAgdmlld09yZGVyOiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHcm91cCBpbnRlcmVzdCBjb25maWd1cmF0aW9uIChtYXRjaGVzIGJhY2tlbmQgR3JvdXBJbnRlcmVzdENvbmZpZykuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwSW50ZXJlc3RDb25maWcge1xyXG4gIGdyb3VwSWQ6IHN0cmluZztcclxuICBpbnRlcmVzdE1vZGU6IHN0cmluZztcclxuICBkZWZhdWx0TGV2ZWxJZDogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgcm9sZSBlbnRyeSByZXR1cm5lZCBieSBHRVQgL2dyb3Vwcy9yb2xlL3thcHBJZH0uIE1lbWJlciBsZXZlbHMgYXJlIHRoZVxyXG4gKiBzdWJzZXQgd2hlcmUgcm9sZVR5cGVOYW1lID09PSBcIk1lbWJlciBMZXZlbFwiOyB0aGVpciByb2xlSWQgaXMgdXNlZCBhcyB0aGVcclxuICogaW50ZXJlc3QtY29uZmlnIGRlZmF1bHRMZXZlbElkIGFuZCByb2xlTmFtZSBpcyB0aGUgZGlzcGxheSBsYWJlbC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBSb2xlIHtcclxuICByb2xlSWQ6IHN0cmluZztcclxuICByb2xlVHlwZTogc3RyaW5nO1xyXG4gIHJvbGVOYW1lOiBzdHJpbmc7XHJcbiAgcm9sZVR5cGVOYW1lOiBzdHJpbmc7XHJcbiAgdmlld09yZGVyPzogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogcm9sZVR5cGVOYW1lIHZhbHVlIGlkZW50aWZ5aW5nIG1lbWJlci1sZXZlbCByb2xlcy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBNRU1CRVJfTEVWRUxfUk9MRV9UWVBFID0gJ01lbWJlciBMZXZlbCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { catchError, map } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ieeesa-npm/utility";
|
|
5
|
+
/**
|
|
6
|
+
* Service for managing a group's interest form configuration and custom
|
|
7
|
+
* questions (SP3M-317). Talks to the groups backend endpoints:
|
|
8
|
+
* - GET /v1/groups/interest-config/{groupId}
|
|
9
|
+
* - PUT /v1/groups/interest-config
|
|
10
|
+
* - GET /v1/groups/interest-questions/{groupId}
|
|
11
|
+
* - POST /v1/groups/interest-questions
|
|
12
|
+
* - PUT /v1/groups/interest-questions
|
|
13
|
+
* - PUT /v1/groups/interest-questions/reorder
|
|
14
|
+
* - PUT /v1/groups/interest-questions/{questionId}/remove
|
|
15
|
+
* - GET /v1/groups/interest-questions/{groupId}/preview
|
|
16
|
+
* All write payloads are wrapped in the shared Request envelope ({ payload }).
|
|
17
|
+
* @export
|
|
18
|
+
* @class InterestFormService
|
|
19
|
+
*/
|
|
20
|
+
export class InterestFormService {
|
|
21
|
+
// eslint-disable-next-line no-unused-vars
|
|
22
|
+
constructor(httpService) {
|
|
23
|
+
this.httpService = httpService;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sets the API base URL (resolved from the hosting application's config).
|
|
27
|
+
* @param {string} apiBaseUrl
|
|
28
|
+
* @memberof InterestFormService
|
|
29
|
+
*/
|
|
30
|
+
setApiBaseUrl(apiBaseUrl) {
|
|
31
|
+
this.apiBaseUrl = apiBaseUrl;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Loads a group's interest configuration (mode + default member level).
|
|
35
|
+
* @param {string} groupId
|
|
36
|
+
* @return {Observable<InterestApiResponse<GroupInterestConfig>>}
|
|
37
|
+
* @memberof InterestFormService
|
|
38
|
+
*/
|
|
39
|
+
getInterestConfig(groupId) {
|
|
40
|
+
return this.httpService
|
|
41
|
+
.getData(`${this.apiBaseUrl}/groups/interest-config/${groupId}`)
|
|
42
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
43
|
+
throw error;
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Loads the tenant's roles. Member levels (used to populate the default
|
|
48
|
+
* membership level options) are the subset where roleTypeName is
|
|
49
|
+
* "Member Level"; filtering is done by the caller.
|
|
50
|
+
* @param {string} appId
|
|
51
|
+
* @return {Observable<InterestApiResponse<GroupRole[]>>}
|
|
52
|
+
* @memberof InterestFormService
|
|
53
|
+
*/
|
|
54
|
+
getRoles(appId) {
|
|
55
|
+
return this.httpService
|
|
56
|
+
.getData(`${this.apiBaseUrl}/groups/role/${appId}`)
|
|
57
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
58
|
+
throw error;
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Saves a group's interest configuration.
|
|
63
|
+
* @param {GroupInterestConfig} config
|
|
64
|
+
* @return {Observable<InterestApiResponse<string>>}
|
|
65
|
+
* @memberof InterestFormService
|
|
66
|
+
*/
|
|
67
|
+
saveInterestConfig(config) {
|
|
68
|
+
return this.httpService
|
|
69
|
+
.putData(`${this.apiBaseUrl}/groups/interest-config`, {
|
|
70
|
+
payload: config,
|
|
71
|
+
})
|
|
72
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
73
|
+
throw error;
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Loads a group's custom interest questions (ordered by view order).
|
|
78
|
+
* @param {string} groupId
|
|
79
|
+
* @return {Observable<InterestApiResponse<CustomQuestion[]>>}
|
|
80
|
+
* @memberof InterestFormService
|
|
81
|
+
*/
|
|
82
|
+
getQuestions(groupId) {
|
|
83
|
+
return this.httpService
|
|
84
|
+
.getData(`${this.apiBaseUrl}/groups/interest-questions/${groupId}`)
|
|
85
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
86
|
+
throw error;
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Creates a new custom interest question.
|
|
91
|
+
* @param {CustomQuestion} question
|
|
92
|
+
* @return {Observable<InterestApiResponse<CustomQuestion>>}
|
|
93
|
+
* @memberof InterestFormService
|
|
94
|
+
*/
|
|
95
|
+
createQuestion(question) {
|
|
96
|
+
return this.httpService
|
|
97
|
+
.postData(`${this.apiBaseUrl}/groups/interest-questions`, {
|
|
98
|
+
payload: question,
|
|
99
|
+
})
|
|
100
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
101
|
+
throw error;
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Updates an existing custom interest question.
|
|
106
|
+
* @param {CustomQuestion} question
|
|
107
|
+
* @return {Observable<InterestApiResponse<string>>}
|
|
108
|
+
* @memberof InterestFormService
|
|
109
|
+
*/
|
|
110
|
+
updateQuestion(question) {
|
|
111
|
+
return this.httpService
|
|
112
|
+
.putData(`${this.apiBaseUrl}/groups/interest-questions`, {
|
|
113
|
+
payload: question,
|
|
114
|
+
})
|
|
115
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
116
|
+
throw error;
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Persists the updated view order for a group's custom questions.
|
|
121
|
+
* @param {QuestionOrder[]} questionOrders
|
|
122
|
+
* @return {Observable<InterestApiResponse<string>>}
|
|
123
|
+
* @memberof InterestFormService
|
|
124
|
+
*/
|
|
125
|
+
reorderQuestions(questionOrders) {
|
|
126
|
+
return this.httpService
|
|
127
|
+
.putData(`${this.apiBaseUrl}/groups/interest-questions/reorder`, {
|
|
128
|
+
payload: questionOrders,
|
|
129
|
+
})
|
|
130
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
131
|
+
throw error;
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Soft-deletes a custom interest question by id.
|
|
136
|
+
* @param {string} questionId
|
|
137
|
+
* @return {Observable<InterestApiResponse<string>>}
|
|
138
|
+
* @memberof InterestFormService
|
|
139
|
+
*/
|
|
140
|
+
removeQuestion(questionId) {
|
|
141
|
+
return this.httpService
|
|
142
|
+
.putData(`${this.apiBaseUrl}/groups/interest-questions/${questionId}/remove`, {})
|
|
143
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
144
|
+
throw error;
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Builds a non-publishing preview of a group's interest form.
|
|
149
|
+
* @param {string} groupId
|
|
150
|
+
* @return {Observable<InterestApiResponse<unknown>>}
|
|
151
|
+
* @memberof InterestFormService
|
|
152
|
+
*/
|
|
153
|
+
previewForm(groupId) {
|
|
154
|
+
return this.httpService
|
|
155
|
+
.getData(`${this.apiBaseUrl}/groups/interest-questions/${groupId}/preview`)
|
|
156
|
+
.pipe(map((response) => response), catchError((error) => {
|
|
157
|
+
throw error;
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
161
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormService, providedIn: 'root' }); }
|
|
162
|
+
}
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormService, decorators: [{
|
|
164
|
+
type: Injectable,
|
|
165
|
+
args: [{
|
|
166
|
+
providedIn: 'root',
|
|
167
|
+
}]
|
|
168
|
+
}], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWtCbkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLDBDQUEwQztJQUMxQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FDZixPQUFlO1FBRWYsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSwyQkFBMkIsT0FBTyxFQUFFLENBQUM7YUFDL0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQzNCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsUUFBUSxDQUFDLEtBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxnQkFBZ0IsS0FBSyxFQUFFLENBQUM7YUFDbEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFF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QztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsT0FBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FDTixHQUFHLElBQUksQ0FBQyxVQUFVLDhCQUE4QixPQUFPLFVBQVUsQ0FDbEU7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFDM0IsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0FuTVUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7XHJcbiAgQ3VzdG9tUXVlc3Rpb24sXHJcbiAgR3JvdXBJbnRlcmVzdENvbmZpZyxcclxuICBHcm91cFJvbGUsXHJcbiAgUXVlc3Rpb25PcmRlcixcclxufSBmcm9tICcuLi9tb2RlbHMvY3VzdG9tLXF1ZXN0aW9uLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZCBBUEkgcmVzcG9uc2UgZW52ZWxvcGUgdXNlZCBieSB0aGUgZ3JvdXBzIGJhY2tlbmQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEludGVyZXN0QXBpUmVzcG9uc2U8VD4ge1xyXG4gIHN0YXR1czogYm9vbGVhbiB8IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIGJvZHk/OiBUO1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgYSBncm91cCdzIGludGVyZXN0IGZvcm0gY29uZmlndXJhdGlvbiBhbmQgY3VzdG9tXHJcbiAqIHF1ZXN0aW9ucyAoU1AzTS0zMTcpLiBUYWxrcyB0byB0aGUgZ3JvdXBzIGJhY2tlbmQgZW5kcG9pbnRzOlxyXG4gKiAgIC0gR0VUICAvdjEvZ3JvdXBzL2ludGVyZXN0LWNvbmZpZy97Z3JvdXBJZH1cclxuICogICAtIFBVVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1jb25maWdcclxuICogICAtIEdFVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve2dyb3VwSWR9XHJcbiAqICAgLSBQT1NUIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3Jlb3JkZXJcclxuICogICAtIFBVVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve3F1ZXN0aW9uSWR9L3JlbW92ZVxyXG4gKiAgIC0gR0VUICAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy97Z3JvdXBJZH0vcHJldmlld1xyXG4gKiBBbGwgd3JpdGUgcGF5bG9hZHMgYXJlIHdyYXBwZWQgaW4gdGhlIHNoYXJlZCBSZXF1ZXN0IGVudmVsb3BlICh7IHBheWxvYWQgfSkuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1TZXJ2aWNlIHtcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgQVBJIGJhc2UgVVJMIChyZXNvbHZlZCBmcm9tIHRoZSBob3N0aW5nIGFwcGxpY2F0aW9uJ3MgY29uZmlnKS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpQmFzZVVybFxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0QXBpQmFzZVVybChhcGlCYXNlVXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpQmFzZVVybCA9IGFwaUJhc2VVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyBhIGdyb3VwJ3MgaW50ZXJlc3QgY29uZmlndXJhdGlvbiAobW9kZSArIGRlZmF1bHQgbWVtYmVyIGxldmVsKS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxHcm91cEludGVyZXN0Q29uZmlnPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBnZXRJbnRlcmVzdENvbmZpZyhcclxuICAgIGdyb3VwSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxHcm91cEludGVyZXN0Q29uZmlnPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtY29uZmlnLyR7Z3JvdXBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgdGVuYW50J3Mgcm9sZXMuIE1lbWJlciBsZXZlbHMgKHVzZWQgdG8gcG9wdWxhdGUgdGhlIGRlZmF1bHRcclxuICAgKiBtZW1iZXJzaGlwIGxldmVsIG9wdGlvbnMpIGFyZSB0aGUgc3Vic2V0IHdoZXJlIHJvbGVUeXBlTmFtZSBpc1xyXG4gICAqIFwiTWVtYmVyIExldmVsXCI7IGZpbHRlcmluZyBpcyBkb25lIGJ5IHRoZSBjYWxsZXIuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEdyb3VwUm9sZVtdPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBnZXRSb2xlcyhhcHBJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEdyb3VwUm9sZVtdPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvcm9sZS8ke2FwcElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmVzIGEgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbnRlcmVzdENvbmZpZ30gY29uZmlnXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgc2F2ZUludGVyZXN0Q29uZmlnKFxyXG4gICAgY29uZmlnOiBHcm91cEludGVyZXN0Q29uZmlnXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LWNvbmZpZ2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBjb25maWcsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGEgZ3JvdXAncyBjdXN0b20gaW50ZXJlc3QgcXVlc3Rpb25zIChvcmRlcmVkIGJ5IHZpZXcgb3JkZXIpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEN1c3RvbVF1ZXN0aW9uW10+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFF1ZXN0aW9ucyhcclxuICAgIGdyb3VwSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxDdXN0b21RdWVzdGlvbltdPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zLyR7Z3JvdXBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxDdXN0b21RdWVzdGlvbj4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgY3JlYXRlUXVlc3Rpb24oXHJcbiAgICBxdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb25cclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8Q3VzdG9tUXVlc3Rpb24+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zYCwge1xyXG4gICAgICAgIHBheWxvYWQ6IHF1ZXN0aW9uLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHVwZGF0ZVF1ZXN0aW9uKFxyXG4gICAgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBxdWVzdGlvbixcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyc2lzdHMgdGhlIHVwZGF0ZWQgdmlldyBvcmRlciBmb3IgYSBncm91cCdzIGN1c3RvbSBxdWVzdGlvbnMuXHJcbiAgICogQHBhcmFtIHtRdWVzdGlvbk9yZGVyW119IHF1ZXN0aW9uT3JkZXJzXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgcmVvcmRlclF1ZXN0aW9ucyhcclxuICAgIHF1ZXN0aW9uT3JkZXJzOiBRdWVzdGlvbk9yZGVyW11cclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3Jlb3JkZXJgLCB7XHJcbiAgICAgICAgcGF5bG9hZDogcXVlc3Rpb25PcmRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvZnQtZGVsZXRlcyBhIGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbiBieSBpZC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlc3Rpb25JZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHJlbW92ZVF1ZXN0aW9uKFxyXG4gICAgcXVlc3Rpb25JZDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy8ke3F1ZXN0aW9uSWR9L3JlbW92ZWAsXHJcbiAgICAgICAge31cclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZHMgYSBub24tcHVibGlzaGluZyBwcmV2aWV3IG9mIGEgZ3JvdXAncyBpbnRlcmVzdCBmb3JtLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHVua25vd24+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHByZXZpZXdGb3JtKGdyb3VwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTx1bmtub3duPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zLyR7Z3JvdXBJZH0vcHJldmlld2BcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -11,6 +11,10 @@ export * from './lib/components/roster-import-history/roster-import-history.comp
|
|
|
11
11
|
export * from './lib/components/interest-form-management/interest-form-management.component';
|
|
12
12
|
export * from './lib/components/interested-rosters/interested-rosters.component';
|
|
13
13
|
export * from './lib/components/interest-form/interest-form.component';
|
|
14
|
+
export * from './lib/components/custom-question-editor/custom-question-editor.component';
|
|
15
|
+
export * from './lib/components/interest-form-preview/interest-form-preview.component';
|
|
16
|
+
export * from './lib/models/custom-question.model';
|
|
17
|
+
export * from './lib/services/interest-form.service';
|
|
14
18
|
export * from './lib/groups.component';
|
|
15
19
|
export * from './lib/models/create-group.model';
|
|
16
20
|
export * from './lib/models/group-action.model';
|
|
@@ -38,4 +42,4 @@ export * from './lib/services/roster-import-api.service';
|
|
|
38
42
|
export * from './lib/models/roster-import.model';
|
|
39
43
|
export * from './lib/assets/form-validations';
|
|
40
44
|
export * from './lib/groups.module';
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsZ0ZBQWdGLENBQUM7QUFDL0YsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBncm91cHNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3JlYXRlLWdyb3VwL2NyZWF0ZS1ncm91cC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RyZWUtdmlldy90cmVlLXZpZXcuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9lZGl0LXVzZXItcm9sZXMvZWRpdC11c2VyLXJvbGVzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmVjaXByb2NhbC1jcmVkaXQtc2VjdGlvbi9yZWNpcHJvY2FsLWNyZWRpdC1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWRkLXdvcmtpbmctZ3JvdXBzL2FkZC13b3JraW5nLWdyb3Vwcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jvc3Rlci1pbXBvcnQvcm9zdGVyLWltcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jvc3Rlci1pbXBvcnQtaGlzdG9yeS9yb3N0ZXItaW1wb3J0LWhpc3RvcnkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnRlcmVzdC1mb3JtLW1hbmFnZW1lbnQvaW50ZXJlc3QtZm9ybS1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW50ZXJlc3RlZC1yb3N0ZXJzL2ludGVyZXN0ZWQtcm9zdGVycy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N1c3RvbS1xdWVzdGlvbi1lZGl0b3IvY3VzdG9tLXF1ZXN0aW9uLWVkaXRvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0tcHJldmlldy9pbnRlcmVzdC1mb3JtLXByZXZpZXcuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2N1c3RvbS1xdWVzdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2ludGVyZXN0LWZvcm0uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dyb3Vwcy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NyZWF0ZS1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ncm91cC1hY3Rpb24ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtZnVuY3Rpb24tdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ncm91cC1pbmZvLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dyb3VwLXR5cGVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3ZpZXctZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZWRpdC1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kZWxldGUtZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtdXNlci1pbmZvLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2FkZC1vci1lZGl0LXVzZXItZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm9zdGVyLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2xhc3NpZmljYXRpb24ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZmlsdGVyLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvb3JnYW5pemF0aW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JvbGUtdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yb3N0ZXItdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXVzZXItZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcGFyZW50LWdyb3Vwcy1pbmZvLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlY2lwcm9jYWwtY3JlZGl0Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcXVpcmVkLXByb2ZpbGUtZmllbGRzLm1vZGVsJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcm9zdGVyLWV4cG9ydC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcm9zdGVyLWltcG9ydC1hcGkuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm9zdGVyLWltcG9ydC5tb2RlbCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc3NldHMvZm9ybS12YWxpZGF0aW9ucyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncm91cHMubW9kdWxlJztcclxuIl19
|