kwikid-forms 0.7.1 → 0.8.0
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/kwikid-forms.umd.js +406 -220
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/builder/builder-form-editor/builder.form-editor.constants.js +18 -7
- package/esm2015/lib/builder/builder.component.js +1 -1
- package/esm2015/lib/renderer/config-converter/config-converter.constants.js +36 -3
- package/esm2015/lib/renderer/config-converter/config-converter.js +40 -10
- package/esm2015/lib/renderer/form-view/definitions/form-view.actions.definition.js +1 -1
- package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +3 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +75 -36
- package/esm2015/lib/renderer/form-view/form-view.module.js +11 -5
- package/esm2015/lib/renderer/form-view/helpers/form-view.form-data.helper.js +65 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.form-validations.helper.js +4 -2
- package/esm2015/lib/renderer/helpers/forms-storage.helper.js +1 -1
- package/fesm2015/kwikid-forms.js +247 -63
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/builder/builder-form-editor/builder.form-editor.constants.d.ts +102 -0
- package/lib/renderer/config-converter/config-converter.constants.d.ts +33 -0
- package/lib/renderer/form-view/definitions/form-view.actions.definition.d.ts +8 -2
- package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +41 -3
- package/lib/renderer/form-view/form-view.component.d.ts +1 -1
- package/lib/renderer/form-view/form-view.module.d.ts +1 -1
- package/lib/renderer/form-view/helpers/form-view.form-data.helper.d.ts +25 -0
- package/package.json +3 -3
|
@@ -5,7 +5,7 @@ import { TuiPreviewActionModule, TuiPreviewModule } from "@taiga-ui/addon-previe
|
|
|
5
5
|
import { TuiButtonModule, TuiDialogModule, TuiLabelModule, TuiSvgModule } from "@taiga-ui/core";
|
|
6
6
|
import { TuiPushModule } from "@taiga-ui/kit";
|
|
7
7
|
import { KwikIDCameraModule, KwikUIInputCameraModule } from "kwikid-camera";
|
|
8
|
-
import { KwikUIInputEmailModule, KwikUIModule, KwikUIPipeModule } from "kwikui";
|
|
8
|
+
import { KwikUIInputEmailModule, KwikUIInputMaskedModule, KwikUIInputMicModule, KwikUIModule, KwikUIPipeModule } from "kwikui";
|
|
9
9
|
import { TimerPipe } from "../../common/pipes/timer-formatter.pipe";
|
|
10
10
|
import { KwikIDFormViewComponent } from "./form-view.component";
|
|
11
11
|
import { StyleSanitizerPipe } from "./helpers/styles-sanitizer.pipe";
|
|
@@ -33,7 +33,9 @@ export class KwikIDFormViewModule {
|
|
|
33
33
|
KwikUIModule,
|
|
34
34
|
KwikIDCameraModule,
|
|
35
35
|
KwikUIInputCameraModule,
|
|
36
|
-
KwikUIInputEmailModule
|
|
36
|
+
KwikUIInputEmailModule,
|
|
37
|
+
KwikUIInputMaskedModule,
|
|
38
|
+
KwikUIInputMicModule], exports: [KwikIDFormViewComponent] });
|
|
37
39
|
/** @nocollapse */ KwikIDFormViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewModule, imports: [[
|
|
38
40
|
CommonModule,
|
|
39
41
|
FormsModule,
|
|
@@ -49,7 +51,9 @@ export class KwikIDFormViewModule {
|
|
|
49
51
|
KwikUIModule,
|
|
50
52
|
KwikIDCameraModule,
|
|
51
53
|
KwikUIInputCameraModule,
|
|
52
|
-
KwikUIInputEmailModule
|
|
54
|
+
KwikUIInputEmailModule,
|
|
55
|
+
KwikUIInputMaskedModule,
|
|
56
|
+
KwikUIInputMicModule
|
|
53
57
|
]] });
|
|
54
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewModule, decorators: [{
|
|
55
59
|
type: NgModule,
|
|
@@ -76,9 +80,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
76
80
|
KwikUIModule,
|
|
77
81
|
KwikIDCameraModule,
|
|
78
82
|
KwikUIInputCameraModule,
|
|
79
|
-
KwikUIInputEmailModule
|
|
83
|
+
KwikUIInputEmailModule,
|
|
84
|
+
KwikUIInputMaskedModule,
|
|
85
|
+
KwikUIInputMicModule
|
|
80
86
|
],
|
|
81
87
|
exports: [KwikIDFormViewComponent]
|
|
82
88
|
}]
|
|
83
89
|
}] });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9mb3JtLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGNBQWMsRUFDZCxZQUFZLEVBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLGdCQUFnQixFQUNqQixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0csT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scURBQXFELENBQUM7O0FBK0IzRyxNQUFNLE9BQU8sb0JBQW9COztxSUFBcEIsb0JBQW9CO3NJQUFwQixvQkFBb0IsaUJBM0I3Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLFNBQVM7UUFDVCxvQ0FBb0M7UUFDcEMsb0NBQW9DLGFBR3BDLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxhQUFhO1FBQ2IsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2Ysc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2QixvQkFBb0IsYUFFWix1QkFBdUI7c0lBRXRCLG9CQUFvQixZQXJCdEI7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2QsYUFBYTtZQUNiLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLHNCQUFzQjtZQUN0QixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsb0JBQW9CO1NBQ3JCOzRGQUdVLG9CQUFvQjtrQkE3QmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixTQUFTO3dCQUNULG9DQUFvQzt3QkFDcEMsb0NBQW9DO3FCQUNyQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge1xuICBUdWlQcmV2aWV3QWN0aW9uTW9kdWxlLFxuICBUdWlQcmV2aWV3TW9kdWxlXG59IGZyb20gXCJAdGFpZ2EtdWkvYWRkb24tcHJldmlld1wiO1xuaW1wb3J0IHtcbiAgVHVpQnV0dG9uTW9kdWxlLFxuICBUdWlEaWFsb2dNb2R1bGUsXG4gIFR1aUxhYmVsTW9kdWxlLFxuICBUdWlTdmdNb2R1bGVcbn0gZnJvbSBcIkB0YWlnYS11aS9jb3JlXCI7XG5pbXBvcnQgeyBUdWlQdXNoTW9kdWxlIH0gZnJvbSBcIkB0YWlnYS11aS9raXRcIjtcbmltcG9ydCB7IEt3aWtJRENhbWVyYU1vZHVsZSwgS3dpa1VJSW5wdXRDYW1lcmFNb2R1bGUgfSBmcm9tIFwia3dpa2lkLWNhbWVyYVwiO1xuaW1wb3J0IHtcbiAgS3dpa1VJSW5wdXRFbWFpbE1vZHVsZSxcbiAgS3dpa1VJSW5wdXRNYXNrZWRNb2R1bGUsXG4gIEt3aWtVSUlucHV0TWljTW9kdWxlLFxuICBLd2lrVUlNb2R1bGUsXG4gIEt3aWtVSVBpcGVNb2R1bGVcbn0gZnJvbSBcImt3aWt1aVwiO1xuaW1wb3J0IHsgVGltZXJQaXBlIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9waXBlcy90aW1lci1mb3JtYXR0ZXIucGlwZVwiO1xuaW1wb3J0IHsgS3dpa0lERm9ybVZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdHlsZVNhbml0aXplclBpcGUgfSBmcm9tIFwiLi9oZWxwZXJzL3N0eWxlcy1zYW5pdGl6ZXIucGlwZVwiO1xuaW1wb3J0IHsgRmlsdGVySW1hZ2VVcmxPckJhc2U2NEZyb21PYmplY3RQaXBlIH0gZnJvbSBcIi4vcGlwZXMvZmlsdGVyLWltYWdlLXVybC1vci1iYXNlNjQtZnJvbS1vYmplY3QucGlwZVwiO1xuaW1wb3J0IHsgRmlsdGVyVmlkZW9VcmxPckJhc2U2NEZyb21PYmplY3RQaXBlIH0gZnJvbSBcIi4vcGlwZXMvZmlsdGVyLXZpZGVvLXVybC1vci1iYXNlNjQtZnJvbS1vYmplY3QucGlwZVwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBLd2lrSURGb3JtVmlld0NvbXBvbmVudCxcbiAgICBTdHlsZVNhbml0aXplclBpcGUsXG4gICAgVGltZXJQaXBlLFxuICAgIEZpbHRlckltYWdlVXJsT3JCYXNlNjRGcm9tT2JqZWN0UGlwZSxcbiAgICBGaWx0ZXJWaWRlb1VybE9yQmFzZTY0RnJvbU9iamVjdFBpcGVcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFR1aUxhYmVsTW9kdWxlLFxuICAgIFR1aVB1c2hNb2R1bGUsXG4gICAgVHVpU3ZnTW9kdWxlLFxuICAgIFR1aVByZXZpZXdNb2R1bGUsXG4gICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgIFR1aVByZXZpZXdBY3Rpb25Nb2R1bGUsXG4gICAgVHVpRGlhbG9nTW9kdWxlLFxuICAgIEt3aWtVSVBpcGVNb2R1bGUsXG4gICAgS3dpa1VJTW9kdWxlLFxuICAgIEt3aWtJRENhbWVyYU1vZHVsZSxcbiAgICBLd2lrVUlJbnB1dENhbWVyYU1vZHVsZSxcbiAgICBLd2lrVUlJbnB1dEVtYWlsTW9kdWxlLFxuICAgIEt3aWtVSUlucHV0TWFza2VkTW9kdWxlLFxuICAgIEt3aWtVSUlucHV0TWljTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtLd2lrSURGb3JtVmlld0NvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgS3dpa0lERm9ybVZpZXdNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { checkObjectKeyExists, isEmptyValue, isNotEmptyValue } from "kwikid-toolkit";
|
|
2
|
+
import { EFieldType } from "../definitions/form-view.fields.definition";
|
|
3
|
+
/**
|
|
4
|
+
* Collects each endpoint's response.value under its apiKey.
|
|
5
|
+
* Used by API_CALL_MULTIPLE_END so form storage keeps
|
|
6
|
+
* { nsdl: {...}, dedupe: {...} } instead of a blank control value.
|
|
7
|
+
*/
|
|
8
|
+
export const collectMultipleApiCallResponses = (endpoints = []) => {
|
|
9
|
+
const multipleApiCallResponses = {};
|
|
10
|
+
endpoints.forEach((api) => {
|
|
11
|
+
if ((api === null || api === void 0 ? void 0 : api.apiKey) &&
|
|
12
|
+
api.response &&
|
|
13
|
+
checkObjectKeyExists(api.response, "value")) {
|
|
14
|
+
multipleApiCallResponses[api.apiKey] = api.response.value;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return multipleApiCallResponses;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Writes the aggregated multi-API result onto the live formData object.
|
|
21
|
+
* Mutates in place so in-flight Action/Source objects that share this
|
|
22
|
+
* FORM_DATA reference still see the stored object after later SET_VALUE.
|
|
23
|
+
*/
|
|
24
|
+
export const applyMultipleApiCallResponsesToFormData = (formData, fieldKey, responses, actionObject) => {
|
|
25
|
+
formData[fieldKey] = responses;
|
|
26
|
+
if ((actionObject === null || actionObject === void 0 ? void 0 : actionObject.FORM_DATA) && actionObject.FORM_DATA !== formData) {
|
|
27
|
+
actionObject.FORM_DATA[fieldKey] = responses;
|
|
28
|
+
}
|
|
29
|
+
return formData;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* API-call buttons keep "" on the FormControl. When saving, prefer the
|
|
33
|
+
* object already stored on this.formData (keyed by each apiKey).
|
|
34
|
+
*/
|
|
35
|
+
export const resolveFormFieldValueForSave = (fieldType, controlValue, storedValue) => {
|
|
36
|
+
const isApiField = fieldType === EFieldType.API || fieldType === EFieldType.API_CALL;
|
|
37
|
+
if (isApiField &&
|
|
38
|
+
isEmptyValue(controlValue) &&
|
|
39
|
+
isNotEmptyValue(storedValue)) {
|
|
40
|
+
return storedValue;
|
|
41
|
+
}
|
|
42
|
+
return isEmptyValue(controlValue) ? "" : controlValue;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* SET_VALUE later in a multi-API chain can hold a stale FORM_DATA snapshot
|
|
46
|
+
* where the api-call field is still "". Do not let that wipe a stored object.
|
|
47
|
+
*/
|
|
48
|
+
export const syncFormDataPreservingApiObjects = (currentFormData, incomingFormData) => {
|
|
49
|
+
if (!incomingFormData || incomingFormData === currentFormData) {
|
|
50
|
+
return currentFormData;
|
|
51
|
+
}
|
|
52
|
+
Object.keys(incomingFormData).forEach((key) => {
|
|
53
|
+
const incomingValue = incomingFormData[key];
|
|
54
|
+
const currentValue = currentFormData[key];
|
|
55
|
+
const wouldWipeStoredObject = isEmptyValue(incomingValue) &&
|
|
56
|
+
isNotEmptyValue(currentValue) &&
|
|
57
|
+
typeof currentValue === "object" &&
|
|
58
|
+
!Array.isArray(currentValue);
|
|
59
|
+
if (!wouldWipeStoredObject) {
|
|
60
|
+
currentFormData[key] = incomingValue;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return currentFormData;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZvcm0tZGF0YS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZm9ybS1kYXRhLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixlQUFlLEVBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXhFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUM3QyxZQUE0QixFQUFFLEVBQ1QsRUFBRTtJQUN2QixNQUFNLHdCQUF3QixHQUF3QixFQUFFLENBQUM7SUFFekQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQWlCLEVBQUUsRUFBRTtRQUN0QyxJQUNFLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU07WUFDWCxHQUFHLENBQUMsUUFBUTtZQUNaLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQzNDO1lBQ0Esd0JBQXdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLHdCQUF3QixDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxDQUNyRCxRQUE2QixFQUM3QixRQUFnQixFQUNoQixTQUE4QixFQUM5QixZQUFrRCxFQUM3QixFQUFFO0lBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUM7SUFFL0IsSUFBSSxDQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxTQUFTLEtBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7UUFDbEUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUM7S0FDOUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUMxQyxTQUFpQixFQUNqQixZQUFpQixFQUNqQixXQUFnQixFQUNYLEVBQUU7SUFDUCxNQUFNLFVBQVUsR0FDZCxTQUFTLEtBQUssVUFBVSxDQUFDLEdBQUcsSUFBSSxTQUFTLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUVwRSxJQUNFLFVBQVU7UUFDVixZQUFZLENBQUMsWUFBWSxDQUFDO1FBQzFCLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFDNUI7UUFDQSxPQUFPLFdBQVcsQ0FBQztLQUNwQjtJQUVELE9BQU8sWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUM5QyxlQUFvQyxFQUNwQyxnQkFBcUMsRUFDaEIsRUFBRTtJQUN2QixJQUFJLENBQUMsZ0JBQWdCLElBQUksZ0JBQWdCLEtBQUssZUFBZSxFQUFFO1FBQzdELE9BQU8sZUFBZSxDQUFDO0tBQ3hCO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQzVDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLHFCQUFxQixHQUN6QixZQUFZLENBQUMsYUFBYSxDQUFDO1lBQzNCLGVBQWUsQ0FBQyxZQUFZLENBQUM7WUFDN0IsT0FBTyxZQUFZLEtBQUssUUFBUTtZQUNoQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzFCLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUM7U0FDdEM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBpc0VtcHR5VmFsdWUsXG4gIGlzTm90RW1wdHlWYWx1ZVxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IFRBcGlFbmRwb2ludCB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9mb3JtLXZpZXcuYXBpcy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBFRmllbGRUeXBlIH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvblwiO1xuXG4vKipcbiAqIENvbGxlY3RzIGVhY2ggZW5kcG9pbnQncyByZXNwb25zZS52YWx1ZSB1bmRlciBpdHMgYXBpS2V5LlxuICogVXNlZCBieSBBUElfQ0FMTF9NVUxUSVBMRV9FTkQgc28gZm9ybSBzdG9yYWdlIGtlZXBzXG4gKiB7IG5zZGw6IHsuLi59LCBkZWR1cGU6IHsuLi59IH0gaW5zdGVhZCBvZiBhIGJsYW5rIGNvbnRyb2wgdmFsdWUuXG4gKi9cbmV4cG9ydCBjb25zdCBjb2xsZWN0TXVsdGlwbGVBcGlDYWxsUmVzcG9uc2VzID0gKFxuICBlbmRwb2ludHM6IFRBcGlFbmRwb2ludFtdID0gW11cbik6IFJlY29yZDxzdHJpbmcsIGFueT4gPT4ge1xuICBjb25zdCBtdWx0aXBsZUFwaUNhbGxSZXNwb25zZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICBlbmRwb2ludHMuZm9yRWFjaCgoYXBpOiBUQXBpRW5kcG9pbnQpID0+IHtcbiAgICBpZiAoXG4gICAgICBhcGk/LmFwaUtleSAmJlxuICAgICAgYXBpLnJlc3BvbnNlICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhhcGkucmVzcG9uc2UsIFwidmFsdWVcIilcbiAgICApIHtcbiAgICAgIG11bHRpcGxlQXBpQ2FsbFJlc3BvbnNlc1thcGkuYXBpS2V5XSA9IGFwaS5yZXNwb25zZS52YWx1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBtdWx0aXBsZUFwaUNhbGxSZXNwb25zZXM7XG59O1xuXG4vKipcbiAqIFdyaXRlcyB0aGUgYWdncmVnYXRlZCBtdWx0aS1BUEkgcmVzdWx0IG9udG8gdGhlIGxpdmUgZm9ybURhdGEgb2JqZWN0LlxuICogTXV0YXRlcyBpbiBwbGFjZSBzbyBpbi1mbGlnaHQgQWN0aW9uL1NvdXJjZSBvYmplY3RzIHRoYXQgc2hhcmUgdGhpc1xuICogRk9STV9EQVRBIHJlZmVyZW5jZSBzdGlsbCBzZWUgdGhlIHN0b3JlZCBvYmplY3QgYWZ0ZXIgbGF0ZXIgU0VUX1ZBTFVFLlxuICovXG5leHBvcnQgY29uc3QgYXBwbHlNdWx0aXBsZUFwaUNhbGxSZXNwb25zZXNUb0Zvcm1EYXRhID0gKFxuICBmb3JtRGF0YTogUmVjb3JkPHN0cmluZywgYW55PixcbiAgZmllbGRLZXk6IHN0cmluZyxcbiAgcmVzcG9uc2VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBhY3Rpb25PYmplY3Q/OiB7IEZPUk1fREFUQT86IFJlY29yZDxzdHJpbmcsIGFueT4gfVxuKTogUmVjb3JkPHN0cmluZywgYW55PiA9PiB7XG4gIGZvcm1EYXRhW2ZpZWxkS2V5XSA9IHJlc3BvbnNlcztcblxuICBpZiAoYWN0aW9uT2JqZWN0Py5GT1JNX0RBVEEgJiYgYWN0aW9uT2JqZWN0LkZPUk1fREFUQSAhPT0gZm9ybURhdGEpIHtcbiAgICBhY3Rpb25PYmplY3QuRk9STV9EQVRBW2ZpZWxkS2V5XSA9IHJlc3BvbnNlcztcbiAgfVxuXG4gIHJldHVybiBmb3JtRGF0YTtcbn07XG5cbi8qKlxuICogQVBJLWNhbGwgYnV0dG9ucyBrZWVwIFwiXCIgb24gdGhlIEZvcm1Db250cm9sLiBXaGVuIHNhdmluZywgcHJlZmVyIHRoZVxuICogb2JqZWN0IGFscmVhZHkgc3RvcmVkIG9uIHRoaXMuZm9ybURhdGEgKGtleWVkIGJ5IGVhY2ggYXBpS2V5KS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVGb3JtRmllbGRWYWx1ZUZvclNhdmUgPSAoXG4gIGZpZWxkVHlwZTogc3RyaW5nLFxuICBjb250cm9sVmFsdWU6IGFueSxcbiAgc3RvcmVkVmFsdWU6IGFueVxuKTogYW55ID0+IHtcbiAgY29uc3QgaXNBcGlGaWVsZCA9XG4gICAgZmllbGRUeXBlID09PSBFRmllbGRUeXBlLkFQSSB8fCBmaWVsZFR5cGUgPT09IEVGaWVsZFR5cGUuQVBJX0NBTEw7XG5cbiAgaWYgKFxuICAgIGlzQXBpRmllbGQgJiZcbiAgICBpc0VtcHR5VmFsdWUoY29udHJvbFZhbHVlKSAmJlxuICAgIGlzTm90RW1wdHlWYWx1ZShzdG9yZWRWYWx1ZSlcbiAgKSB7XG4gICAgcmV0dXJuIHN0b3JlZFZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIGlzRW1wdHlWYWx1ZShjb250cm9sVmFsdWUpID8gXCJcIiA6IGNvbnRyb2xWYWx1ZTtcbn07XG5cbi8qKlxuICogU0VUX1ZBTFVFIGxhdGVyIGluIGEgbXVsdGktQVBJIGNoYWluIGNhbiBob2xkIGEgc3RhbGUgRk9STV9EQVRBIHNuYXBzaG90XG4gKiB3aGVyZSB0aGUgYXBpLWNhbGwgZmllbGQgaXMgc3RpbGwgXCJcIi4gRG8gbm90IGxldCB0aGF0IHdpcGUgYSBzdG9yZWQgb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3Qgc3luY0Zvcm1EYXRhUHJlc2VydmluZ0FwaU9iamVjdHMgPSAoXG4gIGN1cnJlbnRGb3JtRGF0YTogUmVjb3JkPHN0cmluZywgYW55PixcbiAgaW5jb21pbmdGb3JtRGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuKTogUmVjb3JkPHN0cmluZywgYW55PiA9PiB7XG4gIGlmICghaW5jb21pbmdGb3JtRGF0YSB8fCBpbmNvbWluZ0Zvcm1EYXRhID09PSBjdXJyZW50Rm9ybURhdGEpIHtcbiAgICByZXR1cm4gY3VycmVudEZvcm1EYXRhO1xuICB9XG5cbiAgT2JqZWN0LmtleXMoaW5jb21pbmdGb3JtRGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgaW5jb21pbmdWYWx1ZSA9IGluY29taW5nRm9ybURhdGFba2V5XTtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjdXJyZW50Rm9ybURhdGFba2V5XTtcbiAgICBjb25zdCB3b3VsZFdpcGVTdG9yZWRPYmplY3QgPVxuICAgICAgaXNFbXB0eVZhbHVlKGluY29taW5nVmFsdWUpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoY3VycmVudFZhbHVlKSAmJlxuICAgICAgdHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKTtcblxuICAgIGlmICghd291bGRXaXBlU3RvcmVkT2JqZWN0KSB7XG4gICAgICBjdXJyZW50Rm9ybURhdGFba2V5XSA9IGluY29taW5nVmFsdWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gY3VycmVudEZvcm1EYXRhO1xufTtcbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { FormArray, FormGroup, Validators } from "@angular/forms";
|
|
3
3
|
import { PATTERNS, checkObjectKeyExists, hasWhitespacesOnly, isNotEmptyValue, logMethod } from "kwikid-toolkit";
|
|
4
|
+
import { EFieldType } from "../definitions/form-view.fields.definition";
|
|
4
5
|
export function NoWhitespacesValidator() {
|
|
5
6
|
return (control) => {
|
|
6
7
|
const { value } = control;
|
|
@@ -40,7 +41,8 @@ export class FormValidation {
|
|
|
40
41
|
isNotEmptyValue(field.validators.maxLength)) {
|
|
41
42
|
validators.push(Validators.maxLength(field.validators.maxLength));
|
|
42
43
|
}
|
|
43
|
-
if (
|
|
44
|
+
if (field.type !== EFieldType.MASKED &&
|
|
45
|
+
checkObjectKeyExists(field, "validators") &&
|
|
44
46
|
checkObjectKeyExists(field.validators, "pattern") &&
|
|
45
47
|
isNotEmptyValue(field.validators.pattern)) {
|
|
46
48
|
if (checkObjectKeyExists(field.validators.pattern, "key")) {
|
|
@@ -113,4 +115,4 @@ __decorate([
|
|
|
113
115
|
__decorate([
|
|
114
116
|
logMethod
|
|
115
117
|
], FormValidation.prototype, "getFormFieldsInvalidControls", null);
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFHVCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDM0QsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUUxQixJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFFekIsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFdEIsSUFDRSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ3pDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO1lBQzdDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUNyQztZQUNBLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxJQUNFLG9CQUFvQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7WUFDekMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7WUFDN0MsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQ3JDO1lBQ0EsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQ0UsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUMzRCxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7Z0JBQ3hDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO2dCQUNsRCxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUM1QjtZQUNBLFVBQVUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFDRSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ3pDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO1lBQ25ELGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUMzQztZQUNBLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDbkU7UUFDRCxJQUNFLG9CQUFvQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7WUFDekMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUM7WUFDbkQsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQzNDO1lBQ0EsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQ0Usb0JBQW9CLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztZQUN6QyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQztZQUNqRCxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFDekM7WUFDQSxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7b0JBQzdDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUN2RTtxQkFBTTtvQkFDTCxVQUFVLENBQUMsSUFBSSxDQUNiLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzNELENBQUM7aUJBQ0g7YUFDRjtTQUNGO1FBQ0QsSUFDRSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ3pDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLEVBQ3BEO1lBQ0EsVUFBVSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7U0FDM0M7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBR0QsNkJBQTZCLENBQzNCLFNBQW9CO1FBRXBCLE1BQU0sTUFBTSxHQUFzQyxFQUFFLENBQUM7UUFFckQsS0FBSyxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3BDLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QixNQUFNLGFBQWEsR0FBcUIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3ZFLElBQUksYUFBYSxLQUFLLElBQUksSUFBSSxhQUFhLEtBQUssU0FBUyxFQUFFO29CQUN6RCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO3dCQUM5QyxNQUFNLENBQUMsSUFBSSxDQUFDOzRCQUNWLElBQUksRUFBRSxRQUFROzRCQUNkLEtBQUssRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDO3lCQUMvQixDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7YUFDRjtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUdELDRCQUE0QixDQUFDLGlCQUF3QztRQUNuRSxNQUFNLFFBQVEsR0FBVSxFQUFFLENBQUM7UUFFM0IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUEyQixFQUFFLEVBQUU7WUFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtvQkFDbkIsUUFBUSxDQUFDLElBQUksQ0FBQzt3QkFDWixHQUFHLEVBQUUsS0FBSzt3QkFDVixPQUFPLEVBQUUsSUFBSTtxQkFDZCxDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQzt3QkFDWixHQUFHLEVBQUUsS0FBSzt3QkFDVixPQUFPLEVBQUUsS0FBSztxQkFDZixDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO29CQUNoQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ3hCO3FCQUFNLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtvQkFDdkMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUN4QjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFakMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBdEhDO0lBREMsU0FBUzs0REFnRVQ7QUFHRDtJQURDLFNBQVM7bUVBcUJUO0FBR0Q7SUFEQyxTQUFTO2tFQTZCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgUEFUVEVSTlMsXG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBoYXNXaGl0ZXNwYWNlc09ubHksXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgbG9nTWV0aG9kXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gTm9XaGl0ZXNwYWNlc1ZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNvbnRyb2w7XG5cbiAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhc1doaXRlc3BhY2VzT25seSh2YWx1ZSkgPyB7IG9ubHlXaGl0ZXNwYWNlczogdHJ1ZSB9IDogbnVsbDtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1WYWxpZGF0aW9uIHtcbiAgQGxvZ01ldGhvZFxuICBnZXRGb3JtRmllbGRWYWxpZGF0b3JzKGZpZWxkOiBhbnkpIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG5cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1pblwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWluKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGZpZWxkLnZhbGlkYXRvcnMubWluKSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWF4XCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5tYXgpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgoZmllbGQudmFsaWRhdG9ycy5tYXgpKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInJlcXVpcmVkXCIpICYmIGZpZWxkLnJlcXVpcmVkKSB8fFxuICAgICAgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJyZXF1aXJlZFwiKSAmJlxuICAgICAgICBmaWVsZC52YWxpZGF0b3JzLnJlcXVpcmVkKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKE5vV2hpdGVzcGFjZXNWYWxpZGF0b3IoKSk7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWluTGVuZ3RoXCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJtYXhMZW5ndGhcIikgJiZcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aClcbiAgICApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcInBhdHRlcm5cIikgJiZcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm4pXG4gICAgKSB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLCBcImtleVwiKSkge1xuICAgICAgICBpZiAoZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLmtleSA9PT0gXCJDVVNUT01cIikge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLnBhdHRlcm4pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oUEFUVEVSTlNbZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLmtleV0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIndoaXRlc3BhY2VcIilcbiAgICApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChOb1doaXRlc3BhY2VzVmFsaWRhdG9yKCkpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBnZXRGb3JtRmllbGRzVmFsaWRhdGlvbkVycm9ycyhcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cFxuICApOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10ge1xuICAgIGNvbnN0IGVycm9yczogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgIGlmIChpc05vdEVtcHR5VmFsdWUoa2V5KSkge1xuICAgICAgICBjb25zdCBjb250cm9sRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0uZXJyb3JzO1xuICAgICAgICBpZiAoY29udHJvbEVycm9ycyAhPT0gbnVsbCAmJiBjb250cm9sRXJyb3JzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyhjb250cm9sRXJyb3JzKS5mb3JFYWNoKChrZXlFcnJvcikgPT4ge1xuICAgICAgICAgICAgZXJyb3JzLnB1c2goe1xuICAgICAgICAgICAgICBuYW1lOiBrZXlFcnJvcixcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbnRyb2xFcnJvcnNba2V5RXJyb3JdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGdldEZvcm1GaWVsZHNJbnZhbGlkQ29udHJvbHMoZm9ybVRvSW52ZXN0aWdhdGU6IEZvcm1Hcm91cCB8IEZvcm1BcnJheSkge1xuICAgIGNvbnN0IGNvbnRyb2xzOiBhbnlbXSA9IFtdO1xuXG4gICAgY29uc3QgcmVjdXJzaXZlRnVuYyA9IChmb3JtOiBGb3JtR3JvdXAgfCBGb3JtQXJyYXkpID0+IHtcbiAgICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uZ2V0KGZpZWxkKTtcbiAgICAgICAgaWYgKGNvbnRyb2wuaW52YWxpZCkge1xuICAgICAgICAgIGNvbnRyb2xzLnB1c2goe1xuICAgICAgICAgICAga2V5OiBmaWVsZCxcbiAgICAgICAgICAgIGludmFsaWQ6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250cm9scy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogZmllbGQsXG4gICAgICAgICAgICBpbnZhbGlkOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgcmVjdXJzaXZlRnVuYyhjb250cm9sKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgICAgcmVjdXJzaXZlRnVuYyhjb250cm9sKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJlY3Vyc2l2ZUZ1bmMoZm9ybVRvSW52ZXN0aWdhdGUpO1xuXG4gICAgcmV0dXJuIGNvbnRyb2xzO1xuICB9XG59XG4iXX0=
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFHVCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RSxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzNELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFMUIsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sT0FBTyxjQUFjO0lBRXpCLHNCQUFzQixDQUFDLEtBQVU7UUFDL0IsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQ0Usb0JBQW9CLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztZQUN6QyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztZQUM3QyxlQUFlLENBQUMs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STtxQkFDZCxDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQzt3QkFDWixHQUFHLEVBQUUsS0FBSzt3QkFDVixPQUFPLEVBQUUsS0FBSztxQkFDZixDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO29CQUNoQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ3hCO3FCQUFNLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtvQkFDdkMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUN4QjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFakMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBdkhDO0lBREMsU0FBUzs0REFpRVQ7QUFHRDtJQURDLFNBQVM7bUVBcUJUO0FBR0Q7SUFEQyxTQUFTO2tFQTZCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgUEFUVEVSTlMsXG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBoYXNXaGl0ZXNwYWNlc09ubHksXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgbG9nTWV0aG9kXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRUZpZWxkVHlwZSB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9mb3JtLXZpZXcuZmllbGRzLmRlZmluaXRpb25cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIE5vV2hpdGVzcGFjZXNWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBjb250cm9sO1xuXG4gICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBoYXNXaGl0ZXNwYWNlc09ubHkodmFsdWUpID8geyBvbmx5V2hpdGVzcGFjZXM6IHRydWUgfSA6IG51bGw7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdGlvbiB7XG4gIEBsb2dNZXRob2RcbiAgZ2V0Rm9ybUZpZWxkVmFsaWRhdG9ycyhmaWVsZDogYW55KSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJtaW5cIikgJiZcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzLm1pbilcbiAgICApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbihmaWVsZC52YWxpZGF0b3JzLm1pbikpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1heFwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWF4KVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGZpZWxkLnZhbGlkYXRvcnMubWF4KSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJyZXF1aXJlZFwiKSAmJiBmaWVsZC5yZXF1aXJlZCkgfHxcbiAgICAgIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwicmVxdWlyZWRcIikgJiZcbiAgICAgICAgZmllbGQudmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChOb1doaXRlc3BhY2VzVmFsaWRhdG9yKCkpO1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1pbkxlbmd0aFwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoKSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWF4TGVuZ3RoXCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgZmllbGQudHlwZSAhPT0gRUZpZWxkVHlwZS5NQVNLRUQgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwicGF0dGVyblwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybilcbiAgICApIHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm4sIFwia2V5XCIpKSB7XG4gICAgICAgIGlmIChmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm4ua2V5ID09PSBcIkNVU1RPTVwiKSB7XG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm4ucGF0dGVybikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihQQVRURVJOU1tmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm4ua2V5XSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwid2hpdGVzcGFjZVwiKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKE5vV2hpdGVzcGFjZXNWYWxpZGF0b3IoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGdldEZvcm1GaWVsZHNWYWxpZGF0aW9uRXJyb3JzKFxuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwXG4gICk6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gICAgY29uc3QgZXJyb3JzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1Hcm91cC5jb250cm9scykge1xuICAgICAgaWYgKGlzTm90RW1wdHlWYWx1ZShrZXkpKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xFcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSBmb3JtR3JvdXAuY29udHJvbHNba2V5XS5lcnJvcnM7XG4gICAgICAgIGlmIChjb250cm9sRXJyb3JzICE9PSBudWxsICYmIGNvbnRyb2xFcnJvcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xFcnJvcnMpLmZvckVhY2goKGtleUVycm9yKSA9PiB7XG4gICAgICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGtleUVycm9yLFxuICAgICAgICAgICAgICB2YWx1ZTogY29udHJvbEVycm9yc1trZXlFcnJvcl1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZ2V0Rm9ybUZpZWxkc0ludmFsaWRDb250cm9scyhmb3JtVG9JbnZlc3RpZ2F0ZTogRm9ybUdyb3VwIHwgRm9ybUFycmF5KSB7XG4gICAgY29uc3QgY29udHJvbHM6IGFueVtdID0gW107XG5cbiAgICBjb25zdCByZWN1cnNpdmVGdW5jID0gKGZvcm06IEZvcm1Hcm91cCB8IEZvcm1BcnJheSkgPT4ge1xuICAgICAgT2JqZWN0LmtleXMoZm9ybS5jb250cm9scykuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5nZXQoZmllbGQpO1xuICAgICAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XG4gICAgICAgICAgY29udHJvbHMucHVzaCh7XG4gICAgICAgICAgICBrZXk6IGZpZWxkLFxuICAgICAgICAgICAgaW52YWxpZDogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRyb2xzLnB1c2goe1xuICAgICAgICAgICAga2V5OiBmaWVsZCxcbiAgICAgICAgICAgIGludmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgICByZWN1cnNpdmVGdW5jKGNvbnRyb2wpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICAgICByZWN1cnNpdmVGdW5jKGNvbnRyb2wpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmVjdXJzaXZlRnVuYyhmb3JtVG9JbnZlc3RpZ2F0ZSk7XG5cbiAgICByZXR1cm4gY29udHJvbHM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -191,4 +191,4 @@ export function resolveFormsStorageObject(logicalKey, reduxData = {}, config) {
|
|
|
191
191
|
const storageKey = (_b = keyCfg === null || keyCfg === void 0 ? void 0 : keyCfg.key) !== null && _b !== void 0 ? _b : logicalKey;
|
|
192
192
|
return readStorageObject(source, reduxData, storageKey);
|
|
193
193
|
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtc3RvcmFnZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9oZWxwZXJzL2Zvcm1zLXN0b3JhZ2UuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUt2RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxLQUFLLENBQUM7QUFFN0Q7OztHQUdHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixVQUFVO0lBQ1YsYUFBYTtJQUNiLGNBQWM7Q0FDZixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFVLENBQUM7QUFnQzdFLDJGQUEyRjtBQUMzRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBdUI7SUFDOUQsYUFBYSxFQUFFLGNBQWM7SUFDN0IsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtJQUNqQyxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLFFBQVEsRUFBRSxJQUFJO0tBQ2Y7SUFDRCxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFO0NBQzVCLENBQUM7QUFFRixTQUFTLGdCQUFnQixDQUFDLEdBQVc7SUFDbkMsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUU7UUFDdkMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELElBQUk7UUFDRixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEM7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDO0FBRUQs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LE1BQU0sR0FBSSw0QkFBNEIsQ0FBQztJQUM5RCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFeEQsSUFBSSxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJLDBDQUFFLE1BQU0sRUFBRTtRQUN4QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDN0IsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4RCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDekMsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxHQUFHLG1DQUFJLFVBQVUsQ0FBQztJQUM3QyxPQUFPLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrT2JqZWN0S2V5RXhpc3RzLCBpc05vdEVtcHR5VmFsdWUgfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcblxuLyoqIFdoZXJlIGEgY29uZmlndXJlZCBrZXkgc2hvdWxkIGJlIHJlYWQgZnJvbS4gKi9cbmV4cG9ydCB0eXBlIEZvcm1zU3RvcmFnZVNvdXJjZSA9IFwicmVkdXhEYXRhXCIgfCBcImxvY2FsU3RvcmFnZVwiO1xuXG4vKipcbiAqIERlZmF1bHQgd2hlbiB1dGlsaXR5RmxhZ3MuaXNFbGltaW5hdGVCcm93c2VyU3RvcmFnZSBpcyBub3Qgc2V0ICh1bmRlZmluZWQpLlxuICogTGVnYWN5IGhvc3RzIGtlZXAgbG9jYWxTdG9yYWdlOyBzZXQgdGhlIGZsYWcgdG8gdHJ1ZSBmb3IgcmVkdXhEYXRhLW9ubHkgcmVhZHMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPUk1TX0VMSU1JTkFURV9CUk9XU0VSX1NUT1JBR0UgPSBmYWxzZTtcblxuLyoqXG4gKiBSZXNvbHV0aW9uIG9yZGVyIG11c3QgbWF0Y2ggbGVnYWN5IGdldExhbmd1YWdlKCkgKGNvbmZpZy1jb252ZXJ0ZXIuaGVscGVyKTpcbiAqIGxuZyBmaXJzdCwgc2VsZWN0ZWRMYW5nIGxhc3Qg4oCUIGRvIG5vdCByZW9yZGVyIHdpdGhvdXQgYSBicmVha2luZy1jaGFuZ2Ugbm90ZS5cbiAqL1xuY29uc3QgREVGQVVMVF9MQU5HVUFHRV9LRVlTID0gW1xuICBcImxuZ1wiLFxuICBcImxhbmdcIixcbiAgXCJMYW5nXCIsXG4gIFwibGFuZ3VhZ2VcIixcbiAgXCJjdXJyZW50TGFuZ1wiLFxuICBcInNlbGVjdGVkTGFuZ1wiXG5dO1xuXG5jb25zdCBTVEFOREFSRF9MT0dJQ0FMX0tFWVMgPSBbXCJzZXNzaW9uX2lkXCIsIFwibGFuZ3VhZ2VcIiwgXCJmb3JtS2V5XCJdIGFzIGNvbnN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1zU3RvcmFnZUtleUNvbmZpZyB7XG4gIC8qKiBPbWl0IHRvIHVzZSBGb3Jtc1N0b3JhZ2VDb25maWcuZGVmYXVsdFNvdXJjZSAob25lIHNvdXJjZSBwZXIgY2xpZW50KS4gKi9cbiAgc291cmNlPzogRm9ybXNTdG9yYWdlU291cmNlO1xuICAvKiogU3RvcmFnZSBrZXkgKGRlZmF1bHRzIHRvIHRoZSBsb2dpY2FsIGlkIHBhc3NlZCB0byByZXNvbHZlKS4gKi9cbiAga2V5Pzogc3RyaW5nO1xuICAvKiogVHJ5IG11bHRpcGxlIGtleXMgaW4gb3JkZXIgKGUuZy4gbGFuZ3VhZ2UpLiAqL1xuICBrZXlzPzogc3RyaW5nW107XG4gIGZhbGxiYWNrPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEhvc3Qgc3VwcGxpZXMgdmlhIHVzZXJDb25maWcuZm9ybXNTdG9yYWdlLCBvciBkZXJpdmVkIGZyb20gdXRpbGl0eUZsYWdzLlxuICogUGVyLWtleSBgc291cmNlYCBpcyBvcHRpb25hbCDigJQgZmFsbHMgYmFjayB0byBkZWZhdWx0U291cmNlIChzYW1lIGlkZWEgYXMgdG9vbGtpdFxuICogQlJPV1NFUl9TVE9SQUdFOiB7IHR5cGUsIGtleSB9IHdpdGggYSBzaW5nbGUgdHlwZSBmb3IgdGhlIGNsaWVudCkuXG4gKiBFeGFtcGxlIChlbGltaW5hdGUgbW9kZSDigJQgc2V0IHZpYSB1dGlsaXR5RmxhZ3Mgb3IgZGVmYXVsdFNvdXJjZSk6XG4gKiB7XG4gKiAgIFwiZGVmYXVsdFNvdXJjZVwiOiBcInJlZHV4RGF0YVwiLFxuICogICBcInNlc3Npb25faWRcIjogeyBcImtleVwiOiBcInNlc3Npb25faWRcIiB9LFxuICogICBcImxhbmd1YWdlXCI6IHsgXCJrZXlzXCI6IFtcImxuZ1wiLCBcImxhbmdcIiwgXCJzZWxlY3RlZExhbmdcIl0sIFwiZmFsbGJhY2tcIjogXCJlblwiIH0sXG4gKiAgIFwiZm9ybUtleVwiOiB7IFwia2V5XCI6IFwiZm9ybUtleVwiIH1cbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3Jtc1N0b3JhZ2VDb25maWcge1xuICBkZWZhdWx0U291cmNlPzogRm9ybXNTdG9yYWdlU291cmNlO1xuICBzZXNzaW9uX2lkPzogRm9ybXNTdG9yYWdlS2V5Q29uZmlnO1xuICBsYW5ndWFnZT86IEZvcm1zU3RvcmFnZUtleUNvbmZpZztcbiAgZm9ybUtleT86IEZvcm1zU3RvcmFnZUtleUNvbmZpZztcbiAgW2xvZ2ljYWxLZXk6IHN0cmluZ106IEZvcm1zU3RvcmFnZUtleUNvbmZpZyB8IEZvcm1zU3RvcmFnZVNvdXJjZSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIExlZ2FjeSBkZWZhdWx0OiBsb2NhbFN0b3JhZ2UgdW50aWwgaG9zdCBzZXRzIHV0aWxpdHlGbGFncy5pc0VsaW1pbmF0ZUJyb3dzZXJTdG9yYWdlLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9STVNfU1RPUkFHRV9DT05GSUc6IEZvcm1zU3RvcmFnZUNvbmZpZyA9IHtcbiAgZGVmYXVsdFNvdXJjZTogXCJsb2NhbFN0b3JhZ2VcIixcbiAgc2Vzc2lvbl9pZDogeyBrZXk6IFwic2Vzc2lvbl9pZFwiIH0sXG4gIGxhbmd1YWdlOiB7XG4gICAga2V5czogREVGQVVMVF9MQU5HVUFHRV9LRVlTLFxuICAgIGZhbGxiYWNrOiBcImVuXCJcbiAgfSxcbiAgZm9ybUtleTogeyBrZXk6IFwiZm9ybUtleVwiIH1cbn07XG5cbmZ1bmN0aW9uIHJlYWRMb2NhbFN0b3JhZ2Uoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKHR5cGVvZiBsb2NhbFN0b3JhZ2UgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhZFJlZHV4RGF0YVNjYWxhcihcbiAgcmVkdXhEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAga2V5OiBzdHJpbmdcbik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCB2YWx1ZSA9IHJlZHV4RGF0YVtrZXldO1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIHJlYWRSZWR1eERhdGFPYmplY3QoXG4gIHJlZHV4RGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGtleTogc3RyaW5nXG4pOiB1bmtub3duIHtcbiAgY29uc3QgdmFsdWUgPSByZWR1eERhdGFba2V5XTtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRMb2NhbFN0b3JhZ2VPYmplY3Qoa2V5OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgY29uc3QgcmF3ID0gcmVhZExvY2FsU3RvcmFnZShrZXkpO1xuICBpZiAocmF3ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UocmF3KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gcmF3O1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRTdG9yYWdlT2JqZWN0KFxuICBzb3VyY2U6IEZvcm1zU3RvcmFnZVNvdXJjZSxcbiAgcmVkdXhEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAga2V5OiBzdHJpbmdcbik6IHVua25vd24ge1xuICBpZiAoc291cmNlID09PSBcInJlZHV4RGF0YVwiKSB7XG4gICAgcmV0dXJuIHJlYWRSZWR1eERhdGFPYmplY3QocmVkdXhEYXRhLCBrZXkpO1xuICB9XG5cbiAgcmV0dXJuIHJlYWRMb2NhbFN0b3JhZ2VPYmplY3Qoa2V5KTtcbn1cblxuZnVuY3Rpb24gaXNGb3Jtc1N0b3JhZ2VLZXlDb25maWcoZW50cnk6IHVua25vd24pOiBlbnRyeSBpcyBGb3Jtc1N0b3JhZ2VLZXlDb25maWcge1xuICBpZiAoIWVudHJ5IHx8IHR5cGVvZiBlbnRyeSAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGVudHJ5KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZW50cnksIFwic291cmNlXCIpIHx8XG4gICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZW50cnksIFwia2V5XCIpIHx8XG4gICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZW50cnksIFwia2V5c1wiKSB8fFxuICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGVudHJ5LCBcImZhbGxiYWNrXCIpXG4gICk7XG59XG5cbmZ1bmN0aW9uIGtleUNvbmZpZ0ZvcihcbiAgY29uZmlnOiBGb3Jtc1N0b3JhZ2VDb25maWcsXG4gIGxvZ2ljYWxLZXk6IHN0cmluZ1xuKTogRm9ybXNTdG9yYWdlS2V5Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZW50cnkgPSBjb25maWdbbG9naWNhbEtleV07XG4gIGlmIChpc0Zvcm1zU3RvcmFnZUtleUNvbmZpZyhlbnRyeSkpIHtcbiAgICByZXR1cm4gZW50cnk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gc291cmNlRm9yS2V5KFxuICBjb25maWc6IEZvcm1zU3RvcmFnZUNvbmZpZyxcbiAgbG9naWNhbEtleTogc3RyaW5nXG4pOiBGb3Jtc1N0b3JhZ2VTb3VyY2Uge1xuICByZXR1cm4gKFxuICAgIGtleUNvbmZpZ0Zvcihjb25maWcsIGxvZ2ljYWxLZXkpPy5zb3VyY2UgPz9cbiAgICBjb25maWcuZGVmYXVsdFNvdXJjZSA/P1xuICAgIERFRkFVTFRfRk9STVNfU1RPUkFHRV9DT05GSUcuZGVmYXVsdFNvdXJjZSA/P1xuICAgIFwibG9jYWxTdG9yYWdlXCJcbiAgKTtcbn1cblxuLyoqXG4gKiBBcHBseSB1dGlsaXR5RmxhZ3MuaXNFbGltaW5hdGVCcm93c2VyU3RvcmFnZSBhcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aC5cbiAqIFdoZW4gdHJ1ZSDihpIgcmVkdXhEYXRhOyB3aGVuIGZhbHNlL29taXR0ZWQg4oaSIGxvY2FsU3RvcmFnZSAob3ZlcnJpZGVzIGZvcm1zU3RvcmFnZS5kZWZhdWx0U291cmNlKS5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRm9ybXNTdG9yYWdlQ29uZmlnU291cmNlcyhcbiAgY29uZmlnOiBGb3Jtc1N0b3JhZ2VDb25maWcsXG4gIHNvdXJjZTogRm9ybXNTdG9yYWdlU291cmNlXG4pOiBGb3Jtc1N0b3JhZ2VDb25maWcge1xuICBjb25zdCBuZXh0OiBGb3Jtc1N0b3JhZ2VDb25maWcgPSB7XG4gICAgLi4uY29uZmlnLFxuICAgIGRlZmF1bHRTb3VyY2U6IHNvdXJjZVxuICB9O1xuXG4gIGNvbnN0IG1lcmdlU3RhbmRhcmRLZXkgPSAoXG4gICAgbG9naWNhbEtleTogc3RyaW5nLFxuICAgIGJhc2U6IEZvcm1zU3RvcmFnZUtleUNvbmZpZ1xuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IGtleUNvbmZpZ0Zvcihjb25maWcsIGxvZ2ljYWxLZXkpO1xuICAgIG5leHRbbG9naWNhbEtleV0gPSB7XG4gICAgICAuLi5iYXNlLFxuICAgICAgLi4uKGV4aXN0aW5nID8/IHt9KSxcbiAgICAgIHNvdXJjZVxuICAgIH07XG4gIH07XG5cbiAgbWVyZ2VTdGFuZGFyZEtleShcInNlc3Npb25faWRcIiwgeyBrZXk6IFwic2Vzc2lvbl9pZFwiIH0pO1xuICBtZXJnZVN0YW5kYXJkS2V5KFwiZm9ybUtleVwiLCB7IGtleTogXCJmb3JtS2V5XCIgfSk7XG4gIG1lcmdlU3RhbmRhcmRLZXkoXCJsYW5ndWFnZVwiLCB7XG4gICAga2V5czpcbiAgICAgIGtleUNvbmZpZ0Zvcihjb25maWcsIFwibGFuZ3VhZ2VcIik/LmtleXMgPz9cbiAgICAgIERFRkFVTFRfRk9STVNfU1RPUkFHRV9DT05GSUcubGFuZ3VhZ2U/LmtleXMgPz9cbiAgICAgIERFRkFVTFRfTEFOR1VBR0VfS0VZUyxcbiAgICBmYWxsYmFjazoga2V5Q29uZmlnRm9yKGNvbmZpZywgXCJsYW5ndWFnZVwiKT8uZmFsbGJhY2sgPz8gXCJlblwiXG4gIH0pO1xuXG4gIE9iamVjdC5rZXlzKGNvbmZpZykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaWYgKGtleSA9PT0gXCJkZWZhdWx0U291cmNlXCIgfHwgU1RBTkRBUkRfTE9HSUNBTF9LRVlTLmluY2x1ZGVzKGtleSBhcyBhbnkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnkgPSBjb25maWdba2V5XTtcbiAgICBpZiAoaXNGb3Jtc1N0b3JhZ2VLZXlDb25maWcoZW50cnkpKSB7XG4gICAgICBuZXh0W2tleV0gPSB7IC4uLmVudHJ5LCBzb3VyY2UgfTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBuZXh0O1xufVxuXG4vKiogTWVyZ2UgdXNlckNvbmZpZy5mb3Jtc1N0b3JhZ2Ugd2l0aCBkZWZhdWx0czsgbWFwIHV0aWxpdHlGbGFncyB3aGVuIHByZXNlbnQuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUZvcm1zU3RvcmFnZUNvbmZpZyh1c2VyQ29uZmlnPzogYW55KTogRm9ybXNTdG9yYWdlQ29uZmlnIHtcbiAgY29uc3QgZnJvbVVzZXIgPSB1c2VyQ29uZmlnPy5mb3Jtc1N0b3JhZ2U7XG4gIGNvbnN0IGNvbmZpZzogRm9ybXNTdG9yYWdlQ29uZmlnID0ge1xuICAgIC4uLkRFRkFVTFRfRk9STVNfU1RPUkFHRV9DT05GSUcsXG4gICAgLi4uKGZyb21Vc2VyICYmIHR5cGVvZiBmcm9tVXNlciA9PT0gXCJvYmplY3RcIiA/IGZyb21Vc2VyIDoge30pXG4gIH07XG5cbiAgY29uc3QgZWxpbWluYXRlRmxhZyA9IHVzZXJDb25maWc/LnV0aWxpdHlGbGFncz8uaXNFbGltaW5hdGVCcm93c2VyU3RvcmFnZTtcbiAgY29uc3QgZWxpbWluYXRlID1cbiAgICB0eXBlb2YgZWxpbWluYXRlRmxhZyA9PT0gXCJib29sZWFuXCJcbiAgICAgID8gZWxpbWluYXRlRmxhZ1xuICAgICAgOiBERUZBVUxUX0ZPUk1TX0VMSU1JTkFURV9CUk9XU0VSX1NUT1JBR0U7XG5cbiAgY29uc3Qgc291cmNlOiBGb3Jtc1N0b3JhZ2VTb3VyY2UgPSBlbGltaW5hdGUgPyBcInJlZHV4RGF0YVwiIDogXCJsb2NhbFN0b3JhZ2VcIjtcblxuICByZXR1cm4gbm9ybWFsaXplRm9ybXNTdG9yYWdlQ29uZmlnU291cmNlcyhjb25maWcsIHNvdXJjZSk7XG59XG5cbi8qKiBSZXNvbHZlIGEgc3RyaW5nIHZhbHVlIGZvciBhIGxvZ2ljYWwgb3IgZXhwbGljaXQgc3RvcmFnZSBrZXkuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUZvcm1zU3RvcmFnZVN0cmluZyhcbiAgbG9naWNhbEtleTogc3RyaW5nLFxuICByZWR1eERhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30sXG4gIGNvbmZpZz86IEZvcm1zU3RvcmFnZUNvbmZpZ1xuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IHJlc29sdmVkQ29uZmlnID0gY29uZmlnID8/IERFRkFVTFRfRk9STVNfU1RPUkFHRV9DT05GSUc7XG4gIGNvbnN0IGtleUNmZyA9IGtleUNvbmZpZ0ZvcihyZXNvbHZlZENvbmZpZywgbG9naWNhbEtleSk7XG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZUZvcktleShyZXNvbHZlZENvbmZpZywgbG9naWNhbEtleSk7XG5cbiAgaWYgKGtleUNmZz8ua2V5cz8ubGVuZ3RoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5Q2ZnLmtleXMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgc291cmNlID09PSBcInJlZHV4RGF0YVwiXG4gICAgICAgICAgPyByZWFkUmVkdXhEYXRhU2NhbGFyKHJlZHV4RGF0YSwga2V5KVxuICAgICAgICAgIDogcmVhZExvY2FsU3RvcmFnZShrZXkpO1xuICAgICAgaWYgKGlzTm90RW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGFzIHN0cmluZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtleUNmZy5mYWxsYmFjayA/PyBudWxsO1xuICB9XG5cbiAgY29uc3Qgc3RvcmFnZUtleSA9IGtleUNmZz8ua2V5ID8/IGxvZ2ljYWxLZXk7XG4gIGNvbnN0IHZhbHVlID1cbiAgICBzb3VyY2UgPT09IFwicmVkdXhEYXRhXCJcbiAgICAgID8gcmVhZFJlZHV4RGF0YVNjYWxhcihyZWR1eERhdGEsIHN0b3JhZ2VLZXkpXG4gICAgICA6IHJlYWRMb2NhbFN0b3JhZ2Uoc3RvcmFnZUtleSk7XG5cbiAgaWYgKGlzTm90RW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUgYXMgc3RyaW5nO1xuICB9XG5cbiAgcmV0dXJuIGtleUNmZz8uZmFsbGJhY2sgPz8gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgc3RydWN0dXJlZCB2YWx1ZSAoZm9ybSBjb25maWcgYmxvYiwgZU5hY2hGb3JtLCBldGMuKS5cbiAqIFN1cHBvcnRzIHRoZSBzYW1lIGxvZ2ljYWwga2V5IC8ga2V5c1tdIC8ga2V5IGFsaWFzIGNvbmZpZyBhcyByZXNvbHZlRm9ybXNTdG9yYWdlU3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUZvcm1zU3RvcmFnZU9iamVjdChcbiAgbG9naWNhbEtleTogc3RyaW5nLFxuICByZWR1eERhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30sXG4gIGNvbmZpZz86IEZvcm1zU3RvcmFnZUNvbmZpZ1xuKTogYW55IHtcbiAgY29uc3QgcmVzb2x2ZWRDb25maWcgPSBjb25maWcgPz8gREVGQVVMVF9GT1JNU19TVE9SQUdFX0NPTkZJRztcbiAgY29uc3Qga2V5Q2ZnID0ga2V5Q29uZmlnRm9yKHJlc29sdmVkQ29uZmlnLCBsb2dpY2FsS2V5KTtcbiAgY29uc3Qgc291cmNlID0gc291cmNlRm9yS2V5KHJlc29sdmVkQ29uZmlnLCBsb2dpY2FsS2V5KTtcblxuICBpZiAoa2V5Q2ZnPy5rZXlzPy5sZW5ndGgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlDZmcua2V5cykge1xuICAgICAgY29uc3QgdmFsdWUgPSByZWFkU3RvcmFnZU9iamVjdChzb3VyY2UsIHJlZHV4RGF0YSwga2V5KTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHN0b3JhZ2VLZXkgPSBrZXlDZmc/LmtleSA/PyBsb2dpY2FsS2V5O1xuICByZXR1cm4gcmVhZFN0b3JhZ2VPYmplY3Qoc291cmNlLCByZWR1eERhdGEsIHN0b3JhZ2VLZXkpO1xufVxuIl19
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtc3RvcmFnZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9oZWxwZXJzL2Zvcm1zLXN0b3JhZ2UuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUt2RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxLQUFLLENBQUM7QUFFN0Q7OztHQUdHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixVQUFVO0lBQ1YsYUFBYTtJQUNiLGNBQWM7Q0FDZixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFVLENBQUM7QUFtQzdFLDJGQUEyRjtBQUMzRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBdUI7SUFDOUQsYUFBYSxFQUFFLGNBQWM7SUFDN0IsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtJQUNqQyxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLFFBQVEsRUFBRSxJQUFJO0tBQ2Y7SUFDRCxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFO0NBQzVCLENBQUM7QUFFRixTQUFTLGdCQUFnQixDQUFDLEdBQVc7SUFDbkMsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUU7UUFDdkMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELElBQUk7UUFDRixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEM7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDO0FBRUQs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TixNQUFNLEdBQUksNEJBQTRCLENBQUM7SUFDOUQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXhELElBQUksTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSwwQ0FBRSxNQUFNLEVBQUU7UUFDeEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDeEQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ3pDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsR0FBRyxtQ0FBSSxVQUFVLENBQUM7SUFDN0MsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjaGVja09iamVjdEtleUV4aXN0cywgaXNOb3RFbXB0eVZhbHVlIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5cbi8qKiBXaGVyZSBhIGNvbmZpZ3VyZWQga2V5IHNob3VsZCBiZSByZWFkIGZyb20uICovXG5leHBvcnQgdHlwZSBGb3Jtc1N0b3JhZ2VTb3VyY2UgPSBcInJlZHV4RGF0YVwiIHwgXCJsb2NhbFN0b3JhZ2VcIjtcblxuLyoqXG4gKiBEZWZhdWx0IHdoZW4gdXRpbGl0eUZsYWdzLmlzRWxpbWluYXRlQnJvd3NlclN0b3JhZ2UgaXMgbm90IHNldCAodW5kZWZpbmVkKS5cbiAqIExlZ2FjeSBob3N0cyBrZWVwIGxvY2FsU3RvcmFnZTsgc2V0IHRoZSBmbGFnIHRvIHRydWUgZm9yIHJlZHV4RGF0YS1vbmx5IHJlYWRzLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT1JNU19FTElNSU5BVEVfQlJPV1NFUl9TVE9SQUdFID0gZmFsc2U7XG5cbi8qKlxuICogUmVzb2x1dGlvbiBvcmRlciBtdXN0IG1hdGNoIGxlZ2FjeSBnZXRMYW5ndWFnZSgpIChjb25maWctY29udmVydGVyLmhlbHBlcik6XG4gKiBsbmcgZmlyc3QsIHNlbGVjdGVkTGFuZyBsYXN0IOKAlCBkbyBub3QgcmVvcmRlciB3aXRob3V0IGEgYnJlYWtpbmctY2hhbmdlIG5vdGUuXG4gKi9cbmNvbnN0IERFRkFVTFRfTEFOR1VBR0VfS0VZUyA9IFtcbiAgXCJsbmdcIixcbiAgXCJsYW5nXCIsXG4gIFwiTGFuZ1wiLFxuICBcImxhbmd1YWdlXCIsXG4gIFwiY3VycmVudExhbmdcIixcbiAgXCJzZWxlY3RlZExhbmdcIlxuXTtcblxuY29uc3QgU1RBTkRBUkRfTE9HSUNBTF9LRVlTID0gW1wic2Vzc2lvbl9pZFwiLCBcImxhbmd1YWdlXCIsIFwiZm9ybUtleVwiXSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBGb3Jtc1N0b3JhZ2VLZXlDb25maWcge1xuXG4gIC8qKiBPbWl0IHRvIHVzZSBGb3Jtc1N0b3JhZ2VDb25maWcuZGVmYXVsdFNvdXJjZSAob25lIHNvdXJjZSBwZXIgY2xpZW50KS4gKi9cbiAgc291cmNlPzogRm9ybXNTdG9yYWdlU291cmNlO1xuXG4gIC8qKiBTdG9yYWdlIGtleSAoZGVmYXVsdHMgdG8gdGhlIGxvZ2ljYWwgaWQgcGFzc2VkIHRvIHJlc29sdmUpLiAqL1xuICBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqIFRyeSBtdWx0aXBsZSBrZXlzIGluIG9yZGVyIChlLmcuIGxhbmd1YWdlKS4gKi9cbiAga2V5cz86IHN0cmluZ1tdO1xuICBmYWxsYmFjaz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIb3N0IHN1cHBsaWVzIHZpYSB1c2VyQ29uZmlnLmZvcm1zU3RvcmFnZSwgb3IgZGVyaXZlZCBmcm9tIHV0aWxpdHlGbGFncy5cbiAqIFBlci1rZXkgYHNvdXJjZWAgaXMgb3B0aW9uYWwg4oCUIGZhbGxzIGJhY2sgdG8gZGVmYXVsdFNvdXJjZSAoc2FtZSBpZGVhIGFzIHRvb2xraXRcbiAqIEJST1dTRVJfU1RPUkFHRTogeyB0eXBlLCBrZXkgfSB3aXRoIGEgc2luZ2xlIHR5cGUgZm9yIHRoZSBjbGllbnQpLlxuICogRXhhbXBsZSAoZWxpbWluYXRlIG1vZGUg4oCUIHNldCB2aWEgdXRpbGl0eUZsYWdzIG9yIGRlZmF1bHRTb3VyY2UpOlxuICoge1xuICogICBcImRlZmF1bHRTb3VyY2VcIjogXCJyZWR1eERhdGFcIixcbiAqICAgXCJzZXNzaW9uX2lkXCI6IHsgXCJrZXlcIjogXCJzZXNzaW9uX2lkXCIgfSxcbiAqICAgXCJsYW5ndWFnZVwiOiB7IFwia2V5c1wiOiBbXCJsbmdcIiwgXCJsYW5nXCIsIFwic2VsZWN0ZWRMYW5nXCJdLCBcImZhbGxiYWNrXCI6IFwiZW5cIiB9LFxuICogICBcImZvcm1LZXlcIjogeyBcImtleVwiOiBcImZvcm1LZXlcIiB9XG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybXNTdG9yYWdlQ29uZmlnIHtcbiAgZGVmYXVsdFNvdXJjZT86IEZvcm1zU3RvcmFnZVNvdXJjZTtcbiAgc2Vzc2lvbl9pZD86IEZvcm1zU3RvcmFnZUtleUNvbmZpZztcbiAgbGFuZ3VhZ2U/OiBGb3Jtc1N0b3JhZ2VLZXlDb25maWc7XG4gIGZvcm1LZXk/OiBGb3Jtc1N0b3JhZ2VLZXlDb25maWc7XG4gIFtsb2dpY2FsS2V5OiBzdHJpbmddOiBGb3Jtc1N0b3JhZ2VLZXlDb25maWcgfCBGb3Jtc1N0b3JhZ2VTb3VyY2UgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBMZWdhY3kgZGVmYXVsdDogbG9jYWxTdG9yYWdlIHVudGlsIGhvc3Qgc2V0cyB1dGlsaXR5RmxhZ3MuaXNFbGltaW5hdGVCcm93c2VyU3RvcmFnZS4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPUk1TX1NUT1JBR0VfQ09ORklHOiBGb3Jtc1N0b3JhZ2VDb25maWcgPSB7XG4gIGRlZmF1bHRTb3VyY2U6IFwibG9jYWxTdG9yYWdlXCIsXG4gIHNlc3Npb25faWQ6IHsga2V5OiBcInNlc3Npb25faWRcIiB9LFxuICBsYW5ndWFnZToge1xuICAgIGtleXM6IERFRkFVTFRfTEFOR1VBR0VfS0VZUyxcbiAgICBmYWxsYmFjazogXCJlblwiXG4gIH0sXG4gIGZvcm1LZXk6IHsga2V5OiBcImZvcm1LZXlcIiB9XG59O1xuXG5mdW5jdGlvbiByZWFkTG9jYWxTdG9yYWdlKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgbG9jYWxTdG9yYWdlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRSZWR1eERhdGFTY2FsYXIoXG4gIHJlZHV4RGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGtleTogc3RyaW5nXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgdmFsdWUgPSByZWR1eERhdGFba2V5XTtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiByZWFkUmVkdXhEYXRhT2JqZWN0KFxuICByZWR1eERhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBrZXk6IHN0cmluZ1xuKTogdW5rbm93biB7XG4gIGNvbnN0IHZhbHVlID0gcmVkdXhEYXRhW2tleV07XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiByZWFkTG9jYWxTdG9yYWdlT2JqZWN0KGtleTogc3RyaW5nKTogdW5rbm93biB7XG4gIGNvbnN0IHJhdyA9IHJlYWRMb2NhbFN0b3JhZ2Uoa2V5KTtcbiAgaWYgKHJhdyA9PT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHJhdyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHJhdztcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkU3RvcmFnZU9iamVjdChcbiAgc291cmNlOiBGb3Jtc1N0b3JhZ2VTb3VyY2UsXG4gIHJlZHV4RGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGtleTogc3RyaW5nXG4pOiB1bmtub3duIHtcbiAgaWYgKHNvdXJjZSA9PT0gXCJyZWR1eERhdGFcIikge1xuICAgIHJldHVybiByZWFkUmVkdXhEYXRhT2JqZWN0KHJlZHV4RGF0YSwga2V5KTtcbiAgfVxuXG4gIHJldHVybiByZWFkTG9jYWxTdG9yYWdlT2JqZWN0KGtleSk7XG59XG5cbmZ1bmN0aW9uIGlzRm9ybXNTdG9yYWdlS2V5Q29uZmlnKFxuICBlbnRyeTogdW5rbm93blxuKTogZW50cnkgaXMgRm9ybXNTdG9yYWdlS2V5Q29uZmlnIHtcbiAgaWYgKCFlbnRyeSB8fCB0eXBlb2YgZW50cnkgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheShlbnRyeSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGVudHJ5LCBcInNvdXJjZVwiKSB8fFxuICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGVudHJ5LCBcImtleVwiKSB8fFxuICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGVudHJ5LCBcImtleXNcIikgfHxcbiAgICBjaGVja09iamVjdEtleUV4aXN0cyhlbnRyeSwgXCJmYWxsYmFja1wiKVxuICApO1xufVxuXG5mdW5jdGlvbiBrZXlDb25maWdGb3IoXG4gIGNvbmZpZzogRm9ybXNTdG9yYWdlQ29uZmlnLFxuICBsb2dpY2FsS2V5OiBzdHJpbmdcbik6IEZvcm1zU3RvcmFnZUtleUNvbmZpZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGVudHJ5ID0gY29uZmlnW2xvZ2ljYWxLZXldO1xuICBpZiAoaXNGb3Jtc1N0b3JhZ2VLZXlDb25maWcoZW50cnkpKSB7XG4gICAgcmV0dXJuIGVudHJ5O1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHNvdXJjZUZvcktleShcbiAgY29uZmlnOiBGb3Jtc1N0b3JhZ2VDb25maWcsXG4gIGxvZ2ljYWxLZXk6IHN0cmluZ1xuKTogRm9ybXNTdG9yYWdlU291cmNlIHtcbiAgcmV0dXJuIChcbiAgICBrZXlDb25maWdGb3IoY29uZmlnLCBsb2dpY2FsS2V5KT8uc291cmNlID8/XG4gICAgY29uZmlnLmRlZmF1bHRTb3VyY2UgPz9cbiAgICBERUZBVUxUX0ZPUk1TX1NUT1JBR0VfQ09ORklHLmRlZmF1bHRTb3VyY2UgPz9cbiAgICBcImxvY2FsU3RvcmFnZVwiXG4gICk7XG59XG5cbi8qKlxuICogQXBwbHkgdXRpbGl0eUZsYWdzLmlzRWxpbWluYXRlQnJvd3NlclN0b3JhZ2UgYXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGguXG4gKiBXaGVuIHRydWUg4oaSIHJlZHV4RGF0YTsgd2hlbiBmYWxzZS9vbWl0dGVkIOKGkiBsb2NhbFN0b3JhZ2UgKG92ZXJyaWRlcyBmb3Jtc1N0b3JhZ2UuZGVmYXVsdFNvdXJjZSkuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUZvcm1zU3RvcmFnZUNvbmZpZ1NvdXJjZXMoXG4gIGNvbmZpZzogRm9ybXNTdG9yYWdlQ29uZmlnLFxuICBzb3VyY2U6IEZvcm1zU3RvcmFnZVNvdXJjZVxuKTogRm9ybXNTdG9yYWdlQ29uZmlnIHtcbiAgY29uc3QgbmV4dDogRm9ybXNTdG9yYWdlQ29uZmlnID0ge1xuICAgIC4uLmNvbmZpZyxcbiAgICBkZWZhdWx0U291cmNlOiBzb3VyY2VcbiAgfTtcblxuICBjb25zdCBtZXJnZVN0YW5kYXJkS2V5ID0gKFxuICAgIGxvZ2ljYWxLZXk6IHN0cmluZyxcbiAgICBiYXNlOiBGb3Jtc1N0b3JhZ2VLZXlDb25maWdcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBrZXlDb25maWdGb3IoY29uZmlnLCBsb2dpY2FsS2V5KTtcbiAgICBuZXh0W2xvZ2ljYWxLZXldID0ge1xuICAgICAgLi4uYmFzZSxcbiAgICAgIC4uLihleGlzdGluZyA/PyB7fSksXG4gICAgICBzb3VyY2VcbiAgICB9O1xuICB9O1xuXG4gIG1lcmdlU3RhbmRhcmRLZXkoXCJzZXNzaW9uX2lkXCIsIHsga2V5OiBcInNlc3Npb25faWRcIiB9KTtcbiAgbWVyZ2VTdGFuZGFyZEtleShcImZvcm1LZXlcIiwgeyBrZXk6IFwiZm9ybUtleVwiIH0pO1xuICBtZXJnZVN0YW5kYXJkS2V5KFwibGFuZ3VhZ2VcIiwge1xuICAgIGtleXM6XG4gICAgICBrZXlDb25maWdGb3IoY29uZmlnLCBcImxhbmd1YWdlXCIpPy5rZXlzID8/XG4gICAgICBERUZBVUxUX0ZPUk1TX1NUT1JBR0VfQ09ORklHLmxhbmd1YWdlPy5rZXlzID8/XG4gICAgICBERUZBVUxUX0xBTkdVQUdFX0tFWVMsXG4gICAgZmFsbGJhY2s6IGtleUNvbmZpZ0Zvcihjb25maWcsIFwibGFuZ3VhZ2VcIik/LmZhbGxiYWNrID8/IFwiZW5cIlxuICB9KTtcblxuICBPYmplY3Qua2V5cyhjb25maWcpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGlmIChrZXkgPT09IFwiZGVmYXVsdFNvdXJjZVwiIHx8IFNUQU5EQVJEX0xPR0lDQUxfS0VZUy5pbmNsdWRlcyhrZXkgYXMgYW55KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJ5ID0gY29uZmlnW2tleV07XG4gICAgaWYgKGlzRm9ybXNTdG9yYWdlS2V5Q29uZmlnKGVudHJ5KSkge1xuICAgICAgbmV4dFtrZXldID0geyAuLi5lbnRyeSwgc291cmNlIH07XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbmV4dDtcbn1cblxuLyoqIE1lcmdlIHVzZXJDb25maWcuZm9ybXNTdG9yYWdlIHdpdGggZGVmYXVsdHM7IG1hcCB1dGlsaXR5RmxhZ3Mgd2hlbiBwcmVzZW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVGb3Jtc1N0b3JhZ2VDb25maWcoXG4gIHVzZXJDb25maWc/OiBhbnlcbik6IEZvcm1zU3RvcmFnZUNvbmZpZyB7XG4gIGNvbnN0IGZyb21Vc2VyID0gdXNlckNvbmZpZz8uZm9ybXNTdG9yYWdlO1xuICBjb25zdCBjb25maWc6IEZvcm1zU3RvcmFnZUNvbmZpZyA9IHtcbiAgICAuLi5ERUZBVUxUX0ZPUk1TX1NUT1JBR0VfQ09ORklHLFxuICAgIC4uLihmcm9tVXNlciAmJiB0eXBlb2YgZnJvbVVzZXIgPT09IFwib2JqZWN0XCIgPyBmcm9tVXNlciA6IHt9KVxuICB9O1xuXG4gIGNvbnN0IGVsaW1pbmF0ZUZsYWcgPSB1c2VyQ29uZmlnPy51dGlsaXR5RmxhZ3M/LmlzRWxpbWluYXRlQnJvd3NlclN0b3JhZ2U7XG4gIGNvbnN0IGVsaW1pbmF0ZSA9XG4gICAgdHlwZW9mIGVsaW1pbmF0ZUZsYWcgPT09IFwiYm9vbGVhblwiXG4gICAgICA/IGVsaW1pbmF0ZUZsYWdcbiAgICAgIDogREVGQVVMVF9GT1JNU19FTElNSU5BVEVfQlJPV1NFUl9TVE9SQUdFO1xuXG4gIGNvbnN0IHNvdXJjZTogRm9ybXNTdG9yYWdlU291cmNlID0gZWxpbWluYXRlID8gXCJyZWR1eERhdGFcIiA6IFwibG9jYWxTdG9yYWdlXCI7XG5cbiAgcmV0dXJuIG5vcm1hbGl6ZUZvcm1zU3RvcmFnZUNvbmZpZ1NvdXJjZXMoY29uZmlnLCBzb3VyY2UpO1xufVxuXG4vKiogUmVzb2x2ZSBhIHN0cmluZyB2YWx1ZSBmb3IgYSBsb2dpY2FsIG9yIGV4cGxpY2l0IHN0b3JhZ2Uga2V5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVGb3Jtc1N0b3JhZ2VTdHJpbmcoXG4gIGxvZ2ljYWxLZXk6IHN0cmluZyxcbiAgcmVkdXhEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICBjb25maWc/OiBGb3Jtc1N0b3JhZ2VDb25maWdcbik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCByZXNvbHZlZENvbmZpZyA9IGNvbmZpZyA/PyBERUZBVUxUX0ZPUk1TX1NUT1JBR0VfQ09ORklHO1xuICBjb25zdCBrZXlDZmcgPSBrZXlDb25maWdGb3IocmVzb2x2ZWRDb25maWcsIGxvZ2ljYWxLZXkpO1xuICBjb25zdCBzb3VyY2UgPSBzb3VyY2VGb3JLZXkocmVzb2x2ZWRDb25maWcsIGxvZ2ljYWxLZXkpO1xuXG4gIGlmIChrZXlDZmc/LmtleXM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleUNmZy5rZXlzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgIHNvdXJjZSA9PT0gXCJyZWR1eERhdGFcIlxuICAgICAgICAgID8gcmVhZFJlZHV4RGF0YVNjYWxhcihyZWR1eERhdGEsIGtleSlcbiAgICAgICAgICA6IHJlYWRMb2NhbFN0b3JhZ2Uoa2V5KTtcbiAgICAgIGlmIChpc05vdEVtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBhcyBzdHJpbmc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBrZXlDZmcuZmFsbGJhY2sgPz8gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHN0b3JhZ2VLZXkgPSBrZXlDZmc/LmtleSA/PyBsb2dpY2FsS2V5O1xuICBjb25zdCB2YWx1ZSA9XG4gICAgc291cmNlID09PSBcInJlZHV4RGF0YVwiXG4gICAgICA/IHJlYWRSZWR1eERhdGFTY2FsYXIocmVkdXhEYXRhLCBzdG9yYWdlS2V5KVxuICAgICAgOiByZWFkTG9jYWxTdG9yYWdlKHN0b3JhZ2VLZXkpO1xuXG4gIGlmIChpc05vdEVtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIHN0cmluZztcbiAgfVxuXG4gIHJldHVybiBrZXlDZmc/LmZhbGxiYWNrID8/IG51bGw7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIHN0cnVjdHVyZWQgdmFsdWUgKGZvcm0gY29uZmlnIGJsb2IsIGVOYWNoRm9ybSwgZXRjLikuXG4gKiBTdXBwb3J0cyB0aGUgc2FtZSBsb2dpY2FsIGtleSAvIGtleXNbXSAvIGtleSBhbGlhcyBjb25maWcgYXMgcmVzb2x2ZUZvcm1zU3RvcmFnZVN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVGb3Jtc1N0b3JhZ2VPYmplY3QoXG4gIGxvZ2ljYWxLZXk6IHN0cmluZyxcbiAgcmVkdXhEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICBjb25maWc/OiBGb3Jtc1N0b3JhZ2VDb25maWdcbik6IGFueSB7XG4gIGNvbnN0IHJlc29sdmVkQ29uZmlnID0gY29uZmlnID8/IERFRkFVTFRfRk9STVNfU1RPUkFHRV9DT05GSUc7XG4gIGNvbnN0IGtleUNmZyA9IGtleUNvbmZpZ0ZvcihyZXNvbHZlZENvbmZpZywgbG9naWNhbEtleSk7XG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZUZvcktleShyZXNvbHZlZENvbmZpZywgbG9naWNhbEtleSk7XG5cbiAgaWYgKGtleUNmZz8ua2V5cz8ubGVuZ3RoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5Q2ZnLmtleXMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcmVhZFN0b3JhZ2VPYmplY3Qoc291cmNlLCByZWR1eERhdGEsIGtleSk7XG4gICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzdG9yYWdlS2V5ID0ga2V5Q2ZnPy5rZXkgPz8gbG9naWNhbEtleTtcbiAgcmV0dXJuIHJlYWRTdG9yYWdlT2JqZWN0KHNvdXJjZSwgcmVkdXhEYXRhLCBzdG9yYWdlS2V5KTtcbn1cbiJdfQ==
|