ato-water-lib 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
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], imports: [CommonModule], exports: [AtoWaterLibComponent,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvLXdhdGVyLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG8td2F0ZXItbGliL3NyYy9saWIvYXRvLXdhdGVyLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBaUIvQyxNQUFNLE9BQU8saUJBQWlCOzsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBYjFCLG9CQUFvQjtRQUNwQiwwQkFBMEI7UUFDMUIsa0JBQWtCLGFBR2xCLFlBQVksYUFHWixvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLGtCQUFrQjtnSEFHVCxpQkFBaUIsWUFSMUIsWUFBWTs0RkFRSCxpQkFBaUI7a0JBZjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdG9XYXRlckxpYkNvbXBvbmVudCB9IGZyb20gJy4vYXRvLXdhdGVyLWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXRvRmxvd0RpYWdyYW1MaWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmxvdy1kaWFncmFtLWxpYi9mbG93LWRpYWdyYW0tbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldEZsb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtZmxvdy9hc3NldC1mbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBdG9XYXRlckxpYkNvbXBvbmVudCxcbiAgICBBdG9GbG93RGlhZ3JhbUxpYkNvbXBvbmVudCxcbiAgICBBc3NldEZsb3dDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEF0b1dhdGVyTGliQ29tcG9uZW50LFxuICAgIEF0b0Zsb3dEaWFncmFtTGliQ29tcG9uZW50LFxuICAgIEFzc2V0Rmxvd0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEF0b1dhdGVyTGliTW9kdWxlIHsgfVxuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZmxvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG8td2F0ZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9hc3NldC1mbG93L2Fzc2V0LWZsb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvLXdhdGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYXNzZXQtZmxvdy9hc3NldC1mbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRW5GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7O0FBTzVGLE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFTWSw2QkFBd0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRixNQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDeEIsWUFBTyxHQUFHO1lBQ04sTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFO1lBQ3BDLGdCQUFnQjthQUNuQixDQUFDO1lBQ0Ysb0JBQW9CO1NBQ3ZCLENBQUM7UUFDTyxhQUFRLEdBQVEsRUFBRSxDQUFDO0tBb0I3QjtJQW5CQyxRQUFRO1FBQ04sb0JBQW9CO1FBQ3BCLHFEQUFxRDtRQUNyRCwwQ0FBMEM7UUFDMUMsc0NBQXNDO1FBQ3RDLEtBQUs7UUFDTCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsTUFBVztRQUM3QixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTztZQUNMLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUM3QyxzQkFBc0IsRUFBRSxVQUFVO1lBQ2xDLG9CQUFvQixFQUFFLFFBQVE7U0FDakMsQ0FBQztJQUNGLENBQUM7O2dIQS9CVSxrQkFBa0I7b0dBQWxCLGtCQUFrQixnUkFDbEIsMEJBQTBCLGdEQ1p2QyxxV0FVQTs0RkRDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQUthLGlCQUFpQjtzQkFBdkQsU0FBUzt1QkFBQywwQkFBMEI7Z0JBQzVCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFRRSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBnbyBmcm9tICdnb2pzJztcbmltcG9ydCB7IEFUT19DT01QT05FTlRTX0dST1VQX0RBVEEgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29tcG9uZW50cy1ncm91cC1jb25zdCc7XG5pbXBvcnQgeyBBdG9Hb2pzRWRpdG9yTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ29qcy1lZGl0b3IubW9kZWwnO1xuaW1wb3J0IHsgQXRvRmxvd0RpYWdyYW1MaWJDb21wb25lbnQgfSBmcm9tICcuLi9mbG93LWRpYWdyYW0tbGliL2Zsb3ctZGlhZ3JhbS1saWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXRvLWFzc2V0LWZsb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtZmxvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fzc2V0LWZsb3cuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFzc2V0Rmxvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoQXRvRmxvd0RpYWdyYW1MaWJDb21wb25lbnQpIGdqRmxvd0RpYWdyYW1UZW1wOiBBdG9GbG93RGlhZ3JhbUxpYkNvbXBvbmVudDtcbiAgQElucHV0KCkgc2VsZWN0ZWRDb21wb25lbnQ6IGFueTtcbiAgQElucHV0KCkgc3lzdGVtVHlwZTogQXRvR29qc0VkaXRvck1vZGVsLkVOVU1fVFlQRVM7XG4gIEBPdXRwdXQoKSBvbkNsaWNrUGFyYW1PZlRhYmxlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICQgPSBnby5HcmFwaE9iamVjdC5tYWtlO1xuICBvcHRpb25zID0ge1xuICAgICAgbGF5b3V0OiB0aGlzLiQoZ28uTGF5ZXJlZERpZ3JhcGhMYXlvdXQsIHtcbiAgICAgICAgICAvLyBkaXJlY3Rpb246IDAsXG4gICAgICB9KSxcbiAgICAgIC8vIGlzUmVhZE9ubHk6IHRydWUsXG4gIH07XG4gIEBJbnB1dCgpIGZsb3dEYXRhOiBhbnkgPSB7fTtcbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gdGhpcy5mbG93RGF0YSA9IHtcbiAgICAvLyAgICAgLi4uQVRPX0NPTVBPTkVOVFNfR1JPVVBfREFUQVt0aGlzLnN5c3RlbVR5cGVdLFxuICAgIC8vICAgICBsaW5rRnJvbVBvcnRJZFByb3BlcnR5OiAnZnJvbVBvcnQnLFxuICAgIC8vICAgICBsaW5rVG9Qb3J0SWRQcm9wZXJ0eTogJ3RvUG9ydCcsXG4gICAgLy8gfTtcbiAgICB0aGlzLmdldERlZmF1bHRGbG93RGF0YSgpO1xuICB9XG4gIG9uQ2xpY2tQYXJhbU9mVGFibGUoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uQ2xpY2tQYXJhbU9mVGFibGVFdmVudC5lbWl0KCRldmVudCk7XG4gIH1cblxuICBnZXREZWZhdWx0Rmxvd0RhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkFUT19DT01QT05FTlRTX0dST1VQX0RBVEFbdGhpcy5zeXN0ZW1UeXBlXSxcbiAgICAgIGxpbmtGcm9tUG9ydElkUHJvcGVydHk6ICdmcm9tUG9ydCcsXG4gICAgICBsaW5rVG9Qb3J0SWRQcm9wZXJ0eTogJ3RvUG9ydCcsXG4gIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLTEwMFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCI+XG4gICAgPCEtLSB0cWxTcGluIFtzcGlubmluZ109XCJmbG93RGF0YSA9PT0gbnVsbFwiIFtkZWxheV09XCIxMDAwXCIgLS0+XG4gICAgPGF0by1mbG93LWRpYWdyYW0tbGliXG4gICAgKm5nSWY9XCJmbG93RGF0YSAhPT0gbnVsbFwiXG4gICAgI2dqRmxvd0RpYWdyYW1UZW1wXG4gICAgW2RhdGFdPVwiZmxvd0RhdGFcIlxuICAgIFtpbml0aWFsT3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAob25DbGlrUGFyYW1PZlRhYmxlKT1cIm9uQ2xpY2tQYXJhbU9mVGFibGUoJGV2ZW50KVwiXG4gID48L2F0by1mbG93LWRpYWdyYW0tbGliPlxuPC9kaXY+XG4iXX0=
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
@@ -4,6 +4,9 @@
4
4
  export * from './lib/ato-water-lib.service';
5
5
  export * from './lib/ato-water-lib.component';
6
6
  export * from './lib/ato-water-lib.module';
7
+ // Component
7
8
  export * from './lib/components/flow-diagram-lib/flow-diagram-lib.component';
8
9
  export * from './lib/components/asset-flow/asset-flow.component';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2F0by13YXRlci1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGF0by13YXRlci1saWJcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG8td2F0ZXItbGliLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvLXdhdGVyLWxpYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvLXdhdGVyLWxpYi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mbG93LWRpYWdyYW0tbGliL2Zsb3ctZGlhZ3JhbS1saWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXNzZXQtZmxvdy9hc3NldC1mbG93LmNvbXBvbmVudCc7XG5cblxuXG4iXX0=
10
+ // Directive
11
+ export * from './lib/directive/ato-loading.directive';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2F0by13YXRlci1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxZQUFZO0FBQ1osY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLFlBQVk7QUFDWixjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhdG8td2F0ZXItbGliXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvLXdhdGVyLWxpYi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0by13YXRlci1saWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0by13YXRlci1saWIubW9kdWxlJztcbi8vIENvbXBvbmVudFxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mbG93LWRpYWdyYW0tbGliL2Zsb3ctZGlhZ3JhbS1saWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXNzZXQtZmxvdy9hc3NldC1mbG93LmNvbXBvbmVudCc7XG4vLyBEaXJlY3RpdmVcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9hdG8tbG9hZGluZy5kaXJlY3RpdmUnO1xuXG5cblxuIl19
@@ -7637,7 +7637,7 @@ class AssetFlowComponent {
7637
7637
  // linkFromPortIdProperty: 'fromPort',
7638
7638
  // linkToPortIdProperty: 'toPort',
7639
7639
  // };
7640
- this.getDefaultFlowData();
7640
+ this.flowData = this.getDefaultFlowData();
7641
7641
  }
7642
7642
  onClickParamOfTable($event) {
7643
7643
  this.onClickParamOfTableEvent.emit($event);
@@ -7664,14 +7664,97 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7664
7664
  type: Input
7665
7665
  }] } });
7666
7666
 
7667
+ class AtoLoadingDirective {
7668
+ constructor(el, renderer) {
7669
+ this.el = el;
7670
+ this.renderer = renderer;
7671
+ // Tạo phần tử spinner wrapper
7672
+ this.spinnerWrapper = this.renderer.createElement('div');
7673
+ this.renderer.setStyle(this.spinnerWrapper, 'position', 'absolute');
7674
+ this.renderer.setStyle(this.spinnerWrapper, 'top', '0');
7675
+ this.renderer.setStyle(this.spinnerWrapper, 'left', '0');
7676
+ this.renderer.setStyle(this.spinnerWrapper, 'width', '100%');
7677
+ this.renderer.setStyle(this.spinnerWrapper, 'height', '100%');
7678
+ this.renderer.setStyle(this.spinnerWrapper, 'display', 'flex');
7679
+ this.renderer.setStyle(this.spinnerWrapper, 'align-items', 'center');
7680
+ this.renderer.setStyle(this.spinnerWrapper, 'justify-content', 'center');
7681
+ this.renderer.setStyle(this.spinnerWrapper, 'background', 'rgba(255, 255, 255, 0.7)');
7682
+ this.renderer.setStyle(this.spinnerWrapper, 'z-index', '10');
7683
+ // Tạo phần tử spinner icon (sử dụng hình ảnh base64)
7684
+ const spinner = this.renderer.createElement('img');
7685
+ // this.renderer.setAttribute(spinner, 'src', 'data:image/gif;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyIgd2lkdGg9Ijg4cHgiIGhlaWdodD0iODhweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KPGRlZnMgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgPG1hc2sgaWQ9ImxkaW8tdmN5YjQ1YmFvdWstbWFzayIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0id2hpdGUiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KICA8L21hc2s+CjwvZGVmcz4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiM1Y2FhZWEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KPGcgbWFzaz0idXJsKCNsZGlvLXZjeWI0NWJhb3VrLW1hc2spIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICA8cmVjdCB4PSItMTAwIiB5PSItMjUwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjkwIiByeT0iOTAiIGZpbGw9IiM4MmNlZmYiIG9wYWNpdHk9IjAuNCIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIHZhbHVlcz0iMCA1MCAtMTAwOzkwIDUwIC0xMDAiIGtleVRpbWVzPSIwOzEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CgogIDxyZWN0IHg9Ii0xMDAiIHk9Ii0yNjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiByeD0iOTUiIHJ5PSI5NSIgZmlsbD0iI2E1ZGNmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjEuNTE1MTUxNTE1MTUxNTE1MXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTExMDs5MCA1MCAtMTEwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKICA8cmVjdCB4PSItMTAwIiB5PSItMjcwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjEwMCIgcnk9IjEwMCIgZmlsbD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjMuMDMwMzAzMDMwMzAzMDMwM3MiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTEyMDs5MCA1MCAtMTIwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKPC9nPgo8IS0tIFtsZGlvXSBnZW5lcmF0ZWQgYnkgaHR0cHM6Ly9sb2FkaW5nLmlvLyAtLT48L3N2Zz4=');
7686
+ this.renderer.setProperty(spinner, 'innerHTML', `
7687
+ <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">
7688
+ <defs style="animation-play-state: running; animation-delay: 0s;">
7689
+ <mask id="ldio-vcyb45baouk-mask" style="animation-play-state: running; animation-delay: 0s;">
7690
+ <rect x="0" y="0" width="100" height="100" fill="white" style="animation-play-state: running; animation-delay: 0s;"/>
7691
+ </mask>
7692
+ </defs>
7693
+ <rect x="0" y="0" width="100" height="100" fill="#5caaea" style="animation-play-state: running; animation-delay: 0s;"/>
7694
+ <g mask="url(#ldio-vcyb45baouk-mask)" style="animation-play-state: running; animation-delay: 0s;">
7695
+ <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;">
7696
+ <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;"/>
7697
+ </rect>
7698
+
7699
+ <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;">
7700
+ <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;"/>
7701
+ </rect>
7702
+
7703
+ <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;">
7704
+ <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;"/>
7705
+ </rect>
7706
+
7707
+ </g>
7708
+ <!-- [ldio] generated by https://loading.io/ --></svg>
7709
+ `);
7710
+ this.renderer.setStyle(spinner, 'width', '40px');
7711
+ this.renderer.setStyle(spinner, 'height', '40px');
7712
+ // Thêm spinner vào spinner wrapper
7713
+ this.renderer.appendChild(this.spinnerWrapper, spinner);
7714
+ }
7715
+ ngOnChanges(changes) {
7716
+ if (changes['appLoading']) {
7717
+ if (this.appLoading) {
7718
+ this.showSpinner();
7719
+ }
7720
+ else {
7721
+ this.hideSpinner();
7722
+ }
7723
+ }
7724
+ }
7725
+ showSpinner() {
7726
+ this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');
7727
+ this.renderer.setStyle(this.el.nativeElement, 'filter', 'blur(2px)');
7728
+ this.renderer.appendChild(this.el.nativeElement, this.spinnerWrapper);
7729
+ }
7730
+ hideSpinner() {
7731
+ this.renderer.removeStyle(this.el.nativeElement, 'filter');
7732
+ if (this.el.nativeElement.contains(this.spinnerWrapper)) {
7733
+ this.renderer.removeChild(this.el.nativeElement, this.spinnerWrapper);
7734
+ }
7735
+ }
7736
+ }
7737
+ 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 });
7738
+ AtoLoadingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: AtoLoadingDirective, selector: "[atoLoading]", inputs: { appLoading: "appLoading" }, usesOnChanges: true, ngImport: i0 });
7739
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoLoadingDirective, decorators: [{
7740
+ type: Directive,
7741
+ args: [{
7742
+ selector: '[atoLoading]'
7743
+ }]
7744
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { appLoading: [{
7745
+ type: Input
7746
+ }] } });
7747
+
7667
7748
  class AtoWaterLibModule {
7668
7749
  }
7669
7750
  AtoWaterLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7670
7751
  AtoWaterLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, declarations: [AtoWaterLibComponent,
7671
7752
  AtoFlowDiagramLibComponent,
7672
- AssetFlowComponent], imports: [CommonModule], exports: [AtoWaterLibComponent,
7753
+ AssetFlowComponent,
7754
+ AtoLoadingDirective], imports: [CommonModule], exports: [AtoWaterLibComponent,
7673
7755
  AtoFlowDiagramLibComponent,
7674
- AssetFlowComponent] });
7756
+ AssetFlowComponent,
7757
+ AtoLoadingDirective] });
7675
7758
  AtoWaterLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, imports: [CommonModule] });
7676
7759
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, decorators: [{
7677
7760
  type: NgModule,
@@ -7680,6 +7763,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7680
7763
  AtoWaterLibComponent,
7681
7764
  AtoFlowDiagramLibComponent,
7682
7765
  AssetFlowComponent,
7766
+ AtoLoadingDirective,
7683
7767
  ],
7684
7768
  imports: [
7685
7769
  CommonModule
@@ -7687,7 +7771,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7687
7771
  exports: [
7688
7772
  AtoWaterLibComponent,
7689
7773
  AtoFlowDiagramLibComponent,
7690
- AssetFlowComponent
7774
+ AssetFlowComponent,
7775
+ AtoLoadingDirective
7691
7776
  ]
7692
7777
  }]
7693
7778
  }] });
@@ -7700,5 +7785,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
7700
7785
  * Generated bundle index. Do not edit.
7701
7786
  */
7702
7787
 
7703
- export { AssetFlowComponent, AtoFlowDiagramLibComponent, AtoWaterLibComponent, AtoWaterLibModule, AtoWaterLibService };
7788
+ export { AssetFlowComponent, AtoFlowDiagramLibComponent, AtoLoadingDirective, AtoWaterLibComponent, AtoWaterLibModule, AtoWaterLibService };
7704
7789
  //# sourceMappingURL=ato-water-lib.mjs.map