@eqproject/eqp-attachments 3.0.1 → 3.0.2

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.
Files changed (27) hide show
  1. package/esm2022/lib/directives/eqp-common/dynamic-loader/dynamic-loader.directive.mjs +53 -0
  2. package/esm2022/lib/directives/eqp-common/eqp-common.service.mjs +78 -0
  3. package/esm2022/lib/directives/eqp-common/index.mjs +10 -0
  4. package/esm2022/lib/directives/eqp-common/models/base-field.model.mjs +57 -0
  5. package/esm2022/lib/directives/eqp-common/models/common-enum.model.mjs +8 -0
  6. package/esm2022/lib/directives/eqp-common/models/config-column.model.mjs +116 -0
  7. package/esm2022/lib/directives/eqp-common/models/filterConfig.model.mjs +318 -0
  8. package/esm2022/lib/directives/eqp-common/models/filterField.model.mjs +254 -0
  9. package/esm2022/lib/directives/eqp-common/models/form.model.mjs +168 -0
  10. package/esm2022/lib/directives/eqp-common/models/linqFilterResult.model.mjs +73 -0
  11. package/esm2022/lib/directives/eqp-common/models/tableColumn-field.model.mjs +107 -0
  12. package/esm2022/lib/eqp-attachments.component.mjs +5 -5
  13. package/fesm2022/eqproject-eqp-attachments.mjs +1170 -5
  14. package/fesm2022/eqproject-eqp-attachments.mjs.map +1 -1
  15. package/lib/directives/eqp-common/dynamic-loader/dynamic-loader.directive.d.ts +17 -0
  16. package/lib/directives/eqp-common/eqp-common.service.d.ts +21 -0
  17. package/lib/directives/eqp-common/index.d.ts +9 -0
  18. package/lib/directives/eqp-common/models/base-field.model.d.ts +52 -0
  19. package/lib/directives/eqp-common/models/common-enum.model.d.ts +6 -0
  20. package/lib/directives/eqp-common/models/config-column.model.d.ts +113 -0
  21. package/lib/directives/eqp-common/models/filterConfig.model.d.ts +264 -0
  22. package/lib/directives/eqp-common/models/filterField.model.d.ts +144 -0
  23. package/lib/directives/eqp-common/models/form.model.d.ts +129 -0
  24. package/lib/directives/eqp-common/models/linqFilterResult.model.d.ts +58 -0
  25. package/lib/directives/eqp-common/models/tableColumn-field.model.d.ts +31 -0
  26. package/lib/eqp-attachments.component.d.ts +3 -3
  27. package/package.json +2 -3
@@ -0,0 +1,107 @@
1
+ import { BaseFieldModel, BaseType } from "./base-field.model";
2
+ import { ConfigColumn, TypeColumn } from "./config-column.model";
3
+ export class TableColumnField extends BaseFieldModel {
4
+ type;
5
+ actions;
6
+ booleanValues;
7
+ buttonMenuIcon;
8
+ icons;
9
+ containerStyle;
10
+ isSearchable = true;
11
+ hyperlink;
12
+ image;
13
+ additionalValue;
14
+ externalTemplateSearchFunction;
15
+ isSortable = true;
16
+ isFilterable = true;
17
+ isHidden = false;
18
+ isSticky = false;
19
+ isStickyEnd = false;
20
+ externalTemplate;
21
+ static createTableColumnFields(baseFields) {
22
+ if (Array.isArray(baseFields)) {
23
+ const tableColumnFields = [];
24
+ baseFields.forEach(field => {
25
+ tableColumnFields.push(this.createTableColumnField(field));
26
+ });
27
+ return tableColumnFields;
28
+ }
29
+ else {
30
+ return this.createTableColumnField(baseFields);
31
+ }
32
+ }
33
+ static createTableColumnField(baseField) {
34
+ const tableColumnField = new TableColumnField();
35
+ tableColumnField.key = baseField.key;
36
+ tableColumnField.display = baseField.display;
37
+ tableColumnField.value = baseField.value;
38
+ tableColumnField.enumModel = baseField.enumModel;
39
+ tableColumnField.booleanValues = { true: '<i class="fa fa-check"></i>', false: '<i class="fa fa-close"></i>' }; //DEFAULT
40
+ tableColumnField.styles = baseField.styles != null ? baseField.styles : { minWidth: "250px" }; //DEFAULT
41
+ tableColumnField.type = BaseTypeConverterTable.convertToTypeColumn(baseField.baseType);
42
+ tableColumnField.baseType = null;
43
+ return tableColumnField;
44
+ }
45
+ static createConfigColumns(tableColumnFields) {
46
+ if (Array.isArray(tableColumnFields)) {
47
+ const configColumns = [];
48
+ tableColumnFields.forEach(field => {
49
+ configColumns.push(this.createConfigColumn(field));
50
+ });
51
+ return configColumns;
52
+ }
53
+ else {
54
+ return this.createConfigColumn(tableColumnFields);
55
+ }
56
+ }
57
+ static createConfigColumn(tableColumnField) {
58
+ const configColumn = new ConfigColumn();
59
+ configColumn.key = tableColumnField.key;
60
+ configColumn.display = tableColumnField.display;
61
+ configColumn.value = tableColumnField.value;
62
+ configColumn.enumModel = tableColumnField.enumModel;
63
+ configColumn.booleanValues = tableColumnField.booleanValues;
64
+ configColumn.externalTemplate = tableColumnField.externalTemplate;
65
+ configColumn.type = tableColumnField.type;
66
+ configColumn.isSortable = tableColumnField.isSortable ?? true;
67
+ configColumn.isFilterable = tableColumnField.isFilterable ?? true;
68
+ configColumn.isHidden = tableColumnField.isHidden ?? false;
69
+ configColumn.isSticky = tableColumnField.isSticky ?? false;
70
+ configColumn.isStickyEnd = tableColumnField.isStickyEnd ?? false;
71
+ configColumn.isSearchable = tableColumnField.isSearchable ?? true;
72
+ configColumn.format = tableColumnField.format;
73
+ configColumn.numberPipe = tableColumnField.numberPipe;
74
+ configColumn.currencyPipeCode = tableColumnField.currencyPipeCode;
75
+ configColumn.actions = tableColumnField.actions;
76
+ configColumn.buttonMenuIcon = tableColumnField.buttonMenuIcon;
77
+ configColumn.icons = tableColumnField.icons;
78
+ configColumn.styles = tableColumnField.styles;
79
+ configColumn.containerStyle = tableColumnField.type;
80
+ configColumn.disabled = tableColumnField.disabled;
81
+ configColumn.multilanguagePrefixKey = tableColumnField.multilanguagePrefixKey;
82
+ configColumn.tooltip = tableColumnField.tooltip;
83
+ configColumn.hyperlink = tableColumnField.hyperlink;
84
+ configColumn.image = tableColumnField.image;
85
+ configColumn.additionalValue = tableColumnField.additionalValue;
86
+ return configColumn;
87
+ }
88
+ }
89
+ export class BaseTypeConverterTable {
90
+ static convertToTypeColumn(baseType) {
91
+ switch (baseType) {
92
+ case BaseType.Text:
93
+ return undefined;
94
+ case BaseType.Number:
95
+ return undefined;
96
+ case BaseType.Date:
97
+ return TypeColumn.Date;
98
+ case BaseType.Enum:
99
+ return TypeColumn.Enum;
100
+ case BaseType.Boolean:
101
+ return TypeColumn.Boolean;
102
+ default:
103
+ return undefined;
104
+ }
105
+ }
106
+ }
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVDb2x1bW4tZmllbGQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtYXR0YWNobWVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL2VxcC1jb21tb24vbW9kZWxzL3RhYmxlQ29sdW1uLWZpZWxkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBZ0IsWUFBWSxFQUEwQixVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd2RyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsY0FBYztJQUNsRCxJQUFJLENBQWM7SUFDbEIsT0FBTyxDQUF1QjtJQUM5QixhQUFhLENBQWlCO0lBQzlCLGNBQWMsQ0FBVTtJQUN4QixLQUFLLENBQWU7SUFDcEIsY0FBYyxDQUFxQjtJQUNuQyxZQUFZLEdBQWEsSUFBSSxDQUFDO0lBQzlCLFNBQVMsQ0FBYTtJQUN0QixLQUFLLENBQVM7SUFDZCxlQUFlLENBQVU7SUFDekIsOEJBQThCLENBQXVDO0lBQ3JFLFVBQVUsR0FBYSxJQUFJLENBQUM7SUFDNUIsWUFBWSxHQUFhLElBQUksQ0FBQztJQUM5QixRQUFRLEdBQWEsS0FBSyxDQUFDO0lBQzNCLFFBQVEsR0FBYSxLQUFLLENBQUM7SUFDM0IsV0FBVyxHQUFhLEtBQUssQ0FBQztJQUM5QixnQkFBZ0IsQ0FBb0I7SUFJcEMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLFVBQTZDO1FBQzFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3QixNQUFNLGlCQUFpQixHQUF1QixFQUFFLENBQUM7WUFDakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDekIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxL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QVEsQ0FBQyxJQUFJO2dCQUNoQixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNsQixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDekIsS0FBSyxRQUFRLENBQUMsSUFBSTtnQkFDaEIsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3pCLEtBQUssUUFBUSxDQUFDLE9BQU87Z0JBQ25CLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUM1QjtnQkFDRSxPQUFPLFNBQVMsQ0FBQztTQUNwQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBCYXNlRmllbGRNb2RlbCwgQmFzZVR5cGUsIEJvb2xlYW5WYWx1ZXMgfSBmcm9tIFwiLi9iYXNlLWZpZWxkLm1vZGVsXCI7XHJcbmltcG9ydCB7IENvbmZpZ0FjdGlvbiwgQ29uZmlnQ29sdW1uLCBIeXBlcmxpbmssIEljb24sIEltYWdlLCBUeXBlQ29sdW1uIH0gZnJvbSBcIi4vY29uZmlnLWNvbHVtbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5GaWVsZCBleHRlbmRzIEJhc2VGaWVsZE1vZGVsIHtcclxuICB0eXBlPzogVHlwZUNvbHVtbjtcclxuICBhY3Rpb25zPzogQXJyYXk8Q29uZmlnQWN0aW9uPjtcclxuICBib29sZWFuVmFsdWVzPzogQm9vbGVhblZhbHVlcztcclxuICBidXR0b25NZW51SWNvbj86IHN0cmluZztcclxuICBpY29ucz86IEFycmF5PEljb24+O1xyXG4gIGNvbnRhaW5lclN0eWxlPzogT2JqZWN0IHwgRnVuY3Rpb247XHJcbiAgaXNTZWFyY2hhYmxlPzogYm9vbGVhbiA9IHRydWU7XHJcbiAgaHlwZXJsaW5rPzogSHlwZXJsaW5rO1xyXG4gIGltYWdlPzogSW1hZ2U7XHJcbiAgYWRkaXRpb25hbFZhbHVlPzogc3RyaW5nO1xyXG4gIGV4dGVybmFsVGVtcGxhdGVTZWFyY2hGdW5jdGlvbj86ICgocm93KSA9PiBzdHJpbmcgfCBudW1iZXIpIHwgc3RyaW5nO1xyXG4gIGlzU29ydGFibGU/OiBib29sZWFuID0gdHJ1ZTtcclxuICBpc0ZpbHRlcmFibGU/OiBib29sZWFuID0gdHJ1ZTtcclxuICBpc0hpZGRlbj86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1N0aWNreT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1N0aWNreUVuZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBleHRlcm5hbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgc3RhdGljIGNyZWF0ZVRhYmxlQ29sdW1uRmllbGRzKGJhc2VGaWVsZDogQmFzZUZpZWxkTW9kZWwpOiBUYWJsZUNvbHVtbkZpZWxkO1xyXG4gIHN0YXRpYyBjcmVhdGVUYWJsZUNvbHVtbkZpZWxkcyhiYXNlRmllbGRzOiBCYXNlRmllbGRNb2RlbFtdKTogVGFibGVDb2x1bW5GaWVsZFtdO1xyXG4gIHN0YXRpYyBjcmVhdGVUYWJsZUNvbHVtbkZpZWxkcyhiYXNlRmllbGRzOiBCYXNlRmllbGRNb2RlbCB8IEJhc2VGaWVsZE1vZGVsW10pOiBUYWJsZUNvbHVtbkZpZWxkIHwgVGFibGVDb2x1bW5GaWVsZFtdIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGJhc2VGaWVsZHMpKSB7XHJcbiAgICAgIGNvbnN0IHRhYmxlQ29sdW1uRmllbGRzOiBUYWJsZUNvbHVtbkZpZWxkW10gPSBbXTtcclxuICAgICAgYmFzZUZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICB0YWJsZUNvbHVtbkZpZWxkcy5wdXNoKHRoaXMuY3JlYXRlVGFibGVDb2x1bW5GaWVsZChmaWVsZCkpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRhYmxlQ29sdW1uRmllbGRzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGFibGVDb2x1bW5GaWVsZChiYXNlRmllbGRzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZVRhYmxlQ29sdW1uRmllbGQoYmFzZUZpZWxkOiBCYXNlRmllbGRNb2RlbCk6IFRhYmxlQ29sdW1uRmllbGQge1xyXG4gICAgY29uc3QgdGFibGVDb2x1bW5GaWVsZDogVGFibGVDb2x1bW5GaWVsZCA9IG5ldyBUYWJsZUNvbHVtbkZpZWxkKCk7XHJcbiAgICB0YWJsZUNvbHVtbkZpZWxkLmtleSA9IGJhc2VGaWVsZC5rZXk7XHJcbiAgICB0YWJsZUNvbHVtbkZpZWxkLmRpc3BsYXkgPSBiYXNlRmllbGQuZGlzcGxheTtcclxuICAgIHRhYmxlQ29sdW1uRmllbGQudmFsdWUgPSBiYXNlRmllbGQudmFsdWU7XHJcbiAgICB0YWJsZUNvbHVtbkZpZWxkLmVudW1Nb2RlbCA9IGJhc2VGaWVsZC5lbnVtTW9kZWw7XHJcbiAgICB0YWJsZUNvbHVtbkZpZWxkLmJvb2xlYW5WYWx1ZXMgPSB7IHRydWU6ICc8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPicsIGZhbHNlOiAnPGkgY2xhc3M9XCJmYSBmYS1jbG9zZVwiPjwvaT4nIH07IC8vREVGQVVMVFxyXG4gICAgdGFibGVDb2x1bW5GaWVsZC5zdHlsZXMgPSBiYXNlRmllbGQuc3R5bGVzICE9IG51bGwgPyBiYXNlRmllbGQuc3R5bGVzIDogeyBtaW5XaWR0aDogXCIyNTBweFwiIH07IC8vREVGQVVMVFxyXG4gICAgdGFibGVDb2x1bW5GaWVsZC50eXBlID0gQmFzZVR5cGVDb252ZXJ0ZXJUYWJsZS5jb252ZXJ0VG9UeXBlQ29sdW1uKGJhc2VGaWVsZC5iYXNlVHlwZSk7XHJcbiAgICB0YWJsZUNvbHVtbkZpZWxkLmJhc2VUeXBlID0gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gdGFibGVDb2x1bW5GaWVsZDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVDb25maWdDb2x1bW5zKHRhYmxlQ29sdW1uRmllbGRzOiBUYWJsZUNvbHVtbkZpZWxkKTogQ29uZmlnQ29sdW1uO1xyXG4gIHN0YXRpYyBjcmVhdGVDb25maWdDb2x1bW5zKHRhYmxlQ29sdW1uRmllbGRzOiBUYWJsZUNvbHVtbkZpZWxkW10pOiBDb25maWdDb2x1bW5bXTtcclxuICBzdGF0aWMgY3JlYXRlQ29uZmlnQ29sdW1ucyh0YWJsZUNvbHVtbkZpZWxkczogVGFibGVDb2x1bW5GaWVsZCB8IFRhYmxlQ29sdW1uRmllbGRbXSk6IENvbmZpZ0NvbHVtbiB8IENvbmZpZ0NvbHVtbltdIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRhYmxlQ29sdW1uRmllbGRzKSkge1xyXG4gICAgICBjb25zdCBjb25maWdDb2x1bW5zOiBDb25maWdDb2x1bW5bXSA9IFtdO1xyXG4gICAgICB0YWJsZUNvbHVtbkZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICBjb25maWdDb2x1bW5zLnB1c2godGhpcy5jcmVhdGVDb25maWdDb2x1bW4oZmllbGQpKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBjb25maWdDb2x1bW5zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29uZmlnQ29sdW1uKHRhYmxlQ29sdW1uRmllbGRzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUNvbmZpZ0NvbHVtbih0YWJsZUNvbHVtbkZpZWxkOiBUYWJsZUNvbHVtbkZpZWxkKTogQ29uZmlnQ29sdW1uIHtcclxuICAgIGNvbnN0IGNvbmZpZ0NvbHVtbjogQ29uZmlnQ29sdW1uID0gbmV3IENvbmZpZ0NvbHVtbigpO1xyXG4gICAgY29uZmlnQ29sdW1uLmtleSA9IHRhYmxlQ29sdW1uRmllbGQua2V5O1xyXG4gICAgY29uZmlnQ29sdW1uLmRpc3BsYXkgPSB0YWJsZUNvbHVtbkZpZWxkLmRpc3BsYXk7XHJcbiAgICBjb25maWdDb2x1bW4udmFsdWUgPSB0YWJsZUNvbHVtbkZpZWxkLnZhbHVlO1xyXG4gICAgY29uZmlnQ29sdW1uLmVudW1Nb2RlbCA9IHRhYmxlQ29sdW1uRmllbGQuZW51bU1vZGVsO1xyXG4gICAgY29uZmlnQ29sdW1uLmJvb2xlYW5WYWx1ZXMgPSB0YWJsZUNvbHVtbkZpZWxkLmJvb2xlYW5WYWx1ZXM7XHJcbiAgICBjb25maWdDb2x1bW4uZXh0ZXJuYWxUZW1wbGF0ZSA9IHRhYmxlQ29sdW1uRmllbGQuZXh0ZXJuYWxUZW1wbGF0ZTtcclxuICAgIGNvbmZpZ0NvbHVtbi50eXBlID0gdGFibGVDb2x1bW5GaWVsZC50eXBlO1xyXG4gICAgY29uZmlnQ29sdW1uLmlzU29ydGFibGUgPSB0YWJsZUNvbHVtbkZpZWxkLmlzU29ydGFibGUgPz8gdHJ1ZTtcclxuICAgIGNvbmZpZ0NvbHVtbi5pc0ZpbHRlcmFibGUgPSB0YWJsZUNvbHVtbkZpZWxkLmlzRmlsdGVyYWJsZSA/PyB0cnVlO1xyXG4gICAgY29uZmlnQ29sdW1uLmlzSGlkZGVuID0gdGFibGVDb2x1bW5GaWVsZC5pc0hpZGRlbiA/PyBmYWxzZTtcclxuICAgIGNvbmZpZ0NvbHVtbi5pc1N0aWNreSA9IHRhYmxlQ29sdW1uRmllbGQuaXNTdGlja3kgPz8gZmFsc2U7XHJcbiAgICBjb25maWdDb2x1bW4uaXNTdGlja3lFbmQgPSB0YWJsZUNvbHVtbkZpZWxkLmlzU3RpY2t5RW5kID8/IGZhbHNlO1xyXG4gICAgY29uZmlnQ29sdW1uLmlzU2VhcmNoYWJsZSA9IHRhYmxlQ29sdW1uRmllbGQuaXNTZWFyY2hhYmxlID8/IHRydWU7XHJcbiAgICBjb25maWdDb2x1bW4uZm9ybWF0ID0gdGFibGVDb2x1bW5GaWVsZC5mb3JtYXQ7XHJcbiAgICBjb25maWdDb2x1bW4ubnVtYmVyUGlwZSA9IHRhYmxlQ29sdW1uRmllbGQubnVtYmVyUGlwZTtcclxuICAgIGNvbmZpZ0NvbHVtbi5jdXJyZW5jeVBpcGVDb2RlID0gdGFibGVDb2x1bW5GaWVsZC5jdXJyZW5jeVBpcGVDb2RlO1xyXG4gICAgY29uZmlnQ29sdW1uLmFjdGlvbnMgPSB0YWJsZUNvbHVtbkZpZWxkLmFjdGlvbnM7XHJcbiAgICBjb25maWdDb2x1bW4uYnV0dG9uTWVudUljb24gPSB0YWJsZUNvbHVtbkZpZWxkLmJ1dHRvbk1lbnVJY29uO1xyXG4gICAgY29uZmlnQ29sdW1uLmljb25zID0gdGFibGVDb2x1bW5GaWVsZC5pY29ucztcclxuICAgIGNvbmZpZ0NvbHVtbi5zdHlsZXMgPSB0YWJsZUNvbHVtbkZpZWxkLnN0eWxlcztcclxuICAgIGNvbmZpZ0NvbHVtbi5jb250YWluZXJTdHlsZSA9IHRhYmxlQ29sdW1uRmllbGQudHlwZTtcclxuICAgIGNvbmZpZ0NvbHVtbi5kaXNhYmxlZCA9IHRhYmxlQ29sdW1uRmllbGQuZGlzYWJsZWQ7XHJcbiAgICBjb25maWdDb2x1bW4ubXVsdGlsYW5ndWFnZVByZWZpeEtleSA9IHRhYmxlQ29sdW1uRmllbGQubXVsdGlsYW5ndWFnZVByZWZpeEtleTtcclxuICAgIGNvbmZpZ0NvbHVtbi50b29sdGlwID0gdGFibGVDb2x1bW5GaWVsZC50b29sdGlwO1xyXG4gICAgY29uZmlnQ29sdW1uLmh5cGVybGluayA9IHRhYmxlQ29sdW1uRmllbGQuaHlwZXJsaW5rO1xyXG4gICAgY29uZmlnQ29sdW1uLmltYWdlID0gdGFibGVDb2x1bW5GaWVsZC5pbWFnZTtcclxuICAgIGNvbmZpZ0NvbHVtbi5hZGRpdGlvbmFsVmFsdWUgPSB0YWJsZUNvbHVtbkZpZWxkLmFkZGl0aW9uYWxWYWx1ZTtcclxuXHJcbiAgICByZXR1cm4gY29uZmlnQ29sdW1uO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlVHlwZUNvbnZlcnRlclRhYmxlIHtcclxuICBzdGF0aWMgY29udmVydFRvVHlwZUNvbHVtbihiYXNlVHlwZTogQmFzZVR5cGUpOiBUeXBlQ29sdW1uIHtcclxuICAgIHN3aXRjaCAoYmFzZVR5cGUpIHtcclxuICAgICAgY2FzZSBCYXNlVHlwZS5UZXh0OlxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgIGNhc2UgQmFzZVR5cGUuTnVtYmVyOlxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgIGNhc2UgQmFzZVR5cGUuRGF0ZTpcclxuICAgICAgICByZXR1cm4gVHlwZUNvbHVtbi5EYXRlO1xyXG4gICAgICBjYXNlIEJhc2VUeXBlLkVudW06XHJcbiAgICAgICAgcmV0dXJuIFR5cGVDb2x1bW4uRW51bTtcclxuICAgICAgY2FzZSBCYXNlVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgIHJldHVybiBUeXBlQ29sdW1uLkJvb2xlYW47XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19