exceladdincbms-v2 5.13.0 → 20.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/exceladdincbms-20.mjs +638 -0
- package/fesm2022/exceladdincbms-20.mjs.map +1 -0
- package/index.d.ts +196 -5
- package/package.json +5 -7
- package/public_api.d.ts +2 -6
- package/src/lib/auth.service.ts +46 -0
- package/src/lib/base-app.service.ts +36 -0
- package/src/lib/bulk-tool.component.ts +20 -0
- package/src/lib/bulk-tool.module.ts +32 -0
- package/src/lib/constant.enum.ts +6 -0
- package/src/lib/environmentsModel.info.ts +14 -0
- package/src/lib/http-interceptor.ts +22 -0
- package/src/lib/login/login.component.css +103 -0
- package/src/lib/login/login.component.html +59 -0
- package/src/lib/login/login.component.ts +105 -0
- package/src/lib/materils/materils.module.ts +96 -0
- package/src/lib/menu/menu.component.css +388 -0
- package/src/lib/menu/menu.component.html +46 -0
- package/src/lib/menu/menu.component.ts +191 -0
- package/src/public_api.ts +14 -0
- package/src/styles.css +44 -0
- package/esm2022/exceladdincbms-v1.mjs +0 -5
- package/esm2022/lib/auth.service.mjs +0 -61
- package/esm2022/lib/base-app.service.mjs +0 -41
- package/esm2022/lib/bulk-tool.component.mjs +0 -22
- package/esm2022/lib/bulk-tool.module.mjs +0 -52
- package/esm2022/lib/constant.enum.mjs +0 -6
- package/esm2022/lib/environmentsModel.info.mjs +0 -2
- package/esm2022/lib/http-interceptor.mjs +0 -25
- package/esm2022/lib/login/login.component.mjs +0 -158
- package/esm2022/lib/materils/materils.module.mjs +0 -178
- package/esm2022/lib/menu/menu.component.mjs +0 -293
- package/esm2022/public_api.mjs +0 -10
- package/fesm2022/exceladdincbms-v1.mjs +0 -806
- package/fesm2022/exceladdincbms-v1.mjs.map +0 -1
- package/lib/auth.service.d.ts +0 -20
- package/lib/base-app.service.d.ts +0 -16
- package/lib/bulk-tool.component.d.ts +0 -8
- package/lib/bulk-tool.module.d.ts +0 -17
- package/lib/constant.enum.d.ts +0 -5
- package/lib/environmentsModel.info.d.ts +0 -5
- package/lib/http-interceptor.d.ts +0 -8
- package/lib/login/login.component.d.ts +0 -32
- package/lib/materils/materils.module.d.ts +0 -46
- package/lib/menu/menu.component.d.ts +0 -51
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { Location } from "@angular/common";
|
|
3
|
-
import { Router, ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { FormBuilder, Validators } from '@angular/forms';
|
|
5
|
-
import { first } from 'rxjs/operators';
|
|
6
|
-
import { Constant } from '../constant.enum';
|
|
7
|
-
import { AuthService } from '../auth.service';
|
|
8
|
-
import { BaseAppService } from '../base-app.service';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/forms";
|
|
11
|
-
import * as i2 from "@angular/router";
|
|
12
|
-
import * as i3 from "@angular/common";
|
|
13
|
-
import * as i4 from "../auth.service";
|
|
14
|
-
import * as i5 from "../base-app.service";
|
|
15
|
-
import * as i6 from "@angular/material/button";
|
|
16
|
-
import * as i7 from "@angular/material/icon";
|
|
17
|
-
import * as i8 from "@angular/material/form-field";
|
|
18
|
-
import * as i9 from "@angular/material/input";
|
|
19
|
-
import * as i10 from "@angular/material/progress-spinner";
|
|
20
|
-
function LoginComponent_div_20_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
-
i0.ɵɵelementStart(0, "div", 14);
|
|
22
|
-
i0.ɵɵtext(1);
|
|
23
|
-
i0.ɵɵelementEnd();
|
|
24
|
-
} if (rf & 2) {
|
|
25
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
26
|
-
i0.ɵɵadvance(1);
|
|
27
|
-
i0.ɵɵtextInterpolate(ctx_r0.error);
|
|
28
|
-
} }
|
|
29
|
-
function LoginComponent_section_21_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
-
i0.ɵɵelementStart(0, "section", 15);
|
|
31
|
-
i0.ɵɵelement(1, "mat-spinner", 16);
|
|
32
|
-
i0.ɵɵelementStart(2, "span");
|
|
33
|
-
i0.ɵɵtext(3, " Logging... ");
|
|
34
|
-
i0.ɵɵelementEnd()();
|
|
35
|
-
} if (rf & 2) {
|
|
36
|
-
i0.ɵɵadvance(1);
|
|
37
|
-
i0.ɵɵproperty("diameter", 60);
|
|
38
|
-
} }
|
|
39
|
-
export class LoginComponent {
|
|
40
|
-
formBuilder;
|
|
41
|
-
route;
|
|
42
|
-
router;
|
|
43
|
-
location;
|
|
44
|
-
authenticationService;
|
|
45
|
-
baseAppService;
|
|
46
|
-
isLoading = false;
|
|
47
|
-
routeUrl;
|
|
48
|
-
loginForm;
|
|
49
|
-
submitted = false;
|
|
50
|
-
returnUrl;
|
|
51
|
-
error = '';
|
|
52
|
-
userInfo;
|
|
53
|
-
constructor(formBuilder, route, router, location, authenticationService, baseAppService) {
|
|
54
|
-
this.formBuilder = formBuilder;
|
|
55
|
-
this.route = route;
|
|
56
|
-
this.router = router;
|
|
57
|
-
this.location = location;
|
|
58
|
-
this.authenticationService = authenticationService;
|
|
59
|
-
this.baseAppService = baseAppService;
|
|
60
|
-
let userObject = localStorage.getItem("UserInfo");
|
|
61
|
-
this.userInfo = JSON.parse(userObject);
|
|
62
|
-
this.baseAppService.setUserInfo(this.userInfo);
|
|
63
|
-
}
|
|
64
|
-
isvalidUser = true;
|
|
65
|
-
ngOnInit() {
|
|
66
|
-
this.loginForm = this.formBuilder.group({
|
|
67
|
-
username: ['', Validators.required],
|
|
68
|
-
password: ['', Validators.required]
|
|
69
|
-
});
|
|
70
|
-
this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || this.routeUrl;
|
|
71
|
-
//Checking User already logged in or not
|
|
72
|
-
let isNavigate = localStorage.getItem("IsNavigate");
|
|
73
|
-
if (this.location.path() !== '' && this.location.path().indexOf('UserId') !== -1) {
|
|
74
|
-
let userId = this.location.path().split('?')[1].split('UserId=')[1];
|
|
75
|
-
if (userId == this.userInfo.userInfoId) {
|
|
76
|
-
this.router.navigate([this.returnUrl]);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else if (JSON.parse(isNavigate) == true) {
|
|
81
|
-
if (this.userInfo) {
|
|
82
|
-
console.log("Login After naviagtion-", this.returnUrl);
|
|
83
|
-
localStorage.removeItem("IsNavigate");
|
|
84
|
-
this.router.navigate([this.returnUrl]);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
get formsData() { return this.loginForm.controls; }
|
|
90
|
-
onLogin() {
|
|
91
|
-
this.submitted = true;
|
|
92
|
-
this.isLoading = true;
|
|
93
|
-
// stop here if form is invalid
|
|
94
|
-
if (this.loginForm.invalid) {
|
|
95
|
-
this.isLoading = false;
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
//this.submitClick = true;
|
|
99
|
-
this.authenticationService.login(this.formsData.username.value, this.formsData.password.value)
|
|
100
|
-
.pipe(first())
|
|
101
|
-
.subscribe(data => {
|
|
102
|
-
console.log(data.status);
|
|
103
|
-
if (data.status === "InValid") {
|
|
104
|
-
this.isLoading = false;
|
|
105
|
-
this.isvalidUser = false;
|
|
106
|
-
this.error = Constant.INVALID;
|
|
107
|
-
this.router.navigate(["/login"]);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
console.log("Login Success-", this.returnUrl);
|
|
111
|
-
this.isLoading = false;
|
|
112
|
-
this.router.navigate([this.returnUrl]);
|
|
113
|
-
}
|
|
114
|
-
}, error => {
|
|
115
|
-
this.isLoading = false;
|
|
116
|
-
this.error = Constant.INVALID;
|
|
117
|
-
this.router.navigate(["/login"]);
|
|
118
|
-
//this.submitClick = true;
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/** @nocollapse */ static ɵfac = function LoginComponent_Factory(t) { return new (t || LoginComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i3.Location), i0.ɵɵdirectiveInject(i4.AuthService), i0.ɵɵdirectiveInject(i5.BaseAppService)); };
|
|
122
|
-
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: LoginComponent, selectors: [["lib-login"]], inputs: { routeUrl: "routeUrl" }, decls: 22, vars: 3, consts: [[1, "container"], [1, "loginForm"], [1, "example-sidenav-content"], [1, "loginWidget"], [3, "formGroup"], [2, "font-size", "2rem"], [1, "form-group"], ["color", "primary", 1, "example-full-width"], ["formControlName", "username", "type", "text", "matInput", "", "placeholder", "Enter Username ", 1, "toolbar-search"], ["matSuffix", "", 2, "font-size", "1.2em"], ["formControlName", "password", "type", "password", "matInput", "", "placeholder", "Enter Password ", 1, "toolbar-search"], ["mat-button", "", 1, "!loginForm.valid", "btn", "btn-primary", 2, "background-color", "#0888CA", "color", "#fff", 3, "click"], ["class", "alert alert-danger", 4, "ngIf"], ["class", "loade", 4, "ngIf"], [1, "alert", "alert-danger"], [1, "loade"], ["color", "black", 3, "diameter"]], template: function LoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
123
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "form", 4)(5, "h2", 5);
|
|
124
|
-
i0.ɵɵtext(6, "Login");
|
|
125
|
-
i0.ɵɵelementEnd();
|
|
126
|
-
i0.ɵɵelementStart(7, "div");
|
|
127
|
-
i0.ɵɵtext(8, "\u00A0");
|
|
128
|
-
i0.ɵɵelementEnd();
|
|
129
|
-
i0.ɵɵelementStart(9, "div", 6)(10, "mat-form-field", 7);
|
|
130
|
-
i0.ɵɵelement(11, "input", 8)(12, "mat-icon", 9);
|
|
131
|
-
i0.ɵɵelementEnd()();
|
|
132
|
-
i0.ɵɵelementStart(13, "div", 6)(14, "mat-form-field", 7);
|
|
133
|
-
i0.ɵɵelement(15, "input", 10)(16, "mat-icon", 9);
|
|
134
|
-
i0.ɵɵelementEnd()();
|
|
135
|
-
i0.ɵɵelementStart(17, "div", 6)(18, "button", 11);
|
|
136
|
-
i0.ɵɵlistener("click", function LoginComponent_Template_button_click_18_listener() { return ctx.onLogin(); });
|
|
137
|
-
i0.ɵɵtext(19, "Login");
|
|
138
|
-
i0.ɵɵelementEnd()();
|
|
139
|
-
i0.ɵɵtemplate(20, LoginComponent_div_20_Template, 2, 1, "div", 12);
|
|
140
|
-
i0.ɵɵelementEnd()();
|
|
141
|
-
i0.ɵɵtemplate(21, LoginComponent_section_21_Template, 4, 1, "section", 13);
|
|
142
|
-
i0.ɵɵelementEnd()()();
|
|
143
|
-
} if (rf & 2) {
|
|
144
|
-
i0.ɵɵadvance(4);
|
|
145
|
-
i0.ɵɵproperty("formGroup", ctx.loginForm);
|
|
146
|
-
i0.ɵɵadvance(16);
|
|
147
|
-
i0.ɵɵproperty("ngIf", !ctx.isvalidUser);
|
|
148
|
-
i0.ɵɵadvance(1);
|
|
149
|
-
i0.ɵɵproperty("ngIf", ctx.isLoading);
|
|
150
|
-
} }, dependencies: [i6.MatButton, i7.MatIcon, i8.MatFormField, i8.MatSuffix, i9.MatInput, i10.MatSpinner, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i3.NgIf, i1.FormGroupDirective, i1.FormControlName], styles: ["body[_ngcontent-%COMP%]{background:#f4fafd}.loginForm[_ngcontent-%COMP%]{border-radius:0;background:#fff;width:90%;max-width:450px;padding:15px;text-align:left;margin:60px auto;border:#f4f4f4 solid 1px;box-shadow:4px 2px 5px -2px #c2b3c2} .mat-button, .mat-flat-button[_ngcontent-%COMP%], .mat-icon-button[_ngcontent-%COMP%], .mat-stroked-button[_ngcontent-%COMP%]{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:28px!important;padding:0 16px;border-radius:4px;overflow:visible}.nb-spinner[_ngcontent-%COMP%]{width:75pxx;height:75px;margin:0;background:transparent;border-top:4px solid #03A9F4;border-right:4px solid transparent;border-radius:50%;animation:1s spin linear infinite}.loade[_ngcontent-%COMP%]{background:rgba(255,255,255,.5);width:100%;height:100%;overflow:hidden;padding-left:67px;position:absolute;z-index:1;opacity:50;top:0;padding-top:135px}.square-spinner[_ngcontent-%COMP%]{width:55px;display:block;background-color:#03a9f4;height:55px;animation:3s flip ease-in-out infinite} .mat-spinner circle{stroke:green;stroke-width:10%}mat-form-field[_ngcontent-%COMP%]{width:100%}"] });
|
|
151
|
-
}
|
|
152
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoginComponent, [{
|
|
153
|
-
type: Component,
|
|
154
|
-
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 style=\"font-size: 2rem;\">Login</h2>\r\n <div> </div>\r\n <div class=\"form-group\">\r\n <!-- <label for=\"username\">Username</label> -->\r\n <!-- <input type=\"text\" formControlName=\"username\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && formsData.username.errors }\" /> -->\r\n <mat-form-field class=\"example-full-width\"\r\n color=\"primary\">\r\n <input class=\"toolbar-search\" formControlName=\"username\" type=\"text\" matInput placeholder=\"Enter Username \">\r\n <mat-icon matSuffix style=\"font-size: 1.2em\"></mat-icon>\r\n </mat-form-field>\r\n <!-- <div *ngIf=\"submitted && formsData.username.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"formsData.username.errors.required\">Username is required</div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group\">\r\n <!-- <label for=\"password\">Password</label> -->\r\n <!-- <input type=\"password\" formControlName=\"password\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && formsData.password.errors }\" /> -->\r\n <mat-form-field class=\"example-full-width\"\r\n color=\"primary\">\r\n <input class=\"toolbar-search\" formControlName=\"password\" type=\"password\" matInput placeholder=\"Enter Password \">\r\n <mat-icon matSuffix style=\"font-size: 1.2em\"></mat-icon>\r\n </mat-form-field>\r\n <!-- <div *ngIf=\"submitted && formsData.password.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"formsData.password.errors.required\">Password is required</div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group\">\r\n <!-- <button [disabled]=\"submitClick\" class=\"btn btn-primary\">Login</button> -->\r\n <button style=\"background-color: #0888CA;color: #fff;\" mat-button class=\"!loginForm.valid btn btn-primary\" (click)=\"onLogin()\">Login</button>\r\n </div>\r\n <div *ngIf =\"!isvalidUser\" class=\"alert alert-danger\">{{error}}</div>\r\n </form>\r\n </div>\r\n\r\n <section class=\"loade\" *ngIf=\"isLoading\">\r\n <mat-spinner color=\"black\" [diameter]=60 ></mat-spinner>\r\n <span>\r\n Logging...\r\n </span>\r\n </section>\r\n\r\n \r\n <!-- <button type=\"button\" mat-button (click)=\"drawer.toggle()\">\r\n Toggle sidenav\r\n</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n", styles: ["body{background:#f4fafd}.loginForm{border-radius:0;background:#fff;width:90%;max-width:450px;padding:15px;text-align:left;margin:60px auto;border:#f4f4f4 solid 1px;box-shadow:4px 2px 5px -2px #c2b3c2}::ng-deep .mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:28px!important;padding:0 16px;border-radius:4px;overflow:visible}.nb-spinner{width:75pxx;height:75px;margin:0;background:transparent;border-top:4px solid #03A9F4;border-right:4px solid transparent;border-radius:50%;animation:1s spin linear infinite}.loade{background:rgba(255,255,255,.5);width:100%;height:100%;overflow:hidden;padding-left:67px;position:absolute;z-index:1;opacity:50;top:0;padding-top:135px}.square-spinner{width:55px;display:block;background-color:#03a9f4;height:55px;animation:3s flip ease-in-out infinite}::ng-deep .mat-spinner circle{stroke:green;stroke-width:10%}mat-form-field{width:100%}\n"] }]
|
|
155
|
-
}], function () { return [{ type: i1.FormBuilder }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.Location }, { type: i4.AuthService }, { type: i5.BaseAppService }]; }, { routeUrl: [{
|
|
156
|
-
type: Input
|
|
157
|
-
}] }); })();
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVsay10b29sL3NyYy9saWIvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVsay10b29sL3NyYy9saWIvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFtQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQTs7Ozs7Ozs7Ozs7OztJQzhCMUMsK0JBQXNEO0lBQUEsWUFBUztJQUFBLGlCQUFNOzs7SUFBZixlQUFTO0lBQVQsa0NBQVM7OztJQUluRSxtQ0FBeUM7SUFDdkMsa0NBQXdEO0lBQ3hELDRCQUFNO0lBQ1IsNEJBQ0E7SUFBQSxpQkFBTyxFQUFBOztJQUhzQixlQUFhO0lBQWIsNkJBQWE7O0FEdEI5QyxNQUFNLE9BQU8sY0FBYztJQVNmO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQWJILFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDekIsUUFBUSxDQUFTO0lBQzFCLFNBQVMsQ0FBWTtJQUNyQixTQUFTLEdBQUcsS0FBSyxDQUFD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VSxjQUFjOzRGQUFkLGNBQWM7WUNwQjNCLDhCQUF1QixhQUFBLGFBQUEsYUFBQSxjQUFBLFlBQUE7WUFLYyxxQkFBSztZQUFBLGlCQUFLO1lBQ3ZDLDJCQUFLO1lBQUEsc0JBQU07WUFBQSxpQkFBTTtZQUNqQiw4QkFBd0IseUJBQUE7WUFNZCw0QkFBNEcsbUJBQUE7WUFFakgsaUJBQWlCLEVBQUE7WUFLdEIsK0JBQXdCLHlCQUFBO1lBTWQsNkJBQWdILG1CQUFBO1lBRXhILGlCQUFpQixFQUFBO1lBS25CLCtCQUF3QixrQkFBQTtZQUV1Riw0RkFBUyxhQUFTLElBQUM7WUFBQyxzQkFBSztZQUFBLGlCQUFTLEVBQUE7WUFFakosa0VBQXFFO1lBQ3ZFLGlCQUFPLEVBQUE7WUFHVCwwRUFLVTtZQU1aLGlCQUFNLEVBQUEsRUFBQTs7WUFoREksZUFBdUI7WUFBdkIseUNBQXVCO1lBaUNyQixnQkFBbUI7WUFBbkIsdUNBQW1CO1lBSUwsZUFBZTtZQUFmLG9DQUFlOzs7dUZEckI5QixjQUFjO2NBTjFCLFNBQVM7MkJBQ0UsV0FBVzs4TEFPWixRQUFRO2tCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uc3RhbnQgfSBmcm9tICcuLi9jb25zdGFudC5lbnVtJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Jhc2VBcHBTZXJ2aWNlfSBmcm9tICcuLi9iYXNlLWFwcC5zZXJ2aWNlJ1xyXG4vL2ltcG9ydCB7IHVybCB9IGZyb20gJ2luc3BlY3Rvcic7XHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5cclxue1xyXG4gIFtrZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbFxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1sb2dpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICdsb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByb3V0ZVVybDogc3RyaW5nO1xyXG4gIGxvZ2luRm9ybTogRm9ybUdyb3VwO1xyXG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIHJldHVyblVybDogc3RyaW5nO1xyXG4gIGVycm9yID0gJyc7XHJcbiAgdXNlckluZm86YW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgYmFzZUFwcFNlcnZpY2U6QmFzZUFwcFNlcnZpY2UpIHsgIFxyXG4gICAgbGV0IHVzZXJPYmplY3Q9bG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJVc2VySW5mb1wiKVxyXG4gICAgdGhpcy51c2VySW5mbz1KU09OLnBhcnNlKHVzZXJPYmplY3QpO1xyXG4gICAgdGhpcy5iYXNlQXBwU2VydmljZS5zZXRVc2VySW5mbyh0aGlzLnVzZXJJbmZvKTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBpc3ZhbGlkVXNlcjpib29sZWFuID0gdHJ1ZTtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHVzZXJuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBwYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJldHVyblVybCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JldHVyblVybCddIHx8IHRoaXMucm91dGVVcmw7XHJcbiAgICAvL0NoZWNraW5nIFVzZXIgYWxyZWFkeSBsb2dnZWQgaW4gb3Igbm90XHJcbiAgICBsZXQgaXNOYXZpZ2F0ZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIklzTmF2aWdhdGVcIik7XHJcbiAgICBpZiAodGhpcy5sb2NhdGlvbi5wYXRoKCkgIT09ICcnICYmIHRoaXMubG9jYXRpb24ucGF0aCgpLmluZGV4T2YoJ1VzZXJJZCcpICE9PSAtMSkge1xyXG4gICAgICBsZXQgdXNlcklkPXRoaXMubG9jYXRpb24ucGF0aCgpLnNwbGl0KCc/JylbMV0uc3BsaXQoJ1VzZXJJZD0nKVsxXVxyXG4gICAgICBpZih1c2VySWQ9PXRoaXMudXNlckluZm8udXNlckluZm9JZCl7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucmV0dXJuVXJsXSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKEpTT04ucGFyc2UoaXNOYXZpZ2F0ZSk9PXRydWUpe1xyXG4gICAgICAgIGlmKHRoaXMudXNlckluZm8pe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTG9naW4gQWZ0ZXIgbmF2aWFndGlvbi1cIix0aGlzLnJldHVyblVybCk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJJc05hdmlnYXRlXCIpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJldHVyblVybF0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBnZXQgZm9ybXNEYXRhKCk6TG9naW4geyByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHM7IH1cclxuXHJcbiAgb25Mb2dpbigpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIC8vIHN0b3AgaGVyZSBpZiBmb3JtIGlzIGludmFsaWRcclxuICAgIGlmICh0aGlzLmxvZ2luRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vdGhpcy5zdWJtaXRDbGljayA9IHRydWU7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dpbih0aGlzLmZvcm1zRGF0YS51c2VybmFtZS52YWx1ZSwgdGhpcy5mb3Jtc0RhdGEucGFzc3dvcmQudmFsdWUpXHJcbiAgICAgIC5waXBlKGZpcnN0KCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgZGF0YSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhLnN0YXR1cyk7XHJcbiAgICAgICAgICBpZihkYXRhLnN0YXR1cz09PVwiSW5WYWxpZFwiKVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgIHRoaXMuaXN2YWxpZFVzZXI9ZmFsc2U7XHJcbiAgICAgICAgICAgICB0aGlzLmVycm9yID0gQ29uc3RhbnQuSU5WQUxJRDtcclxuICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9sb2dpblwiXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTG9naW4gU3VjY2Vzcy1cIix0aGlzLnJldHVyblVybCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJldHVyblVybF0pO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVycm9yID0gQ29uc3RhbnQuSU5WQUxJRDtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9sb2dpblwiXSk7XHJcbiAgICAgICAgICAvL3RoaXMuc3VibWl0Q2xpY2sgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJsb2dpbkZvcm1cIj5cclxuICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1zaWRlbmF2LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsb2dpbldpZGdldFwiPlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2luRm9ybVwiID5cclxuICAgICAgICA8aDIgc3R5bGU9XCJmb250LXNpemU6IDJyZW07XCI+TG9naW48L2gyPlxyXG4gICAgICAgIDxkaXY+Jm5ic3A7PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDwhLS0gPGxhYmVsIGZvcj1cInVzZXJuYW1lXCI+VXNlcm5hbWU8L2xhYmVsPiAtLT5cclxuICAgICAgICAgIDwhLS0gPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZm9ybXNEYXRhLnVzZXJuYW1lLmVycm9ycyB9XCIgLz4gLS0+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtZnVsbC13aWR0aFwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0b29sYmFyLXNlYXJjaFwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkVudGVyIFVzZXJuYW1lIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCBzdHlsZT1cImZvbnQtc2l6ZTogMS4yZW1cIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmb3Jtc0RhdGEudXNlcm5hbWUuZXJyb3JzXCIgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3Jtc0RhdGEudXNlcm5hbWUuZXJyb3JzLnJlcXVpcmVkXCI+VXNlcm5hbWUgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPCEtLSA8bGFiZWwgZm9yPVwicGFzc3dvcmRcIj5QYXNzd29yZDwvbGFiZWw+IC0tPlxyXG4gICAgICAgICAgPCEtLSA8aW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZm9ybXNEYXRhLnBhc3N3b3JkLmVycm9ycyB9XCIgLz4gLS0+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtZnVsbC13aWR0aFwiXHJcbiAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRvb2xiYXItc2VhcmNoXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIiBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkVudGVyIFBhc3N3b3JkIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCBzdHlsZT1cImZvbnQtc2l6ZTogMS4yZW1cIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmb3Jtc0RhdGEucGFzc3dvcmQuZXJyb3JzXCIgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3Jtc0RhdGEucGFzc3dvcmQuZXJyb3JzLnJlcXVpcmVkXCI+UGFzc3dvcmQgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPCEtLSA8YnV0dG9uIFtkaXNhYmxlZF09XCJzdWJtaXRDbGlja1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+TG9naW48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMwODg4Q0E7Y29sb3I6ICNmZmY7XCIgbWF0LWJ1dHRvbiAgY2xhc3M9XCIhbG9naW5Gb3JtLnZhbGlkIGJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJvbkxvZ2luKClcIj5Mb2dpbjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWYgPVwiIWlzdmFsaWRVc2VyXCIgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj57e2Vycm9yfX08L2Rpdj5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJsb2FkZVwiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cImJsYWNrXCIgW2RpYW1ldGVyXT02MCA+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgPHNwYW4+XHJcbiAgICBMb2dnaW5nLi4uXHJcbiAgICA8L3NwYW4+XHJcbiAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgXHJcbiAgICA8IS0tIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cImRyYXdlci50b2dnbGUoKVwiPlxyXG4gIFRvZ2dsZSBzaWRlbmF2XHJcbjwvYnV0dG9uPiAtLT5cclxuICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuIl19
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
3
|
-
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
4
|
-
import { CdkTableModule } from '@angular/cdk/table';
|
|
5
|
-
import { CdkTreeModule } from '@angular/cdk/tree';
|
|
6
|
-
import { A11yModule } from '@angular/cdk/a11y';
|
|
7
|
-
import { OverlayModule } from '@angular/cdk/overlay';
|
|
8
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
9
|
-
import { MatBadgeModule } from '@angular/material/badge';
|
|
10
|
-
import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
|
|
11
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
12
|
-
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
13
|
-
import { MatCardModule } from '@angular/material/card';
|
|
14
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
15
|
-
import { MatChipsModule } from '@angular/material/chips';
|
|
16
|
-
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
17
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
18
|
-
import { MatDividerModule } from '@angular/material/divider';
|
|
19
|
-
import { MatExpansionModule } from '@angular/material/expansion';
|
|
20
|
-
import { MatGridListModule } from '@angular/material/grid-list';
|
|
21
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
22
|
-
import { MatInputModule } from '@angular/material/input';
|
|
23
|
-
import { MatListModule } from '@angular/material/list';
|
|
24
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
25
|
-
import { MatNativeDateModule } from '@angular/material/core';
|
|
26
|
-
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
27
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
28
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
29
|
-
import { MatRadioModule } from '@angular/material/radio';
|
|
30
|
-
import { MatRippleModule } from '@angular/material/core';
|
|
31
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
32
|
-
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
33
|
-
import { MatSliderModule } from '@angular/material/slider';
|
|
34
|
-
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
35
|
-
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
36
|
-
import { MatSortModule } from '@angular/material/sort';
|
|
37
|
-
import { MatStepperModule } from '@angular/material/stepper';
|
|
38
|
-
import { MatTableModule } from '@angular/material/table';
|
|
39
|
-
import { MatTabsModule } from '@angular/material/tabs';
|
|
40
|
-
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
41
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
42
|
-
import { MatTreeModule } from '@angular/material/tree';
|
|
43
|
-
import * as i0 from "@angular/core";
|
|
44
|
-
export class MaterilsModule {
|
|
45
|
-
/** @nocollapse */ static ɵfac = function MaterilsModule_Factory(t) { return new (t || MaterilsModule)(); };
|
|
46
|
-
/** @nocollapse */ static ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: MaterilsModule });
|
|
47
|
-
/** @nocollapse */ static ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [A11yModule,
|
|
48
|
-
CdkTableModule,
|
|
49
|
-
CdkTreeModule,
|
|
50
|
-
DragDropModule,
|
|
51
|
-
MatAutocompleteModule,
|
|
52
|
-
MatBadgeModule,
|
|
53
|
-
MatBottomSheetModule,
|
|
54
|
-
MatButtonModule,
|
|
55
|
-
MatButtonToggleModule,
|
|
56
|
-
MatCardModule,
|
|
57
|
-
MatCheckboxModule,
|
|
58
|
-
MatChipsModule,
|
|
59
|
-
MatStepperModule,
|
|
60
|
-
MatDatepickerModule,
|
|
61
|
-
MatDialogModule,
|
|
62
|
-
MatDividerModule,
|
|
63
|
-
MatExpansionModule,
|
|
64
|
-
MatGridListModule,
|
|
65
|
-
MatIconModule,
|
|
66
|
-
MatInputModule,
|
|
67
|
-
MatListModule,
|
|
68
|
-
MatMenuModule,
|
|
69
|
-
MatNativeDateModule,
|
|
70
|
-
MatPaginatorModule,
|
|
71
|
-
MatProgressBarModule,
|
|
72
|
-
MatProgressSpinnerModule,
|
|
73
|
-
MatRadioModule,
|
|
74
|
-
MatRippleModule,
|
|
75
|
-
MatSelectModule,
|
|
76
|
-
MatSidenavModule,
|
|
77
|
-
MatSliderModule,
|
|
78
|
-
MatSlideToggleModule,
|
|
79
|
-
MatSnackBarModule,
|
|
80
|
-
MatSortModule,
|
|
81
|
-
MatTableModule,
|
|
82
|
-
MatTabsModule,
|
|
83
|
-
MatToolbarModule,
|
|
84
|
-
MatTooltipModule,
|
|
85
|
-
MatTreeModule,
|
|
86
|
-
ScrollingModule,
|
|
87
|
-
OverlayModule] });
|
|
88
|
-
}
|
|
89
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MaterilsModule, [{
|
|
90
|
-
type: NgModule,
|
|
91
|
-
args: [{
|
|
92
|
-
exports: [
|
|
93
|
-
A11yModule,
|
|
94
|
-
CdkTableModule,
|
|
95
|
-
CdkTreeModule,
|
|
96
|
-
DragDropModule,
|
|
97
|
-
MatAutocompleteModule,
|
|
98
|
-
MatBadgeModule,
|
|
99
|
-
MatBottomSheetModule,
|
|
100
|
-
MatButtonModule,
|
|
101
|
-
MatButtonToggleModule,
|
|
102
|
-
MatCardModule,
|
|
103
|
-
MatCheckboxModule,
|
|
104
|
-
MatChipsModule,
|
|
105
|
-
MatStepperModule,
|
|
106
|
-
MatDatepickerModule,
|
|
107
|
-
MatDialogModule,
|
|
108
|
-
MatDividerModule,
|
|
109
|
-
MatExpansionModule,
|
|
110
|
-
MatGridListModule,
|
|
111
|
-
MatIconModule,
|
|
112
|
-
MatInputModule,
|
|
113
|
-
MatListModule,
|
|
114
|
-
MatMenuModule,
|
|
115
|
-
MatNativeDateModule,
|
|
116
|
-
MatPaginatorModule,
|
|
117
|
-
MatProgressBarModule,
|
|
118
|
-
MatProgressSpinnerModule,
|
|
119
|
-
MatRadioModule,
|
|
120
|
-
MatRippleModule,
|
|
121
|
-
MatSelectModule,
|
|
122
|
-
MatSidenavModule,
|
|
123
|
-
MatSliderModule,
|
|
124
|
-
MatSlideToggleModule,
|
|
125
|
-
MatSnackBarModule,
|
|
126
|
-
MatSortModule,
|
|
127
|
-
MatTableModule,
|
|
128
|
-
MatTabsModule,
|
|
129
|
-
MatToolbarModule,
|
|
130
|
-
MatTooltipModule,
|
|
131
|
-
MatTreeModule,
|
|
132
|
-
ScrollingModule,
|
|
133
|
-
OverlayModule
|
|
134
|
-
]
|
|
135
|
-
}]
|
|
136
|
-
}], null, null); })();
|
|
137
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MaterilsModule, { exports: [A11yModule,
|
|
138
|
-
CdkTableModule,
|
|
139
|
-
CdkTreeModule,
|
|
140
|
-
DragDropModule,
|
|
141
|
-
MatAutocompleteModule,
|
|
142
|
-
MatBadgeModule,
|
|
143
|
-
MatBottomSheetModule,
|
|
144
|
-
MatButtonModule,
|
|
145
|
-
MatButtonToggleModule,
|
|
146
|
-
MatCardModule,
|
|
147
|
-
MatCheckboxModule,
|
|
148
|
-
MatChipsModule,
|
|
149
|
-
MatStepperModule,
|
|
150
|
-
MatDatepickerModule,
|
|
151
|
-
MatDialogModule,
|
|
152
|
-
MatDividerModule,
|
|
153
|
-
MatExpansionModule,
|
|
154
|
-
MatGridListModule,
|
|
155
|
-
MatIconModule,
|
|
156
|
-
MatInputModule,
|
|
157
|
-
MatListModule,
|
|
158
|
-
MatMenuModule,
|
|
159
|
-
MatNativeDateModule,
|
|
160
|
-
MatPaginatorModule,
|
|
161
|
-
MatProgressBarModule,
|
|
162
|
-
MatProgressSpinnerModule,
|
|
163
|
-
MatRadioModule,
|
|
164
|
-
MatRippleModule,
|
|
165
|
-
MatSelectModule,
|
|
166
|
-
MatSidenavModule,
|
|
167
|
-
MatSliderModule,
|
|
168
|
-
MatSlideToggleModule,
|
|
169
|
-
MatSnackBarModule,
|
|
170
|
-
MatSortModule,
|
|
171
|
-
MatTableModule,
|
|
172
|
-
MatTabsModule,
|
|
173
|
-
MatToolbarModule,
|
|
174
|
-
MatTooltipModule,
|
|
175
|
-
MatTreeModule,
|
|
176
|
-
ScrollingModule,
|
|
177
|
-
OverlayModule] }); })();
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpbHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVsay10b29sL3NyYy9saWIvbWF0ZXJpbHMvbWF0ZXJpbHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FB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b20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgQ2RrVGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xyXG5pbXBvcnQgeyBDZGtUcmVlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5cclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0UmlwcGxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xyXG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtcclxuICAgIEExMXlNb2R1bGUsXHJcbiAgICBDZGtUYWJsZU1vZHVsZSxcclxuICAgIENka1RyZWVNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgIE1hdEJhZGdlTW9kdWxlLFxyXG4gICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgICBNYXRDYXJkTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBNYXRDaGlwc01vZHVsZSxcclxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcclxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcclxuICAgIE1hdEdyaWRMaXN0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRSYWRpb01vZHVsZSxcclxuICAgIE1hdFJpcHBsZU1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXHJcbiAgICBNYXRTbGlkZXJNb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxyXG4gICAgTWF0U29ydE1vZHVsZSxcclxuICAgIE1hdFRhYmxlTW9kdWxlLFxyXG4gICAgTWF0VGFic01vZHVsZSxcclxuICAgIE1hdFRvb2xiYXJNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0VHJlZU1vZHVsZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIE92ZXJsYXlNb2R1bGVcclxuICBdXHJcbn0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIE1hdGVyaWxzTW9kdWxlIHsgfVxyXG4iXX0=
|