@testgorilla/tgo-ui 0.0.16 → 0.0.19
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/banner-action/banner-action.component.d.ts +40 -0
- package/components/banner-action/banner-action.component.module.d.ts +10 -0
- 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/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 +42 -0
- package/esm2020/components/banner-action/banner-action.component.module.mjs +21 -0
- 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 +4 -4
- package/esm2020/components/forgot-password/forgot-password.component.mjs +4 -4
- 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/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 +20 -16
- package/fesm2015/testgorilla-tgo-ui.mjs +308 -258
- package/fesm2015/testgorilla-tgo-ui.mjs.map +1 -1
- package/fesm2020/testgorilla-tgo-ui.mjs +307 -257
- package/fesm2020/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +1 -3
- package/public-api.d.ts +4 -2
- 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.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class BannerActionComponent {
|
|
4
|
+
/**
|
|
5
|
+
* BannerAction text
|
|
6
|
+
*
|
|
7
|
+
* @type {string}
|
|
8
|
+
* @memberof BannerActionComponent
|
|
9
|
+
*/
|
|
10
|
+
text: string;
|
|
11
|
+
/**
|
|
12
|
+
* BannerAction background color
|
|
13
|
+
*
|
|
14
|
+
* @type {string}
|
|
15
|
+
* @memberof BannerActionComponent
|
|
16
|
+
*/
|
|
17
|
+
backgroundColor: string;
|
|
18
|
+
/**
|
|
19
|
+
* BannerAction button label
|
|
20
|
+
*
|
|
21
|
+
* @type {string}
|
|
22
|
+
* @memberof BannerActionComponent
|
|
23
|
+
*/
|
|
24
|
+
buttonLabel: string;
|
|
25
|
+
/**
|
|
26
|
+
* BannerAction emoni
|
|
27
|
+
*
|
|
28
|
+
* @type {string}
|
|
29
|
+
* @memberof BannerActionComponent
|
|
30
|
+
*/
|
|
31
|
+
emoji: string;
|
|
32
|
+
/**
|
|
33
|
+
* @ignore
|
|
34
|
+
*/
|
|
35
|
+
buttonClickedEvent: EventEmitter<void>;
|
|
36
|
+
constructor();
|
|
37
|
+
buttonClicked(): void;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BannerActionComponent, never>;
|
|
39
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BannerActionComponent, "ui-banner-action", never, { "text": "text"; "backgroundColor": "backgroundColor"; "buttonLabel": "buttonLabel"; "emoji": "emoji"; }, { "buttonClickedEvent": "buttonClickedEvent"; }, never, never>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./banner-action.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/material/icon";
|
|
5
|
+
import * as i4 from "../button/button.component.module";
|
|
6
|
+
export declare class BannerActionComponentModule {
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BannerActionComponentModule, never>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<BannerActionComponentModule, [typeof i1.BannerActionComponent], [typeof i2.CommonModule, typeof i3.MatIconModule, typeof i4.ButtonComponentModule], [typeof i1.BannerActionComponent]>;
|
|
9
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<BannerActionComponentModule>;
|
|
10
|
+
}
|
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
|
+
}
|
|
@@ -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{
|
|
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==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../button/button.component";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class BannerActionComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
// TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13
|
|
8
|
+
// https://github.com/storybookjs/storybook/issues/16865
|
|
9
|
+
// https://github.com/storybookjs/storybook/issues/17004
|
|
10
|
+
/**
|
|
11
|
+
* BannerAction text
|
|
12
|
+
*
|
|
13
|
+
* @type {string}
|
|
14
|
+
* @memberof BannerActionComponent
|
|
15
|
+
*/
|
|
16
|
+
this.text = '';
|
|
17
|
+
/**
|
|
18
|
+
* @ignore
|
|
19
|
+
*/
|
|
20
|
+
this.buttonClickedEvent = new EventEmitter();
|
|
21
|
+
}
|
|
22
|
+
buttonClicked() {
|
|
23
|
+
this.buttonClickedEvent.emit();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
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 });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerActionComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
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
|
+
}], ctorParameters: function () { return []; }, propDecorators: { text: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], backgroundColor: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], buttonLabel: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], emoji: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], buttonClickedEvent: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYW5uZXItYWN0aW9uL2Jhbm5lci1hY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFubmVyLWFjdGlvbi9iYW5uZXItYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRaEcsTUFBTSxPQUFPLHFCQUFxQjtJQTBDaEM7UUF6Q0EsbUhBQW1IO1FBQ25ILHdEQUF3RDtRQUN4RCx3REFBd0Q7UUFFeEQ7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBMEJuQjs7V0FFRztRQUNPLHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRTdELENBQUM7SUFFaEIsYUFBYTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzttSEE5Q1UscUJBQXFCO3VHQUFyQixxQkFBcUIseU5DUmxDLHlYQU1NOzRGREVPLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTswRUFhdEMsSUFBSTtzQkFBWixLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBUUcsV0FBVztzQkFBbkIsS0FBSztnQkFRRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWJhbm5lci1hY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFubmVyLWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jhbm5lci1hY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJhbm5lckFjdGlvbkNvbXBvbmVudCB7XG4gIC8vIFRPRE86IFNvbWUgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBhcmUgaWdub3JlZCBvbiBwdXJwb3NlIGJlY2F1c2Ugb2YgYSBjdXJyZW50IGlzc3VlIHdpdGggY29tcG9kb2MgYW5kIGFuZ3VsYXIgMTNcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTY4NjVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N0b3J5Ym9va2pzL3N0b3J5Ym9vay9pc3N1ZXMvMTcwMDRcblxuICAvKipcbiAgICogQmFubmVyQWN0aW9uIHRleHRcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIEJhbm5lckFjdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgdGV4dCA9ICcnO1xuXG4gIC8qKlxuICAgKiBCYW5uZXJBY3Rpb24gYmFja2dyb3VuZCBjb2xvclxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgQmFubmVyQWN0aW9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcblxuICAvKipcbiAgICogQmFubmVyQWN0aW9uIGJ1dHRvbiBsYWJlbFxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgQmFubmVyQWN0aW9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBidXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCYW5uZXJBY3Rpb24gZW1vbmlcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIEJhbm5lckFjdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZW1vamk6IHN0cmluZztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWRFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBidXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYnV0dG9uQ2xpY2tlZEV2ZW50LmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBpZD1cImJhbm5lci1hY3Rpb25cIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImVtb2ppXCIgY2xhc3M9XCJlbW9qaVwiPnt7IGVtb2ppIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyB0ZXh0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDx1aS1idXR0b24gW2ljb25OYW1lXT1cIidlYXN0J1wiIFtpY29uUG9zaXRpb25dPVwiJ3JpZ2h0J1wiIFtsYWJlbF09XCJidXR0b25MYWJlbFwiIChvbkNsaWNrRXZlbnQpPVwiYnV0dG9uQ2xpY2tlZCgpXCIgKm5nSWY9XCJidXR0b25MYWJlbFwiPjwvdWktYnV0dG9uPlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { ButtonComponentModule } from '../button/button.component.module';
|
|
5
|
+
import { BannerActionComponent } from './banner-action.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class BannerActionComponentModule {
|
|
8
|
+
}
|
|
9
|
+
BannerActionComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerActionComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
BannerActionComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerActionComponentModule, declarations: [BannerActionComponent], imports: [CommonModule, MatIconModule, ButtonComponentModule], exports: [BannerActionComponent] });
|
|
11
|
+
BannerActionComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerActionComponentModule, providers: [], imports: [[CommonModule, MatIconModule, ButtonComponentModule]] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BannerActionComponentModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [BannerActionComponent],
|
|
16
|
+
imports: [CommonModule, MatIconModule, ButtonComponentModule],
|
|
17
|
+
exports: [BannerActionComponent],
|
|
18
|
+
providers: [],
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLWFjdGlvbi5jb21wb25lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFubmVyLWFjdGlvbi9iYW5uZXItYWN0aW9uLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQVFsRSxNQUFNLE9BQU8sMkJBQTJCOzt5SEFBM0IsMkJBQTJCOzBIQUEzQiwyQkFBMkIsaUJBTHZCLHFCQUFxQixhQUMxQixZQUFZLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixhQUNsRCxxQkFBcUI7MEhBR3BCLDJCQUEyQixhQUYzQixFQUFFLFlBRkosQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixDQUFDOzRGQUlsRCwyQkFBMkI7a0JBTnZDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUscUJBQXFCLENBQUM7b0JBQzdELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IEJhbm5lckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYmFubmVyLWFjdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtCYW5uZXJBY3Rpb25Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBCdXR0b25Db21wb25lbnRNb2R1bGVdLFxuICBleHBvcnRzOiBbQmFubmVyQWN0aW9uQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQmFubmVyQWN0aW9uQ29tcG9uZW50TW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
import * as i2 from "../field/field.component";
|
|
6
|
+
import * as i3 from "@angular-material-extensions/password-strength";
|
|
7
|
+
import * as i4 from "@angular/material/checkbox";
|
|
8
|
+
import * as i5 from "../button/button.component";
|
|
9
|
+
export class CreateAccountComponent {
|
|
10
|
+
constructor(fb) {
|
|
11
|
+
this.fb = fb;
|
|
12
|
+
// TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13
|
|
13
|
+
// https://github.com/storybookjs/storybook/issues/16865
|
|
14
|
+
// https://github.com/storybookjs/storybook/issues/17004
|
|
15
|
+
/**
|
|
16
|
+
* @ignore
|
|
17
|
+
*/
|
|
18
|
+
this.registerForm = this.fb.group({
|
|
19
|
+
username: ['', [Validators.required, Validators.email]],
|
|
20
|
+
password: [
|
|
21
|
+
'',
|
|
22
|
+
[
|
|
23
|
+
Validators.required,
|
|
24
|
+
Validators.minLength(12),
|
|
25
|
+
Validators.pattern(/^(?=\D*\d)(?=[^a-z]*[a-z])(?=.*[#$%&'()*+,-./:;<=>?@])(?=[^A-Z]*[A-Z]).{12,}$/),
|
|
26
|
+
],
|
|
27
|
+
],
|
|
28
|
+
agree_terms_and_conditions: [false, [Validators.requiredTrue]],
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* @ignore
|
|
32
|
+
*/
|
|
33
|
+
this.formErrors = {
|
|
34
|
+
username: [''],
|
|
35
|
+
password: [''],
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* @ignore
|
|
39
|
+
*/
|
|
40
|
+
this.submitEvent = new EventEmitter();
|
|
41
|
+
/**
|
|
42
|
+
* @ignore
|
|
43
|
+
*/
|
|
44
|
+
this.loginEvent = new EventEmitter();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @ignore
|
|
48
|
+
*/
|
|
49
|
+
ngOnInit() { }
|
|
50
|
+
submit() {
|
|
51
|
+
this.submitEvent.emit({
|
|
52
|
+
username: this.registerForm.get('username')?.value,
|
|
53
|
+
password: this.registerForm.get('password')?.value,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
login() {
|
|
57
|
+
this.loginEvent.emit();
|
|
58
|
+
}
|
|
59
|
+
checkErrors(field) {
|
|
60
|
+
if (this.registerForm.controls[field].touched) {
|
|
61
|
+
if (this.registerForm.controls[field].hasError('required')) {
|
|
62
|
+
this.formErrors[field][0] = 'This field is required';
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (this.registerForm.controls[field].hasError('email')) {
|
|
66
|
+
this.formErrors[field][0] = 'Enter a valid email';
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (field === 'password' && this.registerForm.controls[field].hasError('pattern')) {
|
|
70
|
+
this.formErrors.password[0] = 'Password is invalid';
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
this.formErrors[field][0] = '';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
CreateAccountComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CreateAccountComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
CreateAccountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CreateAccountComponent, selector: "ui-create-account", inputs: { formErrors: "formErrors", loading: "loading" }, outputs: { submitEvent: "submitEvent", loginEvent: "loginEvent" }, ngImport: i0, template: "<div class=\"form-box\">\n <img class=\"logo\" src=\"/images/testgorilla.svg\">\n <div class=\"title\">Create your Career Passport</div>\n <div class=\"subtitle\">Enter the email address to which you received an assessment invite.</div>\n <form [formGroup]=\"registerForm\">\n <div class=\"field\">\n <ui-field formControlName=\"username\" [placeholder]=\"'Email'\" [type]=\"'email'\" [required]=\"true\" [error]=\"formErrors.username[0]\" (ngModelChange)=\"checkErrors('username')\"></ui-field>\n </div>\n <div class=\"field\">\n <ui-field formControlName=\"password\" [placeholder]=\"'Password'\" [type]=\"'password'\" [required]=\"true\" [error]=\"formErrors.password[0]\" (ngModelChange)=\"checkErrors('password')\"></ui-field>\n <mat-password-strength\n [min]=\"12\"\n #passwordComponentWithValidation\n [password]=\"registerForm.controls['password'].value\"\n >\n </mat-password-strength>\n <mat-password-strength-info [passwordComponent]=\"passwordComponentWithValidation\">\n </mat-password-strength-info>\n </div>\n <div>\n <mat-checkbox formControlName=\"agree_terms_and_conditions\">Agree to Terms & Conditions</mat-checkbox>\n </div>\n <div class=\"submit-button\">\n <ui-button [label]=\"'Next'\" [disabled]=\"registerForm.invalid\" [fullWidth]=\"true\" [loading]=\"loading\" (onClickEvent)=\"submit()\"></ui-button>\n </div>\n <div>\n Already have a Career Passport? <span class=\"log-in\" (click)=\"login()\">Log in here</span>\n </div>\n </form>\n</div>\n", styles: [".form-box{width:672px;padding:64px;background:#ffffff;box-shadow:0 8px 16px #0000001a;border-radius:8px;margin:auto;color:#000}.form-box .logo{width:180px;position:relative;right:9px;margin-bottom:16px}.form-box .title{font-weight:700;font-size:22px}.form-box .subtitle{margin:16px 0}.form-box .field{width:100%}.form-box .submit-button{margin:24px 0}.form-box mat-checkbox{font-weight:400}.form-box .log-in{font-weight:600;font-size:15px;cursor:pointer;color:#46a997}.form-box .log-in:hover{text-decoration:underline}.row{display:flex;flex-direction:row}.row.space-between{justify-content:space-between}\n"], components: [{ type: i2.FieldComponent, selector: "ui-field", inputs: ["label", "preffixIcon", "suffixIcon", "required", "hint", "error", "placeholder", "type"] }, { type: i3.MatPasswordStrengthComponent, selector: "mat-password-strength", inputs: ["password", "externalError", "enableLengthRule", "enableLowerCaseLetterRule", "enableUpperCaseLetterRule", "enableDigitRule", "enableSpecialCharRule", "min", "max", "customValidator", "warnThreshold", "accentThreshold"], outputs: ["onStrengthChanged"], exportAs: ["matPasswordStrength"] }, { type: i3.MatPasswordStrengthInfoComponent, selector: "mat-password-strength-info", inputs: ["passwordComponent", "enableScoreInfo", "lowerCaseCriteriaMsg", "upperCaseCriteriaMsg", "digitsCriteriaMsg", "specialCharsCriteriaMsg", "customCharsCriteriaMsg", "minCharsCriteriaMsg", "matIconDone", "matIconError"], exportAs: ["matPasswordStrengthInfo"] }, { type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i5.ButtonComponent, selector: "ui-button", inputs: ["color", "label", "iconPosition", "iconName", "disabled", "loading", "fullWidth"], outputs: ["onClickEvent"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CreateAccountComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: 'ui-create-account', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-box\">\n <img class=\"logo\" src=\"/images/testgorilla.svg\">\n <div class=\"title\">Create your Career Passport</div>\n <div class=\"subtitle\">Enter the email address to which you received an assessment invite.</div>\n <form [formGroup]=\"registerForm\">\n <div class=\"field\">\n <ui-field formControlName=\"username\" [placeholder]=\"'Email'\" [type]=\"'email'\" [required]=\"true\" [error]=\"formErrors.username[0]\" (ngModelChange)=\"checkErrors('username')\"></ui-field>\n </div>\n <div class=\"field\">\n <ui-field formControlName=\"password\" [placeholder]=\"'Password'\" [type]=\"'password'\" [required]=\"true\" [error]=\"formErrors.password[0]\" (ngModelChange)=\"checkErrors('password')\"></ui-field>\n <mat-password-strength\n [min]=\"12\"\n #passwordComponentWithValidation\n [password]=\"registerForm.controls['password'].value\"\n >\n </mat-password-strength>\n <mat-password-strength-info [passwordComponent]=\"passwordComponentWithValidation\">\n </mat-password-strength-info>\n </div>\n <div>\n <mat-checkbox formControlName=\"agree_terms_and_conditions\">Agree to Terms & Conditions</mat-checkbox>\n </div>\n <div class=\"submit-button\">\n <ui-button [label]=\"'Next'\" [disabled]=\"registerForm.invalid\" [fullWidth]=\"true\" [loading]=\"loading\" (onClickEvent)=\"submit()\"></ui-button>\n </div>\n <div>\n Already have a Career Passport? <span class=\"log-in\" (click)=\"login()\">Log in here</span>\n </div>\n </form>\n</div>\n", styles: [".form-box{width:672px;padding:64px;background:#ffffff;box-shadow:0 8px 16px #0000001a;border-radius:8px;margin:auto;color:#000}.form-box .logo{width:180px;position:relative;right:9px;margin-bottom:16px}.form-box .title{font-weight:700;font-size:22px}.form-box .subtitle{margin:16px 0}.form-box .field{width:100%}.form-box .submit-button{margin:24px 0}.form-box mat-checkbox{font-weight:400}.form-box .log-in{font-weight:600;font-size:15px;cursor:pointer;color:#46a997}.form-box .log-in:hover{text-decoration:underline}.row{display:flex;flex-direction:row}.row.space-between{justify-content:space-between}\n"] }]
|
|
82
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { formErrors: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], loading: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], submitEvent: [{
|
|
87
|
+
type: Output
|
|
88
|
+
}], loginEvent: [{
|
|
89
|
+
type: Output
|
|
90
|
+
}] } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFjY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY3JlYXRlLWFjY291bnQvY3JlYXRlLWFjY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY3JlYXRlLWFjY291bnQvY3JlYXRlLWFjY291bnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFTekQsTUFBTSxPQUFPLHNCQUFzQjtJQW1EakMsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFsRG5DLG1IQUFtSDtRQUNuSCx3REFBd0Q7UUFDeEQsd0RBQXdEO1FBRXhEOztXQUVHO1FBQ0gsaUJBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMzQixRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxRQUFRLEVBQUU7Z0JBQ1IsRUFBRTtnQkFDRjtvQkFDRSxVQUFVLENBQUMsUUFBUTtvQkFDbkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLFVBQVUsQ0FBQyxPQUFPLENBQUMsK0VBQStFLENBQUM7aUJBQ3BHO2FBQ0Y7WUFDRCwwQkFBMEIsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMvRCxDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNNLGVBQVUsR0FBRztZQUNwQixRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDZixDQUFDO1FBU0Y7O1dBRUc7UUFDTyxnQkFBVyxHQUEyQyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUU3Rzs7V0FFRztRQUNPLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQU85QixDQUFDO0lBTHZDOztPQUVHO0lBQ0gsUUFBUSxLQUFVLENBQUM7SUFJbkIsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLO1lBQ2xELFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLO1NBQ25ELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLHdCQUF3QixDQUFDO2dCQUNyRixPQUFPO2FBQ1I7WUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcscUJBQXFCLENBQUM7Z0JBQ2xGLE9BQU87YUFDUjtZQUVELElBQUksS0FBSyxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO2dCQUNwRCxPQUFPO2FBQ1I7U0FDRjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNqRSxDQUFDOztvSEFuRlUsc0JBQXNCO3dHQUF0QixzQkFBc0Isc0xDVm5DLG1rREE4QkE7NEZEcEJhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTtrR0EwQnRDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVUcsT0FBTztzQkFBZixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENyZWF0ZUFjY291bnRDcmVkZW50aWFscyB9IGZyb20gJy4vY3JlYXRlLWFjY291bnQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1jcmVhdGUtYWNjb3VudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtYWNjb3VudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1hY2NvdW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVBY2NvdW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gVE9ETzogU29tZSBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGFyZSBpZ25vcmVkIG9uIHB1cnBvc2UgYmVjYXVzZSBvZiBhIGN1cnJlbnQgaXNzdWUgd2l0aCBjb21wb2RvYyBhbmQgYW5ndWxhciAxM1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vc3Rvcnlib29ranMvc3Rvcnlib29rL2lzc3Vlcy8xNjg2NVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vc3Rvcnlib29ranMvc3Rvcnlib29rL2lzc3Vlcy8xNzAwNFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICByZWdpc3RlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB1c2VybmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxuICAgIHBhc3N3b3JkOiBbXG4gICAgICAnJyxcbiAgICAgIFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTIpLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPz1cXEQqXFxkKSg/PVteYS16XSpbYS16XSkoPz0uKlsjJCUmJygpKissLS4vOjs8PT4/QF0pKD89W15BLVpdKltBLVpdKS57MTIsfSQvKSxcbiAgICAgIF0sXG4gICAgXSxcbiAgICBhZ3JlZV90ZXJtc19hbmRfY29uZGl0aW9uczogW2ZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZFRydWVdXSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBJbnB1dCgpIGZvcm1FcnJvcnMgPSB7XG4gICAgdXNlcm5hbWU6IFsnJ10sXG4gICAgcGFzc3dvcmQ6IFsnJ10sXG4gIH07XG5cbiAgLyoqXG4gICAqIEluZGljYXRvciBpZiB0aGUgZm9ybSBpcyBsb2FkaW5nXG4gICAqXG4gICAqIEBtZW1iZXJvZiBCdXR0b25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBPdXRwdXQoKSBzdWJtaXRFdmVudDogRXZlbnRFbWl0dGVyPENyZWF0ZUFjY291bnRDcmVkZW50aWFscz4gPSBuZXcgRXZlbnRFbWl0dGVyPENyZWF0ZUFjY291bnRDcmVkZW50aWFscz4oKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQE91dHB1dCgpIGxvZ2luRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG4gIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Ym1pdEV2ZW50LmVtaXQoe1xuICAgICAgdXNlcm5hbWU6IHRoaXMucmVnaXN0ZXJGb3JtLmdldCgndXNlcm5hbWUnKT8udmFsdWUsXG4gICAgICBwYXNzd29yZDogdGhpcy5yZWdpc3RlckZvcm0uZ2V0KCdwYXNzd29yZCcpPy52YWx1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGxvZ2luKCk6IHZvaWQge1xuICAgIHRoaXMubG9naW5FdmVudC5lbWl0KCk7XG4gIH1cblxuICBjaGVja0Vycm9ycyhmaWVsZDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucmVnaXN0ZXJGb3JtLmNvbnRyb2xzW2ZpZWxkXS50b3VjaGVkKSB7XG4gICAgICBpZiAodGhpcy5yZWdpc3RlckZvcm0uY29udHJvbHNbZmllbGRdLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgIHRoaXMuZm9ybUVycm9yc1tmaWVsZCBhcyBrZXlvZiB0eXBlb2YgdGhpcy5mb3JtRXJyb3JzXVswXSA9ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yZWdpc3RlckZvcm0uY29udHJvbHNbZmllbGRdLmhhc0Vycm9yKCdlbWFpbCcpKSB7XG4gICAgICAgIHRoaXMuZm9ybUVycm9yc1tmaWVsZCBhcyBrZXlvZiB0eXBlb2YgdGhpcy5mb3JtRXJyb3JzXVswXSA9ICdFbnRlciBhIHZhbGlkIGVtYWlsJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQgPT09ICdwYXNzd29yZCcgJiYgdGhpcy5yZWdpc3RlckZvcm0uY29udHJvbHNbZmllbGRdLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgICAgdGhpcy5mb3JtRXJyb3JzLnBhc3N3b3JkWzBdID0gJ1Bhc3N3b3JkIGlzIGludmFsaWQnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtRXJyb3JzW2ZpZWxkIGFzIGtleW9mIHR5cGVvZiB0aGlzLmZvcm1FcnJvcnNdWzBdID0gJyc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWJveFwiPlxuICA8aW1nIGNsYXNzPVwibG9nb1wiIHNyYz1cIi9pbWFnZXMvdGVzdGdvcmlsbGEuc3ZnXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkNyZWF0ZSB5b3VyIENhcmVlciBQYXNzcG9ydDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3VidGl0bGVcIj5FbnRlciB0aGUgZW1haWwgYWRkcmVzcyB0byB3aGljaCB5b3UgcmVjZWl2ZWQgYW4gYXNzZXNzbWVudCBpbnZpdGUuPC9kaXY+XG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwicmVnaXN0ZXJGb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICA8dWktZmllbGQgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIiBbcGxhY2Vob2xkZXJdPVwiJ0VtYWlsJ1wiIFt0eXBlXT1cIidlbWFpbCdcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtlcnJvcl09XCJmb3JtRXJyb3JzLnVzZXJuYW1lWzBdXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tFcnJvcnMoJ3VzZXJuYW1lJylcIj48L3VpLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgPHVpLWZpZWxkIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCIgW3BsYWNlaG9sZGVyXT1cIidQYXNzd29yZCdcIiBbdHlwZV09XCIncGFzc3dvcmQnXCIgW3JlcXVpcmVkXT1cInRydWVcIiBbZXJyb3JdPVwiZm9ybUVycm9ycy5wYXNzd29yZFswXVwiIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrRXJyb3JzKCdwYXNzd29yZCcpXCI+PC91aS1maWVsZD5cbiAgICAgIDxtYXQtcGFzc3dvcmQtc3RyZW5ndGhcbiAgICAgICAgICAgICAgW21pbl09XCIxMlwiXG4gICAgICAgICAgICAgICNwYXNzd29yZENvbXBvbmVudFdpdGhWYWxpZGF0aW9uXG4gICAgICAgICAgICAgIFtwYXNzd29yZF09XCJyZWdpc3RlckZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ10udmFsdWVcIlxuICAgICAgICAgICAgPlxuICAgICAgPC9tYXQtcGFzc3dvcmQtc3RyZW5ndGg+XG4gICAgICA8bWF0LXBhc3N3b3JkLXN0cmVuZ3RoLWluZm8gW3Bhc3N3b3JkQ29tcG9uZW50XT1cInBhc3N3b3JkQ29tcG9uZW50V2l0aFZhbGlkYXRpb25cIj5cbiAgICAgIDwvbWF0LXBhc3N3b3JkLXN0cmVuZ3RoLWluZm8+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwiYWdyZWVfdGVybXNfYW5kX2NvbmRpdGlvbnNcIj5BZ3JlZSB0byBUZXJtcyAmIENvbmRpdGlvbnM8L21hdC1jaGVja2JveD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3VibWl0LWJ1dHRvblwiPlxuICAgICAgPHVpLWJ1dHRvbiBbbGFiZWxdPVwiJ05leHQnXCIgW2Rpc2FibGVkXT1cInJlZ2lzdGVyRm9ybS5pbnZhbGlkXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiIChvbkNsaWNrRXZlbnQpPVwic3VibWl0KClcIj48L3VpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgQWxyZWFkeSBoYXZlIGEgQ2FyZWVyIFBhc3Nwb3J0PyA8c3BhbiBjbGFzcz1cImxvZy1pblwiIChjbGljayk9XCJsb2dpbigpXCI+TG9nIGluIGhlcmU8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { MatPasswordStrengthModule } from '@angular-material-extensions/password-strength';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
6
|
+
import { ButtonComponentModule } from '../button/button.component.module';
|
|
7
|
+
import { FieldComponentModule } from '../field/field.component.module';
|
|
8
|
+
import { CreateAccountComponent } from './create-account.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class CreateAccountComponentModule {
|
|
11
|
+
}
|
|
12
|
+
CreateAccountComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CreateAccountComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
CreateAccountComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CreateAccountComponentModule, declarations: [CreateAccountComponent], imports: [CommonModule,
|
|
14
|
+
FormsModule,
|
|
15
|
+
ReactiveFormsModule,
|
|
16
|
+
FieldComponentModule,
|
|
17
|
+
ButtonComponentModule,
|
|
18
|
+
MatCheckboxModule,
|
|
19
|
+
MatPasswordStrengthModule], exports: [CreateAccountComponent] });
|
|
20
|
+
CreateAccountComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CreateAccountComponentModule, providers: [], imports: [[
|
|
21
|
+
CommonModule,
|
|
22
|
+
FormsModule,
|
|
23
|
+
ReactiveFormsModule,
|
|
24
|
+
FieldComponentModule,
|
|
25
|
+
ButtonComponentModule,
|
|
26
|
+
MatCheckboxModule,
|
|
27
|
+
MatPasswordStrengthModule,
|
|
28
|
+
]] });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CreateAccountComponentModule, decorators: [{
|
|
30
|
+
type: NgModule,
|
|
31
|
+
args: [{
|
|
32
|
+
declarations: [CreateAccountComponent],
|
|
33
|
+
imports: [
|
|
34
|
+
CommonModule,
|
|
35
|
+
FormsModule,
|
|
36
|
+
ReactiveFormsModule,
|
|
37
|
+
FieldComponentModule,
|
|
38
|
+
ButtonComponentModule,
|
|
39
|
+
MatCheckboxModule,
|
|
40
|
+
MatPasswordStrengthModule,
|
|
41
|
+
],
|
|
42
|
+
exports: [CreateAccountComponent],
|
|
43
|
+
providers: [],
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFjY291bnQuY29tcG9uZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NyZWF0ZS1hY2NvdW50L2NyZWF0ZS1hY2NvdW50LmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQWdCcEUsTUFBTSxPQUFPLDRCQUE0Qjs7MEhBQTVCLDRCQUE0QjsySEFBNUIsNEJBQTRCLGlCQWJ4QixzQkFBc0IsYUFFbkMsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIseUJBQXlCLGFBRWpCLHNCQUFzQjsySEFHckIsNEJBQTRCLGFBRjVCLEVBQUUsWUFWSjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLHlCQUF5QjtTQUMxQjs0RkFJVSw0QkFBNEI7a0JBZHhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdFBhc3N3b3JkU3RyZW5ndGhNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1leHRlbnNpb25zL3Bhc3N3b3JkLXN0cmVuZ3RoJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgQ3JlYXRlQWNjb3VudENvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRlLWFjY291bnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQ3JlYXRlQWNjb3VudENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGaWVsZENvbXBvbmVudE1vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnRNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0UGFzc3dvcmRTdHJlbmd0aE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0NyZWF0ZUFjY291bnRDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVBY2NvdW50Q29tcG9uZW50TW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFjY291bnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jcmVhdGUtYWNjb3VudC9jcmVhdGUtYWNjb3VudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDcmVhdGVBY2NvdW50Q3JlZGVudGlhbHMge1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuIl19
|