ato-water-lib 0.0.10 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- package/assets/icon1.png +0 -0
- package/esm2020/lib/ato-water-lib.module.mjs +9 -4
- package/esm2020/lib/components/asset-flow/asset-flow.component.mjs +2 -2
- package/esm2020/lib/directive/ato-loading.directive.mjs +83 -0
- package/esm2020/lib/models/default-gojs-editor.model.mjs +3 -2
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/ato-water-lib.mjs +92 -6
- package/fesm2015/ato-water-lib.mjs.map +1 -1
- package/fesm2020/ato-water-lib.mjs +92 -6
- package/fesm2020/ato-water-lib.mjs.map +1 -1
- package/lib/ato-water-lib.module.d.ts +3 -2
- package/lib/directive/ato-loading.directive.d.ts +14 -0
- package/package.json +6 -3
- package/public-api.d.ts +1 -0
package/assets/icon1.png
ADDED
Binary file
|
@@ -3,15 +3,18 @@ import { AtoWaterLibComponent } from './ato-water-lib.component';
|
|
3
3
|
import { AtoFlowDiagramLibComponent } from './components/flow-diagram-lib/flow-diagram-lib.component';
|
4
4
|
import { AssetFlowComponent } from './components/asset-flow/asset-flow.component';
|
5
5
|
import { CommonModule } from '@angular/common';
|
6
|
+
import { AtoLoadingDirective } from './directive/ato-loading.directive';
|
6
7
|
import * as i0 from "@angular/core";
|
7
8
|
export class AtoWaterLibModule {
|
8
9
|
}
|
9
10
|
AtoWaterLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
10
11
|
AtoWaterLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, declarations: [AtoWaterLibComponent,
|
11
12
|
AtoFlowDiagramLibComponent,
|
12
|
-
AssetFlowComponent
|
13
|
+
AssetFlowComponent,
|
14
|
+
AtoLoadingDirective], imports: [CommonModule], exports: [AtoWaterLibComponent,
|
13
15
|
AtoFlowDiagramLibComponent,
|
14
|
-
AssetFlowComponent
|
16
|
+
AssetFlowComponent,
|
17
|
+
AtoLoadingDirective] });
|
15
18
|
AtoWaterLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, imports: [CommonModule] });
|
16
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, decorators: [{
|
17
20
|
type: NgModule,
|
@@ -20,6 +23,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
20
23
|
AtoWaterLibComponent,
|
21
24
|
AtoFlowDiagramLibComponent,
|
22
25
|
AssetFlowComponent,
|
26
|
+
AtoLoadingDirective,
|
23
27
|
],
|
24
28
|
imports: [
|
25
29
|
CommonModule
|
@@ -27,8 +31,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
27
31
|
exports: [
|
28
32
|
AtoWaterLibComponent,
|
29
33
|
AtoFlowDiagramLibComponent,
|
30
|
-
AssetFlowComponent
|
34
|
+
AssetFlowComponent,
|
35
|
+
AtoLoadingDirective
|
31
36
|
]
|
32
37
|
}]
|
33
38
|
}] });
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvLXdhdGVyLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG8td2F0ZXItbGliL3NyYy9saWIvYXRvLXdhdGVyLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBbUJ4RSxNQUFNLE9BQU8saUJBQWlCOzsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBZjFCLG9CQUFvQjtRQUNwQiwwQkFBMEI7UUFDMUIsa0JBQWtCO1FBQ2xCLG1CQUFtQixhQUduQixZQUFZLGFBR1osb0JBQW9CO1FBQ3BCLDBCQUEwQjtRQUMxQixrQkFBa0I7UUFDbEIsbUJBQW1CO2dIQUdWLGlCQUFpQixZQVQxQixZQUFZOzRGQVNILGlCQUFpQjtrQkFqQjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXRvV2F0ZXJMaWJDb21wb25lbnQgfSBmcm9tICcuL2F0by13YXRlci1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IEF0b0Zsb3dEaWFncmFtTGliQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zsb3ctZGlhZ3JhbS1saWIvZmxvdy1kaWFncmFtLWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzZXRGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LWZsb3cvYXNzZXQtZmxvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEF0b0xvYWRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9hdG8tbG9hZGluZy5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBdG9XYXRlckxpYkNvbXBvbmVudCxcbiAgICBBdG9GbG93RGlhZ3JhbUxpYkNvbXBvbmVudCxcbiAgICBBc3NldEZsb3dDb21wb25lbnQsXG4gICAgQXRvTG9hZGluZ0RpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQXRvV2F0ZXJMaWJDb21wb25lbnQsXG4gICAgQXRvRmxvd0RpYWdyYW1MaWJDb21wb25lbnQsXG4gICAgQXNzZXRGbG93Q29tcG9uZW50LFxuICAgIEF0b0xvYWRpbmdEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBdG9XYXRlckxpYk1vZHVsZSB7IH1cbiJdfQ==
|
@@ -23,7 +23,7 @@ export class AssetFlowComponent {
|
|
23
23
|
// linkFromPortIdProperty: 'fromPort',
|
24
24
|
// linkToPortIdProperty: 'toPort',
|
25
25
|
// };
|
26
|
-
this.getDefaultFlowData();
|
26
|
+
this.flowData = this.getDefaultFlowData();
|
27
27
|
}
|
28
28
|
onClickParamOfTable($event) {
|
29
29
|
this.onClickParamOfTableEvent.emit($event);
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
53
53
|
}], flowData: [{
|
54
54
|
type: Input
|
55
55
|
}] } });
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZmxvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG8td2F0ZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9hc3NldC1mbG93L2Fzc2V0LWZsb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvLXdhdGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYXNzZXQtZmxvdy9hc3NldC1mbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRW5GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7O0FBTzVGLE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFTWSw2QkFBd0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRixNQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDeEIsWUFBTyxHQUFHO1lBQ04sTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFO1lBQ3BDLGdCQUFnQjthQUNuQixDQUFDO1lBQ0Ysb0JBQW9CO1NBQ3ZCLENBQUM7UUFDTyxhQUFRLEdBQVEsRUFBRSxDQUFDO0tBb0I3QjtJQW5CQyxRQUFRO1FBQ04sb0JBQW9CO1FBQ3BCLHFEQUFxRDtRQUNyRCwwQ0FBMEM7UUFDMUMsc0NBQXNDO1FBQ3RDLEtBQUs7UUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxNQUFXO1FBQzdCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPO1lBQ0wsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzdDLHNCQUFzQixFQUFFLFVBQVU7WUFDbEMsb0JBQW9CLEVBQUUsUUFBUTtTQUNqQyxDQUFDO0lBQ0YsQ0FBQzs7Z0hBL0JVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLGdSQUNsQiwwQkFBMEIsZ0RDWnZDLHFXQVVBOzRGRENhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7OEJBS2EsaUJBQWlCO3NCQUF2RCxTQUFTO3VCQUFDLDBCQUEwQjtnQkFDNUIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksd0JBQXdCO3NCQUFqQyxNQUFNO2dCQVFFLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGdvIGZyb20gJ2dvanMnO1xuaW1wb3J0IHsgQVRPX0NPTVBPTkVOVFNfR1JPVVBfREFUQSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb21wb25lbnRzLWdyb3VwLWNvbnN0JztcbmltcG9ydCB7IEF0b0dvanNFZGl0b3JNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nb2pzLWVkaXRvci5tb2RlbCc7XG5pbXBvcnQgeyBBdG9GbG93RGlhZ3JhbUxpYkNvbXBvbmVudCB9IGZyb20gJy4uL2Zsb3ctZGlhZ3JhbS1saWIvZmxvdy1kaWFncmFtLWxpYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdG8tYXNzZXQtZmxvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3NldC1mbG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtZmxvdy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRGbG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChBdG9GbG93RGlhZ3JhbUxpYkNvbXBvbmVudCkgZ2pGbG93RGlhZ3JhbVRlbXA6IEF0b0Zsb3dEaWFncmFtTGliQ29tcG9uZW50O1xuICBASW5wdXQoKSBzZWxlY3RlZENvbXBvbmVudDogYW55O1xuICBASW5wdXQoKSBzeXN0ZW1UeXBlOiBBdG9Hb2pzRWRpdG9yTW9kZWwuRU5VTV9UWVBFUztcbiAgQE91dHB1dCgpIG9uQ2xpY2tQYXJhbU9mVGFibGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgJCA9IGdvLkdyYXBoT2JqZWN0Lm1ha2U7XG4gIG9wdGlvbnMgPSB7XG4gICAgICBsYXlvdXQ6IHRoaXMuJChnby5MYXllcmVkRGlncmFwaExheW91dCwge1xuICAgICAgICAgIC8vIGRpcmVjdGlvbjogMCxcbiAgICAgIH0pLFxuICAgICAgLy8gaXNSZWFkT25seTogdHJ1ZSxcbiAgfTtcbiAgQElucHV0KCkgZmxvd0RhdGE6IGFueSA9IHt9O1xuICBuZ09uSW5pdCgpIHtcbiAgICAvLyB0aGlzLmZsb3dEYXRhID0ge1xuICAgIC8vICAgICAuLi5BVE9fQ09NUE9ORU5UU19HUk9VUF9EQVRBW3RoaXMuc3lzdGVtVHlwZV0sXG4gICAgLy8gICAgIGxpbmtGcm9tUG9ydElkUHJvcGVydHk6ICdmcm9tUG9ydCcsXG4gICAgLy8gICAgIGxpbmtUb1BvcnRJZFByb3BlcnR5OiAndG9Qb3J0JyxcbiAgICAvLyB9O1xuICAgIHRoaXMuZmxvd0RhdGEgPSB0aGlzLmdldERlZmF1bHRGbG93RGF0YSgpO1xuICB9XG4gIG9uQ2xpY2tQYXJhbU9mVGFibGUoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uQ2xpY2tQYXJhbU9mVGFibGVFdmVudC5lbWl0KCRldmVudCk7XG4gIH1cblxuICBnZXREZWZhdWx0Rmxvd0RhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkFUT19DT01QT05FTlRTX0dST1VQX0RBVEFbdGhpcy5zeXN0ZW1UeXBlXSxcbiAgICAgIGxpbmtGcm9tUG9ydElkUHJvcGVydHk6ICdmcm9tUG9ydCcsXG4gICAgICBsaW5rVG9Qb3J0SWRQcm9wZXJ0eTogJ3RvUG9ydCcsXG4gIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLTEwMFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCI+XG4gICAgPCEtLSB0cWxTcGluIFtzcGlubmluZ109XCJmbG93RGF0YSA9PT0gbnVsbFwiIFtkZWxheV09XCIxMDAwXCIgLS0+XG4gICAgPGF0by1mbG93LWRpYWdyYW0tbGliXG4gICAgKm5nSWY9XCJmbG93RGF0YSAhPT0gbnVsbFwiXG4gICAgI2dqRmxvd0RpYWdyYW1UZW1wXG4gICAgW2RhdGFdPVwiZmxvd0RhdGFcIlxuICAgIFtpbml0aWFsT3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAob25DbGlrUGFyYW1PZlRhYmxlKT1cIm9uQ2xpY2tQYXJhbU9mVGFibGUoJGV2ZW50KVwiXG4gID48L2F0by1mbG93LWRpYWdyYW0tbGliPlxuPC9kaXY+XG4iXX0=
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class AtoLoadingDirective {
|
4
|
+
constructor(el, renderer) {
|
5
|
+
this.el = el;
|
6
|
+
this.renderer = renderer;
|
7
|
+
// Tạo phần tử spinner wrapper
|
8
|
+
this.spinnerWrapper = this.renderer.createElement('div');
|
9
|
+
this.renderer.setStyle(this.spinnerWrapper, 'position', 'absolute');
|
10
|
+
this.renderer.setStyle(this.spinnerWrapper, 'top', '0');
|
11
|
+
this.renderer.setStyle(this.spinnerWrapper, 'left', '0');
|
12
|
+
this.renderer.setStyle(this.spinnerWrapper, 'width', '100%');
|
13
|
+
this.renderer.setStyle(this.spinnerWrapper, 'height', '100%');
|
14
|
+
this.renderer.setStyle(this.spinnerWrapper, 'display', 'flex');
|
15
|
+
this.renderer.setStyle(this.spinnerWrapper, 'align-items', 'center');
|
16
|
+
this.renderer.setStyle(this.spinnerWrapper, 'justify-content', 'center');
|
17
|
+
this.renderer.setStyle(this.spinnerWrapper, 'background', 'rgba(255, 255, 255, 0.7)');
|
18
|
+
this.renderer.setStyle(this.spinnerWrapper, 'z-index', '10');
|
19
|
+
// Tạo phần tử spinner icon (sử dụng hình ảnh base64)
|
20
|
+
const spinner = this.renderer.createElement('img');
|
21
|
+
// this.renderer.setAttribute(spinner, 'src', 'data:image/gif;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyIgd2lkdGg9Ijg4cHgiIGhlaWdodD0iODhweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KPGRlZnMgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgPG1hc2sgaWQ9ImxkaW8tdmN5YjQ1YmFvdWstbWFzayIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0id2hpdGUiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KICA8L21hc2s+CjwvZGVmcz4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiM1Y2FhZWEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KPGcgbWFzaz0idXJsKCNsZGlvLXZjeWI0NWJhb3VrLW1hc2spIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICA8cmVjdCB4PSItMTAwIiB5PSItMjUwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjkwIiByeT0iOTAiIGZpbGw9IiM4MmNlZmYiIG9wYWNpdHk9IjAuNCIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIHZhbHVlcz0iMCA1MCAtMTAwOzkwIDUwIC0xMDAiIGtleVRpbWVzPSIwOzEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CgogIDxyZWN0IHg9Ii0xMDAiIHk9Ii0yNjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiByeD0iOTUiIHJ5PSI5NSIgZmlsbD0iI2E1ZGNmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjEuNTE1MTUxNTE1MTUxNTE1MXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTExMDs5MCA1MCAtMTEwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKICA8cmVjdCB4PSItMTAwIiB5PSItMjcwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjEwMCIgcnk9IjEwMCIgZmlsbD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjMuMDMwMzAzMDMwMzAzMDMwM3MiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTEyMDs5MCA1MCAtMTIwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKPC9nPgo8IS0tIFtsZGlvXSBnZW5lcmF0ZWQgYnkgaHR0cHM6Ly9sb2FkaW5nLmlvLyAtLT48L3N2Zz4=');
|
22
|
+
this.renderer.setProperty(spinner, 'innerHTML', `
|
23
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: rgb(255, 255, 255); display: block; shape-rendering: auto; animation-play-state: running; animation-delay: 0s;" width="88px" height="88px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
|
24
|
+
<defs style="animation-play-state: running; animation-delay: 0s;">
|
25
|
+
<mask id="ldio-vcyb45baouk-mask" style="animation-play-state: running; animation-delay: 0s;">
|
26
|
+
<rect x="0" y="0" width="100" height="100" fill="white" style="animation-play-state: running; animation-delay: 0s;"/>
|
27
|
+
</mask>
|
28
|
+
</defs>
|
29
|
+
<rect x="0" y="0" width="100" height="100" fill="#5caaea" style="animation-play-state: running; animation-delay: 0s;"/>
|
30
|
+
<g mask="url(#ldio-vcyb45baouk-mask)" style="animation-play-state: running; animation-delay: 0s;">
|
31
|
+
<rect x="-100" y="-250" width="300" height="300" rx="90" ry="90" fill="#82ceff" opacity="0.4" style="animation-play-state: running; animation-delay: 0s;">
|
32
|
+
<animateTransform attributeName="transform" type="rotate" dur="1s" repeatCount="indefinite" values="0 50 -100;90 50 -100" keyTimes="0;1" style="animation-play-state: running; animation-delay: 0s;"/>
|
33
|
+
</rect>
|
34
|
+
|
35
|
+
<rect x="-100" y="-260" width="300" height="300" rx="95" ry="95" fill="#a5dcff" opacity="0.4" style="animation-play-state: running; animation-delay: 0s;">
|
36
|
+
<animateTransform attributeName="transform" type="rotate" dur="1.5151515151515151s" repeatCount="indefinite" values="0 50 -110;90 50 -110" keyTimes="0;1" style="animation-play-state: running; animation-delay: 0s;"/>
|
37
|
+
</rect>
|
38
|
+
|
39
|
+
<rect x="-100" y="-270" width="300" height="300" rx="100" ry="100" fill="#ffffff" opacity="0.4" style="animation-play-state: running; animation-delay: 0s;">
|
40
|
+
<animateTransform attributeName="transform" type="rotate" dur="3.0303030303030303s" repeatCount="indefinite" values="0 50 -120;90 50 -120" keyTimes="0;1" style="animation-play-state: running; animation-delay: 0s;"/>
|
41
|
+
</rect>
|
42
|
+
|
43
|
+
</g>
|
44
|
+
<!-- [ldio] generated by https://loading.io/ --></svg>
|
45
|
+
`);
|
46
|
+
this.renderer.setStyle(spinner, 'width', '40px');
|
47
|
+
this.renderer.setStyle(spinner, 'height', '40px');
|
48
|
+
// Thêm spinner vào spinner wrapper
|
49
|
+
this.renderer.appendChild(this.spinnerWrapper, spinner);
|
50
|
+
}
|
51
|
+
ngOnChanges(changes) {
|
52
|
+
if (changes['appLoading']) {
|
53
|
+
if (this.appLoading) {
|
54
|
+
this.showSpinner();
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
this.hideSpinner();
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
showSpinner() {
|
62
|
+
this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');
|
63
|
+
this.renderer.setStyle(this.el.nativeElement, 'filter', 'blur(2px)');
|
64
|
+
this.renderer.appendChild(this.el.nativeElement, this.spinnerWrapper);
|
65
|
+
}
|
66
|
+
hideSpinner() {
|
67
|
+
this.renderer.removeStyle(this.el.nativeElement, 'filter');
|
68
|
+
if (this.el.nativeElement.contains(this.spinnerWrapper)) {
|
69
|
+
this.renderer.removeChild(this.el.nativeElement, this.spinnerWrapper);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
AtoLoadingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoLoadingDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
74
|
+
AtoLoadingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: AtoLoadingDirective, selector: "[atoLoading]", inputs: { appLoading: "appLoading" }, usesOnChanges: true, ngImport: i0 });
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoLoadingDirective, decorators: [{
|
76
|
+
type: Directive,
|
77
|
+
args: [{
|
78
|
+
selector: '[atoLoading]'
|
79
|
+
}]
|
80
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { appLoading: [{
|
81
|
+
type: Input
|
82
|
+
}] } });
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvLWxvYWRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvLXdhdGVyLWxpYi9zcmMvbGliL2RpcmVjdGl2ZS9hdG8tbG9hZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7QUFLbEcsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDN0QsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdELHFEQUFxRDtRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxvM0ZBQW8zRjtRQUNwM0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QmpELENBQUMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRCxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUM7O2lIQTNFVSxtQkFBbUI7cUdBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjt5SEFHVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F0b0xvYWRpbmddJ1xufSlcbmV4cG9ydCBjbGFzcyBBdG9Mb2FkaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBhcHBMb2FkaW5nOiBib29sZWFuO1xuXG4gIHByaXZhdGUgc3Bpbm5lcldyYXBwZXI6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIC8vIFThuqFvIHBo4bqnbiB04butIHNwaW5uZXIgd3JhcHBlclxuICAgIHRoaXMuc3Bpbm5lcldyYXBwZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zcGlubmVyV3JhcHBlciwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAndG9wJywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdsZWZ0JywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICd3aWR0aCcsICcxMDAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdkaXNwbGF5JywgJ2ZsZXgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdhbGlnbi1pdGVtcycsICdjZW50ZXInKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdqdXN0aWZ5LWNvbnRlbnQnLCAnY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAnYmFja2dyb3VuZCcsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyknKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICd6LWluZGV4JywgJzEwJyk7XG5cbiAgICAvLyBU4bqhbyBwaOG6p24gdOG7rSBzcGlubmVyIGljb24gKHPhu60gZOG7pW5nIGjDrG5oIOG6o25oIGJhc2U2NClcbiAgICBjb25zdCBzcGlubmVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICAvLyB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzcGlubmVyLCAnc3JjJywgJ2RhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCemRIbHNaVDBpYldGeVoybHVPaUJoZFhSdk95QmlZV05yWjNKdmRXNWtPaUJ5WjJJb01qVTFMQ0F5TlRVc0lESTFOU2s3SUdScGMzQnNZWGs2SUdKc2IyTnJPeUJ6YUdGd1pTMXlaVzVrWlhKcGJtYzZJR0YxZEc4N0lHRnVhVzFoZEdsdmJpMXdiR0Y1TFhOMFlYUmxPaUJ5ZFc1dWFXNW5PeUJoYm1sdFlYUnBiMjR0WkdWc1lYazZJREJ6T3lJZ2QybGtkR2c5SWpnNGNIZ2lJR2hsYVdkb2REMGlPRGh3ZUNJZ2RtbGxkMEp2ZUQwaU1DQXdJREV3TUNBeE1EQWlJSEJ5WlhObGNuWmxRWE53WldOMFVtRjBhVzg5SW5oTmFXUlpUV2xrSWo0S1BHUmxabk1nYzNSNWJHVTlJbUZ1YVcxaGRHbHZiaTF3YkdGNUxYTjBZWFJsT2lCeWRXNXVhVzVuT3lCaGJtbHRZWFJwYjI0dFpHVnNZWGs2SURCek95SStDaUFnUEcxaGMyc2dhV1E5SW14a2FXOHRkbU41WWpRMVltRnZkV3N0YldGemF5SWdjM1I1YkdVOUltRnVhVzFoZEdsdmJpMXdiR0Y1TFhOMFlYUmxPaUJ5ZFc1dWFXNW5PeUJoYm1sdFlYUnBiMjR0WkdWc1lYazZJREJ6T3lJK0NpQWdJQ0E4Y21WamRDQjRQU0l3SWlCNVBTSXdJaUIzYVdSMGFEMGlNVEF3SWlCb1pXbG5hSFE5SWpFd01DSWdabWxzYkQwaWQyaHBkR1VpSUhOMGVXeGxQU0poYm1sdFlYUnBiMjR0Y0d4aGVTMXpkR0YwWlRvZ2NuVnVibWx1WnpzZ1lXNXBiV0YwYVc5dUxXUmxiR0Y1T2lBd2N6c2lQand2Y21WamRENEtJQ0E4TDIxaGMycytDand2WkdWbWN6NEtQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRXdNQ0lnYUdWcFoyaDBQU0l4TURBaUlHWnBiR3c5SWlNMVkyRmhaV0VpSUhOMGVXeGxQU0poYm1sdFlYUnBiMjR0Y0d4aGVTMXpkR0YwWlRvZ2NuVnVibWx1WnpzZ1lXNXBiV0YwYVc5dUxXUmxiR0Y1T2lBd2N6c2lQand2Y21WamRENEtQR2NnYldGemF6MGlkWEpzS0NOc1pHbHZMWFpqZVdJME5XSmhiM1ZyTFcxaGMyc3BJaUJ6ZEhsc1pUMGlZVzVwYldGMGFXOXVMWEJzWVhrdGMzUmhkR1U2SUhKMWJtNXBibWM3SUdGdWFXMWhkR2x2Ymkxa1pXeGhlVG9nTUhNN0lqNEtJQ0E4Y21WamRDQjRQU0l0TVRBd0lpQjVQU0l0TWpVd0lpQjNhV1IwYUQwaU16QXdJaUJvWldsbmFIUTlJak13TUNJZ2NuZzlJamt3SWlCeWVUMGlPVEFpSUdacGJHdzlJaU00TW1ObFptWWlJRzl3WVdOcGRIazlJakF1TkNJZ2MzUjViR1U5SW1GdWFXMWhkR2x2Ymkxd2JHRjVMWE4wWVhSbE9pQnlkVzV1YVc1bk95QmhibWx0WVhScGIyNHRaR1ZzWVhrNklEQnpPeUkrQ2lBZ0lDQThZVzVwYldGMFpWUnlZVzV6Wm05eWJTQmhkSFJ5YVdKMWRHVk9ZVzFsUFNKMGNtRnVjMlp2Y20waUlIUjVjR1U5SW5KdmRHRjBaU0lnWkhWeVBTSXhjeUlnY21Wd1pXRjBRMjkxYm5ROUltbHVaR1ZtYVc1cGRHVWlJSFpoYkhWbGN6MGlNQ0ExTUNBdE1UQXdPemt3SURVd0lDMHhNREFpSUd0bGVWUnBiV1Z6UFNJd096RWlJSE4wZVd4bFBTSmhibWx0WVhScGIyNHRjR3hoZVMxemRHRjBaVG9nY25WdWJtbHVaenNnWVc1cGJXRjBhVzl1TFdSbGJHRjVPaUF3Y3pzaVBqd3ZZVzVwYldGMFpWUnlZVzV6Wm05eWJUNEtJQ0E4TDNKbFkzUStDZ29nSUR4eVpXTjBJSGc5SWkweE1EQWlJSGs5SWkweU5qQWlJSGRwWkhSb1BTSXpNREFpSUdobGFXZG9kRDBpTXpBd0lpQnllRDBpT1RVaUlISjVQU0k1TlNJZ1ptbHNiRDBpSTJFMVpHTm1aaUlnYjNCaFkybDBlVDBpTUM0MElpQnpkSGxzWlQwaVlXNXBiV0YwYVc5dUxYQnNZWGt0YzNSaGRHVTZJSEoxYm01cGJtYzdJR0Z1YVcxaGRHbHZiaTFrWld4aGVUb2dNSE03SWo0S0lDQWdJRHhoYm1sdFlYUmxWSEpoYm5ObWIzSnRJR0YwZEhKcFluVjBaVTVoYldVOUluUnlZVzV6Wm05eWJTSWdkSGx3WlQwaWNtOTBZWFJsSWlCa2RYSTlJakV1TlRFMU1UVXhOVEUxTVRVeE5URTFNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUIyWVd4MVpYTTlJakFnTlRBZ0xURXhNRHM1TUNBMU1DQXRNVEV3SWlCclpYbFVhVzFsY3owaU1Ec3hJaUJ6ZEhsc1pUMGlZVzVwYldGMGFXOXVMWEJzWVhrdGMzUmhkR1U2SUhKMWJtNXBibWM3SUdGdWFXMWhkR2x2Ymkxa1pXeGhlVG9nTUhNN0lqNDhMMkZ1YVcxaGRHVlVjbUZ1YzJadmNtMCtDaUFnUEM5eVpXTjBQZ29LSUNBOGNtVmpkQ0I0UFNJdE1UQXdJaUI1UFNJdE1qY3dJaUIzYVdSMGFEMGlNekF3SWlCb1pXbG5hSFE5SWpNd01DSWdjbmc5SWpFd01DSWdjbms5SWpFd01DSWdabWxzYkQwaUkyWm1abVptWmlJZ2IzQmhZMmwwZVQwaU1DNDBJaUJ6ZEhsc1pUMGlZVzVwYldGMGFXOXVMWEJzWVhrdGMzUmhkR1U2SUhKMWJtNXBibWM3SUdGdWFXMWhkR2x2Ymkxa1pXeGhlVG9nTUhNN0lqNEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQmtkWEk5SWpNdU1ETXdNekF6TURNd016QXpNRE13TTNNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlCMllXeDFaWE05SWpBZ05UQWdMVEV5TURzNU1DQTFNQ0F0TVRJd0lpQnJaWGxVYVcxbGN6MGlNRHN4SWlCemRIbHNaVDBpWVc1cGJXRjBhVzl1TFhCc1lYa3RjM1JoZEdVNklISjFibTVwYm1jN0lHRnVhVzFoZEdsdmJpMWtaV3hoZVRvZ01ITTdJajQ4TDJGdWFXMWhkR1ZVY21GdWMyWnZjbTArQ2lBZ1BDOXlaV04wUGdvS1BDOW5QZ284SVMwdElGdHNaR2x2WFNCblpXNWxjbUYwWldRZ1lua2dhSFIwY0hNNkx5OXNiMkZrYVc1bkxtbHZMeUF0TFQ0OEwzTjJaejQ9Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzcGlubmVyLCAnaW5uZXJIVE1MJywgYFxuICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHN0eWxlPVwibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiIHdpZHRoPVwiODhweFwiIGhlaWdodD1cIjg4cHhcIiB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWRcIj5cbjxkZWZzIHN0eWxlPVwiYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7XCI+XG4gIDxtYXNrIGlkPVwibGRpby12Y3liNDViYW91ay1tYXNrXCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIj5cbiAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDBcIiBoZWlnaHQ9XCIxMDBcIiBmaWxsPVwid2hpdGVcIiBzdHlsZT1cImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiLz5cbiAgPC9tYXNrPlxuPC9kZWZzPlxuPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTAwXCIgaGVpZ2h0PVwiMTAwXCIgZmlsbD1cIiM1Y2FhZWFcIiBzdHlsZT1cImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiLz5cbjxnIG1hc2s9XCJ1cmwoI2xkaW8tdmN5YjQ1YmFvdWstbWFzaylcIiBzdHlsZT1cImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiPlxuICA8cmVjdCB4PVwiLTEwMFwiIHk9XCItMjUwXCIgd2lkdGg9XCIzMDBcIiBoZWlnaHQ9XCIzMDBcIiByeD1cIjkwXCIgcnk9XCI5MFwiIGZpbGw9XCIjODJjZWZmXCIgb3BhY2l0eT1cIjAuNFwiIHN0eWxlPVwiYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7XCI+XG4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJyb3RhdGVcIiBkdXI9XCIxc1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiIHZhbHVlcz1cIjAgNTAgLTEwMDs5MCA1MCAtMTAwXCIga2V5VGltZXM9XCIwOzFcIiBzdHlsZT1cImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiLz5cbiAgPC9yZWN0PlxuXG4gIDxyZWN0IHg9XCItMTAwXCIgeT1cIi0yNjBcIiB3aWR0aD1cIjMwMFwiIGhlaWdodD1cIjMwMFwiIHJ4PVwiOTVcIiByeT1cIjk1XCIgZmlsbD1cIiNhNWRjZmZcIiBvcGFjaXR5PVwiMC40XCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIj5cbiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGR1cj1cIjEuNTE1MTUxNTE1MTUxNTE1MXNcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIiB2YWx1ZXM9XCIwIDUwIC0xMTA7OTAgNTAgLTExMFwiIGtleVRpbWVzPVwiMDsxXCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIi8+XG4gIDwvcmVjdD5cblxuICA8cmVjdCB4PVwiLTEwMFwiIHk9XCItMjcwXCIgd2lkdGg9XCIzMDBcIiBoZWlnaHQ9XCIzMDBcIiByeD1cIjEwMFwiIHJ5PVwiMTAwXCIgZmlsbD1cIiNmZmZmZmZcIiBvcGFjaXR5PVwiMC40XCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIj5cbiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGR1cj1cIjMuMDMwMzAzMDMwMzAzMDMwM3NcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIiB2YWx1ZXM9XCIwIDUwIC0xMjA7OTAgNTAgLTEyMFwiIGtleVRpbWVzPVwiMDsxXCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIi8+XG4gIDwvcmVjdD5cblxuPC9nPlxuPCEtLSBbbGRpb10gZ2VuZXJhdGVkIGJ5IGh0dHBzOi8vbG9hZGluZy5pby8gLS0+PC9zdmc+XG4gIGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3Bpbm5lciwgJ3dpZHRoJywgJzQwcHgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNwaW5uZXIsICdoZWlnaHQnLCAnNDBweCcpO1xuXG4gICAgLy8gVGjDqm0gc3Bpbm5lciB2w6BvIHNwaW5uZXIgd3JhcHBlclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5zcGlubmVyV3JhcHBlciwgc3Bpbm5lcik7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2FwcExvYWRpbmcnXSkge1xuICAgICAgaWYgKHRoaXMuYXBwTG9hZGluZykge1xuICAgICAgICB0aGlzLnNob3dTcGlubmVyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhpZGVTcGlubmVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG93U3Bpbm5lcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdmaWx0ZXInLCAnYmx1cigycHgpJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3Bpbm5lcldyYXBwZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlU3Bpbm5lcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2ZpbHRlcicpO1xuICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGhpcy5zcGlubmVyV3JhcHBlcikpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLnNwaW5uZXJXcmFwcGVyKTtcbiAgICB9XG4gIH1cblxufVxuIl19
|