exceladdincbms-v2 5.13.0 → 17.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,646 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, Input, NgModule } from '@angular/core';
3
+ import * as i3 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from '@angular/router';
6
+ import { RouterModule } from '@angular/router';
7
+ import * as i1$1 from '@angular/forms';
8
+ import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
9
+ 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
+ import * as i6 from '@angular/material/button';
14
+ import { MatButtonModule } from '@angular/material/button';
15
+ import * as i7 from '@angular/material/icon';
16
+ import { MatIconModule } from '@angular/material/icon';
17
+ import * as i8 from '@angular/material/input';
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';
21
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
22
+ import { DragDropModule } from '@angular/cdk/drag-drop';
23
+ import { ScrollingModule } from '@angular/cdk/scrolling';
24
+ import { CdkTableModule } from '@angular/cdk/table';
25
+ import { CdkTreeModule } from '@angular/cdk/tree';
26
+ import { A11yModule } from '@angular/cdk/a11y';
27
+ import { OverlayModule } from '@angular/cdk/overlay';
28
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
29
+ import { MatBadgeModule } from '@angular/material/badge';
30
+ import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
31
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
32
+ import { MatCardModule } from '@angular/material/card';
33
+ import { MatCheckboxModule } from '@angular/material/checkbox';
34
+ import { MatChipsModule } from '@angular/material/chips';
35
+ import { MatDatepickerModule } from '@angular/material/datepicker';
36
+ import { MatDialogModule } from '@angular/material/dialog';
37
+ import { MatDividerModule } from '@angular/material/divider';
38
+ import { MatExpansionModule } from '@angular/material/expansion';
39
+ import { MatGridListModule } from '@angular/material/grid-list';
40
+ import { MatListModule } from '@angular/material/list';
41
+ import { MatMenuModule } from '@angular/material/menu';
42
+ import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
43
+ import { MatPaginatorModule } from '@angular/material/paginator';
44
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
45
+ import { MatRadioModule } from '@angular/material/radio';
46
+ import { MatSelectModule } from '@angular/material/select';
47
+ import { MatSidenavModule } from '@angular/material/sidenav';
48
+ import { MatSliderModule } from '@angular/material/slider';
49
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
50
+ import { MatSnackBarModule } from '@angular/material/snack-bar';
51
+ import { MatSortModule } from '@angular/material/sort';
52
+ import { MatStepperModule } from '@angular/material/stepper';
53
+ import { MatTableModule } from '@angular/material/table';
54
+ import { MatTabsModule } from '@angular/material/tabs';
55
+ import { MatToolbarModule } from '@angular/material/toolbar';
56
+ import { MatTooltipModule } from '@angular/material/tooltip';
57
+ import { MatTreeModule } from '@angular/material/tree';
58
+
59
+ class BaseAppService {
60
+ userInfo;
61
+ userMenus;
62
+ menuName;
63
+ getUserInfo() {
64
+ return this.userInfo;
65
+ }
66
+ setUserInfo(value) {
67
+ this.userInfo = value;
68
+ }
69
+ removeUserInfo() {
70
+ this.userInfo = null;
71
+ }
72
+ setUserMenus(data) {
73
+ this.userMenus = data;
74
+ }
75
+ getUserMenus() {
76
+ return this.userMenus;
77
+ }
78
+ clearData() {
79
+ this.userInfo = undefined;
80
+ this.userMenus = undefined;
81
+ }
82
+ setmenuNameFromBudget(name) {
83
+ this.menuName = name;
84
+ }
85
+ getmenuNameFromBudget() {
86
+ return this.menuName;
87
+ }
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' });
90
+ }
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseAppService, decorators: [{
92
+ type: Injectable,
93
+ args: [{
94
+ providedIn: 'root'
95
+ }]
96
+ }] });
97
+
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
+ class AuthService {
125
+ http;
126
+ injector;
127
+ baseAppService;
128
+ API_ENDPOINT;
129
+ menuName;
130
+ //private RM_ENDPOINT = this.injector.get("config").apiBaseUrl;
131
+ //private headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
132
+ constructor(http, injector, baseAppService) {
133
+ this.http = http;
134
+ this.injector = injector;
135
+ this.baseAppService = baseAppService;
136
+ this.API_ENDPOINT = this.injector.get("config").baseAppApiUrl;
137
+ this.menuName = this.injector.get("config").moduleName;
138
+ }
139
+ //private postheaders = new Headers({'Content-Type': 'application/json'});
140
+ login(username, password) {
141
+ return this.http.post(this.API_ENDPOINT + "/Login", { username, password })
142
+ .pipe(map(user => {
143
+ if (user.status != "Invalid") {
144
+ console.log(user);
145
+ localStorage.clear();
146
+ localStorage.setItem('UserInfo', JSON.stringify(user));
147
+ this.baseAppService.setUserInfo(user);
148
+ }
149
+ return user;
150
+ }));
151
+ }
152
+ logout() {
153
+ this.baseAppService.clearData();
154
+ localStorage.clear();
155
+ }
156
+ GetMenu(userId) {
157
+ return this.http.get(this.API_ENDPOINT + '/userMenus?userId=' + userId + '&menu=' + this.menuName)
158
+ .pipe(map(res => {
159
+ this.baseAppService.setUserMenus(res);
160
+ return res;
161
+ }));
162
+ }
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' });
165
+ }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthService, decorators: [{
167
+ type: Injectable,
168
+ args: [{
169
+ providedIn: 'root'
170
+ }]
171
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.Injector }, { type: BaseAppService }] });
172
+
173
+ class LoginComponent {
174
+ formBuilder;
175
+ route;
176
+ router;
177
+ location;
178
+ authenticationService;
179
+ baseAppService;
180
+ isLoading = false;
181
+ routeUrl;
182
+ loginForm;
183
+ submitted = false;
184
+ returnUrl;
185
+ error = '';
186
+ userInfo;
187
+ constructor(formBuilder, route, router, location, authenticationService, baseAppService) {
188
+ this.formBuilder = formBuilder;
189
+ this.route = route;
190
+ this.router = router;
191
+ this.location = location;
192
+ this.authenticationService = authenticationService;
193
+ this.baseAppService = baseAppService;
194
+ let userObject = localStorage.getItem("UserInfo");
195
+ this.userInfo = JSON.parse(userObject);
196
+ this.baseAppService.setUserInfo(this.userInfo);
197
+ }
198
+ isvalidUser = true;
199
+ ngOnInit() {
200
+ this.loginForm = this.formBuilder.group({
201
+ username: ['', Validators.required],
202
+ password: ['', Validators.required]
203
+ });
204
+ this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || this.routeUrl;
205
+ //Checking User already logged in or not
206
+ let isNavigate = localStorage.getItem("IsNavigate");
207
+ if (this.location.path() !== '' && this.location.path().indexOf('UserId') !== -1) {
208
+ let userId = this.location.path().split('?')[1].split('UserId=')[1];
209
+ if (userId == this.userInfo.userInfoId) {
210
+ this.router.navigate([this.returnUrl]);
211
+ return;
212
+ }
213
+ }
214
+ else if (JSON.parse(isNavigate) == true) {
215
+ if (this.userInfo) {
216
+ console.log("Login After naviagtion-", this.returnUrl);
217
+ localStorage.removeItem("IsNavigate");
218
+ this.router.navigate([this.returnUrl]);
219
+ return;
220
+ }
221
+ }
222
+ }
223
+ get formsData() { return this.loginForm.controls; }
224
+ onLogin() {
225
+ this.submitted = true;
226
+ this.isLoading = true;
227
+ // stop here if form is invalid
228
+ if (this.loginForm.invalid) {
229
+ this.isLoading = false;
230
+ return;
231
+ }
232
+ //this.submitClick = true;
233
+ this.authenticationService.login(this.formsData.username.value, this.formsData.password.value)
234
+ .pipe(first())
235
+ .subscribe(data => {
236
+ console.log(data.status);
237
+ if (data.status === "InValid") {
238
+ this.isLoading = false;
239
+ this.isvalidUser = false;
240
+ this.error = Constant.INVALID;
241
+ this.router.navigate(["/login"]);
242
+ }
243
+ else {
244
+ console.log("Login Success-", this.returnUrl);
245
+ this.isLoading = false;
246
+ this.router.navigate([this.returnUrl]);
247
+ }
248
+ }, error => {
249
+ this.isLoading = false;
250
+ this.error = Constant.INVALID;
251
+ this.router.navigate(["/login"]);
252
+ //this.submitClick = true;
253
+ });
254
+ }
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"] }] });
257
+ }
258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginComponent, decorators: [{
259
+ 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"] }]
261
+ }], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.Location }, { type: AuthService }, { type: BaseAppService }], propDecorators: { routeUrl: [{
262
+ type: Input
263
+ }] } });
264
+
265
+ 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,
268
+ CdkTableModule,
269
+ CdkTreeModule,
270
+ DragDropModule,
271
+ MatAutocompleteModule,
272
+ MatBadgeModule,
273
+ MatBottomSheetModule,
274
+ MatButtonModule,
275
+ MatButtonToggleModule,
276
+ MatCardModule,
277
+ MatCheckboxModule,
278
+ MatChipsModule,
279
+ MatStepperModule,
280
+ MatDatepickerModule,
281
+ MatDialogModule,
282
+ MatDividerModule,
283
+ MatExpansionModule,
284
+ MatGridListModule,
285
+ MatIconModule,
286
+ MatInputModule,
287
+ MatListModule,
288
+ MatMenuModule,
289
+ MatNativeDateModule,
290
+ MatPaginatorModule,
291
+ MatProgressBarModule,
292
+ MatProgressSpinnerModule,
293
+ MatRadioModule,
294
+ MatRippleModule,
295
+ MatSelectModule,
296
+ MatSidenavModule,
297
+ MatSliderModule,
298
+ MatSlideToggleModule,
299
+ MatSnackBarModule,
300
+ MatSortModule,
301
+ MatTableModule,
302
+ MatTabsModule,
303
+ MatToolbarModule,
304
+ MatTooltipModule,
305
+ MatTreeModule,
306
+ ScrollingModule,
307
+ OverlayModule] });
308
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterilsModule, imports: [A11yModule,
309
+ CdkTableModule,
310
+ CdkTreeModule,
311
+ DragDropModule,
312
+ MatAutocompleteModule,
313
+ MatBadgeModule,
314
+ MatBottomSheetModule,
315
+ MatButtonModule,
316
+ MatButtonToggleModule,
317
+ MatCardModule,
318
+ MatCheckboxModule,
319
+ MatChipsModule,
320
+ MatStepperModule,
321
+ MatDatepickerModule,
322
+ MatDialogModule,
323
+ MatDividerModule,
324
+ MatExpansionModule,
325
+ MatGridListModule,
326
+ MatIconModule,
327
+ MatInputModule,
328
+ MatListModule,
329
+ MatMenuModule,
330
+ MatNativeDateModule,
331
+ MatPaginatorModule,
332
+ MatProgressBarModule,
333
+ MatProgressSpinnerModule,
334
+ MatRadioModule,
335
+ MatRippleModule,
336
+ MatSelectModule,
337
+ MatSidenavModule,
338
+ MatSliderModule,
339
+ MatSlideToggleModule,
340
+ MatSnackBarModule,
341
+ MatSortModule,
342
+ MatTableModule,
343
+ MatTabsModule,
344
+ MatToolbarModule,
345
+ MatTooltipModule,
346
+ MatTreeModule,
347
+ ScrollingModule,
348
+ OverlayModule] });
349
+ }
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterilsModule, decorators: [{
351
+ type: NgModule,
352
+ args: [{
353
+ exports: [
354
+ A11yModule,
355
+ CdkTableModule,
356
+ CdkTreeModule,
357
+ DragDropModule,
358
+ MatAutocompleteModule,
359
+ MatBadgeModule,
360
+ MatBottomSheetModule,
361
+ MatButtonModule,
362
+ MatButtonToggleModule,
363
+ MatCardModule,
364
+ MatCheckboxModule,
365
+ MatChipsModule,
366
+ MatStepperModule,
367
+ MatDatepickerModule,
368
+ MatDialogModule,
369
+ MatDividerModule,
370
+ MatExpansionModule,
371
+ MatGridListModule,
372
+ MatIconModule,
373
+ MatInputModule,
374
+ MatListModule,
375
+ MatMenuModule,
376
+ MatNativeDateModule,
377
+ MatPaginatorModule,
378
+ MatProgressBarModule,
379
+ MatProgressSpinnerModule,
380
+ MatRadioModule,
381
+ MatRippleModule,
382
+ MatSelectModule,
383
+ MatSidenavModule,
384
+ MatSliderModule,
385
+ MatSlideToggleModule,
386
+ MatSnackBarModule,
387
+ MatSortModule,
388
+ MatTableModule,
389
+ MatTabsModule,
390
+ MatToolbarModule,
391
+ MatTooltipModule,
392
+ MatTreeModule,
393
+ ScrollingModule,
394
+ OverlayModule
395
+ ]
396
+ }]
397
+ }] });
398
+
399
+ class MenuComponent {
400
+ authenticationService;
401
+ route;
402
+ router;
403
+ injector;
404
+ baseAppService;
405
+ async;
406
+ MenuMode = "over";
407
+ message = '';
408
+ tooltext = "CBMS";
409
+ menuName;
410
+ childMenu;
411
+ isLoading = false;
412
+ userInfo;
413
+ moduleNameFromExcel;
414
+ IsPermissionExists = true;
415
+ messages = [];
416
+ MenuData;
417
+ RootUrl;
418
+ menuFromExcel;
419
+ navigateMsg;
420
+ result;
421
+ constructor(authenticationService, route, router, injector, baseAppService) {
422
+ this.authenticationService = authenticationService;
423
+ this.route = route;
424
+ this.router = router;
425
+ this.injector = injector;
426
+ this.baseAppService = baseAppService;
427
+ this.RootUrl = this.injector.get("config").rootUrl; //getting from environment file from application accessing BaseApp
428
+ this.menuName = this.injector.get("config").moduleName; //getting from environment file from application accessing BaseApp
429
+ this.userInfo = this.baseAppService.getUserInfo();
430
+ this.childMenu = localStorage.getItem("childMenu");
431
+ if (!this.userInfo) { //incase getUserInfo service fails.
432
+ let userDetails = localStorage.getItem("UserInfo");
433
+ this.userInfo = JSON.parse(userDetails);
434
+ }
435
+ }
436
+ ngOnInit() {
437
+ console.log("Url came base from application -", window.location.href);
438
+ this.isLoading = true;
439
+ this.GetCBMSMenu();
440
+ }
441
+ GetCBMSMenu() {
442
+ if (this.userInfo) {
443
+ this.authenticationService.GetMenu(this.userInfo.userInfoId).subscribe(data => {
444
+ this.MenuData = data;
445
+ this.isLoading = false;
446
+ if (this.MenuData) {
447
+ this.menuFromExcel = this.baseAppService.getmenuNameFromBudget();
448
+ console.log("MenuFromExcel", this.menuFromExcel);
449
+ if (!this.menuFromExcel) {
450
+ let CurrentMenu = data.find(e => e.parentMenuName == this.menuName); //Finding Which application Accessing BaseApp
451
+ this.tooltext = CurrentMenu ? CurrentMenu.parentMenuName : "CBMS";
452
+ console.log("Isdownload", this.userInfo.isDownload);
453
+ if (!this.userInfo.isDownload) {
454
+ if (CurrentMenu) {
455
+ if (CurrentMenu.children.length == 0) {
456
+ this.router.navigate([CurrentMenu.targetAction.split("app")[1]]);
457
+ }
458
+ else {
459
+ if (this.childMenu) {
460
+ this.navigateToChildMenu(CurrentMenu);
461
+ }
462
+ else {
463
+ this.router.navigate([CurrentMenu.children[0].targetAction.split("app")[1]]);
464
+ return;
465
+ }
466
+ }
467
+ }
468
+ else {
469
+ console.log("Redirecting to the First application in menu Tab");
470
+ this.navigateToAnotherMenu(this.MenuData[0]); // Redirecting to the First application in menu Tab
471
+ }
472
+ }
473
+ }
474
+ else {
475
+ let menu = this.MenuData.find(e => e.displaytext == this.menuFromExcel);
476
+ if (menu) {
477
+ if (!this.childMenu) {
478
+ console.log("noChildMenu");
479
+ this.navigateToAnotherMenu(this.MenuData.find(e => e.displaytext == this.menuFromExcel));
480
+ }
481
+ else {
482
+ console.log("childMenuThere");
483
+ this.navigateToChildMenu(this.MenuData.find(e => e.parentMenuName == this.menuName));
484
+ }
485
+ }
486
+ else {
487
+ this.navigateToAnotherMenu(this.MenuData[0]);
488
+ }
489
+ }
490
+ }
491
+ else {
492
+ this.IsPermissionExists = false; //Notifing User that he or she doednot have permission if menuData is empty.
493
+ }
494
+ this.isLoading = false;
495
+ });
496
+ }
497
+ }
498
+ navigateToChildMenu(CurrentMenu) {
499
+ localStorage.removeItem("childMenu");
500
+ let childrenMenu = CurrentMenu.children.filter(e => e.displaytext == this.childMenu);
501
+ console.log("childrenMenu", childrenMenu);
502
+ if (childrenMenu.length > 0) {
503
+ this.router.navigate([childrenMenu[0].targetAction.split("app")[1]]);
504
+ return;
505
+ }
506
+ else {
507
+ this.router.navigate([CurrentMenu.targetAction.split("app")[1]]);
508
+ }
509
+ }
510
+ listItemClick(link) {
511
+ this.isLoading = true;
512
+ if (link.parentMenuName == this.menuName) {
513
+ if (link.parentMenuId == 0) {
514
+ if (link.children.length > 0) {
515
+ console.log("navigationUrl", link.children[0].targetAction);
516
+ this.isLoading = false;
517
+ this.router.navigate([link.children[0].targetAction.split("app")[1]]);
518
+ }
519
+ else {
520
+ console.log("navigationUrl", link.targetAction);
521
+ this.isLoading = false;
522
+ this.router.navigate([link.targetAction.split("app")[1]]);
523
+ }
524
+ }
525
+ else {
526
+ localStorage.setItem("childMenu", link.displaytext);
527
+ console.log("navigationUrl", link.targetAction);
528
+ this.isLoading = false;
529
+ this.router.navigate([link.targetAction.split("app")[1]]);
530
+ }
531
+ }
532
+ else {
533
+ this.isLoading = false;
534
+ this.navigateToAnotherMenu(link);
535
+ }
536
+ }
537
+ navigateToAnotherMenu(link) {
538
+ this.navigateMsg = "...Redirecting to " + link.parentMenuName;
539
+ let navLink = link.targetAction;
540
+ navLink = link.targetAction.split("app")[0] + "app";
541
+ if (link.parentMenuId != 0) {
542
+ localStorage.setItem("childMenu", link.displaytext);
543
+ }
544
+ this.isLoading = false;
545
+ localStorage.setItem("IsNavigate", "true");
546
+ let navigateUrl = this.navigateUrl(navLink);
547
+ console.log("navigating to", link.displaytext);
548
+ window.location.assign(navigateUrl);
549
+ return;
550
+ }
551
+ navigateUrl(Url) {
552
+ let replacements = Url.match(/\{.*?\}/g);
553
+ let value = "";
554
+ if (replacements) {
555
+ replacements.forEach(element => {
556
+ if (element == "{userId}") {
557
+ value = this.userInfo.userInfoId;
558
+ }
559
+ Url = Url.replace(element, value);
560
+ });
561
+ }
562
+ return this.RootUrl + Url;
563
+ }
564
+ onLogOut() {
565
+ this.authenticationService.logout();
566
+ this.router.navigate(["/login"]);
567
+ }
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"] }] });
570
+ }
571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuComponent, decorators: [{
572
+ 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"] }]
574
+ }], ctorParameters: () => [{ type: AuthService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i0.Injector }, { type: BaseAppService }] });
575
+
576
+ class HttpLibInterceptor {
577
+ intercept(request, newRequest) {
578
+ // add authorization header to request
579
+ //Get Token data from local storage
580
+ //let tokenInfo = JSON.parse(localStorage.getItem('TokenInfo'));
581
+ // if (tokenInfo && tokenInfo.token) {
582
+ // request = request.clone({
583
+ // setHeaders: {
584
+ // Authorization: `Bearer ${tokenInfo.token}`,
585
+ // "Content-Type": 'application/json'
586
+ // }
587
+ // });
588
+ // }
589
+ console.log(request);
590
+ return newRequest.handle(request);
591
+ }
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 });
594
+ }
595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HttpLibInterceptor, decorators: [{
596
+ type: Injectable
597
+ }] });
598
+
599
+ class BulkToolModule {
600
+ static forRoot(config) {
601
+ return {
602
+ ngModule: BulkToolModule,
603
+ providers: [{ provide: 'config', useValue: config }, BaseAppService]
604
+ };
605
+ }
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,
608
+ FormsModule,
609
+ CommonModule,
610
+ 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,
614
+ FormsModule,
615
+ CommonModule,
616
+ RouterModule,
617
+ ReactiveFormsModule,
618
+ HttpClientModule] });
619
+ }
620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BulkToolModule, decorators: [{
621
+ type: NgModule,
622
+ args: [{
623
+ imports: [
624
+ MaterilsModule,
625
+ FormsModule,
626
+ CommonModule,
627
+ 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
+ }]
635
+ }] });
636
+
637
+ /*
638
+ * Public API Surface of bulk-tool
639
+ */
640
+
641
+ /**
642
+ * Generated bundle index. Do not edit.
643
+ */
644
+
645
+ export { BaseAppService, BulkToolComponent, BulkToolModule, LoginComponent, MaterilsModule, MenuComponent };
646
+ //# sourceMappingURL=exceladdincbms.mjs.map