@apipass/containers 1.0.91 → 1.0.95

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.
@@ -3,18 +3,22 @@ import * as i1 from "./centralized-container/centralized-container.component";
3
3
  import * as i2 from "./configuration-page-content/configuration-page.component";
4
4
  import * as i3 from "./breadcrumb/breadcrumb.component";
5
5
  import * as i4 from "./configuration-page-title/configuration-page-title.component";
6
- import * as i5 from "@angular/common";
7
- import * as i6 from "@angular/router";
8
- import * as i7 from "@angular/forms";
9
- import * as i8 from "@apipass/icons";
10
- import * as i9 from "@apipass/buttons";
11
- import * as i10 from "ngx-scrollbar";
12
- import * as i11 from "@angular/material/form-field";
13
- import * as i12 from "@angular/material/icon";
14
- import * as i13 from "@angular/material/input";
15
- import * as i14 from "@angular/material/toolbar";
6
+ import * as i5 from "./duration/duration-timeline/duration-timeline.component";
7
+ import * as i6 from "./duration/duration-progressbar/duration-progressbar.component";
8
+ import * as i7 from "@angular/common";
9
+ import * as i8 from "@angular/router";
10
+ import * as i9 from "@angular/forms";
11
+ import * as i10 from "@apipass/icons";
12
+ import * as i11 from "@apipass/buttons";
13
+ import * as i12 from "ngx-scrollbar";
14
+ import * as i13 from "@angular/material/form-field";
15
+ import * as i14 from "@angular/material/icon";
16
+ import * as i15 from "@angular/material/input";
17
+ import * as i16 from "@angular/material/toolbar";
18
+ import * as i17 from "@apipass/pipes";
19
+ import * as i18 from "@angular/material/tooltip";
16
20
  export declare class ContainersModule {
17
21
  static ɵfac: i0.ɵɵFactoryDeclaration<ContainersModule, never>;
18
- static ɵmod: i0.ɵɵNgModuleDeclaration<ContainersModule, [typeof i1.CentralizedContainerComponent, typeof i2.ConfigurationPageComponent, typeof i3.BreadcrumbComponent, typeof i4.ConfigurationPageTitleComponent], [typeof i5.CommonModule, typeof i6.RouterModule, typeof i7.FormsModule, typeof i7.ReactiveFormsModule, typeof i8.IconsModule, typeof i9.ButtonsModule, typeof i10.NgScrollbarModule, typeof i11.MatFormFieldModule, typeof i12.MatIconModule, typeof i13.MatInputModule, typeof i14.MatToolbarModule], [typeof i1.CentralizedContainerComponent, typeof i2.ConfigurationPageComponent, typeof i3.BreadcrumbComponent, typeof i4.ConfigurationPageTitleComponent]>;
22
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ContainersModule, [typeof i1.CentralizedContainerComponent, typeof i2.ConfigurationPageComponent, typeof i3.BreadcrumbComponent, typeof i4.ConfigurationPageTitleComponent, typeof i5.DurationTimelineComponent, typeof i6.DurationProgressbarComponent], [typeof i7.CommonModule, typeof i8.RouterModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i10.IconsModule, typeof i11.ButtonsModule, typeof i12.NgScrollbarModule, typeof i13.MatFormFieldModule, typeof i14.MatIconModule, typeof i15.MatInputModule, typeof i16.MatToolbarModule, typeof i17.PipeModule, typeof i18.MatTooltipModule], [typeof i1.CentralizedContainerComponent, typeof i2.ConfigurationPageComponent, typeof i3.BreadcrumbComponent, typeof i4.ConfigurationPageTitleComponent, typeof i5.DurationTimelineComponent, typeof i6.DurationProgressbarComponent]>;
19
23
  static ɵinj: i0.ɵɵInjectorDeclaration<ContainersModule>;
20
24
  }
@@ -0,0 +1,35 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { DurationPipe } from '@apipass/pipes';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DurationProgressbarComponent implements OnInit {
5
+ private readonly durationPipe;
6
+ running: boolean;
7
+ private _startDate;
8
+ private _endDate;
9
+ private _startPartDate;
10
+ private _endPartDate;
11
+ barHeight: number;
12
+ progressHeight: number;
13
+ runningTooltip: string;
14
+ progressTooltipConjunction: string;
15
+ totalDurationTime: number;
16
+ partDurationTime: number;
17
+ startPercentage: number;
18
+ progressWidth: number;
19
+ constructor(durationPipe: DurationPipe);
20
+ set startPartDate(date: Date | string);
21
+ get startPartDate(): Date;
22
+ set endPartDate(date: Date | string);
23
+ get endPartDate(): Date;
24
+ set startDate(date: Date | string);
25
+ get startDate(): Date;
26
+ set endDate(date: Date | string);
27
+ get endDate(): Date;
28
+ ngOnInit(): Promise<void>;
29
+ initialize(): Promise<void>;
30
+ getTotalDuration(startDate: Date, endDate: Date): number;
31
+ stringToDate(date: Date | string): Date;
32
+ getTooltipText(): string;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<DurationProgressbarComponent, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<DurationProgressbarComponent, "duration-progressbar-component", never, { "barHeight": { "alias": "barHeight"; "required": false; }; "progressHeight": { "alias": "progressHeight"; "required": false; }; "runningTooltip": { "alias": "runningTooltip"; "required": false; }; "progressTooltipConjunction": { "alias": "progressTooltipConjunction"; "required": false; }; "startPartDate": { "alias": "startPartDate"; "required": false; }; "endPartDate": { "alias": "endPartDate"; "required": false; }; "startDate": { "alias": "startDate"; "required": false; }; "endDate": { "alias": "endDate"; "required": false; }; }, {}, never, never, false, never>;
35
+ }
@@ -0,0 +1,25 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DurationTimelineComponent implements OnInit {
4
+ timeLineParts: number[];
5
+ running: boolean;
6
+ private _startDate;
7
+ private _endDate;
8
+ private _durationParts;
9
+ onlyLargestUnit: boolean;
10
+ runningLabel: string;
11
+ runningTooltip: string;
12
+ set startDate(date: Date | string);
13
+ get startDate(): Date;
14
+ set endDate(date: Date | string);
15
+ get endDate(): Date;
16
+ set durationParts(parts: number);
17
+ get durationParts(): number;
18
+ ngOnInit(): Promise<void>;
19
+ initialize(): Promise<void>;
20
+ getTotalDuration(endDate: Date): number;
21
+ stringToDate(date: Date | string): Date;
22
+ getDurationWidth(): string;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<DurationTimelineComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<DurationTimelineComponent, "duration-timeline-component", never, { "onlyLargestUnit": { "alias": "onlyLargestUnit"; "required": false; }; "runningLabel": { "alias": "runningLabel"; "required": false; }; "runningTooltip": { "alias": "runningTooltip"; "required": false; }; "startDate": { "alias": "startDate"; "required": false; }; "endDate": { "alias": "endDate"; "required": false; }; "durationParts": { "alias": "durationParts"; "required": false; }; }, {}, never, never, false, never>;
25
+ }
@@ -0,0 +1,2 @@
1
+ export * from './duration-timeline/duration-timeline.component';
2
+ export * from './duration-progressbar/duration-progressbar.component';
@@ -11,15 +11,21 @@ import { MatIconModule } from '@angular/material/icon';
11
11
  import { MatInputModule } from '@angular/material/input';
12
12
  import { IconsModule } from '@apipass/icons';
13
13
  import { ButtonsModule } from '@apipass/buttons';
14
+ import { PipeModule } from '@apipass/pipes';
14
15
  import { MatToolbarModule } from '@angular/material/toolbar';
15
16
  import { ConfigurationPageTitleComponent } from './configuration-page-title/configuration-page-title.component';
17
+ import { DurationTimelineComponent } from './duration/duration-timeline/duration-timeline.component';
18
+ import { MatTooltipModule } from '@angular/material/tooltip';
19
+ import { DurationProgressbarComponent } from './duration/duration-progressbar/duration-progressbar.component';
16
20
  import * as i0 from "@angular/core";
17
21
  class ContainersModule {
18
22
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ContainersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
23
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: ContainersModule, declarations: [CentralizedContainerComponent,
20
24
  ConfigurationPageComponent,
21
25
  BreadcrumbComponent,
22
- ConfigurationPageTitleComponent], imports: [CommonModule,
26
+ ConfigurationPageTitleComponent,
27
+ DurationTimelineComponent,
28
+ DurationProgressbarComponent], imports: [CommonModule,
23
29
  RouterModule,
24
30
  FormsModule,
25
31
  ReactiveFormsModule,
@@ -29,10 +35,14 @@ class ContainersModule {
29
35
  MatFormFieldModule,
30
36
  MatIconModule,
31
37
  MatInputModule,
32
- MatToolbarModule], exports: [CentralizedContainerComponent,
38
+ MatToolbarModule,
39
+ PipeModule,
40
+ MatTooltipModule], exports: [CentralizedContainerComponent,
33
41
  ConfigurationPageComponent,
34
42
  BreadcrumbComponent,
35
- ConfigurationPageTitleComponent] });
43
+ ConfigurationPageTitleComponent,
44
+ DurationTimelineComponent,
45
+ DurationProgressbarComponent] });
36
46
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ContainersModule, imports: [CommonModule,
37
47
  RouterModule,
38
48
  FormsModule,
@@ -43,7 +53,9 @@ class ContainersModule {
43
53
  MatFormFieldModule,
44
54
  MatIconModule,
45
55
  MatInputModule,
46
- MatToolbarModule] });
56
+ MatToolbarModule,
57
+ PipeModule,
58
+ MatTooltipModule] });
47
59
  }
48
60
  export { ContainersModule };
49
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ContainersModule, decorators: [{
@@ -60,21 +72,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
60
72
  MatFormFieldModule,
61
73
  MatIconModule,
62
74
  MatInputModule,
63
- MatToolbarModule
75
+ MatToolbarModule,
76
+ PipeModule,
77
+ MatTooltipModule
64
78
  ],
65
79
  declarations: [
66
80
  CentralizedContainerComponent,
67
81
  ConfigurationPageComponent,
68
82
  BreadcrumbComponent,
69
- ConfigurationPageTitleComponent
83
+ ConfigurationPageTitleComponent,
84
+ DurationTimelineComponent,
85
+ DurationProgressbarComponent
70
86
  ],
71
87
  exports: [
72
88
  CentralizedContainerComponent,
73
89
  ConfigurationPageComponent,
74
90
  BreadcrumbComponent,
75
- ConfigurationPageTitleComponent
91
+ ConfigurationPageTitleComponent,
92
+ DurationTimelineComponent,
93
+ DurationProgressbarComponent
76
94
  ],
77
95
  providers: []
78
96
  }]
79
97
  }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb250YWluZXJzL3NyYy9jb250YWluZXJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFBO0FBQ3ZHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFBO0FBQ3RHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7O0FBQy9HLE1BNEJhLGdCQUFnQjt1R0FBaEIsZ0JBQWdCO3dHQUFoQixnQkFBZ0IsaUJBYnpCLDZCQUE2QjtZQUM3QiwwQkFBMEI7WUFDMUIsbUJBQW1CO1lBQ25CLCtCQUErQixhQWhCL0IsWUFBWTtZQUNaLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsY0FBYztZQUNkLGdCQUFnQixhQVNoQiw2QkFBNkI7WUFDN0IsMEJBQTBCO1lBQzFCLG1CQUFtQjtZQUNuQiwrQkFBK0I7d0dBSXRCLGdCQUFnQixZQTFCekIsWUFBWTtZQUNaLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsY0FBYztZQUNkLGdCQUFnQjs7U0FnQlAsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBNUI1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLCtCQUErQjtxQkFDaEM7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgQ2VudHJhbGl6ZWRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbnRyYWxpemVkLWNvbnRhaW5lci9jZW50cmFsaXplZC1jb250YWluZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24tcGFnZS1jb250ZW50L2NvbmZpZ3VyYXRpb24tcGFnZS5jb21wb25lbnQnXG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50J1xuaW1wb3J0IHsgTmdTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICduZ3gtc2Nyb2xsYmFyJ1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCdcbmltcG9ydCB7IEljb25zTW9kdWxlIH0gZnJvbSAnQGFwaXBhc3MvaWNvbnMnXG5pbXBvcnQgeyBCdXR0b25zTW9kdWxlIH0gZnJvbSAnQGFwaXBhc3MvYnV0dG9ucydcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJ1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblBhZ2VUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY29uZmlndXJhdGlvbi1wYWdlLXRpdGxlL2NvbmZpZ3VyYXRpb24tcGFnZS10aXRsZS5jb21wb25lbnQnXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEljb25zTW9kdWxlLFxuICAgIEJ1dHRvbnNNb2R1bGUsXG4gICAgTmdTY3JvbGxiYXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDZW50cmFsaXplZENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBDb25maWd1cmF0aW9uUGFnZUNvbXBvbmVudCxcbiAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxuICAgIENvbmZpZ3VyYXRpb25QYWdlVGl0bGVDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENlbnRyYWxpemVkQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIENvbmZpZ3VyYXRpb25QYWdlQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQ29uZmlndXJhdGlvblBhZ2VUaXRsZUNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhaW5lcnNNb2R1bGUge31cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb250YWluZXJzL3NyYy9jb250YWluZXJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFBO0FBQ3ZHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFBO0FBQ3RHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtEQUErRCxDQUFBO0FBQy9HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOztBQUM5RyxNQWtDYSxnQkFBZ0I7dUdBQWhCLGdCQUFnQjt3R0FBaEIsZ0JBQWdCLGlCQWpCekIsNkJBQTZCO1lBQzdCLDBCQUEwQjtZQUMxQixtQkFBbUI7WUFDbkIsK0JBQStCO1lBQy9CLHlCQUF5QjtZQUN6Qiw0QkFBNEIsYUFwQjVCLFlBQVk7WUFDWixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLGdCQUFnQixhQVdoQiw2QkFBNkI7WUFDN0IsMEJBQTBCO1lBQzFCLG1CQUFtQjtZQUNuQiwrQkFBK0I7WUFDL0IseUJBQXlCO1lBQ3pCLDRCQUE0Qjt3R0FJbkIsZ0JBQWdCLFlBaEN6QixZQUFZO1lBQ1osWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixnQkFBZ0I7O1NBb0JQLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQWxDNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsZ0JBQWdCO3FCQUNqQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osNkJBQTZCO3dCQUM3QiwwQkFBMEI7d0JBQzFCLG1CQUFtQjt3QkFDbkIsK0JBQStCO3dCQUMvQix5QkFBeUI7d0JBQ3pCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLCtCQUErQjt3QkFDL0IseUJBQXlCO3dCQUN6Qiw0QkFBNEI7cUJBQzdCO29CQUNELFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IENlbnRyYWxpemVkQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jZW50cmFsaXplZC1jb250YWluZXIvY2VudHJhbGl6ZWQtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25QYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXBhZ2UtY29udGVudC9jb25maWd1cmF0aW9uLXBhZ2UuY29tcG9uZW50J1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCdcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcidcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnXG5pbXBvcnQgeyBJY29uc01vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL2ljb25zJ1xuaW1wb3J0IHsgQnV0dG9uc01vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL2J1dHRvbnMnXG5pbXBvcnQgeyBQaXBlTW9kdWxlIH0gZnJvbSAnQGFwaXBhc3MvcGlwZXMnXG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcidcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25QYWdlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24tcGFnZS10aXRsZS9jb25maWd1cmF0aW9uLXBhZ2UtdGl0bGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRHVyYXRpb25UaW1lbGluZUNvbXBvbmVudCB9IGZyb20gJy4vZHVyYXRpb24vZHVyYXRpb24tdGltZWxpbmUvZHVyYXRpb24tdGltZWxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IER1cmF0aW9uUHJvZ3Jlc3NiYXJDb21wb25lbnQgfSBmcm9tICcuL2R1cmF0aW9uL2R1cmF0aW9uLXByb2dyZXNzYmFyL2R1cmF0aW9uLXByb2dyZXNzYmFyLmNvbXBvbmVudCc7XG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEljb25zTW9kdWxlLFxuICAgIEJ1dHRvbnNNb2R1bGUsXG4gICAgTmdTY3JvbGxiYXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBQaXBlTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQ2VudHJhbGl6ZWRDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlndXJhdGlvblBhZ2VDb21wb25lbnQsXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBDb25maWd1cmF0aW9uUGFnZVRpdGxlQ29tcG9uZW50LFxuICAgIER1cmF0aW9uVGltZWxpbmVDb21wb25lbnQsXG4gICAgRHVyYXRpb25Qcm9ncmVzc2JhckNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ2VudHJhbGl6ZWRDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlndXJhdGlvblBhZ2VDb21wb25lbnQsXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBDb25maWd1cmF0aW9uUGFnZVRpdGxlQ29tcG9uZW50LFxuICAgIER1cmF0aW9uVGltZWxpbmVDb21wb25lbnQsXG4gICAgRHVyYXRpb25Qcm9ncmVzc2JhckNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhaW5lcnNNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,116 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { DurationPipe } from '@apipass/pipes';
3
+ import moment from 'moment';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@apipass/pipes";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/material/tooltip";
8
+ class DurationProgressbarComponent {
9
+ durationPipe;
10
+ running;
11
+ _startDate;
12
+ _endDate;
13
+ _startPartDate;
14
+ _endPartDate;
15
+ barHeight = 20;
16
+ progressHeight = 18;
17
+ runningTooltip = 'Running';
18
+ progressTooltipConjunction = 'of';
19
+ totalDurationTime;
20
+ partDurationTime;
21
+ startPercentage;
22
+ progressWidth;
23
+ constructor(durationPipe) {
24
+ this.durationPipe = durationPipe;
25
+ }
26
+ set startPartDate(date) {
27
+ this._startPartDate = this.stringToDate(date);
28
+ this.initialize().then();
29
+ }
30
+ get startPartDate() {
31
+ return this._startPartDate;
32
+ }
33
+ set endPartDate(date) {
34
+ this._endPartDate = this.stringToDate(date);
35
+ this.initialize().then();
36
+ }
37
+ get endPartDate() {
38
+ return this._endPartDate;
39
+ }
40
+ set startDate(date) {
41
+ this._startDate = this.stringToDate(date);
42
+ this.initialize().then();
43
+ }
44
+ get startDate() {
45
+ return this._startDate;
46
+ }
47
+ set endDate(date) {
48
+ this._endDate = this.stringToDate(date);
49
+ this.initialize().then();
50
+ }
51
+ get endDate() {
52
+ return this._endDate;
53
+ }
54
+ async ngOnInit() {
55
+ await this.initialize();
56
+ }
57
+ async initialize() {
58
+ this.running = false;
59
+ if (!this.startDate || !this.startPartDate) {
60
+ return;
61
+ }
62
+ if (!this.endPartDate) {
63
+ this.running = true;
64
+ }
65
+ const startPartGapTime = this.getTotalDuration(this.startDate, this.startPartDate);
66
+ this.totalDurationTime = this.getTotalDuration(this.startDate, this.endDate || moment().toDate());
67
+ this.partDurationTime = this.getTotalDuration(this.startPartDate, this.endPartDate || moment().toDate());
68
+ this.startPercentage = Math.round((100 * startPartGapTime) / this.totalDurationTime);
69
+ this.progressWidth = Math.round((100 * this.partDurationTime) / this.totalDurationTime);
70
+ if (this.progressWidth > 100) {
71
+ this.progressWidth = 100;
72
+ }
73
+ if (this.startPercentage + this.progressWidth > 100) {
74
+ this.startPercentage = 100 - this.progressWidth;
75
+ }
76
+ }
77
+ getTotalDuration(startDate, endDate) {
78
+ return moment(endDate).diff(moment(startDate), 'milliseconds');
79
+ }
80
+ stringToDate(date) {
81
+ if (!date) {
82
+ return null;
83
+ }
84
+ return date instanceof String ? new Date(date) : date;
85
+ }
86
+ getTooltipText() {
87
+ if (this.running) {
88
+ return `${this.runningTooltip} (${this.durationPipe.transform(this.partDurationTime)})`;
89
+ }
90
+ return `${this.durationPipe.transform(this.partDurationTime)} (${this.progressWidth.toFixed(0)}%) ${this.progressTooltipConjunction} ${this.durationPipe.transform(this.totalDurationTime)}`;
91
+ }
92
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DurationProgressbarComponent, deps: [{ token: i1.DurationPipe }], target: i0.ɵɵFactoryTarget.Component });
93
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: DurationProgressbarComponent, selector: "duration-progressbar-component", inputs: { barHeight: "barHeight", progressHeight: "progressHeight", runningTooltip: "runningTooltip", progressTooltipConjunction: "progressTooltipConjunction", startPartDate: "startPartDate", endPartDate: "endPartDate", startDate: "startDate", endDate: "endDate" }, ngImport: i0, template: "<div class=\"duration-progressbar-component\" [ngClass]=\"{'duration-progressbar-component-running': running}\" [style.height.px]=\"barHeight\">\n <div class=\"duration-current-progress\"\n [ngClass]=\"{'duration-current-progress-running': running}\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n </div>\n <div class=\"duration-value\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n <span class=\"duration-text\" [style.height.px]=\"progressHeight\" [ngClass]=\"{'duration-text-running': running}\">\n {{partDurationTime | durationTime}} ({{progressWidth.toFixed(0)}}%)\n </span>\n </div>\n</div>\n", styles: [".duration-progressbar-component{width:100%;background:#FFF;border:1px solid #F3F5F8;box-sizing:border-box;font-size:12px;border-radius:40px;position:relative}.duration-progressbar-component .duration-current-progress{background:var(--color-primary);min-width:1%;max-width:100%;border:1px solid #F3F5F8;cursor:pointer;margin-top:-1px;border-radius:40px;filter:brightness(2);position:absolute}.duration-progressbar-component .duration-current-progress.duration-current-progress-running{background:var(--color-secondary-hover);filter:brightness(1)}.duration-progressbar-component .duration-value{position:absolute;display:block;cursor:pointer;border-radius:40px;text-overflow:ellipsis;overflow:hidden;white-space:break-spaces;text-align:center}.duration-progressbar-component .duration-value .duration-text{display:flex;justify-content:center;align-items:center;width:100%;color:#fff;text-overflow:clip;overflow:hidden;white-space:break-spaces}.duration-progressbar-component .duration-value .duration-text.duration-text-running{color:var(--color-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.DurationPipe, name: "durationTime" }] });
94
+ }
95
+ export { DurationProgressbarComponent };
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DurationProgressbarComponent, decorators: [{
97
+ type: Component,
98
+ args: [{ selector: 'duration-progressbar-component', template: "<div class=\"duration-progressbar-component\" [ngClass]=\"{'duration-progressbar-component-running': running}\" [style.height.px]=\"barHeight\">\n <div class=\"duration-current-progress\"\n [ngClass]=\"{'duration-current-progress-running': running}\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n </div>\n <div class=\"duration-value\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n <span class=\"duration-text\" [style.height.px]=\"progressHeight\" [ngClass]=\"{'duration-text-running': running}\">\n {{partDurationTime | durationTime}} ({{progressWidth.toFixed(0)}}%)\n </span>\n </div>\n</div>\n", styles: [".duration-progressbar-component{width:100%;background:#FFF;border:1px solid #F3F5F8;box-sizing:border-box;font-size:12px;border-radius:40px;position:relative}.duration-progressbar-component .duration-current-progress{background:var(--color-primary);min-width:1%;max-width:100%;border:1px solid #F3F5F8;cursor:pointer;margin-top:-1px;border-radius:40px;filter:brightness(2);position:absolute}.duration-progressbar-component .duration-current-progress.duration-current-progress-running{background:var(--color-secondary-hover);filter:brightness(1)}.duration-progressbar-component .duration-value{position:absolute;display:block;cursor:pointer;border-radius:40px;text-overflow:ellipsis;overflow:hidden;white-space:break-spaces;text-align:center}.duration-progressbar-component .duration-value .duration-text{display:flex;justify-content:center;align-items:center;width:100%;color:#fff;text-overflow:clip;overflow:hidden;white-space:break-spaces}.duration-progressbar-component .duration-value .duration-text.duration-text-running{color:var(--color-primary)}\n"] }]
99
+ }], ctorParameters: function () { return [{ type: i1.DurationPipe }]; }, propDecorators: { barHeight: [{
100
+ type: Input
101
+ }], progressHeight: [{
102
+ type: Input
103
+ }], runningTooltip: [{
104
+ type: Input
105
+ }], progressTooltipConjunction: [{
106
+ type: Input
107
+ }], startPartDate: [{
108
+ type: Input
109
+ }], endPartDate: [{
110
+ type: Input
111
+ }], startDate: [{
112
+ type: Input
113
+ }], endDate: [{
114
+ type: Input
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tcHJvZ3Jlc3NiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29udGFpbmVycy9zcmMvZHVyYXRpb24vZHVyYXRpb24tcHJvZ3Jlc3NiYXIvZHVyYXRpb24tcHJvZ3Jlc3NiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29udGFpbmVycy9zcmMvZHVyYXRpb24vZHVyYXRpb24tcHJvZ3Jlc3NiYXIvZHVyYXRpb24tcHJvZ3Jlc3NiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFFNUIsTUFLYSw0QkFBNEI7SUEyQlY7SUF6QnRCLE9BQU8sQ0FBUztJQUVmLFVBQVUsQ0FBTztJQUNqQixRQUFRLENBQU87SUFDZixjQUFjLENBQU87SUFDckIsWUFBWSxDQUFPO0lBR3BCLFNBQVMsR0FBVyxFQUFFLENBQUE7SUFHdEIsY0FBYyxHQUFXLEVBQUUsQ0FBQTtJQUczQixjQUFjLEdBQVcsU0FBUyxDQUFBO0lBR2xDLDBCQUEwQixHQUFHLElBQUksQ0FBQTtJQUVqQyxpQkFBaUIsQ0FBUztJQUMxQixnQkFBZ0IsQ0FBUztJQUV6QixlQUFlLENBQVM7SUFDeEIsYUFBYSxDQUFRO0lBRTVCLFlBQTZCLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ3ZELENBQUM7SUFFRCxJQUNJLGFBQWEsQ0FBQyxJQUFtQjtRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElB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b25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER1cmF0aW9uUGlwZSB9IGZyb20gJ0BhcGlwYXNzL3BpcGVzJ1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkdXJhdGlvbi1wcm9ncmVzc2Jhci1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJ2R1cmF0aW9uLXByb2dyZXNzYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2R1cmF0aW9uLXByb2dyZXNzYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHVyYXRpb25Qcm9ncmVzc2JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHJ1bm5pbmc6IGJvb2xlYW5cblxuICBwcml2YXRlIF9zdGFydERhdGU6IERhdGU7XG4gIHByaXZhdGUgX2VuZERhdGU6IERhdGU7XG4gIHByaXZhdGUgX3N0YXJ0UGFydERhdGU6IERhdGU7XG4gIHByaXZhdGUgX2VuZFBhcnREYXRlOiBEYXRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBiYXJIZWlnaHQ6IG51bWJlciA9IDIwXG5cbiAgQElucHV0KClcbiAgcHVibGljIHByb2dyZXNzSGVpZ2h0OiBudW1iZXIgPSAxOFxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBydW5uaW5nVG9vbHRpcDogc3RyaW5nID0gJ1J1bm5pbmcnXG5cbiAgQElucHV0KClcbiAgcHVibGljIHByb2dyZXNzVG9vbHRpcENvbmp1bmN0aW9uID0gJ29mJ1xuXG4gIHB1YmxpYyB0b3RhbER1cmF0aW9uVGltZTogbnVtYmVyO1xuICBwdWJsaWMgcGFydER1cmF0aW9uVGltZTogbnVtYmVyO1xuXG4gIHB1YmxpYyBzdGFydFBlcmNlbnRhZ2U6IG51bWJlcjtcbiAgcHVibGljIHByb2dyZXNzV2lkdGg6IG51bWJlclxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZHVyYXRpb25QaXBlOiBEdXJhdGlvblBpcGUpIHtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBzdGFydFBhcnREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdGFydFBhcnREYXRlID0gdGhpcy5zdHJpbmdUb0RhdGUoZGF0ZSk7XG4gICAgdGhpcy5pbml0aWFsaXplKCkudGhlbigpXG4gIH1cblxuICBnZXQgc3RhcnRQYXJ0RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRQYXJ0RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBlbmRQYXJ0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fZW5kUGFydERhdGUgPSB0aGlzLnN0cmluZ1RvRGF0ZShkYXRlKTtcbiAgICB0aGlzLmluaXRpYWxpemUoKS50aGVuKClcbiAgfVxuXG4gIGdldCBlbmRQYXJ0RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kUGFydERhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc3RhcnREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdGFydERhdGUgPSB0aGlzLnN0cmluZ1RvRGF0ZShkYXRlKTtcbiAgICB0aGlzLmluaXRpYWxpemUoKS50aGVuKClcbiAgfVxuXG4gIGdldCBzdGFydERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBlbmREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9lbmREYXRlID0gdGhpcy5zdHJpbmdUb0RhdGUoZGF0ZSk7XG4gICAgdGhpcy5pbml0aWFsaXplKCkudGhlbigpXG4gIH1cblxuICBnZXQgZW5kRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kRGF0ZTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSB8fCAhdGhpcy5zdGFydFBhcnREYXRlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKCF0aGlzLmVuZFBhcnREYXRlKSB7XG4gICAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0UGFydEdhcFRpbWUgPSB0aGlzLmdldFRvdGFsRHVyYXRpb24odGhpcy5zdGFydERhdGUsIHRoaXMuc3RhcnRQYXJ0RGF0ZSk7XG4gICAgdGhpcy50b3RhbER1cmF0aW9uVGltZSA9IHRoaXMuZ2V0VG90YWxEdXJhdGlvbih0aGlzLnN0YXJ0RGF0ZSwgdGhpcy5lbmREYXRlIHx8IG1vbWVudCgpLnRvRGF0ZSgpKTtcbiAgICB0aGlzLnBhcnREdXJhdGlvblRpbWUgPSB0aGlzLmdldFRvdGFsRHVyYXRpb24odGhpcy5zdGFydFBhcnREYXRlLCB0aGlzLmVuZFBhcnREYXRlIHx8IG1vbWVudCgpLnRvRGF0ZSgpKTtcblxuICAgIHRoaXMuc3RhcnRQZXJjZW50YWdlID0gTWF0aC5yb3VuZCgoMTAwICogc3RhcnRQYXJ0R2FwVGltZSkgLyB0aGlzLnRvdGFsRHVyYXRpb25UaW1lKVxuICAgIHRoaXMucHJvZ3Jlc3NXaWR0aCA9IE1hdGgucm91bmQoKDEwMCAqIHRoaXMucGFydER1cmF0aW9uVGltZSkgLyB0aGlzLnRvdGFsRHVyYXRpb25UaW1lKVxuXG4gICAgaWYgKHRoaXMucHJvZ3Jlc3NXaWR0aCA+IDEwMCkge1xuICAgICAgdGhpcy5wcm9ncmVzc1dpZHRoID0gMTAwXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhcnRQZXJjZW50YWdlICsgdGhpcy5wcm9ncmVzc1dpZHRoID4gMTAwKSB7XG4gICAgICB0aGlzLnN0YXJ0UGVyY2VudGFnZSA9IDEwMCAtIHRoaXMucHJvZ3Jlc3NXaWR0aFxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUb3RhbER1cmF0aW9uKHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vbWVudChlbmREYXRlKS5kaWZmKG1vbWVudChzdGFydERhdGUpLCAnbWlsbGlzZWNvbmRzJylcbiAgfVxuXG4gIHB1YmxpYyBzdHJpbmdUb0RhdGUoZGF0ZTogRGF0ZSB8IHN0cmluZyk6IERhdGUge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBkYXRlIGluc3RhbmNlb2YgU3RyaW5nID8gbmV3IERhdGUoZGF0ZSkgOiBkYXRlIGFzIERhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0VG9vbHRpcFRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5ydW5uaW5nKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5ydW5uaW5nVG9vbHRpcH0gKCR7dGhpcy5kdXJhdGlvblBpcGUudHJhbnNmb3JtKHRoaXMucGFydER1cmF0aW9uVGltZSl9KWBcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMuZHVyYXRpb25QaXBlLnRyYW5zZm9ybSh0aGlzLnBhcnREdXJhdGlvblRpbWUpfSAoJHt0aGlzLnByb2dyZXNzV2lkdGgudG9GaXhlZCgwKX0lKSAke3RoaXMucHJvZ3Jlc3NUb29sdGlwQ29uanVuY3Rpb259ICR7dGhpcy5kdXJhdGlvblBpcGUudHJhbnNmb3JtKHRoaXMudG90YWxEdXJhdGlvblRpbWUpfWBcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZHVyYXRpb24tcHJvZ3Jlc3NiYXItY29tcG9uZW50XCIgW25nQ2xhc3NdPVwieydkdXJhdGlvbi1wcm9ncmVzc2Jhci1jb21wb25lbnQtcnVubmluZyc6IHJ1bm5pbmd9XCIgW3N0eWxlLmhlaWdodC5weF09XCJiYXJIZWlnaHRcIj5cbiAgPGRpdiBjbGFzcz1cImR1cmF0aW9uLWN1cnJlbnQtcHJvZ3Jlc3NcIlxuICAgICAgIFtuZ0NsYXNzXT1cInsnZHVyYXRpb24tY3VycmVudC1wcm9ncmVzcy1ydW5uaW5nJzogcnVubmluZ31cIlxuICAgICAgIFttYXRUb29sdGlwXT1cImdldFRvb2x0aXBUZXh0KClcIlxuICAgICAgIFtzdHlsZS5tYXJnaW4tbGVmdC4lXT1cInN0YXJ0UGVyY2VudGFnZVwiXG4gICAgICAgW3N0eWxlLndpZHRoLiVdPVwicHJvZ3Jlc3NXaWR0aFwiXG4gICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJwcm9ncmVzc0hlaWdodFwiPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImR1cmF0aW9uLXZhbHVlXCJcbiAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRUb29sdGlwVGV4dCgpXCJcbiAgICAgICBbc3R5bGUubWFyZ2luLWxlZnQuJV09XCJzdGFydFBlcmNlbnRhZ2VcIlxuICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInByb2dyZXNzV2lkdGhcIlxuICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicHJvZ3Jlc3NIZWlnaHRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZHVyYXRpb24tdGV4dFwiIFtzdHlsZS5oZWlnaHQucHhdPVwicHJvZ3Jlc3NIZWlnaHRcIiBbbmdDbGFzc109XCJ7J2R1cmF0aW9uLXRleHQtcnVubmluZyc6IHJ1bm5pbmd9XCI+XG4gICAgICAgIHt7cGFydER1cmF0aW9uVGltZSB8IGR1cmF0aW9uVGltZX19ICh7e3Byb2dyZXNzV2lkdGgudG9GaXhlZCgwKX19JSlcbiAgICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,93 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import moment from 'moment';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/material/tooltip";
6
+ import * as i3 from "@apipass/pipes";
7
+ class DurationTimelineComponent {
8
+ timeLineParts = [];
9
+ running;
10
+ _startDate;
11
+ _endDate;
12
+ _durationParts = 0;
13
+ /*
14
+ * If this option is true, depending on the total duration time and numbers of the duration parts, numbers can be repeated on timeline.
15
+ */
16
+ onlyLargestUnit;
17
+ runningLabel = '---';
18
+ runningTooltip = 'Running';
19
+ set startDate(date) {
20
+ this._startDate = this.stringToDate(date);
21
+ this.initialize().then();
22
+ }
23
+ get startDate() {
24
+ return this._startDate;
25
+ }
26
+ set endDate(date) {
27
+ this._endDate = this.stringToDate(date);
28
+ this.initialize().then();
29
+ }
30
+ get endDate() {
31
+ return this._endDate;
32
+ }
33
+ set durationParts(parts) {
34
+ this._durationParts = parts;
35
+ this.initialize().then();
36
+ }
37
+ get durationParts() {
38
+ return this._durationParts;
39
+ }
40
+ async ngOnInit() {
41
+ await this.initialize();
42
+ }
43
+ async initialize() {
44
+ this.running = false;
45
+ if (!this.startDate || !this.durationParts) {
46
+ return;
47
+ }
48
+ if (!this.endDate) {
49
+ this.running = true;
50
+ }
51
+ const durationTime = this.getTotalDuration(this.endDate || moment().toDate());
52
+ if (durationTime <= 0) {
53
+ return;
54
+ }
55
+ this.timeLineParts = [];
56
+ const timeAggregation = durationTime / this.durationParts;
57
+ for (let i = 0; i < this.durationParts; i++) {
58
+ this.timeLineParts.push(timeAggregation * (i + 1));
59
+ }
60
+ }
61
+ getTotalDuration(endDate) {
62
+ return moment(this.endDate).diff(moment(this.startDate), 'milliseconds');
63
+ }
64
+ stringToDate(date) {
65
+ if (!date) {
66
+ return null;
67
+ }
68
+ return date instanceof String ? new Date(date) : date;
69
+ }
70
+ getDurationWidth() {
71
+ return `${100 / this._durationParts}%`;
72
+ }
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DurationTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: DurationTimelineComponent, selector: "duration-timeline-component", inputs: { onlyLargestUnit: "onlyLargestUnit", runningLabel: "runningLabel", runningTooltip: "runningTooltip", startDate: "startDate", endDate: "endDate", durationParts: "durationParts" }, ngImport: i0, template: "<div class=\"duration-timeline-component\" *ngIf=\"timeLineParts?.length > 0\">\n <div class=\"duration-timeline\">\n <div class=\"duration-item\"\n [style.width]=\"getDurationWidth()\"\n [ngClass]=\"{ 'duration-item-first' : first, 'duration-item-last' : last }\"\n *ngFor=\"let duration of timeLineParts; let first = first; let last = last\">\n <span class=\"duration-label\" [matTooltip]=\"duration | durationTime: { onlyLargestUnit }\" *ngIf=\"!running || !last\">\n {{duration | durationTime: { onlyLargestUnit } }}\n </span>\n <span class=\"duration-label\" [matTooltip]=\"runningTooltip\" *ngIf=\"running && last\">\n {{runningLabel}}\n </span>\n </div>\n </div>\n</div>\n", styles: [".duration-timeline-component{width:100%;border-radius:40px;padding:2px;background:#FFF}.duration-timeline-component .duration-timeline{width:100%;border-radius:40px;background:linear-gradient(90deg,rgba(211,217,33,.4) 0%,rgba(5,207,252,.4) 50%,rgba(235,87,87,.4) 100%);display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;box-sizing:border-box}.duration-timeline-component .duration-timeline .duration-item{display:flex;justify-content:center;align-items:center;overflow:hidden;flex-wrap:nowrap;text-overflow:ellipsis;padding:3px 0;border-right:2px solid #FFF}.duration-timeline-component .duration-timeline .duration-item.duration-item-last{border-right:none}.duration-timeline-component .duration-timeline .duration-item .duration-label{width:100%;text-overflow:ellipsis;overflow:hidden;font-size:12px;font-weight:400;text-align:center;white-space:pre;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i3.DurationPipe, name: "durationTime" }] });
75
+ }
76
+ export { DurationTimelineComponent };
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DurationTimelineComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: 'duration-timeline-component', template: "<div class=\"duration-timeline-component\" *ngIf=\"timeLineParts?.length > 0\">\n <div class=\"duration-timeline\">\n <div class=\"duration-item\"\n [style.width]=\"getDurationWidth()\"\n [ngClass]=\"{ 'duration-item-first' : first, 'duration-item-last' : last }\"\n *ngFor=\"let duration of timeLineParts; let first = first; let last = last\">\n <span class=\"duration-label\" [matTooltip]=\"duration | durationTime: { onlyLargestUnit }\" *ngIf=\"!running || !last\">\n {{duration | durationTime: { onlyLargestUnit } }}\n </span>\n <span class=\"duration-label\" [matTooltip]=\"runningTooltip\" *ngIf=\"running && last\">\n {{runningLabel}}\n </span>\n </div>\n </div>\n</div>\n", styles: [".duration-timeline-component{width:100%;border-radius:40px;padding:2px;background:#FFF}.duration-timeline-component .duration-timeline{width:100%;border-radius:40px;background:linear-gradient(90deg,rgba(211,217,33,.4) 0%,rgba(5,207,252,.4) 50%,rgba(235,87,87,.4) 100%);display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;box-sizing:border-box}.duration-timeline-component .duration-timeline .duration-item{display:flex;justify-content:center;align-items:center;overflow:hidden;flex-wrap:nowrap;text-overflow:ellipsis;padding:3px 0;border-right:2px solid #FFF}.duration-timeline-component .duration-timeline .duration-item.duration-item-last{border-right:none}.duration-timeline-component .duration-timeline .duration-item .duration-label{width:100%;text-overflow:ellipsis;overflow:hidden;font-size:12px;font-weight:400;text-align:center;white-space:pre;cursor:pointer}\n"] }]
80
+ }], propDecorators: { onlyLargestUnit: [{
81
+ type: Input
82
+ }], runningLabel: [{
83
+ type: Input
84
+ }], runningTooltip: [{
85
+ type: Input
86
+ }], startDate: [{
87
+ type: Input
88
+ }], endDate: [{
89
+ type: Input
90
+ }], durationParts: [{
91
+ type: Input
92
+ }] } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tdGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29udGFpbmVycy9zcmMvZHVyYXRpb24vZHVyYXRpb24tdGltZWxpbmUvZHVyYXRpb24tdGltZWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29udGFpbmVycy9zcmMvZHVyYXRpb24vZHVyYXRpb24tdGltZWxpbmUvZHVyYXRpb24tdGltZWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7OztBQUU1QixNQUthLHlCQUF5QjtJQUU3QixhQUFhLEdBQWEsRUFBRSxDQUFDO0lBQzdCLE9BQU8sQ0FBUztJQUVmLFVBQVUsQ0FBTztJQUNqQixRQUFRLENBQU87SUFDZixjQUFjLEdBQVcsQ0FBQyxDQUFBO0lBRWxDOztPQUVHO0lBRUksZUFBZSxDQUFTO0lBR3hCLFlBQVksR0FBVyxLQUFLLENBQUE7SUFHNUIsY0FBYyxHQUFXLFNBQVMsQ0FBQTtJQUV6QyxJQUNJLFNBQVMsQ0FBQyxJQUFtQjtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ0ksT0FBTyxDQUFDLElBQW1CO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDVyxhQUFhLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVU7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzFDLE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLFlBQVksSUFBSSxDQUFDLEVBQUU7WUFDckIsT0FBTTtTQUNQO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsTUFBTSxlQUFlLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDMUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsT0FBYTtRQUNuQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFtQjtRQUNyQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQVksQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUE7SUFDeEMsQ0FBQzt1R0F4RlUseUJBQXlCOzJGQUF6Qix5QkFBeUIsK1BDUnRDLCt0QkFlQTs7U0RQYSx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSw2QkFBNkI7OEJBaUJoQyxlQUFlO3NCQURyQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJRixTQUFTO3NCQURaLEtBQUs7Z0JBV0YsT0FBTztzQkFEVixLQUFLO2dCQVdLLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHVyYXRpb24tdGltZWxpbmUtY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICdkdXJhdGlvbi10aW1lbGluZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkdXJhdGlvbi10aW1lbGluZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIER1cmF0aW9uVGltZWxpbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyB0aW1lTGluZVBhcnRzOiBudW1iZXJbXSA9IFtdO1xuICBwdWJsaWMgcnVubmluZzogYm9vbGVhblxuXG4gIHByaXZhdGUgX3N0YXJ0RGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfZW5kRGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfZHVyYXRpb25QYXJ0czogbnVtYmVyID0gMFxuXG4gIC8qXG4gICAqIElmIHRoaXMgb3B0aW9uIGlzIHRydWUsIGRlcGVuZGluZyBvbiB0aGUgdG90YWwgZHVyYXRpb24gdGltZSBhbmQgbnVtYmVycyBvZiB0aGUgZHVyYXRpb24gcGFydHMsIG51bWJlcnMgY2FuIGJlIHJlcGVhdGVkIG9uIHRpbWVsaW5lLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG9ubHlMYXJnZXN0VW5pdDogYm9vbGVhblxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBydW5uaW5nTGFiZWw6IHN0cmluZyA9ICctLS0nXG5cbiAgQElucHV0KClcbiAgcHVibGljIHJ1bm5pbmdUb29sdGlwOiBzdHJpbmcgPSAnUnVubmluZydcblxuICBASW5wdXQoKVxuICBzZXQgc3RhcnREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdGFydERhdGUgPSB0aGlzLnN0cmluZ1RvRGF0ZShkYXRlKTtcbiAgICB0aGlzLmluaXRpYWxpemUoKS50aGVuKClcbiAgfVxuXG4gIGdldCBzdGFydERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBlbmREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9lbmREYXRlID0gdGhpcy5zdHJpbmdUb0RhdGUoZGF0ZSk7XG4gICAgdGhpcy5pbml0aWFsaXplKCkudGhlbigpXG4gIH1cblxuICBnZXQgZW5kRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZHVyYXRpb25QYXJ0cyhwYXJ0czogbnVtYmVyKSB7XG4gICAgdGhpcy5fZHVyYXRpb25QYXJ0cyA9IHBhcnRzO1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpLnRoZW4oKVxuICB9XG5cbiAgZ2V0IGR1cmF0aW9uUGFydHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZHVyYXRpb25QYXJ0cztcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSB8fCAhdGhpcy5kdXJhdGlvblBhcnRzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKCF0aGlzLmVuZERhdGUpIHtcbiAgICAgIHRoaXMucnVubmluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZHVyYXRpb25UaW1lID0gdGhpcy5nZXRUb3RhbER1cmF0aW9uKHRoaXMuZW5kRGF0ZSB8fCBtb21lbnQoKS50b0RhdGUoKSk7XG4gICAgaWYgKGR1cmF0aW9uVGltZSA8PSAwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy50aW1lTGluZVBhcnRzID0gW107XG4gICAgY29uc3QgdGltZUFnZ3JlZ2F0aW9uID0gZHVyYXRpb25UaW1lIC8gdGhpcy5kdXJhdGlvblBhcnRzO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kdXJhdGlvblBhcnRzOyBpKyspIHtcbiAgICAgIHRoaXMudGltZUxpbmVQYXJ0cy5wdXNoKHRpbWVBZ2dyZWdhdGlvbiAqIChpICsgMSkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUb3RhbER1cmF0aW9uKGVuZERhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBtb21lbnQodGhpcy5lbmREYXRlKS5kaWZmKG1vbWVudCh0aGlzLnN0YXJ0RGF0ZSksICdtaWxsaXNlY29uZHMnKVxuICB9XG5cbiAgcHVibGljIHN0cmluZ1RvRGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogRGF0ZSB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBTdHJpbmcgPyBuZXcgRGF0ZShkYXRlKSA6IGRhdGUgYXMgRGF0ZTtcbiAgfVxuXG4gIGdldER1cmF0aW9uV2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7MTAwIC8gdGhpcy5fZHVyYXRpb25QYXJ0c30lYFxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJkdXJhdGlvbi10aW1lbGluZS1jb21wb25lbnRcIiAqbmdJZj1cInRpbWVMaW5lUGFydHM/Lmxlbmd0aCA+IDBcIj5cbiAgPGRpdiBjbGFzcz1cImR1cmF0aW9uLXRpbWVsaW5lXCI+XG4gICAgPGRpdiBjbGFzcz1cImR1cmF0aW9uLWl0ZW1cIlxuICAgICAgICAgW3N0eWxlLndpZHRoXT1cImdldER1cmF0aW9uV2lkdGgoKVwiXG4gICAgICAgICBbbmdDbGFzc109XCJ7ICdkdXJhdGlvbi1pdGVtLWZpcnN0JyA6IGZpcnN0LCAnZHVyYXRpb24taXRlbS1sYXN0JyA6IGxhc3QgfVwiXG4gICAgICAgICAqbmdGb3I9XCJsZXQgZHVyYXRpb24gb2YgdGltZUxpbmVQYXJ0czsgbGV0IGZpcnN0ID0gZmlyc3Q7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZHVyYXRpb24tbGFiZWxcIiBbbWF0VG9vbHRpcF09XCJkdXJhdGlvbiB8IGR1cmF0aW9uVGltZTogeyBvbmx5TGFyZ2VzdFVuaXQgfVwiICpuZ0lmPVwiIXJ1bm5pbmcgfHwgIWxhc3RcIj5cbiAgICAgIHt7ZHVyYXRpb24gfCBkdXJhdGlvblRpbWU6IHsgb25seUxhcmdlc3RVbml0IH0gfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJkdXJhdGlvbi1sYWJlbFwiIFttYXRUb29sdGlwXT1cInJ1bm5pbmdUb29sdGlwXCIgKm5nSWY9XCJydW5uaW5nICYmIGxhc3RcIj5cbiAgICAgIHt7cnVubmluZ0xhYmVsfX1cbiAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './duration-timeline/duration-timeline.component';
2
+ export * from './duration-progressbar/duration-progressbar.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbnRhaW5lcnMvc3JjL2R1cmF0aW9uL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLHVEQUF1RCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kdXJhdGlvbi10aW1lbGluZS9kdXJhdGlvbi10aW1lbGluZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2R1cmF0aW9uLXByb2dyZXNzYmFyL2R1cmF0aW9uLXByb2dyZXNzYmFyLmNvbXBvbmVudCdcbiJdfQ==
@@ -4,4 +4,5 @@ export * from './configuration-page-content/configuration-page.component';
4
4
  export * from './configuration-page-title/configuration-page-title.component';
5
5
  export * from './breadcrumb/breadcrumb.component';
6
6
  export * from 'ngx-scrollbar';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbnRhaW5lcnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYywrREFBK0QsQ0FBQTtBQUM3RSxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsZUFBZSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250YWluZXJzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vY2VudHJhbGl6ZWQtY29udGFpbmVyL2NlbnRyYWxpemVkLWNvbnRhaW5lci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyYXRpb24tcGFnZS1jb250ZW50L2NvbmZpZ3VyYXRpb24tcGFnZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyYXRpb24tcGFnZS10aXRsZS9jb25maWd1cmF0aW9uLXBhZ2UtdGl0bGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnbmd4LXNjcm9sbGJhcidcbiJdfQ==
7
+ export * from './duration/public-api';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbnRhaW5lcnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYywrREFBK0QsQ0FBQTtBQUM3RSxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsZUFBZSxDQUFBO0FBQzdCLGNBQWMsdUJBQXVCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lcnMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9jZW50cmFsaXplZC1jb250YWluZXIvY2VudHJhbGl6ZWQtY29udGFpbmVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlndXJhdGlvbi1wYWdlLWNvbnRlbnQvY29uZmlndXJhdGlvbi1wYWdlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlndXJhdGlvbi1wYWdlLXRpdGxlL2NvbmZpZ3VyYXRpb24tcGFnZS10aXRsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICduZ3gtc2Nyb2xsYmFyJ1xuZXhwb3J0ICogZnJvbSAnLi9kdXJhdGlvbi9wdWJsaWMtYXBpJ1xuIl19
@@ -22,6 +22,11 @@ import * as i2$1 from '@apipass/icons';
22
22
  import { IconsModule } from '@apipass/icons';
23
23
  import * as i3$2 from '@apipass/buttons';
24
24
  import { ButtonsModule } from '@apipass/buttons';
25
+ import * as i1$1 from '@apipass/pipes';
26
+ import { PipeModule } from '@apipass/pipes';
27
+ import moment from 'moment';
28
+ import * as i2$2 from '@angular/material/tooltip';
29
+ import { MatTooltipModule } from '@angular/material/tooltip';
25
30
 
26
31
  class CentralizedContainerComponent {
27
32
  searchTerm = '';
@@ -155,12 +160,208 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
155
160
  type: Output
156
161
  }] } });
157
162
 
163
+ class DurationTimelineComponent {
164
+ timeLineParts = [];
165
+ running;
166
+ _startDate;
167
+ _endDate;
168
+ _durationParts = 0;
169
+ /*
170
+ * If this option is true, depending on the total duration time and numbers of the duration parts, numbers can be repeated on timeline.
171
+ */
172
+ onlyLargestUnit;
173
+ runningLabel = '---';
174
+ runningTooltip = 'Running';
175
+ set startDate(date) {
176
+ this._startDate = this.stringToDate(date);
177
+ this.initialize().then();
178
+ }
179
+ get startDate() {
180
+ return this._startDate;
181
+ }
182
+ set endDate(date) {
183
+ this._endDate = this.stringToDate(date);
184
+ this.initialize().then();
185
+ }
186
+ get endDate() {
187
+ return this._endDate;
188
+ }
189
+ set durationParts(parts) {
190
+ this._durationParts = parts;
191
+ this.initialize().then();
192
+ }
193
+ get durationParts() {
194
+ return this._durationParts;
195
+ }
196
+ async ngOnInit() {
197
+ await this.initialize();
198
+ }
199
+ async initialize() {
200
+ this.running = false;
201
+ if (!this.startDate || !this.durationParts) {
202
+ return;
203
+ }
204
+ if (!this.endDate) {
205
+ this.running = true;
206
+ }
207
+ const durationTime = this.getTotalDuration(this.endDate || moment().toDate());
208
+ if (durationTime <= 0) {
209
+ return;
210
+ }
211
+ this.timeLineParts = [];
212
+ const timeAggregation = durationTime / this.durationParts;
213
+ for (let i = 0; i < this.durationParts; i++) {
214
+ this.timeLineParts.push(timeAggregation * (i + 1));
215
+ }
216
+ }
217
+ getTotalDuration(endDate) {
218
+ return moment(this.endDate).diff(moment(this.startDate), 'milliseconds');
219
+ }
220
+ stringToDate(date) {
221
+ if (!date) {
222
+ return null;
223
+ }
224
+ return date instanceof String ? new Date(date) : date;
225
+ }
226
+ getDurationWidth() {
227
+ return `${100 / this._durationParts}%`;
228
+ }
229
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DurationTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
230
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: DurationTimelineComponent, selector: "duration-timeline-component", inputs: { onlyLargestUnit: "onlyLargestUnit", runningLabel: "runningLabel", runningTooltip: "runningTooltip", startDate: "startDate", endDate: "endDate", durationParts: "durationParts" }, ngImport: i0, template: "<div class=\"duration-timeline-component\" *ngIf=\"timeLineParts?.length > 0\">\n <div class=\"duration-timeline\">\n <div class=\"duration-item\"\n [style.width]=\"getDurationWidth()\"\n [ngClass]=\"{ 'duration-item-first' : first, 'duration-item-last' : last }\"\n *ngFor=\"let duration of timeLineParts; let first = first; let last = last\">\n <span class=\"duration-label\" [matTooltip]=\"duration | durationTime: { onlyLargestUnit }\" *ngIf=\"!running || !last\">\n {{duration | durationTime: { onlyLargestUnit } }}\n </span>\n <span class=\"duration-label\" [matTooltip]=\"runningTooltip\" *ngIf=\"running && last\">\n {{runningLabel}}\n </span>\n </div>\n </div>\n</div>\n", styles: [".duration-timeline-component{width:100%;border-radius:40px;padding:2px;background:#FFF}.duration-timeline-component .duration-timeline{width:100%;border-radius:40px;background:linear-gradient(90deg,rgba(211,217,33,.4) 0%,rgba(5,207,252,.4) 50%,rgba(235,87,87,.4) 100%);display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;box-sizing:border-box}.duration-timeline-component .duration-timeline .duration-item{display:flex;justify-content:center;align-items:center;overflow:hidden;flex-wrap:nowrap;text-overflow:ellipsis;padding:3px 0;border-right:2px solid #FFF}.duration-timeline-component .duration-timeline .duration-item.duration-item-last{border-right:none}.duration-timeline-component .duration-timeline .duration-item .duration-label{width:100%;text-overflow:ellipsis;overflow:hidden;font-size:12px;font-weight:400;text-align:center;white-space:pre;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1$1.DurationPipe, name: "durationTime" }] });
231
+ }
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DurationTimelineComponent, decorators: [{
233
+ type: Component,
234
+ args: [{ selector: 'duration-timeline-component', template: "<div class=\"duration-timeline-component\" *ngIf=\"timeLineParts?.length > 0\">\n <div class=\"duration-timeline\">\n <div class=\"duration-item\"\n [style.width]=\"getDurationWidth()\"\n [ngClass]=\"{ 'duration-item-first' : first, 'duration-item-last' : last }\"\n *ngFor=\"let duration of timeLineParts; let first = first; let last = last\">\n <span class=\"duration-label\" [matTooltip]=\"duration | durationTime: { onlyLargestUnit }\" *ngIf=\"!running || !last\">\n {{duration | durationTime: { onlyLargestUnit } }}\n </span>\n <span class=\"duration-label\" [matTooltip]=\"runningTooltip\" *ngIf=\"running && last\">\n {{runningLabel}}\n </span>\n </div>\n </div>\n</div>\n", styles: [".duration-timeline-component{width:100%;border-radius:40px;padding:2px;background:#FFF}.duration-timeline-component .duration-timeline{width:100%;border-radius:40px;background:linear-gradient(90deg,rgba(211,217,33,.4) 0%,rgba(5,207,252,.4) 50%,rgba(235,87,87,.4) 100%);display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;box-sizing:border-box}.duration-timeline-component .duration-timeline .duration-item{display:flex;justify-content:center;align-items:center;overflow:hidden;flex-wrap:nowrap;text-overflow:ellipsis;padding:3px 0;border-right:2px solid #FFF}.duration-timeline-component .duration-timeline .duration-item.duration-item-last{border-right:none}.duration-timeline-component .duration-timeline .duration-item .duration-label{width:100%;text-overflow:ellipsis;overflow:hidden;font-size:12px;font-weight:400;text-align:center;white-space:pre;cursor:pointer}\n"] }]
235
+ }], propDecorators: { onlyLargestUnit: [{
236
+ type: Input
237
+ }], runningLabel: [{
238
+ type: Input
239
+ }], runningTooltip: [{
240
+ type: Input
241
+ }], startDate: [{
242
+ type: Input
243
+ }], endDate: [{
244
+ type: Input
245
+ }], durationParts: [{
246
+ type: Input
247
+ }] } });
248
+
249
+ class DurationProgressbarComponent {
250
+ durationPipe;
251
+ running;
252
+ _startDate;
253
+ _endDate;
254
+ _startPartDate;
255
+ _endPartDate;
256
+ barHeight = 20;
257
+ progressHeight = 18;
258
+ runningTooltip = 'Running';
259
+ progressTooltipConjunction = 'of';
260
+ totalDurationTime;
261
+ partDurationTime;
262
+ startPercentage;
263
+ progressWidth;
264
+ constructor(durationPipe) {
265
+ this.durationPipe = durationPipe;
266
+ }
267
+ set startPartDate(date) {
268
+ this._startPartDate = this.stringToDate(date);
269
+ this.initialize().then();
270
+ }
271
+ get startPartDate() {
272
+ return this._startPartDate;
273
+ }
274
+ set endPartDate(date) {
275
+ this._endPartDate = this.stringToDate(date);
276
+ this.initialize().then();
277
+ }
278
+ get endPartDate() {
279
+ return this._endPartDate;
280
+ }
281
+ set startDate(date) {
282
+ this._startDate = this.stringToDate(date);
283
+ this.initialize().then();
284
+ }
285
+ get startDate() {
286
+ return this._startDate;
287
+ }
288
+ set endDate(date) {
289
+ this._endDate = this.stringToDate(date);
290
+ this.initialize().then();
291
+ }
292
+ get endDate() {
293
+ return this._endDate;
294
+ }
295
+ async ngOnInit() {
296
+ await this.initialize();
297
+ }
298
+ async initialize() {
299
+ this.running = false;
300
+ if (!this.startDate || !this.startPartDate) {
301
+ return;
302
+ }
303
+ if (!this.endPartDate) {
304
+ this.running = true;
305
+ }
306
+ const startPartGapTime = this.getTotalDuration(this.startDate, this.startPartDate);
307
+ this.totalDurationTime = this.getTotalDuration(this.startDate, this.endDate || moment().toDate());
308
+ this.partDurationTime = this.getTotalDuration(this.startPartDate, this.endPartDate || moment().toDate());
309
+ this.startPercentage = Math.round((100 * startPartGapTime) / this.totalDurationTime);
310
+ this.progressWidth = Math.round((100 * this.partDurationTime) / this.totalDurationTime);
311
+ if (this.progressWidth > 100) {
312
+ this.progressWidth = 100;
313
+ }
314
+ if (this.startPercentage + this.progressWidth > 100) {
315
+ this.startPercentage = 100 - this.progressWidth;
316
+ }
317
+ }
318
+ getTotalDuration(startDate, endDate) {
319
+ return moment(endDate).diff(moment(startDate), 'milliseconds');
320
+ }
321
+ stringToDate(date) {
322
+ if (!date) {
323
+ return null;
324
+ }
325
+ return date instanceof String ? new Date(date) : date;
326
+ }
327
+ getTooltipText() {
328
+ if (this.running) {
329
+ return `${this.runningTooltip} (${this.durationPipe.transform(this.partDurationTime)})`;
330
+ }
331
+ return `${this.durationPipe.transform(this.partDurationTime)} (${this.progressWidth.toFixed(0)}%) ${this.progressTooltipConjunction} ${this.durationPipe.transform(this.totalDurationTime)}`;
332
+ }
333
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DurationProgressbarComponent, deps: [{ token: i1$1.DurationPipe }], target: i0.ɵɵFactoryTarget.Component });
334
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: DurationProgressbarComponent, selector: "duration-progressbar-component", inputs: { barHeight: "barHeight", progressHeight: "progressHeight", runningTooltip: "runningTooltip", progressTooltipConjunction: "progressTooltipConjunction", startPartDate: "startPartDate", endPartDate: "endPartDate", startDate: "startDate", endDate: "endDate" }, ngImport: i0, template: "<div class=\"duration-progressbar-component\" [ngClass]=\"{'duration-progressbar-component-running': running}\" [style.height.px]=\"barHeight\">\n <div class=\"duration-current-progress\"\n [ngClass]=\"{'duration-current-progress-running': running}\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n </div>\n <div class=\"duration-value\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n <span class=\"duration-text\" [style.height.px]=\"progressHeight\" [ngClass]=\"{'duration-text-running': running}\">\n {{partDurationTime | durationTime}} ({{progressWidth.toFixed(0)}}%)\n </span>\n </div>\n</div>\n", styles: [".duration-progressbar-component{width:100%;background:#FFF;border:1px solid #F3F5F8;box-sizing:border-box;font-size:12px;border-radius:40px;position:relative}.duration-progressbar-component .duration-current-progress{background:var(--color-primary);min-width:1%;max-width:100%;border:1px solid #F3F5F8;cursor:pointer;margin-top:-1px;border-radius:40px;filter:brightness(2);position:absolute}.duration-progressbar-component .duration-current-progress.duration-current-progress-running{background:var(--color-secondary-hover);filter:brightness(1)}.duration-progressbar-component .duration-value{position:absolute;display:block;cursor:pointer;border-radius:40px;text-overflow:ellipsis;overflow:hidden;white-space:break-spaces;text-align:center}.duration-progressbar-component .duration-value .duration-text{display:flex;justify-content:center;align-items:center;width:100%;color:#fff;text-overflow:clip;overflow:hidden;white-space:break-spaces}.duration-progressbar-component .duration-value .duration-text.duration-text-running{color:var(--color-primary)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1$1.DurationPipe, name: "durationTime" }] });
335
+ }
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DurationProgressbarComponent, decorators: [{
337
+ type: Component,
338
+ args: [{ selector: 'duration-progressbar-component', template: "<div class=\"duration-progressbar-component\" [ngClass]=\"{'duration-progressbar-component-running': running}\" [style.height.px]=\"barHeight\">\n <div class=\"duration-current-progress\"\n [ngClass]=\"{'duration-current-progress-running': running}\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n </div>\n <div class=\"duration-value\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n <span class=\"duration-text\" [style.height.px]=\"progressHeight\" [ngClass]=\"{'duration-text-running': running}\">\n {{partDurationTime | durationTime}} ({{progressWidth.toFixed(0)}}%)\n </span>\n </div>\n</div>\n", styles: [".duration-progressbar-component{width:100%;background:#FFF;border:1px solid #F3F5F8;box-sizing:border-box;font-size:12px;border-radius:40px;position:relative}.duration-progressbar-component .duration-current-progress{background:var(--color-primary);min-width:1%;max-width:100%;border:1px solid #F3F5F8;cursor:pointer;margin-top:-1px;border-radius:40px;filter:brightness(2);position:absolute}.duration-progressbar-component .duration-current-progress.duration-current-progress-running{background:var(--color-secondary-hover);filter:brightness(1)}.duration-progressbar-component .duration-value{position:absolute;display:block;cursor:pointer;border-radius:40px;text-overflow:ellipsis;overflow:hidden;white-space:break-spaces;text-align:center}.duration-progressbar-component .duration-value .duration-text{display:flex;justify-content:center;align-items:center;width:100%;color:#fff;text-overflow:clip;overflow:hidden;white-space:break-spaces}.duration-progressbar-component .duration-value .duration-text.duration-text-running{color:var(--color-primary)}\n"] }]
339
+ }], ctorParameters: function () { return [{ type: i1$1.DurationPipe }]; }, propDecorators: { barHeight: [{
340
+ type: Input
341
+ }], progressHeight: [{
342
+ type: Input
343
+ }], runningTooltip: [{
344
+ type: Input
345
+ }], progressTooltipConjunction: [{
346
+ type: Input
347
+ }], startPartDate: [{
348
+ type: Input
349
+ }], endPartDate: [{
350
+ type: Input
351
+ }], startDate: [{
352
+ type: Input
353
+ }], endDate: [{
354
+ type: Input
355
+ }] } });
356
+
158
357
  class ContainersModule {
159
358
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ContainersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
160
359
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: ContainersModule, declarations: [CentralizedContainerComponent,
161
360
  ConfigurationPageComponent,
162
361
  BreadcrumbComponent,
163
- ConfigurationPageTitleComponent], imports: [CommonModule,
362
+ ConfigurationPageTitleComponent,
363
+ DurationTimelineComponent,
364
+ DurationProgressbarComponent], imports: [CommonModule,
164
365
  RouterModule,
165
366
  FormsModule,
166
367
  ReactiveFormsModule,
@@ -170,10 +371,14 @@ class ContainersModule {
170
371
  MatFormFieldModule,
171
372
  MatIconModule,
172
373
  MatInputModule,
173
- MatToolbarModule], exports: [CentralizedContainerComponent,
374
+ MatToolbarModule,
375
+ PipeModule,
376
+ MatTooltipModule], exports: [CentralizedContainerComponent,
174
377
  ConfigurationPageComponent,
175
378
  BreadcrumbComponent,
176
- ConfigurationPageTitleComponent] });
379
+ ConfigurationPageTitleComponent,
380
+ DurationTimelineComponent,
381
+ DurationProgressbarComponent] });
177
382
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ContainersModule, imports: [CommonModule,
178
383
  RouterModule,
179
384
  FormsModule,
@@ -184,7 +389,9 @@ class ContainersModule {
184
389
  MatFormFieldModule,
185
390
  MatIconModule,
186
391
  MatInputModule,
187
- MatToolbarModule] });
392
+ MatToolbarModule,
393
+ PipeModule,
394
+ MatTooltipModule] });
188
395
  }
189
396
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ContainersModule, decorators: [{
190
397
  type: NgModule,
@@ -200,19 +407,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
200
407
  MatFormFieldModule,
201
408
  MatIconModule,
202
409
  MatInputModule,
203
- MatToolbarModule
410
+ MatToolbarModule,
411
+ PipeModule,
412
+ MatTooltipModule
204
413
  ],
205
414
  declarations: [
206
415
  CentralizedContainerComponent,
207
416
  ConfigurationPageComponent,
208
417
  BreadcrumbComponent,
209
- ConfigurationPageTitleComponent
418
+ ConfigurationPageTitleComponent,
419
+ DurationTimelineComponent,
420
+ DurationProgressbarComponent
210
421
  ],
211
422
  exports: [
212
423
  CentralizedContainerComponent,
213
424
  ConfigurationPageComponent,
214
425
  BreadcrumbComponent,
215
- ConfigurationPageTitleComponent
426
+ ConfigurationPageTitleComponent,
427
+ DurationTimelineComponent,
428
+ DurationProgressbarComponent
216
429
  ],
217
430
  providers: []
218
431
  }]
@@ -222,5 +435,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
222
435
  * Generated bundle index. Do not edit.
223
436
  */
224
437
 
225
- export { BreadcrumbComponent, CentralizedContainerComponent, ConfigurationPageComponent, ConfigurationPageTitleComponent, ContainersModule };
438
+ export { BreadcrumbComponent, CentralizedContainerComponent, ConfigurationPageComponent, ConfigurationPageTitleComponent, ContainersModule, DurationProgressbarComponent, DurationTimelineComponent };
226
439
  //# sourceMappingURL=apipass-containers.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"apipass-containers.mjs","sources":["../../../projects/containers/src/centralized-container/centralized-container.component.ts","../../../projects/containers/src/centralized-container/centralized-container.component.html","../../../projects/containers/src/configuration-page-content/configuration-page.component.ts","../../../projects/containers/src/configuration-page-content/configuration-page.component.html","../../../projects/containers/src/breadcrumb/breadcrumb.component.ts","../../../projects/containers/src/breadcrumb/breadcrumb.component.html","../../../projects/containers/src/configuration-page-title/configuration-page-title.component.ts","../../../projects/containers/src/configuration-page-title/configuration-page-title.component.html","../../../projects/containers/src/containers.module.ts","../../../projects/containers/src/apipass-containers.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'\nimport { NgScrollbar } from 'ngx-scrollbar'\n\n@Component({\n selector: 'centralized-container',\n templateUrl: 'centralized-container.component.html',\n styleUrls: ['centralized-container.component.scss']\n})\nexport class CentralizedContainerComponent {\n\n public searchTerm = ''\n\n @Input() public searchLabel: string\n @Input() public hasSearch = true\n @Input() public ignoreZoom = false\n\n @Output()\n public searchChanged = new EventEmitter<string>()\n\n @ViewChild(NgScrollbar, { static: true })\n public scrollbarRef: NgScrollbar | undefined\n\n public searchTermChanged (): void {\n this.searchChanged.emit(this.searchTerm)\n }\n\n}\n","<div class=\"centralized-container\" [ngClass]=\"{'centralized-container-zoom': !ignoreZoom}\">\n <ng-scrollbar [visibility]=\"'hover'\">\n <div class=\"list-content\">\n <div class=\"list-search\" *ngIf=\"hasSearch\">\n <mat-form-field>\n <mat-label *ngIf=\"searchLabel\">{{searchLabel}}</mat-label>\n <input matInput type=\"search\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"searchTermChanged()\" />\n <mat-icon class=\"search-icon\" matSuffix>search</mat-icon>\n </mat-form-field>\n </div>\n <ng-content></ng-content>\n </div>\n </ng-scrollbar>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'\nimport { NgScrollbar } from 'ngx-scrollbar'\nimport { Subject } from 'rxjs'\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators'\n\n@Component({\n selector: 'configuration-page-container',\n templateUrl: 'configuration-page.component.html',\n styleUrls: ['configuration-page.component.scss']\n})\nexport class ConfigurationPageComponent {\n\n public searchTerm = ''\n\n @Input() public verticalSeparate = false\n @Input() public footerPaginator = false\n @Input() public hasSearch = true\n @Input() public searchDebounceTime = 1000\n @Input() public searchLabel = ''\n\n txtQueryChanged: Subject<string> = new Subject<string>()\n\n @Output() public searchChanged = new EventEmitter<string>()\n @Output() public searchClick = new EventEmitter<string>()\n\n @ViewChild(NgScrollbar, { static: true })\n public scrollbarRef: NgScrollbar | undefined\n\n constructor () {\n this.txtQueryChanged.pipe(\n debounceTime(this.searchDebounceTime),\n distinctUntilChanged()).subscribe(model => { this.searchChanged.next(model) }\n )\n }\n\n public searchTermChanged (): void {\n this.txtQueryChanged.next(this.searchTerm)\n }\n\n public searchIconClick (): void {\n this.searchClick.next(this.searchTerm)\n }\n\n}\n","<div class=\"configuration-page-container\" [ngClass]=\"{'footer-paginator': footerPaginator}\">\n <ng-scrollbar [visibility]=\"'hover'\">\n <div class=\"list-content\">\n <div class=\"list-search\" *ngIf=\"hasSearch\">\n <mat-form-field class=\"apipass-search-input-text search-input-item small-text\"\n [ngClass]=\"{'label-input': searchLabel}\"\n appearance=\"outline\">\n <mat-label *ngIf=\"searchLabel\">{{searchLabel}}</mat-label>\n <input matInput type=\"search\" class=\"search-input\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"searchTermChanged()\"\n />\n <mat-icon class=\"search-icon\" matSuffix (click)=\"searchIconClick()\">search</mat-icon>\n </mat-form-field>\n </div>\n\n <div class=\"container-content\" [ngClass]=\"{'vertical-separate': verticalSeparate}\">\n <ng-content></ng-content>\n </div>\n </div>\n </ng-scrollbar>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core'\n\n@Component({\n selector: 'breadcrumb-component',\n templateUrl: 'breadcrumb.component.html',\n styleUrls: ['breadcrumb.component.scss']\n})\nexport class BreadcrumbComponent {\n\n @Input() public icon = 'keyboard_arrow_right'\n @Input() public items: any = []\n @Input() public labelProperty = 'label'\n @Output() itemClick = new EventEmitter<{ index: number, item: any }>()\n\n public eventClick (index: number, item: any): any {\n this.items.splice(index + 1, this.items.length - 1)\n this.itemClick.emit({ index, item })\n }\n\n}\n","<mat-toolbar *ngIf=\"items.length > 0\" color=\"primary\">\n <span *ngFor=\"let header of items; let indx = index\">\n <a mat-button (click)=\"eventClick(indx, header)\">{{header[labelProperty]}}\n <mat-icon>{{icon}}</mat-icon>\n </a>\n </span>\n</mat-toolbar>","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'configuration-page-title',\n templateUrl: 'configuration-page-title.component.html',\n styleUrls: ['configuration-page-title.component.scss']\n})\nexport class ConfigurationPageTitleComponent {\n\n @Input() public icon: string;\n @Input() public isMaterialIcon = false;\n @Input() public materialOutline = false;\n\n @Input() public title: string;\n @Input() public buttonText: string;\n @Input() public buttonIcon: string;\n\n @Output() public onNewButtonClick = new EventEmitter<boolean>();\n\n public newButtonClick(): void {\n this.onNewButtonClick.emit(true);\n }\n\n}\n","<div class=\"configuration-title\">\n\n <div class=\"text\">\n <icon *ngIf=\"icon\"\n [ngClass]=\"{'title-icon-material': isMaterialIcon}\"\n [isMaterialIcon]=\"isMaterialIcon\"\n [materialOutline]=\"materialOutline\"\n [type]=\"'configuration-icon'\"\n [name]=\"icon\">\n </icon>\n {{title}}\n </div>\n\n <div class=\"button\" *ngIf=\"buttonText\">\n <secondary-button\n [btnClass]=\"'font-black'\"\n [icon]=\"buttonIcon\"\n [label]=\"buttonText\"\n (onClick)=\"newButtonClick()\">\n </secondary-button>\n </div>\n\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { RouterModule } from '@angular/router'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { CentralizedContainerComponent } from './centralized-container/centralized-container.component'\nimport { ConfigurationPageComponent } from './configuration-page-content/configuration-page.component'\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component'\nimport { NgScrollbarModule } from 'ngx-scrollbar'\nimport { MatFormFieldModule } from '@angular/material/form-field'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatInputModule } from '@angular/material/input'\nimport { IconsModule } from '@apipass/icons'\nimport { ButtonsModule } from '@apipass/buttons'\nimport { MatToolbarModule } from '@angular/material/toolbar'\nimport { ConfigurationPageTitleComponent } from './configuration-page-title/configuration-page-title.component'\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n IconsModule,\n ButtonsModule,\n NgScrollbarModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatToolbarModule\n ],\n declarations: [\n CentralizedContainerComponent,\n ConfigurationPageComponent,\n BreadcrumbComponent,\n ConfigurationPageTitleComponent\n ],\n exports: [\n CentralizedContainerComponent,\n ConfigurationPageComponent,\n BreadcrumbComponent,\n ConfigurationPageTitleComponent\n ],\n providers: []\n})\nexport class ContainersModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"apipass-containers.mjs","sources":["../../../projects/containers/src/centralized-container/centralized-container.component.ts","../../../projects/containers/src/centralized-container/centralized-container.component.html","../../../projects/containers/src/configuration-page-content/configuration-page.component.ts","../../../projects/containers/src/configuration-page-content/configuration-page.component.html","../../../projects/containers/src/breadcrumb/breadcrumb.component.ts","../../../projects/containers/src/breadcrumb/breadcrumb.component.html","../../../projects/containers/src/configuration-page-title/configuration-page-title.component.ts","../../../projects/containers/src/configuration-page-title/configuration-page-title.component.html","../../../projects/containers/src/duration/duration-timeline/duration-timeline.component.ts","../../../projects/containers/src/duration/duration-timeline/duration-timeline.component.html","../../../projects/containers/src/duration/duration-progressbar/duration-progressbar.component.ts","../../../projects/containers/src/duration/duration-progressbar/duration-progressbar.component.html","../../../projects/containers/src/containers.module.ts","../../../projects/containers/src/apipass-containers.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'\nimport { NgScrollbar } from 'ngx-scrollbar'\n\n@Component({\n selector: 'centralized-container',\n templateUrl: 'centralized-container.component.html',\n styleUrls: ['centralized-container.component.scss']\n})\nexport class CentralizedContainerComponent {\n\n public searchTerm = ''\n\n @Input() public searchLabel: string\n @Input() public hasSearch = true\n @Input() public ignoreZoom = false\n\n @Output()\n public searchChanged = new EventEmitter<string>()\n\n @ViewChild(NgScrollbar, { static: true })\n public scrollbarRef: NgScrollbar | undefined\n\n public searchTermChanged (): void {\n this.searchChanged.emit(this.searchTerm)\n }\n\n}\n","<div class=\"centralized-container\" [ngClass]=\"{'centralized-container-zoom': !ignoreZoom}\">\n <ng-scrollbar [visibility]=\"'hover'\">\n <div class=\"list-content\">\n <div class=\"list-search\" *ngIf=\"hasSearch\">\n <mat-form-field>\n <mat-label *ngIf=\"searchLabel\">{{searchLabel}}</mat-label>\n <input matInput type=\"search\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"searchTermChanged()\" />\n <mat-icon class=\"search-icon\" matSuffix>search</mat-icon>\n </mat-form-field>\n </div>\n <ng-content></ng-content>\n </div>\n </ng-scrollbar>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'\nimport { NgScrollbar } from 'ngx-scrollbar'\nimport { Subject } from 'rxjs'\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators'\n\n@Component({\n selector: 'configuration-page-container',\n templateUrl: 'configuration-page.component.html',\n styleUrls: ['configuration-page.component.scss']\n})\nexport class ConfigurationPageComponent {\n\n public searchTerm = ''\n\n @Input() public verticalSeparate = false\n @Input() public footerPaginator = false\n @Input() public hasSearch = true\n @Input() public searchDebounceTime = 1000\n @Input() public searchLabel = ''\n\n txtQueryChanged: Subject<string> = new Subject<string>()\n\n @Output() public searchChanged = new EventEmitter<string>()\n @Output() public searchClick = new EventEmitter<string>()\n\n @ViewChild(NgScrollbar, { static: true })\n public scrollbarRef: NgScrollbar | undefined\n\n constructor () {\n this.txtQueryChanged.pipe(\n debounceTime(this.searchDebounceTime),\n distinctUntilChanged()).subscribe(model => { this.searchChanged.next(model) }\n )\n }\n\n public searchTermChanged (): void {\n this.txtQueryChanged.next(this.searchTerm)\n }\n\n public searchIconClick (): void {\n this.searchClick.next(this.searchTerm)\n }\n\n}\n","<div class=\"configuration-page-container\" [ngClass]=\"{'footer-paginator': footerPaginator}\">\n <ng-scrollbar [visibility]=\"'hover'\">\n <div class=\"list-content\">\n <div class=\"list-search\" *ngIf=\"hasSearch\">\n <mat-form-field class=\"apipass-search-input-text search-input-item small-text\"\n [ngClass]=\"{'label-input': searchLabel}\"\n appearance=\"outline\">\n <mat-label *ngIf=\"searchLabel\">{{searchLabel}}</mat-label>\n <input matInput type=\"search\" class=\"search-input\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"searchTermChanged()\"\n />\n <mat-icon class=\"search-icon\" matSuffix (click)=\"searchIconClick()\">search</mat-icon>\n </mat-form-field>\n </div>\n\n <div class=\"container-content\" [ngClass]=\"{'vertical-separate': verticalSeparate}\">\n <ng-content></ng-content>\n </div>\n </div>\n </ng-scrollbar>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core'\n\n@Component({\n selector: 'breadcrumb-component',\n templateUrl: 'breadcrumb.component.html',\n styleUrls: ['breadcrumb.component.scss']\n})\nexport class BreadcrumbComponent {\n\n @Input() public icon = 'keyboard_arrow_right'\n @Input() public items: any = []\n @Input() public labelProperty = 'label'\n @Output() itemClick = new EventEmitter<{ index: number, item: any }>()\n\n public eventClick (index: number, item: any): any {\n this.items.splice(index + 1, this.items.length - 1)\n this.itemClick.emit({ index, item })\n }\n\n}\n","<mat-toolbar *ngIf=\"items.length > 0\" color=\"primary\">\n <span *ngFor=\"let header of items; let indx = index\">\n <a mat-button (click)=\"eventClick(indx, header)\">{{header[labelProperty]}}\n <mat-icon>{{icon}}</mat-icon>\n </a>\n </span>\n</mat-toolbar>","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'configuration-page-title',\n templateUrl: 'configuration-page-title.component.html',\n styleUrls: ['configuration-page-title.component.scss']\n})\nexport class ConfigurationPageTitleComponent {\n\n @Input() public icon: string;\n @Input() public isMaterialIcon = false;\n @Input() public materialOutline = false;\n\n @Input() public title: string;\n @Input() public buttonText: string;\n @Input() public buttonIcon: string;\n\n @Output() public onNewButtonClick = new EventEmitter<boolean>();\n\n public newButtonClick(): void {\n this.onNewButtonClick.emit(true);\n }\n\n}\n","<div class=\"configuration-title\">\n\n <div class=\"text\">\n <icon *ngIf=\"icon\"\n [ngClass]=\"{'title-icon-material': isMaterialIcon}\"\n [isMaterialIcon]=\"isMaterialIcon\"\n [materialOutline]=\"materialOutline\"\n [type]=\"'configuration-icon'\"\n [name]=\"icon\">\n </icon>\n {{title}}\n </div>\n\n <div class=\"button\" *ngIf=\"buttonText\">\n <secondary-button\n [btnClass]=\"'font-black'\"\n [icon]=\"buttonIcon\"\n [label]=\"buttonText\"\n (onClick)=\"newButtonClick()\">\n </secondary-button>\n </div>\n\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport moment from 'moment';\n\n@Component({\n selector: 'duration-timeline-component',\n templateUrl: 'duration-timeline.component.html',\n styleUrls: ['duration-timeline.component.scss']\n})\nexport class DurationTimelineComponent implements OnInit {\n\n public timeLineParts: number[] = [];\n public running: boolean\n\n private _startDate: Date;\n private _endDate: Date;\n private _durationParts: number = 0\n\n /*\n * If this option is true, depending on the total duration time and numbers of the duration parts, numbers can be repeated on timeline.\n */\n @Input()\n public onlyLargestUnit: boolean\n\n @Input()\n public runningLabel: string = '---'\n\n @Input()\n public runningTooltip: string = 'Running'\n\n @Input()\n set startDate(date: Date | string) {\n this._startDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startDate(): Date {\n return this._startDate;\n }\n\n @Input()\n set endDate(date: Date | string) {\n this._endDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endDate(): Date {\n return this._endDate;\n }\n\n @Input()\n public set durationParts(parts: number) {\n this._durationParts = parts;\n this.initialize().then()\n }\n\n get durationParts(): number {\n return this._durationParts;\n }\n\n async ngOnInit(): Promise<void> {\n await this.initialize();\n }\n\n public async initialize(): Promise<void> {\n this.running = false;\n if (!this.startDate || !this.durationParts) {\n return\n }\n if (!this.endDate) {\n this.running = true;\n }\n\n const durationTime = this.getTotalDuration(this.endDate || moment().toDate());\n if (durationTime <= 0) {\n return\n }\n this.timeLineParts = [];\n const timeAggregation = durationTime / this.durationParts;\n for (let i = 0; i < this.durationParts; i++) {\n this.timeLineParts.push(timeAggregation * (i + 1));\n }\n }\n\n public getTotalDuration(endDate: Date): number {\n return moment(this.endDate).diff(moment(this.startDate), 'milliseconds')\n }\n\n public stringToDate(date: Date | string): Date {\n if (!date) {\n return null;\n }\n return date instanceof String ? new Date(date) : date as Date;\n }\n\n getDurationWidth(): string {\n return `${100 / this._durationParts}%`\n }\n\n}\n","<div class=\"duration-timeline-component\" *ngIf=\"timeLineParts?.length > 0\">\n <div class=\"duration-timeline\">\n <div class=\"duration-item\"\n [style.width]=\"getDurationWidth()\"\n [ngClass]=\"{ 'duration-item-first' : first, 'duration-item-last' : last }\"\n *ngFor=\"let duration of timeLineParts; let first = first; let last = last\">\n <span class=\"duration-label\" [matTooltip]=\"duration | durationTime: { onlyLargestUnit }\" *ngIf=\"!running || !last\">\n {{duration | durationTime: { onlyLargestUnit } }}\n </span>\n <span class=\"duration-label\" [matTooltip]=\"runningTooltip\" *ngIf=\"running && last\">\n {{runningLabel}}\n </span>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DurationPipe } from '@apipass/pipes'\nimport moment from 'moment';\n\n@Component({\n selector: 'duration-progressbar-component',\n templateUrl: 'duration-progressbar.component.html',\n styleUrls: ['duration-progressbar.component.scss']\n})\nexport class DurationProgressbarComponent implements OnInit {\n\n public running: boolean\n\n private _startDate: Date;\n private _endDate: Date;\n private _startPartDate: Date;\n private _endPartDate: Date;\n\n @Input()\n public barHeight: number = 20\n\n @Input()\n public progressHeight: number = 18\n\n @Input()\n public runningTooltip: string = 'Running'\n\n @Input()\n public progressTooltipConjunction = 'of'\n\n public totalDurationTime: number;\n public partDurationTime: number;\n\n public startPercentage: number;\n public progressWidth: number\n\n constructor(private readonly durationPipe: DurationPipe) {\n }\n\n @Input()\n set startPartDate(date: Date | string) {\n this._startPartDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startPartDate(): Date {\n return this._startPartDate;\n }\n\n @Input()\n set endPartDate(date: Date | string) {\n this._endPartDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endPartDate(): Date {\n return this._endPartDate;\n }\n\n @Input()\n set startDate(date: Date | string) {\n this._startDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startDate(): Date {\n return this._startDate;\n }\n\n @Input()\n set endDate(date: Date | string) {\n this._endDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endDate(): Date {\n return this._endDate;\n }\n\n async ngOnInit(): Promise<void> {\n await this.initialize();\n }\n\n public async initialize(): Promise<void> {\n this.running = false;\n if (!this.startDate || !this.startPartDate) {\n return\n }\n if (!this.endPartDate) {\n this.running = true;\n }\n\n const startPartGapTime = this.getTotalDuration(this.startDate, this.startPartDate);\n this.totalDurationTime = this.getTotalDuration(this.startDate, this.endDate || moment().toDate());\n this.partDurationTime = this.getTotalDuration(this.startPartDate, this.endPartDate || moment().toDate());\n\n this.startPercentage = Math.round((100 * startPartGapTime) / this.totalDurationTime)\n this.progressWidth = Math.round((100 * this.partDurationTime) / this.totalDurationTime)\n\n if (this.progressWidth > 100) {\n this.progressWidth = 100\n }\n\n if (this.startPercentage + this.progressWidth > 100) {\n this.startPercentage = 100 - this.progressWidth\n }\n }\n\n public getTotalDuration(startDate: Date, endDate: Date): number {\n return moment(endDate).diff(moment(startDate), 'milliseconds')\n }\n\n public stringToDate(date: Date | string): Date {\n if (!date) {\n return null;\n }\n return date instanceof String ? new Date(date) : date as Date;\n }\n\n public getTooltipText(): string {\n if (this.running) {\n return `${this.runningTooltip} (${this.durationPipe.transform(this.partDurationTime)})`\n }\n return `${this.durationPipe.transform(this.partDurationTime)} (${this.progressWidth.toFixed(0)}%) ${this.progressTooltipConjunction} ${this.durationPipe.transform(this.totalDurationTime)}`\n }\n\n}\n","<div class=\"duration-progressbar-component\" [ngClass]=\"{'duration-progressbar-component-running': running}\" [style.height.px]=\"barHeight\">\n <div class=\"duration-current-progress\"\n [ngClass]=\"{'duration-current-progress-running': running}\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n </div>\n <div class=\"duration-value\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n <span class=\"duration-text\" [style.height.px]=\"progressHeight\" [ngClass]=\"{'duration-text-running': running}\">\n {{partDurationTime | durationTime}} ({{progressWidth.toFixed(0)}}%)\n </span>\n </div>\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { RouterModule } from '@angular/router'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { CentralizedContainerComponent } from './centralized-container/centralized-container.component'\nimport { ConfigurationPageComponent } from './configuration-page-content/configuration-page.component'\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component'\nimport { NgScrollbarModule } from 'ngx-scrollbar'\nimport { MatFormFieldModule } from '@angular/material/form-field'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatInputModule } from '@angular/material/input'\nimport { IconsModule } from '@apipass/icons'\nimport { ButtonsModule } from '@apipass/buttons'\nimport { PipeModule } from '@apipass/pipes'\nimport { MatToolbarModule } from '@angular/material/toolbar'\nimport { ConfigurationPageTitleComponent } from './configuration-page-title/configuration-page-title.component'\nimport { DurationTimelineComponent } from './duration/duration-timeline/duration-timeline.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DurationProgressbarComponent } from './duration/duration-progressbar/duration-progressbar.component';\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n IconsModule,\n ButtonsModule,\n NgScrollbarModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatToolbarModule,\n PipeModule,\n MatTooltipModule\n ],\n declarations: [\n CentralizedContainerComponent,\n ConfigurationPageComponent,\n BreadcrumbComponent,\n ConfigurationPageTitleComponent,\n DurationTimelineComponent,\n DurationProgressbarComponent\n ],\n exports: [\n CentralizedContainerComponent,\n ConfigurationPageComponent,\n BreadcrumbComponent,\n ConfigurationPageTitleComponent,\n DurationTimelineComponent,\n DurationProgressbarComponent\n ],\n providers: []\n})\nexport class ContainersModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apipass/containers",
3
- "version": "1.0.91",
3
+ "version": "1.0.95",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "16.0.2",
6
6
  "@angular/cdk": "16.0.1",
@@ -8,12 +8,15 @@
8
8
  "@angular/core": "16.0.2",
9
9
  "@angular/forms": "16.0.2",
10
10
  "@angular/material": "16.0.1",
11
- "@apipass/icons": "~1.0.82",
12
- "@apipass/buttons": "~1.0.82"
11
+ "@apipass/icons": "~1.0.93",
12
+ "@apipass/buttons": "~1.0.93",
13
+ "@apipass/pipes": "~1.0.93"
13
14
  },
14
15
  "dependencies": {
15
16
  "ngx-scrollbar": "11.0.0",
16
17
  "@ngx-translate/core": "15.0.0",
18
+ "moment": "^2.29.1",
19
+ "moment-timezone": "^0.5.43",
17
20
  "tslib": "2.5.2"
18
21
  },
19
22
  "module": "fesm2022/apipass-containers.mjs",
package/public-api.d.ts CHANGED
@@ -4,3 +4,4 @@ export * from './configuration-page-content/configuration-page.component';
4
4
  export * from './configuration-page-title/configuration-page-title.component';
5
5
  export * from './breadcrumb/breadcrumb.component';
6
6
  export * from 'ngx-scrollbar';
7
+ export * from './duration/public-api';