@openmrs/ngx-formentry 3.0.1-pre.94 → 3.1.1-pre.177
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/bundles/openmrs-ngx-formentry.umd.js +722 -409
- package/bundles/openmrs-ngx-formentry.umd.js.map +1 -1
- package/components/number-input/number-input.component.d.ts +9 -1
- package/components/number-input/number-input.module.d.ts +4 -3
- package/components/number-input/number.directive.d.ts +9 -0
- package/components/radio-button/radio.component.d.ts +6 -3
- package/esm2015/components/afe-ng-select.component.js +3 -3
- package/esm2015/components/appointments-overview/appointments-overview.component.js +3 -3
- package/esm2015/components/check-box/checkbox.component.js +6 -7
- package/esm2015/components/check-box/checkbox.module.js +4 -4
- package/esm2015/components/custom-component-wrapper/custom-component-wrapper..module.js +4 -4
- package/esm2015/components/custom-component-wrapper/custom-component-wrapper.component.js +3 -3
- package/esm2015/components/custom-control-wrapper/custom-control-wrapper..module.js +4 -4
- package/esm2015/components/custom-control-wrapper/custom-control-wrapper.component.js +3 -3
- package/esm2015/components/date-time-picker/date-picker/date-picker.component.js +3 -3
- package/esm2015/components/date-time-picker/date-time-picker.component.js +3 -3
- package/esm2015/components/date-time-picker/date-time-picker.module.js +4 -4
- package/esm2015/components/date-time-picker/picker-modal/modal.component.js +3 -3
- package/esm2015/components/date-time-picker/pipes/moment.pipe.js +3 -3
- package/esm2015/components/date-time-picker/time-picker/time-picker.component.js +3 -3
- package/esm2015/components/file-upload/file-upload.component.js +3 -3
- package/esm2015/components/file-upload/file-upload.module.js +4 -4
- package/esm2015/components/file-upload/secure.pipe.js +3 -3
- package/esm2015/components/input/input.directive.js +3 -3
- package/esm2015/components/input/input.module.js +4 -4
- package/esm2015/components/input/label.component.js +3 -3
- package/esm2015/components/input/text-area.directive.js +3 -3
- package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.component.js +3 -3
- package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.module.js +4 -4
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.js +8 -8
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-body.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.class.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.module.js +4 -4
- package/esm2015/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/timer-box.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/date-time/timer.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-container.component.js +3 -3
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.module.js +4 -4
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.service.js +3 -3
- package/esm2015/components/ngx-remote-select/ngx-remote-select.component.js +6 -6
- package/esm2015/components/ngx-remote-select/ngx-remote-select.module.js +4 -4
- package/esm2015/components/ngx-tabset/components/ngx-tab-set.component.js +4 -4
- package/esm2015/components/ngx-tabset/components/tab.component.js +3 -3
- package/esm2015/components/ngx-tabset/directives/hover-class.directive.js +3 -3
- package/esm2015/components/ngx-tabset/modules/ngx-tabset.module.js +4 -4
- package/esm2015/components/number-input/number-input.component.js +26 -7
- package/esm2015/components/number-input/number-input.module.js +7 -6
- package/esm2015/components/number-input/number.directive.js +22 -0
- package/esm2015/components/radio-button/radio.component.js +27 -14
- package/esm2015/components/radio-button/radio.module.js +4 -4
- package/esm2015/components/select/optgroup.directive.js +3 -3
- package/esm2015/components/select/option.directive.js +3 -3
- package/esm2015/components/select/select.component.js +3 -3
- package/esm2015/components/select/select.module.js +4 -4
- package/esm2015/form-entry/data-sources/data-sources.js +3 -3
- package/esm2015/form-entry/directives/collapse.directive.js +3 -3
- package/esm2015/form-entry/directives/historical-value.directive.js +6 -5
- package/esm2015/form-entry/error-renderer/error-renderer.component.js +3 -3
- package/esm2015/form-entry/expression-runner/expression-runner.js +3 -3
- package/esm2015/form-entry/form-entry.module.js +11 -9
- package/esm2015/form-entry/form-factory/control-relations.factory.js +3 -3
- package/esm2015/form-entry/form-factory/form-control.service.js +3 -3
- package/esm2015/form-entry/form-factory/form.factory.js +3 -3
- package/esm2015/form-entry/form-factory/form.js +2 -1
- package/esm2015/form-entry/form-factory/hiders-disablers.factory.js +3 -3
- package/esm2015/form-entry/form-factory/question.factory.js +60 -22
- package/esm2015/form-entry/form-factory/show-messages.factory.js +3 -3
- package/esm2015/form-entry/form-factory/validation.factory.js +17 -10
- package/esm2015/form-entry/form-renderer/form-renderer.component.js +4 -4
- package/esm2015/form-entry/helpers/historical-expression-helper-service.js +3 -3
- package/esm2015/form-entry/helpers/historical-field-helper-service.js +3 -3
- package/esm2015/form-entry/helpers/js-expression-helper.js +22 -11
- package/esm2015/form-entry/pipes/time-ago.pipe.js +3 -3
- package/esm2015/form-entry/question-models/diagnosis-question.js +12 -0
- package/esm2015/form-entry/question-models/interfaces/diagnosis-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/select-question-options.js +1 -1
- package/esm2015/form-entry/question-models/max-length-validation.model.js +9 -0
- package/esm2015/form-entry/question-models/max-validation.model.js +2 -2
- package/esm2015/form-entry/question-models/min-length-validation.model.js +9 -0
- package/esm2015/form-entry/question-models/min-validation.model.js +2 -2
- package/esm2015/form-entry/question-models/multi-select-question.js +1 -1
- package/esm2015/form-entry/question-models/select-question.js +1 -1
- package/esm2015/form-entry/services/debug-mode.service.js +3 -3
- package/esm2015/form-entry/services/form-errors.service.js +3 -3
- package/esm2015/form-entry/services/form-schema-compiler.service.js +3 -3
- package/esm2015/form-entry/services/historical-encounter-data.service.js +3 -3
- package/esm2015/form-entry/validators/max-length.validator.js +17 -0
- package/esm2015/form-entry/validators/min-length.validator.js +17 -0
- package/esm2015/form-entry/value-adapters/diagnosis.adapter.js +133 -0
- package/esm2015/form-entry/value-adapters/encounter.adapter.js +14 -7
- package/esm2015/form-entry/value-adapters/obs-adapter-helper.js +3 -3
- package/esm2015/form-entry/value-adapters/obs.adapter.js +3 -3
- package/esm2015/form-entry/value-adapters/order.adapter.js +3 -3
- package/esm2015/form-entry/value-adapters/person-attribute.adapter.js +3 -3
- package/esm2015/shared.module.js +4 -4
- package/fesm2015/openmrs-ngx-formentry.js +650 -348
- package/fesm2015/openmrs-ngx-formentry.js.map +1 -1
- package/form-entry/form-factory/form.d.ts +2 -0
- package/form-entry/form-factory/question.factory.d.ts +2 -0
- package/form-entry/form-factory/validation.factory.d.ts +6 -3
- package/form-entry/helpers/js-expression-helper.d.ts +12 -4
- package/form-entry/question-models/diagnosis-question.d.ts +8 -0
- package/form-entry/question-models/interfaces/diagnosis-question-options.d.ts +7 -0
- package/form-entry/question-models/interfaces/select-question-options.d.ts +1 -1
- package/form-entry/question-models/max-length-validation.model.d.ts +5 -0
- package/form-entry/question-models/min-length-validation.model.d.ts +5 -0
- package/form-entry/question-models/multi-select-question.d.ts +1 -1
- package/form-entry/question-models/select-question.d.ts +1 -1
- package/form-entry/validators/max-length.validator.d.ts +6 -0
- package/form-entry/validators/min-length.validator.d.ts +6 -0
- package/form-entry/value-adapters/diagnosis.adapter.d.ts +45 -0
- package/form-entry/value-adapters/encounter.adapter.d.ts +3 -1
- package/package.json +2 -1
- package/styles/ngx-formentry.css +7 -5
|
@@ -31,9 +31,9 @@ export class HistoricalFieldHelperService {
|
|
|
31
31
|
return displayText;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
HistoricalFieldHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
35
|
-
HistoricalFieldHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
34
|
+
HistoricalFieldHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HistoricalFieldHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
HistoricalFieldHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HistoricalFieldHelperService });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HistoricalFieldHelperService, decorators: [{
|
|
37
37
|
type: Injectable
|
|
38
38
|
}] });
|
|
39
39
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1maWVsZC1oZWxwZXItc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2Zvcm0tZW50cnkvaGVscGVycy9oaXN0b3JpY2FsLWZpZWxkLWhlbHBlci1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyw0QkFBNEI7SUFDaEMseUJBQXlCLENBQzlCLFFBQXNCLEVBQ3RCLGFBQXFCLEVBQ3JCLGVBQXVCO1FBRXZCLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUNsQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUU7d0JBQ2pDLElBQUksY0FBYyxLQUFLLENBQUMsRUFBRTs0QkFDeEIsV0FBVyxHQUFHLFdBQVcsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQ3JEOzZCQUFNOzRCQUNMLFdBQVcsR0FBRyxXQUFXLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQzt5QkFDNUQ7d0JBQ0QsY0FBYyxFQUFFLENBQUM7cUJBQ2xCO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2xDLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxLQUFLLEVBQUU7b0JBQ25ELFdBQVcsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQ3ZDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OzBIQTlCVSw0QkFBNEI7OEhBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUXVlc3Rpb25CYXNlIH0gZnJvbSAnLi4vcXVlc3Rpb24tbW9kZWxzL3F1ZXN0aW9uLWJhc2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSGlzdG9yaWNhbEZpZWxkSGVscGVyU2VydmljZSB7XG4gIHB1YmxpYyBnZXREaXNwbGF5VGV4dEZyb21PcHRpb25zKFxuICAgIHF1ZXN0aW9uOiBRdWVzdGlvbkJhc2UsXG4gICAgdmFsdWVQcm9wZXJ0eTogc3RyaW5nLFxuICAgIGRpc3BsYXlQcm9wZXJ0eTogc3RyaW5nXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IGRpc3BsYXlUZXh0ID0gJyc7XG4gICAgY29uc3QgaGlzdG9yaWNhbFZhbHVlID0gcXVlc3Rpb24uaGlzdG9yaWNhbERhdGFWYWx1ZTtcbiAgICBpZiAoXy5pc0FycmF5KGhpc3RvcmljYWxWYWx1ZS52YWx1ZSkpIHtcbiAgICAgIGxldCB2YWx1ZUNvbnZlcnRlZCA9IDA7XG4gICAgICBfLmVhY2goaGlzdG9yaWNhbFZhbHVlLnZhbHVlLCAodmFsKSA9PiB7XG4gICAgICAgIF8uZWFjaChxdWVzdGlvbi5vcHRpb25zLCAob3B0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKG9wdGlvblt2YWx1ZVByb3BlcnR5XSA9PT0gdmFsKSB7XG4gICAgICAgICAgICBpZiAodmFsdWVDb252ZXJ0ZWQgPT09IDApIHtcbiAgICAgICAgICAgICAgZGlzcGxheVRleHQgPSBkaXNwbGF5VGV4dCArIG9wdGlvbltkaXNwbGF5UHJvcGVydHldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGlzcGxheVRleHQgPSBkaXNwbGF5VGV4dCArICcsICcgKyBvcHRpb25bZGlzcGxheVByb3BlcnR5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlQ29udmVydGVkKys7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBfLmVhY2gocXVlc3Rpb24ub3B0aW9ucywgKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAob3B0aW9uW3ZhbHVlUHJvcGVydHldID09PSBoaXN0b3JpY2FsVmFsdWUudmFsdWUpIHtcbiAgICAgICAgICBkaXNwbGF5VGV4dCA9IG9wdGlvbltkaXNwbGF5UHJvcGVydHldO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRpc3BsYXlUZXh0O1xuICB9XG59XG4iXX0=
|
|
@@ -154,6 +154,10 @@ export class JsExpressionHelper {
|
|
|
154
154
|
return height && weight && refSectionObject ? formattedSDValue : null;
|
|
155
155
|
}
|
|
156
156
|
calcSouthEastAsiaNonLabCVDRisk(sex, smoker, age, sbp, bmi) {
|
|
157
|
+
const hasValidValues = (typeof sex === "string" && typeof smoker === "boolean" && typeof age === "number" && typeof sbp === "number" && typeof bmi === "number");
|
|
158
|
+
if (!hasValidValues) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
157
161
|
// Bin functions
|
|
158
162
|
const getAgeBin = (age) => Math.floor((Math.min(Math.max(40, age), 74) - 40) / 5);
|
|
159
163
|
const getSbpBin = (sbp) => Math.max(0, Math.floor((Math.min(sbp, 180) - 120) / 20) + 1);
|
|
@@ -233,16 +237,23 @@ export class JsExpressionHelper {
|
|
|
233
237
|
return array.indexOf(members) !== -1;
|
|
234
238
|
}
|
|
235
239
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
+
/**
|
|
241
|
+
* Takes a target control, an encounter and concept uuid. If the target control has a value it returns it
|
|
242
|
+
* otherwise it tries to find it in the encounter. Finally it returns null of it can't find either of them.
|
|
243
|
+
* @param targetControl
|
|
244
|
+
* @param rawEncounter
|
|
245
|
+
* @param uuid
|
|
246
|
+
* @returns
|
|
247
|
+
*/
|
|
248
|
+
getObsFromControlOrEncounter(targetControl, rawEncounter, uuid) {
|
|
249
|
+
var _a;
|
|
240
250
|
const findObs = (obs, uuid) => {
|
|
241
251
|
let result;
|
|
242
|
-
obs === null || obs === void 0 ? void 0 : obs.some(o => { var _a; return result = ((_a = o === null || o === void 0 ? void 0 : o.concept) === null || _a === void 0 ? void 0 : _a.uuid) === uuid ? o : findObs(o.
|
|
252
|
+
obs === null || obs === void 0 ? void 0 : obs.some(o => { var _a; return result = ((_a = o === null || o === void 0 ? void 0 : o.concept) === null || _a === void 0 ? void 0 : _a.uuid) === uuid ? o : findObs(o.groupMembers || [], uuid); });
|
|
243
253
|
return result;
|
|
244
254
|
};
|
|
245
|
-
|
|
255
|
+
const obsValue = (_a = findObs(rawEncounter === null || rawEncounter === void 0 ? void 0 : rawEncounter.obs, uuid)) === null || _a === void 0 ? void 0 : _a.value;
|
|
256
|
+
return !!targetControl ? targetControl : typeof obsValue === 'object' ? obsValue.uuid : !!obsValue ? obsValue : null;
|
|
246
257
|
}
|
|
247
258
|
get helperFunctions() {
|
|
248
259
|
const helper = this;
|
|
@@ -256,13 +267,13 @@ export class JsExpressionHelper {
|
|
|
256
267
|
isEmpty: helper.isEmpty,
|
|
257
268
|
arrayContains: helper.arrayContains,
|
|
258
269
|
extractRepeatingGroupValues: helper.extractRepeatingGroupValues,
|
|
259
|
-
|
|
270
|
+
getObsFromControlOrEncounter: helper.getObsFromControlOrEncounter
|
|
260
271
|
};
|
|
261
272
|
}
|
|
262
273
|
}
|
|
263
|
-
JsExpressionHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
264
|
-
JsExpressionHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
274
|
+
JsExpressionHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: JsExpressionHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
275
|
+
JsExpressionHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: JsExpressionHelper });
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: JsExpressionHelper, decorators: [{
|
|
266
277
|
type: Injectable
|
|
267
278
|
}] });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMtZXhwcmVzc2lvbi1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L2hlbHBlcnMvanMtZXhwcmVzc2lvbi1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHbEUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU07UUFDcEIsSUFBSSxDQUFDLENBQUM7UUFDTixJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUU7WUFDcEIsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RDtRQUNELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUNwQyxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRTtZQUNwQixNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FB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Q0FBRSxJQUFJLE1BQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQSxFQUFBLENBQUMsQ0FBQztZQUN6RixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUE7UUFDRCxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUN6QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjtZQUMvQyx5QkFBeUIsRUFBRSxNQUFNLENBQUMseUJBQXlCO1lBQzNELHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxzQkFBc0I7WUFDckQsOEJBQThCLEVBQUUsTUFBTSxDQUFDLDhCQUE4QjtZQUNyRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1lBQ25DLDJCQUEyQixFQUFFLE1BQU0sQ0FBQywyQkFBMkI7WUFDL0QsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1NBQ3hDLENBQUM7SUFDSixDQUFDOztnSEE5UlUsa0JBQWtCO29IQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNvdXRoRWFzdEFzaWFDdmRSaXNrVGFibGVzIH0gZnJvbSAnLi9yaXNrLWRhdGFzZXQtdGFibGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSnNFeHByZXNzaW9uSGVscGVyIHtcbiAgY2FsY0JNSShoZWlnaHQsIHdlaWdodCkge1xuICAgIGxldCByO1xuICAgIGlmIChoZWlnaHQgJiYgd2VpZ2h0KSB7XG4gICAgICByID0gKHdlaWdodCAvICgoKGhlaWdodCAvIDEwMCkgKiBoZWlnaHQpIC8gMTAwKSkudG9GaXhlZCgxKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlaWdodCAmJiB3ZWlnaHQgPyBwYXJzZUZsb2F0KHIpIDogbnVsbDtcbiAgfVxuXG4gIGNhbGNCU0EoaGVpZ2h0OiBudW1iZXIsIHdlaWdodDogbnVtYmVyKSB7XG4gICAgbGV0IHJlc3VsdDtcbiAgICBpZiAoaGVpZ2h0ICYmIHdlaWdodCkge1xuICAgICAgcmVzdWx0ID0gTWF0aC5zcXJ0KChoZWlnaHQgKiB3ZWlnaHQpIC8gMzYwMCkudG9GaXhlZCgyKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlaWdodCAmJiB3ZWlnaHQgPyBwYXJzZUZsb2F0KHJlc3VsdCkgOiBudWxsO1xuICB9XG5cbiAgY2FsY0JNSUZvckFnZVpzY29yZShibWlGb3JBZ2VSZWYsIGhlaWdodCwgd2VpZ2h0KSB7XG4gICAgbGV0IGJtaTtcbiAgICBjb25zdCBtYXhBZ2VJbkRheXMgPSAxODU2O1xuICAgIGlmIChoZWlnaHQgJiYgd2VpZ2h0KSB7XG4gICAgICBibWkgPSAod2VpZ2h0IC8gKCgoaGVpZ2h0IC8gMTAwKSAqIGhlaWdodCkgLyAxMDApKS50b0ZpeGVkKDEpO1xuICAgIH1cbiAgICBjb25zdCByZWZTZWN0aW9uT2JqZWN0ID0gXy5maXJzdChibWlGb3JBZ2VSZWYpO1xuICAgIGxldCBmb3JtYXR0ZWRTRFZhbHVlO1xuICAgIGlmIChyZWZTZWN0aW9uT2JqZWN0KSB7XG4gICAgICBjb25zdCByZWZPYmplY3RWYWx1ZXMgPSBPYmplY3Qua2V5cyhyZWZTZWN0aW9uT2JqZWN0KVxuICAgICAgICAubWFwKChrZXkpID0+IHJlZlNlY3Rpb25PYmplY3Rba2V5XSlcbiAgICAgICAgLm1hcCgoeCkgPT4geCk7XG4gICAgICBjb25zdCByZWZPYmplY3RLZXlzID0gT2JqZWN0LmtleXMocmVmU2VjdGlvbk9iamVjdCk7XG4gICAgICBjb25zdCBtaW5pbXVtVmFsdWUgPSByZWZPYmplY3RWYWx1ZXNbMV07XG4gICAgICBjb25zdCBtaW5SZWZlcmVuY2VQb2ludCA9IFtdO1xuICAgICAgaWYgKGJtaSA8IG1pbmltdW1WYWx1ZSkge1xuICAgICAgICBtaW5SZWZlcmVuY2VQb2ludC5wdXNoKG1pbmltdW1WYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfLmZvckVhY2gocmVmT2JqZWN0VmFsdWVzLCAodmFsdWUpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWUgPD0gYm1pKSB7XG4gICAgICAgICAgICBtaW5SZWZlcmVuY2VQb2ludC5wdXNoKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgbGFzdFJlZmVyZW5jZVZhbHVlID0gXy5sYXN0KG1pblJlZmVyZW5jZVBvaW50KTtcbiAgICAgIGNvbnN0IGxhc3RWYWx1ZUluZGV4ID0gXy5maW5kSW5kZXgocmVmT2JqZWN0VmFsdWVzLCAobykgPT4ge1xuICAgICAgICByZXR1cm4gbyA9PT0gbGFzdFJlZmVyZW5jZVZhbHVlO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBTRFZhbHVlID0gcmVmT2JqZWN0S2V5c1tsYXN0VmFsdWVJbmRleF07XG4gICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gU0RWYWx1ZS5yZXBsYWNlKCdTRCcsICcnKTtcbiAgICAgIGlmIChmb3JtYXR0ZWRTRFZhbHVlLmluY2x1ZGVzKCduZWcnKSkge1xuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gZm9ybWF0dGVkU0RWYWx1ZS5zdWJzdHJpbmcoMSwgMCk7XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPSAnLScgKyBmb3JtYXR0ZWRTRFZhbHVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICdTJyB8fFxuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID09PSAnTCcgfHxcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9PT0gJ00nIHx8XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICctNSdcbiAgICAgICkge1xuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gJy00JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYm1pICYmIHJlZlNlY3Rpb25PYmplY3QgPyBmb3JtYXR0ZWRTRFZhbHVlIDogbnVsbDtcbiAgfVxuICBjYWxjV2VpZ2h0Rm9ySGVpZ2h0WnNjb3JlKHdlaWdodEZvckhlaWdodFJlZiwgaGVpZ2h0LCB3ZWlnaHQpIHtcbiAgICBsZXQgcmVmU2VjdGlvbjtcbiAgICBsZXQgZm9ybWF0dGVkU0RWYWx1ZTtcbiAgICBpZiAoaGVpZ2h0ICYmIHdlaWdodCkge1xuICAgICAgaGVpZ2h0ID0gcGFyc2VGbG9hdChoZWlnaHQpLnRvRml4ZWQoMSk7XG4gICAgfVxuICAgIGNvbnN0IHN0YW5kYXJkSGVpZ2h0TWluID0gNDU7XG4gICAgY29uc3Qgc3RhbmRhcmRNYXhIZWlnaHQgPSAxMTA7XG4gICAgaWYgKGhlaWdodCA8IHN0YW5kYXJkSGVpZ2h0TWluIHx8IGhlaWdodCA+IHN0YW5kYXJkTWF4SGVpZ2h0KSB7XG4gICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gLTQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlZlNlY3Rpb24gPSBfLmZpbHRlcih3ZWlnaHRGb3JIZWlnaHRSZWYsIChyZWZPYmplY3QpID0+IHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQocmVmT2JqZWN0WydMZW5ndGgnXSkudG9GaXhlZCgxKSA9PT0gaGVpZ2h0O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVmU2VjdGlvbk9iamVjdCA9IF8uZmlyc3QocmVmU2VjdGlvbik7XG4gICAgaWYgKHJlZlNlY3Rpb25PYmplY3QpIHtcbiAgICAgIGNvbnN0IHJlZk9iamVjdFZhbHVlcyA9IE9iamVjdC5rZXlzKHJlZlNlY3Rpb25PYmplY3QpXG4gICAgICAgIC5tYXAoKGtleSkgPT4gcmVmU2VjdGlvbk9iamVjdFtrZXldKVxuICAgICAgICAubWFwKCh4KSA9PiB4KTtcbiAgICAgIGNvbnN0IHJlZk9iamVjdEtleXMgPSBPYmplY3Qua2V5cyhyZWZTZWN0aW9uT2JqZWN0KTtcbiAgICAgIGNvbnN0IG1pbmltdW1WYWx1ZSA9IHJlZk9iamVjdFZhbHVlc1sxXTtcbiAgICAgIGNvbnN0IG1pblJlZmVyZW5jZVBvaW50ID0gW107XG4gICAgICBpZiAod2VpZ2h0IDwgbWluaW11bVZhbHVlKSB7XG4gICAgICAgIG1pblJlZmVyZW5jZVBvaW50LnB1c2gobWluaW11bVZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF8uZm9yRWFjaChyZWZPYmplY3RWYWx1ZXMsICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZSA8PSB3ZWlnaHQpIHtcbiAgICAgICAgICAgIG1pblJlZmVyZW5jZVBvaW50LnB1c2godmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBsYXN0UmVmZXJlbmNlVmFsdWUgPSBfLmxhc3QobWluUmVmZXJlbmNlUG9pbnQpO1xuICAgICAgY29uc3QgbGFzdFZhbHVlSW5kZXggPSBfLmZpbmRJbmRleChyZWZPYmplY3RWYWx1ZXMsIChvKSA9PiB7XG4gICAgICAgIHJldHVybiBvID09PSBsYXN0UmVmZXJlbmNlVmFsdWU7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IFNEVmFsdWUgPSByZWZPYmplY3RLZXlzW2xhc3RWYWx1ZUluZGV4XTtcbiAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPSBTRFZhbHVlLnJlcGxhY2UoJ1NEJywgJycpO1xuICAgICAgaWYgKGZvcm1hdHRlZFNEVmFsdWUuaW5jbHVkZXMoJ25lZycpKSB7XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPSBmb3JtYXR0ZWRTRFZhbHVlLnN1YnN0cmluZygxLCAwKTtcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9ICctJyArIGZvcm1hdHRlZFNEVmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICdTJyB8fFxuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID09PSAnTCcgfHxcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9PT0gJ00nIHx8XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICctNSdcbiAgICAgICkge1xuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gJy00JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaGVpZ2h0ICYmIHdlaWdodCA/IGZvcm1hdHRlZFNEVmFsdWUgOiBudWxsO1xuICB9XG5cbiAgY2FsY0hlaWdodEZvckFnZVpzY29yZShoZWlnaHRGb3JBZ2VSZWYsIGhlaWdodCwgd2VpZ2h0KSB7XG4gICAgY29uc3QgcmVmU2VjdGlvbk9iamVjdCA9IF8uZmlyc3QoaGVpZ2h0Rm9yQWdlUmVmKTtcbiAgICBsZXQgZm9ybWF0dGVkU0RWYWx1ZTtcbiAgICBpZiAocmVmU2VjdGlvbk9iamVjdCkge1xuICAgICAgY29uc3QgcmVmT2JqZWN0VmFsdWVzID0gT2JqZWN0LmtleXMocmVmU2VjdGlvbk9iamVjdClcbiAgICAgICAgLm1hcCgoa2V5KSA9PiByZWZTZWN0aW9uT2JqZWN0W2tleV0pXG4gICAgICAgIC5tYXAoKHgpID0+IHgpO1xuICAgICAgY29uc3QgcmVmT2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzKHJlZlNlY3Rpb25PYmplY3QpO1xuICAgICAgY29uc3QgbWluaW11bVZhbHVlID0gcmVmT2JqZWN0VmFsdWVzWzFdO1xuICAgICAgY29uc3QgbWluUmVmZXJlbmNlUG9pbnQgPSBbXTtcbiAgICAgIGlmIChoZWlnaHQgPCBtaW5pbXVtVmFsdWUpIHtcbiAgICAgICAgbWluUmVmZXJlbmNlUG9pbnQucHVzaChtaW5pbXVtVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5mb3JFYWNoKHJlZk9iamVjdFZhbHVlcywgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlIDw9IGhlaWdodCkge1xuICAgICAgICAgICAgbWluUmVmZXJlbmNlUG9pbnQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxhc3RSZWZlcmVuY2VWYWx1ZSA9IF8ubGFzdChtaW5SZWZlcmVuY2VQb2ludCk7XG4gICAgICBjb25zdCBsYXN0VmFsdWVJbmRleCA9IF8uZmluZEluZGV4KHJlZk9iamVjdFZhbHVlcywgKG8pID0+IHtcbiAgICAgICAgcmV0dXJuIG8gPT09IGxhc3RSZWZlcmVuY2VWYWx1ZTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgU0RWYWx1ZSA9IHJlZk9iamVjdEtleXNbbGFzdFZhbHVlSW5kZXhdO1xuICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9IFNEVmFsdWUucmVwbGFjZSgnU0QnLCAnJyk7XG4gICAgICBpZiAoZm9ybWF0dGVkU0RWYWx1ZS5pbmNsdWRlcygnbmVnJykpIHtcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9IGZvcm1hdHRlZFNEVmFsdWUuc3Vic3RyaW5nKDEsIDApO1xuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gJy0nICsgZm9ybWF0dGVkU0RWYWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID09PSAnUycgfHxcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9PT0gJ0wnIHx8XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICdNJyB8fFxuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID09PSAnLTUnXG4gICAgICApIHtcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9ICctNCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGhlaWdodCAmJiB3ZWlnaHQgJiYgcmVmU2VjdGlvbk9iamVjdCA/IGZvcm1hdHRlZFNEVmFsdWUgOiBudWxsO1xuICB9XG5cblxuXG4gIGNhbGNTb3V0aEVhc3RBc2lhTm9uTGFiQ1ZEUmlzayhzZXg6ICdNJyB8ICdGJywgc21va2VyOiBib29sZWFuLCBhZ2U6IG51bWJlciwgc2JwOiBudW1iZXIsIGJtaTogbnVtYmVyKSB7XG4gICAgLy8gQmluIGZ1bmN0aW9uc1xuICAgIGNvbnN0IGdldEFnZUJpbiA9IChhZ2UpID0+IE1hdGguZmxvb3IoKE1hdGgubWluKE1hdGgubWF4KDQwLCBhZ2UpLCA3NCkgLSA0MCkgLyA1KTtcbiAgICBjb25zdCBnZXRTYnBCaW4gPSAoc2JwKSA9PiBNYXRoLm1heCgwLCBNYXRoLmZsb29yKChNYXRoLm1pbihzYnAsIDE4MCkgLSAxMjApIC8gMjApICsgMSk7XG4gICAgY29uc3QgZ2V0Qm1pQmluID0gKGJtaSkgPT4gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcigoTWF0aC5taW4oYm1pLCAzNSkgLSAyMCkgLyA1KSArIDEpO1xuXG4gICAgLy8gVmFyaWFibGVzXG4gICAgY29uc3Qgc2V4SWR4ID0gc2V4ID09PSAnTScgPyAwIDogMTtcbiAgICBjb25zdCBzbW9rZXJJZHggPSBzbW9rZXIgPyAxIDogMDtcbiAgICBjb25zdCBhZ2VJZHggPSA2IC0gZ2V0QWdlQmluKGFnZSk7XG4gICAgY29uc3QgYm1pSWR4ID0gZ2V0Qm1pQmluKGJtaSk7XG4gICAgY29uc3Qgc2JwSWR4ID0gNCAtIGdldFNicEJpbihzYnApO1xuXG4gICAgcmV0dXJuIHNvdXRoRWFzdEFzaWFDdmRSaXNrVGFibGVzW3NleElkeF1bc21va2VySWR4XVthZ2VJZHhdW3NicElkeF1bYm1pSWR4XTtcbiAgfVxuXG4gIGlzRW1wdHkodmFsKSB7XG4gICAgaWYgKFxuICAgICAgdmFsID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHZhbCA9PT0gbnVsbCB8fFxuICAgICAgdmFsID09PSAnJyB8fFxuICAgICAgdmFsID09PSAnbnVsbCcgfHxcbiAgICAgIHZhbCA9PT0gJ3VuZGVmaW5lZCdcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkgJiYgdmFsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFycmF5Q29udGFpbnMoYXJyYXksIG1lbWJlcnMpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShtZW1iZXJzKSkge1xuICAgICAgaWYgKG1lbWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBsZXQgY29udGFpbnMgPSB0cnVlO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbWJlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdmFsID0gbWVtYmVyc1tpXTtcbiAgICAgICAgaWYgKGFycmF5LmluZGV4T2YodmFsKSA9PT0gLTEpIHtcbiAgICAgICAgICBjb250YWlucyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250YWlucztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2YobWVtYmVycykgIT09IC0xO1xuICAgIH1cbiAgfVxuICBleHRyYWN0UmVwZWF0aW5nR3JvdXBWYWx1ZXMoa2V5LCBhcnJheSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IGFycmF5Lm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW1ba2V5XTtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG4gIGZvcm1hdERhdGUodmFsdWUsIGZvcm1hdCwgb2Zmc2V0KSB7XG4gICAgZm9ybWF0ID0gZm9ybWF0IHx8ICd5eXl5LU1NLWRkJztcbiAgICBvZmZzZXQgPSBvZmZzZXQgfHwgJyswMzAwJztcblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdEYXRlRm9ybWF0RXhjZXB0aW9uOiB2YWx1ZSBwYXNzZWQgJyArICdpcyBub3QgYSB2YWxpZCBkYXRlJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTsgLy8gVE9ETyBpbXBsZW1lbnQgdGhpc1xuICAgIC8vIHJldHVybiAkZmlsdGVyKCdkYXRlJykodmFsdWUsIGZvcm1hdCwgb2Zmc2V0KTtcbiAgfVxuXG4gIGFycmF5Q29udGFpbnNBbnkoYXJyYXksIG1lbWJlcnMpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShtZW1iZXJzKSkge1xuICAgICAgaWYgKG1lbWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgbGV0IGNvbnRhaW5zID0gZmFsc2U7XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVtYmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB2YWwgPSBtZW1iZXJzW2ldO1xuICAgICAgICBpZiAoYXJyYXkuaW5kZXhPZih2YWwpICE9PSAtMSkge1xuICAgICAgICAgIGNvbnRhaW5zID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRhaW5zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXJyYXkuaW5kZXhPZihtZW1iZXJzKSAhPT0gLTE7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgIFRPRE8gbWFrZSBpdCBwb3NzaWJsZSB0byBib290c3RyYXAgZXhwcmVzc2lvbnMgd2l0aG91dCBjb250cm9sIHJlbGF0aW9ucyB0byBtYWtlIGFsdGVybmF0ZUNvbnRyb2wgb3B0aW9uYWwgYXMgYXQgdGhlIG1vbWVudCBpdCByZXF1aXJlZFxuICAgaWYgbm8gb3RoZXIgZXhwcmVzc2lvbiBvbiB0aGUgY29udHJvbCBhcyBhIHJlbGF0aW9uc2hpcCB0byBhbm90aGVyIGNvbnRyb2wqL1xuICBleHRyYWN0T2JzVmFsdWUocmF3RW5jb3VudGVyLCB1dWlkLCBhbHRlcm5hdGVDb250cm9sPykge1xuICAgIGNvbnN0IGZpbmRPYnMgPSAob2JzLCB1dWlkKSA9PiB7XG4gICAgICBsZXQgcmVzdWx0O1xuICAgICAgb2JzPy5zb21lKG8gPT4gcmVzdWx0ID0gbz8uY29uY2VwdD8udXVpZCA9PT0gdXVpZCA/IG8gOiBmaW5kT2JzKG8uY2hpbGRyZW4gfHwgW10sIHV1aWQpKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiBmaW5kT2JzKHJhd0VuY291bnRlci5vYnMsIHV1aWQpLnZhbHVlIHx8IGFsdGVybmF0ZUNvbnRyb2w7XG4gIH1cblxuICBnZXQgaGVscGVyRnVuY3Rpb25zKCkge1xuICAgIGNvbnN0IGhlbHBlciA9IHRoaXM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFycmF5Q29udGFpbnNBbnk6IGhlbHBlci5hcnJheUNvbnRhaW5zQW55LFxuICAgICAgY2FsY0JNSTogaGVscGVyLmNhbGNCTUksXG4gICAgICBjYWxjQk1JRm9yQWdlWnNjb3JlOiBoZWxwZXIuY2FsY0JNSUZvckFnZVpzY29yZSxcbiAgICAgIGNhbGNXZWlnaHRGb3JIZWlnaHRac2NvcmU6IGhlbHBlci5jYWxjV2VpZ2h0Rm9ySGVpZ2h0WnNjb3JlLFxuICAgICAgY2FsY0hlaWdodEZvckFnZVpzY29yZTogaGVscGVyLmNhbGNIZWlnaHRGb3JBZ2Vac2NvcmUsXG4gICAgICBjYWxjU291dGhFYXN0QXNpYU5vbkxhYkNWRFJpc2s6IGhlbHBlci5jYWxjU291dGhFYXN0QXNpYU5vbkxhYkNWRFJpc2ssXG4gICAgICBpc0VtcHR5OiBoZWxwZXIuaXNFbXB0eSxcbiAgICAgIGFycmF5Q29udGFpbnM6IGhlbHBlci5hcnJheUNvbnRhaW5zLFxuICAgICAgZXh0cmFjdFJlcGVhdGluZ0dyb3VwVmFsdWVzOiBoZWxwZXIuZXh0cmFjdFJlcGVhdGluZ0dyb3VwVmFsdWVzLFxuICAgICAgZXh0cmFjdE9ic1ZhbHVlOiBoZWxwZXIuZXh0cmFjdE9ic1ZhbHVlXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMtZXhwcmVzc2lvbi1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L2hlbHBlcnMvanMtZXhwcmVzc2lvbi1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHbEUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU07UUFDcEIsSUFBSSxDQUFDLENBQUM7UUFDTixJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUU7WUFDcEIsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RDtRQUNELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUNwQyxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRTtZQUNwQixNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FB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QUNyRCw4QkFBOEIsRUFBRSxNQUFNLENBQUMsOEJBQThCO1lBQ3JFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7WUFDbkMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLDJCQUEyQjtZQUMvRCw0QkFBNEIsRUFBRSxNQUFNLENBQUMsNEJBQTRCO1NBQ2xFLENBQUM7SUFDSixDQUFDOztnSEF6U1Usa0JBQWtCO29IQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNvdXRoRWFzdEFzaWFDdmRSaXNrVGFibGVzIH0gZnJvbSAnLi9yaXNrLWRhdGFzZXQtdGFibGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSnNFeHByZXNzaW9uSGVscGVyIHtcbiAgY2FsY0JNSShoZWlnaHQsIHdlaWdodCkge1xuICAgIGxldCByO1xuICAgIGlmIChoZWlnaHQgJiYgd2VpZ2h0KSB7XG4gICAgICByID0gKHdlaWdodCAvICgoKGhlaWdodCAvIDEwMCkgKiBoZWlnaHQpIC8gMTAwKSkudG9GaXhlZCgxKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlaWdodCAmJiB3ZWlnaHQgPyBwYXJzZUZsb2F0KHIpIDogbnVsbDtcbiAgfVxuXG4gIGNhbGNCU0EoaGVpZ2h0OiBudW1iZXIsIHdlaWdodDogbnVtYmVyKSB7XG4gICAgbGV0IHJlc3VsdDtcbiAgICBpZiAoaGVpZ2h0ICYmIHdlaWdodCkge1xuICAgICAgcmVzdWx0ID0gTWF0aC5zcXJ0KChoZWlnaHQgKiB3ZWlnaHQpIC8gMzYwMCkudG9GaXhlZCgyKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlaWdodCAmJiB3ZWlnaHQgPyBwYXJzZUZsb2F0KHJlc3VsdCkgOiBudWxsO1xuICB9XG5cbiAgY2FsY0JNSUZvckFnZVpzY29yZShibWlGb3JBZ2VSZWYsIGhlaWdodCwgd2VpZ2h0KSB7XG4gICAgbGV0IGJtaTtcbiAgICBjb25zdCBtYXhBZ2VJbkRheXMgPSAxODU2O1xuICAgIGlmIChoZWlnaHQgJiYgd2VpZ2h0KSB7XG4gICAgICBibWkgPSAod2VpZ2h0IC8gKCgoaGVpZ2h0IC8gMTAwKSAqIGhlaWdodCkgLyAxMDApKS50b0ZpeGVkKDEpO1xuICAgIH1cbiAgICBjb25zdCByZWZTZWN0aW9uT2JqZWN0ID0gXy5maXJzdChibWlGb3JBZ2VSZWYpO1xuICAgIGxldCBmb3JtYXR0ZWRTRFZhbHVlO1xuICAgIGlmIChyZWZTZWN0aW9uT2JqZWN0KSB7XG4gICAgICBjb25zdCByZWZPYmplY3RWYWx1ZXMgPSBPYmplY3Qua2V5cyhyZWZTZWN0aW9uT2JqZWN0KVxuICAgICAgICAubWFwKChrZXkpID0+IHJlZlNlY3Rpb25PYmplY3Rba2V5XSlcbiAgICAgICAgLm1hcCgoeCkgPT4geCk7XG4gICAgICBjb25zdCByZWZPYmplY3RLZXlzID0gT2JqZWN0LmtleXMocmVmU2VjdGlvbk9iamVjdCk7XG4gICAgICBjb25zdCBtaW5pbXVtVmFsdWUgPSByZWZPYmplY3RWYWx1ZXNbMV07XG4gICAgICBjb25zdCBtaW5SZWZlcmVuY2VQb2ludCA9IFtdO1xuICAgICAgaWYgKGJtaSA8IG1pbmltdW1WYWx1ZSkge1xuICAgICAgICBtaW5SZWZlcmVuY2VQb2ludC5wdXNoKG1pbmltdW1WYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfLmZvckVhY2gocmVmT2JqZWN0VmFsdWVzLCAodmFsdWUpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWUgPD0gYm1pKSB7XG4gICAgICAgICAgICBtaW5SZWZlcmVuY2VQb2ludC5wdXNoKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgbGFzdFJlZmVyZW5jZVZhbHVlID0gXy5sYXN0KG1pblJlZmVyZW5jZVBvaW50KTtcbiAgICAgIGNvbnN0IGxhc3RWYWx1ZUluZGV4ID0gXy5maW5kSW5kZXgocmVmT2JqZWN0VmFsdWVzLCAobykgPT4ge1xuICAgICAgICByZXR1cm4gbyA9PT0gbGFzdFJlZmVyZW5jZVZhbHVlO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBTRFZhbHVlID0gcmVmT2JqZWN0S2V5c1tsYXN0VmFsdWVJbmRleF07XG4gICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gU0RWYWx1ZS5yZXBsYWNlKCdTRCcsICcnKTtcbiAgICAgIGlmIChmb3JtYXR0ZWRTRFZhbHVlLmluY2x1ZGVzKCduZWcnKSkge1xuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gZm9ybWF0dGVkU0RWYWx1ZS5zdWJzdHJpbmcoMSwgMCk7XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPSAnLScgKyBmb3JtYXR0ZWRTRFZhbHVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICdTJyB8fFxuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID09PSAnTCcgfHxcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9PT0gJ00nIHx8XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICctNSdcbiAgICAgICkge1xuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gJy00JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYm1pICYmIHJlZlNlY3Rpb25PYmplY3QgPyBmb3JtYXR0ZWRTRFZhbHVlIDogbnVsbDtcbiAgfVxuICBjYWxjV2VpZ2h0Rm9ySGVpZ2h0WnNjb3JlKHdlaWdodEZvckhlaWdodFJlZiwgaGVpZ2h0LCB3ZWlnaHQpIHtcbiAgICBsZXQgcmVmU2VjdGlvbjtcbiAgICBsZXQgZm9ybWF0dGVkU0RWYWx1ZTtcbiAgICBpZiAoaGVpZ2h0ICYmIHdlaWdodCkge1xuICAgICAgaGVpZ2h0ID0gcGFyc2VGbG9hdChoZWlnaHQpLnRvRml4ZWQoMSk7XG4gICAgfVxuICAgIGNvbnN0IHN0YW5kYXJkSGVpZ2h0TWluID0gNDU7XG4gICAgY29uc3Qgc3RhbmRhcmRNYXhIZWlnaHQgPSAxMTA7XG4gICAgaWYgKGhlaWdodCA8IHN0YW5kYXJkSGVpZ2h0TWluIHx8IGhlaWdodCA+IHN0YW5kYXJkTWF4SGVpZ2h0KSB7XG4gICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gLTQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlZlNlY3Rpb24gPSBfLmZpbHRlcih3ZWlnaHRGb3JIZWlnaHRSZWYsIChyZWZPYmplY3QpID0+IHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQocmVmT2JqZWN0WydMZW5ndGgnXSkudG9GaXhlZCgxKSA9PT0gaGVpZ2h0O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVmU2VjdGlvbk9iamVjdCA9IF8uZmlyc3QocmVmU2VjdGlvbik7XG4gICAgaWYgKHJlZlNlY3Rpb25PYmplY3QpIHtcbiAgICAgIGNvbnN0IHJlZk9iamVjdFZhbHVlcyA9IE9iamVjdC5rZXlzKHJlZlNlY3Rpb25PYmplY3QpXG4gICAgICAgIC5tYXAoKGtleSkgPT4gcmVmU2VjdGlvbk9iamVjdFtrZXldKVxuICAgICAgICAubWFwKCh4KSA9PiB4KTtcbiAgICAgIGNvbnN0IHJlZk9iamVjdEtleXMgPSBPYmplY3Qua2V5cyhyZWZTZWN0aW9uT2JqZWN0KTtcbiAgICAgIGNvbnN0IG1pbmltdW1WYWx1ZSA9IHJlZk9iamVjdFZhbHVlc1sxXTtcbiAgICAgIGNvbnN0IG1pblJlZmVyZW5jZVBvaW50ID0gW107XG4gICAgICBpZiAod2VpZ2h0IDwgbWluaW11bVZhbHVlKSB7XG4gICAgICAgIG1pblJlZmVyZW5jZVBvaW50LnB1c2gobWluaW11bVZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF8uZm9yRWFjaChyZWZPYmplY3RWYWx1ZXMsICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZSA8PSB3ZWlnaHQpIHtcbiAgICAgICAgICAgIG1pblJlZmVyZW5jZVBvaW50LnB1c2godmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBsYXN0UmVmZXJlbmNlVmFsdWUgPSBfLmxhc3QobWluUmVmZXJlbmNlUG9pbnQpO1xuICAgICAgY29uc3QgbGFzdFZhbHVlSW5kZXggPSBfLmZpbmRJbmRleChyZWZPYmplY3RWYWx1ZXMsIChvKSA9PiB7XG4gICAgICAgIHJldHVybiBvID09PSBsYXN0UmVmZXJlbmNlVmFsdWU7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IFNEVmFsdWUgPSByZWZPYmplY3RLZXlzW2xhc3RWYWx1ZUluZGV4XTtcbiAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPSBTRFZhbHVlLnJlcGxhY2UoJ1NEJywgJycpO1xuICAgICAgaWYgKGZvcm1hdHRlZFNEVmFsdWUuaW5jbHVkZXMoJ25lZycpKSB7XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPSBmb3JtYXR0ZWRTRFZhbHVlLnN1YnN0cmluZygxLCAwKTtcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9ICctJyArIGZvcm1hdHRlZFNEVmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICdTJyB8fFxuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID09PSAnTCcgfHxcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9PT0gJ00nIHx8XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICctNSdcbiAgICAgICkge1xuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gJy00JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaGVpZ2h0ICYmIHdlaWdodCA/IGZvcm1hdHRlZFNEVmFsdWUgOiBudWxsO1xuICB9XG5cbiAgY2FsY0hlaWdodEZvckFnZVpzY29yZShoZWlnaHRGb3JBZ2VSZWYsIGhlaWdodCwgd2VpZ2h0KSB7XG4gICAgY29uc3QgcmVmU2VjdGlvbk9iamVjdCA9IF8uZmlyc3QoaGVpZ2h0Rm9yQWdlUmVmKTtcbiAgICBsZXQgZm9ybWF0dGVkU0RWYWx1ZTtcbiAgICBpZiAocmVmU2VjdGlvbk9iamVjdCkge1xuICAgICAgY29uc3QgcmVmT2JqZWN0VmFsdWVzID0gT2JqZWN0LmtleXMocmVmU2VjdGlvbk9iamVjdClcbiAgICAgICAgLm1hcCgoa2V5KSA9PiByZWZTZWN0aW9uT2JqZWN0W2tleV0pXG4gICAgICAgIC5tYXAoKHgpID0+IHgpO1xuICAgICAgY29uc3QgcmVmT2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzKHJlZlNlY3Rpb25PYmplY3QpO1xuICAgICAgY29uc3QgbWluaW11bVZhbHVlID0gcmVmT2JqZWN0VmFsdWVzWzFdO1xuICAgICAgY29uc3QgbWluUmVmZXJlbmNlUG9pbnQgPSBbXTtcbiAgICAgIGlmIChoZWlnaHQgPCBtaW5pbXVtVmFsdWUpIHtcbiAgICAgICAgbWluUmVmZXJlbmNlUG9pbnQucHVzaChtaW5pbXVtVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5mb3JFYWNoKHJlZk9iamVjdFZhbHVlcywgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlIDw9IGhlaWdodCkge1xuICAgICAgICAgICAgbWluUmVmZXJlbmNlUG9pbnQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxhc3RSZWZlcmVuY2VWYWx1ZSA9IF8ubGFzdChtaW5SZWZlcmVuY2VQb2ludCk7XG4gICAgICBjb25zdCBsYXN0VmFsdWVJbmRleCA9IF8uZmluZEluZGV4KHJlZk9iamVjdFZhbHVlcywgKG8pID0+IHtcbiAgICAgICAgcmV0dXJuIG8gPT09IGxhc3RSZWZlcmVuY2VWYWx1ZTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgU0RWYWx1ZSA9IHJlZk9iamVjdEtleXNbbGFzdFZhbHVlSW5kZXhdO1xuICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9IFNEVmFsdWUucmVwbGFjZSgnU0QnLCAnJyk7XG4gICAgICBpZiAoZm9ybWF0dGVkU0RWYWx1ZS5pbmNsdWRlcygnbmVnJykpIHtcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9IGZvcm1hdHRlZFNEVmFsdWUuc3Vic3RyaW5nKDEsIDApO1xuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID0gJy0nICsgZm9ybWF0dGVkU0RWYWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID09PSAnUycgfHxcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9PT0gJ0wnIHx8XG4gICAgICAgIGZvcm1hdHRlZFNEVmFsdWUgPT09ICdNJyB8fFxuICAgICAgICBmb3JtYXR0ZWRTRFZhbHVlID09PSAnLTUnXG4gICAgICApIHtcbiAgICAgICAgZm9ybWF0dGVkU0RWYWx1ZSA9ICctNCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGhlaWdodCAmJiB3ZWlnaHQgJiYgcmVmU2VjdGlvbk9iamVjdCA/IGZvcm1hdHRlZFNEVmFsdWUgOiBudWxsO1xuICB9XG5cblxuXG4gIGNhbGNTb3V0aEVhc3RBc2lhTm9uTGFiQ1ZEUmlzayhzZXg6ICdNJyB8ICdGJywgc21va2VyPzogYm9vbGVhbiwgYWdlPzogbnVtYmVyLCBzYnA/OiBudW1iZXIsIGJtaT86IG51bWJlcikge1xuICAgIGNvbnN0IGhhc1ZhbGlkVmFsdWVzID0gKHR5cGVvZiBzZXggPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHNtb2tlciA9PT0gXCJib29sZWFuXCIgJiYgdHlwZW9mIGFnZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlb2Ygc2JwID09PSBcIm51bWJlclwiICYmIHR5cGVvZiBibWkgPT09IFwibnVtYmVyXCIpO1xuXG4gICAgaWYgKCFoYXNWYWxpZFZhbHVlcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIEJpbiBmdW5jdGlvbnNcbiAgICBjb25zdCBnZXRBZ2VCaW4gPSAoYWdlKSA9PiBNYXRoLmZsb29yKChNYXRoLm1pbihNYXRoLm1heCg0MCwgYWdlKSwgNzQpIC0gNDApIC8gNSk7XG4gICAgY29uc3QgZ2V0U2JwQmluID0gKHNicCkgPT4gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcigoTWF0aC5taW4oc2JwLCAxODApIC0gMTIwKSAvIDIwKSArIDEpO1xuICAgIGNvbnN0IGdldEJtaUJpbiA9IChibWkpID0+IE1hdGgubWF4KDAsIE1hdGguZmxvb3IoKE1hdGgubWluKGJtaSwgMzUpIC0gMjApIC8gNSkgKyAxKTtcblxuICAgIC8vIFZhcmlhYmxlc1xuICAgIGNvbnN0IHNleElkeCA9IHNleCA9PT0gJ00nID8gMCA6IDE7XG4gICAgY29uc3Qgc21va2VySWR4ID0gc21va2VyID8gMSA6IDA7XG4gICAgY29uc3QgYWdlSWR4ID0gNiAtIGdldEFnZUJpbihhZ2UpO1xuICAgIGNvbnN0IGJtaUlkeCA9IGdldEJtaUJpbihibWkpO1xuICAgIGNvbnN0IHNicElkeCA9IDQgLSBnZXRTYnBCaW4oc2JwKTtcblxuICAgIHJldHVybiBzb3V0aEVhc3RBc2lhQ3ZkUmlza1RhYmxlc1tzZXhJZHhdW3Ntb2tlcklkeF1bYWdlSWR4XVtzYnBJZHhdW2JtaUlkeF07XG4gIH1cblxuICBpc0VtcHR5KHZhbCkge1xuICAgIGlmIChcbiAgICAgIHZhbCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB2YWwgPT09IG51bGwgfHxcbiAgICAgIHZhbCA9PT0gJycgfHxcbiAgICAgIHZhbCA9PT0gJ251bGwnIHx8XG4gICAgICB2YWwgPT09ICd1bmRlZmluZWQnXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpICYmIHZhbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBhcnJheUNvbnRhaW5zKGFycmF5LCBtZW1iZXJzKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobWVtYmVycykpIHtcbiAgICAgIGlmIChtZW1iZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGNvbnRhaW5zID0gdHJ1ZTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW1iZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IG1lbWJlcnNbaV07XG4gICAgICAgIGlmIChhcnJheS5pbmRleE9mKHZhbCkgPT09IC0xKSB7XG4gICAgICAgICAgY29udGFpbnMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGFpbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhcnJheS5pbmRleE9mKG1lbWJlcnMpICE9PSAtMTtcbiAgICB9XG4gIH1cbiAgZXh0cmFjdFJlcGVhdGluZ0dyb3VwVmFsdWVzKGtleSwgYXJyYXkpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBhcnJheS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBpdGVtW2tleV07XG4gICAgfSk7XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuICBmb3JtYXREYXRlKHZhbHVlLCBmb3JtYXQsIG9mZnNldCkge1xuICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAneXl5eS1NTS1kZCc7XG4gICAgb2Zmc2V0ID0gb2Zmc2V0IHx8ICcrMDMwMCc7XG5cbiAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnRGF0ZUZvcm1hdEV4Y2VwdGlvbjogdmFsdWUgcGFzc2VkICcgKyAnaXMgbm90IGEgdmFsaWQgZGF0ZSdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7IC8vIFRPRE8gaW1wbGVtZW50IHRoaXNcbiAgICAvLyByZXR1cm4gJGZpbHRlcignZGF0ZScpKHZhbHVlLCBmb3JtYXQsIG9mZnNldCk7XG4gIH1cblxuICBhcnJheUNvbnRhaW5zQW55KGFycmF5LCBtZW1iZXJzKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobWVtYmVycykpIHtcbiAgICAgIGlmIChtZW1iZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGxldCBjb250YWlucyA9IGZhbHNlO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbWJlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdmFsID0gbWVtYmVyc1tpXTtcbiAgICAgICAgaWYgKGFycmF5LmluZGV4T2YodmFsKSAhPT0gLTEpIHtcbiAgICAgICAgICBjb250YWlucyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250YWlucztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2YobWVtYmVycykgIT09IC0xO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIHRhcmdldCBjb250cm9sLCBhbiBlbmNvdW50ZXIgYW5kIGNvbmNlcHQgdXVpZC4gSWYgdGhlIHRhcmdldCBjb250cm9sIGhhcyBhIHZhbHVlIGl0IHJldHVybnMgaXRcbiAgICogb3RoZXJ3aXNlIGl0IHRyaWVzIHRvIGZpbmQgaXQgaW4gdGhlIGVuY291bnRlci4gRmluYWxseSBpdCByZXR1cm5zIG51bGwgb2YgaXQgY2FuJ3QgZmluZCBlaXRoZXIgb2YgdGhlbS5cbiAgICogQHBhcmFtIHRhcmdldENvbnRyb2xcbiAgICogQHBhcmFtIHJhd0VuY291bnRlclxuICAgKiBAcGFyYW0gdXVpZFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0T2JzRnJvbUNvbnRyb2xPckVuY291bnRlcih0YXJnZXRDb250cm9sLHJhd0VuY291bnRlcix1dWlkKTogYW55IHtcbiAgICBjb25zdCBmaW5kT2JzID0gKG9icywgdXVpZCkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDtcbiAgICAgIG9icz8uc29tZShvID0+IHJlc3VsdCA9IG8/LmNvbmNlcHQ/LnV1aWQgPT09IHV1aWQgPyBvIDogZmluZE9icyhvLmdyb3VwTWVtYmVycyB8fCBbXSwgdXVpZCkpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgY29uc3Qgb2JzVmFsdWUgPSBmaW5kT2JzKHJhd0VuY291bnRlcj8ub2JzLCB1dWlkKT8udmFsdWU7XG4gICAgcmV0dXJuICEhdGFyZ2V0Q29udHJvbCA/IHRhcmdldENvbnRyb2wgOiB0eXBlb2Ygb2JzVmFsdWUgPT09ICdvYmplY3QnID8gb2JzVmFsdWUudXVpZCA6ICEhb2JzVmFsdWUgPyBvYnNWYWx1ZSA6IG51bGxcbiAgfVxuXG4gIGdldCBoZWxwZXJGdW5jdGlvbnMoKSB7XG4gICAgY29uc3QgaGVscGVyID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgYXJyYXlDb250YWluc0FueTogaGVscGVyLmFycmF5Q29udGFpbnNBbnksXG4gICAgICBjYWxjQk1JOiBoZWxwZXIuY2FsY0JNSSxcbiAgICAgIGNhbGNCTUlGb3JBZ2Vac2NvcmU6IGhlbHBlci5jYWxjQk1JRm9yQWdlWnNjb3JlLFxuICAgICAgY2FsY1dlaWdodEZvckhlaWdodFpzY29yZTogaGVscGVyLmNhbGNXZWlnaHRGb3JIZWlnaHRac2NvcmUsXG4gICAgICBjYWxjSGVpZ2h0Rm9yQWdlWnNjb3JlOiBoZWxwZXIuY2FsY0hlaWdodEZvckFnZVpzY29yZSxcbiAgICAgIGNhbGNTb3V0aEVhc3RBc2lhTm9uTGFiQ1ZEUmlzazogaGVscGVyLmNhbGNTb3V0aEVhc3RBc2lhTm9uTGFiQ1ZEUmlzayxcbiAgICAgIGlzRW1wdHk6IGhlbHBlci5pc0VtcHR5LFxuICAgICAgYXJyYXlDb250YWluczogaGVscGVyLmFycmF5Q29udGFpbnMsXG4gICAgICBleHRyYWN0UmVwZWF0aW5nR3JvdXBWYWx1ZXM6IGhlbHBlci5leHRyYWN0UmVwZWF0aW5nR3JvdXBWYWx1ZXMsXG4gICAgICBnZXRPYnNGcm9tQ29udHJvbE9yRW5jb3VudGVyOiBoZWxwZXIuZ2V0T2JzRnJvbUNvbnRyb2xPckVuY291bnRlclxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -95,9 +95,9 @@ export class TimeAgoPipe {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
TimeAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
99
|
-
TimeAgoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
98
|
+
TimeAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TimeAgoPipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
99
|
+
TimeAgoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TimeAgoPipe, name: "timeAgo", pure: false });
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TimeAgoPipe, decorators: [{
|
|
101
101
|
type: Pipe,
|
|
102
102
|
args: [{
|
|
103
103
|
name: 'timeAgo',
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { QuestionBase } from './question-base';
|
|
2
|
+
import { AfeControlType } from '../../abstract-controls-extension/afe-control-type';
|
|
3
|
+
export class DiagnosisQuestion extends QuestionBase {
|
|
4
|
+
constructor(options) {
|
|
5
|
+
super(options);
|
|
6
|
+
this.renderingType = 'select';
|
|
7
|
+
this.options = options.options;
|
|
8
|
+
this.controlType = AfeControlType.AfeFormControl;
|
|
9
|
+
this.dataSource = options.dataSource || '';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc2lzLXF1ZXN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvZGlhZ25vc2lzLXF1ZXN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHcEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFlBQVk7SUFLakQsWUFBWSxPQUFpQztRQUMzQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlc3Rpb25CYXNlIH0gZnJvbSAnLi9xdWVzdGlvbi1iYXNlJztcbmltcG9ydCB7IEFmZUNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtY29udHJvbHMtZXh0ZW5zaW9uL2FmZS1jb250cm9sLXR5cGUnO1xuaW1wb3J0IHsgRGlhZ25vc2lzUXVlc3Rpb25PcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2RpYWdub3Npcy1xdWVzdGlvbi1vcHRpb25zJztcblxuZXhwb3J0IGNsYXNzIERpYWdub3Npc1F1ZXN0aW9uIGV4dGVuZHMgUXVlc3Rpb25CYXNlIHtcbiAgcmVuZGVyaW5nOiBzdHJpbmc7XG4gIG9wdGlvbnM6IGFueVtdO1xuICBkYXRhU291cmNlPzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IERpYWdub3Npc1F1ZXN0aW9uT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMucmVuZGVyaW5nVHlwZSA9ICdzZWxlY3QnO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucztcbiAgICB0aGlzLmNvbnRyb2xUeXBlID0gQWZlQ29udHJvbFR5cGUuQWZlRm9ybUNvbnRyb2w7XG4gICAgdGhpcy5kYXRhU291cmNlID0gb3B0aW9ucy5kYXRhU291cmNlIHx8ICcnO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc2lzLXF1ZXN0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3F1ZXN0aW9uLW1vZGVscy9pbnRlcmZhY2VzL2RpYWdub3Npcy1xdWVzdGlvbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYmFzZS1vcHRpb25zJztcbmltcG9ydCB7RGF0YVNvdXJjZX0gZnJvbSBcIi4vZGF0YS1zb3VyY2VcIjtcbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc2lzUXVlc3Rpb25PcHRpb25zIGV4dGVuZHMgQmFzZU9wdGlvbnMge1xuICBkYXRhU291cmNlPzogc3RyaW5nO1xuICByZW5kZXJpbmc6IHN0cmluZztcbiAgcmFuazogbnVtYmVyO1xuICBvcHRpb25zPzogQXJyYXk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXF1ZXN0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3F1ZXN0aW9uLW1vZGVscy9pbnRlcmZhY2VzL3NlbGVjdC1xdWVzdGlvbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYmFzZS1vcHRpb25zJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RhdGEtc291cmNlJztcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0UXVlc3Rpb25PcHRpb25zIGV4dGVuZHMgQmFzZU9wdGlvbnMge1xuICBvcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdO1xuICBkYXRhU291cmNlPzogRGF0YVNvdXJjZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ValidationModel } from './validation.model';
|
|
2
|
+
export class MaxLengthValidationModel extends ValidationModel {
|
|
3
|
+
constructor(validations) {
|
|
4
|
+
super(validations);
|
|
5
|
+
const maxlength = validations.maxlength;
|
|
6
|
+
this.maxlength = +maxlength;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWxlbmd0aC12YWxpZGF0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvbWF4LWxlbmd0aC12YWxpZGF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTtJQUczRCxZQUFZLFdBQWdCO1FBQzFCLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixNQUFNLFNBQVMsR0FBUSxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbk1vZGVsIH0gZnJvbSAnLi92YWxpZGF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE1heExlbmd0aFZhbGlkYXRpb25Nb2RlbCBleHRlbmRzIFZhbGlkYXRpb25Nb2RlbCB7XG4gbWF4bGVuZ3RoOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IodmFsaWRhdGlvbnM6IGFueSkge1xuICAgIHN1cGVyKHZhbGlkYXRpb25zKTtcbiAgICBjb25zdCBtYXhsZW5ndGg6IGFueSA9IHZhbGlkYXRpb25zLm1heGxlbmd0aDtcbiAgICB0aGlzLm1heGxlbmd0aCA9ICttYXhsZW5ndGg7XG4gIH1cbn0iXX0=
|
|
@@ -3,7 +3,7 @@ export class MaxValidationModel extends ValidationModel {
|
|
|
3
3
|
constructor(validations) {
|
|
4
4
|
super(validations);
|
|
5
5
|
const max = validations.max;
|
|
6
|
-
this.max =
|
|
6
|
+
this.max = Number(max);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LXZhbGlkYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3F1ZXN0aW9uLW1vZGVscy9tYXgtdmFsaWRhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQWU7SUFHckQsWUFBWSxXQUFnQjtRQUMxQixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsTUFBTSxHQUFHLEdBQVEsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uTW9kZWwgfSBmcm9tICcuL3ZhbGlkYXRpb24ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTWF4VmFsaWRhdGlvbk1vZGVsIGV4dGVuZHMgVmFsaWRhdGlvbk1vZGVsIHtcbiAgbWF4OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IodmFsaWRhdGlvbnM6IGFueSkge1xuICAgIHN1cGVyKHZhbGlkYXRpb25zKTtcbiAgICBjb25zdCBtYXg6IGFueSA9IHZhbGlkYXRpb25zLm1heDtcbiAgICB0aGlzLm1heCA9IE51bWJlcihtYXgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ValidationModel } from './validation.model';
|
|
2
|
+
export class MinLengthValidationModel extends ValidationModel {
|
|
3
|
+
constructor(validations) {
|
|
4
|
+
super(validations);
|
|
5
|
+
const minlength = validations.minlength;
|
|
6
|
+
this.minlength = +minlength;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLWxlbmd0aC12YWxpZGF0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvbWluLWxlbmd0aC12YWxpZGF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTtJQUczRCxZQUFZLFdBQWdCO1FBQzFCLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixNQUFNLFNBQVMsR0FBUSxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbk1vZGVsIH0gZnJvbSAnLi92YWxpZGF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE1pbkxlbmd0aFZhbGlkYXRpb25Nb2RlbCBleHRlbmRzIFZhbGlkYXRpb25Nb2RlbCB7XG4gbWlubGVuZ3RoOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IodmFsaWRhdGlvbnM6IGFueSkge1xuICAgIHN1cGVyKHZhbGlkYXRpb25zKTtcbiAgICBjb25zdCBtaW5sZW5ndGg6IGFueSA9IHZhbGlkYXRpb25zLm1pbmxlbmd0aDtcbiAgICB0aGlzLm1pbmxlbmd0aCA9ICttaW5sZW5ndGg7XG4gIH1cbn0iXX0=
|
|
@@ -3,7 +3,7 @@ export class MinValidationModel extends ValidationModel {
|
|
|
3
3
|
constructor(validations) {
|
|
4
4
|
super(validations);
|
|
5
5
|
const min = validations.min;
|
|
6
|
-
this.min =
|
|
6
|
+
this.min = Number(min);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLXZhbGlkYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3F1ZXN0aW9uLW1vZGVscy9taW4tdmFsaWRhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQWU7SUFHckQsWUFBWSxXQUFnQjtRQUMxQixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsTUFBTSxHQUFHLEdBQVEsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uTW9kZWwgfSBmcm9tICcuL3ZhbGlkYXRpb24ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTWluVmFsaWRhdGlvbk1vZGVsIGV4dGVuZHMgVmFsaWRhdGlvbk1vZGVsIHtcbiAgbWluOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IodmFsaWRhdGlvbnM6IGFueSkge1xuICAgIHN1cGVyKHZhbGlkYXRpb25zKTtcbiAgICBjb25zdCBtaW46IGFueSA9IHZhbGlkYXRpb25zLm1pbjtcbiAgICB0aGlzLm1pbiA9IE51bWJlcihtaW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -8,4 +8,4 @@ export class MultiSelectQuestion extends SelectQuestion {
|
|
|
8
8
|
this.controlType = AfeControlType.AfeFormControl;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LXF1ZXN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvbXVsdGktc2VsZWN0LXF1ZXN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFcEYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNBQWM7SUFHckQsWUFBWSxPQUFtQztRQUM3QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLGNBQWMsSUFBSSxlQUFlLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUM7SUFDbkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0UXVlc3Rpb24gfSBmcm9tICcuL3NlbGVjdC1xdWVzdGlvbic7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdFF1ZXN0aW9uT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9tdWx0aS1zZWxlY3Qtb3B0aW9ucyc7XG5pbXBvcnQgeyBBZmVDb250cm9sVHlwZSB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LWNvbnRyb2xzLWV4dGVuc2lvbi9hZmUtY29udHJvbC10eXBlJztcblxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0UXVlc3Rpb24gZXh0ZW5kcyBTZWxlY3RRdWVzdGlvbiB7XG4gIG9wdGlvbnM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTXVsdGlTZWxlY3RRdWVzdGlvbk9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgICB0aGlzLnJlbmRlcmluZ1R5cGUgPSAnbXVsdGktc2VsZWN0JyB8fCAnc2luZ2xlLXNlbGVjdCc7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgIHRoaXMuY29udHJvbFR5cGUgPSBBZmVDb250cm9sVHlwZS5BZmVGb3JtQ29udHJvbDtcbiAgfVxufVxuIl19
|
|
@@ -9,4 +9,4 @@ export class SelectQuestion extends QuestionBase {
|
|
|
9
9
|
this.dataSource = options.dataSource || '';
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXF1ZXN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvc2VsZWN0LXF1ZXN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFcEYsTUFBTSxPQUFPLGNBQWUsU0FBUSxZQUFZO0lBSTlDLFlBQVksT0FBOEI7UUFDeEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVzdGlvbkJhc2UgfSBmcm9tICcuL3F1ZXN0aW9uLWJhc2UnO1xuaW1wb3J0IHsgU2VsZWN0UXVlc3Rpb25PcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NlbGVjdC1xdWVzdGlvbi1vcHRpb25zJztcbmltcG9ydCB7IEFmZUNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtY29udHJvbHMtZXh0ZW5zaW9uL2FmZS1jb250cm9sLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0UXVlc3Rpb24gZXh0ZW5kcyBRdWVzdGlvbkJhc2Uge1xuICBvcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdO1xuICBkYXRhU291cmNlPzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNlbGVjdFF1ZXN0aW9uT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMucmVuZGVyaW5nVHlwZSA9ICdzZWxlY3QnO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICB0aGlzLmNvbnRyb2xUeXBlID0gQWZlQ29udHJvbFR5cGUuQWZlRm9ybUNvbnRyb2w7XG4gICAgdGhpcy5kYXRhU291cmNlID0gb3B0aW9ucy5kYXRhU291cmNlIHx8ICcnO1xuICB9XG59XG4iXX0=
|
|
@@ -16,9 +16,9 @@ export class DebugModeService {
|
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
DebugModeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
20
|
-
DebugModeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
19
|
+
DebugModeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DebugModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
|
+
DebugModeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DebugModeService });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DebugModeService, decorators: [{
|
|
22
22
|
type: Injectable
|
|
23
23
|
}], ctorParameters: function () { return []; } });
|
|
24
24
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9zZXJ2aWNlcy9kZWJ1Zy1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztFQU1FO0FBRUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUczQjtRQUZPLGNBQVMsR0FBRyxXQUFXLENBQUM7SUFFaEIsQ0FBQztJQUNULFlBQVk7UUFDakIseUJBQXlCO1FBQ3pCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OEdBUFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5UaGlzIHNlcnZpY2UgY2hlY2tzIGlmIHRoZSBkZWJ1ZyBtb2RlIG9uIG5nMi1hbXJzXG5oYXMgYmVlbiBlbmFibGVkIGJ5IGNoZWNraW5nIGNvb2tpZXMuXG5JZiB0aGUgZGVidWcgbW9kZSBoYXMgYmVlbiBlbmFibGVkIHRoZW5cbml0IHJldHVybnMgdHJ1ZSBhbmQgYWxsIGZpZWxkcyBhcmUgZGlzcGxheWVkXG5mb3IgdXNlIGJ5IHRlc3RlcnNcbiovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlYnVnTW9kZVNlcnZpY2Uge1xuICBwdWJsaWMgY29va2llS2V5ID0gJ2Zvcm1EZWJ1Zyc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuICBwdWJsaWMgZGVidWdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIGNoZWNrIGlmIHRoZSBoaWRlZmllbGRcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -13,9 +13,9 @@ export class FormErrorsService {
|
|
|
13
13
|
// Observable string sources
|
|
14
14
|
FormErrorsService.control = null;
|
|
15
15
|
FormErrorsService.tab = null;
|
|
16
|
-
FormErrorsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
17
|
-
FormErrorsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
16
|
+
FormErrorsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FormErrorsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
+
FormErrorsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FormErrorsService });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FormErrorsService, decorators: [{
|
|
19
19
|
type: Injectable
|
|
20
20
|
}] });
|
|
21
21
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2Zvcm0tZW50cnkvc2VydmljZXMvZm9ybS1lcnJvcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFLUyw2QkFBd0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ2pELHdCQUFtQixHQUV0QixJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7S0FJbEQ7SUFIUSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUFURCw0QkFBNEI7QUFDZCx5QkFBTyxHQUFpRCxJQUFJLENBQUM7QUFDN0QscUJBQUcsR0FBVyxJQUFJLENBQUM7K0dBSHRCLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBZmVGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgQWZlRm9ybUFycmF5LCBBZmVGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9hYnN0cmFjdC1jb250cm9scy1leHRlbnNpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yc1NlcnZpY2Uge1xuICAvLyBPYnNlcnZhYmxlIHN0cmluZyBzb3VyY2VzXG4gIHB1YmxpYyBzdGF0aWMgY29udHJvbDogQWZlRm9ybUNvbnRyb2wgfCBBZmVGb3JtQXJyYXkgfCBBZmVGb3JtR3JvdXAgPSBudWxsO1xuICBwdWJsaWMgc3RhdGljIHRhYjogbnVtYmVyID0gbnVsbDtcbiAgcHVibGljIGFubm91bmNlRXJyb3JGaWVsZFNvdXJjZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIGFubm91bmNlRXJyb3JGaWVsZCQ6IE9ic2VydmFibGU8XG4gICAgYW55XG4gID4gPSB0aGlzLmFubm91bmNlRXJyb3JGaWVsZFNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIGFubm91bmNlRXJyb3JGaWVsZChlcnJvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5hbm5vdW5jZUVycm9yRmllbGRTb3VyY2UubmV4dChlcnJvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -240,9 +240,9 @@ export class FormSchemaCompiler {
|
|
|
240
240
|
return keyValReferencedForms;
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
|
-
FormSchemaCompiler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
244
|
-
FormSchemaCompiler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
245
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
243
|
+
FormSchemaCompiler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FormSchemaCompiler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
244
|
+
FormSchemaCompiler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FormSchemaCompiler });
|
|
245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FormSchemaCompiler, decorators: [{
|
|
246
246
|
type: Injectable
|
|
247
247
|
}], ctorParameters: function () { return []; } });
|
|
248
248
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEtY29tcGlsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2Zvcm0tZW50cnkvc2VydmljZXMvZm9ybS1zY2hlbWEtY29tcGlsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQUc1QixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFVCxpQkFBaUIsQ0FDdEIsVUFBa0IsRUFDbEIsb0JBQWdDO1FBRWhDLDJCQUEyQjtRQUMzQixNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsa0JBQWtCLENBQzlDLFVBQVUsRUFDVixvQkFBb0IsQ0FDckIsQ0FBQztRQUNGLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2QixPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUVELDRDQUE0QztRQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzNCLE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBRUQsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDckUsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixXQUF1QixFQUN2QixZQUFvQjtRQUVwQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNyRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLFdBQVcs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J0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUNvbXBpbGVyIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBjb21waWxlRm9ybVNjaGVtYShcbiAgICBmb3JtU2NoZW1hOiBPYmplY3QsXG4gICAgcmVmZXJlbmNlZENvbXBvbmVudHM6IEFycmF5PGFueT5cbiAgKTogT2JqZWN0IHtcbiAgICAvLyBnZXQgYWxsIHJlZmVyZW5jZWQgZm9ybXNcbiAgICBjb25zdCByZWZGb3JtczogT2JqZWN0ID0gdGhpcy5nZXRSZWZlcmVuY2VkRm9ybXMoXG4gICAgICBmb3JtU2NoZW1hLFxuICAgICAgcmVmZXJlbmNlZENvbXBvbmVudHNcbiAgICApO1xuICAgIGlmIChfLmlzRW1wdHkocmVmRm9ybXMpKSB7XG4gICAgICByZXR1cm4gZm9ybVNjaGVtYTtcbiAgICB9XG5cbiAgICAvLyBnZXQgYWxsIHBsYWNlaG9sZGVycyBmcm9tIHRoZSBmb3JtIHNjaGVtYVxuICAgIGNvbnN0IHBsYWNlSG9sZGVycyA9IHRoaXMuZ2V0QWxsUGxhY2Vob2xkZXJPYmplY3RzKGZvcm1TY2hlbWEpO1xuICAgIGlmIChfLmlzRW1wdHkocGxhY2VIb2xkZXJzKSkge1xuICAgICAgcmV0dXJuIGZvcm1TY2hlbWE7XG4gICAgfVxuXG4gICAgLy8gcmVwbGFjZSBhbGwgcGxhY2Vob2xkZXJzXG4gICAgdGhpcy5yZXBsYWNlQWxsUGxhY2Vob2xkZXJzV2l0aEFjdHVhbE9iamVjdHMocmVmRm9ybXMsIHBsYWNlSG9sZGVycyk7XG4gICAgcmV0dXJuIGZvcm1TY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGZpbmRTY2hlbWFCeU5hbWUoXG4gICAgc2NoZW1hQXJyYXk6IEFycmF5PGFueT4sXG4gICAgbmFtZU9mU2NoZW1hOiBzdHJpbmdcbiAgKTogT2JqZWN0IHtcbiAgICBpZiAoXy5pc0VtcHR5KHNjaGVtYUFycmF5KSB8fCBfLmlzRW1wdHkobmFtZU9mU2NoZW1hKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgZm91bmRTY2hlbWE6IGFueSA9IHt9O1xuICAgIF8uZWFjaChzY2hlbWFBcnJheSwgKHNjaGVtYTogYW55KSA9PiB7XG4gICAgICBpZiAoc2NoZW1hLm5hbWUgPT09IG5hbWVPZlNjaGVtYSkge1xuICAgICAgICBmb3VuZFNjaGVtYSA9IHNjaGVtYTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmRTY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGdldFBhZ2VJblNjaGVtYUJ5TGFiZWwoc2NoZW1hOiBhbnksIHBhZ2VMYWJlbDogc3RyaW5nKTogT2JqZWN0IHtcbiAgICBpZiAoXy5pc0VtcHR5KHNjaGVtYSkgfHwgXy5pc0VtcHR5KHBhZ2VMYWJlbCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZvdW5kUGFnZTogT2JqZWN0ID0ge307XG4gICAgXy5lYWNoKHNjaGVtYS5wYWdlcywgKHBhZ2UpID0+IHtcbiAgICAgIGlmIChwYWdlLmxhYmVsID09PSBwYWdlTGFiZWwpIHtcbiAgICAgICAgZm91bmRQYWdlID0gcGFnZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmRQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWN0aW9uSW5TY2hlbWFCeVBhZ2VMYWJlbEJ5U2VjdGlvbkxhYmVsKFxuICAgIHNjaGVtYTogT2JqZWN0LFxuICAgIHBhZ2VMYWJlbDogc3RyaW5nLFxuICAgIHNlY3Rpb25MYWJlbDogc3RyaW5nXG4gICk6IE9iamVjdCB7XG4gICAgaWYgKF8uaXNFbXB0eShzY2hlbWEpIHx8IF8uaXNFbXB0eShwYWdlTGFiZWwpIHx8IF8uaXNFbXB0eShzZWN0aW9uTGFiZWwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvdW5kUGFnZTogYW55ID0gdGhpcy5nZXRQYWdlSW5TY2hlbWFCeUxhYmVsKHNjaGVtYSwgcGFnZUxhYmVsKTtcbiAgICBpZiAoXy5pc0VtcHR5KGZvdW5kUGFnZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZvdW5kU2VjdGlvbjogT2JqZWN0ID0ge307XG4gICAgXy5lYWNoKGZvdW5kUGFnZS5zZWN0aW9ucywgKHNlY3Rpb24pID0+IHtcbiAgICAgIGlmIChzZWN0aW9uLmxhYmVsID09PSBzZWN0aW9uTGFiZWwpIHtcbiAgICAgICAgZm91bmRTZWN0aW9uID0gc2VjdGlvbjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmRTZWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWVzdGlvbkJ5SWRJblNjaGVtYShzY2hlbWE6IGFueSwgcXVlc3Rpb25JZDogc3RyaW5nKTogQXJyYXk8YW55PiB7XG4gICAgaWYgKF8uaXNFbXB0eShzY2hlbWEpIHx8IF8uaXNFbXB0eShxdWVzdGlvbklkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKSB7XG4gICAgICBsZXQgcXVlc3Rpb246IEFycmF5PGFueT47XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNjaGVtYS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIV8uaXNFbXB0eShzY2hlbWFbaV0pKSB7XG4gICAgICAgICAgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uQnlJZEluU2NoZW1hKHNjaGVtYVtpXSwgcXVlc3Rpb25JZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzRW1wdHkocXVlc3Rpb24pKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBxdWVzdGlvbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uT2JqZWN0V2l0aElkKHNjaGVtYSwgcXVlc3Rpb25JZCkpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1NjaGVtYVN1Yk9iamVjdEV4cGFuZGFibGUoc2NoZW1hKSkge1xuICAgICAgICBjb25zdCB0b0V4cGFuZCA9IHNjaGVtYS5wYWdlcyB8fCBzY2hlbWEuc2VjdGlvbnMgfHwgc2NoZW1hLnF1ZXN0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UXVlc3Rpb25CeUlkSW5TY2hlbWEodG9FeHBhbmQsIHF1ZXN0aW9uSWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWVzdGlvbnNBcnJheUJ5UXVlc3Rpb25JZEluU2NoZW1hKFxuICAgIHNjaGVtYTogYW55LFxuICAgIHF1ZXN0aW9uSWQ6IHN0cmluZ1xuICApOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoXy5pc0VtcHR5KHNjaGVtYSkgfHwgXy5pc0VtcHR5KHF1ZXN0aW9uSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFF1ZXN0aW9uc0FycmF5QnlRdWVzdGlvbklkKHNjaGVtYSwgc2NoZW1hLCBxdWVzdGlvbklkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UXVlc3Rpb25zQXJyYXlCeVF1ZXN0aW9uSWQoXG4gICAgcGFyZW50OiBhbnksXG4gICAgb2JqZWN0OiBhbnksXG4gICAgcXVlc3Rpb25JZDogc3RyaW5nXG4gICk6IEFycmF5PGFueT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICAgIGxldCByZXR1cm5lZFZhbHVlOiBBcnJheTxhbnk+O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFfLmlzRW1wdHkob2JqZWN0W2ldKSkge1xuICAgICAgICAgIHJldHVybmVkVmFsdWUgPSB0aGlzLmdldFF1ZXN0aW9uc0FycmF5QnlRdWVzdGlvbklkKFxuICAgICAgICAgICAgb2JqZWN0LFxuICAgICAgICAgICAgb2JqZWN0W2ldLFxuICAgICAgICAgICAgcXVlc3Rpb25JZFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzRW1wdHkocmV0dXJuZWRWYWx1ZSkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0dXJuZWRWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uT2JqZWN0V2l0aElkKG9iamVjdCwgcXVlc3Rpb25JZCkpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1NjaGVtYVN1Yk9iamVjdEV4cGFuZGFibGUob2JqZWN0KSkge1xuICAgICAgICBjb25zdCB0b0V4cGFuZCA9IG9iamVjdC5wYWdlcyB8fCBvYmplY3Quc2VjdGlvbnMgfHwgb2JqZWN0LnF1ZXN0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UXVlc3Rpb25zQXJyYXlCeVF1ZXN0aW9uSWQoXG4gICAgICAgICAgdG9FeHBhbmQsXG4gICAgICAgICAgdG9FeHBhbmQsXG4gICAgICAgICAgcXVlc3Rpb25JZFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLy8gb2JqZWN0IGlzIHBhZ2Ugb3Igc2VjdGlvbiBvciBxdWVzdGlvblxuICBwcml2YXRlIGlzU2NoZW1hU3ViT2JqZWN0RXhwYW5kYWJsZShvYmplY3Q6IE9iamVjdCk6IEJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3Qgb2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gICAgICBpZiAoXG4gICAgICAgIF8uaW5jbHVkZXMob2JqZWN0S2V5cywgJ3BhZ2VzJykgfHxcbiAgICAgICAgXy5pbmNsdWRlcyhvYmplY3RLZXlzLCAnc2VjdGlvbnMnKSB8fFxuICAgICAgICBfLmluY2x1ZGVzKG9iamVjdEtleXMsICdxdWVzdGlvbnMnKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzUXVlc3Rpb25PYmplY3RXaXRoSWQob2JqZWN0OiBPYmplY3QsIGlkOiBhbnkpOiBCb29sZWFuIHtcbiAgICByZXR1cm4gb2JqZWN0WydpZCddID09PSBpZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsUGxhY2Vob2xkZXJPYmplY3RzKHNjaGVtYTogT2JqZWN0KTogQXJyYXk8YW55PiB7XG4gICAgY29uc3QgcmVmZXJlbmNlZE9iamVjdHM6IEFycmF5PGFueT4gPSBbXTtcbiAgICB0aGlzLmV4dHJhY3RQbGFjZWhvbGRlck9iamVjdHMoc2NoZW1hLCByZWZlcmVuY2VkT2JqZWN0cyk7XG4gICAgcmV0dXJuIHJlZmVyZW5jZWRPYmplY3RzO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UGxhY2Vob2xkZXJPYmplY3RzKFxuICAgIHN1YlNjaGVtYTogYW55LFxuICAgIG9iamVjdHNBcnJheTogQXJyYXk8T2JqZWN0PlxuICApOiB2b2lkIHtcbiAgICBpZiAoXy5pc0VtcHR5KHN1YlNjaGVtYSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3ViU2NoZW1hKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJTY2hlbWEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFfLmlzRW1wdHkoc3ViU2NoZW1hW2ldKSkge1xuICAgICAgICAgIHRoaXMuZXh0cmFjdFBsYWNlaG9sZGVyT2JqZWN0cyhzdWJTY2hlbWFbaV0sIG9iamVjdHNBcnJheSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdWJTY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoIV8uaXNFbXB0eShzdWJTY2hlbWEucmVmZXJlbmNlKSkge1xuICAgICAgICBvYmplY3RzQXJyYXkucHVzaChzdWJTY2hlbWEpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU2NoZW1hU3ViT2JqZWN0RXhwYW5kYWJsZShzdWJTY2hlbWEpKSB7XG4gICAgICAgIGNvbnN0IHRvRXhwYW5kID1cbiAgICAgICAgICBzdWJTY2hlbWEucGFnZXMgfHwgc3ViU2NoZW1hLnNlY3Rpb25zIHx8IHN1YlNjaGVtYS5xdWVzdGlvbnM7XG4gICAgICAgIHRoaXMuZXh0cmFjdFBsYWNlaG9sZGVyT2JqZWN0cyh0b0V4cGFuZCwgb2JqZWN0c0FycmF5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbGxQbGFjZWhvbGRlck9iamVjdChcbiAgICBwbGFjZUhvbGRlck9iamVjdDogT2JqZWN0LFxuICAgIHJlZmVyZW5jZU9iamVjdDogT2JqZWN0XG4gICk6IE9iamVjdCB7XG4gICAgZm9yIChjb25zdCBtZW1iZXIgaW4gcmVmZXJlbmNlT2JqZWN0KSB7XG4gICAgICBpZiAoXy5pc0VtcHR5KHBsYWNlSG9sZGVyT2JqZWN0W21lbWJlcl0pKSB7XG4gICAgICAgIHBsYWNlSG9sZGVyT2JqZWN0W21lbWJlcl0gPSByZWZlcmVuY2VPYmplY3RbbWVtYmVyXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBsYWNlSG9sZGVyT2JqZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlQWxsUGxhY2Vob2xkZXJzV2l0aEFjdHVhbE9iamVjdHMoXG4gICAga2V5VmFsUmVmZXJlbmNlZEZvcm1zOiBPYmplY3QsXG4gICAgcGxhY2VIb2xkZXJzQXJyYXk6IEFycmF5PGFueT5cbiAgKTogQXJyYXk8YW55PiB7XG4gICAgXy5lYWNoKHBsYWNlSG9sZGVyc0FycmF5LCAocGxhY2VIb2xkZXIpID0+IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZWRPYmplY3Q6IE9iamVjdCA9IHRoaXMuZ2V0UmVmZXJlbmNlZE9iamVjdChcbiAgICAgICAgcGxhY2VIb2xkZXIucmVmZXJlbmNlLFxuICAgICAgICBrZXlWYWxSZWZlcmVuY2VkRm9ybXNcbiAgICAgICk7XG5cbiAgICAgIGlmIChfLmlzRW1wdHkocmVmZXJlbmNlZE9iamVjdCkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnRm9ybSBjb21waWxlOiBFcnJvciBmaW5kaW5nIHJlZmVyZW5jZWQgb2JqZWN0JyxcbiAgICAgICAgICBwbGFjZUhvbGRlci5yZWZlcmVuY2VcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBsYWNlSG9sZGVyID0gdGhpcy5maWxsUGxhY2Vob2xkZXJPYmplY3QocGxhY2VIb2xkZXIsIHJlZmVyZW5jZWRPYmplY3QpO1xuICAgICAgICBwbGFjZUhvbGRlciA9IHRoaXMucmVtb3ZlRXhjbHVkZWRRdWVzdGlvbnNGcm9tUGxhY2Vob2xkZXIocGxhY2VIb2xkZXIpO1xuICAgICAgICBkZWxldGUgcGxhY2VIb2xkZXJbJ3JlZmVyZW5jZSddO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwbGFjZUhvbGRlcnNBcnJheTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlT2JqZWN0RnJvbUFycmF5KGFycmF5OiBBcnJheTxhbnk+LCBvYmplY3Q6IE9iamVjdCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4T2ZPYmplY3QgPSBhcnJheS5pbmRleE9mKG9iamVjdCk7XG4gICAgaWYgKGluZGV4T2ZPYmplY3QgPT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXJyYXkuc3BsaWNlKGluZGV4T2ZPYmplY3QsIDEpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVFeGNsdWRlZFF1ZXN0aW9uc0Zyb21QbGFjZWhvbGRlcihwbGFjZUhvbGRlcjogYW55KTogT2JqZWN0IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwbGFjZUhvbGRlci5yZWZlcmVuY2UuZXhjbHVkZVF1ZXN0aW9ucykpIHtcbiAgICAgIF8uZWFjaChwbGFjZUhvbGRlci5yZWZlcmVuY2UuZXhjbHVkZVF1ZXN0aW9ucywgKGV4Y2x1ZGVkUXVlc3Rpb25JZCkgPT4ge1xuICAgICAgICBjb25zdCBxdWVzdGlvbnNBcnJheTogQXJyYXk8YW55PiA9IHRoaXMuZ2V0UXVlc3Rpb25zQXJyYXlCeVF1ZXN0aW9uSWRJblNjaGVtYShcbiAgICAgICAgICBwbGFjZUhvbGRlcixcbiAgICAgICAgICBleGNsdWRlZFF1ZXN0aW9uSWRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocXVlc3Rpb25zQXJyYXkpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5nZXRRdWVzdGlvbkJ5SWRJblNjaGVtYShcbiAgICAgICAgICBxdWVzdGlvbnNBcnJheSxcbiAgICAgICAgICBleGNsdWRlZFF1ZXN0aW9uSWRcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlbW92ZU9iamVjdEZyb21BcnJheShxdWVzdGlvbnNBcnJheSwgcXVlc3Rpb24pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwbGFjZUhvbGRlcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVmZXJlbmNlZE9iamVjdChcbiAgICByZWZlcmVuY2VEYXRhOiBhbnksXG4gICAga2V5VmFsUmVmZXJlbmNlZEZvcm1zOiBPYmplY3RcbiAgKTogT2JqZWN0IHtcbiAgICBpZiAoXy5pc0VtcHR5KHJlZmVyZW5jZURhdGEuZm9ybSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdGb3JtIGNvbXBpbGU6IHJlZmVyZW5jZSBtaXNzaW5nIGZvcm0gYXR0cmlidXRlJyxcbiAgICAgICAgcmVmZXJlbmNlRGF0YVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKF8uaXNFbXB0eShrZXlWYWxSZWZlcmVuY2VkRm9ybXNbcmVmZXJlbmNlRGF0YS5mb3JtXSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdGb3JtIGNvbXBpbGU6IHJlZmVyZW5jZWQgZm9ybSBhbGlhcyBub3QgZm91bmQnLFxuICAgICAgICByZWZlcmVuY2VEYXRhXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIV8uaXNFbXB0eShyZWZlcmVuY2VEYXRhLnF1ZXN0aW9uSWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRRdWVzdGlvbkJ5SWRJblNjaGVtYShcbiAgICAgICAga2V5VmFsUmVmZXJlbmNlZEZvcm1zW3JlZmVyZW5jZURhdGEuZm9ybV0sXG4gICAgICAgIHJlZmVyZW5jZURhdGEucXVlc3Rpb25JZFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNFbXB0eShyZWZlcmVuY2VEYXRhLnBhZ2UpICYmICFfLmlzRW1wdHkocmVmZXJlbmNlRGF0YS5zZWN0aW9uKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkluU2NoZW1hQnlQYWdlTGFiZWxCeVNlY3Rpb25MYWJlbChcbiAgICAgICAga2V5VmFsUmVmZXJlbmNlZEZvcm1zW3JlZmVyZW5jZURhdGEuZm9ybV0sXG4gICAgICAgIHJlZmVyZW5jZURhdGEucGFnZSxcbiAgICAgICAgcmVmZXJlbmNlRGF0YS5zZWN0aW9uXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIV8uaXNFbXB0eShyZWZlcmVuY2VEYXRhLnBhZ2UpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQYWdlSW5TY2hlbWFCeUxhYmVsKFxuICAgICAgICBrZXlWYWxSZWZlcmVuY2VkRm9ybXNbcmVmZXJlbmNlRGF0YS5mb3JtXSxcbiAgICAgICAgcmVmZXJlbmNlRGF0YS5wYWdlXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgJ0Zvcm0gY29tcGlsZTogVW5zdXBwb3J0ZWQgcmVmZXJlbmNlIHR5cGUnLFxuICAgICAgcmVmZXJlbmNlRGF0YS5yZWZlcmVuY2VcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWZlcmVuY2VkRm9ybXMoXG4gICAgZm9ybVNjaGVtYTogYW55LFxuICAgIGZvcm1TY2hlbWFzTG9va3VwQXJyYXk6IEFycmF5PGFueT5cbiAgKTogT2JqZWN0IHtcbiAgICBjb25zdCByZWZlcmVuY2VkRm9ybXM6IEFycmF5PGFueT4gPSBmb3JtU2NoZW1hLnJlZmVyZW5jZWRGb3JtcztcblxuICAgIGlmIChfLmlzRW1wdHkocmVmZXJlbmNlZEZvcm1zKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleVZhbFJlZmVyZW5jZWRGb3JtczogT2JqZWN0ID0ge307XG5cbiAgICBfLmVhY2gocmVmZXJlbmNlZEZvcm1zLCAocmVmZXJlbmNlOiBhbnkpID0+IHtcbiAgICAgIGtleVZhbFJlZmVyZW5jZWRGb3Jtc1tyZWZlcmVuY2UuYWxpYXNdID0gdGhpcy5maW5kU2NoZW1hQnlOYW1lKFxuICAgICAgICBmb3JtU2NoZW1hc0xvb2t1cEFycmF5LFxuICAgICAgICByZWZlcmVuY2UuZm9ybU5hbWVcbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGtleVZhbFJlZmVyZW5jZWRGb3JtcztcbiAgfVxufVxuIl19
|
|
@@ -164,9 +164,9 @@ export class HistoricalEncounterDataService {
|
|
|
164
164
|
return existing;
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
HistoricalEncounterDataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
168
|
-
HistoricalEncounterDataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
167
|
+
HistoricalEncounterDataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HistoricalEncounterDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
168
|
+
HistoricalEncounterDataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HistoricalEncounterDataService });
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HistoricalEncounterDataService, decorators: [{
|
|
170
170
|
type: Injectable
|
|
171
171
|
}], ctorParameters: function () { return []; } });
|
|
172
172
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1lbmNvdW50ZXItZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9zZXJ2aWNlcy9oaXN0b3JpY2FsLWVuY291bnRlci1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOztBQUU1QixNQUFNLE9BQU8sOEJBQThCO0lBRXpDO1FBREEsZ0JBQVcsR0FBUSxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRWhCLGtCQUFrQixDQUFDLElBQVksRUFBRSxVQUFlO1FBQzlDLE1BQU0sUUFBUSxHQUFRO1lBQ3BCLElBQUksRUFBRSxFQUFFO1lBQ1IsUUFBUSxFQUFFLENBQUMsR0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQU8sRUFBRTtnQkFDeEMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQzVEO2dCQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxlQUFlLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdCLE9BQU8sUUFBUSxD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LENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNoQzthQUNGO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDNUI7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzRIQXBMVSw4QkFBOEI7Z0lBQTlCLDhCQUE4Qjs0RkFBOUIsOEJBQThCO2tCQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIaXN0b3JpY2FsRW5jb3VudGVyRGF0YVNlcnZpY2Uge1xuICBkYXRhU291cmNlczogYW55ID0ge307XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICByZWdpc3RlckVuY291bnRlcnMobmFtZTogc3RyaW5nLCBlbmNvdW50ZXJzOiBhbnkpIHtcbiAgICBjb25zdCBlbmNTdG9yZTogYW55ID0ge1xuICAgICAgZGF0YTogW10sXG4gICAgICBnZXRWYWx1ZTogKGtleTogc3RyaW5nLCBpbmRleCA9IDApOiBhbnkgPT4ge1xuICAgICAgICBjb25zdCBwYXRoQXJyYXkgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKHBhdGhBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Rmlyc3RWYWx1ZShwYXRoQXJyYXksIGVuY1N0b3JlLmRhdGFbaW5kZXhdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW5jU3RvcmUuZGF0YVtpbmRleF1ba2V5XTtcbiAgICAgIH0sXG4gICAgICBnZXRBbGxPYmplY3RzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBlbmNTdG9yZS5kYXRhO1xuICAgICAgfSxcbiAgICAgIGdldFNpbmdsZU9iamVjdDogKGluZGV4ID0gMCkgPT4ge1xuICAgICAgICByZXR1cm4gZW5jU3RvcmUuZGF0YVtpbmRleF07XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChfLmlzQXJyYXkoZW5jb3VudGVycykpIHtcbiAgICAgIGNvbnN0IGdyb3VwOiBBcnJheTxhbnk+ID0gW107XG4gICAgICBfLmVhY2goZW5jb3VudGVycywgKGVuY291bnRlcikgPT4ge1xuICAgICAgICBncm91cC5wdXNoKHRoaXMuX3RyYW5zZm9ybUVuY291bnRlcihlbmNvdW50ZXIpKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTb3J0IHRoZW0gaW4gcmV2ZXJzZSBjaHJvbm9sb2dpY2FsIG9yZGVyXG4gICAgICBlbmNTdG9yZS5kYXRhID0gXy5zb3J0QnkoZ3JvdXAsICdlbmNvdW50ZXJEYXRldGltZScpLnJldmVyc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXNzdW1lIGEgc2luZ2xlIG9wZW5tcnMgcmVzdCBlbmNvdW50ZXIgb2JqZWN0LlxuICAgICAgZW5jU3RvcmUuZGF0YS5wdXNoKHRoaXMuX3RyYW5zZm9ybUVuY291bnRlcihlbmNvdW50ZXJzKSk7XG4gICAgfVxuXG4gICAgdGhpcy5wdXRPYmplY3QobmFtZSwgZW5jU3RvcmUpO1xuICB9XG5cbiAgcHV0T2JqZWN0KG5hbWUsIG9iamVjdCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZXNbbmFtZV0gPSBvYmplY3Q7XG4gIH1cblxuICBnZXRPYmplY3QobmFtZTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlc1tuYW1lXSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0Rmlyc3RWYWx1ZShwYXRoOiBBcnJheTxzdHJpbmc+LCBvYmplY3Q6IGFueSk6IGFueSB7XG4gICAgY29uc3QgYW5zd2VycyA9IFtdO1xuXG4gICAgdGhpcy5nZXRBbGxWYWx1ZXMocGF0aCwgb2JqZWN0LCBhbnN3ZXJzKTtcblxuICAgIGlmIChhbnN3ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBhbnN3ZXJzWzBdLFxuICAgICAgICB2YWx1ZURhdGU6IG1vbWVudChvYmplY3QuZW5jb3VudGVyRGF0ZXRpbWUpLmZvcm1hdChcbiAgICAgICAgICAnWVlZWS1NTS1ERFRISDptbTpzcydcbiAgICAgICAgKVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBnZXRBbGxWYWx1ZXMocGF0aCwgb2JqZWN0LCBhbnN3ZXJzKSB7XG4gICAgaWYgKF8uaXNOaWwob2JqZWN0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwYXRoLmxlbmd0aCA8PSAxKSB7XG4gICAgICBpZiAoIV8uaXNOaWwob2JqZWN0W3BhdGhbMF1dKSkge1xuICAgICAgICBhbnN3ZXJzLnB1c2gob2JqZWN0W3BhdGhbMF1dKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdwYXRoID0gcGF0aC5zcGxpY2UoMSk7XG4gICAgY29uc3Qga2V5ID0gcGF0aFswXTtcblxuICAgIGlmIChfLmlzQXJyYXkob2JqZWN0W2tleV0pICYmIG9iamVjdFtrZXldLmxlbmd0aCA+IDApIHtcbiAgICAgIF8uZWFjaChvYmplY3Rba2V5XSwgKGNoaWxkT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0QWxsVmFsdWVzKG5ld3BhdGguc2xpY2UoMCksIGNoaWxkT2JqZWN0LCBhbnN3ZXJzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldEFsbFZhbHVlcyhuZXdwYXRoLnNsaWNlKDApLCBvYmplY3Rba2V5XSwgYW5zd2Vycyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdHJhbnNmb3JtRW5jb3VudGVyKGVuY291bnRlcjogYW55KSB7XG4gICAgaWYgKF8uaXNOaWwoZW5jb3VudGVyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBUcmFuc2Zvcm0gZW5jb3VudGVyIExldmVsIGRldGFpbHMgdG8ga2V5IHZhbHVlIHBhaXJzLlxuICAgIGNvbnN0IHByZXZFbmNvdW50ZXI6IGFueSA9IHtcbiAgICAgIGVuY291bnRlckRhdGV0aW1lOiBlbmNvdW50ZXIuZW5jb3VudGVyRGF0ZXRpbWVcbiAgICB9O1xuXG4gICAgaWYgKGVuY291bnRlci5sb2NhdGlvbiAmJiBlbmNvdW50ZXIubG9jYXRpb24udXVpZCkge1xuICAgICAgcHJldkVuY291bnRlci5sb2NhdGlvbiA9IGVuY291bnRlci5sb2NhdGlvbi51dWlkO1xuICAgIH1cblxuICAgIGlmIChlbmNvdW50ZXIucGF0aWVudCAmJiBlbmNvdW50ZXIucGF0aWVudC51dWlkKSB7XG4gICAgICBwcmV2RW5jb3VudGVyLnBhdGllbnQgPSBlbmNvdW50ZXIucGF0aWVudC51dWlkO1xuICAgIH1cblxuICAgIGlmIChlbmNvdW50ZXIuZm9ybSAmJiBlbmNvdW50ZXIuZm9ybS51dWlkKSB7XG4gICAgICBwcmV2RW5jb3VudGVyLmZvcm0gPSBlbmNvdW50ZXIuZm9ybS51dWlkO1xuICAgIH1cblxuICAgIGlmIChlbmNvdW50ZXIuZW5jb3VudGVyVHlwZSAmJiBlbmNvdW50ZXIuZW5jb3VudGVyVHlwZS51dWlkKSB7XG4gICAgICBwcmV2RW5jb3VudGVyLmVuY291bnRlclR5cGUgPSBlbmNvdW50ZXIuZW5jb3VudGVyVHlwZS51dWlkO1xuICAgIH1cblxuICAgIGlmIChlbmNvdW50ZXIucHJvdmlkZXIpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyID0gZW5jb3VudGVyLnByb3ZpZGVyO1xuICAgICAgcHJldkVuY291bnRlci5wcm92aWRlciA9IHByb3ZpZGVyLnV1aWQ7XG4gICAgfVxuXG4gICAgLy8gRGVhbCB3aXRoIG9icy5cbiAgICBpZiAoZW5jb3VudGVyLm9icykge1xuICAgICAgY29uc3QgcHJvY2Vzc2VkT2JzOiBhbnkgPSB0aGlzLl90cmFuc2Zvcm1PYnMoZW5jb3VudGVyLm9icyk7XG5cbiAgICAgIC8vIGFkZCBpbiBpbmRpdmlkdWFsIHByb2Nlc3NlZCBvYnMgdG8gcHJldkVuY291bnRlclxuICAgICAgXy5leHRlbmQocHJldkVuY291bnRlciwgcHJvY2Vzc2VkT2JzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJldkVuY291bnRlcjtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYW5zZm9ybU9icyhvYnM6IGFueSk6IGFueSB7XG4gICAgaWYgKCFvYnMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG9ic1JlcDogYW55ID0ge307XG4gICAgaWYgKF8uaXNBcnJheShvYnMpKSB7XG4gICAgICBfLmVhY2gob2JzLCAoc2luZ2xlT2JzKSA9PiB7XG4gICAgICAgIHRoaXMuX2F1Z3VtZW50T2JzKG9ic1JlcCwgdGhpcy5fdHJhbnNmb3JtT2JzKHNpbmdsZU9icykpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gb2JzUmVwO1xuICAgIH0gZWxzZSBpZiAob2JzLmdyb3VwTWVtYmVycykge1xuICAgICAgY29uc3QgZ3JvdXA6IGFueSA9IHt9O1xuICAgICAgXy5lYWNoKG9icy5ncm91cE1lbWJlcnMsIChtZW1iZXIpID0+IHtcbiAgICAgICAgdGhpcy5fYXVndW1lbnRPYnMoZ3JvdXAsIHRoaXMuX3RyYW5zZm9ybU9icyhtZW1iZXIpKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBIYW5kbGUgYWxyZWFkeSBleGlzdGluZyBkYXRhXG4gICAgICBpZiAob2JzUmVwW29icy5jb25jZXB0LnV1aWRdICYmIF8uaXNBcnJheShvYnNSZXBbb2JzLmNvbmNlcHQudXVpZF0pKSB7XG4gICAgICAgIG9ic1JlcFtvYnMuY29uY2VwdC51dWlkXS5wdXNoKGdyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ic1JlcFtvYnMuY29uY2VwdC51dWlkXSA9IFtncm91cF07XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JzUmVwO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob2JzLnZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgIG9ic1JlcFtvYnMuY29uY2VwdC51dWlkXSA9IG9icy52YWx1ZS51dWlkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JzUmVwW29icy5jb25jZXB0LnV1aWRdID0gb2JzLnZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ic1JlcDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdWd1bWVudE9icyhleGlzdGluZzogYW55LCB0b0FkZDogYW55KTogYW55IHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0b0FkZCkge1xuICAgICAgaWYgKF8uaGFzKGV4aXN0aW5nLCBrZXkpKSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIG5vdCBhbiBhcnJheSB5ZXRcbiAgICAgICAgaWYgKCFfLmlzQXJyYXkoZXhpc3Rpbmdba2V5XSkpIHtcbiAgICAgICAgICBjb25zdCB0ZW1wID0gZXhpc3Rpbmdba2V5XTtcbiAgICAgICAgICBleGlzdGluZ1trZXldID0gW3RlbXBdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgaW5jb21pbmcgaXMgYXJyYXkgKGZvciBncm91cCBtZW1iZXJzKVxuICAgICAgICBpZiAoXy5pc0FycmF5KHRvQWRkW2tleV0pKSB7XG4gICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZXhpc3Rpbmdba2V5XSwgdG9BZGRba2V5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhpc3Rpbmdba2V5XS5wdXNoKHRvQWRkW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleGlzdGluZ1trZXldID0gdG9BZGRba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class MaxLengthValidator {
|
|
2
|
+
validate(maxLength) {
|
|
3
|
+
return (control) => {
|
|
4
|
+
if (control.hidden) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
if (control.value && control.value.length !== 0) {
|
|
8
|
+
const v = (control.value).toString().length;
|
|
9
|
+
return v <= maxLength
|
|
10
|
+
? null
|
|
11
|
+
: { maxlength: { requiredLength: maxLength, actualValue: v } };
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWxlbmd0aC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3ZhbGlkYXRvcnMvbWF4LWxlbmd0aC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixRQUFRLENBQUMsU0FBaUI7UUFDeEIsT0FBTyxDQUFDLE9BQXVCLEVBQTBCLEVBQUU7WUFDekQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNsQixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO2dCQUM1QyxPQUFPLENBQUMsSUFBSSxTQUFTO29CQUNuQixDQUFDLENBQUMsSUFBSTtvQkFDTixDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ2xFO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZmVGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LWNvbnRyb2xzLWV4dGVuc2lvbi9hZmUtZm9ybS1jb250cm9sJztcblxuZXhwb3J0IGNsYXNzIE1heExlbmd0aFZhbGlkYXRvciB7XG4gIHZhbGlkYXRlKG1heExlbmd0aDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBZmVGb3JtQ29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xuICAgICAgaWYgKGNvbnRyb2wuaGlkZGVuKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiBjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBjb25zdCB2ID0gKGNvbnRyb2wudmFsdWUpLnRvU3RyaW5nKCkubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdiA8PSBtYXhMZW5ndGhcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHsgbWF4bGVuZ3RoOiB7IHJlcXVpcmVkTGVuZ3RoOiBtYXhMZW5ndGgsIGFjdHVhbFZhbHVlOiB2IH0gfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class MinLengthValidator {
|
|
2
|
+
validate(minLength) {
|
|
3
|
+
return (control) => {
|
|
4
|
+
if (control.hidden) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
if (control.value && control.value.length !== 0) {
|
|
8
|
+
const v = (control.value).toString().length;
|
|
9
|
+
return v >= minLength
|
|
10
|
+
? null
|
|
11
|
+
: { minlength: { requiredLength: minLength, actualValue: v } };
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLWxlbmd0aC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3ZhbGlkYXRvcnMvbWluLWxlbmd0aC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixRQUFRLENBQUMsU0FBaUI7UUFDeEIsT0FBTyxDQUFDLE9BQXVCLEVBQTBCLEVBQUU7WUFDekQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNsQixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO2dCQUM1QyxPQUFPLENBQUMsSUFBSSxTQUFTO29CQUNuQixDQUFDLENBQUMsSUFBSTtvQkFDTixDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ2xFO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZmVGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LWNvbnRyb2xzLWV4dGVuc2lvbi9hZmUtZm9ybS1jb250cm9sJztcblxuZXhwb3J0IGNsYXNzIE1pbkxlbmd0aFZhbGlkYXRvciB7XG4gIHZhbGlkYXRlKG1pbkxlbmd0aDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBZmVGb3JtQ29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xuICAgICAgaWYgKGNvbnRyb2wuaGlkZGVuKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiBjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBjb25zdCB2ID0gKGNvbnRyb2wudmFsdWUpLnRvU3RyaW5nKCkubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdiA+PSBtaW5MZW5ndGhcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHsgbWlubGVuZ3RoOiB7IHJlcXVpcmVkTGVuZ3RoOiBtaW5MZW5ndGgsIGFjdHVhbFZhbHVlOiB2IH0gfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxufVxuIl19
|