@sumaris-net/ngx-components 2.0.0-rc43 → 2.0.0-rc46
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/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +11 -1
- package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +2 -1
- package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +122 -59
- package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +15 -3
- package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +10 -4
- package/fesm2015/sumaris-net.ngx-components.mjs +180 -103
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
- package/fesm2020/sumaris-net.ngx-components.mjs +178 -98
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/form/text-popover/text-popover.component.d.ts +3 -1
- package/src/app/core/table/entities-table-datasource.class.d.ts +1 -0
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +32 -16
- package/src/app/shared/image/gallery/image-gallery.module.d.ts +6 -4
- package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +1 -0
- package/src/assets/i18n/fr.json +3 -1
- package/src/theme/_ngx-components.scss +3 -3
|
@@ -5,6 +5,8 @@ import { IonicModule } from '@ionic/angular';
|
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import { SharedPipesModule } from '../../pipes/pipes.module';
|
|
7
7
|
import { SharedMaterialModule } from '../../material/material.module';
|
|
8
|
+
import { SharedDirectivesModule } from '../../directives/directives.module';
|
|
9
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
8
10
|
import * as i0 from "@angular/core";
|
|
9
11
|
import * as i1 from "@ngx-translate/core";
|
|
10
12
|
export class ImageGalleryModule {
|
|
@@ -14,23 +16,31 @@ ImageGalleryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
|
|
|
14
16
|
// Components
|
|
15
17
|
AppImageGalleryComponent], imports: [CommonModule,
|
|
16
18
|
IonicModule,
|
|
19
|
+
ReactiveFormsModule,
|
|
17
20
|
SharedMaterialModule,
|
|
18
|
-
SharedPipesModule,
|
|
21
|
+
SharedPipesModule,
|
|
22
|
+
SharedDirectivesModule, i1.TranslateModule], exports: [IonicModule,
|
|
23
|
+
TranslateModule,
|
|
19
24
|
// Components
|
|
20
25
|
AppImageGalleryComponent] });
|
|
21
26
|
ImageGalleryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ImageGalleryModule, imports: [CommonModule,
|
|
22
27
|
IonicModule,
|
|
28
|
+
ReactiveFormsModule,
|
|
23
29
|
SharedMaterialModule,
|
|
24
30
|
SharedPipesModule,
|
|
25
|
-
|
|
31
|
+
SharedDirectivesModule,
|
|
32
|
+
TranslateModule.forChild(), IonicModule,
|
|
33
|
+
TranslateModule] });
|
|
26
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ImageGalleryModule, decorators: [{
|
|
27
35
|
type: NgModule,
|
|
28
36
|
args: [{
|
|
29
37
|
imports: [
|
|
30
38
|
CommonModule,
|
|
31
39
|
IonicModule,
|
|
40
|
+
ReactiveFormsModule,
|
|
32
41
|
SharedMaterialModule,
|
|
33
42
|
SharedPipesModule,
|
|
43
|
+
SharedDirectivesModule,
|
|
34
44
|
TranslateModule.forChild(),
|
|
35
45
|
],
|
|
36
46
|
declarations: [
|
|
@@ -38,9 +48,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
38
48
|
AppImageGalleryComponent
|
|
39
49
|
],
|
|
40
50
|
exports: [
|
|
51
|
+
IonicModule,
|
|
52
|
+
TranslateModule,
|
|
41
53
|
// Components
|
|
42
54
|
AppImageGalleryComponent
|
|
43
55
|
]
|
|
44
56
|
}]
|
|
45
57
|
}] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZ2FsbGVyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L2ltYWdlLWdhbGxlcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQXVCbkQsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCO1FBVjNCLGFBQWE7UUFDYix3QkFBd0IsYUFWeEIsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixzQkFBc0IsaUNBUXRCLFdBQVc7UUFDWCxlQUFlO1FBQ2YsYUFBYTtRQUNiLHdCQUF3QjtnSEFHZixrQkFBa0IsWUFuQjNCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsc0JBQXNCO1FBQ3RCLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFPMUIsV0FBVztRQUNYLGVBQWU7MkZBS04sa0JBQWtCO2tCQXJCOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDM0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBcHBJbWFnZUdhbGxlcnlDb21wb25lbnR9IGZyb20gJy4vaW1hZ2UtZ2FsbGVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHtJb25pY01vZHVsZX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1NoYXJlZFBpcGVzTW9kdWxlfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHtTaGFyZWRNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwvbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7U2hhcmVkRGlyZWN0aXZlc01vZHVsZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZSc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZERpcmVjdGl2ZXNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBJbWFnZUdhbGxlcnlDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAvLyBDb21wb25lbnRzXG4gICAgQXBwSW1hZ2VHYWxsZXJ5Q29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VHYWxsZXJ5TW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -10,7 +10,10 @@ export class GalleryTestPage {
|
|
|
10
10
|
constructor(dataService) {
|
|
11
11
|
this.dataService = dataService;
|
|
12
12
|
this._subscription = new Subscription();
|
|
13
|
-
this.dataSource = new EntitiesTableDataSource(ImageAttachment, this.dataService
|
|
13
|
+
this.dataSource = new EntitiesTableDataSource(ImageAttachment, this.dataService, null, {
|
|
14
|
+
saveBeforeDelete: true,
|
|
15
|
+
saveOnlyDirtyRows: false
|
|
16
|
+
});
|
|
14
17
|
}
|
|
15
18
|
ngOnInit() {
|
|
16
19
|
this._subscription.add(this.dataSource.watchAll(0, 100, null, null, null)
|
|
@@ -19,15 +22,18 @@ export class GalleryTestPage {
|
|
|
19
22
|
ngOnDestroy() {
|
|
20
23
|
this._subscription.unsubscribe();
|
|
21
24
|
}
|
|
25
|
+
save() {
|
|
26
|
+
this.dataSource.save();
|
|
27
|
+
}
|
|
22
28
|
}
|
|
23
29
|
GalleryTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: GalleryTestPage, deps: [{ token: i1.ImageAttachmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
30
|
GalleryTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: GalleryTestPage, selector: "app-gallery-test-page", providers: [
|
|
25
31
|
{ provide: ImageAttachmentService, useClass: ImageAttachmentService }
|
|
26
|
-
], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <app-image-gallery [dataSource]=\"dataSource\">\n </app-image-gallery>\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "component", type: i3.AppImageGalleryComponent, selector: "app-image-gallery", inputs: ["debug", "readOnly", "
|
|
32
|
+
], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <app-image-gallery [dataSource]=\"dataSource\" (onAfterAddRows)=\"save()\">\n </app-image-gallery>\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "component", type: i3.AppImageGalleryComponent, selector: "app-image-gallery", inputs: ["debug", "disabled", "readOnly", "mobile", "mode", "confirmBeforeDelete", "showToolbar", "showFabButton", "showTitle", "showAddCardButton", "addButtonColor", "dataSource"], outputs: ["onBeforeDeleteRows", "onAfterAddRows"] }] });
|
|
27
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: GalleryTestPage, decorators: [{
|
|
28
34
|
type: Component,
|
|
29
35
|
args: [{ selector: 'app-gallery-test-page', providers: [
|
|
30
36
|
{ provide: ImageAttachmentService, useClass: ImageAttachmentService }
|
|
31
|
-
], template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <app-image-gallery [dataSource]=\"dataSource\">\n </app-image-gallery>\n</ion-content>\n" }]
|
|
37
|
+
], template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <app-image-gallery [dataSource]=\"dataSource\" (onAfterAddRows)=\"save()\">\n </app-image-gallery>\n</ion-content>\n" }]
|
|
32
38
|
}], ctorParameters: function () { return [{ type: i1.ImageAttachmentService }]; } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvZ2FsbGVyeS90ZXN0aW5nL2dhbGxlcnkudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2dhbGxlcnkvdGVzdGluZy9nYWxsZXJ5LnRlc3RpbmcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFFLHNCQUFzQixHQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDL0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFVbEMsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFBc0IsV0FBbUM7UUFBbkMsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO1FBTmpELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxlQUFVLEdBQUcsSUFBSSx1QkFBdUIsQ0FBeUMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQ2pJLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7SUFHSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7YUFDckUsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7OzRHQXRCVSxlQUFlO2dHQUFmLGVBQWUsZ0RBSmY7UUFDVCxFQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUM7S0FDcEUsMEJDWEgsMldBZUE7MkZERmEsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSx1QkFBdUIsYUFFdEI7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFDO3FCQUNwRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ltYWdlQXR0YWNobWVudCwgSW1hZ2VBdHRhY2htZW50U2VydmljZSx9IGZyb20gJy4vZ2FsbGVyeS5zZXJ2aWNlLnRlc3RpbmcnO1xuaW1wb3J0IHtFbnRpdGllc1RhYmxlRGF0YVNvdXJjZX0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS90YWJsZS9lbnRpdGllcy10YWJsZS1kYXRhc291cmNlLmNsYXNzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW1hZ2VBdHRhY2htZW50RmlsdGVyfSBmcm9tICcuL2dhbGxlZ3J5Lm1vZGVsLnRlc3RpbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZ2FsbGVyeS10ZXN0LXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2FsbGVyeS50ZXN0aW5nLmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogSW1hZ2VBdHRhY2htZW50U2VydmljZSwgdXNlQ2xhc3M6IEltYWdlQXR0YWNobWVudFNlcnZpY2V9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgR2FsbGVyeVRlc3RQYWdlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcmVhZG9ubHkgZGF0YVNvdXJjZSA9IG5ldyBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZTxJbWFnZUF0dGFjaG1lbnQsIEltYWdlQXR0YWNobWVudEZpbHRlcj4oSW1hZ2VBdHRhY2htZW50LCB0aGlzLmRhdGFTZXJ2aWNlLCBudWxsLCB7XG4gICAgc2F2ZUJlZm9yZURlbGV0ZTogdHJ1ZSxcbiAgICBzYXZlT25seURpcnR5Um93czogZmFsc2VcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMuZGF0YVNvdXJjZS53YXRjaEFsbCgwLDEwMCwgbnVsbCwgbnVsbCwgbnVsbClcbiAgICAgIC5zdWJzY3JpYmUoKSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc2F2ZSgpO1xuICB9XG5cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJhY2stYnV0dG9uPjwvaW9uLWJhY2stYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlPkltYWdlIGdhbGxlcnk8L2lvbi10aXRsZT5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50PlxuICA8YXBwLWltYWdlLWdhbGxlcnkgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIChvbkFmdGVyQWRkUm93cyk9XCJzYXZlKClcIj5cbiAgPC9hcHAtaW1hZ2UtZ2FsbGVyeT5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=
|