bulk-tool-menu-library 20.0.1 → 22.0.0

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.
@@ -0,0 +1,145 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, Injector, ModuleWithProviders } from '@angular/core';
3
+ import * as i7$1 from '@angular/router';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
+ import * as i5$1 from '@angular/forms';
6
+ import { FormGroup, FormBuilder, AbstractControl } from '@angular/forms';
7
+ import * as i8$1 from '@angular/common/http';
8
+ import { HttpClient } from '@angular/common/http';
9
+ import { Observable } from 'rxjs';
10
+ import * as i1 from '@angular/cdk/a11y';
11
+ import * as i2 from '@angular/cdk/table';
12
+ import * as i3 from '@angular/cdk/tree';
13
+ import * as i4 from '@angular/cdk/drag-drop';
14
+ import * as i5 from '@angular/material/autocomplete';
15
+ import * as i6 from '@angular/material/badge';
16
+ import * as i7 from '@angular/material/bottom-sheet';
17
+ import * as i8 from '@angular/material/button';
18
+ import * as i9 from '@angular/material/button-toggle';
19
+ import * as i10 from '@angular/material/card';
20
+ import * as i11 from '@angular/material/checkbox';
21
+ import * as i12 from '@angular/material/chips';
22
+ import * as i13 from '@angular/material/stepper';
23
+ import * as i14 from '@angular/material/datepicker';
24
+ import * as i15 from '@angular/material/dialog';
25
+ import * as i16 from '@angular/material/divider';
26
+ import * as i17 from '@angular/material/expansion';
27
+ import * as i18 from '@angular/material/grid-list';
28
+ import * as i19 from '@angular/material/icon';
29
+ import * as i20 from '@angular/material/input';
30
+ import * as i21 from '@angular/material/list';
31
+ import * as i22 from '@angular/material/menu';
32
+ import * as i23 from '@angular/material/core';
33
+ import * as i24 from '@angular/material/paginator';
34
+ import * as i25 from '@angular/material/progress-bar';
35
+ import * as i26 from '@angular/material/progress-spinner';
36
+ import * as i27 from '@angular/material/radio';
37
+ import * as i28 from '@angular/material/select';
38
+ import * as i29 from '@angular/material/sidenav';
39
+ import * as i30 from '@angular/material/slider';
40
+ import * as i31 from '@angular/material/slide-toggle';
41
+ import * as i32 from '@angular/material/snack-bar';
42
+ import * as i33 from '@angular/material/sort';
43
+ import * as i34 from '@angular/material/table';
44
+ import * as i35 from '@angular/material/tabs';
45
+ import * as i36 from '@angular/material/toolbar';
46
+ import * as i37 from '@angular/material/tooltip';
47
+ import * as i38 from '@angular/material/tree';
48
+ import * as i39 from '@angular/cdk/scrolling';
49
+ import * as i6$1 from '@angular/common';
50
+
51
+ declare class BulkToolService {
52
+ constructor();
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<BulkToolService, never>;
54
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
55
+ }
56
+
57
+ declare class BulkToolComponent implements OnInit {
58
+ constructor();
59
+ ngOnInit(): void;
60
+ static ɵfac: i0.ɵɵFactoryDeclaration<BulkToolComponent, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<BulkToolComponent, "lib-BulkTool", never, {}, {}, never, never, false, never>;
62
+ }
63
+
64
+ interface IEnvironmentsInfo {
65
+ Url: string;
66
+ }
67
+
68
+ declare class AuthService {
69
+ private http;
70
+ injector: Injector;
71
+ private API_ENDPOINT;
72
+ _username: any;
73
+ constructor(http: HttpClient, injector: Injector);
74
+ login(username: string, password: string): Observable<any>;
75
+ logout(): void;
76
+ GetMenu(): Observable<any>;
77
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthService, never>;
78
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
79
+ }
80
+
81
+ interface Login {
82
+ [key: string]: AbstractControl;
83
+ }
84
+ declare class LoginComponent implements OnInit {
85
+ private formBuilder;
86
+ private route;
87
+ private router;
88
+ private authenticationService;
89
+ isLoading: boolean;
90
+ routeUrl: string;
91
+ loginForm: FormGroup;
92
+ submitted: boolean;
93
+ returnUrl: string;
94
+ error: string;
95
+ constructor(formBuilder: FormBuilder, route: ActivatedRoute, router: Router, authenticationService: AuthService);
96
+ isvalidUser: boolean;
97
+ ngOnInit(): void;
98
+ get formsData(): Login;
99
+ onLogin(): void;
100
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoginComponent, never>;
101
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoginComponent, "lib-login", never, { "routeUrl": { "alias": "routeUrl"; "required": false; }; }, {}, never, never, false, never>;
102
+ }
103
+
104
+ interface Menu {
105
+ displaytext: string;
106
+ displayorder: number;
107
+ menuId: number;
108
+ menulevel: number;
109
+ parentMenuId: number;
110
+ targetAction: string;
111
+ targetServer: string;
112
+ children?: Menu[];
113
+ }
114
+ declare class MenuComponent implements OnInit {
115
+ private authenticationService;
116
+ async: any;
117
+ MenuMode: string;
118
+ message: string;
119
+ tooltext: any;
120
+ sidenav: any;
121
+ messages: string[];
122
+ MenuData: Menu[];
123
+ constructor(authenticationService: AuthService);
124
+ ngOnInit(): void;
125
+ GetCBMenu(): void;
126
+ listItemClick(link: any): void;
127
+ static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, never>;
128
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "lib-menu", never, {}, {}, never, never, false, never>;
129
+ }
130
+
131
+ declare class MaterilsModule {
132
+ static ɵfac: i0.ɵɵFactoryDeclaration<MaterilsModule, never>;
133
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MaterilsModule, never, never, [typeof i1.A11yModule, typeof i2.CdkTableModule, typeof i3.CdkTreeModule, typeof i4.DragDropModule, typeof i5.MatAutocompleteModule, typeof i6.MatBadgeModule, typeof i7.MatBottomSheetModule, typeof i8.MatButtonModule, typeof i9.MatButtonToggleModule, typeof i10.MatCardModule, typeof i11.MatCheckboxModule, typeof i12.MatChipsModule, typeof i13.MatStepperModule, typeof i14.MatDatepickerModule, typeof i15.MatDialogModule, typeof i16.MatDividerModule, typeof i17.MatExpansionModule, typeof i18.MatGridListModule, typeof i19.MatIconModule, typeof i20.MatInputModule, typeof i21.MatListModule, typeof i22.MatMenuModule, typeof i23.MatNativeDateModule, typeof i24.MatPaginatorModule, typeof i25.MatProgressBarModule, typeof i26.MatProgressSpinnerModule, typeof i27.MatRadioModule, typeof i23.MatRippleModule, typeof i28.MatSelectModule, typeof i29.MatSidenavModule, typeof i30.MatSliderModule, typeof i31.MatSlideToggleModule, typeof i32.MatSnackBarModule, typeof i33.MatSortModule, typeof i34.MatTableModule, typeof i35.MatTabsModule, typeof i36.MatToolbarModule, typeof i37.MatTooltipModule, typeof i38.MatTreeModule, typeof i39.ScrollingModule]>;
134
+ static ɵinj: i0.ɵɵInjectorDeclaration<MaterilsModule>;
135
+ }
136
+
137
+ declare class BulkToolModule {
138
+ static forRoot(config: IEnvironmentsInfo): ModuleWithProviders<BulkToolModule>;
139
+ static ɵfac: i0.ɵɵFactoryDeclaration<BulkToolModule, never>;
140
+ static ɵmod: i0.ɵɵNgModuleDeclaration<BulkToolModule, [typeof BulkToolComponent, typeof LoginComponent, typeof MenuComponent], [typeof MaterilsModule, typeof i5$1.FormsModule, typeof i6$1.CommonModule, typeof i7$1.RouterModule, typeof i5$1.ReactiveFormsModule, typeof i8$1.HttpClientModule], [typeof BulkToolComponent, typeof LoginComponent, typeof MenuComponent]>;
141
+ static ɵinj: i0.ɵɵInjectorDeclaration<BulkToolModule>;
142
+ }
143
+
144
+ export { BulkToolComponent, BulkToolModule, BulkToolService, LoginComponent, MaterilsModule, MenuComponent };
145
+ export type { IEnvironmentsInfo, Login, Menu };
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay10b29sLTIwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYnVsay10b29sL3NyYy9idWxrLXRvb2wtMjAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,50 +0,0 @@
1
- import { Injectable, Injector } from '@angular/core';
2
- import { HttpClient } from '@angular/common/http';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- export class AuthService {
7
- http;
8
- injector;
9
- API_ENDPOINT; //= this.injector.get("config").Url;
10
- //private RM_ENDPOINT = this.injector.get("config").apiBaseUrl;
11
- _username;
12
- //private headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
13
- constructor(http, injector) {
14
- this.http = http;
15
- this.injector = injector;
16
- this.API_ENDPOINT = this.injector.get("config").Url;
17
- }
18
- //private postheaders = new Headers({'Content-Type': 'application/json'});
19
- login(username, password) {
20
- this._username = username;
21
- return this.http.post(this.API_ENDPOINT + "/login", { username, password })
22
- .pipe(map(user => {
23
- // login successful if there's a jwt token in the response
24
- if (user && user.token) {
25
- console.log(user);
26
- // store user details and jwt token in local storage to keep user logged in between page refreshes
27
- localStorage.setItem('TokenInfo', JSON.stringify(user));
28
- }
29
- return user;
30
- }));
31
- }
32
- logout() {
33
- localStorage.removeItem('TokenInfo');
34
- }
35
- GetMenu() {
36
- return this.http.get(this.API_ENDPOINT + '/Menus/userMenus?username=' + this._username)
37
- .pipe(map(res => {
38
- return res;
39
- }));
40
- }
41
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
42
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AuthService, providedIn: 'root' });
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AuthService, decorators: [{
45
- type: Injectable,
46
- args: [{
47
- providedIn: 'root'
48
- }]
49
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.Injector }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVsay10b29sL3NyYy9saWIvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVFyQyxNQUFNLE9BQU8sV0FBVztJQUtBO0lBQXdCO0lBSnhDLFlBQVksQ0FBQyxDQUFDLG9DQUFvQztJQUMxRCwrREFBK0Q7SUFDdEQsU0FBUyxDQUFDO0lBQ2YseUZBQXlGO0lBQ3pGLFlBQW9CLElBQWdCLEVBQVEsUUFBa0I7UUFBMUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFRLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDMUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDeEQsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxLQUFLLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUVwQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO2FBQzNFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDYiwwREFBMEQ7WUFDMUQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRyxDQUFDO2dCQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQixrR0FBa0c7Z0JBQ2xHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNO1FBQ0YsWUFBWSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFFWixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzJIQW5DUSxXQUFXOytIQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uc3RhbnQgfSBmcm9tICcuL2NvbnN0YW50LmVudW0nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbnByaXZhdGUgQVBJX0VORFBPSU5UOyAvLz0gdGhpcy5pbmplY3Rvci5nZXQoXCJjb25maWdcIikuVXJsO1xyXG4vL3ByaXZhdGUgUk1fRU5EUE9JTlQgPSB0aGlzLmluamVjdG9yLmdldChcImNvbmZpZ1wiKS5hcGlCYXNlVXJsO1xyXG4gIHB1YmxpYyBfdXNlcm5hbWU7XHJcbiAgICAvL3ByaXZhdGUgaGVhZGVycyA9IG5ldyBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIH0pO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICB0aGlzLkFQSV9FTkRQT0lOVCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFwiY29uZmlnXCIpLlVybDtcclxuICAgIH1cclxuICAgXHJcbiAgICAvL3ByaXZhdGUgcG9zdGhlYWRlcnMgPSBuZXcgSGVhZGVycyh7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ30pO1xyXG4gICAgbG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykgOiBPYnNlcnZhYmxlPGFueT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl91c2VybmFtZSA9IHVzZXJuYW1lO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMuQVBJX0VORFBPSU5UICsgXCIvbG9naW5cIiwgeyB1c2VybmFtZSwgcGFzc3dvcmQgfSlcclxuICAgICAgICAgICAgLnBpcGUobWFwKHVzZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gbG9naW4gc3VjY2Vzc2Z1bCBpZiB0aGVyZSdzIGEgand0IHRva2VuIGluIHRoZSByZXNwb25zZVxyXG4gICAgICAgICAgICAgICAgaWYgKHVzZXIgJiYgdXNlci50b2tlbiApIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh1c2VyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBzdG9yZSB1c2VyIGRldGFpbHMgYW5kIGp3dCB0b2tlbiBpbiBsb2NhbCBzdG9yYWdlIHRvIGtlZXAgdXNlciBsb2dnZWQgaW4gYmV0d2VlbiBwYWdlIHJlZnJlc2hlc1xyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdUb2tlbkluZm8nLCBKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdXNlcjtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvZ291dCgpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnVG9rZW5JbmZvJyk7XHJcbiAgICB9XHJcbiAgICAgXHJcbiAgICBwdWJsaWMgR2V0TWVudSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuQVBJX0VORFBPSU5UICsnL01lbnVzL3VzZXJNZW51cz91c2VybmFtZT0nKyAgdGhpcy5fdXNlcm5hbWUpXHJcbiAgICAgICAgLnBpcGUobWFwKHJlcyA9PiB7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,22 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BulkToolComponent {
4
- constructor() { }
5
- ngOnInit() {
6
- }
7
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: BulkToolComponent, isStandalone: false, selector: "lib-BulkTool", ngImport: i0, template: `
9
- <p>
10
- bulk-tool works!
11
- </p>
12
- `, isInline: true });
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'lib-BulkTool', standalone: false, template: `
17
- <p>
18
- bulk-tool works!
19
- </p>
20
- ` }]
21
- }], ctorParameters: () => [] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J1bGstdG9vbC9zcmMvbGliL2J1bGstdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzsySEFMVSxpQkFBaUI7K0dBQWpCLGlCQUFpQix5RUFQbEI7Ozs7R0FJVDs7NEZBR1UsaUJBQWlCO2tCQVY3QixTQUFTOytCQUNFLGNBQWMsY0FDWCxLQUFLLFlBQ1I7Ozs7R0FJVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1CdWxrVG9vbCcsXHJcbiAgc3RhbmRhbG9uZSA6IGZhbHNlLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8cD5cclxuICAgICAgYnVsay10b29sIHdvcmtzIVxyXG4gICAgPC9wPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVsa1Rvb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,50 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { BulkToolComponent } from './bulk-tool.component';
3
- import { LoginComponent } from './login/login.component';
4
- import { MaterilsModule } from './materils/materils.module';
5
- import { MenuComponent } from './menu/menu.component';
6
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
- import { CommonModule } from '@angular/common';
8
- import { RouterModule } from '@angular/router';
9
- import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
10
- import { HttpLibInterceptor } from './http-interceptor';
11
- import { AuthService } from './auth.service';
12
- import * as i0 from "@angular/core";
13
- export class BulkToolModule {
14
- static forRoot(config) {
15
- return {
16
- ngModule: BulkToolModule,
17
- providers: [{ provide: 'config', useValue: config }]
18
- };
19
- }
20
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: BulkToolModule, declarations: [BulkToolComponent, LoginComponent, MenuComponent], imports: [MaterilsModule,
22
- FormsModule,
23
- CommonModule,
24
- RouterModule,
25
- ReactiveFormsModule,
26
- HttpClientModule], exports: [BulkToolComponent, LoginComponent, MenuComponent] });
27
- /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolModule, providers: [{ provide: HTTP_INTERCEPTORS, useClass: HttpLibInterceptor, multi: true }, AuthService], imports: [MaterilsModule,
28
- FormsModule,
29
- CommonModule,
30
- RouterModule,
31
- ReactiveFormsModule,
32
- HttpClientModule] });
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolModule, decorators: [{
35
- type: NgModule,
36
- args: [{
37
- imports: [
38
- MaterilsModule,
39
- FormsModule,
40
- CommonModule,
41
- RouterModule,
42
- ReactiveFormsModule,
43
- HttpClientModule,
44
- ],
45
- declarations: [BulkToolComponent, LoginComponent, MenuComponent],
46
- exports: [BulkToolComponent, LoginComponent, MenuComponent],
47
- providers: [{ provide: HTTP_INTERCEPTORS, useClass: HttpLibInterceptor, multi: true }, AuthService]
48
- }]
49
- }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay10b29sLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J1bGstdG9vbC9zcmMvbGliL2J1bGstdG9vbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQW9CN0MsTUFBTSxPQUFPLGNBQWM7SUFDekIsTUFBTSxDQUFDLE9BQU8sQ0FBRSxNQUF5QjtRQUN2QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWM7WUFDeEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUNyRCxDQUFDO0lBQ0osQ0FBQzsySEFOVSxjQUFjOzRIQUFkLGNBQWMsaUJBSlYsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGFBQWEsYUFUN0QsY0FBYztZQUNkLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0IsYUFLUixpQkFBaUIsRUFBRSxjQUFjLEVBQUUsYUFBYTs0SEFHL0MsY0FBYyxhQUZmLENBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBQyxXQUFXLENBQUMsWUFYaEcsY0FBYztZQUNkLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0I7OzRGQVFQLGNBQWM7a0JBZjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBR2pCO29CQUNELFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUM7b0JBQ2hFLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUM7b0JBQzNELFNBQVMsRUFBQyxDQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUMsV0FBVyxDQUFDO2lCQUNuRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnVsa1Rvb2xDb21wb25lbnQgfSBmcm9tICcuL2J1bGstdG9vbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vbG9naW4vbG9naW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpbHNNb2R1bGUgfSBmcm9tICcuL21hdGVyaWxzL21hdGVyaWxzLm1vZHVsZSc7XHJcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBIdHRwTGliSW50ZXJjZXB0b3IgfSBmcm9tICcuL2h0dHAtaW50ZXJjZXB0b3InO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJRW52aXJvbm1lbnRzSW5mb30gZnJvbSAnLi4vbGliL2Vudmlyb25tZW50c01vZGVsLmluZm8nO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdGVyaWxzTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuXHJcbiAgIFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbQnVsa1Rvb2xDb21wb25lbnQsIExvZ2luQ29tcG9uZW50LCBNZW51Q29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbQnVsa1Rvb2xDb21wb25lbnQsIExvZ2luQ29tcG9uZW50LCBNZW51Q29tcG9uZW50XSxcclxuICBwcm92aWRlcnM6WyB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogSHR0cExpYkludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LEF1dGhTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVsa1Rvb2xNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KMKgY29uZmlnwqA6SUVudmlyb25tZW50c0luZm8pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEJ1bGtUb29sTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQnVsa1Rvb2xNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW3vCoHByb3ZpZGU6wqAnY29uZmlnJyzCoHVzZVZhbHVlOsKgY29uZmlnwqB9XVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gfVxyXG4iXX0=
@@ -1,14 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BulkToolService {
4
- constructor() { }
5
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolService, providedIn: 'root' });
7
- }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolService, decorators: [{
9
- type: Injectable,
10
- args: [{
11
- providedIn: 'root'
12
- }]
13
- }], ctorParameters: () => [] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay10b29sLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9idWxrLXRvb2wvc3JjL2xpYi9idWxrLXRvb2wuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZUFBZTtJQUUxQixnQkFBZ0IsQ0FBQzsySEFGTixlQUFlOytIQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1bGtUb29sU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
@@ -1,6 +0,0 @@
1
- export const Constant = {
2
- APPSERVICEURL: 'https://localhost:44348/api',
3
- APPSERVICEPRODURL: 'https://tk4addin.dev.summitenergy.com/appservices/api',
4
- INVALID: "Invalid Username or Password"
5
- };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J1bGstdG9vbC9zcmMvbGliL2NvbnN0YW50LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFFO0lBQ25CLGFBQWEsRUFBQyw2QkFBNkI7SUFDM0MsaUJBQWlCLEVBQUMsdURBQXVEO0lBRXpFLE9BQU8sRUFBQyw4QkFBOEI7Q0FDekMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDb25zdGFudD0ge1xyXG4gICAgQVBQU0VSVklDRVVSTDonaHR0cHM6Ly9sb2NhbGhvc3Q6NDQzNDgvYXBpJyxcclxuICAgIEFQUFNFUlZJQ0VQUk9EVVJMOidodHRwczovL3RrNGFkZGluLmRldi5zdW1taXRlbmVyZ3kuY29tL2FwcHNlcnZpY2VzL2FwaScsXHJcblxyXG4gICAgSU5WQUxJRDpcIkludmFsaWQgVXNlcm5hbWUgb3IgUGFzc3dvcmRcIlxyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzTW9kZWwuaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J1bGstdG9vbC9zcmMvbGliL2Vudmlyb25tZW50c01vZGVsLmluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUVudmlyb25tZW50c0luZm8ge1xyXG4gICAgVXJsOnN0cmluZ1xyXG59Il19
@@ -1,25 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class HttpLibInterceptor {
4
- intercept(request, newRequest) {
5
- // add authorization header to request
6
- //Get Token data from local storage
7
- let tokenInfo = JSON.parse(localStorage.getItem('TokenInfo'));
8
- if (tokenInfo && tokenInfo.token) {
9
- request = request.clone({
10
- setHeaders: {
11
- Authorization: `Bearer ${tokenInfo.token}`,
12
- "Content-Type": 'application/json'
13
- }
14
- });
15
- }
16
- console.log(request);
17
- return newRequest.handle(request);
18
- }
19
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HttpLibInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HttpLibInterceptor });
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HttpLibInterceptor, decorators: [{
23
- type: Injectable
24
- }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J1bGstdG9vbC9zcmMvbGliL2h0dHAtaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixTQUFTLENBQUMsT0FBeUIsRUFBRSxVQUF1QjtRQUN4RCxzQ0FBc0M7UUFDdEMsbUNBQW1DO1FBQ25DLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRTlELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsVUFBVSxFQUFFO29CQUNWLGFBQWEsRUFBRSxVQUFVLFNBQVMsQ0FBQyxLQUFLLEVBQUU7b0JBQzFDLGNBQWMsRUFBRSxrQkFBa0I7aUJBQ25DO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakIsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7MkhBaEJNLGtCQUFrQjsrSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdCwgSHR0cEhhbmRsZXIsIEh0dHBFdmVudCwgSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBMaWJJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV3UmVxdWVzdDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICAgICAgLy8gYWRkIGF1dGhvcml6YXRpb24gaGVhZGVyIHRvIHJlcXVlc3RcclxuICAgICAgICAvL0dldCBUb2tlbiBkYXRhIGZyb20gbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgIGxldCB0b2tlbkluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdUb2tlbkluZm8nKSk7XHJcbiAgICAgICBcclxuICAgICAgICBpZiAodG9rZW5JbmZvICYmIHRva2VuSW5mby50b2tlbikge1xyXG4gICAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICAgICAgICBzZXRIZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VuSW5mby50b2tlbn1gLFxyXG4gICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6ICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhyZXF1ZXN0KTtcclxuICAgICAgICByZXR1cm4gbmV3UmVxdWVzdC5oYW5kbGUocmVxdWVzdCk7XHJcbiAgICAgIH1cclxufVxyXG4iXX0=
@@ -1,84 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { Router, ActivatedRoute } from '@angular/router';
3
- import { FormBuilder, Validators } from '@angular/forms';
4
- import { first } from 'rxjs/operators';
5
- import { Constant } from '../constant.enum';
6
- import { AuthService } from '../auth.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "@angular/router";
10
- import * as i3 from "../auth.service";
11
- import * as i4 from "@angular/material/button";
12
- import * as i5 from "@angular/material/icon";
13
- import * as i6 from "@angular/material/input";
14
- import * as i7 from "@angular/material/progress-spinner";
15
- import * as i8 from "@angular/common";
16
- export class LoginComponent {
17
- formBuilder;
18
- route;
19
- router;
20
- authenticationService;
21
- isLoading = false;
22
- routeUrl;
23
- loginForm;
24
- // submitClick = false;
25
- submitted = false;
26
- returnUrl;
27
- error = '';
28
- constructor(formBuilder, route, router, authenticationService) {
29
- this.formBuilder = formBuilder;
30
- this.route = route;
31
- this.router = router;
32
- this.authenticationService = authenticationService;
33
- }
34
- isvalidUser = true;
35
- ngOnInit() {
36
- this.loginForm = this.formBuilder.group({
37
- username: ['', Validators.required],
38
- password: ['', Validators.required]
39
- });
40
- // reset login status
41
- this.authenticationService.logout();
42
- this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || this.routeUrl;
43
- }
44
- get formsData() { return this.loginForm.controls; }
45
- onLogin() {
46
- this.submitted = true;
47
- this.isLoading = true;
48
- // stop here if form is invalid
49
- if (this.loginForm.invalid) {
50
- this.isLoading = false;
51
- return;
52
- }
53
- //this.submitClick = true;
54
- this.authenticationService.login(this.formsData.username.value, this.formsData.password.value)
55
- .pipe(first())
56
- .subscribe(data => {
57
- console.log(data.status);
58
- if (data.status == "InValid") {
59
- this.isLoading = false;
60
- this.isvalidUser = false;
61
- this.error = Constant.INVALID;
62
- this.router.navigate(["/login"]);
63
- }
64
- else {
65
- this.isLoading = false;
66
- this.router.navigate([this.returnUrl]);
67
- }
68
- }, error => {
69
- this.isLoading = false;
70
- this.error = Constant.INVALID;
71
- this.router.navigate(["/login"]);
72
- //this.submitClick = true;
73
- });
74
- }
75
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LoginComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component });
76
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: LoginComponent, isStandalone: false, selector: "lib-login", inputs: { routeUrl: "routeUrl" }, ngImport: i0, template: "\r\n<div class=\"container\">\r\n <div class=\"loginForm\">\r\n <div class=\"example-sidenav-content\">\r\n <div class=\"loginWidget\">\r\n <form [formGroup]=\"loginForm\" >\r\n <h2>Login</h2>\r\n <div>&nbsp;</div>\r\n <div class=\"form-group\">\r\n <!-- <label for=\"username\">Username</label> -->\r\n <!-- <input type=\"text\" formControlName=\"username\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && formsData.username.errors }\" /> -->\r\n <mat-form-field class=\"example-full-width\"\r\n color=\"primary\">\r\n <mat-label>Enter Username</mat-label>\r\n <input class=\"toolbar-search\" formControlName=\"username\" type=\"text\" matInput>\r\n <mat-icon matSuffix style=\"font-size: 1.2em\"></mat-icon>\r\n </mat-form-field>\r\n <!-- <div *ngIf=\"submitted && formsData.username.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"formsData.username.errors.required\">Username is required</div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group\">\r\n <!-- <label for=\"password\">Password</label> -->\r\n <!-- <input type=\"password\" formControlName=\"password\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && formsData.password.errors }\" /> -->\r\n <mat-form-field class=\"example-full-width\"\r\n color=\"primary\">\r\n <mat-label>Enter Password</mat-label>\r\n <input class=\"toolbar-search\" formControlName=\"password\" type=\"password\" matInput>\r\n <mat-icon matSuffix style=\"font-size: 1.2em\"></mat-icon>\r\n </mat-form-field>\r\n <!-- <div *ngIf=\"submitted && formsData.password.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"formsData.password.errors.required\">Password is required</div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group\">\r\n <!-- <button [disabled]=\"submitClick\" class=\"btn btn-primary\">Login</button> -->\r\n <button style=\"background-color: #0888CA;color: #fff;\" mat-button class=\"!loginForm.valid btn btn-primary\" (click)=\"onLogin()\">Login</button>\r\n </div>\r\n <div *ngIf =\"!isvalidUser\" class=\"alert alert-danger\">{{error}}</div>\r\n </form>\r\n </div>\r\n\r\n <section class=\"loade\" *ngIf=\"isLoading\">\r\n <mat-spinner color=\"black\" [diameter]=60 ></mat-spinner>\r\n <span>\r\n Logging...\r\n </span>\r\n </section>\r\n\r\n \r\n <!-- <button type=\"button\" mat-button (click)=\"drawer.toggle()\">\r\n Toggle sidenav\r\n</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n", styles: ["::ng-deep .mat-mdc-form-field .mdc-line-ripple{width:70%!important;left:0!important}::ng-deep .mdc-text-field__input{margin-bottom:.7em!important}::ng-deep .mat-mdc-form-field-label{left:0!important;text-align:left!important;width:100%!important}::ng-deep .mat-mdc-form-field-infix{margin-bottom:-15px!important;margin-left:-18px!important;padding-left:17px!important;min-width:0!important;width:180px!important}button[mat-button]{height:26px!important;min-height:26px!important;padding:0 12px!important;font-size:14px!important}button[mat-button]{height:30px!important;min-height:30px!important;padding:0 14px!important;font-size:13 px!important}body{background:#f4fafd}.loginForm{border-radius:0;background:#fff;width:90%;max-width:450px;padding:15px;text-align:left;margin:60px auto;border:#f4f4f4 solid 1px;box-shadow:4px 2px 5px -2px #c2b3c2}::ng-deep .mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:28px!important;padding:0 16px;border-radius:4px;overflow:visible}.nb-spinner{width:75pxx;height:75px;margin:0;background:transparent;border-top:4px solid #03A9F4;border-right:4px solid transparent;border-radius:50%;animation:1s spin linear infinite}.loade{background:#ffffff80;width:100%;height:100%;overflow:hidden;padding-left:67px;position:absolute;z-index:1;opacity:50;top:0;padding-top:135px}.square-spinner{width:55px;display:block;background-color:#03a9f4;height:55px;animation:3s flip ease-in-out infinite}::ng-deep .mat-spinner circle{stroke:green;stroke-width:10%}::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:unset!important}::ng-deep .mat-mdc-form-field-focus-overlay{background-color:unset!important}::ng-deep .mat-mdc-form-field-required-marker{display:none!important}::ng-deep .mdc-floating-label--required:after{content:none!important;font-weight:500!important}::ng-deep .mat-mdc-form-field .mat-mdc-form-field-required-marker,::ng-deep .mat-mdc-form-field .mdc-floating-label--required:after{display:none!important;content:none!important}::ng-deep .mdc-text-field--filled .mdc-floating-label{font-size:16px!important;color:#6b6b6b!important}\n"], dependencies: [{ kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LoginComponent, decorators: [{
79
- type: Component,
80
- args: [{ standalone: false, selector: 'lib-login', template: "\r\n<div class=\"container\">\r\n <div class=\"loginForm\">\r\n <div class=\"example-sidenav-content\">\r\n <div class=\"loginWidget\">\r\n <form [formGroup]=\"loginForm\" >\r\n <h2>Login</h2>\r\n <div>&nbsp;</div>\r\n <div class=\"form-group\">\r\n <!-- <label for=\"username\">Username</label> -->\r\n <!-- <input type=\"text\" formControlName=\"username\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && formsData.username.errors }\" /> -->\r\n <mat-form-field class=\"example-full-width\"\r\n color=\"primary\">\r\n <mat-label>Enter Username</mat-label>\r\n <input class=\"toolbar-search\" formControlName=\"username\" type=\"text\" matInput>\r\n <mat-icon matSuffix style=\"font-size: 1.2em\"></mat-icon>\r\n </mat-form-field>\r\n <!-- <div *ngIf=\"submitted && formsData.username.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"formsData.username.errors.required\">Username is required</div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group\">\r\n <!-- <label for=\"password\">Password</label> -->\r\n <!-- <input type=\"password\" formControlName=\"password\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && formsData.password.errors }\" /> -->\r\n <mat-form-field class=\"example-full-width\"\r\n color=\"primary\">\r\n <mat-label>Enter Password</mat-label>\r\n <input class=\"toolbar-search\" formControlName=\"password\" type=\"password\" matInput>\r\n <mat-icon matSuffix style=\"font-size: 1.2em\"></mat-icon>\r\n </mat-form-field>\r\n <!-- <div *ngIf=\"submitted && formsData.password.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"formsData.password.errors.required\">Password is required</div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group\">\r\n <!-- <button [disabled]=\"submitClick\" class=\"btn btn-primary\">Login</button> -->\r\n <button style=\"background-color: #0888CA;color: #fff;\" mat-button class=\"!loginForm.valid btn btn-primary\" (click)=\"onLogin()\">Login</button>\r\n </div>\r\n <div *ngIf =\"!isvalidUser\" class=\"alert alert-danger\">{{error}}</div>\r\n </form>\r\n </div>\r\n\r\n <section class=\"loade\" *ngIf=\"isLoading\">\r\n <mat-spinner color=\"black\" [diameter]=60 ></mat-spinner>\r\n <span>\r\n Logging...\r\n </span>\r\n </section>\r\n\r\n \r\n <!-- <button type=\"button\" mat-button (click)=\"drawer.toggle()\">\r\n Toggle sidenav\r\n</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n", styles: ["::ng-deep .mat-mdc-form-field .mdc-line-ripple{width:70%!important;left:0!important}::ng-deep .mdc-text-field__input{margin-bottom:.7em!important}::ng-deep .mat-mdc-form-field-label{left:0!important;text-align:left!important;width:100%!important}::ng-deep .mat-mdc-form-field-infix{margin-bottom:-15px!important;margin-left:-18px!important;padding-left:17px!important;min-width:0!important;width:180px!important}button[mat-button]{height:26px!important;min-height:26px!important;padding:0 12px!important;font-size:14px!important}button[mat-button]{height:30px!important;min-height:30px!important;padding:0 14px!important;font-size:13 px!important}body{background:#f4fafd}.loginForm{border-radius:0;background:#fff;width:90%;max-width:450px;padding:15px;text-align:left;margin:60px auto;border:#f4f4f4 solid 1px;box-shadow:4px 2px 5px -2px #c2b3c2}::ng-deep .mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:28px!important;padding:0 16px;border-radius:4px;overflow:visible}.nb-spinner{width:75pxx;height:75px;margin:0;background:transparent;border-top:4px solid #03A9F4;border-right:4px solid transparent;border-radius:50%;animation:1s spin linear infinite}.loade{background:#ffffff80;width:100%;height:100%;overflow:hidden;padding-left:67px;position:absolute;z-index:1;opacity:50;top:0;padding-top:135px}.square-spinner{width:55px;display:block;background-color:#03a9f4;height:55px;animation:3s flip ease-in-out infinite}::ng-deep .mat-spinner circle{stroke:green;stroke-width:10%}::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:unset!important}::ng-deep .mat-mdc-form-field-focus-overlay{background-color:unset!important}::ng-deep .mat-mdc-form-field-required-marker{display:none!important}::ng-deep .mdc-floating-label--required:after{content:none!important;font-weight:500!important}::ng-deep .mat-mdc-form-field .mat-mdc-form-field-required-marker,::ng-deep .mat-mdc-form-field .mdc-floating-label--required:after{display:none!important;content:none!important}::ng-deep .mdc-text-field--filled .mdc-floating-label{font-size:16px!important;color:#6b6b6b!important}\n"] }]
81
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.AuthService }], propDecorators: { routeUrl: [{
82
- type: Input
83
- }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVsay10b29sL3NyYy9saWIvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVsay10b29sL3NyYy9saWIvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFjOUMsTUFBTSxPQUFPLGNBQWM7SUFVZjtJQUNBO0lBQ0E7SUFDQTtJQVpILFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDekIsUUFBUSxDQUFTO0lBQzFCLFNBQVMsQ0FBWTtJQUN0Qix1QkFBdUI7SUFDdEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixTQUFTLENBQVM7SUFDbEIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVYLFlBQ1UsV0FBd0IsRUFDeEIsS0FBcUIsRUFDckIsTUFBYyxFQUNkLHFCQUFrQztRQUhsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFhO0lBQUksQ0FBQztJQUN4QyxXQUFXLEdBQVcsSUFBSSxDQUFDO0lBQ3BDLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3RDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ25DLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3BDLENBQUMsQ0FBQztRQUVILHFCQUFxQjtRQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNqRixDQUFDO0lBRUQsSUFBSSxTQUFTLEtBQVcsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFekQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLCtCQUErQjtRQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2FBQzNGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNiLFNBQVMsQ0FDUixJQUFJLENBQUMsRUFBRTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pCLElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBRSxTQUFTLEVBQ3pCLENBQUM7Z0JBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUMsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDO2lCQUVELENBQUM7Z0JBQ0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDakMsMEJBQTBCO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzsySEEvRFUsY0FBYzsrR0FBZCxjQUFjLHdHQ3BCM0IsaXJGQTZEQTs7NEZEekNhLGNBQWM7a0JBUDFCLFNBQVM7aUNBQ0ssS0FBSyxZQUNSLFdBQVc7O3NCQU9wQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb25zdGFudCB9IGZyb20gJy4uL2NvbnN0YW50LmVudW0nO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XHJcbi8vaW1wb3J0IHsgdXJsIH0gZnJvbSAnaW5zcGVjdG9yJztcclxuZXhwb3J0IGludGVyZmFjZSBMb2dpblxyXG57XHJcbiAgW2tleTogc3RyaW5nXTogQWJzdHJhY3RDb250cm9sXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmUgOiBmYWxzZSxcclxuICBzZWxlY3RvcjogJ2xpYi1sb2dpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICdsb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByb3V0ZVVybDogc3RyaW5nO1xyXG4gIGxvZ2luRm9ybTogRm9ybUdyb3VwO1xyXG4gLy8gc3VibWl0Q2xpY2sgPSBmYWxzZTtcclxuICBzdWJtaXR0ZWQgPSBmYWxzZTtcclxuICByZXR1cm5Vcmw6IHN0cmluZztcclxuICBlcnJvciA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IH1cclxuICAgIHB1YmxpYyBpc3ZhbGlkVXNlcjpib29sZWFuID0gdHJ1ZTtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHVzZXJuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBwYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gcmVzZXQgbG9naW4gc3RhdHVzXHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dvdXQoKTtcclxuXHJcbiAgICB0aGlzLnJldHVyblVybCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JldHVyblVybCddIHx8IHRoaXMucm91dGVVcmw7XHJcbiAgfVxyXG5cclxuICBnZXQgZm9ybXNEYXRhKCk6TG9naW4geyByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHM7IH1cclxuXHJcbiAgb25Mb2dpbigpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIC8vIHN0b3AgaGVyZSBpZiBmb3JtIGlzIGludmFsaWRcclxuICAgIGlmICh0aGlzLmxvZ2luRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL3RoaXMuc3VibWl0Q2xpY2sgPSB0cnVlO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UubG9naW4odGhpcy5mb3Jtc0RhdGEudXNlcm5hbWUudmFsdWUsIHRoaXMuZm9ybXNEYXRhLnBhc3N3b3JkLnZhbHVlKVxyXG4gICAgICAucGlwZShmaXJzdCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIGRhdGEgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZGF0YS5zdGF0dXMpO1xyXG4gICAgICAgICAgaWYoZGF0YS5zdGF0dXM9PVwiSW5WYWxpZFwiKVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgIHRoaXMuaXN2YWxpZFVzZXI9ZmFsc2U7XHJcbiAgICAgICAgICAgICB0aGlzLmVycm9yID0gQ29uc3RhbnQuSU5WQUxJRDtcclxuICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9sb2dpblwiXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJldHVyblVybF0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3IgPSBDb25zdGFudC5JTlZBTElEO1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL2xvZ2luXCJdKTtcclxuICAgICAgICAgIC8vdGhpcy5zdWJtaXRDbGljayA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImxvZ2luRm9ybVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJleGFtcGxlLXNpZGVuYXYtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxvZ2luV2lkZ2V0XCI+XHJcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCIgPlxyXG4gICAgICAgIDxoMj5Mb2dpbjwvaDI+XHJcbiAgICAgICAgPGRpdj4mbmJzcDs8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPCEtLSA8bGFiZWwgZm9yPVwidXNlcm5hbWVcIj5Vc2VybmFtZTwvbGFiZWw+IC0tPlxyXG4gICAgICAgICAgPCEtLSA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmb3Jtc0RhdGEudXNlcm5hbWUuZXJyb3JzIH1cIiAvPiAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtZnVsbC13aWR0aFwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAgPG1hdC1sYWJlbD5FbnRlciBVc2VybmFtZTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgY2xhc3M9XCJ0b29sYmFyLXNlYXJjaFwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dD5cclxuICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggc3R5bGU9XCJmb250LXNpemU6IDEuMmVtXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZm9ybXNEYXRhLnVzZXJuYW1lLmVycm9yc1wiIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybXNEYXRhLnVzZXJuYW1lLmVycm9ycy5yZXF1aXJlZFwiPlVzZXJuYW1lIGlzIHJlcXVpcmVkPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDwhLS0gPGxhYmVsIGZvcj1cInBhc3N3b3JkXCI+UGFzc3dvcmQ8L2xhYmVsPiAtLT5cclxuICAgICAgICAgIDwhLS0gPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZvcm1zRGF0YS5wYXNzd29yZC5lcnJvcnMgfVwiIC8+IC0tPlxyXG4gICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCJcclxuICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD5FbnRlciBQYXNzd29yZDwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cInRvb2xiYXItc2VhcmNoXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIiBtYXRJbnB1dD5cclxuICAgICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCBzdHlsZT1cImZvbnQtc2l6ZTogMS4yZW1cIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmb3Jtc0RhdGEucGFzc3dvcmQuZXJyb3JzXCIgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3Jtc0RhdGEucGFzc3dvcmQuZXJyb3JzLnJlcXVpcmVkXCI+UGFzc3dvcmQgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPCEtLSA8YnV0dG9uIFtkaXNhYmxlZF09XCJzdWJtaXRDbGlja1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+TG9naW48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMwODg4Q0E7Y29sb3I6ICNmZmY7XCIgbWF0LWJ1dHRvbiAgY2xhc3M9XCIhbG9naW5Gb3JtLnZhbGlkIGJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJvbkxvZ2luKClcIj5Mb2dpbjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWYgPVwiIWlzdmFsaWRVc2VyXCIgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj57e2Vycm9yfX08L2Rpdj5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJsb2FkZVwiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cImJsYWNrXCIgW2RpYW1ldGVyXT02MCA+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgPHNwYW4+XHJcbiAgICBMb2dnaW5nLi4uXHJcbiAgICA8L3NwYW4+XHJcbiAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgXHJcbiAgICA8IS0tIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cImRyYXdlci50b2dnbGUoKVwiPlxyXG4gIFRvZ2dsZSBzaWRlbmF2XHJcbjwvYnV0dG9uPiAtLT5cclxuICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuIl19