@testgorilla/tgo-ui 0.0.1 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +12 -12
  2. package/components/navbar/navbar.component.d.ts +35 -0
  3. package/components/navbar/navbar.component.module.d.ts +12 -0
  4. package/components/navbar/navbar.types.d.ts +4 -0
  5. package/components/paginator/paginator.component.d.ts +31 -0
  6. package/components/paginator/paginator.component.module.d.ts +9 -0
  7. package/components/table/table.component.d.ts +16 -5
  8. package/components/table/table.component.module.d.ts +6 -4
  9. package/components/table/table.types.d.ts +14 -2
  10. package/esm2020/components/navbar/navbar.component.mjs +58 -0
  11. package/esm2020/components/navbar/navbar.component.module.mjs +23 -0
  12. package/esm2020/components/navbar/navbar.types.mjs +2 -0
  13. package/esm2020/components/paginator/paginator.component.mjs +48 -0
  14. package/esm2020/components/paginator/paginator.component.module.mjs +20 -0
  15. package/esm2020/components/table/table.component.mjs +25 -10
  16. package/esm2020/components/table/table.component.module.mjs +8 -5
  17. package/esm2020/components/table/table.types.mjs +13 -2
  18. package/esm2020/public-api.mjs +10 -2
  19. package/esm2020/shared/pipes/dataPropertyGetter.mjs +32 -0
  20. package/fesm2015/testgorilla-tgo-ui.mjs +211 -17
  21. package/fesm2015/testgorilla-tgo-ui.mjs.map +1 -1
  22. package/fesm2020/testgorilla-tgo-ui.mjs +211 -17
  23. package/fesm2020/testgorilla-tgo-ui.mjs.map +1 -1
  24. package/package.json +4 -2
  25. package/public-api.d.ts +6 -0
  26. package/shared/pipes/dataPropertyGetter.d.ts +11 -0
  27. package/src/assets/images/testgorilla.svg +1 -0
  28. package/src/theme/_variables.scss +2 -2
  29. package/src/theme/base.scss +4 -4
package/README.md CHANGED
@@ -1,18 +1,22 @@
1
- # TgoTalentFrontend
1
+ # TestGorilla UI Library
2
2
 
3
- This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.3.3.
3
+ # Components
4
+ * Button
5
+ * Table
6
+ * Paginator
7
+ * NavBar
4
8
 
5
- ## Development server
9
+ ## Storybook Development Server
6
10
 
7
- Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
11
+ Run `npm run storybook`
8
12
 
9
- ## Code scaffolding
13
+ ## Build Storybook
10
14
 
11
- Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
15
+ Run `npm run build-storybook`
12
16
 
13
- ## Build
17
+ ## Build UI Library
14
18
 
15
- Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
19
+ Run `ng build` to build the ui library. The build artifacts will be stored in the `dist/` directory.
16
20
 
17
21
  ## Running unit tests
18
22
 
@@ -22,10 +26,6 @@ Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.
22
26
 
23
27
  Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
24
28
 
25
- ## Further help
26
-
27
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
28
-
29
29
  ## Visual regression
30
30
 
31
31
  We are using playwright on top of storybook to capture the visual differences. Code for the same can be found in `common.spec.ts` file.
@@ -0,0 +1,35 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { IRoute } from './navbar.types';
3
+ import * as i0 from "@angular/core";
4
+ export declare class NavbarComponent {
5
+ /**
6
+ * Routes object
7
+ *
8
+ * @type {IRoute}
9
+ * @memberof NavbarComponent
10
+ * @ignore
11
+ */
12
+ routes: IRoute[];
13
+ /**
14
+ * Actived route id
15
+ *
16
+ * @type {string}
17
+ * @memberof NavbarComponent
18
+ */
19
+ activedRoute: string;
20
+ /**
21
+ * User first name and last name initials
22
+ *
23
+ * @type {string}
24
+ * @memberof NavbarComponent
25
+ */
26
+ userInitials: string;
27
+ /**
28
+ * @ignore
29
+ */
30
+ navigateEvent: EventEmitter<string>;
31
+ constructor();
32
+ navigate(route: IRoute): void;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<NavbarComponent, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<NavbarComponent, "ui-navbar", never, { "routes": "routes"; "activedRoute": "activedRoute"; "userInitials": "userInitials"; }, { "navigateEvent": "navigateEvent"; }, never, never>;
35
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./navbar.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/material/toolbar";
5
+ import * as i4 from "@angular/material/icon";
6
+ import * as i5 from "@angular/material/button";
7
+ import * as i6 from "@angular/material/core";
8
+ export declare class NavbarComponentModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<NavbarComponentModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NavbarComponentModule, [typeof i1.NavbarComponent], [typeof i2.CommonModule, typeof i3.MatToolbarModule, typeof i4.MatIconModule, typeof i5.MatButtonModule, typeof i6.MatRippleModule], [typeof i1.NavbarComponent]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<NavbarComponentModule>;
12
+ }
@@ -0,0 +1,4 @@
1
+ export interface IRoute {
2
+ id: string;
3
+ title: string;
4
+ }
@@ -0,0 +1,31 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { PageEvent } from '@angular/material/paginator';
3
+ import * as i0 from "@angular/core";
4
+ export declare class PaginatorComponent implements OnInit {
5
+ /**
6
+ * Data length
7
+ *
8
+ * @type {number}
9
+ * @memberof PaginatorComponent
10
+ */
11
+ length: number;
12
+ /**
13
+ * Default page size
14
+ *
15
+ * @type {number}
16
+ * @memberof PaginatorComponent
17
+ */
18
+ defaultPageSize: number;
19
+ /**
20
+ * @ignore
21
+ */
22
+ paginatorChangedEvent: EventEmitter<PageEvent>;
23
+ /**
24
+ * @ignore
25
+ */
26
+ ngOnInit(): void;
27
+ constructor();
28
+ paginatorChanged(paginator: PageEvent): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginatorComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaginatorComponent, "ui-paginator", never, { "length": "length"; "defaultPageSize": "defaultPageSize"; }, { "paginatorChangedEvent": "paginatorChangedEvent"; }, never, never>;
31
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./paginator.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/material/paginator";
5
+ export declare class PaginatorComponentModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginatorComponentModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PaginatorComponentModule, [typeof i1.PaginatorComponent], [typeof i2.CommonModule, typeof i3.MatPaginatorModule], [typeof i1.PaginatorComponent]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<PaginatorComponentModule>;
9
+ }
@@ -1,9 +1,11 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { MatSort, Sort } from '@angular/material/sort';
3
3
  import { MatTableDataSource } from '@angular/material/table';
4
- import { IDataSource, ITableColumn } from './table.types';
4
+ import { DataPropertyGetterPipe } from '../../shared/pipes/dataPropertyGetter';
5
+ import { DataType, DateFormat, IDataSource, ITableColumn } from './table.types';
5
6
  import * as i0 from "@angular/core";
6
- export declare class TableComponent implements OnInit {
7
+ export declare class TableComponent<T extends IDataSource> implements OnInit {
8
+ private dataPropertyGetterPipe;
7
9
  /**
8
10
  * @ignore
9
11
  */
@@ -12,6 +14,14 @@ export declare class TableComponent implements OnInit {
12
14
  * @ignore
13
15
  */
14
16
  displayedColumns: string[];
17
+ /**
18
+ * @ignore
19
+ */
20
+ DataType: typeof DataType;
21
+ /**
22
+ * @ignore
23
+ */
24
+ DateFormat: typeof DateFormat;
15
25
  /**
16
26
  * @ignore
17
27
  */
@@ -22,7 +32,7 @@ export declare class TableComponent implements OnInit {
22
32
  * @type {IDataSource}
23
33
  * @memberof TableComponent
24
34
  */
25
- set tableData(data: IDataSource[]);
35
+ set tableData(data: T[] | null);
26
36
  /**
27
37
  * Data structure to select which columns should be rendered and their capabilities
28
38
  *
@@ -42,12 +52,13 @@ export declare class TableComponent implements OnInit {
42
52
  * @ignore
43
53
  */
44
54
  ngOnInit(): void;
55
+ constructor(dataPropertyGetterPipe: DataPropertyGetterPipe<T>);
45
56
  onSort(sortParams: Sort): void;
46
57
  onRowClick(rowParams: any): void;
47
58
  /**
48
59
  * @ignore
49
60
  */
50
61
  private setTableDataSource;
51
- static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
52
- static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "ui-table", never, { "tableData": "tableData"; "tableColumns": "tableColumns"; }, { "onSortEvent": "onSortEvent"; "onRowClickEvent": "onRowClickEvent"; }, never, never>;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, never>;
63
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "ui-table", never, { "tableData": "tableData"; "tableColumns": "tableColumns"; }, { "onSortEvent": "onSortEvent"; "onRowClickEvent": "onRowClickEvent"; }, never, never>;
53
64
  }
@@ -1,10 +1,12 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./table.component";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "@angular/material/table";
5
- import * as i4 from "@angular/material/sort";
3
+ import * as i2 from "../../shared/pipes/dataPropertyGetter";
4
+ import * as i3 from "@angular/common";
5
+ import * as i4 from "@angular/material/table";
6
+ import * as i5 from "@angular/material/sort";
7
+ import * as i6 from "ngx-date-fns";
6
8
  export declare class TableComponentModule {
7
9
  static ɵfac: i0.ɵɵFactoryDeclaration<TableComponentModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<TableComponentModule, [typeof i1.TableComponent], [typeof i2.CommonModule, typeof i3.MatTableModule, typeof i4.MatSortModule], [typeof i1.TableComponent]>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TableComponentModule, [typeof i1.TableComponent, typeof i2.DataPropertyGetterPipe], [typeof i3.CommonModule, typeof i4.MatTableModule, typeof i5.MatSortModule, typeof i6.DateFnsModule], [typeof i1.TableComponent]>;
9
11
  static ɵinj: i0.ɵɵInjectorDeclaration<TableComponentModule>;
10
12
  }
@@ -1,8 +1,20 @@
1
1
  export declare type IDataSource = {
2
- [key: string]: string | number;
2
+ [key: string]: any;
3
3
  };
4
4
  export interface ITableColumn {
5
5
  name: string;
6
6
  dataKey: string;
7
- isSortable?: boolean;
7
+ sortable?: boolean;
8
+ dataType?: DataType;
9
+ dateFormat?: DateFormat;
10
+ }
11
+ export declare enum DataType {
12
+ Date = "date",
13
+ String = "string",
14
+ Label = "label",
15
+ Percentage = "percentage"
16
+ }
17
+ export declare enum DateFormat {
18
+ Short = "short",
19
+ TimeAgo = "timeAgo"
8
20
  }
@@ -0,0 +1,58 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/toolbar";
4
+ import * as i2 from "@angular/material/button";
5
+ import * as i3 from "@angular/material/icon";
6
+ import * as i4 from "@angular/common";
7
+ import * as i5 from "@angular/material/core";
8
+ export class NavbarComponent {
9
+ constructor() {
10
+ // TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13
11
+ // https://github.com/storybookjs/storybook/issues/16865
12
+ // https://github.com/storybookjs/storybook/issues/17004
13
+ /**
14
+ * Routes object
15
+ *
16
+ * @type {IRoute}
17
+ * @memberof NavbarComponent
18
+ * @ignore
19
+ */
20
+ this.routes = [];
21
+ /**
22
+ * Actived route id
23
+ *
24
+ * @type {string}
25
+ * @memberof NavbarComponent
26
+ */
27
+ this.activedRoute = '';
28
+ /**
29
+ * User first name and last name initials
30
+ *
31
+ * @type {string}
32
+ * @memberof NavbarComponent
33
+ */
34
+ this.userInitials = '';
35
+ /**
36
+ * @ignore
37
+ */
38
+ this.navigateEvent = new EventEmitter();
39
+ }
40
+ navigate(route) {
41
+ this.navigateEvent.emit(route.id);
42
+ }
43
+ }
44
+ NavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
+ NavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NavbarComponent, selector: "ui-navbar", inputs: { routes: "routes", activedRoute: "activedRoute", userInitials: "userInitials" }, outputs: { navigateEvent: "navigateEvent" }, ngImport: i0, template: "<mat-toolbar>\n <div class=\"custom-toolbar row\">\n <div class=\"init-gradient\"></div>\n <div class=\"content row\">\n <img class=\"logo\" src=\"/images/testgorilla.svg\">\n <div class=\"navigation row\">\n <a *ngFor=\"let route of routes\" (click)=\"navigate(route)\" [ngClass]=\"{'active': activedRoute === route.id}\">\n <span>{{ route.title }}</span>\n </a>\n </div>\n <div class=\"actions\">\n <button mat-icon-button>\n <mat-icon>help_outline</mat-icon>\n </button>\n <div class=\"profile-circle\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\">\n {{ userInitials }}\n </div>\n </div>\n </div>\n <div class=\"final-gradient\"></div>\n </div>\n</mat-toolbar>\n", styles: [".mat-toolbar{height:80px!important}.mat-toolbar .custom-toolbar{width:100%;height:100%}.mat-toolbar .custom-toolbar .init-gradient{width:160px;height:100%;background:linear-gradient(270deg,rgb(233,240,241) 0%,rgba(233,240,241,0) 100%)}.mat-toolbar .custom-toolbar .content{background-color:#e9f0f1;width:100%}.mat-toolbar .custom-toolbar .content .logo{width:140px}.mat-toolbar .custom-toolbar .content .navigation{height:100%;margin-left:70px}.mat-toolbar .custom-toolbar .content .navigation a{display:flex;align-items:center;height:100%;width:161px;background:#fff;cursor:pointer}.mat-toolbar .custom-toolbar .content .navigation a.active{box-shadow:inset 0 5px 0 -1px #46a997}.mat-toolbar .custom-toolbar .content .navigation a span{width:100%;text-align:center;font-weight:400;font-size:16px}.mat-toolbar .custom-toolbar .content .actions{width:100%;display:flex;align-items:center;justify-content:flex-end}.mat-toolbar .custom-toolbar .content .actions .profile-circle{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:32px;height:32px;background:#D4E0E4;border-radius:128px;font-weight:600;font-size:14px;text-align:center;margin-left:32px}.mat-toolbar .custom-toolbar .final-gradient{width:160px;height:100%;background:linear-gradient(90deg,rgb(233,240,241) 0%,rgba(233,240,241,0) 100%)}.row{display:flex;flex-direction:row}\n"], components: [{ type: i1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavbarComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'ui-navbar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-toolbar>\n <div class=\"custom-toolbar row\">\n <div class=\"init-gradient\"></div>\n <div class=\"content row\">\n <img class=\"logo\" src=\"/images/testgorilla.svg\">\n <div class=\"navigation row\">\n <a *ngFor=\"let route of routes\" (click)=\"navigate(route)\" [ngClass]=\"{'active': activedRoute === route.id}\">\n <span>{{ route.title }}</span>\n </a>\n </div>\n <div class=\"actions\">\n <button mat-icon-button>\n <mat-icon>help_outline</mat-icon>\n </button>\n <div class=\"profile-circle\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\">\n {{ userInitials }}\n </div>\n </div>\n </div>\n <div class=\"final-gradient\"></div>\n </div>\n</mat-toolbar>\n", styles: [".mat-toolbar{height:80px!important}.mat-toolbar .custom-toolbar{width:100%;height:100%}.mat-toolbar .custom-toolbar .init-gradient{width:160px;height:100%;background:linear-gradient(270deg,rgb(233,240,241) 0%,rgba(233,240,241,0) 100%)}.mat-toolbar .custom-toolbar .content{background-color:#e9f0f1;width:100%}.mat-toolbar .custom-toolbar .content .logo{width:140px}.mat-toolbar .custom-toolbar .content .navigation{height:100%;margin-left:70px}.mat-toolbar .custom-toolbar .content .navigation a{display:flex;align-items:center;height:100%;width:161px;background:#fff;cursor:pointer}.mat-toolbar .custom-toolbar .content .navigation a.active{box-shadow:inset 0 5px 0 -1px #46a997}.mat-toolbar .custom-toolbar .content .navigation a span{width:100%;text-align:center;font-weight:400;font-size:16px}.mat-toolbar .custom-toolbar .content .actions{width:100%;display:flex;align-items:center;justify-content:flex-end}.mat-toolbar .custom-toolbar .content .actions .profile-circle{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:32px;height:32px;background:#D4E0E4;border-radius:128px;font-weight:600;font-size:14px;text-align:center;margin-left:32px}.mat-toolbar .custom-toolbar .final-gradient{width:160px;height:100%;background:linear-gradient(90deg,rgb(233,240,241) 0%,rgba(233,240,241,0) 100%)}.row{display:flex;flex-direction:row}\n"] }]
49
+ }], ctorParameters: function () { return []; }, propDecorators: { routes: [{
50
+ type: Input
51
+ }], activedRoute: [{
52
+ type: Input
53
+ }], userInitials: [{
54
+ type: Input
55
+ }], navigateEvent: [{
56
+ type: Output
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25hdmJhci9uYXZiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbmF2YmFyL25hdmJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBVW5ILE1BQU0sT0FBTyxlQUFlO0lBbUMxQjtRQWxDQSxtSEFBbUg7UUFDbkgsd0RBQXdEO1FBQ3hELHdEQUF3RDtRQUV4RDs7Ozs7O1dBTUc7UUFDTSxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBRS9COzs7OztXQUtHO1FBQ00saUJBQVksR0FBRyxFQUFFLENBQUM7UUFFM0I7Ozs7O1dBS0c7UUFDTSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUUzQjs7V0FFRztRQUNPLGtCQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFNUQsQ0FBQztJQUVoQixRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7NkdBdkNVLGVBQWU7aUdBQWYsZUFBZSx3TENWNUIsKzVCQXNCQTs0RkRaYSxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTswRUFjNUIsTUFBTTtzQkFBZCxLQUFLO2dCQVFHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUcsWUFBWTtzQkFBcEIsS0FBSztnQkFLSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVJvdXRlIH0gZnJvbSAnLi9uYXZiYXIudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1uYXZiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmF2YmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZiYXJDb21wb25lbnQge1xuICAvLyBUT0RPOiBTb21lIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgYXJlIGlnbm9yZWQgb24gcHVycG9zZSBiZWNhdXNlIG9mIGEgY3VycmVudCBpc3N1ZSB3aXRoIGNvbXBvZG9jIGFuZCBhbmd1bGFyIDEzXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9yeWJvb2tqcy9zdG9yeWJvb2svaXNzdWVzLzE2ODY1XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9yeWJvb2tqcy9zdG9yeWJvb2svaXNzdWVzLzE3MDA0XG5cbiAgLyoqXG4gICAqIFJvdXRlcyBvYmplY3RcbiAgICpcbiAgICogQHR5cGUge0lSb3V0ZX1cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASW5wdXQoKSByb3V0ZXM6IElSb3V0ZVtdID0gW107XG5cbiAgLyoqXG4gICAqIEFjdGl2ZWQgcm91dGUgaWRcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYWN0aXZlZFJvdXRlID0gJyc7XG5cbiAgLyoqXG4gICAqIFVzZXIgZmlyc3QgbmFtZSBhbmQgbGFzdCBuYW1lIGluaXRpYWxzXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBOYXZiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHVzZXJJbml0aWFscyA9ICcnO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAT3V0cHV0KCkgbmF2aWdhdGVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmF2aWdhdGUocm91dGU6IElSb3V0ZSkge1xuICAgIHRoaXMubmF2aWdhdGVFdmVudC5lbWl0KHJvdXRlLmlkKTtcbiAgfVxufVxuIiwiPG1hdC10b29sYmFyPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tdG9vbGJhciByb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImluaXQtZ3JhZGllbnRcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQgcm93XCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwibG9nb1wiIHNyYz1cIi9pbWFnZXMvdGVzdGdvcmlsbGEuc3ZnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2aWdhdGlvbiByb3dcIj5cbiAgICAgICAgICAgICAgICA8YSAqbmdGb3I9XCJsZXQgcm91dGUgb2Ygcm91dGVzXCIgKGNsaWNrKT1cIm5hdmlnYXRlKHJvdXRlKVwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogYWN0aXZlZFJvdXRlID09PSByb3V0ZS5pZH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcm91dGUudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+aGVscF9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1jaXJjbGVcIiBtYXRSaXBwbGUgW21hdFJpcHBsZVVuYm91bmRlZF09XCJ0cnVlXCIgW21hdFJpcHBsZUNlbnRlcmVkXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdXNlckluaXRpYWxzIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaW5hbC1ncmFkaWVudFwiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9tYXQtdG9vbGJhcj5cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { NavbarComponent } from './navbar.component';
4
+ import { MatToolbarModule } from '@angular/material/toolbar';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { MatRippleModule } from '@angular/material/core';
8
+ import * as i0 from "@angular/core";
9
+ export class NavbarComponentModule {
10
+ }
11
+ NavbarComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavbarComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ NavbarComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavbarComponentModule, declarations: [NavbarComponent], imports: [CommonModule, MatToolbarModule, MatIconModule, MatButtonModule, MatRippleModule], exports: [NavbarComponent] });
13
+ NavbarComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavbarComponentModule, providers: [], imports: [[CommonModule, MatToolbarModule, MatIconModule, MatButtonModule, MatRippleModule]] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavbarComponentModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [NavbarComponent],
18
+ imports: [CommonModule, MatToolbarModule, MatIconModule, MatButtonModule, MatRippleModule],
19
+ exports: [NavbarComponent],
20
+ providers: [],
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVF6RCxNQUFNLE9BQU8scUJBQXFCOzttSEFBckIscUJBQXFCO29IQUFyQixxQkFBcUIsaUJBTGpCLGVBQWUsYUFDcEIsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxhQUMvRSxlQUFlO29IQUdkLHFCQUFxQixhQUZyQixFQUFFLFlBRkosQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7NEZBSS9FLHFCQUFxQjtrQkFOakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQztvQkFDMUYsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2YmFyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTmF2YmFyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0VG9vbGJhck1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRSaXBwbGVNb2R1bGVdLFxuICBleHBvcnRzOiBbTmF2YmFyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2YmFyQ29tcG9uZW50TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbmF2YmFyL25hdmJhci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUm91dGUge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,48 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/paginator";
4
+ export class PaginatorComponent {
5
+ constructor() {
6
+ // TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13
7
+ // https://github.com/storybookjs/storybook/issues/16865
8
+ // https://github.com/storybookjs/storybook/issues/17004
9
+ /**
10
+ * Data length
11
+ *
12
+ * @type {number}
13
+ * @memberof PaginatorComponent
14
+ */
15
+ this.length = 0;
16
+ /**
17
+ * Default page size
18
+ *
19
+ * @type {number}
20
+ * @memberof PaginatorComponent
21
+ */
22
+ this.defaultPageSize = 10;
23
+ /**
24
+ * @ignore
25
+ */
26
+ this.paginatorChangedEvent = new EventEmitter();
27
+ }
28
+ /**
29
+ * @ignore
30
+ */
31
+ ngOnInit() { }
32
+ paginatorChanged(paginator) {
33
+ this.paginatorChangedEvent.emit(paginator);
34
+ }
35
+ }
36
+ PaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ PaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PaginatorComponent, selector: "ui-paginator", inputs: { length: "length", defaultPageSize: "defaultPageSize" }, outputs: { paginatorChangedEvent: "paginatorChangedEvent" }, ngImport: i0, template: "<mat-paginator [length]=\"length\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"[10, 25, 50]\"\n (page)=\"paginatorChanged($event)\">\n</mat-paginator>", styles: ["mat-paginator{border-radius:0 0 8px 8px}mat-paginator .mat-paginator-outer-container{border-radius:0 0 8px 8px;background:rgba(233,240,241,.5);font-weight:400;font-size:14px;line-height:16px;color:#000}mat-paginator .mat-paginator-outer-container .mat-paginator-container{padding:0}mat-paginator .mat-paginator-outer-container .mat-paginator-container .mat-select-value-text{font-size:14px}mat-paginator .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions{height:100%}mat-paginator .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions button{background:rgba(233,240,241,.5);height:100%;width:70px;border-radius:0}\n"], components: [{ type: i1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PaginatorComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'ui-paginator', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-paginator [length]=\"length\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"[10, 25, 50]\"\n (page)=\"paginatorChanged($event)\">\n</mat-paginator>", styles: ["mat-paginator{border-radius:0 0 8px 8px}mat-paginator .mat-paginator-outer-container{border-radius:0 0 8px 8px;background:rgba(233,240,241,.5);font-weight:400;font-size:14px;line-height:16px;color:#000}mat-paginator .mat-paginator-outer-container .mat-paginator-container{padding:0}mat-paginator .mat-paginator-outer-container .mat-paginator-container .mat-select-value-text{font-size:14px}mat-paginator .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions{height:100%}mat-paginator .mat-paginator-outer-container .mat-paginator-container .mat-paginator-range-actions button{background:rgba(233,240,241,.5);height:100%;width:70px;border-radius:0}\n"] }]
41
+ }], ctorParameters: function () { return []; }, propDecorators: { length: [{
42
+ type: Input
43
+ }], defaultPageSize: [{
44
+ type: Input
45
+ }], paginatorChangedEvent: [{
46
+ type: Output
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVM0gsTUFBTSxPQUFPLGtCQUFrQjtJQStCN0I7UUE5QkEsbUhBQW1IO1FBQ25ILHdEQUF3RDtRQUN4RCx3REFBd0Q7UUFFeEQ7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXBCOzs7OztXQUtHO1FBQ00sb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFFOUI7O1dBRUc7UUFDTywwQkFBcUIsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQU8xRSxDQUFDO0lBTGhCOztPQUVHO0lBQ0gsUUFBUSxLQUFVLENBQUM7SUFJbkIsZ0JBQWdCLENBQUMsU0FBb0I7UUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDOztnSEFuQ1Usa0JBQWtCO29HQUFsQixrQkFBa0IsbUxDVi9CLDBNQUlnQjs0RkRNSCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzBFQWE1QixNQUFNO3NCQUFkLEtBQUs7Z0JBUUcsZUFBZTtzQkFBdkIsS0FBSztnQkFLSSxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLXBhZ2luYXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIFRPRE86IFNvbWUgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBhcmUgaWdub3JlZCBvbiBwdXJwb3NlIGJlY2F1c2Ugb2YgYSBjdXJyZW50IGlzc3VlIHdpdGggY29tcG9kb2MgYW5kIGFuZ3VsYXIgMTNcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTY4NjVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTcwMDRcblxuICAvKipcbiAgICogRGF0YSBsZW5ndGhcbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlcm9mIFBhZ2luYXRvckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbGVuZ3RoID0gMDtcblxuICAvKipcbiAgICogRGVmYXVsdCBwYWdlIHNpemVcbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlcm9mIFBhZ2luYXRvckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZGVmYXVsdFBhZ2VTaXplID0gMTA7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBPdXRwdXQoKSBwYWdpbmF0b3JDaGFuZ2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcGFnaW5hdG9yQ2hhbmdlZChwYWdpbmF0b3I6IFBhZ2VFdmVudCkge1xuICAgIHRoaXMucGFnaW5hdG9yQ2hhbmdlZEV2ZW50LmVtaXQocGFnaW5hdG9yKTtcbiAgfVxufVxuIiwiPG1hdC1wYWdpbmF0b3IgW2xlbmd0aF09XCJsZW5ndGhcIlxuICAgICAgICAgICAgICBbcGFnZVNpemVdPVwiZGVmYXVsdFBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJbMTAsIDI1LCA1MF1cIlxuICAgICAgICAgICAgICAocGFnZSk9XCJwYWdpbmF0b3JDaGFuZ2VkKCRldmVudClcIj5cbjwvbWF0LXBhZ2luYXRvcj4iXX0=
@@ -0,0 +1,20 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { MatPaginatorModule } from '@angular/material/paginator';
4
+ import { PaginatorComponent } from './paginator.component';
5
+ import * as i0 from "@angular/core";
6
+ export class PaginatorComponentModule {
7
+ }
8
+ PaginatorComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PaginatorComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ PaginatorComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PaginatorComponentModule, declarations: [PaginatorComponent], imports: [CommonModule, MatPaginatorModule], exports: [PaginatorComponent] });
10
+ PaginatorComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PaginatorComponentModule, providers: [], imports: [[CommonModule, MatPaginatorModule]] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PaginatorComponentModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [PaginatorComponent],
15
+ imports: [CommonModule, MatPaginatorModule],
16
+ exports: [PaginatorComponent],
17
+ providers: [],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBUTNELE1BQU0sT0FBTyx3QkFBd0I7O3NIQUF4Qix3QkFBd0I7dUhBQXhCLHdCQUF3QixpQkFMcEIsa0JBQWtCLGFBQ3ZCLFlBQVksRUFBRSxrQkFBa0IsYUFDaEMsa0JBQWtCO3VIQUdqQix3QkFBd0IsYUFGeEIsRUFBRSxZQUZKLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDOzRGQUloQyx3QkFBd0I7a0JBTnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0b3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdG9yQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0UGFnaW5hdG9yTW9kdWxlXSxcbiAgZXhwb3J0czogW1BhZ2luYXRvckNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRvckNvbXBvbmVudE1vZHVsZSB7fVxuIl19
@@ -1,12 +1,16 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { MatSort } from '@angular/material/sort';
3
3
  import { MatTableDataSource } from '@angular/material/table';
4
+ import { DataType, DateFormat } from './table.types';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/material/table";
6
- import * as i2 from "@angular/material/sort";
7
- import * as i3 from "@angular/common";
6
+ import * as i1 from "../../shared/pipes/dataPropertyGetter";
7
+ import * as i2 from "@angular/material/table";
8
+ import * as i3 from "@angular/material/sort";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "ngx-date-fns";
8
11
  export class TableComponent {
9
- constructor() {
12
+ constructor(dataPropertyGetterPipe) {
13
+ this.dataPropertyGetterPipe = dataPropertyGetterPipe;
10
14
  // TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13
11
15
  // https://github.com/storybookjs/storybook/issues/16865
12
16
  // https://github.com/storybookjs/storybook/issues/17004
@@ -18,6 +22,14 @@ export class TableComponent {
18
22
  * @ignore
19
23
  */
20
24
  this.displayedColumns = [];
25
+ /**
26
+ * @ignore
27
+ */
28
+ this.DataType = DataType;
29
+ /**
30
+ * @ignore
31
+ */
32
+ this.DateFormat = DateFormat;
21
33
  /**
22
34
  * Data structure to select which columns should be rendered and their capabilities
23
35
  *
@@ -41,7 +53,9 @@ export class TableComponent {
41
53
  * @memberof TableComponent
42
54
  */
43
55
  set tableData(data) {
44
- this.setTableDataSource(data);
56
+ if (data?.length) {
57
+ this.setTableDataSource(data);
58
+ }
45
59
  }
46
60
  /**
47
61
  * @ignore
@@ -64,15 +78,16 @@ export class TableComponent {
64
78
  */
65
79
  setTableDataSource(data) {
66
80
  this.dataSource = new MatTableDataSource(data);
81
+ this.dataSource.sortingDataAccessor = (item, property) => this.dataPropertyGetterPipe.transform(item, property);
67
82
  this.dataSource.sort = this.sort;
68
83
  }
69
84
  }
70
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TableComponent, selector: "ui-table", inputs: { tableData: "tableData", tableColumns: "tableColumns" }, outputs: { onSortEvent: "onSortEvent", onRowClickEvent: "onRowClickEvent" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSort($event)\">\n <ng-container *ngFor=\"let tableColumn of tableColumns\" [matColumnDef]=\"tableColumn.name\">\n <ng-container *ngIf=\"tableColumn.isSortable; else notSortable\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" [mat-sort-header]=\"tableColumn.dataKey\" arrowPosition=\"after\">\n {{tableColumn.name}}\n </th>\n </ng-container>\n <ng-template #notSortable>\n <th mat-header-cell *matHeaderCellDef>\n {{tableColumn.name}}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onRowClick(element)\">\n {{element[tableColumn.dataKey]}}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n", styles: ["table{width:100%}table .mat-header-cell{font-weight:700}\n"], components: [{ type: i1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i2.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i1.MatCellDef, selector: "[matCellDef]" }, { type: i1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
85
+ TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponent, deps: [{ token: i1.DataPropertyGetterPipe }], target: i0.ɵɵFactoryTarget.Component });
86
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TableComponent, selector: "ui-table", inputs: { tableData: "tableData", tableColumns: "tableColumns" }, outputs: { onSortEvent: "onSortEvent", onRowClickEvent: "onRowClickEvent" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSort($event)\">\n <ng-container *ngFor=\"let tableColumn of tableColumns\" [matColumnDef]=\"tableColumn.name\">\n <ng-container *ngIf=\"tableColumn.sortable; else notSortable\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" [mat-sort-header]=\"tableColumn.dataKey\" arrowPosition=\"after\">\n {{tableColumn.name | uppercase}}\n </th>\n </ng-container>\n <ng-template #notSortable>\n <th mat-header-cell *matHeaderCellDef>\n {{tableColumn.name | uppercase}}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onRowClick(element)\">\n <ng-container [ngSwitch]=\"tableColumn.dataType\">\n <ng-container *ngSwitchCase=\"DataType.String\">\n {{element | dataPropertyGetter: tableColumn.dataKey}}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.Date\">\n <span *ngIf=\"tableColumn.dateFormat === DateFormat.Short\">{{(element | dataPropertyGetter:\n tableColumn.dataKey) | dfnsParseIso | dfnsFormat: 'dd MMM yyyy'}}</span>\n <span *ngIf=\"tableColumn.dateFormat === DateFormat.TimeAgo\">{{(element | dataPropertyGetter:\n tableColumn.dataKey) | dfnsParseIso | dfnsFormatDistanceToNow}}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.Label\">\n <span class=\"label\" [ngClass]=\"(element | dataPropertyGetter: tableColumn.dataKey)\">\n {{(element | dataPropertyGetter: tableColumn.dataKey)}}\n </span>\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.Percentage\">\n {{element | dataPropertyGetter: tableColumn.dataKey}}%\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{element | dataPropertyGetter: tableColumn.dataKey}}\n </ng-container>\n </ng-container>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n", styles: ["table{width:100%;overflow:hidden;border-radius:8px 8px 0 0}table .mat-header-cell{font-weight:700;color:#000;background:rgba(233,240,241,.5)}table td,table th,table .mat-row{border:none}table ::ng-deep .mat-sort-header-arrow{color:#276678}table .label{padding:0 8px;width:-moz-fit-content;width:fit-content;font-weight:600;font-size:10px;border-radius:4px;background-color:#e9f0f1;color:#000}table .label.active{background-color:#46a997;color:#fff}\n"], components: [{ type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i3.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "uppercase": i4.UpperCasePipe, "dataPropertyGetter": i1.DataPropertyGetterPipe, "dfnsFormat": i5.FormatPipe, "dfnsParseIso": i5.ParseIsoPipe, "dfnsFormatDistanceToNow": i5.FormatDistanceToNowPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponent, decorators: [{
73
88
  type: Component,
74
- args: [{ selector: 'ui-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSort($event)\">\n <ng-container *ngFor=\"let tableColumn of tableColumns\" [matColumnDef]=\"tableColumn.name\">\n <ng-container *ngIf=\"tableColumn.isSortable; else notSortable\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" [mat-sort-header]=\"tableColumn.dataKey\" arrowPosition=\"after\">\n {{tableColumn.name}}\n </th>\n </ng-container>\n <ng-template #notSortable>\n <th mat-header-cell *matHeaderCellDef>\n {{tableColumn.name}}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onRowClick(element)\">\n {{element[tableColumn.dataKey]}}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n", styles: ["table{width:100%}table .mat-header-cell{font-weight:700}\n"] }]
75
- }], propDecorators: { sort: [{
89
+ args: [{ selector: 'ui-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSort($event)\">\n <ng-container *ngFor=\"let tableColumn of tableColumns\" [matColumnDef]=\"tableColumn.name\">\n <ng-container *ngIf=\"tableColumn.sortable; else notSortable\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" [mat-sort-header]=\"tableColumn.dataKey\" arrowPosition=\"after\">\n {{tableColumn.name | uppercase}}\n </th>\n </ng-container>\n <ng-template #notSortable>\n <th mat-header-cell *matHeaderCellDef>\n {{tableColumn.name | uppercase}}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onRowClick(element)\">\n <ng-container [ngSwitch]=\"tableColumn.dataType\">\n <ng-container *ngSwitchCase=\"DataType.String\">\n {{element | dataPropertyGetter: tableColumn.dataKey}}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.Date\">\n <span *ngIf=\"tableColumn.dateFormat === DateFormat.Short\">{{(element | dataPropertyGetter:\n tableColumn.dataKey) | dfnsParseIso | dfnsFormat: 'dd MMM yyyy'}}</span>\n <span *ngIf=\"tableColumn.dateFormat === DateFormat.TimeAgo\">{{(element | dataPropertyGetter:\n tableColumn.dataKey) | dfnsParseIso | dfnsFormatDistanceToNow}}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.Label\">\n <span class=\"label\" [ngClass]=\"(element | dataPropertyGetter: tableColumn.dataKey)\">\n {{(element | dataPropertyGetter: tableColumn.dataKey)}}\n </span>\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.Percentage\">\n {{element | dataPropertyGetter: tableColumn.dataKey}}%\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{element | dataPropertyGetter: tableColumn.dataKey}}\n </ng-container>\n </ng-container>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n", styles: ["table{width:100%;overflow:hidden;border-radius:8px 8px 0 0}table .mat-header-cell{font-weight:700;color:#000;background:rgba(233,240,241,.5)}table td,table th,table .mat-row{border:none}table ::ng-deep .mat-sort-header-arrow{color:#276678}table .label{padding:0 8px;width:-moz-fit-content;width:fit-content;font-weight:600;font-size:10px;border-radius:4px;background-color:#e9f0f1;color:#000}table .label.active{background-color:#46a997;color:#fff}\n"] }]
90
+ }], ctorParameters: function () { return [{ type: i1.DataPropertyGetterPipe }]; }, propDecorators: { sort: [{
76
91
  type: ViewChild,
77
92
  args: [MatSort, { static: true }]
78
93
  }], tableData: [{
@@ -84,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
84
99
  }], onRowClickEvent: [{
85
100
  type: Output
86
101
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQVM3RCxNQUFNLE9BQU8sY0FBYztJQU4zQjtRQU9FLG1IQUFtSDtRQUNuSCx3REFBd0Q7UUFDeEQsd0RBQXdEO1FBRXhEOztXQUVHO1FBQ0gsZUFBVSxHQUFHLElBQUksa0JBQWtCLENBQU0sRUFBRSxDQUFDLENBQUM7UUFFN0M7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFpQmhDOzs7OztXQUtHO1FBQ00saUJBQVksR0FBbUIsRUFBRSxDQUFDO1FBRTNDOztXQUVHO1FBQ08sZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVyRTs7V0FFRztRQUNPLG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7S0E0QnhFO0lBdERDOzs7OztPQUtHO0lBQ0gsSUFBYSxTQUFTLENBQUMsSUFBbUI7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFvQkQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBeUIsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBZ0I7UUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRyxJQUFJLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDbkIsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsT0FBTyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFjO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQixDQUFDLElBQW1CO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxrQkFBa0IsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7OzRHQXpFVSxjQUFjO2dHQUFkLGNBQWMscU9Ba0JkLE9BQU8sOERDN0JwQiwwM0JBbUJBOzRGRFJhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsVUFBVSxtQkFHSCx1QkFBdUIsQ0FBQyxNQUFNOzhCQW9CVCxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBUXZCLFNBQVM7c0JBQXJCLEtBQUs7Z0JBVUcsWUFBWTtzQkFBcEIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBJRGF0YVNvdXJjZSwgSVRhYmxlQ29sdW1uIH0gZnJvbSAnLi90YWJsZS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gVE9ETzogU29tZSBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGFyZSBpZ25vcmVkIG9uIHB1cnBvc2UgYmVjYXVzZSBvZiBhIGN1cnJlbnQgaXNzdWUgd2l0aCBjb21wb2RvYyBhbmQgYW5ndWxhciAxM1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vc3Rvcnlib29ranMvc3Rvcnlib29rL2lzc3Vlcy8xNjg2NVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vc3Rvcnlib29ranMvc3Rvcnlib29rL2lzc3Vlcy8xNzAwNFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBkYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+KFtdKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZChNYXRTb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KSBzb3J0ITogTWF0U29ydDtcblxuICAvKipcbiAgICogRGF0YSB0byBiZSByZW5kZXJlZFxuICAgKlxuICAgKiBAdHlwZSB7SURhdGFTb3VyY2V9XG4gICAqIEBtZW1iZXJvZiBUYWJsZUNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2V0IHRhYmxlRGF0YShkYXRhOiBJRGF0YVNvdXJjZVtdKSB7XG4gICAgdGhpcy5zZXRUYWJsZURhdGFTb3VyY2UoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogRGF0YSBzdHJ1Y3R1cmUgdG8gc2VsZWN0IHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHJlbmRlcmVkIGFuZCB0aGVpciBjYXBhYmlsaXRpZXNcbiAgICpcbiAgICogQHR5cGUge0lUYWJsZUNvbHVtbn1cbiAgICogQG1lbWJlcm9mIFRhYmxlQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSB0YWJsZUNvbHVtbnM6IElUYWJsZUNvbHVtbltdID0gW107XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBPdXRwdXQoKSBvblNvcnRFdmVudDogRXZlbnRFbWl0dGVyPFNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0PigpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAT3V0cHV0KCkgb25Sb3dDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLnRhYmxlQ29sdW1ucy5tYXAoKHRhYmxlQ29sdW1uOiBJVGFibGVDb2x1bW4pID0+IHRhYmxlQ29sdW1uLm5hbWUpO1xuICB9XG5cbiAgb25Tb3J0KHNvcnRQYXJhbXM6IFNvcnQpIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLnRhYmxlQ29sdW1ucy5maW5kKChjb2x1bW46IElUYWJsZUNvbHVtbikgPT4gY29sdW1uLm5hbWUgPT09IHNvcnRQYXJhbXMuYWN0aXZlKTtcbiAgICBpZiAoY29sdW1uPy5kYXRhS2V5KSB7XG4gICAgICBzb3J0UGFyYW1zLmFjdGl2ZSA9IGNvbHVtbj8uZGF0YUtleTtcbiAgICB9XG4gICAgdGhpcy5vblNvcnRFdmVudC5lbWl0KHNvcnRQYXJhbXMpO1xuICB9XG5cbiAgb25Sb3dDbGljayhyb3dQYXJhbXM6IGFueSkge1xuICAgIHRoaXMub25Sb3dDbGlja0V2ZW50LmVtaXQocm93UGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHNldFRhYmxlRGF0YVNvdXJjZShkYXRhOiBJRGF0YVNvdXJjZVtdKSB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+KGRhdGEpO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICB9XG59XG4iLCI8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBtYXRTb3J0IChtYXRTb3J0Q2hhbmdlKT1cIm9uU29ydCgkZXZlbnQpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYmxlQ29sdW1uIG9mIHRhYmxlQ29sdW1uc1wiIFttYXRDb2x1bW5EZWZdPVwidGFibGVDb2x1bW4ubmFtZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZUNvbHVtbi5pc1NvcnRhYmxlOyBlbHNlIG5vdFNvcnRhYmxlXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPVwibGV0IGVsZW1lbnRcIiBbbWF0LXNvcnQtaGVhZGVyXT1cInRhYmxlQ29sdW1uLmRhdGFLZXlcIiBhcnJvd1Bvc2l0aW9uPVwiYWZ0ZXJcIj5cbiAgICAgICAge3t0YWJsZUNvbHVtbi5uYW1lfX1cbiAgICAgIDwvdGg+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNub3RTb3J0YWJsZT5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIHt7dGFibGVDb2x1bW4ubmFtZX19XG4gICAgICA8L3RoPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIiAoY2xpY2spPVwib25Sb3dDbGljayhlbGVtZW50KVwiPlxuICAgICAge3tlbGVtZW50W3RhYmxlQ29sdW1uLmRhdGFLZXldfX1cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbjwvdGFibGU+XG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVFoRixNQUFNLE9BQU8sY0FBYztJQW1FekIsWUFBb0Isc0JBQWlEO1FBQWpELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMkI7UUFsRXJFLG1IQUFtSDtRQUNuSCx3REFBd0Q7UUFDeEQsd0RBQXdEO1FBRXhEOztXQUVHO1FBQ0gsZUFBVSxHQUFHLElBQUksa0JBQWtCLENBQU0sRUFBRSxDQUFDLENBQUM7UUFFN0M7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQW1CeEI7Ozs7O1dBS0c7UUFDTSxpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFFM0M7O1dBRUc7UUFDTyxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJFOztXQUVHO1FBQ08sb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQVNDLENBQUM7SUFyQ3pFOzs7OztPQUtHO0lBQ0gsSUFBYSxTQUFTLENBQUMsSUFBZ0I7UUFDckMsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFvQkQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBeUIsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFJRCxNQUFNLENBQUMsVUFBZ0I7UUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRyxJQUFJLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDbkIsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsT0FBTyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFjO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQixDQUFDLElBQVM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7OzRHQXhGVSxjQUFjO2dHQUFkLGNBQWMscU9BNEJkLE9BQU8sOERDeENwQixva0VBd0NBOzRGRDVCYSxjQUFjO2tCQU4xQixTQUFTOytCQUNFLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTTs2R0E4QlQsSUFBSTtzQkFBekMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVF2QixTQUFTO3NCQUFyQixLQUFLO2dCQVlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U29ydCwgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgRGF0YVByb3BlcnR5R2V0dGVyUGlwZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9waXBlcy9kYXRhUHJvcGVydHlHZXR0ZXInO1xuaW1wb3J0IHsgRGF0YVR5cGUsIERhdGVGb3JtYXQsIElEYXRhU291cmNlLCBJVGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8VCBleHRlbmRzIElEYXRhU291cmNlPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIFRPRE86IFNvbWUgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBhcmUgaWdub3JlZCBvbiBwdXJwb3NlIGJlY2F1c2Ugb2YgYSBjdXJyZW50IGlzc3VlIHdpdGggY29tcG9kb2MgYW5kIGFuZ3VsYXIgMTNcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTY4NjVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTcwMDRcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8YW55PihbXSk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIERhdGFUeXBlID0gRGF0YVR5cGU7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIERhdGVGb3JtYXQgPSBEYXRlRm9ybWF0O1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQhOiBNYXRTb3J0O1xuXG4gIC8qKlxuICAgKiBEYXRhIHRvIGJlIHJlbmRlcmVkXG4gICAqXG4gICAqIEB0eXBlIHtJRGF0YVNvdXJjZX1cbiAgICogQG1lbWJlcm9mIFRhYmxlQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzZXQgdGFibGVEYXRhKGRhdGE6IFRbXSB8IG51bGwpIHtcbiAgICBpZiAoZGF0YT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldFRhYmxlRGF0YVNvdXJjZShkYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGF0YSBzdHJ1Y3R1cmUgdG8gc2VsZWN0IHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHJlbmRlcmVkIGFuZCB0aGVpciBjYXBhYmlsaXRpZXNcbiAgICpcbiAgICogQHR5cGUge0lUYWJsZUNvbHVtbn1cbiAgICogQG1lbWJlcm9mIFRhYmxlQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSB0YWJsZUNvbHVtbnM6IElUYWJsZUNvbHVtbltdID0gW107XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBPdXRwdXQoKSBvblNvcnRFdmVudDogRXZlbnRFbWl0dGVyPFNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0PigpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAT3V0cHV0KCkgb25Sb3dDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLnRhYmxlQ29sdW1ucy5tYXAoKHRhYmxlQ29sdW1uOiBJVGFibGVDb2x1bW4pID0+IHRhYmxlQ29sdW1uLm5hbWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhUHJvcGVydHlHZXR0ZXJQaXBlOiBEYXRhUHJvcGVydHlHZXR0ZXJQaXBlPFQ+KSB7fVxuXG4gIG9uU29ydChzb3J0UGFyYW1zOiBTb3J0KSB7XG4gICAgY29uc3QgY29sdW1uID0gdGhpcy50YWJsZUNvbHVtbnMuZmluZCgoY29sdW1uOiBJVGFibGVDb2x1bW4pID0+IGNvbHVtbi5uYW1lID09PSBzb3J0UGFyYW1zLmFjdGl2ZSk7XG4gICAgaWYgKGNvbHVtbj8uZGF0YUtleSkge1xuICAgICAgc29ydFBhcmFtcy5hY3RpdmUgPSBjb2x1bW4/LmRhdGFLZXk7XG4gICAgfVxuICAgIHRoaXMub25Tb3J0RXZlbnQuZW1pdChzb3J0UGFyYW1zKTtcbiAgfVxuXG4gIG9uUm93Q2xpY2socm93UGFyYW1zOiBhbnkpIHtcbiAgICB0aGlzLm9uUm93Q2xpY2tFdmVudC5lbWl0KHJvd1BhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRUYWJsZURhdGFTb3VyY2UoZGF0YTogVFtdKSB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+KGRhdGEpO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0aW5nRGF0YUFjY2Vzc29yID0gKGl0ZW0sIHByb3BlcnR5KSA9PiB0aGlzLmRhdGFQcm9wZXJ0eUdldHRlclBpcGUudHJhbnNmb3JtKGl0ZW0sIHByb3BlcnR5KTtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgfVxufVxuIiwiPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgbWF0U29ydCAobWF0U29ydENoYW5nZSk9XCJvblNvcnQoJGV2ZW50KVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWJsZUNvbHVtbiBvZiB0YWJsZUNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cInRhYmxlQ29sdW1uLm5hbWVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVDb2x1bW4uc29ydGFibGU7IGVsc2Ugbm90U29ydGFibGVcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFttYXQtc29ydC1oZWFkZXJdPVwidGFibGVDb2x1bW4uZGF0YUtleVwiIGFycm93UG9zaXRpb249XCJhZnRlclwiPlxuICAgICAgICB7e3RhYmxlQ29sdW1uLm5hbWUgfCB1cHBlcmNhc2V9fVxuICAgICAgPC90aD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vdFNvcnRhYmxlPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAge3t0YWJsZUNvbHVtbi5uYW1lIHwgdXBwZXJjYXNlfX1cbiAgICAgIDwvdGg+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIChjbGljayk9XCJvblJvd0NsaWNrKGVsZW1lbnQpXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0YWJsZUNvbHVtbi5kYXRhVHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZS5TdHJpbmdcIj5cbiAgICAgICAgICB7e2VsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6IHRhYmxlQ29sdW1uLmRhdGFLZXl9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGUuRGF0ZVwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwidGFibGVDb2x1bW4uZGF0ZUZvcm1hdCA9PT0gRGF0ZUZvcm1hdC5TaG9ydFwiPnt7KGVsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6XG4gICAgICAgICAgICB0YWJsZUNvbHVtbi5kYXRhS2V5KSB8IGRmbnNQYXJzZUlzbyB8IGRmbnNGb3JtYXQ6ICdkZCBNTU0geXl5eSd9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInRhYmxlQ29sdW1uLmRhdGVGb3JtYXQgPT09IERhdGVGb3JtYXQuVGltZUFnb1wiPnt7KGVsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6XG4gICAgICAgICAgICB0YWJsZUNvbHVtbi5kYXRhS2V5KSB8IGRmbnNQYXJzZUlzbyB8IGRmbnNGb3JtYXREaXN0YW5jZVRvTm93fX08L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZS5MYWJlbFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIiBbbmdDbGFzc109XCIoZWxlbWVudCB8IGRhdGFQcm9wZXJ0eUdldHRlcjogdGFibGVDb2x1bW4uZGF0YUtleSlcIj5cbiAgICAgICAgICAgIHt7KGVsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6IHRhYmxlQ29sdW1uLmRhdGFLZXkpfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZS5QZXJjZW50YWdlXCI+XG4gICAgICAgICAge3tlbGVtZW50IHwgZGF0YVByb3BlcnR5R2V0dGVyOiB0YWJsZUNvbHVtbi5kYXRhS2V5fX0lXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAge3tlbGVtZW50IHwgZGF0YVByb3BlcnR5R2V0dGVyOiB0YWJsZUNvbHVtbi5kYXRhS2V5fX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbjwvdGFibGU+XG4iXX0=
@@ -2,19 +2,22 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { MatSortModule } from '@angular/material/sort';
4
4
  import { MatTableModule } from '@angular/material/table';
5
+ import { DateFnsModule } from 'ngx-date-fns';
6
+ import { DataPropertyGetterPipe } from '../../shared/pipes/dataPropertyGetter';
5
7
  import { TableComponent } from './table.component';
6
8
  import * as i0 from "@angular/core";
7
9
  export class TableComponentModule {
8
10
  }
9
11
  TableComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- TableComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponentModule, declarations: [TableComponent], imports: [CommonModule, MatTableModule, MatSortModule], exports: [TableComponent] });
11
- TableComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponentModule, imports: [[CommonModule, MatTableModule, MatSortModule]] });
12
+ TableComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponentModule, declarations: [TableComponent, DataPropertyGetterPipe], imports: [CommonModule, MatTableModule, MatSortModule, DateFnsModule], exports: [TableComponent] });
13
+ TableComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponentModule, providers: [DataPropertyGetterPipe], imports: [[CommonModule, MatTableModule, MatSortModule, DateFnsModule]] });
12
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TableComponentModule, decorators: [{
13
15
  type: NgModule,
14
16
  args: [{
15
- declarations: [TableComponent],
16
- imports: [CommonModule, MatTableModule, MatSortModule],
17
+ declarations: [TableComponent, DataPropertyGetterPipe],
18
+ imports: [CommonModule, MatTableModule, MatSortModule, DateFnsModule],
17
19
  exports: [TableComponent],
20
+ providers: [DataPropertyGetterPipe],
18
21
  }]
19
22
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBT25ELE1BQU0sT0FBTyxvQkFBb0I7O2tIQUFwQixvQkFBb0I7bUhBQXBCLG9CQUFvQixpQkFKaEIsY0FBYyxhQUNuQixZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsYUFDM0MsY0FBYzttSEFFYixvQkFBb0IsWUFIdEIsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQzs0RkFHM0Msb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1RhYmxlQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0VGFibGVNb2R1bGUsIE1hdFNvcnRNb2R1bGVdLFxuICBleHBvcnRzOiBbVGFibGVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudE1vZHVsZSB7fVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFRbkQsTUFBTSxPQUFPLG9CQUFvQjs7a0hBQXBCLG9CQUFvQjttSEFBcEIsb0JBQW9CLGlCQUxoQixjQUFjLEVBQUUsc0JBQXNCLGFBQzNDLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsYUFDMUQsY0FBYzttSEFHYixvQkFBb0IsYUFGcEIsQ0FBQyxzQkFBc0IsQ0FBQyxZQUYxQixDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQzs0RkFJMUQsb0JBQW9CO2tCQU5oQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO29CQUNyRSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBEYXRlRm5zTW9kdWxlIH0gZnJvbSAnbmd4LWRhdGUtZm5zJztcbmltcG9ydCB7IERhdGFQcm9wZXJ0eUdldHRlclBpcGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvcGlwZXMvZGF0YVByb3BlcnR5R2V0dGVyJztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUYWJsZUNvbXBvbmVudCwgRGF0YVByb3BlcnR5R2V0dGVyUGlwZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBNYXRTb3J0TW9kdWxlLCBEYXRlRm5zTW9kdWxlXSxcbiAgZXhwb3J0czogW1RhYmxlQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbRGF0YVByb3BlcnR5R2V0dGVyUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50TW9kdWxlIHt9XG4iXX0=