ngx-material-entity 15.1.4 → 15.1.6
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/components/input/input.component.d.ts +32 -12
- package/components/table/default.actions.d.ts +21 -0
- package/components/table/table-data.builder.d.ts +3 -1
- package/components/table/table-data.d.ts +11 -0
- package/components/table/table.component.d.ts +3 -0
- package/decorators/array/array-decorator-internal.data.d.ts +12 -1
- package/decorators/array/array-decorator.data.d.ts +27 -5
- package/encapsulation/js-2-xml.utilities.d.ts +15 -0
- package/encapsulation/jszip.utilities.d.ts +3 -2
- package/encapsulation/lodash.utilities.d.ts +7 -0
- package/esm2020/components/input/input.component.mjs +68 -28
- package/esm2020/components/table/create-dialog/create-entity-dialog.component.mjs +3 -3
- package/esm2020/components/table/default.actions.mjs +65 -0
- package/esm2020/components/table/table-data.builder.mjs +11 -3
- package/esm2020/components/table/table-data.mjs +1 -1
- package/esm2020/components/table/table.component.mjs +34 -3
- package/esm2020/decorators/array/array-decorator-internal.data.mjs +13 -1
- package/esm2020/decorators/array/array-decorator.data.mjs +1 -1
- package/esm2020/encapsulation/js-2-xml.utilities.mjs +18 -0
- package/esm2020/encapsulation/jszip.utilities.mjs +1 -1
- package/esm2020/encapsulation/lodash.utilities.mjs +13 -1
- package/esm2020/public-api.mjs +2 -1
- package/esm2020/services/entity.service.mjs +17 -1
- package/esm2020/utilities/file.utilities.mjs +17 -4
- package/fesm2015/ngx-material-entity.mjs +250 -70
- package/fesm2015/ngx-material-entity.mjs.map +1 -1
- package/fesm2020/ngx-material-entity.mjs +246 -68
- package/fesm2020/ngx-material-entity.mjs.map +1 -1
- package/package.json +3 -2
- package/public-api.d.ts +1 -0
- package/services/entity.service.d.ts +7 -0
- package/utilities/file.utilities.d.ts +7 -0
- package/components/input/add-array-item-dialog-data.builder.d.ts +0 -22
- package/components/input/add-array-item-dialog-data.d.ts +0 -20
- package/esm2020/components/input/add-array-item-dialog-data.builder.mjs +0 -38
- package/esm2020/components/input/add-array-item-dialog-data.mjs +0 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-material-entity",
|
|
3
|
-
"version": "15.1.
|
|
3
|
+
"version": "15.1.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"@angular/material": "15",
|
|
18
18
|
"lodash": "4",
|
|
19
19
|
"reflect-metadata": "^0.1.13",
|
|
20
|
-
"jszip": "^3.10.1"
|
|
20
|
+
"jszip": "^3.10.1",
|
|
21
|
+
"js2xmlparser": "^5.0.0"
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
24
|
"tslib": "^2.4.0"
|
package/public-api.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export * from './components/table/edit-dialog/edit-entity-dialog.module';
|
|
|
20
20
|
export * from './components/table/table-data';
|
|
21
21
|
export * from './components/table/table.component';
|
|
22
22
|
export * from './components/table/table.module';
|
|
23
|
+
export * from './components/table/default.actions';
|
|
23
24
|
export * from './decorators/array/array-decorator.data';
|
|
24
25
|
export * from './decorators/array/array.decorator';
|
|
25
26
|
export * from './decorators/base/decorator-types.enum';
|
|
@@ -58,6 +58,13 @@ export declare abstract class EntityService<EntityType extends BaseEntityType<En
|
|
|
58
58
|
* @returns A Promise of the created entity.
|
|
59
59
|
*/
|
|
60
60
|
create(entity: EntityType): Promise<EntityType>;
|
|
61
|
+
/**
|
|
62
|
+
* Imports everything from the provided json file.
|
|
63
|
+
*
|
|
64
|
+
* @param file - The json file to import from.
|
|
65
|
+
* @returns All entities that have been imported.
|
|
66
|
+
*/
|
|
67
|
+
import(file: File): Promise<EntityType[]>;
|
|
61
68
|
/**
|
|
62
69
|
* Creates the entity with form data when the entity contains files in contrast to creating it with a normal json body.
|
|
63
70
|
* All file values are stored inside their respective property key and their name.
|
|
@@ -38,6 +38,13 @@ export declare abstract class FileUtilities {
|
|
|
38
38
|
* @param fileData - The file data. Needs to contain a blob.
|
|
39
39
|
*/
|
|
40
40
|
static downloadSingleFile(fileData: FileDataWithFile): void;
|
|
41
|
+
/**
|
|
42
|
+
* Downloads a blob.
|
|
43
|
+
*
|
|
44
|
+
* @param blob - The blob to download.
|
|
45
|
+
* @param name - The name of the downloaded file.
|
|
46
|
+
*/
|
|
47
|
+
static downLoadBlob(blob: Blob, name?: string): void;
|
|
41
48
|
/**
|
|
42
49
|
* Downloads multiple files as a zip with the given name.
|
|
43
50
|
*
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { NgModel } from '@angular/forms';
|
|
2
|
-
import { BaseBuilder } from '../../classes/base.builder';
|
|
3
|
-
import { BaseEntityType } from '../../classes/entity.model';
|
|
4
|
-
import { CreateDialogDataInternal } from '../table/create-dialog/create-dialog-data.builder';
|
|
5
|
-
import { AddArrayItemDialogData } from './add-array-item-dialog-data';
|
|
6
|
-
/**
|
|
7
|
-
* The internal AddArrayItemDialogData. Requires all default values the user can leave out.
|
|
8
|
-
*/
|
|
9
|
-
export declare class AddArrayItemDialogDataInternal<EntityType extends BaseEntityType<EntityType>> implements AddArrayItemDialogData<EntityType> {
|
|
10
|
-
entity: EntityType;
|
|
11
|
-
createDialogData: CreateDialogDataInternal;
|
|
12
|
-
getValidationErrorMessage: (model: NgModel) => string;
|
|
13
|
-
constructor(entity: EntityType, createDialogData: CreateDialogDataInternal, getValidationErrorMessage: (model: NgModel) => string);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* The Builder for the AddArrayItemDialogData. Sets default values.
|
|
17
|
-
*/
|
|
18
|
-
export declare class AddArrayItemDialogDataBuilder<EntityType extends BaseEntityType<EntityType>> extends BaseBuilder<AddArrayItemDialogDataInternal<EntityType>, AddArrayItemDialogData<EntityType>> {
|
|
19
|
-
protected readonly defaultGetValidationErrorMessage: (model: NgModel) => string;
|
|
20
|
-
constructor(data: AddArrayItemDialogData<EntityType>, defaultGetValidationErrorMessage: (model: NgModel) => string);
|
|
21
|
-
protected generateBaseData(data: AddArrayItemDialogData<EntityType>): AddArrayItemDialogDataInternal<EntityType>;
|
|
22
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { NgModel } from '@angular/forms';
|
|
2
|
-
import { BaseEntityType } from '../../classes/entity.model';
|
|
3
|
-
import { CreateDialogData } from '../table/table-data';
|
|
4
|
-
/**
|
|
5
|
-
* The configuration options for the dialog that adds items to an array.
|
|
6
|
-
*/
|
|
7
|
-
export interface AddArrayItemDialogData<EntityType extends BaseEntityType<EntityType>> {
|
|
8
|
-
/**
|
|
9
|
-
* An empty entity that is used as the data model.
|
|
10
|
-
*/
|
|
11
|
-
entity: EntityType;
|
|
12
|
-
/**
|
|
13
|
-
* The info of the generic create-dialog.
|
|
14
|
-
*/
|
|
15
|
-
createDialogData?: CreateDialogData;
|
|
16
|
-
/**
|
|
17
|
-
* A custom function to generate the error-message for invalid inputs.
|
|
18
|
-
*/
|
|
19
|
-
getValidationErrorMessage?: (model: NgModel) => string;
|
|
20
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
-
import { Inject } from '@angular/core';
|
|
3
|
-
import { BaseBuilder } from '../../classes/base.builder';
|
|
4
|
-
import { NGX_GET_VALIDATION_ERROR_MESSAGE } from '../get-validation-error-message.function';
|
|
5
|
-
import { CreateDialogDataBuilder } from '../table/create-dialog/create-dialog-data.builder';
|
|
6
|
-
/**
|
|
7
|
-
* The internal AddArrayItemDialogData. Requires all default values the user can leave out.
|
|
8
|
-
*/
|
|
9
|
-
export class AddArrayItemDialogDataInternal {
|
|
10
|
-
constructor(entity, createDialogData, getValidationErrorMessage) {
|
|
11
|
-
this.entity = entity;
|
|
12
|
-
this.createDialogData = createDialogData;
|
|
13
|
-
this.getValidationErrorMessage = getValidationErrorMessage;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* The Builder for the AddArrayItemDialogData. Sets default values.
|
|
18
|
-
*/
|
|
19
|
-
let AddArrayItemDialogDataBuilder = class AddArrayItemDialogDataBuilder extends BaseBuilder {
|
|
20
|
-
constructor(data, defaultGetValidationErrorMessage) {
|
|
21
|
-
super(data);
|
|
22
|
-
this.defaultGetValidationErrorMessage = defaultGetValidationErrorMessage;
|
|
23
|
-
}
|
|
24
|
-
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
25
|
-
generateBaseData(data) {
|
|
26
|
-
const createDialogData = new CreateDialogDataBuilder(data.createDialogData)
|
|
27
|
-
.withDefault('createButtonLabel', 'Add')
|
|
28
|
-
.withDefault('title', 'Add to array')
|
|
29
|
-
.getResult();
|
|
30
|
-
return new AddArrayItemDialogDataInternal(data.entity, createDialogData, data.getValidationErrorMessage ?? this.defaultGetValidationErrorMessage);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
AddArrayItemDialogDataBuilder = __decorate([
|
|
34
|
-
__param(1, Inject(NGX_GET_VALIDATION_ERROR_MESSAGE)),
|
|
35
|
-
__metadata("design:paramtypes", [Object, Function])
|
|
36
|
-
], AddArrayItemDialogDataBuilder);
|
|
37
|
-
export { AddArrayItemDialogDataBuilder };
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWFycmF5LWl0ZW0tZGlhbG9nLWRhdGEuYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYWRkLWFycmF5LWl0ZW0tZGlhbG9nLWRhdGEuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUYsT0FBTyxFQUFFLHVCQUF1QixFQUE0QixNQUFNLG1EQUFtRCxDQUFDO0FBR3RIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDhCQUE4QjtJQVF2QyxZQUNJLE1BQWtCLEVBQ2xCLGdCQUEwQyxFQUMxQyx5QkFBcUQ7UUFFckQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztJQUMvRCxDQUFDO0NBQ0o7QUFFRDs7R0FFRztBQUNJLElBQU0sNkJBQTZCLEdBQW5DLE1BQU0sNkJBQ1QsU0FBUSxXQUEyRjtJQUVuRyxZQUNJLElBQXdDLEVBRXJCLGdDQUE0RDtRQUUvRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFGTyxxQ0FBZ0MsR0FBaEMsZ0NBQWdDLENBQTRCO0lBR25GLENBQUM7SUFFRCwrQ0FBK0M7SUFDckMsZ0JBQWdCLENBQUMsSUFBd0M7UUFDL0QsTUFBTSxnQkFBZ0IsR0FBNkIsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7YUFDaEcsV0FBVyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQzthQUN2QyxXQUFXLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQzthQUNwQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksOEJBQThCLENBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQ1gsZ0JBQWdCLEVBQ2hCLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxJQUFJLENBQUMsZ0NBQWdDLENBQzFFLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQTtBQXZCWSw2QkFBNkI7SUFLakMsV0FBQSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTs7R0FMcEMsNkJBQTZCLENBdUJ6QztTQXZCWSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlQnVpbGRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvYmFzZS5idWlsZGVyJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTkdYX0dFVF9WQUxJREFUSU9OX0VSUk9SX01FU1NBR0UgfSBmcm9tICcuLi9nZXQtdmFsaWRhdGlvbi1lcnJvci1tZXNzYWdlLmZ1bmN0aW9uJztcbmltcG9ydCB7IENyZWF0ZURpYWxvZ0RhdGFCdWlsZGVyLCBDcmVhdGVEaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuLi90YWJsZS9jcmVhdGUtZGlhbG9nL2NyZWF0ZS1kaWFsb2ctZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IEFkZEFycmF5SXRlbURpYWxvZ0RhdGEgfSBmcm9tICcuL2FkZC1hcnJheS1pdGVtLWRpYWxvZy1kYXRhJztcblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgQWRkQXJyYXlJdGVtRGlhbG9nRGF0YS4gUmVxdWlyZXMgYWxsIGRlZmF1bHQgdmFsdWVzIHRoZSB1c2VyIGNhbiBsZWF2ZSBvdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBBZGRBcnJheUl0ZW1EaWFsb2dEYXRhSW50ZXJuYWw8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiBpbXBsZW1lbnRzIEFkZEFycmF5SXRlbURpYWxvZ0RhdGE8RW50aXR5VHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZW50aXR5OiBFbnRpdHlUeXBlO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY3JlYXRlRGlhbG9nRGF0YTogQ3JlYXRlRGlhbG9nRGF0YUludGVybmFsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZTogKG1vZGVsOiBOZ01vZGVsKSA9PiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZW50aXR5OiBFbnRpdHlUeXBlLFxuICAgICAgICBjcmVhdGVEaWFsb2dEYXRhOiBDcmVhdGVEaWFsb2dEYXRhSW50ZXJuYWwsXG4gICAgICAgIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2U6IChtb2RlbDogTmdNb2RlbCkgPT4gc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZW50aXR5ID0gZW50aXR5O1xuICAgICAgICB0aGlzLmNyZWF0ZURpYWxvZ0RhdGEgPSBjcmVhdGVEaWFsb2dEYXRhO1xuICAgICAgICB0aGlzLmdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UgPSBnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgQnVpbGRlciBmb3IgdGhlIEFkZEFycmF5SXRlbURpYWxvZ0RhdGEuIFNldHMgZGVmYXVsdCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBZGRBcnJheUl0ZW1EaWFsb2dEYXRhQnVpbGRlcjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBCYXNlQnVpbGRlcjxBZGRBcnJheUl0ZW1EaWFsb2dEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4sIEFkZEFycmF5SXRlbURpYWxvZ0RhdGE8RW50aXR5VHlwZT4+IHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBkYXRhOiBBZGRBcnJheUl0ZW1EaWFsb2dEYXRhPEVudGl0eVR5cGU+LFxuICAgICAgICBASW5qZWN0KE5HWF9HRVRfVkFMSURBVElPTl9FUlJPUl9NRVNTQUdFKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdEdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2U6IChtb2RlbDogTmdNb2RlbCkgPT4gc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGRhdGEpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlQmFzZURhdGEoZGF0YTogQWRkQXJyYXlJdGVtRGlhbG9nRGF0YTxFbnRpdHlUeXBlPik6IEFkZEFycmF5SXRlbURpYWxvZ0RhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZURpYWxvZ0RhdGE6IENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCA9IG5ldyBDcmVhdGVEaWFsb2dEYXRhQnVpbGRlcihkYXRhLmNyZWF0ZURpYWxvZ0RhdGEpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ2NyZWF0ZUJ1dHRvbkxhYmVsJywgJ0FkZCcpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RpdGxlJywgJ0FkZCB0byBhcnJheScpXG4gICAgICAgICAgICAuZ2V0UmVzdWx0KCk7XG4gICAgICAgIHJldHVybiBuZXcgQWRkQXJyYXlJdGVtRGlhbG9nRGF0YUludGVybmFsKFxuICAgICAgICAgICAgZGF0YS5lbnRpdHksXG4gICAgICAgICAgICBjcmVhdGVEaWFsb2dEYXRhLFxuICAgICAgICAgICAgZGF0YS5nZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlID8/IHRoaXMuZGVmYXVsdEdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2VcbiAgICAgICAgKTtcbiAgICB9XG59Il19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWFycmF5LWl0ZW0tZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FkZC1hcnJheS1pdGVtLWRpYWxvZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBDcmVhdGVEaWFsb2dEYXRhIH0gZnJvbSAnLi4vdGFibGUvdGFibGUtZGF0YSc7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGRpYWxvZyB0aGF0IGFkZHMgaXRlbXMgdG8gYW4gYXJyYXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQXJyYXlJdGVtRGlhbG9nRGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBBbiBlbXB0eSBlbnRpdHkgdGhhdCBpcyB1c2VkIGFzIHRoZSBkYXRhIG1vZGVsLlxuICAgICAqL1xuICAgIGVudGl0eTogRW50aXR5VHlwZSxcbiAgICAvKipcbiAgICAgKiBUaGUgaW5mbyBvZiB0aGUgZ2VuZXJpYyBjcmVhdGUtZGlhbG9nLlxuICAgICAqL1xuICAgIGNyZWF0ZURpYWxvZ0RhdGE/OiBDcmVhdGVEaWFsb2dEYXRhLFxuICAgIC8qKlxuICAgICAqIEEgY3VzdG9tIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIHRoZSBlcnJvci1tZXNzYWdlIGZvciBpbnZhbGlkIGlucHV0cy5cbiAgICAgKi9cbiAgICBnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlPzogKG1vZGVsOiBOZ01vZGVsKSA9PiBzdHJpbmdcbn0iXX0=
|