@apipass/schemas 0.2.16 → 1.0.7
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/README.md +33 -33
- package/base-schema.component.d.ts +12 -12
- package/{esm2015/apipass-schemas.js → esm2020/apipass-schemas.mjs} +4 -4
- package/esm2020/base-schema.component.mjs +37 -0
- package/esm2020/public-api.mjs +17 -0
- package/esm2020/schema-custom-attributes/schema-custom-attributes.mjs +169 -0
- package/esm2020/schema-fields.service.mjs +80 -0
- package/esm2020/schema-form/schema-array/array-session/array-session.mjs +143 -0
- package/esm2020/schema-form/schema-array/schema-array.mjs +220 -0
- package/esm2020/schema-form/schema-form.mjs +107 -0
- package/esm2020/schema-form/schema-input/field-render/field-render.mjs +69 -0
- package/esm2020/schema-form/schema-input/input-render/boolean-input/boolean-input.component.mjs +46 -0
- package/esm2020/schema-form/schema-input/input-render/input-render.mjs +192 -0
- package/esm2020/schema-form/schema-input/input-render/number-input/number-input.component.mjs +44 -0
- package/esm2020/schema-form/schema-input/schema-input.mjs +96 -0
- package/esm2020/schema-form/schema-object/schema-object.mjs +123 -0
- package/esm2020/schema-form-render.mjs +126 -0
- package/esm2020/schema-form-render.module.mjs +108 -0
- package/esm2020/schema-validation-field.mjs +14 -0
- package/esm2020/struct.utils.mjs +9 -0
- package/esm2020/type-script-compile/type-script-compile.base.mjs +114 -0
- package/fesm2015/apipass-schemas.mjs +1801 -0
- package/fesm2015/apipass-schemas.mjs.map +1 -0
- package/fesm2020/apipass-schemas.mjs +1616 -0
- package/fesm2020/apipass-schemas.mjs.map +1 -0
- package/{apipass-schemas.d.ts → index.d.ts} +5 -5
- package/package.json +32 -19
- package/public-api.d.ts +16 -16
- package/schema-custom-attributes/schema-custom-attributes.d.ts +21 -21
- package/schema-fields.service.d.ts +14 -15
- package/schema-form/schema-array/array-session/array-session.d.ts +19 -19
- package/schema-form/schema-array/schema-array.d.ts +32 -32
- package/schema-form/schema-form.d.ts +31 -31
- package/schema-form/schema-input/field-render/field-render.d.ts +16 -16
- package/schema-form/schema-input/input-render/boolean-input/boolean-input.component.d.ts +15 -15
- package/schema-form/schema-input/input-render/input-render.d.ts +29 -29
- package/schema-form/schema-input/input-render/number-input/number-input.component.d.ts +15 -15
- package/schema-form/schema-input/schema-input.d.ts +19 -19
- package/schema-form/schema-object/schema-object.d.ts +34 -34
- package/schema-form-render.d.ts +31 -31
- package/schema-form-render.module.d.ts +23 -22
- package/schema-validation-field.d.ts +23 -23
- package/struct.utils.d.ts +1 -1
- package/type-script-compile/type-script-compile.base.d.ts +17 -17
- package/assets/css/buttons.scss +0 -118
- package/assets/css/colors.scss +0 -34
- package/assets/css/fonts.scss +0 -24
- package/assets/css/inputs.scss +0 -197
- package/assets/css/pt_sans.scss +0 -144
- package/assets/css/spacing.scss +0 -28
- package/assets/css/texts.scss +0 -18
- package/bundles/apipass-schemas.umd.js +0 -2339
- package/bundles/apipass-schemas.umd.js.map +0 -1
- package/bundles/apipass-schemas.umd.min.js +0 -16
- package/bundles/apipass-schemas.umd.min.js.map +0 -1
- package/esm2015/base-schema.component.js +0 -38
- package/esm2015/public-api.js +0 -17
- package/esm2015/schema-custom-attributes/schema-custom-attributes.js +0 -192
- package/esm2015/schema-fields.service.js +0 -87
- package/esm2015/schema-form/schema-array/array-session/array-session.js +0 -161
- package/esm2015/schema-form/schema-array/schema-array.js +0 -234
- package/esm2015/schema-form/schema-form.js +0 -114
- package/esm2015/schema-form/schema-input/field-render/field-render.js +0 -74
- package/esm2015/schema-form/schema-input/input-render/boolean-input/boolean-input.component.js +0 -50
- package/esm2015/schema-form/schema-input/input-render/input-render.js +0 -199
- package/esm2015/schema-form/schema-input/input-render/number-input/number-input.component.js +0 -48
- package/esm2015/schema-form/schema-input/schema-input.js +0 -111
- package/esm2015/schema-form/schema-object/schema-object.js +0 -134
- package/esm2015/schema-form-render.js +0 -136
- package/esm2015/schema-form-render.module.js +0 -124
- package/esm2015/schema-validation-field.js +0 -15
- package/esm2015/struct.utils.js +0 -9
- package/esm2015/type-script-compile/type-script-compile.base.js +0 -112
- package/fesm2015/apipass-schemas.js +0 -1745
- package/fesm2015/apipass-schemas.js.map +0 -1
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { Injectable, Optional, SkipSelf } from '@angular/core';
|
|
2
|
-
import { FormControl, Validators } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class TypeScriptCompileBase {
|
|
5
|
-
getTranslate(text) {
|
|
6
|
-
return text;
|
|
7
|
-
}
|
|
8
|
-
addItemToFormProperties(formProperties, item, key) {
|
|
9
|
-
this.translateProperties(item);
|
|
10
|
-
if (item.minLength && item.minLength > 0) {
|
|
11
|
-
formProperties[key] = new FormControl([null, [Validators.required]]);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
formProperties[key] = new FormControl([null]);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
compileProperties(input) {
|
|
18
|
-
const compiledProperties = [];
|
|
19
|
-
const formProperties = {};
|
|
20
|
-
let inputData = {};
|
|
21
|
-
const inputToCompile = JSON.parse(JSON.stringify(input));
|
|
22
|
-
this.translateProperties(inputToCompile);
|
|
23
|
-
if (inputToCompile.properties) {
|
|
24
|
-
if (inputToCompile.type === 'array') {
|
|
25
|
-
inputData = [];
|
|
26
|
-
}
|
|
27
|
-
if (inputToCompile.type === 'object') {
|
|
28
|
-
inputData = {};
|
|
29
|
-
}
|
|
30
|
-
inputToCompile.id = 'inputData';
|
|
31
|
-
this.proccessProperties(inputToCompile, formProperties, 'inputData');
|
|
32
|
-
this.translateProperties(inputToCompile);
|
|
33
|
-
compiledProperties.push(inputToCompile);
|
|
34
|
-
}
|
|
35
|
-
else if (inputToCompile.type === 'array') {
|
|
36
|
-
inputToCompile.id = 'inputData';
|
|
37
|
-
inputData = [];
|
|
38
|
-
this.addItemToFormProperties(formProperties, inputToCompile, 'inputData');
|
|
39
|
-
compiledProperties.push(inputToCompile);
|
|
40
|
-
}
|
|
41
|
-
else if (!inputToCompile.type) {
|
|
42
|
-
for (let index = 0; index < Object.keys(inputToCompile).length; index++) {
|
|
43
|
-
const key = Object.keys(inputToCompile)[index];
|
|
44
|
-
const item = inputToCompile[key];
|
|
45
|
-
item.id = key;
|
|
46
|
-
if (item.type === 'array') {
|
|
47
|
-
inputData[item.id] = [];
|
|
48
|
-
}
|
|
49
|
-
if (item.type === 'object') {
|
|
50
|
-
inputData[item.id] = {};
|
|
51
|
-
}
|
|
52
|
-
this.proccessProperties(item, formProperties, key);
|
|
53
|
-
this.translateProperties(item);
|
|
54
|
-
compiledProperties.push(item);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
compiledProperties.sort((a, b) => a.propertyOrder - b.propertyOrder);
|
|
58
|
-
return { compiledProperties, formProperties, inputData };
|
|
59
|
-
}
|
|
60
|
-
translateProperties(input) {
|
|
61
|
-
if (input === null || input === void 0 ? void 0 : input.title) {
|
|
62
|
-
input.title = this.getTranslate(input.title);
|
|
63
|
-
}
|
|
64
|
-
if (input === null || input === void 0 ? void 0 : input.description) {
|
|
65
|
-
input.description = this.getTranslate(input.description);
|
|
66
|
-
}
|
|
67
|
-
if ((input === null || input === void 0 ? void 0 : input.options) instanceof Array) {
|
|
68
|
-
input === null || input === void 0 ? void 0 : input.options.forEach((option) => option.value = this.getTranslate(option.value));
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
proccessProperties(item, formProperties, key) {
|
|
72
|
-
this.translateProperties(item);
|
|
73
|
-
if (this.hasProperties(item)) {
|
|
74
|
-
const arFieldsChild = [];
|
|
75
|
-
for (let indexChild = 0; indexChild < Object.keys(item.properties).length; indexChild++) {
|
|
76
|
-
const keyChild = Object.keys(item.properties)[indexChild];
|
|
77
|
-
const itemChild = item.properties[keyChild];
|
|
78
|
-
itemChild.id = keyChild;
|
|
79
|
-
if (this.hasProperties(itemChild)) {
|
|
80
|
-
this.proccessProperties(itemChild, formProperties, keyChild);
|
|
81
|
-
arFieldsChild.push(itemChild);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
this.addItemToFormProperties(formProperties, itemChild, keyChild);
|
|
85
|
-
arFieldsChild.push(itemChild);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
item.properties = arFieldsChild;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
this.addItemToFormProperties(formProperties, item, key);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
hasProperties(item) {
|
|
95
|
-
return item.type === 'object' || (item.type === 'array' && item.properties);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
TypeScriptCompileBase.ɵfac = function TypeScriptCompileBase_Factory(t) { return new (t || TypeScriptCompileBase)(); };
|
|
99
|
-
TypeScriptCompileBase.ɵprov = i0.ɵɵdefineInjectable({ token: TypeScriptCompileBase, factory: TypeScriptCompileBase.ɵfac, providedIn: 'root' });
|
|
100
|
-
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(TypeScriptCompileBase, [{
|
|
101
|
-
type: Injectable,
|
|
102
|
-
args: [{ providedIn: 'root' }]
|
|
103
|
-
}], null, null); })();
|
|
104
|
-
export function APIPASS_TYPESCRIPT_COMPILE_BASE_PROVIDER_FACTORY(parentIntl) {
|
|
105
|
-
return parentIntl || new TypeScriptCompileBase();
|
|
106
|
-
}
|
|
107
|
-
export const APIPASS_TYPESCRIPT_COMPILE_INTL_PROVIDER = {
|
|
108
|
-
provide: TypeScriptCompileBase,
|
|
109
|
-
deps: [[new Optional(), new SkipSelf(), TypeScriptCompileBase]],
|
|
110
|
-
useFactory: APIPASS_TYPESCRIPT_COMPILE_BASE_PROVIDER_FACTORY,
|
|
111
|
-
};
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zY3JpcHQtY29tcGlsZS5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NoZW1hcy9zcmMvdHlwZS1zY3JpcHQtY29tcGlsZS90eXBlLXNjcmlwdC1jb21waWxlLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3ZELE1BQU0sT0FBTyxxQkFBcUI7SUFFdEIsWUFBWSxDQUFDLElBQVk7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRVMsdUJBQXVCLENBQUMsY0FBbUIsRUFBRSxJQUFTLEVBQUUsR0FBVztRQUMzRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEU7YUFBTTtZQUNMLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBVTtRQUtqQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUM5QixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxTQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFL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QUFDO2lCQUMvQjthQUNGO1lBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVTLGFBQWEsQ0FBQyxJQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUUsQ0FBQzs7MEZBckdVLHFCQUFxQjs2REFBckIscUJBQXFCLFdBQXJCLHFCQUFxQixtQkFEVCxNQUFNO2tEQUNsQixxQkFBcUI7Y0FEakMsVUFBVTtlQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUEwR2hDLE1BQU0sVUFBVSxnREFBZ0QsQ0FBQyxVQUFpQztJQUNoRyxPQUFPLFVBQVUsSUFBSSxJQUFJLHFCQUFxQixFQUFFLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFRO0lBQzNELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUMvRCxVQUFVLEVBQUUsZ0RBQWdEO0NBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRDb21waWxlQmFzZSB7XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zbGF0ZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZEl0ZW1Ub0Zvcm1Qcm9wZXJ0aWVzKGZvcm1Qcm9wZXJ0aWVzOiBhbnksIGl0ZW06IGFueSwga2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVByb3BlcnRpZXMoaXRlbSk7XG4gICAgaWYgKGl0ZW0ubWluTGVuZ3RoICYmIGl0ZW0ubWluTGVuZ3RoID4gMCkge1xuICAgICAgZm9ybVByb3BlcnRpZXNba2V5XSA9IG5ldyBGb3JtQ29udHJvbChbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1Qcm9wZXJ0aWVzW2tleV0gPSBuZXcgRm9ybUNvbnRyb2woW251bGxdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29tcGlsZVByb3BlcnRpZXMoaW5wdXQ6IGFueSk6IHtcbiAgICBjb21waWxlZFByb3BlcnRpZXM6IGFueSxcbiAgICBmb3JtUHJvcGVydGllczogYW55LFxuICAgIGlucHV0RGF0YTogYW55XG4gIH0ge1xuICAgIGNvbnN0IGNvbXBpbGVkUHJvcGVydGllcyA9IFtdO1xuICAgIGNvbnN0IGZvcm1Qcm9wZXJ0aWVzID0ge307XG4gICAgbGV0IGlucHV0RGF0YTogYW55ID0ge307XG4gICAgY29uc3QgaW5wdXRUb0NvbXBpbGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGlucHV0KSk7XG4gICAgdGhpcy50cmFuc2xhdGVQcm9wZXJ0aWVzKGlucHV0VG9Db21waWxlKTtcblxuICAgIGlmIChpbnB1dFRvQ29tcGlsZS5wcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAoaW5wdXRUb0NvbXBpbGUudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgICBpbnB1dERhdGEgPSBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dFRvQ29tcGlsZS50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpbnB1dERhdGEgPSB7fTtcbiAgICAgIH1cbiAgICAgIGlucHV0VG9Db21waWxlLmlkID0gJ2lucHV0RGF0YSc7XG4gICAgICB0aGlzLnByb2NjZXNzUHJvcGVydGllcyhpbnB1dFRvQ29tcGlsZSwgZm9ybVByb3BlcnRpZXMsICdpbnB1dERhdGEnKTtcbiAgICAgIHRoaXMudHJhbnNsYXRlUHJvcGVydGllcyhpbnB1dFRvQ29tcGlsZSk7XG4gICAgICBjb21waWxlZFByb3BlcnRpZXMucHVzaChpbnB1dFRvQ29tcGlsZSk7XG4gICAgfSBlbHNlIGlmIChpbnB1dFRvQ29tcGlsZS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICBpbnB1dFRvQ29tcGlsZS5pZCA9ICdpbnB1dERhdGEnO1xuICAgICAgaW5wdXREYXRhID0gW107XG4gICAgICB0aGlzLmFkZEl0ZW1Ub0Zvcm1Qcm9wZXJ0aWVzKGZvcm1Qcm9wZXJ0aWVzLCBpbnB1dFRvQ29tcGlsZSwgJ2lucHV0RGF0YScpO1xuICAgICAgY29tcGlsZWRQcm9wZXJ0aWVzLnB1c2goaW5wdXRUb0NvbXBpbGUpO1xuICAgIH0gZWxzZSBpZiAoIWlucHV0VG9Db21waWxlLnR5cGUpIHtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBPYmplY3Qua2V5cyhpbnB1dFRvQ29tcGlsZSkubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGlucHV0VG9Db21waWxlKVtpbmRleF07XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpbnB1dFRvQ29tcGlsZVtrZXldO1xuICAgICAgICBpdGVtLmlkID0ga2V5O1xuXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgICBpbnB1dERhdGFbaXRlbS5pZF0gPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgaW5wdXREYXRhW2l0ZW0uaWRdID0ge307XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9jY2Vzc1Byb3BlcnRpZXMoaXRlbSwgZm9ybVByb3BlcnRpZXMsIGtleSk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlUHJvcGVydGllcyhpdGVtKTtcbiAgICAgICAgY29tcGlsZWRQcm9wZXJ0aWVzLnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcGlsZWRQcm9wZXJ0aWVzLnNvcnQoKGEsIGIpID0+IGEucHJvcGVydHlPcmRlciAtIGIucHJvcGVydHlPcmRlcik7XG4gICAgcmV0dXJuIHtjb21waWxlZFByb3BlcnRpZXMsIGZvcm1Qcm9wZXJ0aWVzLCBpbnB1dERhdGF9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVByb3BlcnRpZXMoaW5wdXQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChpbnB1dD8udGl0bGUpIHtcbiAgICAgIGlucHV0LnRpdGxlID0gdGhpcy5nZXRUcmFuc2xhdGUoaW5wdXQudGl0bGUpO1xuICAgIH1cbiAgICBpZiAoaW5wdXQ/LmRlc2NyaXB0aW9uKSB7XG4gICAgICBpbnB1dC5kZXNjcmlwdGlvbiA9IHRoaXMuZ2V0VHJhbnNsYXRlKGlucHV0LmRlc2NyaXB0aW9uKTtcbiAgICB9XG4gICAgaWYgKGlucHV0Py5vcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGlucHV0Py5vcHRpb25zLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiBvcHRpb24udmFsdWUgPSB0aGlzLmdldFRyYW5zbGF0ZShvcHRpb24udmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJvY2Nlc3NQcm9wZXJ0aWVzKGl0ZW06IGFueSwgZm9ybVByb3BlcnRpZXM6IHt9LCBrZXk6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNsYXRlUHJvcGVydGllcyhpdGVtKTtcbiAgICBpZiAodGhpcy5oYXNQcm9wZXJ0aWVzKGl0ZW0pKSB7XG4gICAgICBjb25zdCBhckZpZWxkc0NoaWxkID0gW107XG4gICAgICBmb3IgKGxldCBpbmRleENoaWxkID0gMDsgaW5kZXhDaGlsZCA8IE9iamVjdC5rZXlzKGl0ZW0ucHJvcGVydGllcykubGVuZ3RoOyBpbmRleENoaWxkKyspIHtcbiAgICAgICAgY29uc3Qga2V5Q2hpbGQgPSBPYmplY3Qua2V5cyhpdGVtLnByb3BlcnRpZXMpW2luZGV4Q2hpbGRdO1xuICAgICAgICBjb25zdCBpdGVtQ2hpbGQgPSBpdGVtLnByb3BlcnRpZXNba2V5Q2hpbGRdO1xuICAgICAgICBpdGVtQ2hpbGQuaWQgPSBrZXlDaGlsZDtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydGllcyhpdGVtQ2hpbGQpKSB7XG4gICAgICAgICAgdGhpcy5wcm9jY2Vzc1Byb3BlcnRpZXMoaXRlbUNoaWxkLCBmb3JtUHJvcGVydGllcywga2V5Q2hpbGQpO1xuICAgICAgICAgIGFyRmllbGRzQ2hpbGQucHVzaChpdGVtQ2hpbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWRkSXRlbVRvRm9ybVByb3BlcnRpZXMoZm9ybVByb3BlcnRpZXMsIGl0ZW1DaGlsZCwga2V5Q2hpbGQpO1xuICAgICAgICAgIGFyRmllbGRzQ2hpbGQucHVzaChpdGVtQ2hpbGQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpdGVtLnByb3BlcnRpZXMgPSBhckZpZWxkc0NoaWxkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZEl0ZW1Ub0Zvcm1Qcm9wZXJ0aWVzKGZvcm1Qcm9wZXJ0aWVzLCBpdGVtLCBrZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNQcm9wZXJ0aWVzKGl0ZW06IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gJ29iamVjdCcgfHwgKGl0ZW0udHlwZSA9PT0gJ2FycmF5JyAmJiBpdGVtLnByb3BlcnRpZXMpO1xuICB9XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFQSVBBU1NfVFlQRVNDUklQVF9DT01QSUxFX0JBU0VfUFJPVklERVJfRkFDVE9SWShwYXJlbnRJbnRsOiBUeXBlU2NyaXB0Q29tcGlsZUJhc2UpOiBhbnkge1xuICByZXR1cm4gcGFyZW50SW50bCB8fCBuZXcgVHlwZVNjcmlwdENvbXBpbGVCYXNlKCk7XG59XG5cbmV4cG9ydCBjb25zdCBBUElQQVNTX1RZUEVTQ1JJUFRfQ09NUElMRV9JTlRMX1BST1ZJREVSOiBhbnkgPSB7XG4gIHByb3ZpZGU6IFR5cGVTY3JpcHRDb21waWxlQmFzZSxcbiAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIFR5cGVTY3JpcHRDb21waWxlQmFzZV1dLFxuICB1c2VGYWN0b3J5OiBBUElQQVNTX1RZUEVTQ1JJUFRfQ09NUElMRV9CQVNFX1BST1ZJREVSX0ZBQ1RPUlksXG59O1xuIl19
|