@tetacom/ng-components 1.0.142 → 1.0.144

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 (38) hide show
  1. package/component/autocomplete/autocomplete/autocomplete.component.d.ts +8 -0
  2. package/component/autocomplete/autocomplete.module.d.ts +8 -0
  3. package/component/autocomplete/public-api.d.ts +2 -0
  4. package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +5 -4
  5. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +13 -10
  6. package/component/property-grid/property-grid/property-grid-item-description.directive.d.ts +9 -0
  7. package/component/property-grid/property-grid/property-grid.component.d.ts +14 -7
  8. package/component/property-grid/property-grid.module.d.ts +15 -18
  9. package/component/property-grid/public-api.d.ts +1 -0
  10. package/component/public-api.d.ts +1 -0
  11. package/esm2020/common/util/position-util.mjs +4 -4
  12. package/esm2020/component/autocomplete/autocomplete/autocomplete.component.mjs +14 -0
  13. package/esm2020/component/autocomplete/autocomplete.module.mjs +24 -0
  14. package/esm2020/component/autocomplete/public-api.mjs +3 -0
  15. package/esm2020/component/input/input/input.component.mjs +3 -3
  16. package/esm2020/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +8 -7
  17. package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +55 -29
  18. package/esm2020/component/property-grid/property-grid/property-grid-item-description.directive.mjs +19 -0
  19. package/esm2020/component/property-grid/property-grid/property-grid.component.mjs +42 -10
  20. package/esm2020/component/property-grid/property-grid.module.mjs +7 -16
  21. package/esm2020/component/property-grid/public-api.mjs +2 -1
  22. package/esm2020/component/public-api.mjs +3 -1
  23. package/esm2020/component/table/table/table.component.mjs +5 -2
  24. package/esm2020/util/forms-util.mjs +24 -9
  25. package/fesm2015/tetacom-ng-components.mjs +178 -103
  26. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  27. package/fesm2020/tetacom-ng-components.mjs +175 -103
  28. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  29. package/package.json +1 -1
  30. package/util/forms-util.d.ts +5 -1
  31. package/component/property-grid/default/date-item-default/date-item-default.component.d.ts +0 -8
  32. package/component/property-grid/default/list-item-default/list-item-default.component.d.ts +0 -8
  33. package/component/property-grid/default/numeric-item-default/numeric-item-default.component.d.ts +0 -8
  34. package/component/property-grid/default/string-item-default/string-item-default.component.d.ts +0 -8
  35. package/esm2020/component/property-grid/default/date-item-default/date-item-default.component.mjs +0 -13
  36. package/esm2020/component/property-grid/default/list-item-default/list-item-default.component.mjs +0 -13
  37. package/esm2020/component/property-grid/default/numeric-item-default/numeric-item-default.component.mjs +0 -13
  38. package/esm2020/component/property-grid/default/string-item-default/string-item-default.component.mjs +0 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tetacom/ng-components",
3
- "version": "1.0.142",
3
+ "version": "1.0.144",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^14.0.0",
@@ -1,5 +1,6 @@
1
- import { AbstractControl, UntypedFormGroup, ValidationErrors } from '@angular/forms';
1
+ import { AbstractControl, NgForm, NgModelGroup, UntypedFormControl, UntypedFormGroup, ValidationErrors } from '@angular/forms';
2
2
  import { TableColumn } from '../component/table/contract/table-column';
3
+ import { Provider } from "@angular/core";
3
4
  export declare class FormsUtil {
4
5
  static validateAllFormFields(formGroup: UntypedFormGroup): void;
5
6
  static controlIsInvalid(formGroup: UntypedFormGroup, controlName: string): boolean;
@@ -7,6 +8,9 @@ export declare class FormsUtil {
7
8
  static matchValuesValidator(matchTo: string): (control: AbstractControl) => ValidationErrors | null;
8
9
  static requiredIf(value: boolean): (control: AbstractControl) => ValidationErrors | null;
9
10
  static initFormFromColumns(columns: TableColumn[], dataItem: any): UntypedFormGroup;
11
+ static initControlFromColumn(column: TableColumn, dataItem: any): UntypedFormControl;
10
12
  static getValidators(column: TableColumn): any[];
11
13
  static validatorNotEmpty(control: AbstractControl): ValidationErrors | null;
14
+ static formProvider: Provider;
15
+ static formFactory(ngForm: NgForm, ngModelGroup: NgModelGroup): NgModelGroup | NgForm;
12
16
  }
@@ -1,8 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class DateItemDefaultComponent implements OnInit {
4
- constructor();
5
- ngOnInit(): void;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<DateItemDefaultComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<DateItemDefaultComponent, "teta-date-item-default", never, {}, {}, never, never, false>;
8
- }
@@ -1,8 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class ListItemDefaultComponent implements OnInit {
4
- constructor();
5
- ngOnInit(): void;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<ListItemDefaultComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<ListItemDefaultComponent, "teta-list-item-default", never, {}, {}, never, never, false>;
8
- }
@@ -1,8 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class NumericItemDefaultComponent implements OnInit {
4
- constructor();
5
- ngOnInit(): void;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<NumericItemDefaultComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<NumericItemDefaultComponent, "teta-numeric-item-default", never, {}, {}, never, never, false>;
8
- }
@@ -1,8 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class StringItemDefaultComponent implements OnInit {
4
- constructor();
5
- ngOnInit(): void;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<StringItemDefaultComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<StringItemDefaultComponent, "teta-string-item-default", never, {}, {}, never, never, false>;
8
- }
@@ -1,13 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class DateItemDefaultComponent {
4
- constructor() { }
5
- ngOnInit() { }
6
- }
7
- DateItemDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DateItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- DateItemDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DateItemDefaultComponent, selector: "teta-date-item-default", ngImport: i0, template: "<p>date-item-default works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DateItemDefaultComponent, decorators: [{
10
- type: Component,
11
- args: [{ selector: 'teta-date-item-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>date-item-default works!</p>\n" }]
12
- }], ctorParameters: function () { return []; } });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pdGVtLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL2RlZmF1bHQvZGF0ZS1pdGVtLWRlZmF1bHQvZGF0ZS1pdGVtLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL2RlZmF1bHQvZGF0ZS1pdGVtLWRlZmF1bHQvZGF0ZS1pdGVtLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBVSxDQUFDOztxSEFIUix3QkFBd0I7eUdBQXhCLHdCQUF3Qiw4RENSckMsbUNBQ0E7MkZET2Esd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWRhdGUtaXRlbS1kZWZhdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtaXRlbS1kZWZhdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1pdGVtLWRlZmF1bHQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGVJdGVtRGVmYXVsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8cD5kYXRlLWl0ZW0tZGVmYXVsdCB3b3JrcyE8L3A+XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ListItemDefaultComponent {
4
- constructor() { }
5
- ngOnInit() { }
6
- }
7
- ListItemDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- ListItemDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ListItemDefaultComponent, selector: "teta-list-item-default", ngImport: i0, template: "<p>list-item-default works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListItemDefaultComponent, decorators: [{
10
- type: Component,
11
- args: [{ selector: 'teta-list-item-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>list-item-default works!</p>\n" }]
12
- }], ctorParameters: function () { return []; } });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL2RlZmF1bHQvbGlzdC1pdGVtLWRlZmF1bHQvbGlzdC1pdGVtLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL2RlZmF1bHQvbGlzdC1pdGVtLWRlZmF1bHQvbGlzdC1pdGVtLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBVSxDQUFDOztxSEFIUix3QkFBd0I7eUdBQXhCLHdCQUF3Qiw4RENSckMsbUNBQ0E7MkZET2Esd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWxpc3QtaXRlbS1kZWZhdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS1kZWZhdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC1pdGVtLWRlZmF1bHQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExpc3RJdGVtRGVmYXVsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8cD5saXN0LWl0ZW0tZGVmYXVsdCB3b3JrcyE8L3A+XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class NumericItemDefaultComponent {
4
- constructor() { }
5
- ngOnInit() { }
6
- }
7
- NumericItemDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: NumericItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- NumericItemDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: NumericItemDefaultComponent, selector: "teta-numeric-item-default", ngImport: i0, template: "<p>numeric-item-default works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: NumericItemDefaultComponent, decorators: [{
10
- type: Component,
11
- args: [{ selector: 'teta-numeric-item-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>numeric-item-default works!</p>\n" }]
12
- }], ctorParameters: function () { return []; } });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1pdGVtLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL2RlZmF1bHQvbnVtZXJpYy1pdGVtLWRlZmF1bHQvbnVtZXJpYy1pdGVtLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL2RlZmF1bHQvbnVtZXJpYy1pdGVtLWRlZmF1bHQvbnVtZXJpYy1pdGVtLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBVSxDQUFDOzt3SEFIUiwyQkFBMkI7NEdBQTNCLDJCQUEyQixpRUNSeEMsc0NBQ0E7MkZET2EsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLW51bWVyaWMtaXRlbS1kZWZhdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWVyaWMtaXRlbS1kZWZhdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtZXJpYy1pdGVtLWRlZmF1bHQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNJdGVtRGVmYXVsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8cD5udW1lcmljLWl0ZW0tZGVmYXVsdCB3b3JrcyE8L3A+XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class StringItemDefaultComponent {
4
- constructor() { }
5
- ngOnInit() { }
6
- }
7
- StringItemDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: StringItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- StringItemDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: StringItemDefaultComponent, selector: "teta-string-item-default", ngImport: i0, template: "<p>string-item-default works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: StringItemDefaultComponent, decorators: [{
10
- type: Component,
11
- args: [{ selector: 'teta-string-item-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>string-item-default works!</p>\n" }]
12
- }], ctorParameters: function () { return []; } });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWl0ZW0tZGVmYXVsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvZGVmYXVsdC9zdHJpbmctaXRlbS1kZWZhdWx0L3N0cmluZy1pdGVtLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL2RlZmF1bHQvc3RyaW5nLWl0ZW0tZGVmYXVsdC9zdHJpbmctaXRlbS1kZWZhdWx0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBUTNFLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzs7dUhBSFIsMEJBQTBCOzJHQUExQiwwQkFBMEIsZ0VDUnZDLHFDQUNBOzJGRE9hLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1zdHJpbmctaXRlbS1kZWZhdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0cmluZy1pdGVtLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHJpbmctaXRlbS1kZWZhdWx0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTdHJpbmdJdGVtRGVmYXVsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8cD5zdHJpbmctaXRlbS1kZWZhdWx0IHdvcmtzITwvcD5cbiJdfQ==