exceladdincbms-v2 17.0.0 → 20.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/Pictures - Shortcut.lnk +0 -0
  2. package/fesm2022/{exceladdincbms.mjs → exceladdincbms-20.mjs} +64 -72
  3. package/fesm2022/exceladdincbms-20.mjs.map +1 -0
  4. package/index.d.ts +196 -5
  5. package/package.json +5 -7
  6. package/public_api.d.ts +2 -6
  7. package/src/lib/auth.service.ts +46 -0
  8. package/src/lib/base-app.service.ts +36 -0
  9. package/src/lib/bulk-tool.component.ts +20 -0
  10. package/src/lib/bulk-tool.module.ts +32 -0
  11. package/src/lib/constant.enum.ts +6 -0
  12. package/src/lib/environmentsModel.info.ts +14 -0
  13. package/src/lib/http-interceptor.ts +22 -0
  14. package/src/lib/login/login.component.css +103 -0
  15. package/src/lib/login/login.component.html +59 -0
  16. package/src/lib/login/login.component.ts +105 -0
  17. package/src/lib/materils/materils.module.ts +96 -0
  18. package/src/lib/menu/menu.component.css +388 -0
  19. package/src/lib/menu/menu.component.html +46 -0
  20. package/src/lib/menu/menu.component.ts +191 -0
  21. package/src/public_api.ts +14 -0
  22. package/esm2022/exceladdincbms.mjs +0 -5
  23. package/esm2022/lib/auth.service.mjs +0 -56
  24. package/esm2022/lib/base-app.service.mjs +0 -41
  25. package/esm2022/lib/bulk-tool.component.mjs +0 -22
  26. package/esm2022/lib/bulk-tool.module.mjs +0 -51
  27. package/esm2022/lib/constant.enum.mjs +0 -6
  28. package/esm2022/lib/environmentsModel.info.mjs +0 -3
  29. package/esm2022/lib/http-interceptor.mjs +0 -25
  30. package/esm2022/lib/login/login.component.mjs +0 -111
  31. package/esm2022/lib/materils/materils.module.mjs +0 -177
  32. package/esm2022/lib/menu/menu.component.mjs +0 -187
  33. package/esm2022/public_api.mjs +0 -10
  34. package/fesm2022/exceladdincbms.mjs.map +0 -1
  35. package/lib/auth.service.d.ts +0 -18
  36. package/lib/base-app.service.d.ts +0 -16
  37. package/lib/bulk-tool.component.d.ts +0 -8
  38. package/lib/bulk-tool.module.d.ts +0 -17
  39. package/lib/constant.enum.d.ts +0 -5
  40. package/lib/environmentsModel.info.d.ts +0 -9
  41. package/lib/http-interceptor.d.ts +0 -8
  42. package/lib/login/login.component.d.ts +0 -32
  43. package/lib/materils/materils.module.d.ts +0 -46
  44. package/lib/menu/menu.component.d.ts +0 -49
Binary file
@@ -1,5 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, Input, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common/http';
4
+ import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
5
+ import { map } from 'rxjs';
3
6
  import * as i3 from '@angular/common';
4
7
  import { CommonModule } from '@angular/common';
5
8
  import * as i2 from '@angular/router';
@@ -7,17 +10,13 @@ import { RouterModule } from '@angular/router';
7
10
  import * as i1$1 from '@angular/forms';
8
11
  import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
9
12
  import { first } from 'rxjs/operators';
10
- import * as i1 from '@angular/common/http';
11
- import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
12
- import { map } from 'rxjs';
13
13
  import * as i6 from '@angular/material/button';
14
14
  import { MatButtonModule } from '@angular/material/button';
15
15
  import * as i7 from '@angular/material/icon';
16
16
  import { MatIconModule } from '@angular/material/icon';
17
17
  import * as i8 from '@angular/material/input';
18
18
  import { MatInputModule } from '@angular/material/input';
19
- import * as i9 from '@angular/material/form-field';
20
- import * as i10 from '@angular/material/progress-spinner';
19
+ import * as i9 from '@angular/material/progress-spinner';
21
20
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
22
21
  import { DragDropModule } from '@angular/cdk/drag-drop';
23
22
  import { ScrollingModule } from '@angular/cdk/scrolling';
@@ -85,42 +84,16 @@ class BaseAppService {
85
84
  getmenuNameFromBudget() {
86
85
  return this.menuName;
87
86
  }
88
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseAppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
89
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseAppService, providedIn: 'root' });
87
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseAppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
88
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseAppService, providedIn: 'root' });
90
89
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseAppService, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseAppService, decorators: [{
92
91
  type: Injectable,
93
92
  args: [{
94
93
  providedIn: 'root'
95
94
  }]
96
95
  }] });
97
96
 
98
- class BulkToolComponent {
99
- constructor() { }
100
- ngOnInit() {
101
- }
102
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BulkToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BulkToolComponent, selector: "lib-BulkTool", ngImport: i0, template: `
104
- <p>
105
- bulk-tool works!
106
- </p>
107
- `, isInline: true });
108
- }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BulkToolComponent, decorators: [{
110
- type: Component,
111
- args: [{ selector: 'lib-BulkTool', template: `
112
- <p>
113
- bulk-tool works!
114
- </p>
115
- ` }]
116
- }], ctorParameters: () => [] });
117
-
118
- const Constant = {
119
- APPSERVICEURL: 'https://localhost:44348/api',
120
- APPSERVICEPRODURL: 'https://tk4addin.dev.summitenergy.com/appservices/api',
121
- INVALID: "Invalid Username or Password"
122
- };
123
-
124
97
  class AuthService {
125
98
  http;
126
99
  injector;
@@ -160,16 +133,42 @@ class AuthService {
160
133
  return res;
161
134
  }));
162
135
  }
163
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: BaseAppService }], target: i0.ɵɵFactoryTarget.Injectable });
164
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthService, providedIn: 'root' });
136
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: BaseAppService }], target: i0.ɵɵFactoryTarget.Injectable });
137
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AuthService, providedIn: 'root' });
165
138
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthService, decorators: [{
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AuthService, decorators: [{
167
140
  type: Injectable,
168
141
  args: [{
169
142
  providedIn: 'root'
170
143
  }]
171
144
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.Injector }, { type: BaseAppService }] });
172
145
 
146
+ class BulkToolComponent {
147
+ constructor() { }
148
+ ngOnInit() {
149
+ }
150
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
151
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: BulkToolComponent, isStandalone: false, selector: "lib-BulkTool", ngImport: i0, template: `
152
+ <p>
153
+ bulk-tool works!
154
+ </p>
155
+ `, isInline: true });
156
+ }
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolComponent, decorators: [{
158
+ type: Component,
159
+ args: [{ selector: 'lib-BulkTool', template: `
160
+ <p>
161
+ bulk-tool works!
162
+ </p>
163
+ `, standalone: false }]
164
+ }], ctorParameters: () => [] });
165
+
166
+ const Constant = {
167
+ APPSERVICEURL: 'https://localhost:44348/api',
168
+ APPSERVICEPRODURL: 'https://tk4addin.dev.summitenergy.com/appservices/api',
169
+ INVALID: "Invalid Username or Password"
170
+ };
171
+
173
172
  class LoginComponent {
174
173
  formBuilder;
175
174
  route;
@@ -252,19 +251,19 @@ class LoginComponent {
252
251
  //this.submitClick = true;
253
252
  });
254
253
  }
255
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginComponent, deps: [{ token: i1$1.FormBuilder }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.Location }, { token: AuthService }, { token: BaseAppService }], target: i0.ɵɵFactoryTarget.Component });
256
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoginComponent, 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\" color=\"primary\">\r\n <mat-label>Enter Username</mat-label>\r\n <input class=\"toolbar-search bxForm\" 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\" 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:12px\"></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;line-height: 21px; padding: 4px 10px !important;\" 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: ["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;-webkit-box-shadow:4px 2px 5px -2px rgba(194,179,194,1);-moz-box-shadow:4px 2px 5px -2px rgba(194,179,194,1);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;-moz-user-select:none;-ms-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:top;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%;-webkit-animation:1s spin linear infinite;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;-webkit-animation:3s rotate2 ease-in-out infinite;animation:3s flip ease-in-out infinite}::ng-deep .mat-spinner circle{stroke:green;stroke-width:10%}mat-form-field{width:100%}.mat-mdc-input-element{font-size:16px!important;margin:0!important;padding:5px 0 8px!important;line-height:16px!important;vertical-align:text-bottom}::ng-deep .mat-mdc-form-field-required-marker{display:none!important}::ng-deep .mdc-floating-label--required:after{content:none!important}\n"], dependencies: [{ kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
254
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LoginComponent, deps: [{ token: i1$1.FormBuilder }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.Location }, { token: AuthService }, { token: BaseAppService }], target: i0.ɵɵFactoryTarget.Component });
255
+ /** @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\" color=\"primary\">\r\n <mat-label>Enter Username</mat-label>\r\n <input class=\"toolbar-search bxForm\" 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\" 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:12px\"></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;line-height: 21px; padding: 4px 10px !important;\" 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: ["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;-webkit-box-shadow:4px 2px 5px -2px rgba(194,179,194,1);-moz-box-shadow:4px 2px 5px -2px rgba(194,179,194,1);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;-moz-user-select:none;-ms-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:top;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%;-webkit-animation:1s spin linear infinite;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;-webkit-animation:3s rotate2 ease-in-out infinite;animation:3s flip ease-in-out infinite}::ng-deep .mat-spinner circle{stroke:green;stroke-width:10%}mat-form-field{width:100%}.mat-mdc-input-element{font-size:16px!important;margin:0!important;padding:5px 0 8px!important;line-height:16px!important;vertical-align:text-bottom}::ng-deep .mat-mdc-form-field-required-marker{display:none!important}::ng-deep .mdc-floating-label--required:after{content:none!important}\n"], dependencies: [{ kind: "component", type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.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: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
257
256
  }
258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginComponent, decorators: [{
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LoginComponent, decorators: [{
259
258
  type: Component,
260
- args: [{ 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\" color=\"primary\">\r\n <mat-label>Enter Username</mat-label>\r\n <input class=\"toolbar-search bxForm\" 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\" 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:12px\"></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;line-height: 21px; padding: 4px 10px !important;\" 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: ["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;-webkit-box-shadow:4px 2px 5px -2px rgba(194,179,194,1);-moz-box-shadow:4px 2px 5px -2px rgba(194,179,194,1);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;-moz-user-select:none;-ms-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:top;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%;-webkit-animation:1s spin linear infinite;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;-webkit-animation:3s rotate2 ease-in-out infinite;animation:3s flip ease-in-out infinite}::ng-deep .mat-spinner circle{stroke:green;stroke-width:10%}mat-form-field{width:100%}.mat-mdc-input-element{font-size:16px!important;margin:0!important;padding:5px 0 8px!important;line-height:16px!important;vertical-align:text-bottom}::ng-deep .mat-mdc-form-field-required-marker{display:none!important}::ng-deep .mdc-floating-label--required:after{content:none!important}\n"] }]
259
+ args: [{ selector: 'lib-login', standalone: false, 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\" color=\"primary\">\r\n <mat-label>Enter Username</mat-label>\r\n <input class=\"toolbar-search bxForm\" 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\" 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:12px\"></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;line-height: 21px; padding: 4px 10px !important;\" 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: ["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;-webkit-box-shadow:4px 2px 5px -2px rgba(194,179,194,1);-moz-box-shadow:4px 2px 5px -2px rgba(194,179,194,1);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;-moz-user-select:none;-ms-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:top;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%;-webkit-animation:1s spin linear infinite;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;-webkit-animation:3s rotate2 ease-in-out infinite;animation:3s flip ease-in-out infinite}::ng-deep .mat-spinner circle{stroke:green;stroke-width:10%}mat-form-field{width:100%}.mat-mdc-input-element{font-size:16px!important;margin:0!important;padding:5px 0 8px!important;line-height:16px!important;vertical-align:text-bottom}::ng-deep .mat-mdc-form-field-required-marker{display:none!important}::ng-deep .mdc-floating-label--required:after{content:none!important}\n"] }]
261
260
  }], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.Location }, { type: AuthService }, { type: BaseAppService }], propDecorators: { routeUrl: [{
262
261
  type: Input
263
262
  }] } });
264
263
 
265
264
  class MaterilsModule {
266
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterilsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
267
- /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: MaterilsModule, exports: [A11yModule,
265
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MaterilsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
266
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: MaterilsModule, exports: [A11yModule,
268
267
  CdkTableModule,
269
268
  CdkTreeModule,
270
269
  DragDropModule,
@@ -305,7 +304,7 @@ class MaterilsModule {
305
304
  MatTreeModule,
306
305
  ScrollingModule,
307
306
  OverlayModule] });
308
- /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterilsModule, imports: [A11yModule,
307
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MaterilsModule, imports: [A11yModule,
309
308
  CdkTableModule,
310
309
  CdkTreeModule,
311
310
  DragDropModule,
@@ -347,7 +346,7 @@ class MaterilsModule {
347
346
  ScrollingModule,
348
347
  OverlayModule] });
349
348
  }
350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterilsModule, decorators: [{
349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MaterilsModule, decorators: [{
351
350
  type: NgModule,
352
351
  args: [{
353
352
  exports: [
@@ -565,12 +564,12 @@ class MenuComponent {
565
564
  this.authenticationService.logout();
566
565
  this.router.navigate(["/login"]);
567
566
  }
568
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuComponent, deps: [{ token: AuthService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i0.Injector }, { token: BaseAppService }], target: i0.ɵɵFactoryTarget.Component });
569
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuComponent, selector: "lib-menu", ngImport: i0, template: "\r\n<div class=\"example-container\">\r\n\r\n <nav class=\"nav-header\">\r\n <ul class=\"nav\"> \r\n <li class=\"nav-time\"> \r\n <a>\r\n <i class=\"fa fa-bars\" style=\"font-size:24px\"></i>\r\n </a>\r\n <ul>\r\n <div *ngFor=\"let parent of MenuData\">\r\n <li *ngIf=\"parent.children && parent.children.length > 0\">\r\n <a class=\"item\"> {{parent.displaytext}}</a>\r\n <ul>\r\n <li *ngFor=\"let child of parent.children\">\r\n <a (click)=\"listItemClick(child)\">{{child.displaytext}}</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li *ngIf=\"!parent.children || parent.children.length === 0\">\r\n <a (click)=\"listItemClick(parent)\">{{parent.displaytext}}</a>\r\n </li>\r\n </div>\r\n <li> \r\n <a (click)=\"onLogOut()\">Logout</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"nav-item\">\r\n <h5 style=\"padding-top:12px;\"> {{tooltext}}</h5>\r\n </li>\r\n </ul>\r\n </nav>\r\n <div *ngIf=\"IsPermissionExists==false\">User Does't have permission to access any of Excel applications</div>\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div class=\"navigateMsg\" *ngIf=\"navigateMsg\">\r\n {{navigateMsg}}\r\n </div>\r\n <section class=\"loade\" *ngIf=\"isLoading\">\r\n <mat-spinner color=\"black\" [diameter]=60 ></mat-spinner>\r\n <span>\r\n Loading...\r\n </span>\r\n </section>\r\n ", styles: [".item{cursor:not-allowed!important}nav{display:block;text-align:left}nav ul{margin:0;padding:0;list-style:none}.nav a{display:block;cursor:pointer;color:#000;text-decoration:none;padding:.8em 1.8em;text-transform:none;font-size:80%;letter-spacing:1px;position:relative;font-family:Roboto,Helvetica Neue,sans-serif!important}.nav{vertical-align:top;display:inline-block;border-radius:6px}.nav li{position:relative}.item:before{content:\"\";position:absolute;height:0;width:0;top:50%;right:5px;border:5px solid transparent;border-left-color:#000}.nav>li{float:left;margin-right:1px}.nav>li>a{margin-bottom:1px;color:#fff;cursor:pointer}.nav li:hover>a{background:#0000000a}.nav>li:first-child{border-radius:4px 0 0 4px}.nav>li:first-child>a{border-radius:4px 0 0}.nav>li:last-child{border-radius:0 0 4px;margin-right:0}.nav>li:last-child>a{border-radius:0 4px 0 0}.nav li li a{margin-top:1px}.nav li a:first-child:nth-last-child(2):before{content:\"\";position:absolute;height:0;width:0;top:50%;right:5px}.nav ul{position:absolute;white-space:nowrap;background-color:#fff;z-index:11111;left:-99999em}.nav>li:hover>ul{left:auto;padding-top:5px;min-width:100%;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.nav>li li ul{border-left:1px solid #fff}.nav>li li:hover>ul{left:100%;top:-1px;z-index:1;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.nav>li>a:first-child:nth-last-child(2):before{border-top-color:#aaa}.nav>li:hover>a:first-child:nth-last-child(2):before{border:5px solid transparent;margin-top:-5px}.nav li li>a:first-child:nth-last-child(2):before{border-left-color:#aaa;margin-top:-5px}.nav li li:hover>a:first-child:nth-last-child(2):before{border:5px solid transparent;border-right-color:#2f2c2c;right:10px}.nav-header{background:#779cf1;width:100%}.nav-header>.nav>.nav-item{color:#fff}.nav-header>.nav>.nav-item a{color:#fff}.loade{background:#ffffff80;width:100%;height:100%;overflow:hidden;position:absolute;z-index:1;opacity:50;top:0;vertical-align:middle;padding:40%}.permission{padding:10px;color:red}.navigateMsg{text-align:center;margin-top:60px}\n"], dependencies: [{ kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
567
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MenuComponent, deps: [{ token: AuthService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i0.Injector }, { token: BaseAppService }], target: i0.ɵɵFactoryTarget.Component });
568
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: MenuComponent, isStandalone: false, selector: "lib-menu", ngImport: i0, template: "\r\n<div class=\"example-container\">\r\n\r\n <nav class=\"nav-header\">\r\n <ul class=\"nav\"> \r\n <li class=\"nav-time\"> \r\n <a>\r\n <i class=\"fa fa-bars\" style=\"font-size:24px\"></i>\r\n </a>\r\n <ul>\r\n <div *ngFor=\"let parent of MenuData\">\r\n <li *ngIf=\"parent.children && parent.children.length > 0\">\r\n <a class=\"item\"> {{parent.displaytext}}</a>\r\n <ul>\r\n <li *ngFor=\"let child of parent.children\">\r\n <a (click)=\"listItemClick(child)\">{{child.displaytext}}</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li *ngIf=\"!parent.children || parent.children.length === 0\">\r\n <a (click)=\"listItemClick(parent)\">{{parent.displaytext}}</a>\r\n </li>\r\n </div>\r\n <li> \r\n <a (click)=\"onLogOut()\">Logout</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"nav-item\">\r\n <h5 style=\"padding-top:12px;\"> {{tooltext}}</h5>\r\n </li>\r\n </ul>\r\n </nav>\r\n <div *ngIf=\"IsPermissionExists==false\">User Does't have permission to access any of Excel applications</div>\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div class=\"navigateMsg\" *ngIf=\"navigateMsg\">\r\n {{navigateMsg}}\r\n </div>\r\n <section class=\"loade\" *ngIf=\"isLoading\">\r\n <mat-spinner color=\"black\" [diameter]=60 ></mat-spinner>\r\n <span>\r\n Loading...\r\n </span>\r\n </section>\r\n ", styles: [".item{cursor:not-allowed!important}nav{display:block;text-align:left}nav ul{margin:0;padding:0;list-style:none}.nav a{display:block;cursor:pointer;color:#000;text-decoration:none;padding:.8em 1.8em;text-transform:none;font-size:80%;letter-spacing:1px;position:relative;font-family:Roboto,Helvetica Neue,sans-serif!important}.nav{vertical-align:top;display:inline-block;border-radius:6px}.nav li{position:relative}.item:before{content:\"\";position:absolute;height:0;width:0;top:50%;right:5px;border:5px solid transparent;border-left-color:#000}.nav>li{float:left;margin-right:1px}.nav>li>a{margin-bottom:1px;color:#fff;cursor:pointer}.nav li:hover>a{background:#0000000a}.nav>li:first-child{border-radius:4px 0 0 4px}.nav>li:first-child>a{border-radius:4px 0 0}.nav>li:last-child{border-radius:0 0 4px;margin-right:0}.nav>li:last-child>a{border-radius:0 4px 0 0}.nav li li a{margin-top:1px}.nav li a:first-child:nth-last-child(2):before{content:\"\";position:absolute;height:0;width:0;top:50%;right:5px}.nav ul{position:absolute;white-space:nowrap;background-color:#fff;z-index:11111;left:-99999em}.nav>li:hover>ul{left:auto;padding-top:5px;min-width:100%;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.nav>li li ul{border-left:1px solid #fff}.nav>li li:hover>ul{left:100%;top:-1px;z-index:1;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.nav>li>a:first-child:nth-last-child(2):before{border-top-color:#aaa}.nav>li:hover>a:first-child:nth-last-child(2):before{border:5px solid transparent;margin-top:-5px}.nav li li>a:first-child:nth-last-child(2):before{border-left-color:#aaa;margin-top:-5px}.nav li li:hover>a:first-child:nth-last-child(2):before{border:5px solid transparent;border-right-color:#2f2c2c;right:10px}.nav-header{background:#779cf1;width:100%}.nav-header>.nav>.nav-item{color:#fff}.nav-header>.nav>.nav-item a{color:#fff}.loade{background:#ffffff80;width:100%;height:100%;overflow:hidden;position:absolute;z-index:1;opacity:50;top:0;vertical-align:middle;padding:40%}.permission{padding:10px;color:red}.navigateMsg{text-align:center;margin-top:60px}\n"], dependencies: [{ kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
570
569
  }
571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuComponent, decorators: [{
570
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MenuComponent, decorators: [{
572
571
  type: Component,
573
- args: [{ selector: 'lib-menu', template: "\r\n<div class=\"example-container\">\r\n\r\n <nav class=\"nav-header\">\r\n <ul class=\"nav\"> \r\n <li class=\"nav-time\"> \r\n <a>\r\n <i class=\"fa fa-bars\" style=\"font-size:24px\"></i>\r\n </a>\r\n <ul>\r\n <div *ngFor=\"let parent of MenuData\">\r\n <li *ngIf=\"parent.children && parent.children.length > 0\">\r\n <a class=\"item\"> {{parent.displaytext}}</a>\r\n <ul>\r\n <li *ngFor=\"let child of parent.children\">\r\n <a (click)=\"listItemClick(child)\">{{child.displaytext}}</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li *ngIf=\"!parent.children || parent.children.length === 0\">\r\n <a (click)=\"listItemClick(parent)\">{{parent.displaytext}}</a>\r\n </li>\r\n </div>\r\n <li> \r\n <a (click)=\"onLogOut()\">Logout</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"nav-item\">\r\n <h5 style=\"padding-top:12px;\"> {{tooltext}}</h5>\r\n </li>\r\n </ul>\r\n </nav>\r\n <div *ngIf=\"IsPermissionExists==false\">User Does't have permission to access any of Excel applications</div>\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div class=\"navigateMsg\" *ngIf=\"navigateMsg\">\r\n {{navigateMsg}}\r\n </div>\r\n <section class=\"loade\" *ngIf=\"isLoading\">\r\n <mat-spinner color=\"black\" [diameter]=60 ></mat-spinner>\r\n <span>\r\n Loading...\r\n </span>\r\n </section>\r\n ", styles: [".item{cursor:not-allowed!important}nav{display:block;text-align:left}nav ul{margin:0;padding:0;list-style:none}.nav a{display:block;cursor:pointer;color:#000;text-decoration:none;padding:.8em 1.8em;text-transform:none;font-size:80%;letter-spacing:1px;position:relative;font-family:Roboto,Helvetica Neue,sans-serif!important}.nav{vertical-align:top;display:inline-block;border-radius:6px}.nav li{position:relative}.item:before{content:\"\";position:absolute;height:0;width:0;top:50%;right:5px;border:5px solid transparent;border-left-color:#000}.nav>li{float:left;margin-right:1px}.nav>li>a{margin-bottom:1px;color:#fff;cursor:pointer}.nav li:hover>a{background:#0000000a}.nav>li:first-child{border-radius:4px 0 0 4px}.nav>li:first-child>a{border-radius:4px 0 0}.nav>li:last-child{border-radius:0 0 4px;margin-right:0}.nav>li:last-child>a{border-radius:0 4px 0 0}.nav li li a{margin-top:1px}.nav li a:first-child:nth-last-child(2):before{content:\"\";position:absolute;height:0;width:0;top:50%;right:5px}.nav ul{position:absolute;white-space:nowrap;background-color:#fff;z-index:11111;left:-99999em}.nav>li:hover>ul{left:auto;padding-top:5px;min-width:100%;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.nav>li li ul{border-left:1px solid #fff}.nav>li li:hover>ul{left:100%;top:-1px;z-index:1;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.nav>li>a:first-child:nth-last-child(2):before{border-top-color:#aaa}.nav>li:hover>a:first-child:nth-last-child(2):before{border:5px solid transparent;margin-top:-5px}.nav li li>a:first-child:nth-last-child(2):before{border-left-color:#aaa;margin-top:-5px}.nav li li:hover>a:first-child:nth-last-child(2):before{border:5px solid transparent;border-right-color:#2f2c2c;right:10px}.nav-header{background:#779cf1;width:100%}.nav-header>.nav>.nav-item{color:#fff}.nav-header>.nav>.nav-item a{color:#fff}.loade{background:#ffffff80;width:100%;height:100%;overflow:hidden;position:absolute;z-index:1;opacity:50;top:0;vertical-align:middle;padding:40%}.permission{padding:10px;color:red}.navigateMsg{text-align:center;margin-top:60px}\n"] }]
572
+ args: [{ selector: 'lib-menu', standalone: false, template: "\r\n<div class=\"example-container\">\r\n\r\n <nav class=\"nav-header\">\r\n <ul class=\"nav\"> \r\n <li class=\"nav-time\"> \r\n <a>\r\n <i class=\"fa fa-bars\" style=\"font-size:24px\"></i>\r\n </a>\r\n <ul>\r\n <div *ngFor=\"let parent of MenuData\">\r\n <li *ngIf=\"parent.children && parent.children.length > 0\">\r\n <a class=\"item\"> {{parent.displaytext}}</a>\r\n <ul>\r\n <li *ngFor=\"let child of parent.children\">\r\n <a (click)=\"listItemClick(child)\">{{child.displaytext}}</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li *ngIf=\"!parent.children || parent.children.length === 0\">\r\n <a (click)=\"listItemClick(parent)\">{{parent.displaytext}}</a>\r\n </li>\r\n </div>\r\n <li> \r\n <a (click)=\"onLogOut()\">Logout</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"nav-item\">\r\n <h5 style=\"padding-top:12px;\"> {{tooltext}}</h5>\r\n </li>\r\n </ul>\r\n </nav>\r\n <div *ngIf=\"IsPermissionExists==false\">User Does't have permission to access any of Excel applications</div>\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div class=\"navigateMsg\" *ngIf=\"navigateMsg\">\r\n {{navigateMsg}}\r\n </div>\r\n <section class=\"loade\" *ngIf=\"isLoading\">\r\n <mat-spinner color=\"black\" [diameter]=60 ></mat-spinner>\r\n <span>\r\n Loading...\r\n </span>\r\n </section>\r\n ", styles: [".item{cursor:not-allowed!important}nav{display:block;text-align:left}nav ul{margin:0;padding:0;list-style:none}.nav a{display:block;cursor:pointer;color:#000;text-decoration:none;padding:.8em 1.8em;text-transform:none;font-size:80%;letter-spacing:1px;position:relative;font-family:Roboto,Helvetica Neue,sans-serif!important}.nav{vertical-align:top;display:inline-block;border-radius:6px}.nav li{position:relative}.item:before{content:\"\";position:absolute;height:0;width:0;top:50%;right:5px;border:5px solid transparent;border-left-color:#000}.nav>li{float:left;margin-right:1px}.nav>li>a{margin-bottom:1px;color:#fff;cursor:pointer}.nav li:hover>a{background:#0000000a}.nav>li:first-child{border-radius:4px 0 0 4px}.nav>li:first-child>a{border-radius:4px 0 0}.nav>li:last-child{border-radius:0 0 4px;margin-right:0}.nav>li:last-child>a{border-radius:0 4px 0 0}.nav li li a{margin-top:1px}.nav li a:first-child:nth-last-child(2):before{content:\"\";position:absolute;height:0;width:0;top:50%;right:5px}.nav ul{position:absolute;white-space:nowrap;background-color:#fff;z-index:11111;left:-99999em}.nav>li:hover>ul{left:auto;padding-top:5px;min-width:100%;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.nav>li li ul{border-left:1px solid #fff}.nav>li li:hover>ul{left:100%;top:-1px;z-index:1;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.nav>li>a:first-child:nth-last-child(2):before{border-top-color:#aaa}.nav>li:hover>a:first-child:nth-last-child(2):before{border:5px solid transparent;margin-top:-5px}.nav li li>a:first-child:nth-last-child(2):before{border-left-color:#aaa;margin-top:-5px}.nav li li:hover>a:first-child:nth-last-child(2):before{border:5px solid transparent;border-right-color:#2f2c2c;right:10px}.nav-header{background:#779cf1;width:100%}.nav-header>.nav>.nav-item{color:#fff}.nav-header>.nav>.nav-item a{color:#fff}.loade{background:#ffffff80;width:100%;height:100%;overflow:hidden;position:absolute;z-index:1;opacity:50;top:0;vertical-align:middle;padding:40%}.permission{padding:10px;color:red}.navigateMsg{text-align:center;margin-top:60px}\n"] }]
574
573
  }], ctorParameters: () => [{ type: AuthService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i0.Injector }, { type: BaseAppService }] });
575
574
 
576
575
  class HttpLibInterceptor {
@@ -589,10 +588,10 @@ class HttpLibInterceptor {
589
588
  console.log(request);
590
589
  return newRequest.handle(request);
591
590
  }
592
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HttpLibInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
593
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HttpLibInterceptor });
591
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HttpLibInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
592
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HttpLibInterceptor });
594
593
  }
595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HttpLibInterceptor, decorators: [{
594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HttpLibInterceptor, decorators: [{
596
595
  type: Injectable
597
596
  }] });
598
597
 
@@ -603,37 +602,30 @@ class BulkToolModule {
603
602
  providers: [{ provide: 'config', useValue: config }, BaseAppService]
604
603
  };
605
604
  }
606
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BulkToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
607
- /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: BulkToolModule, declarations: [BulkToolComponent, LoginComponent, MenuComponent], imports: [MaterilsModule,
605
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
606
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: BulkToolModule, declarations: [BulkToolComponent, LoginComponent, MenuComponent], imports: [MaterilsModule,
608
607
  FormsModule,
609
608
  CommonModule,
610
609
  RouterModule,
611
- ReactiveFormsModule,
612
- HttpClientModule], exports: [BulkToolComponent, LoginComponent, MenuComponent] });
613
- /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BulkToolModule, providers: [{ provide: HTTP_INTERCEPTORS, useClass: HttpLibInterceptor, multi: true }, AuthService, BaseAppService], imports: [MaterilsModule,
610
+ ReactiveFormsModule], exports: [BulkToolComponent, LoginComponent, MenuComponent] });
611
+ /** @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, BaseAppService, provideHttpClient(withInterceptorsFromDi())], imports: [MaterilsModule,
614
612
  FormsModule,
615
613
  CommonModule,
616
614
  RouterModule,
617
- ReactiveFormsModule,
618
- HttpClientModule] });
615
+ ReactiveFormsModule] });
619
616
  }
620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BulkToolModule, decorators: [{
617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BulkToolModule, decorators: [{
621
618
  type: NgModule,
622
- args: [{
623
- imports: [
624
- MaterilsModule,
619
+ args: [{ declarations: [BulkToolComponent, LoginComponent, MenuComponent],
620
+ exports: [BulkToolComponent, LoginComponent, MenuComponent], imports: [MaterilsModule,
625
621
  FormsModule,
626
622
  CommonModule,
627
623
  RouterModule,
628
- ReactiveFormsModule,
629
- HttpClientModule,
630
- ],
631
- declarations: [BulkToolComponent, LoginComponent, MenuComponent],
632
- exports: [BulkToolComponent, LoginComponent, MenuComponent],
633
- providers: [{ provide: HTTP_INTERCEPTORS, useClass: HttpLibInterceptor, multi: true }, AuthService, BaseAppService]
634
- }]
624
+ ReactiveFormsModule], providers: [{ provide: HTTP_INTERCEPTORS, useClass: HttpLibInterceptor, multi: true }, AuthService, BaseAppService, provideHttpClient(withInterceptorsFromDi())] }]
635
625
  }] });
636
626
 
627
+ ;
628
+
637
629
  /*
638
630
  * Public API Surface of bulk-tool
639
631
  */
@@ -642,5 +634,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
642
634
  * Generated bundle index. Do not edit.
643
635
  */
644
636
 
645
- export { BaseAppService, BulkToolComponent, BulkToolModule, LoginComponent, MaterilsModule, MenuComponent };
646
- //# sourceMappingURL=exceladdincbms.mjs.map
637
+ export { AuthService, BaseAppService, BulkToolComponent, BulkToolModule, Constant, HttpLibInterceptor, LoginComponent, MaterilsModule, MenuComponent };
638
+ //# sourceMappingURL=exceladdincbms-20.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceladdincbms-20.mjs","sources":["../../../projects/bulk-tool/src/lib/base-app.service.ts","../../../projects/bulk-tool/src/lib/auth.service.ts","../../../projects/bulk-tool/src/lib/bulk-tool.component.ts","../../../projects/bulk-tool/src/lib/constant.enum.ts","../../../projects/bulk-tool/src/lib/login/login.component.ts","../../../projects/bulk-tool/src/lib/login/login.component.html","../../../projects/bulk-tool/src/lib/materils/materils.module.ts","../../../projects/bulk-tool/src/lib/menu/menu.component.ts","../../../projects/bulk-tool/src/lib/menu/menu.component.html","../../../projects/bulk-tool/src/lib/http-interceptor.ts","../../../projects/bulk-tool/src/lib/bulk-tool.module.ts","../../../projects/bulk-tool/src/lib/environmentsModel.info.ts","../../../projects/bulk-tool/src/public_api.ts","../../../projects/bulk-tool/src/exceladdincbms-20.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseAppService {\r\n\r\n private userInfo: any;\r\n private userMenus: any;\r\n private menuName: any\r\n getUserInfo() {\r\n return this.userInfo;\r\n }\r\n setUserInfo(value) {\r\n this.userInfo = value;\r\n }\r\n removeUserInfo() {\r\n this.userInfo = null;\r\n }\r\n setUserMenus(data) {\r\n this.userMenus = data;\r\n }\r\n getUserMenus() {\r\n return this.userMenus;\r\n }\r\n clearData() {\r\n this.userInfo = undefined;\r\n this.userMenus = undefined;\r\n }\r\n setmenuNameFromBudget(name) {\r\n this.menuName = name\r\n }\r\n getmenuNameFromBudget() {\r\n return this.menuName\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map, Observable } from 'rxjs';\r\nimport { BaseAppService } from './base-app.service'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n private API_ENDPOINT: string;\r\n private menuName: string;\r\n //private RM_ENDPOINT = this.injector.get(\"config\").apiBaseUrl;\r\n //private headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n constructor(private http: HttpClient, public injector: Injector, private baseAppService: BaseAppService) {\r\n this.API_ENDPOINT = this.injector.get(\"config\").baseAppApiUrl;\r\n this.menuName = this.injector.get(\"config\").moduleName;\r\n }\r\n\r\n //private postheaders = new Headers({'Content-Type': 'application/json'});\r\n login(username: string, password: string): Observable<any> {\r\n return this.http.post<any>(this.API_ENDPOINT + \"/Login\", { username, password })\r\n .pipe(map(user => {\r\n if (user.status != \"Invalid\") {\r\n console.log(user);\r\n localStorage.clear();\r\n localStorage.setItem('UserInfo', JSON.stringify(user));\r\n this.baseAppService.setUserInfo(user);\r\n }\r\n return user;\r\n }));\r\n }\r\n\r\n logout() {\r\n this.baseAppService.clearData();\r\n localStorage.clear();\r\n }\r\n\r\n public GetMenu(userId): Observable<any> {\r\n return this.http.get(this.API_ENDPOINT + '/userMenus?userId=' + userId + '&menu=' + this.menuName)\r\n .pipe(map(res => {\r\n this.baseAppService.setUserMenus(res);\r\n return res;\r\n }));\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-BulkTool',\r\n template: `\r\n <p>\r\n bulk-tool works!\r\n </p>\r\n `,\r\n styles: [],\r\n standalone: false\r\n})\r\nexport class BulkToolComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export const Constant = {\r\n APPSERVICEURL: 'https://localhost:44348/api',\r\n APPSERVICEPRODURL: 'https://tk4addin.dev.summitenergy.com/appservices/api',\r\n\r\n INVALID: \"Invalid Username or Password\"\r\n}\r\n","\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { Location } from \"@angular/common\";\r\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators, AbstractControl } from '@angular/forms';\r\nimport { first } from 'rxjs/operators';\r\nimport { Constant } from '../constant.enum';\r\nimport { AuthService } from '../auth.service';\r\nimport {BaseAppService} from '../base-app.service'\r\n//import { url } from 'inspector';\r\nexport interface Login\r\n{\r\n [key: string]: AbstractControl\r\n}\r\n\r\n@Component({\r\n selector: 'lib-login',\r\n templateUrl: 'login.component.html',\r\n styleUrls: ['./login.component.css'],\r\n standalone: false\r\n})\r\n\r\nexport class LoginComponent implements OnInit {\r\n public isLoading: boolean = false;\r\n @Input() routeUrl: string;\r\n loginForm: FormGroup;\r\n submitted = false;\r\n returnUrl: string;\r\n error = '';\r\n userInfo:any;\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private location: Location,\r\n private authenticationService: AuthService,\r\n private baseAppService:BaseAppService) { \r\n let userObject=localStorage.getItem(\"UserInfo\")\r\n this.userInfo=JSON.parse(userObject);\r\n this.baseAppService.setUserInfo(this.userInfo);\r\n }\r\n public isvalidUser:boolean = true;\r\n ngOnInit() {\r\n this.loginForm = this.formBuilder.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required]\r\n });\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || this.routeUrl;\r\n //Checking User already logged in or not\r\n let isNavigate=localStorage.getItem(\"IsNavigate\");\r\n if (this.location.path() !== '' && this.location.path().indexOf('UserId') !== -1) {\r\n let userId=this.location.path().split('?')[1].split('UserId=')[1]\r\n if(userId==this.userInfo.userInfoId){\r\n this.router.navigate([this.returnUrl]);\r\n return;\r\n }\r\n }\r\n else if(JSON.parse(isNavigate)==true){\r\n if(this.userInfo){\r\n console.log(\"Login After naviagtion-\",this.returnUrl);\r\n localStorage.removeItem(\"IsNavigate\");\r\n this.router.navigate([this.returnUrl]);\r\n return;\r\n }\r\n }\r\n }\r\n get formsData():Login { return this.loginForm.controls; }\r\n\r\n onLogin() {\r\n this.submitted = true;\r\n this.isLoading = true;\r\n // stop here if form is invalid\r\n if (this.loginForm.invalid) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n //this.submitClick = true;\r\n this.authenticationService.login(this.formsData.username.value, this.formsData.password.value)\r\n .pipe(first())\r\n .subscribe(\r\n data => {\r\n console.log(data.status);\r\n if(data.status===\"InValid\")\r\n {\r\n this.isLoading = false;\r\n this.isvalidUser=false;\r\n this.error = Constant.INVALID;\r\n this.router.navigate([\"/login\"]);\r\n }\r\n else\r\n {\r\n console.log(\"Login Success-\",this.returnUrl);\r\n this.isLoading = false;\r\n this.router.navigate([this.returnUrl]);\r\n \r\n }\r\n },\r\n error => {\r\n this.isLoading = false;\r\n this.error = Constant.INVALID;\r\n this.router.navigate([\"/login\"]);\r\n //this.submitClick = true;\r\n });\r\n }\r\n}\r\n","\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\" color=\"primary\">\r\n <mat-label>Enter Username</mat-label>\r\n <input class=\"toolbar-search bxForm\" 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\" 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:12px\"></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;line-height: 21px; padding: 4px 10px !important;\" 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","\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n\r\n\r\n@NgModule({\r\n exports: [\r\n A11yModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n ScrollingModule,\r\n OverlayModule\r\n ]\r\n})\r\n\r\n\r\nexport class MaterilsModule { }\r\n","import { Component, OnInit, ViewChild, Injectable, Injector } from '@angular/core';\r\nimport { AuthService } from '../auth.service';\r\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { BaseAppService } from '../base-app.service'\r\n\r\n\r\nexport interface Menu {\r\n displaytext: string;\r\n displayorder: number;\r\n menuId: number;\r\n menulevel: number;\r\n parentMenuId: number;\r\n targetAction: string;\r\n targetServer: string;\r\n parentMenuName: string;\r\n children: any[]\r\n}\r\n\r\n@Component({\r\n selector: 'lib-menu',\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.css'],\r\n standalone: false\r\n})\r\nexport class MenuComponent implements OnInit {\r\n\r\n public async: any;\r\n public MenuMode: string = \"over\";\r\n public message = '';\r\n public tooltext: any = \"CBMS\"\r\n public menuName: string;\r\n public childMenu: string;\r\n public isLoading: boolean = false;\r\n public userInfo: any;\r\n public moduleNameFromExcel: string;\r\n public IsPermissionExists: boolean = true;\r\n public messages: string[] = [];\r\n public MenuData: Menu[]\r\n public RootUrl: string;\r\n public menuFromExcel: any;\r\n public navigateMsg: string;\r\n public result: any;\r\n constructor(private authenticationService: AuthService, private route: ActivatedRoute,\r\n private router: Router, public injector: Injector, private baseAppService: BaseAppService) {\r\n this.RootUrl = this.injector.get(\"config\").rootUrl; //getting from environment file from application accessing BaseApp\r\n this.menuName = this.injector.get(\"config\").moduleName; //getting from environment file from application accessing BaseApp\r\n this.userInfo = this.baseAppService.getUserInfo();\r\n this.childMenu = localStorage.getItem(\"childMenu\")\r\n if (!this.userInfo) { //incase getUserInfo service fails.\r\n let userDetails = localStorage.getItem(\"UserInfo\");\r\n this.userInfo = JSON.parse(userDetails);\r\n }\r\n }\r\n ngOnInit() {\r\n console.log(\"Url came base from application -\", window.location.href);\r\n this.isLoading = true;\r\n this.GetCBMSMenu();\r\n\r\n }\r\n public GetCBMSMenu() {\r\n if (this.userInfo) {\r\n this.authenticationService.GetMenu(this.userInfo.userInfoId).subscribe(data => {\r\n this.MenuData = data;\r\n this.isLoading = false;\r\n if (this.MenuData) {\r\n this.menuFromExcel = this.baseAppService.getmenuNameFromBudget()\r\n console.log(\"MenuFromExcel\", this.menuFromExcel);\r\n if (!this.menuFromExcel) {\r\n let CurrentMenu = data.find(e => e.parentMenuName == this.menuName) //Finding Which application Accessing BaseApp\r\n this.tooltext = CurrentMenu ? CurrentMenu.parentMenuName : \"CBMS\";\r\n console.log(\"Isdownload\", this.userInfo.isDownload);\r\n if (!this.userInfo.isDownload) {\r\n if (CurrentMenu) {\r\n if (CurrentMenu.children.length == 0) {\r\n this.router.navigate([CurrentMenu.targetAction.split(\"app\")[1]]);\r\n }\r\n else {\r\n if (this.childMenu) {\r\n this.navigateToChildMenu(CurrentMenu)\r\n }\r\n else {\r\n this.router.navigate([CurrentMenu.children[0].targetAction.split(\"app\")[1]]);\r\n return;\r\n }\r\n }\r\n }\r\n else {\r\n console.log(\"Redirecting to the First application in menu Tab\")\r\n this.navigateToAnotherMenu(this.MenuData[0]); // Redirecting to the First application in menu Tab \r\n }\r\n }\r\n }\r\n else {\r\n let menu = this.MenuData.find(e => e.displaytext == this.menuFromExcel)\r\n if (menu) {\r\n if (!this.childMenu) {\r\n console.log(\"noChildMenu\")\r\n this.navigateToAnotherMenu(this.MenuData.find(e => e.displaytext == this.menuFromExcel));\r\n }\r\n else {\r\n console.log(\"childMenuThere\")\r\n this.navigateToChildMenu(this.MenuData.find(e => e.parentMenuName == this.menuName))\r\n }\r\n }\r\n else {\r\n this.navigateToAnotherMenu(this.MenuData[0]);\r\n }\r\n }\r\n }\r\n else {\r\n this.IsPermissionExists = false; //Notifing User that he or she doednot have permission if menuData is empty.\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n\r\n navigateToChildMenu(CurrentMenu) {\r\n localStorage.removeItem(\"childMenu\");\r\n let childrenMenu = CurrentMenu.children.filter(e => e.displaytext == this.childMenu)\r\n console.log(\"childrenMenu\", childrenMenu);\r\n if (childrenMenu.length > 0) {\r\n this.router.navigate([childrenMenu[0].targetAction.split(\"app\")[1]]);\r\n return;\r\n }\r\n else {\r\n this.router.navigate([CurrentMenu.targetAction.split(\"app\")[1]]);\r\n }\r\n }\r\n\r\n listItemClick(link) {\r\n this.isLoading = true;\r\n if (link.parentMenuName == this.menuName) {\r\n if (link.parentMenuId == 0) {\r\n if (link.children.length > 0) {\r\n console.log(\"navigationUrl\", link.children[0].targetAction)\r\n this.isLoading = false;\r\n this.router.navigate([link.children[0].targetAction.split(\"app\")[1]]);\r\n }\r\n else {\r\n console.log(\"navigationUrl\", link.targetAction)\r\n this.isLoading = false;\r\n this.router.navigate([link.targetAction.split(\"app\")[1]]);\r\n }\r\n }\r\n else {\r\n localStorage.setItem(\"childMenu\", link.displaytext);\r\n console.log(\"navigationUrl\", link.targetAction)\r\n this.isLoading = false;\r\n this.router.navigate([link.targetAction.split(\"app\")[1]]);\r\n }\r\n }\r\n else {\r\n this.isLoading = false;\r\n this.navigateToAnotherMenu(link)\r\n }\r\n }\r\n navigateToAnotherMenu(link) {\r\n this.navigateMsg = \"...Redirecting to \" + link.parentMenuName\r\n let navLink = link.targetAction\r\n navLink = link.targetAction.split(\"app\")[0] + \"app\"\r\n if (link.parentMenuId != 0) {\r\n localStorage.setItem(\"childMenu\", link.displaytext);\r\n }\r\n this.isLoading = false;\r\n localStorage.setItem(\"IsNavigate\", \"true\");\r\n let navigateUrl = this.navigateUrl(navLink)\r\n console.log(\"navigating to\", link.displaytext)\r\n window.location.assign(navigateUrl);\r\n return;\r\n }\r\n navigateUrl(Url: string) {\r\n let replacements = Url.match(/\\{.*?\\}/g);\r\n let value = \"\";\r\n if (replacements) {\r\n replacements.forEach(element => {\r\n if (element == \"{userId}\") {\r\n value = this.userInfo.userInfoId;\r\n }\r\n Url = Url.replace(element, value);\r\n });\r\n }\r\n return this.RootUrl + Url;\r\n }\r\n onLogOut() {\r\n this.authenticationService.logout();\r\n this.router.navigate([\"/login\"]);\r\n }\r\n\r\n}\r\n","\r\n<div class=\"example-container\">\r\n\r\n <nav class=\"nav-header\">\r\n <ul class=\"nav\"> \r\n <li class=\"nav-time\"> \r\n <a>\r\n <i class=\"fa fa-bars\" style=\"font-size:24px\"></i>\r\n </a>\r\n <ul>\r\n <div *ngFor=\"let parent of MenuData\">\r\n <li *ngIf=\"parent.children && parent.children.length > 0\">\r\n <a class=\"item\"> {{parent.displaytext}}</a>\r\n <ul>\r\n <li *ngFor=\"let child of parent.children\">\r\n <a (click)=\"listItemClick(child)\">{{child.displaytext}}</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li *ngIf=\"!parent.children || parent.children.length === 0\">\r\n <a (click)=\"listItemClick(parent)\">{{parent.displaytext}}</a>\r\n </li>\r\n </div>\r\n <li> \r\n <a (click)=\"onLogOut()\">Logout</a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"nav-item\">\r\n <h5 style=\"padding-top:12px;\"> {{tooltext}}</h5>\r\n </li>\r\n </ul>\r\n </nav>\r\n <div *ngIf=\"IsPermissionExists==false\">User Does't have permission to access any of Excel applications</div>\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div class=\"navigateMsg\" *ngIf=\"navigateMsg\">\r\n {{navigateMsg}}\r\n </div>\r\n <section class=\"loade\" *ngIf=\"isLoading\">\r\n <mat-spinner color=\"black\" [diameter]=60 ></mat-spinner>\r\n <span>\r\n Loading...\r\n </span>\r\n </section>\r\n ","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n@Injectable()\r\nexport class HttpLibInterceptor implements HttpInterceptor {\r\n intercept(request: HttpRequest<any>, newRequest: HttpHandler): Observable<HttpEvent<any>> {\r\n // add authorization header to request\r\n //Get Token data from local storage\r\n //let tokenInfo = JSON.parse(localStorage.getItem('TokenInfo'));\r\n\r\n // if (tokenInfo && tokenInfo.token) {\r\n // request = request.clone({\r\n // setHeaders: {\r\n // Authorization: `Bearer ${tokenInfo.token}`,\r\n // \"Content-Type\": 'application/json'\r\n // }\r\n // });\r\n // }\r\n console.log(request);\r\n return newRequest.handle(request);\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { BulkToolComponent } from './bulk-tool.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { MaterilsModule } from './materils/materils.module';\r\nimport { MenuComponent } from './menu/menu.component';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { HttpLibInterceptor } from './http-interceptor';\r\nimport { AuthService } from './auth.service';\r\nimport { BaseAppService } from './base-app.service';\r\nimport { IEnvironmentsInfo } from '../lib/environmentsModel.info';\r\n\r\n\r\n\r\n@NgModule({ declarations: [BulkToolComponent, LoginComponent, MenuComponent],\r\n exports: [BulkToolComponent, LoginComponent, MenuComponent], imports: [MaterilsModule,\r\n FormsModule,\r\n CommonModule,\r\n RouterModule,\r\n ReactiveFormsModule], providers: [{ provide: HTTP_INTERCEPTORS, useClass: HttpLibInterceptor, multi: true }, AuthService, BaseAppService, provideHttpClient(withInterceptorsFromDi())] })\r\nexport class BulkToolModule {\r\n static forRoot(config: IEnvironmentsInfo): ModuleWithProviders<BulkToolModule> {\r\n return {\r\n ngModule: BulkToolModule,\r\n providers: [{ provide: 'config', useValue: config }, BaseAppService]\r\n };\r\n }\r\n\r\n}\r\n","// export interface IEnvironmentsInfo {\r\n// baseAppApiUrl: string,\r\n// rootUrl: string,\r\n// moduleName: string\r\n// }\r\nexport interface IEnvironmentsInfo {\r\n production: true,\r\n baseAppApiUrl: string,\r\n rootUrl: string,\r\n moduleName: string,\r\n MenuName?: \"Budget\",\r\n Url?: string,\r\n RootUrl?: string,\r\n};","/*\r\n * Public API Surface of bulk-tool\r\n */\r\n\r\nexport * from './lib/auth.service';\r\nexport * from './lib/base-app.service';\r\nexport * from './lib/bulk-tool.component';\r\nexport * from './lib/bulk-tool.module';\r\nexport * from './lib/constant.enum';\r\nexport * from './lib/environmentsModel.info';\r\nexport * from './lib/http-interceptor';\r\nexport * from './lib/login/login.component';\r\nexport * from './lib/menu/menu.component';\r\nexport * from './lib/materils/materils.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.BaseAppService","i1","i4.AuthService","i5.BaseAppService","i1.AuthService","i3.BaseAppService","i4","i5"],"mappings":"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"}