@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.
@@ -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,186 @@
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
+ * Validates the application-level envelope for a write operation. A 2xx
27
+ * response can still carry an unsuccessful envelope ({ status: false }); this
28
+ * throws it so callers' error handlers run instead of treating it as success.
29
+ * @param {InterestApiResponse<T>} response
30
+ * @return {InterestApiResponse<T>}
31
+ * @memberof InterestFormService
32
+ */
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ assertSuccess(response) {
35
+ const status = response?.status;
36
+ const isSuccess = status === true || status === 'true' || status === 'SUCCESS';
37
+ if (!isSuccess) {
38
+ throw response;
39
+ }
40
+ return response;
41
+ }
42
+ /**
43
+ * Sets the API base URL (resolved from the hosting application's config).
44
+ * @param {string} apiBaseUrl
45
+ * @memberof InterestFormService
46
+ */
47
+ setApiBaseUrl(apiBaseUrl) {
48
+ this.apiBaseUrl = apiBaseUrl;
49
+ }
50
+ /**
51
+ * Loads a group's interest configuration (mode + default member level).
52
+ * @param {string} groupId
53
+ * @return {Observable<InterestApiResponse<GroupInterestConfig>>}
54
+ * @memberof InterestFormService
55
+ */
56
+ getInterestConfig(groupId) {
57
+ return this.httpService
58
+ .getData(`${this.apiBaseUrl}/groups/interest-config/${groupId}`)
59
+ .pipe(map((response) => response), catchError((error) => {
60
+ throw error;
61
+ }));
62
+ }
63
+ /**
64
+ * Loads the tenant's roles. Member levels (used to populate the default
65
+ * membership level options) are the subset where roleTypeName is
66
+ * "Member Level"; filtering is done by the caller.
67
+ * @param {string} appId
68
+ * @return {Observable<InterestApiResponse<GroupRole[]>>}
69
+ * @memberof InterestFormService
70
+ */
71
+ getRoles(appId) {
72
+ return this.httpService
73
+ .getData(`${this.apiBaseUrl}/groups/role/${appId}`)
74
+ .pipe(map((response) => response), catchError((error) => {
75
+ throw error;
76
+ }));
77
+ }
78
+ /**
79
+ * Saves a group's interest configuration.
80
+ * @param {GroupInterestConfig} config
81
+ * @return {Observable<InterestApiResponse<string>>}
82
+ * @memberof InterestFormService
83
+ */
84
+ saveInterestConfig(config) {
85
+ return this.httpService
86
+ .putData(`${this.apiBaseUrl}/groups/interest-config`, {
87
+ payload: config,
88
+ })
89
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
90
+ throw error;
91
+ }));
92
+ }
93
+ /**
94
+ * Loads a group's custom interest questions (ordered by view order).
95
+ * @param {string} groupId
96
+ * @return {Observable<InterestApiResponse<CustomQuestion[]>>}
97
+ * @memberof InterestFormService
98
+ */
99
+ getQuestions(groupId) {
100
+ return this.httpService
101
+ .getData(`${this.apiBaseUrl}/groups/interest-questions/${groupId}`)
102
+ .pipe(map((response) => response), catchError((error) => {
103
+ throw error;
104
+ }));
105
+ }
106
+ /**
107
+ * Creates a new custom interest question.
108
+ * @param {CustomQuestion} question
109
+ * @return {Observable<InterestApiResponse<CustomQuestion>>}
110
+ * @memberof InterestFormService
111
+ */
112
+ createQuestion(question) {
113
+ return this.httpService
114
+ .postData(`${this.apiBaseUrl}/groups/interest-questions`, {
115
+ payload: question,
116
+ })
117
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
118
+ throw error;
119
+ }));
120
+ }
121
+ /**
122
+ * Updates an existing custom interest question.
123
+ * @param {CustomQuestion} question
124
+ * @return {Observable<InterestApiResponse<string>>}
125
+ * @memberof InterestFormService
126
+ */
127
+ updateQuestion(question) {
128
+ return this.httpService
129
+ .putData(`${this.apiBaseUrl}/groups/interest-questions`, {
130
+ payload: question,
131
+ })
132
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
133
+ throw error;
134
+ }));
135
+ }
136
+ /**
137
+ * Persists the updated view order for a group's custom questions.
138
+ * @param {QuestionOrder[]} questionOrders
139
+ * @return {Observable<InterestApiResponse<string>>}
140
+ * @memberof InterestFormService
141
+ */
142
+ reorderQuestions(questionOrders) {
143
+ return this.httpService
144
+ .putData(`${this.apiBaseUrl}/groups/interest-questions/reorder`, {
145
+ payload: questionOrders,
146
+ })
147
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
148
+ throw error;
149
+ }));
150
+ }
151
+ /**
152
+ * Soft-deletes a custom interest question by id.
153
+ * @param {string} questionId
154
+ * @return {Observable<InterestApiResponse<string>>}
155
+ * @memberof InterestFormService
156
+ */
157
+ removeQuestion(questionId) {
158
+ return this.httpService
159
+ .putData(`${this.apiBaseUrl}/groups/interest-questions/${questionId}/remove`, {})
160
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
161
+ throw error;
162
+ }));
163
+ }
164
+ /**
165
+ * Builds a non-publishing preview of a group's interest form.
166
+ * @param {string} groupId
167
+ * @return {Observable<InterestApiResponse<unknown>>}
168
+ * @memberof InterestFormService
169
+ */
170
+ previewForm(groupId) {
171
+ return this.httpService
172
+ .getData(`${this.apiBaseUrl}/groups/interest-questions/${groupId}/preview`)
173
+ .pipe(map((response) => response), catchError((error) => {
174
+ throw error;
175
+ }));
176
+ }
177
+ 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 }); }
178
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormService, providedIn: 'root' }); }
179
+ }
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormService, decorators: [{
181
+ type: Injectable,
182
+ args: [{
183
+ providedIn: 'root',
184
+ }]
185
+ }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWtCbkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLDBDQUEwQztJQUMxQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQ7Ozs7Ozs7T0FPRztJQUNILDhEQUE4RDtJQUN0RCxhQUFhLENBQUMsUUFBYTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxRQUFRLEVBQUUsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUNiLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxNQUFNLFFBQVEsQ0FBQztTQUNoQjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUNmLE9BQWU7UUFFZixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLDJCQUEyQixPQUFPLEVBQUUsQ0FBQzthQUMvRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFD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QyxRQUFRLENBQUMsQ0FBQyxFQUMvQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQ1osVUFBa0I7UUFFbEIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQ04sR0FBRyxJQUFJLENBQUMsVUFBVSw4QkFBOEIsVUFBVSxTQUFTLEVBQ25FLEVBQUUsQ0FDSDthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDL0MsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE9BQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQ04sR0FBRyxJQUFJLENBQUMsVUFBVSw4QkFBOEIsT0FBTyxVQUFVLENBQ2xFO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQzNCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7K0dBdE5VLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQge1xyXG4gIEN1c3RvbVF1ZXN0aW9uLFxyXG4gIEdyb3VwSW50ZXJlc3RDb25maWcsXHJcbiAgR3JvdXBSb2xlLFxyXG4gIFF1ZXN0aW9uT3JkZXIsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2N1c3RvbS1xdWVzdGlvbi5tb2RlbCc7XHJcblxyXG4vKipcclxuICogU3RhbmRhcmQgQVBJIHJlc3BvbnNlIGVudmVsb3BlIHVzZWQgYnkgdGhlIGdyb3VwcyBiYWNrZW5kLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmVzdEFwaVJlc3BvbnNlPFQ+IHtcclxuICBzdGF0dXM6IGJvb2xlYW4gfCBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxuICBib2R5PzogVDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIGEgZ3JvdXAncyBpbnRlcmVzdCBmb3JtIGNvbmZpZ3VyYXRpb24gYW5kIGN1c3RvbVxyXG4gKiBxdWVzdGlvbnMgKFNQM00tMzE3KS4gVGFsa3MgdG8gdGhlIGdyb3VwcyBiYWNrZW5kIGVuZHBvaW50czpcclxuICogICAtIEdFVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1jb25maWcve2dyb3VwSWR9XHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtY29uZmlnXHJcbiAqICAgLSBHRVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3tncm91cElkfVxyXG4gKiAgIC0gUE9TVCAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc1xyXG4gKiAgIC0gUFVUICAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc1xyXG4gKiAgIC0gUFVUICAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy9yZW9yZGVyXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3txdWVzdGlvbklkfS9yZW1vdmVcclxuICogICAtIEdFVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve2dyb3VwSWR9L3ByZXZpZXdcclxuICogQWxsIHdyaXRlIHBheWxvYWRzIGFyZSB3cmFwcGVkIGluIHRoZSBzaGFyZWQgUmVxdWVzdCBlbnZlbG9wZSAoeyBwYXlsb2FkIH0pLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJlc3RGb3JtU2VydmljZSB7XHJcbiAgYXBpQmFzZVVybCE6IHN0cmluZztcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgYXBwbGljYXRpb24tbGV2ZWwgZW52ZWxvcGUgZm9yIGEgd3JpdGUgb3BlcmF0aW9uLiBBIDJ4eFxyXG4gICAqIHJlc3BvbnNlIGNhbiBzdGlsbCBjYXJyeSBhbiB1bnN1Y2Nlc3NmdWwgZW52ZWxvcGUgKHsgc3RhdHVzOiBmYWxzZSB9KTsgdGhpc1xyXG4gICAqIHRocm93cyBpdCBzbyBjYWxsZXJzJyBlcnJvciBoYW5kbGVycyBydW4gaW5zdGVhZCBvZiB0cmVhdGluZyBpdCBhcyBzdWNjZXNzLlxyXG4gICAqIEBwYXJhbSB7SW50ZXJlc3RBcGlSZXNwb25zZTxUPn0gcmVzcG9uc2VcclxuICAgKiBAcmV0dXJuIHtJbnRlcmVzdEFwaVJlc3BvbnNlPFQ+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIGFzc2VydFN1Y2Nlc3MocmVzcG9uc2U6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZT8uc3RhdHVzO1xyXG4gICAgY29uc3QgaXNTdWNjZXNzID1cclxuICAgICAgc3RhdHVzID09PSB0cnVlIHx8IHN0YXR1cyA9PT0gJ3RydWUnIHx8IHN0YXR1cyA9PT0gJ1NVQ0NFU1MnO1xyXG4gICAgaWYgKCFpc1N1Y2Nlc3MpIHtcclxuICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBBUEkgYmFzZSBVUkwgKHJlc29sdmVkIGZyb20gdGhlIGhvc3RpbmcgYXBwbGljYXRpb24ncyBjb25maWcpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcGlCYXNlVXJsXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBzZXRBcGlCYXNlVXJsKGFwaUJhc2VVcmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGEgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uIChtb2RlICsgZGVmYXVsdCBtZW1iZXIgbGV2ZWwpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEdyb3VwSW50ZXJlc3RDb25maWc+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEludGVyZXN0Q29uZmlnKFxyXG4gICAgZ3JvdXBJZDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEdyb3VwSW50ZXJlc3RDb25maWc+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1jb25maWcvJHtncm91cElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSB0ZW5hbnQncyByb2xlcy4gTWVtYmVyIGxldmVscyAodXNlZCB0byBwb3B1bGF0ZSB0aGUgZGVmYXVsdFxyXG4gICAqIG1lbWJlcnNoaXAgbGV2ZWwgb3B0aW9ucykgYXJlIHRoZSBzdWJzZXQgd2hlcmUgcm9sZVR5cGVOYW1lIGlzXHJcbiAgICogXCJNZW1iZXIgTGV2ZWxcIjsgZmlsdGVyaW5nIGlzIGRvbmUgYnkgdGhlIGNhbGxlci5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBwSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8R3JvdXBSb2xlW10+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFJvbGVzKGFwcElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8R3JvdXBSb2xlW10+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9yb2xlLyR7YXBwSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2F2ZXMgYSBncm91cCdzIGludGVyZXN0IGNvbmZpZ3VyYXRpb24uXHJcbiAgICogQHBhcmFtIHtHcm91cEludGVyZXN0Q29uZmlnfSBjb25maWdcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBzYXZlSW50ZXJlc3RDb25maWcoXHJcbiAgICBjb25maWc6IEdyb3VwSW50ZXJlc3RDb25maWdcclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtY29uZmlnYCwge1xyXG4gICAgICAgIHBheWxvYWQ6IGNvbmZpZyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyBhIGdyb3VwJ3MgY3VzdG9tIGludGVyZXN0IHF1ZXN0aW9ucyAob3JkZXJlZCBieSB2aWV3IG9yZGVyKS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxDdXN0b21RdWVzdGlvbltdPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBnZXRRdWVzdGlvbnMoXHJcbiAgICBncm91cElkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8Q3VzdG9tUXVlc3Rpb25bXT4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy8ke2dyb3VwSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBjdXN0b20gaW50ZXJlc3QgcXVlc3Rpb24uXHJcbiAgICogQHBhcmFtIHtDdXN0b21RdWVzdGlvbn0gcXVlc3Rpb25cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8Q3VzdG9tUXVlc3Rpb24+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIGNyZWF0ZVF1ZXN0aW9uKFxyXG4gICAgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEN1c3RvbVF1ZXN0aW9uPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBxdWVzdGlvbixcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHVwZGF0ZVF1ZXN0aW9uKFxyXG4gICAgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBxdWVzdGlvbixcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJzaXN0cyB0aGUgdXBkYXRlZCB2aWV3IG9yZGVyIGZvciBhIGdyb3VwJ3MgY3VzdG9tIHF1ZXN0aW9ucy5cclxuICAgKiBAcGFyYW0ge1F1ZXN0aW9uT3JkZXJbXX0gcXVlc3Rpb25PcmRlcnNcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICByZW9yZGVyUXVlc3Rpb25zKFxyXG4gICAgcXVlc3Rpb25PcmRlcnM6IFF1ZXN0aW9uT3JkZXJbXVxyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMvcmVvcmRlcmAsIHtcclxuICAgICAgICBwYXlsb2FkOiBxdWVzdGlvbk9yZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb2Z0LWRlbGV0ZXMgYSBjdXN0b20gaW50ZXJlc3QgcXVlc3Rpb24gYnkgaWQuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXN0aW9uSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICByZW1vdmVRdWVzdGlvbihcclxuICAgIHF1ZXN0aW9uSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMvJHtxdWVzdGlvbklkfS9yZW1vdmVgLFxyXG4gICAgICAgIHt9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZHMgYSBub24tcHVibGlzaGluZyBwcmV2aWV3IG9mIGEgZ3JvdXAncyBpbnRlcmVzdCBmb3JtLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHVua25vd24+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHByZXZpZXdGb3JtKGdyb3VwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTx1bmtub3duPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zLyR7Z3JvdXBJZH0vcHJldmlld2BcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsZ0ZBQWdGLENBQUM7QUFDL0YsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNENBQTRDLENBQUM7QUFFM0QsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZ3JvdXBzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZWRpdC11c2VyLXJvbGVzL2VkaXQtdXNlci1yb2xlcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JlY2lwcm9jYWwtY3JlZGl0LXNlY3Rpb24vcmVjaXByb2NhbC1jcmVkaXQtc2VjdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkZC13b3JraW5nLWdyb3Vwcy9hZGQtd29ya2luZy1ncm91cHMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb3N0ZXItaW1wb3J0L3Jvc3Rlci1pbXBvcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb3N0ZXItaW1wb3J0LWhpc3Rvcnkvcm9zdGVyLWltcG9ydC1oaXN0b3J5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW50ZXJlc3QtZm9ybS1tYW5hZ2VtZW50L2ludGVyZXN0LWZvcm0tbWFuYWdlbWVudC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ludGVyZXN0ZWQtcm9zdGVycy9pbnRlcmVzdGVkLXJvc3RlcnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnRlcmVzdC1mb3JtL2ludGVyZXN0LWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3JvdXBzLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY3JlYXRlLWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dyb3VwLWFjdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtdHlwZXMubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdmlldy1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9lZGl0LWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RlbGV0ZS1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ncm91cC11c2VyLWluZm8ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYWRkLW9yLWVkaXQtdXNlci1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yb3N0ZXItZnVuY3Rpb24tdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGFzc2lmaWNhdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9maWx0ZXItdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9vcmdhbml6YXRpb24ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm9sZS10eXBlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Jvc3Rlci10eXBlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RhYmxlLWNvbHVtbi1zY2hlbWEtdXNlci1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wYXJlbnQtZ3JvdXBzLWluZm8ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVjaXByb2NhbC1jcmVkaXQubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVxdWlyZWQtcHJvZmlsZS1maWVsZHMubW9kZWwnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yb3N0ZXItZXhwb3J0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yb3N0ZXItaW1wb3J0LWFwaS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yb3N0ZXItaW1wb3J0Lm1vZGVsJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy9mb3JtLXZhbGlkYXRpb25zJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dyb3Vwcy5tb2R1bGUnO1xyXG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsZ0ZBQWdGLENBQUM7QUFDL0YsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBncm91cHNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3JlYXRlLWdyb3VwL2NyZWF0ZS1ncm91cC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RyZWUtdmlldy90cmVlLXZpZXcuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9lZGl0LXVzZXItcm9sZXMvZWRpdC11c2VyLXJvbGVzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmVjaXByb2NhbC1jcmVkaXQtc2VjdGlvbi9yZWNpcHJvY2FsLWNyZWRpdC1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWRkLXdvcmtpbmctZ3JvdXBzL2FkZC13b3JraW5nLWdyb3Vwcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jvc3Rlci1pbXBvcnQvcm9zdGVyLWltcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jvc3Rlci1pbXBvcnQtaGlzdG9yeS9yb3N0ZXItaW1wb3J0LWhpc3RvcnkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnRlcmVzdC1mb3JtLW1hbmFnZW1lbnQvaW50ZXJlc3QtZm9ybS1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW50ZXJlc3RlZC1yb3N0ZXJzL2ludGVyZXN0ZWQtcm9zdGVycy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N1c3RvbS1xdWVzdGlvbi1lZGl0b3IvY3VzdG9tLXF1ZXN0aW9uLWVkaXRvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0tcHJldmlldy9pbnRlcmVzdC1mb3JtLXByZXZpZXcuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2N1c3RvbS1xdWVzdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2ludGVyZXN0LWZvcm0uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dyb3Vwcy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NyZWF0ZS1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ncm91cC1hY3Rpb24ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtZnVuY3Rpb24tdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ncm91cC1pbmZvLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dyb3VwLXR5cGVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3ZpZXctZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZWRpdC1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kZWxldGUtZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtdXNlci1pbmZvLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2FkZC1vci1lZGl0LXVzZXItZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm9zdGVyLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2xhc3NpZmljYXRpb24ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZmlsdGVyLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvb3JnYW5pemF0aW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JvbGUtdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yb3N0ZXItdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXVzZXItZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcGFyZW50LWdyb3Vwcy1pbmZvLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlY2lwcm9jYWwtY3JlZGl0Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcXVpcmVkLXByb2ZpbGUtZmllbGRzLm1vZGVsJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcm9zdGVyLWV4cG9ydC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcm9zdGVyLWltcG9ydC1hcGkuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm9zdGVyLWltcG9ydC5tb2RlbCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc3NldHMvZm9ybS12YWxpZGF0aW9ucyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncm91cHMubW9kdWxlJztcclxuIl19