@testgorilla/tgo-ui 0.0.17 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/README.md +66 -0
- package/README.md +9 -48
- package/components/{register/register.component.d.ts → create-account/create-account.component.d.ts} +5 -5
- package/components/create-account/create-account.component.module.d.ts +13 -0
- package/components/{register/register.model.d.ts → create-account/create-account.model.d.ts} +1 -1
- package/components/create-password/create-password.component.d.ts +36 -0
- package/components/create-password/create-password.component.module.d.ts +12 -0
- package/components/create-password/create-password.model.d.ts +3 -0
- package/components/forgot-password/forgot-password.component.d.ts +41 -0
- package/components/forgot-password/forgot-password.component.module.d.ts +12 -0
- package/components/forgot-password/forgot-password.model.d.ts +3 -0
- package/components/progress-bar/progress-bar.component.d.ts +36 -0
- package/components/progress-bar/progress-bar.component.module.d.ts +9 -0
- package/components/table/table.component.d.ts +2 -6
- package/components/table/table.component.module.d.ts +2 -3
- package/components/table/table.model.d.ts +20 -13
- package/esm2020/components/banner/banner.component.mjs +4 -4
- package/esm2020/components/banner-action/banner-action.component.mjs +4 -4
- package/esm2020/components/create-account/create-account.component.mjs +91 -0
- package/esm2020/components/create-account/create-account.component.module.mjs +46 -0
- package/esm2020/components/create-account/create-account.model.mjs +2 -0
- package/esm2020/components/create-password/create-password.component.mjs +73 -0
- package/esm2020/components/create-password/create-password.component.module.mjs +42 -0
- package/esm2020/components/create-password/create-password.model.mjs +2 -0
- package/esm2020/components/forgot-password/forgot-password.component.mjs +75 -0
- package/esm2020/components/forgot-password/forgot-password.component.module.mjs +23 -0
- package/esm2020/components/forgot-password/forgot-password.model.mjs +2 -0
- package/esm2020/components/login/login.component.mjs +4 -4
- package/esm2020/components/navbar/navbar.component.mjs +4 -4
- package/esm2020/components/navigation/navigation.component.mjs +4 -4
- package/esm2020/components/paginator/paginator.component.mjs +4 -4
- package/esm2020/components/progress-bar/progress-bar.component.mjs +22 -0
- package/esm2020/components/progress-bar/progress-bar.component.module.mjs +20 -0
- package/esm2020/components/status/status.component.mjs +4 -4
- package/esm2020/components/table/table.component.mjs +9 -14
- package/esm2020/components/table/table.component.module.mjs +4 -5
- package/esm2020/components/table/table.model.mjs +16 -13
- package/esm2020/public-api.mjs +30 -20
- package/fesm2015/testgorilla-tgo-ui.mjs +439 -222
- package/fesm2015/testgorilla-tgo-ui.mjs.map +1 -1
- package/fesm2020/testgorilla-tgo-ui.mjs +436 -221
- package/fesm2020/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +1 -3
- package/public-api.d.ts +12 -6
- package/src/assets/images/check.svg +3 -0
- package/src/theme/_core.scss +20 -0
- package/src/theme/_typography.scss +58 -0
- package/src/theme/_variables.scss +3 -1
- package/src/theme/{base.scss → theme.scss} +4 -32
- package/components/register/register.component.module.d.ts +0 -13
- package/esm2020/components/register/register.component.mjs +0 -91
- package/esm2020/components/register/register.component.module.mjs +0 -46
- package/esm2020/components/register/register.model.mjs +0 -2
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# TestGorilla UI Library
|
|
2
|
+
|
|
3
|
+
# Components
|
|
4
|
+
* Banner
|
|
5
|
+
* Banner Action
|
|
6
|
+
* Button
|
|
7
|
+
* Card
|
|
8
|
+
* Create Password
|
|
9
|
+
* Field
|
|
10
|
+
* Forgot Password
|
|
11
|
+
* Login
|
|
12
|
+
* Logo
|
|
13
|
+
* NavBar
|
|
14
|
+
* Navigation
|
|
15
|
+
* Paginator
|
|
16
|
+
* Create Account
|
|
17
|
+
* Status
|
|
18
|
+
* Table
|
|
19
|
+
|
|
20
|
+
## Storybook Development Server
|
|
21
|
+
|
|
22
|
+
Run `npm run storybook`
|
|
23
|
+
|
|
24
|
+
## Build Storybook
|
|
25
|
+
|
|
26
|
+
Run `npm run build-storybook`
|
|
27
|
+
|
|
28
|
+
## Build UI Library
|
|
29
|
+
|
|
30
|
+
Run `ng build` to build the ui library. The build artifacts will be stored in the `dist/` directory.
|
|
31
|
+
|
|
32
|
+
## Running unit tests
|
|
33
|
+
|
|
34
|
+
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
35
|
+
|
|
36
|
+
## Running end-to-end tests
|
|
37
|
+
|
|
38
|
+
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.
|
|
39
|
+
|
|
40
|
+
## Visual regression
|
|
41
|
+
|
|
42
|
+
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.
|
|
43
|
+
|
|
44
|
+
In order to update the existing snapshots, we need to use DOCKER to update, since updating from mac or windows has its own effect on the rendering, we might want to use the following way to update the snapshots to be consistant with CI.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:latest /bin/bash
|
|
48
|
+
npm install
|
|
49
|
+
npx playwright test e2e/common.spec.ts --update-snapshots
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
In order to execute the visual tests, we need to use same docker so that the screenshots are aligned with the same OS.
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:latest /bin/bash
|
|
56
|
+
npm install
|
|
57
|
+
npx playwright test e2e/common.spec.ts
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Currently we are using `toMatchSnapshot` instead of the latest `toHaveScreenshot` from playwright. Since `toHaveScreenshot` doesn't support firefox now, we are going ahead with `toMatchSnapshot`. In (near) future once it supports firefox, we will be using the latest `toHaveScreenshot` method.
|
|
61
|
+
|
|
62
|
+
### Visual Regression Important to note !!!
|
|
63
|
+
|
|
64
|
+
* To add a new component to visual regression one has to provide the `/iframe.html?id=<element_id>` in the file `common.spec.ts` which will take care of taking snapshot whenever we initiate visual tests.
|
|
65
|
+
* We need to have the elements in such a way that `element_id` in `/iframe.html?id=<element_id>` should be present in the DOM. i.e., we should have a dom element `<element_id> ... </element_id>`.
|
|
66
|
+
* We are using that element_id to wait until its fully loaded and then we are taking the snapshot.
|
package/README.md
CHANGED
|
@@ -1,57 +1,18 @@
|
|
|
1
1
|
# TestGorilla UI Library
|
|
2
2
|
|
|
3
3
|
# Components
|
|
4
|
+
* Banner
|
|
5
|
+
* Banner Action
|
|
4
6
|
* Button
|
|
7
|
+
* Card
|
|
8
|
+
* Create Password
|
|
5
9
|
* Field
|
|
10
|
+
* Forgot Password
|
|
6
11
|
* Login
|
|
12
|
+
* Logo
|
|
7
13
|
* NavBar
|
|
14
|
+
* Navigation
|
|
8
15
|
* Paginator
|
|
16
|
+
* Create Account
|
|
17
|
+
* Status
|
|
9
18
|
* Table
|
|
10
|
-
|
|
11
|
-
## Storybook Development Server
|
|
12
|
-
|
|
13
|
-
Run `npm run storybook`
|
|
14
|
-
|
|
15
|
-
## Build Storybook
|
|
16
|
-
|
|
17
|
-
Run `npm run build-storybook`
|
|
18
|
-
|
|
19
|
-
## Build UI Library
|
|
20
|
-
|
|
21
|
-
Run `ng build` to build the ui library. The build artifacts will be stored in the `dist/` directory.
|
|
22
|
-
|
|
23
|
-
## Running unit tests
|
|
24
|
-
|
|
25
|
-
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
26
|
-
|
|
27
|
-
## Running end-to-end tests
|
|
28
|
-
|
|
29
|
-
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.
|
|
30
|
-
|
|
31
|
-
## Visual regression
|
|
32
|
-
|
|
33
|
-
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.
|
|
34
|
-
|
|
35
|
-
In order to update the existing snapshots, we need to use DOCKER to update, since updating from mac or windows has its own effect on the rendering, we might want to use the following way to update the snapshots to be consistant with CI.
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:latest /bin/bash
|
|
39
|
-
npm install
|
|
40
|
-
npx playwright test e2e/common.spec.ts --update-snapshots
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
In order to execute the visual tests, we need to use same docker so that the screenshots are aligned with the same OS.
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:latest /bin/bash
|
|
47
|
-
npm install
|
|
48
|
-
npx playwright test e2e/common.spec.ts
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Currently we are using `toMatchSnapshot` instead of the latest `toHaveScreenshot` from playwright. Since `toHaveScreenshot` doesn't support firefox now, we are going ahead with `toMatchSnapshot`. In (near) future once it supports firefox, we will be using the latest `toHaveScreenshot` method.
|
|
52
|
-
|
|
53
|
-
### Visual Regression Important to note !!!
|
|
54
|
-
|
|
55
|
-
* To add a new component to visual regression one has to provide the `/iframe.html?id=<element_id>` in the file `common.spec.ts` which will take care of taking snapshot whenever we initiate visual tests.
|
|
56
|
-
* We need to have the elements in such a way that `element_id` in `/iframe.html?id=<element_id>` should be present in the DOM. i.e., we should have a dom element `<element_id> ... </element_id>`.
|
|
57
|
-
* We are using that element_id to wait until its fully loaded and then we are taking the snapshot.
|
package/components/{register/register.component.d.ts → create-account/create-account.component.d.ts}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { FormBuilder } from '@angular/forms';
|
|
3
|
-
import {
|
|
3
|
+
import { CreateAccountCredentials } from './create-account.model';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class CreateAccountComponent implements OnInit {
|
|
6
6
|
private fb;
|
|
7
7
|
/**
|
|
8
8
|
* @ignore
|
|
@@ -24,7 +24,7 @@ export declare class RegisterComponent implements OnInit {
|
|
|
24
24
|
/**
|
|
25
25
|
* @ignore
|
|
26
26
|
*/
|
|
27
|
-
submitEvent: EventEmitter<
|
|
27
|
+
submitEvent: EventEmitter<CreateAccountCredentials>;
|
|
28
28
|
/**
|
|
29
29
|
* @ignore
|
|
30
30
|
*/
|
|
@@ -37,6 +37,6 @@ export declare class RegisterComponent implements OnInit {
|
|
|
37
37
|
submit(): void;
|
|
38
38
|
login(): void;
|
|
39
39
|
checkErrors(field: string): void;
|
|
40
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
41
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CreateAccountComponent, never>;
|
|
41
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CreateAccountComponent, "ui-create-account", never, { "formErrors": "formErrors"; "loading": "loading"; }, { "submitEvent": "submitEvent"; "loginEvent": "loginEvent"; }, never, never>;
|
|
42
42
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./create-account.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/forms";
|
|
5
|
+
import * as i4 from "../field/field.component.module";
|
|
6
|
+
import * as i5 from "../button/button.component.module";
|
|
7
|
+
import * as i6 from "@angular/material/checkbox";
|
|
8
|
+
import * as i7 from "@angular-material-extensions/password-strength";
|
|
9
|
+
export declare class CreateAccountComponentModule {
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CreateAccountComponentModule, never>;
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CreateAccountComponentModule, [typeof i1.CreateAccountComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i4.FieldComponentModule, typeof i5.ButtonComponentModule, typeof i6.MatCheckboxModule, typeof i7.MatPasswordStrengthModule], [typeof i1.CreateAccountComponent]>;
|
|
12
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CreateAccountComponentModule>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder } from '@angular/forms';
|
|
3
|
+
import { CreatePasswordCredentials } from './create-password.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class CreatePasswordComponent implements OnInit {
|
|
6
|
+
private fb;
|
|
7
|
+
/**
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
10
|
+
createPasswordForm: import("@angular/forms").FormGroup;
|
|
11
|
+
/**
|
|
12
|
+
* @ignore
|
|
13
|
+
*/
|
|
14
|
+
formErrors: {
|
|
15
|
+
password: string[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Indicator if the form is loading
|
|
19
|
+
*
|
|
20
|
+
* @memberof ButtonComponent
|
|
21
|
+
*/
|
|
22
|
+
loading: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* @ignore
|
|
25
|
+
*/
|
|
26
|
+
submitEvent: EventEmitter<CreatePasswordCredentials>;
|
|
27
|
+
/**
|
|
28
|
+
* @ignore
|
|
29
|
+
*/
|
|
30
|
+
ngOnInit(): void;
|
|
31
|
+
constructor(fb: FormBuilder);
|
|
32
|
+
submit(): void;
|
|
33
|
+
checkErrors(field: string): void;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CreatePasswordComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CreatePasswordComponent, "ui-create-password", never, { "formErrors": "formErrors"; "loading": "loading"; }, { "submitEvent": "submitEvent"; }, never, never>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./create-password.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/forms";
|
|
5
|
+
import * as i4 from "../field/field.component.module";
|
|
6
|
+
import * as i5 from "../button/button.component.module";
|
|
7
|
+
import * as i6 from "@angular-material-extensions/password-strength";
|
|
8
|
+
export declare class CreatePasswordComponentModule {
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CreatePasswordComponentModule, never>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CreatePasswordComponentModule, [typeof i1.CreatePasswordComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i4.FieldComponentModule, typeof i5.ButtonComponentModule, typeof i6.MatPasswordStrengthModule], [typeof i1.CreatePasswordComponent]>;
|
|
11
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CreatePasswordComponentModule>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder } from '@angular/forms';
|
|
3
|
+
import { ForgotPasswordCredentials } from './forgot-password.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class ForgotPasswordComponent implements OnInit {
|
|
6
|
+
private fb;
|
|
7
|
+
/**
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
10
|
+
forgotPasswordForm: import("@angular/forms").FormGroup;
|
|
11
|
+
/**
|
|
12
|
+
* @ignore
|
|
13
|
+
*/
|
|
14
|
+
formErrors: {
|
|
15
|
+
email: string[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Indicator if the form is loading
|
|
19
|
+
*
|
|
20
|
+
* @memberof ButtonComponent
|
|
21
|
+
*/
|
|
22
|
+
loading: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* @ignore
|
|
25
|
+
*/
|
|
26
|
+
submitEvent: EventEmitter<ForgotPasswordCredentials>;
|
|
27
|
+
/**
|
|
28
|
+
* @ignore
|
|
29
|
+
*/
|
|
30
|
+
backToLoginEvent: EventEmitter<void>;
|
|
31
|
+
/**
|
|
32
|
+
* @ignore
|
|
33
|
+
*/
|
|
34
|
+
ngOnInit(): void;
|
|
35
|
+
constructor(fb: FormBuilder);
|
|
36
|
+
submit(): void;
|
|
37
|
+
backToLogin(): void;
|
|
38
|
+
checkErrors(field: string): void;
|
|
39
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ForgotPasswordComponent, never>;
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ForgotPasswordComponent, "ui-forgot-password", never, { "formErrors": "formErrors"; "loading": "loading"; }, { "submitEvent": "submitEvent"; "backToLoginEvent": "backToLoginEvent"; }, never, never>;
|
|
41
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./forgot-password.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/forms";
|
|
5
|
+
import * as i4 from "../field/field.component.module";
|
|
6
|
+
import * as i5 from "../button/button.component.module";
|
|
7
|
+
import * as i6 from "@angular/material/icon";
|
|
8
|
+
export declare class ForgotPasswordComponentModule {
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ForgotPasswordComponentModule, never>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ForgotPasswordComponentModule, [typeof i1.ForgotPasswordComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i4.FieldComponentModule, typeof i5.ButtonComponentModule, typeof i6.MatIconModule], [typeof i1.ForgotPasswordComponent]>;
|
|
11
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ForgotPasswordComponentModule>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ThemePalette } from '@angular/material/core';
|
|
2
|
+
import { ProgressBarMode } from '@angular/material/progress-bar';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ProgressBarComponent {
|
|
5
|
+
/**
|
|
6
|
+
* Progress Bar using Angular Material theme color. If no color is passed, a default gray will be shown
|
|
7
|
+
*
|
|
8
|
+
* @type {ThemePalette}
|
|
9
|
+
* @memberof ProgressBarComponent
|
|
10
|
+
*/
|
|
11
|
+
color: ThemePalette;
|
|
12
|
+
/**
|
|
13
|
+
* Progress Bar mode
|
|
14
|
+
*
|
|
15
|
+
* @type {ProgressBarMode}
|
|
16
|
+
* @memberof ProgressBarComponent
|
|
17
|
+
*/
|
|
18
|
+
mode: ProgressBarMode;
|
|
19
|
+
/**
|
|
20
|
+
* Progress Bar value
|
|
21
|
+
*
|
|
22
|
+
* @type {number}
|
|
23
|
+
* @memberof ProgressBarComponent
|
|
24
|
+
*/
|
|
25
|
+
value: number;
|
|
26
|
+
/**
|
|
27
|
+
* Progress Bar buffer value
|
|
28
|
+
*
|
|
29
|
+
* @type {number}
|
|
30
|
+
* @memberof ProgressBarComponent
|
|
31
|
+
*/
|
|
32
|
+
buffer: number;
|
|
33
|
+
constructor();
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "ui-progress-bar", never, { "color": "color"; "mode": "mode"; "value": "value"; "buffer": "buffer"; }, {}, never, never>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./progress-bar.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/material/progress-bar";
|
|
5
|
+
export declare class ProgressBarComponentModule {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarComponentModule, never>;
|
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ProgressBarComponentModule, [typeof i1.ProgressBarComponent], [typeof i2.CommonModule, typeof i3.MatProgressBarModule], [typeof i1.ProgressBarComponent]>;
|
|
8
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ProgressBarComponentModule>;
|
|
9
|
+
}
|
|
@@ -3,7 +3,7 @@ import { MatSort, Sort } from '@angular/material/sort';
|
|
|
3
3
|
import { MatTableDataSource } from '@angular/material/table';
|
|
4
4
|
import { DataPropertyGetterPipe } from '../../shared/pipes/dataPropertyGetter';
|
|
5
5
|
import { IStatusOptions } from '../status/status.model';
|
|
6
|
-
import {
|
|
6
|
+
import { ColumnType, IDataSource, ITableColumn } from './table.model';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class TableComponent<T extends IDataSource> implements OnInit {
|
|
9
9
|
private dataPropertyGetterPipe;
|
|
@@ -24,11 +24,7 @@ export declare class TableComponent<T extends IDataSource> implements OnInit {
|
|
|
24
24
|
/**
|
|
25
25
|
* @ignore
|
|
26
26
|
*/
|
|
27
|
-
DataType: typeof
|
|
28
|
-
/**
|
|
29
|
-
* @ignore
|
|
30
|
-
*/
|
|
31
|
-
DateFormat: typeof DateFormat;
|
|
27
|
+
DataType: typeof ColumnType;
|
|
32
28
|
/**
|
|
33
29
|
* @ignore
|
|
34
30
|
*/
|
|
@@ -4,10 +4,9 @@ import * as i2 from "../../shared/pipes/dataPropertyGetter";
|
|
|
4
4
|
import * as i3 from "@angular/common";
|
|
5
5
|
import * as i4 from "@angular/material/table";
|
|
6
6
|
import * as i5 from "@angular/material/sort";
|
|
7
|
-
import * as i6 from "
|
|
8
|
-
import * as i7 from "../status/status.component.module";
|
|
7
|
+
import * as i6 from "../status/status.component.module";
|
|
9
8
|
export declare class TableComponentModule {
|
|
10
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableComponentModule, never>;
|
|
11
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<TableComponentModule, [typeof i1.TableComponent, typeof i2.DataPropertyGetterPipe], [typeof i3.CommonModule, typeof i4.MatTableModule, typeof i5.MatSortModule, typeof i6.
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<TableComponentModule, [typeof i1.TableComponent, typeof i2.DataPropertyGetterPipe], [typeof i3.CommonModule, typeof i4.MatTableModule, typeof i5.MatSortModule, typeof i6.StatusComponentModule], [typeof i1.TableComponent]>;
|
|
12
11
|
static ɵinj: i0.ɵɵInjectorDeclaration<TableComponentModule>;
|
|
13
12
|
}
|
|
@@ -2,20 +2,27 @@ export declare type IDataSource = {
|
|
|
2
2
|
[key: string]: any;
|
|
3
3
|
};
|
|
4
4
|
export interface ITableColumn<T> {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
headerName: string;
|
|
6
|
+
field?: string;
|
|
7
|
+
type?: ColumnType;
|
|
8
|
+
valueGetter?: (v: T) => string;
|
|
8
9
|
sortable?: boolean;
|
|
9
|
-
|
|
10
|
-
dateFormat?: DateFormat;
|
|
10
|
+
styles?: ColumnStyles;
|
|
11
11
|
}
|
|
12
|
-
export declare enum
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
export declare enum ColumnType {
|
|
13
|
+
DATE = "date",
|
|
14
|
+
STRING = "string",
|
|
15
|
+
LABEL = "label",
|
|
16
|
+
PERCENTAGE = "percentage",
|
|
17
|
+
CHECK = "check",
|
|
18
|
+
FUNCTION = "function"
|
|
17
19
|
}
|
|
18
|
-
export
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
export interface ColumnStyles {
|
|
21
|
+
alignment?: ColumnAlignment;
|
|
22
|
+
width?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare enum ColumnAlignment {
|
|
25
|
+
LEFT = "left",
|
|
26
|
+
RIGHT = "right",
|
|
27
|
+
CENTER = "center"
|
|
21
28
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/material/icon";
|
|
4
4
|
export class BannerComponent {
|
|
@@ -30,10 +30,10 @@ export class BannerComponent {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
BannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
BannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BannerComponent, selector: "ui-banner", inputs: { backgroundColor: "backgroundColor", text: "text", icon: "icon" }, ngImport: i0, template: "<div id=\"banner\" [style.background-color]=\"backgroundColor\">\n <mat-icon>{{ icon }}</mat-icon>\n <span>{{ text }}</span>\n</div>", styles: ["#banner{height:48px;padding:0 160px;color:#000;font-weight:600;font-size:14px;display:flex;align-items:center}#banner mat-icon{margin-right:16px}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
33
|
+
BannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BannerComponent, selector: "ui-banner", inputs: { backgroundColor: "backgroundColor", text: "text", icon: "icon" }, ngImport: i0, template: "<div id=\"banner\" [style.background-color]=\"backgroundColor\">\n <mat-icon>{{ icon }}</mat-icon>\n <span>{{ text }}</span>\n</div>", styles: ["#banner{height:48px;padding:0 160px;color:#000;font-weight:600;font-size:14px;display:flex;align-items:center}#banner mat-icon{margin-right:16px}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
|
-
args: [{ selector: 'ui-banner', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36
|
+
args: [{ selector: 'ui-banner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"banner\" [style.background-color]=\"backgroundColor\">\n <mat-icon>{{ icon }}</mat-icon>\n <span>{{ text }}</span>\n</div>", styles: ["#banner{height:48px;padding:0 160px;color:#000;font-weight:600;font-size:14px;display:flex;align-items:center}#banner mat-icon{margin-right:16px}\n"] }]
|
|
37
37
|
}], ctorParameters: function () { return []; }, propDecorators: { backgroundColor: [{
|
|
38
38
|
type: Input
|
|
39
39
|
}], text: [{
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
41
41
|
}], icon: [{
|
|
42
42
|
type: Input
|
|
43
43
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFubmVyL2Jhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTFFLE1BQU0sT0FBTyxlQUFlO0lBNkIxQjtRQTVCQSxtSEFBbUg7UUFDbkgsd0RBQXdEO1FBQ3hELHdEQUF3RDtRQUV4RDs7Ozs7V0FLRztRQUNNLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRTlCOzs7OztXQUtHO1FBQ00sU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVuQjs7Ozs7V0FLRztRQUNNLFNBQUksR0FBRyxlQUFlLENBQUM7SUFFakIsQ0FBQzs7NkdBN0JMLGVBQWU7aUdBQWYsZUFBZSw2SENSNUIsNElBR007NEZES08sZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07MEVBYXRDLGVBQWU7c0JBQXZCLEtBQUs7Z0JBUUcsSUFBSTtzQkFBWixLQUFLO2dCQVFHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWJhbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJhbm5lckNvbXBvbmVudCB7XG4gIC8vIFRPRE86IFNvbWUgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBhcmUgaWdub3JlZCBvbiBwdXJwb3NlIGJlY2F1c2Ugb2YgYSBjdXJyZW50IGlzc3VlIHdpdGggY29tcG9kb2MgYW5kIGFuZ3VsYXIgMTNcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTY4NjVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTcwMDRcblxuICAvKipcbiAgICogQmFubmVyIGJhY2tncm91bmQgY29sb3JcbiAgICpcbiAgICogQHR5cGUge1RlbXBsYXRlU3RyaW5nc0FycmF5fVxuICAgKiBAbWVtYmVyb2YgQmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3IgPSAnJztcblxuICAvKipcbiAgICogQmFubmVyIHRleHRcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgdGV4dCA9ICcnO1xuXG4gIC8qKlxuICAgKiBCYW5uZXIgaWNvblxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgQmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBpY29uID0gJ2Vycm9yX291dGxpbmUnO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiIsIjxkaXYgaWQ9XCJiYW5uZXJcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIj5cbiAgICA8bWF0LWljb24+e3sgaWNvbiB9fTwvbWF0LWljb24+XG4gICAgPHNwYW4+e3sgdGV4dCB9fTwvc3Bhbj5cbjwvZGl2PiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../button/button.component";
|
|
4
4
|
import * as i2 from "@angular/common";
|
|
@@ -24,10 +24,10 @@ export class BannerActionComponent {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
BannerActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
-
BannerActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BannerActionComponent, selector: "ui-banner-action", inputs: { text: "text", backgroundColor: "backgroundColor", buttonLabel: "buttonLabel", emoji: "emoji" }, outputs: { buttonClickedEvent: "buttonClickedEvent" }, ngImport: i0, template: "<div id=\"banner-action\" [style.background-color]=\"backgroundColor\">\n <div class=\"text\">\n <span *ngIf=\"emoji\" class=\"emoji\">{{ emoji }}</span>\n <span>{{ text }}</span>\n </div>\n <ui-button [iconName]=\"'east'\" [iconPosition]=\"'right'\" [label]=\"buttonLabel\" (onClickEvent)=\"buttonClicked()\" *ngIf=\"buttonLabel\"></ui-button>\n</div>", styles: ["#banner-action{height:72px;padding:0 16px;color:#000;font-weight:600;font-size:14px;display:flex;align-items:center;background:#FFFFFF;border:2px solid #276678;box-shadow:0 8px 16px #0000001a;border-radius:8px}#banner-action .text{width:100%;display:flex;align-items:center}#banner-action .text .emoji{font-size:24px;margin-right:12px}\n"], components: [{ type: i1.ButtonComponent, selector: "ui-button", inputs: ["color", "label", "iconPosition", "iconName", "disabled", "loading", "fullWidth"], outputs: ["onClickEvent"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
27
|
+
BannerActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BannerActionComponent, selector: "ui-banner-action", inputs: { text: "text", backgroundColor: "backgroundColor", buttonLabel: "buttonLabel", emoji: "emoji" }, outputs: { buttonClickedEvent: "buttonClickedEvent" }, ngImport: i0, template: "<div id=\"banner-action\" [style.background-color]=\"backgroundColor\">\n <div class=\"text\">\n <span *ngIf=\"emoji\" class=\"emoji\">{{ emoji }}</span>\n <span>{{ text }}</span>\n </div>\n <ui-button [iconName]=\"'east'\" [iconPosition]=\"'right'\" [label]=\"buttonLabel\" (onClickEvent)=\"buttonClicked()\" *ngIf=\"buttonLabel\"></ui-button>\n</div>", styles: ["#banner-action{height:72px;padding:0 16px;color:#000;font-weight:600;font-size:14px;display:flex;align-items:center;background:#FFFFFF;border:2px solid #276678;box-shadow:0 8px 16px #0000001a;border-radius:8px}#banner-action .text{width:100%;display:flex;align-items:center}#banner-action .text .emoji{font-size:24px;margin-right:12px}\n"], components: [{ type: i1.ButtonComponent, selector: "ui-button", inputs: ["color", "label", "iconPosition", "iconName", "disabled", "loading", "fullWidth"], outputs: ["onClickEvent"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerActionComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
|
-
args: [{ selector: 'ui-banner-action', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
30
|
+
args: [{ selector: 'ui-banner-action', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"banner-action\" [style.background-color]=\"backgroundColor\">\n <div class=\"text\">\n <span *ngIf=\"emoji\" class=\"emoji\">{{ emoji }}</span>\n <span>{{ text }}</span>\n </div>\n <ui-button [iconName]=\"'east'\" [iconPosition]=\"'right'\" [label]=\"buttonLabel\" (onClickEvent)=\"buttonClicked()\" *ngIf=\"buttonLabel\"></ui-button>\n</div>", styles: ["#banner-action{height:72px;padding:0 16px;color:#000;font-weight:600;font-size:14px;display:flex;align-items:center;background:#FFFFFF;border:2px solid #276678;box-shadow:0 8px 16px #0000001a;border-radius:8px}#banner-action .text{width:100%;display:flex;align-items:center}#banner-action .text .emoji{font-size:24px;margin-right:12px}\n"] }]
|
|
31
31
|
}], ctorParameters: function () { return []; }, propDecorators: { text: [{
|
|
32
32
|
type: Input
|
|
33
33
|
}], backgroundColor: [{
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
39
39
|
}], buttonClickedEvent: [{
|
|
40
40
|
type: Output
|
|
41
41
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYW5uZXItYWN0aW9uL2Jhbm5lci1hY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFubmVyLWFjdGlvbi9iYW5uZXItYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRaEcsTUFBTSxPQUFPLHFCQUFxQjtJQTBDaEM7UUF6Q0EsbUhBQW1IO1FBQ25ILHdEQUF3RDtRQUN4RCx3REFBd0Q7UUFFeEQ7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBMEJuQjs7V0FFRztRQUNPLHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRTdELENBQUM7SUFFaEIsYUFBYTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzttSEE5Q1UscUJBQXFCO3VHQUFyQixxQkFBcUIseU5DUmxDLHlYQU1NOzRGREVPLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTswRUFhdEMsSUFBSTtzQkFBWixLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBUUcsV0FBVztzQkFBbkIsS0FBSztnQkFRRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWJhbm5lci1hY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFubmVyLWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jhbm5lci1hY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJhbm5lckFjdGlvbkNvbXBvbmVudCB7XG4gIC8vIFRPRE86IFNvbWUgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBhcmUgaWdub3JlZCBvbiBwdXJwb3NlIGJlY2F1c2Ugb2YgYSBjdXJyZW50IGlzc3VlIHdpdGggY29tcG9kb2MgYW5kIGFuZ3VsYXIgMTNcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTY4NjVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTcwMDRcblxuICAvKipcbiAgICogQmFubmVyQWN0aW9uIHRleHRcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIEJhbm5lckFjdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgdGV4dCA9ICcnO1xuXG4gIC8qKlxuICAgKiBCYW5uZXJBY3Rpb24gYmFja2dyb3VuZCBjb2xvclxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgQmFubmVyQWN0aW9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcblxuICAvKipcbiAgICogQmFubmVyQWN0aW9uIGJ1dHRvbiBsYWJlbFxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgQmFubmVyQWN0aW9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBidXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCYW5uZXJBY3Rpb24gZW1vbmlcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIEJhbm5lckFjdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZW1vamk6IHN0cmluZztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWRFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBidXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYnV0dG9uQ2xpY2tlZEV2ZW50LmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBpZD1cImJhbm5lci1hY3Rpb25cIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImVtb2ppXCIgY2xhc3M9XCJlbW9qaVwiPnt7IGVtb2ppIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyB0ZXh0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDx1aS1idXR0b24gW2ljb25OYW1lXT1cIidlYXN0J1wiIFtpY29uUG9zaXRpb25dPVwiJ3JpZ2h0J1wiIFtsYWJlbF09XCJidXR0b25MYWJlbFwiIChvbkNsaWNrRXZlbnQpPVwiYnV0dG9uQ2xpY2tlZCgpXCIgKm5nSWY9XCJidXR0b25MYWJlbFwiPjwvdWktYnV0dG9uPlxuPC9kaXY+Il19
|