tin-spa 10.0.0 → 14.3.11
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/README.md +24 -24
- package/esm2020/lib/classes/Classes.mjs +265 -0
- package/esm2020/lib/classes/TinCore.mjs +401 -0
- package/esm2020/lib/components/accounts/accountDialog.component.mjs +56 -0
- package/esm2020/lib/components/accounts/accounts.component.mjs +70 -0
- package/esm2020/lib/components/activity/activity.component.mjs +24 -0
- package/esm2020/lib/components/alert/alert.component.mjs +29 -0
- package/esm2020/lib/components/attach/attach.component.mjs +86 -0
- package/esm2020/lib/components/bug/bug.component.mjs +14 -0
- package/esm2020/lib/components/change-password/change-password.component.mjs +92 -0
- package/esm2020/lib/components/check/check.component.mjs +67 -0
- package/esm2020/lib/components/chips/chips.component.mjs +58 -0
- package/esm2020/lib/components/create-account/create-account.component.mjs +109 -0
- package/esm2020/lib/components/customers/customers.component.mjs +60 -0
- package/esm2020/lib/components/date/date.component.mjs +101 -0
- package/esm2020/lib/components/datetime/datetime.component.mjs +52 -0
- package/esm2020/lib/components/departments/departments.component.mjs +24 -0
- package/esm2020/lib/components/employees/employees.component.mjs +21 -0
- package/esm2020/lib/components/filter/filter.component.mjs +54 -0
- package/esm2020/lib/components/form/form.component.mjs +191 -0
- package/esm2020/lib/components/grades/grades.component.mjs +14 -0
- package/esm2020/lib/components/inventory/inventory.component.mjs +99 -0
- package/esm2020/lib/components/inventory/quantityDialog.component.mjs +53 -0
- package/esm2020/lib/components/invitations/invitations.component.mjs +14 -0
- package/esm2020/lib/components/invitations-table/invitations-table.component.mjs +70 -0
- package/esm2020/lib/components/label/label.component.mjs +25 -0
- package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +68 -0
- package/esm2020/lib/components/loader/loader.component.mjs +25 -0
- package/esm2020/lib/components/login/login.component.mjs +127 -0
- package/esm2020/lib/components/logs/logs.component.mjs +37 -0
- package/esm2020/lib/components/membership/membership.component.mjs +48 -0
- package/esm2020/lib/components/message/messageDialog.component.mjs +33 -0
- package/esm2020/lib/components/money/currency-input-mask.directive.mjs +185 -0
- package/esm2020/lib/components/money/currency-input-mask.module.mjs +28 -0
- package/esm2020/lib/components/money/money.component.mjs +120 -0
- package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +84 -0
- package/esm2020/lib/components/notifications/notifications.component.mjs +14 -0
- package/esm2020/lib/components/number/number.component.mjs +116 -0
- package/esm2020/lib/components/option/option.component.mjs +67 -0
- package/esm2020/lib/components/plans/plans.component.mjs +47 -0
- package/esm2020/lib/components/positions/positions.component.mjs +21 -0
- package/esm2020/lib/components/profile/profile.component.mjs +92 -0
- package/esm2020/lib/components/recover-account/recover-account.component.mjs +46 -0
- package/esm2020/lib/components/roles/addRoleDialog.component.mjs +60 -0
- package/esm2020/lib/components/roles/roles.component.mjs +91 -0
- package/esm2020/lib/components/search/search.component.mjs +31 -0
- package/esm2020/lib/components/select/select.component.mjs +138 -0
- package/esm2020/lib/components/settings/settings.component.mjs +62 -0
- package/esm2020/lib/components/signup/signup.component.mjs +50 -0
- package/esm2020/lib/components/steps/steps.component.mjs +90 -0
- package/esm2020/lib/components/suppliers/suppliers.component.mjs +50 -0
- package/esm2020/lib/components/table/detailsDialog.component.mjs +232 -0
- package/esm2020/lib/components/table/table.component.mjs +406 -0
- package/esm2020/lib/components/table-action/table-action.component.mjs +46 -0
- package/esm2020/lib/components/table-header/table-header.component.mjs +76 -0
- package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +226 -0
- package/esm2020/lib/components/table-internal/table-internal.component.mjs +406 -0
- package/esm2020/lib/components/table-row/table-row.component.mjs +58 -0
- package/esm2020/lib/components/tasks/tasks.component.mjs +86 -0
- package/esm2020/lib/components/tenant-settings/inviteDialog.component.mjs +60 -0
- package/esm2020/lib/components/tenant-settings/tenant-settings.component.mjs +155 -0
- package/esm2020/lib/components/tenants/tenants.component.mjs +47 -0
- package/esm2020/lib/components/text/text.component.mjs +181 -0
- package/esm2020/lib/components/tiles/tiles.component.mjs +81 -0
- package/esm2020/lib/components/tin-spa.component.mjs +19 -0
- package/esm2020/lib/components/transactions/transactDialog.component.mjs +80 -0
- package/esm2020/lib/components/transactions/transactions.component.mjs +101 -0
- package/esm2020/lib/components/users/users.component.mjs +118 -0
- package/esm2020/lib/components/viewer/viewer.component.mjs +79 -0
- package/esm2020/lib/components/viewer/viewerDialog.component.mjs +88 -0
- package/esm2020/lib/components/welcome/welcome.component.mjs +86 -0
- package/esm2020/lib/modules/admin/admin-routing.module.mjs +61 -0
- package/esm2020/lib/modules/admin/admin.module.mjs +26 -0
- package/esm2020/lib/modules/index/index-routing.module.mjs +27 -0
- package/esm2020/lib/modules/index/index.module.mjs +26 -0
- package/esm2020/lib/modules/spa-admin.module.mjs +71 -0
- package/esm2020/lib/modules/spa-index.module.mjs +54 -0
- package/esm2020/lib/modules/spa-mat.module.mjs +84 -0
- package/esm2020/lib/modules/spa-user.module.mjs +47 -0
- package/esm2020/lib/modules/user/user-routing.module.mjs +23 -0
- package/esm2020/lib/modules/user/user.module.mjs +26 -0
- package/esm2020/lib/pipes/camelToWords.pipe.mjs +17 -0
- package/esm2020/lib/services/auth.service.mjs +174 -0
- package/esm2020/lib/services/button.service.mjs +102 -0
- package/esm2020/lib/services/condition.service.mjs +32 -0
- package/esm2020/lib/services/datalib.service.mjs +387 -0
- package/esm2020/lib/services/dialog.service.mjs +81 -0
- package/esm2020/lib/services/export.service.mjs +16 -0
- package/esm2020/lib/services/http.service.mjs +79 -0
- package/esm2020/lib/services/loader-interceptor.service.mjs +86 -0
- package/esm2020/lib/services/loader.service.mjs +17 -0
- package/esm2020/lib/services/log.service.mjs +77 -0
- package/esm2020/lib/services/message.service.mjs +59 -0
- package/esm2020/lib/services/storage.service.mjs +34 -0
- package/esm2020/lib/services/table-config.service.mjs +30 -0
- package/esm2020/lib/services/tin-spa.service.mjs +14 -0
- package/esm2020/lib/tin-spa.module.mjs +183 -0
- package/esm2020/public-api.mjs +80 -0
- package/esm2020/tin-spa.mjs +5 -0
- package/fesm2015/tin-spa.mjs +7454 -0
- package/fesm2015/tin-spa.mjs.map +1 -0
- package/fesm2020/tin-spa.mjs +7410 -0
- package/fesm2020/tin-spa.mjs.map +1 -0
- package/index.d.ts +5 -3408
- package/lib/classes/Classes.d.ts +431 -0
- package/lib/classes/TinCore.d.ts +48 -0
- package/lib/components/accounts/accountDialog.component.d.ts +27 -0
- package/lib/components/accounts/accounts.component.d.ts +25 -0
- package/lib/components/activity/activity.component.d.ts +11 -0
- package/lib/components/alert/alert.component.d.ts +14 -0
- package/lib/components/attach/attach.component.d.ts +23 -0
- package/lib/components/bug/bug.component.d.ts +8 -0
- package/lib/components/change-password/change-password.component.d.ts +27 -0
- package/lib/components/check/check.component.d.ts +24 -0
- package/lib/components/chips/chips.component.d.ts +18 -0
- package/lib/components/create-account/create-account.component.d.ts +33 -0
- package/lib/components/customers/customers.component.d.ts +18 -0
- package/lib/components/date/date.component.d.ts +29 -0
- package/lib/components/datetime/datetime.component.d.ts +18 -0
- package/lib/components/departments/departments.component.d.ts +14 -0
- package/lib/components/employees/employees.component.d.ts +12 -0
- package/lib/components/filter/filter.component.d.ts +19 -0
- package/lib/components/form/form.component.d.ts +36 -0
- package/lib/components/grades/grades.component.d.ts +8 -0
- package/lib/components/inventory/inventory.component.d.ts +25 -0
- package/lib/components/inventory/quantityDialog.component.d.ts +23 -0
- package/lib/components/invitations/invitations.component.d.ts +8 -0
- package/lib/components/invitations-table/invitations-table.component.d.ts +19 -0
- package/lib/components/label/label.component.d.ts +11 -0
- package/lib/components/list-dialog/list-dialog.component.d.ts +23 -0
- package/lib/components/loader/loader.component.d.ts +12 -0
- package/lib/components/login/login.component.d.ts +39 -0
- package/lib/components/logs/logs.component.d.ts +18 -0
- package/lib/components/membership/membership.component.d.ts +17 -0
- package/lib/components/message/messageDialog.component.d.ts +15 -0
- package/lib/components/money/currency-input-mask.directive.d.ts +41 -0
- package/lib/components/money/currency-input-mask.module.d.ts +9 -0
- package/lib/components/money/money.component.d.ts +33 -0
- package/lib/components/nav-menu/nav-menu.component.d.ts +34 -0
- package/lib/components/notifications/notifications.component.d.ts +8 -0
- package/lib/components/number/number.component.d.ts +35 -0
- package/lib/components/option/option.component.d.ts +23 -0
- package/lib/components/plans/plans.component.d.ts +17 -0
- package/lib/components/positions/positions.component.d.ts +12 -0
- package/lib/components/profile/profile.component.d.ts +34 -0
- package/lib/components/recover-account/recover-account.component.d.ts +18 -0
- package/lib/components/roles/addRoleDialog.component.d.ts +24 -0
- package/lib/components/roles/roles.component.d.ts +30 -0
- package/lib/components/search/search.component.d.ts +13 -0
- package/lib/components/select/select.component.d.ts +42 -0
- package/lib/components/settings/settings.component.d.ts +19 -0
- package/lib/components/signup/signup.component.d.ts +23 -0
- package/lib/components/steps/steps.component.d.ts +18 -0
- package/lib/components/suppliers/suppliers.component.d.ts +17 -0
- package/lib/components/table/detailsDialog.component.d.ts +64 -0
- package/lib/components/table/table.component.d.ts +82 -0
- package/lib/components/table-action/table-action.component.d.ts +22 -0
- package/lib/components/table-header/table-header.component.d.ts +31 -0
- package/lib/components/table-internal/detailsDialog-internal.component.d.ts +64 -0
- package/lib/components/table-internal/table-internal.component.d.ts +82 -0
- package/lib/components/table-row/table-row.component.d.ts +28 -0
- package/lib/components/tasks/tasks.component.d.ts +27 -0
- package/lib/components/tenant-settings/inviteDialog.component.d.ts +28 -0
- package/lib/components/tenant-settings/tenant-settings.component.d.ts +42 -0
- package/lib/components/tenants/tenants.component.d.ts +17 -0
- package/lib/components/text/text.component.d.ts +46 -0
- package/lib/components/tiles/tiles.component.d.ts +25 -0
- package/lib/components/tin-spa.component.d.ts +5 -0
- package/lib/components/transactions/transactDialog.component.d.ts +26 -0
- package/lib/components/transactions/transactions.component.d.ts +31 -0
- package/lib/components/users/users.component.d.ts +36 -0
- package/lib/components/viewer/viewer.component.d.ts +25 -0
- package/lib/components/viewer/viewerDialog.component.d.ts +22 -0
- package/lib/components/welcome/welcome.component.d.ts +25 -0
- package/lib/modules/admin/admin-routing.module.d.ts +7 -0
- package/lib/modules/admin/admin.module.d.ts +9 -0
- package/lib/modules/index/index-routing.module.d.ts +7 -0
- package/lib/modules/index/index.module.d.ts +9 -0
- package/lib/modules/spa-admin.module.d.ts +15 -0
- package/lib/modules/spa-index.module.d.ts +13 -0
- package/lib/modules/spa-mat.module.d.ts +38 -0
- package/lib/modules/spa-user.module.d.ts +11 -0
- package/lib/modules/user/user-routing.module.d.ts +7 -0
- package/lib/modules/user/user.module.d.ts +9 -0
- package/lib/pipes/camelToWords.pipe.d.ts +7 -0
- package/lib/services/auth.service.d.ts +61 -0
- package/lib/services/button.service.d.ts +27 -0
- package/lib/services/condition.service.d.ts +10 -0
- package/lib/services/datalib.service.d.ts +77 -0
- package/lib/services/dialog.service.d.ts +19 -0
- package/lib/services/export.service.d.ts +6 -0
- package/lib/services/http.service.d.ts +22 -0
- package/lib/services/loader-interceptor.service.d.ts +22 -0
- package/lib/services/loader.service.d.ts +8 -0
- package/lib/services/log.service.d.ts +19 -0
- package/lib/services/message.service.d.ts +16 -0
- package/lib/services/storage.service.d.ts +10 -0
- package/lib/services/table-config.service.d.ts +9 -0
- package/lib/services/tin-spa.service.d.ts +6 -0
- package/lib/tin-spa.module.d.ts +66 -0
- package/package.json +13 -8
- package/public-api.d.ts +69 -0
- package/fesm2022/tin-spa.mjs +0 -12474
- package/fesm2022/tin-spa.mjs.map +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { accountDialog } from './accountDialog.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
import * as i2 from "../../services/datalib.service";
|
|
7
|
+
import * as i3 from "../../services/message.service";
|
|
8
|
+
import * as i4 from "../../services/auth.service";
|
|
9
|
+
import * as i5 from "@angular/material/dialog";
|
|
10
|
+
import * as i6 from "@angular/common";
|
|
11
|
+
import * as i7 from "@angular/material/button";
|
|
12
|
+
import * as i8 from "@angular/material/icon";
|
|
13
|
+
import * as i9 from "@angular/material/card";
|
|
14
|
+
import * as i10 from "../filter/filter.component";
|
|
15
|
+
export class AccountsComponent {
|
|
16
|
+
constructor(router, dataService, messageService, authService, dialog) {
|
|
17
|
+
this.router = router;
|
|
18
|
+
this.dataService = dataService;
|
|
19
|
+
this.messageService = messageService;
|
|
20
|
+
this.authService = authService;
|
|
21
|
+
this.dialog = dialog;
|
|
22
|
+
this.reload = new Subject();
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.loadData();
|
|
26
|
+
}
|
|
27
|
+
loadData() {
|
|
28
|
+
this.dataService.CallApi({ url: 'general/accounts/x' }, '').subscribe((apiResponse) => {
|
|
29
|
+
this.accounts = apiResponse.data;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
view(x) {
|
|
33
|
+
this.dataService.NavigateWithValue("home/admin/transactions", x.accountID);
|
|
34
|
+
}
|
|
35
|
+
open(x) {
|
|
36
|
+
const dialogRef = this.dialog.open(accountDialog, {
|
|
37
|
+
width: "900px",
|
|
38
|
+
data: x,
|
|
39
|
+
});
|
|
40
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
41
|
+
if (result == 'success') {
|
|
42
|
+
this.loadData();
|
|
43
|
+
this.messageService.toast("Updated");
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
delete(row) {
|
|
48
|
+
this.messageService.confirm(`DELETE ${row.name} ?`).subscribe((result) => {
|
|
49
|
+
if (result == "yes") {
|
|
50
|
+
this.dataService.CallApi({ url: `general/accounts?action=delete`, method: 'post' }, row).subscribe((apiResponse) => {
|
|
51
|
+
if (apiResponse.message == "success") {
|
|
52
|
+
this.messageService.toast("Account Deleted");
|
|
53
|
+
this.loadData();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.messageService.toast(apiResponse.message);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
AccountsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AccountsComponent, deps: [{ token: i1.Router }, { token: i2.DataServiceLib }, { token: i3.MessageService }, { token: i4.AuthService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
+
AccountsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AccountsComponent, selector: "spa-accounts", ngImport: i0, template: "<h4>Accounts</h4>\r\n<hr>\r\n\r\n<div class=\"tin-row d-flex justify-content-between\" style=\"font-size: 14px;margin-left: 5px;\">\r\n <button mat-raised-button color=\"primary\" (click)=\"open(null)\">Create</button>\r\n <spa-filter [showText]=\"false\" (refreshClick)=\"loadData()\"></spa-filter>\r\n</div>\r\n\r\n<div class=\"row \" style=\"margin-left: 0px;\">\r\n\r\n <mat-card class=\"mat-elevation-z8\" *ngFor=\"let account of accounts\" style=\"max-width: 350px;margin: 5px;\">\r\n\r\n <div class=\"tin-row d-flex justify-content-between\">\r\n <label style=\"font-size: 24px; font-weight: 300;\">{{account.name}}</label>\r\n <button mat-mini-fab color=\"primary\" (click)=\"open(account)\"><mat-icon>edit</mat-icon></button>\r\n </div>\r\n\r\n <hr style=\"margin-top: 5px;margin-bottom: 10px;\"/>\r\n\r\n <label *ngIf=\"account.description != ''\" style=\"font-size: small;margin-bottom: 5px;\">{{account.description}}</label>\r\n\r\n <div *ngIf=\"account\" class=\"tin-row\">\r\n <label style=\"margin-right: 5px;font-size: 14px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n </div>\r\n\r\n <mat-card-actions class=\"d-flex justify-content-between\" >\r\n <button mat-stroked-button color=\"primary\" style=\"margin-right:10px;\" (click)=\"view(account)\">View</button>\r\n <button mat-mini-fab *ngIf=\"account.count == 0\" color=\"warn\" style=\"margin-right:10px\" (click)=\"delete(account)\"><mat-icon>delete</mat-icon></button>\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n</div>\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: i10.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "pipe", type: i6.CurrencyPipe, name: "currency" }] });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AccountsComponent, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{ selector: 'spa-accounts', template: "<h4>Accounts</h4>\r\n<hr>\r\n\r\n<div class=\"tin-row d-flex justify-content-between\" style=\"font-size: 14px;margin-left: 5px;\">\r\n <button mat-raised-button color=\"primary\" (click)=\"open(null)\">Create</button>\r\n <spa-filter [showText]=\"false\" (refreshClick)=\"loadData()\"></spa-filter>\r\n</div>\r\n\r\n<div class=\"row \" style=\"margin-left: 0px;\">\r\n\r\n <mat-card class=\"mat-elevation-z8\" *ngFor=\"let account of accounts\" style=\"max-width: 350px;margin: 5px;\">\r\n\r\n <div class=\"tin-row d-flex justify-content-between\">\r\n <label style=\"font-size: 24px; font-weight: 300;\">{{account.name}}</label>\r\n <button mat-mini-fab color=\"primary\" (click)=\"open(account)\"><mat-icon>edit</mat-icon></button>\r\n </div>\r\n\r\n <hr style=\"margin-top: 5px;margin-bottom: 10px;\"/>\r\n\r\n <label *ngIf=\"account.description != ''\" style=\"font-size: small;margin-bottom: 5px;\">{{account.description}}</label>\r\n\r\n <div *ngIf=\"account\" class=\"tin-row\">\r\n <label style=\"margin-right: 5px;font-size: 14px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n </div>\r\n\r\n <mat-card-actions class=\"d-flex justify-content-between\" >\r\n <button mat-stroked-button color=\"primary\" style=\"margin-right:10px;\" (click)=\"view(account)\">View</button>\r\n <button mat-mini-fab *ngIf=\"account.count == 0\" color=\"warn\" style=\"margin-right:10px\" (click)=\"delete(account)\"><mat-icon>delete</mat-icon></button>\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n</div>\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.DataServiceLib }, { type: i3.MessageService }, { type: i4.AuthService }, { type: i5.MatDialog }]; } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3VudHMvYWNjb3VudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3VudHMvYWNjb3VudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU9sRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzFELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFBbUIsTUFBYyxFQUFTLFdBQTJCLEVBQVUsY0FBOEIsRUFBUyxXQUF3QixFQUFTLE1BQWlCO1FBQXJKLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFNeEssV0FBTSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBTm1JLENBQUM7SUFFN0ssUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBS0QsUUFBUTtRQUVOLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBeUIsRUFBRSxFQUFFO1lBQ2pHLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFJRCxJQUFJLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFFRCxJQUFJLENBQUMsQ0FBQztRQUVKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoRCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxDQUFDO1NBQ1IsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBRTNDLElBQUksTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsTUFBTSxDQUFDLEdBQUc7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBRXZFLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRTtnQkFHbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtvQkFFOUgsSUFBSSxXQUFXLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRTt3QkFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO3FCQUNqQjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ2hEO2dCQUVILENBQUMsQ0FBQyxDQUFBO2FBR0g7WUFBQSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0E5RFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsb0RDaEI5Qixxb0RBb0NBOzJGRHBCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IHF1YW50aXR5RGlhbG9nIH0gZnJvbSAnLi9xdWFudGl0eURpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGFjY291bnREaWFsb2cgfSBmcm9tICcuL2FjY291bnREaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWFjY291bnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3VudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjY291bnRzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjb3VudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIscHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2cpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZERhdGEoKTtcclxuICB9XHJcblxyXG4gIHJlbG9hZDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgYWNjb3VudHM7XHJcblxyXG4gIGxvYWREYXRhKCl7XHJcblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKHsgdXJsOiAnZ2VuZXJhbC9hY2NvdW50cy94JyB9LCcnKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlIDogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5hY2NvdW50cyA9IGFwaVJlc3BvbnNlLmRhdGE7XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgdmlldyh4KXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuTmF2aWdhdGVXaXRoVmFsdWUoXCJob21lL2FkbWluL3RyYW5zYWN0aW9uc1wiLCB4LmFjY291bnRJRClcclxuICB9XHJcblxyXG4gIG9wZW4oeCkge1xyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oYWNjb3VudERpYWxvZywge1xyXG4gICAgICB3aWR0aDogXCI5MDBweFwiLFxyXG4gICAgICBkYXRhOiB4LFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlVwZGF0ZWRcIilcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZGVsZXRlKHJvdyl7XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYERFTEVURSAke3Jvdy5uYW1lfSA/YCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKHsgdXJsOiBgZ2VuZXJhbC9hY2NvdW50cz9hY3Rpb249ZGVsZXRlYCwgbWV0aG9kOiAncG9zdCcgfSwgcm93KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgICAgIGlmIChhcGlSZXNwb25zZS5tZXNzYWdlID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJBY2NvdW50IERlbGV0ZWRcIik7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZERhdGEoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pXHJcblxyXG5cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8aDQ+QWNjb3VudHM8L2g0PlxyXG48aHI+XHJcblxyXG48ZGl2IGNsYXNzPVwidGluLXJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDttYXJnaW4tbGVmdDogNXB4O1wiPlxyXG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW4obnVsbClcIj5DcmVhdGU8L2J1dHRvbj5cclxuICA8c3BhLWZpbHRlciBbc2hvd1RleHRdPVwiZmFsc2VcIiAocmVmcmVzaENsaWNrKT1cImxvYWREYXRhKClcIj48L3NwYS1maWx0ZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInJvdyBcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAwcHg7XCI+XHJcblxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIiAqbmdGb3I9XCJsZXQgYWNjb3VudCBvZiBhY2NvdW50c1wiIHN0eWxlPVwibWF4LXdpZHRoOiAzNTBweDttYXJnaW46IDVweDtcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGluLXJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgPGxhYmVsIHN0eWxlPVwiZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogMzAwO1wiPnt7YWNjb3VudC5uYW1lfX08L2xhYmVsPlxyXG4gICAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib3BlbihhY2NvdW50KVwiPjxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxociBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDttYXJnaW4tYm90dG9tOiAxMHB4O1wiLz5cclxuXHJcbiAgICA8bGFiZWwgKm5nSWY9XCJhY2NvdW50LmRlc2NyaXB0aW9uICE9ICcnXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO21hcmdpbi1ib3R0b206IDVweDtcIj57e2FjY291bnQuZGVzY3JpcHRpb259fTwvbGFiZWw+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImFjY291bnRcIiBjbGFzcz1cInRpbi1yb3dcIj5cclxuICAgICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7Zm9udC1zaXplOiAxNHB4O1wiPnt7YWNjb3VudD8uY3VycmVuY3l9fTwvbGFiZWw+XHJcbiAgICAgIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMzRweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+e3thY2NvdW50Py5iYWxhbmNlIHwgY3VycmVuY3kgOiAnJyA6ICcnfX08L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG1hdC1jYXJkLWFjdGlvbnMgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiA+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjEwcHg7XCIgKGNsaWNrKT1cInZpZXcoYWNjb3VudClcIj5WaWV3PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiICpuZ0lmPVwiYWNjb3VudC5jb3VudCA9PSAwXCIgY29sb3I9XCJ3YXJuXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MTBweFwiIChjbGljayk9XCJkZWxldGUoYWNjb3VudClcIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuXHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/form-field";
|
|
5
|
+
export class ActivityComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.notes = new Array();
|
|
8
|
+
this.notesMessage = "Empty";
|
|
9
|
+
this.title = "Notes";
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
ActivityComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActivityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
ActivityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ActivityComponent, selector: "spa-activity", inputs: { notes: "notes", title: "title" }, ngImport: i0, template: "\r\n <div class=\"tin-input-row mt-3\" *ngIf=\"title != ''\">\r\n <mat-label style=\"font-size: 20px; font-weight: 300\" > {{title}}</mat-label >\r\n </div>\r\n\r\n <ul *ngIf=\"notes && notes.length>0\" class=\"list-group list-group-flush\" style=\"max-height:350px; margin-left:5px\">\r\n\r\n <li *ngFor=\"let note of notes\" class=\"list-group-item list-group-item-action flex-column align-items-start\">\r\n <div class=\"d-flex w-100 justify-content-between\">\r\n <div class=\"mb-0\">{{note.createdByName}}</div>\r\n <!-- <small class=\"text-muted\">{{note.expr1}} ago</small> -->\r\n </div>\r\n\r\n <small>{{note.details}} (<em>{{note.createdDate | date: 'dd MMM yyyy HH:mm'}}</em>) </small>\r\n </li>\r\n\r\n\r\n </ul>\r\n\r\n <div *ngIf=\"notes && notes.length==0\" class=\"d-flex justify-content-center row align-items-center\" style=\"max-height:200px\">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActivityComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'spa-activity', template: "\r\n <div class=\"tin-input-row mt-3\" *ngIf=\"title != ''\">\r\n <mat-label style=\"font-size: 20px; font-weight: 300\" > {{title}}</mat-label >\r\n </div>\r\n\r\n <ul *ngIf=\"notes && notes.length>0\" class=\"list-group list-group-flush\" style=\"max-height:350px; margin-left:5px\">\r\n\r\n <li *ngFor=\"let note of notes\" class=\"list-group-item list-group-item-action flex-column align-items-start\">\r\n <div class=\"d-flex w-100 justify-content-between\">\r\n <div class=\"mb-0\">{{note.createdByName}}</div>\r\n <!-- <small class=\"text-muted\">{{note.expr1}} ago</small> -->\r\n </div>\r\n\r\n <small>{{note.details}} (<em>{{note.createdDate | date: 'dd MMM yyyy HH:mm'}}</em>) </small>\r\n </li>\r\n\r\n\r\n </ul>\r\n\r\n <div *ngIf=\"notes && notes.length==0\" class=\"d-flex justify-content-center row align-items-center\" style=\"max-height:200px\">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n </div>\r\n" }]
|
|
19
|
+
}], ctorParameters: function () { return []; }, propDecorators: { notes: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], title: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}] } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWN0aXZpdHkvYWN0aXZpdHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWN0aXZpdHkvYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekQsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QjtRQUtTLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzdCLGlCQUFZLEdBQVcsT0FBTyxDQUFDO1FBQ3RCLFVBQUssR0FBRyxPQUFPLENBQUE7SUFQUixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzs4R0FMVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixnR0NQOUIsb2dDQXdCQTsyRkRqQmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWM7MEVBV2YsS0FBSztzQkFBYixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtYWN0aXZpdHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpdml0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHkuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbm90ZXMgPSBuZXcgQXJyYXkoKTtcclxuICBub3Rlc01lc3NhZ2U6IHN0cmluZyA9IFwiRW1wdHlcIjtcclxuICBASW5wdXQoKSB0aXRsZSA9IFwiTm90ZXNcIlxyXG5cclxufVxyXG4iLCJcclxuICAgICAgPGRpdiBjbGFzcz1cInRpbi1pbnB1dC1yb3cgbXQtM1wiICpuZ0lmPVwidGl0bGUgIT0gJydcIj5cclxuICAgICAgICA8bWF0LWxhYmVsIHN0eWxlPVwiZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogMzAwXCIgPiAge3t0aXRsZX19PC9tYXQtbGFiZWwgPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDx1bCAqbmdJZj1cIm5vdGVzICYmIG5vdGVzLmxlbmd0aD4wXCIgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2hcIiBzdHlsZT1cIm1heC1oZWlnaHQ6MzUwcHg7IG1hcmdpbi1sZWZ0OjVweFwiPlxyXG5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG5vdGUgb2Ygbm90ZXNcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSAgbGlzdC1ncm91cC1pdGVtLWFjdGlvbiBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMFwiPnt7bm90ZS5jcmVhdGVkQnlOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+e3tub3RlLmV4cHIxfX0gYWdvPC9zbWFsbD4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8c21hbGw+e3tub3RlLmRldGFpbHN9fSAoPGVtPnt7bm90ZS5jcmVhdGVkRGF0ZSB8IGRhdGU6ICdkZCBNTU0geXl5eSBISDptbSd9fTwvZW0+KSA8L3NtYWxsPlxyXG4gICAgICAgIDwvbGk+XHJcblxyXG5cclxuICAgICAgPC91bD5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJub3RlcyAmJiBub3Rlcy5sZW5ndGg9PTBcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cIm1heC1oZWlnaHQ6MjAwcHhcIj5cclxuXHJcbiAgICAgICAgTm8ge3t0aXRsZS50b0xvd2VyQ2FzZSgpfX1cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class AlertComponent {
|
|
5
|
+
constructor() { }
|
|
6
|
+
ngOnInit() {
|
|
7
|
+
}
|
|
8
|
+
getAlertMessages(type = undefined) {
|
|
9
|
+
return this.alertMessages?.messages.filter(x => x.type === type);
|
|
10
|
+
}
|
|
11
|
+
hasAlertMessages(type = undefined) {
|
|
12
|
+
let has = this.alertMessages?.messages.filter(x => x.type === type).length > 0;
|
|
13
|
+
return has;
|
|
14
|
+
}
|
|
15
|
+
testVisible(msg) {
|
|
16
|
+
return msg.hiddenCondition ? !msg.hiddenCondition(this.data) : true;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AlertComponent, selector: "spa-alert", inputs: { alertMessages: "alertMessages", data: "data" }, ngImport: i0, template: "<div *ngIf=\"hasAlertMessages()\" class=\"alert alert-secondary\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages()\" >\n <label *ngIf=\"testVisible(msg)\" >{{msg.content}}</label>\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('success')\" class=\"alert alert-success\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages('success')\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('info')\" class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages('info')\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('warn')\" class=\"alert alert-warning\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages('warn')\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('critical')\" class=\"alert alert-danger\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages('critical')\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AlertComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'spa-alert', template: "<div *ngIf=\"hasAlertMessages()\" class=\"alert alert-secondary\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages()\" >\n <label *ngIf=\"testVisible(msg)\" >{{msg.content}}</label>\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('success')\" class=\"alert alert-success\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages('success')\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('info')\" class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages('info')\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('warn')\" class=\"alert alert-warning\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages('warn')\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('critical')\" class=\"alert alert-danger\" style=\"font-size: 14px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}} </p>\n <ng-container *ngFor=\"let msg of getAlertMessages('critical')\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n </ng-container>\n</div>\n" }]
|
|
24
|
+
}], ctorParameters: function () { return []; }, propDecorators: { alertMessages: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], data: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQVF6RCxNQUFNLE9BQU8sY0FBYztJQUV6QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQU9ELGdCQUFnQixDQUFDLElBQUksR0FBRyxTQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLFNBQVM7UUFDL0IsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRS9FLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFpQjtRQUUzQixPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUV0RSxDQUFDOzsyR0ExQlUsY0FBYzsrRkFBZCxjQUFjLDJHQ1IzQixzcURBa0NBOzJGRDFCYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVc7MEVBWVosYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsZXJ0TWVzc2FnZSwgQWxlcnRNZXNzYWdlcyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwYS1hbGVydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG5cbiAgQElucHV0KCkgYWxlcnRNZXNzYWdlczogQWxlcnRNZXNzYWdlcztcbiAgQElucHV0KCkgZGF0YTtcblxuXG4gIGdldEFsZXJ0TWVzc2FnZXModHlwZSA9IHVuZGVmaW5lZCkgOiBBbGVydE1lc3NhZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWxlcnRNZXNzYWdlcz8ubWVzc2FnZXMuZmlsdGVyKHggPT4geC50eXBlID09PSB0eXBlKVxuICB9XG5cbiAgaGFzQWxlcnRNZXNzYWdlcyh0eXBlID0gdW5kZWZpbmVkKSA6IGJvb2xlYW4ge1xuICAgIGxldCBoYXMgPSB0aGlzLmFsZXJ0TWVzc2FnZXM/Lm1lc3NhZ2VzLmZpbHRlcih4ID0+IHgudHlwZSA9PT0gdHlwZSkubGVuZ3RoID4gMDtcblxuICAgIHJldHVybiBoYXM7XG4gIH1cblxuICB0ZXN0VmlzaWJsZShtc2c6IEFsZXJ0TWVzc2FnZSk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIG1zZy5oaWRkZW5Db25kaXRpb24gPyAhbXNnLmhpZGRlbkNvbmRpdGlvbih0aGlzLmRhdGEpIDogdHJ1ZTtcblxuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJoYXNBbGVydE1lc3NhZ2VzKClcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXNlY29uZGFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiIHJvbGU9XCJhbGVydFwiPlxuICA8cCAqbmdJZj1cImFsZXJ0TWVzc2FnZXMuc3ViamVjdFwiPnt7YWxlcnRNZXNzYWdlcy5zdWJqZWN0fX0gPC9wPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtc2cgb2YgZ2V0QWxlcnRNZXNzYWdlcygpXCIgPlxuICAgIDxsYWJlbCAqbmdJZj1cInRlc3RWaXNpYmxlKG1zZylcIiA+e3ttc2cuY29udGVudH19PC9sYWJlbD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImhhc0FsZXJ0TWVzc2FnZXMoJ3N1Y2Nlc3MnKVwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtc3VjY2Vzc1wiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiIHJvbGU9XCJhbGVydFwiPlxuICA8cCAqbmdJZj1cImFsZXJ0TWVzc2FnZXMuc3ViamVjdFwiPnt7YWxlcnRNZXNzYWdlcy5zdWJqZWN0fX0gPC9wPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtc2cgb2YgZ2V0QWxlcnRNZXNzYWdlcygnc3VjY2VzcycpXCI+XG4gICAgPGxhYmVsICpuZ0lmPVwidGVzdFZpc2libGUobXNnKVwiPnt7bXNnLmNvbnRlbnR9fTwvbGFiZWw+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJoYXNBbGVydE1lc3NhZ2VzKCdpbmZvJylcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIiByb2xlPVwiYWxlcnRcIj5cbiAgPHAgKm5nSWY9XCJhbGVydE1lc3NhZ2VzLnN1YmplY3RcIj57e2FsZXJ0TWVzc2FnZXMuc3ViamVjdH19IDwvcD5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbXNnIG9mIGdldEFsZXJ0TWVzc2FnZXMoJ2luZm8nKVwiPlxuICAgIDxsYWJlbCAqbmdJZj1cInRlc3RWaXNpYmxlKG1zZylcIj57e21zZy5jb250ZW50fX08L2xhYmVsPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiaGFzQWxlcnRNZXNzYWdlcygnd2FybicpXCIgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nXCIgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7XCIgcm9sZT1cImFsZXJ0XCI+XG4gIDxwICpuZ0lmPVwiYWxlcnRNZXNzYWdlcy5zdWJqZWN0XCI+e3thbGVydE1lc3NhZ2VzLnN1YmplY3R9fSA8L3A+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1zZyBvZiBnZXRBbGVydE1lc3NhZ2VzKCd3YXJuJylcIj5cbiAgICA8bGFiZWwgKm5nSWY9XCJ0ZXN0VmlzaWJsZShtc2cpXCI+e3ttc2cuY29udGVudH19PC9sYWJlbD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImhhc0FsZXJ0TWVzc2FnZXMoJ2NyaXRpY2FsJylcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiIHJvbGU9XCJhbGVydFwiPlxuICA8cCAqbmdJZj1cImFsZXJ0TWVzc2FnZXMuc3ViamVjdFwiPnt7YWxlcnRNZXNzYWdlcy5zdWJqZWN0fX0gPC9wPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtc2cgb2YgZ2V0QWxlcnRNZXNzYWdlcygnY3JpdGljYWwnKVwiPlxuICAgIDxsYWJlbCAqbmdJZj1cInRlc3RWaXNpYmxlKG1zZylcIj57e21zZy5jb250ZW50fX08L2xhYmVsPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/button";
|
|
5
|
+
import * as i3 from "@angular/material/icon";
|
|
6
|
+
import * as i4 from "@angular/material/tooltip";
|
|
7
|
+
export class AttachComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.message = "Drag and drop files here";
|
|
10
|
+
this.files = [];
|
|
11
|
+
this.filesChange = new EventEmitter();
|
|
12
|
+
this.upload = new EventEmitter();
|
|
13
|
+
this.enableUpload = false;
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
}
|
|
17
|
+
onFileDropped($event) {
|
|
18
|
+
this.prepareFilesList($event);
|
|
19
|
+
}
|
|
20
|
+
fileBrowseHandler(event) {
|
|
21
|
+
let files = event.target.files;
|
|
22
|
+
this.prepareFilesList(files);
|
|
23
|
+
}
|
|
24
|
+
deleteFile(index) {
|
|
25
|
+
this.files.splice(index, 1);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Simulate the upload process
|
|
29
|
+
*/
|
|
30
|
+
// uploadFilesSimulator(index: number) {
|
|
31
|
+
// setTimeout(() => {
|
|
32
|
+
// if (index === this.files.length) {
|
|
33
|
+
// return;
|
|
34
|
+
// } else {
|
|
35
|
+
// const progressInterval = setInterval(() => {
|
|
36
|
+
// if (this.files[index].progress === 100) {
|
|
37
|
+
// clearInterval(progressInterval);
|
|
38
|
+
// this.uploadFilesSimulator(index + 1);
|
|
39
|
+
// } else {
|
|
40
|
+
// this.files[index].progress += 5;
|
|
41
|
+
// }
|
|
42
|
+
// }, 200);
|
|
43
|
+
// }
|
|
44
|
+
// }, 1000);
|
|
45
|
+
// }
|
|
46
|
+
prepareFilesList(files) {
|
|
47
|
+
for (const item of files) {
|
|
48
|
+
item.progress = 0;
|
|
49
|
+
this.files.push(item);
|
|
50
|
+
}
|
|
51
|
+
// this.uploadFilesSimulator(0);
|
|
52
|
+
}
|
|
53
|
+
formatBytes(bytes, decimals) {
|
|
54
|
+
if (bytes === 0) {
|
|
55
|
+
return '0 Bytes';
|
|
56
|
+
}
|
|
57
|
+
const k = 1024;
|
|
58
|
+
const dm = decimals <= 0 ? 0 : decimals || 2;
|
|
59
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
60
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
61
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
|
|
62
|
+
}
|
|
63
|
+
uploaded() {
|
|
64
|
+
this.upload.emit();
|
|
65
|
+
}
|
|
66
|
+
filesChanged() {
|
|
67
|
+
this.filesChange.emit(this.files);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
AttachComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AttachComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
AttachComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AttachComponent, selector: "spa-attach", inputs: { message: "message", files: "files", enableUpload: "enableUpload" }, outputs: { filesChange: "filesChange", upload: "upload" }, ngImport: i0, template: "<div class=\"tin-input-row\" style=\"width: 100%;\">\r\n\r\n <div class=\"col\">\r\n <div class=\"container\" appDnd (fileDropped)=\"onFileDropped($event)\">\r\n <input type=\"file\" #fileDropRef id=\"fileDropRef\" multiple (change)=\"fileBrowseHandler($event)\" />\r\n <h4>{{message}}</h4>\r\n\r\n <label for=\"fileDropRef\">Click to Browse</label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <div class=\"files-list \">\r\n <div class=\"single-file \" style=\"width: 100%;\" *ngFor=\"let file of files; let i = index\">\r\n\r\n <div class=\"tin-input-row info\" >\r\n <h4 class=\"name\">\r\n {{ file?.name }}\r\n </h4>\r\n <p class=\"size\">\r\n {{ formatBytes(file?.size, 2) }}\r\n </p>\r\n </div>\r\n\r\n <div class=\"delete\" (click)=\"deleteFile(i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"18\" viewBox=\"0 0 14 18\">\r\n <path fill=\"#B1B1B1\" fill-rule=\"nonzero\"\r\n d=\"M1 16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v10zm3.17-7.83a.996.996 0 0 1 1.41 0L7 9.59l1.42-1.42a.996.996 0 1 1 1.41 1.41L8.41 11l1.42 1.42a.996.996 0 1 1-1.41 1.41L7 12.41l-1.42 1.42a.996.996 0 1 1-1.41-1.41L5.59 11 4.17 9.58a.996.996 0 0 1 0-1.41zM10.5 1L9.79.29C9.61.11 9.35 0 9.09 0H4.91c-.26 0-.52.11-.7.29L3.5 1H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length > 0 && enableUpload\" class=\"tin-input-row d-flex justify-content-center\" style=\"width: 100%;\" >\r\n <button mat-button color=\"primary\" (click)=\"uploaded()\" matTooltip=\"Upload New Documents\" matTooltipPosition=\"above\" ><mat-icon>file_upload</mat-icon> Upload</button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", styles: [".container{width:100%;height:100px;padding-top:5px;text-align:center;border:dashed 2px #2a7b94;position:relative;margin:0 auto}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0}.container label{color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.container h3{font-size:20px;font-weight:600;color:#38424c}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{margin-top:1.5rem}.files-list .single-file{padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #1c824d;margin-bottom:1rem;margin-right:1rem;display:flex;flex-grow:1}.files-list .single-file .delete{display:flex;margin-left:.5rem;cursor:pointer;align-self:flex-end}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0;margin-left:1rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AttachComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{ selector: 'spa-attach', template: "<div class=\"tin-input-row\" style=\"width: 100%;\">\r\n\r\n <div class=\"col\">\r\n <div class=\"container\" appDnd (fileDropped)=\"onFileDropped($event)\">\r\n <input type=\"file\" #fileDropRef id=\"fileDropRef\" multiple (change)=\"fileBrowseHandler($event)\" />\r\n <h4>{{message}}</h4>\r\n\r\n <label for=\"fileDropRef\">Click to Browse</label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <div class=\"files-list \">\r\n <div class=\"single-file \" style=\"width: 100%;\" *ngFor=\"let file of files; let i = index\">\r\n\r\n <div class=\"tin-input-row info\" >\r\n <h4 class=\"name\">\r\n {{ file?.name }}\r\n </h4>\r\n <p class=\"size\">\r\n {{ formatBytes(file?.size, 2) }}\r\n </p>\r\n </div>\r\n\r\n <div class=\"delete\" (click)=\"deleteFile(i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"18\" viewBox=\"0 0 14 18\">\r\n <path fill=\"#B1B1B1\" fill-rule=\"nonzero\"\r\n d=\"M1 16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v10zm3.17-7.83a.996.996 0 0 1 1.41 0L7 9.59l1.42-1.42a.996.996 0 1 1 1.41 1.41L8.41 11l1.42 1.42a.996.996 0 1 1-1.41 1.41L7 12.41l-1.42 1.42a.996.996 0 1 1-1.41-1.41L5.59 11 4.17 9.58a.996.996 0 0 1 0-1.41zM10.5 1L9.79.29C9.61.11 9.35 0 9.09 0H4.91c-.26 0-.52.11-.7.29L3.5 1H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length > 0 && enableUpload\" class=\"tin-input-row d-flex justify-content-center\" style=\"width: 100%;\" >\r\n <button mat-button color=\"primary\" (click)=\"uploaded()\" matTooltip=\"Upload New Documents\" matTooltipPosition=\"above\" ><mat-icon>file_upload</mat-icon> Upload</button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", styles: [".container{width:100%;height:100px;padding-top:5px;text-align:center;border:dashed 2px #2a7b94;position:relative;margin:0 auto}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0}.container label{color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.container h3{font-size:20px;font-weight:600;color:#38424c}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{margin-top:1.5rem}.files-list .single-file{padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #1c824d;margin-bottom:1rem;margin-right:1rem;display:flex;flex-grow:1}.files-list .single-file .delete{display:flex;margin-left:.5rem;cursor:pointer;align-self:flex-end}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0;margin-left:1rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"] }]
|
|
75
|
+
}], ctorParameters: function () { return []; }, propDecorators: { message: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], files: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], filesChange: [{
|
|
80
|
+
type: Output
|
|
81
|
+
}], upload: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}], enableUpload: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}] } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL2F0dGFjaC9hdHRhY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYXR0YWNoL2F0dGFjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRL0UsTUFBTSxPQUFPLGVBQWU7SUFFMUI7UUFLUyxZQUFPLEdBQUcsMEJBQTBCLENBQUE7UUFDcEMsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHN0IsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFYZCxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBV0QsYUFBYSxDQUFDLE1BQU07UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFLO1FBQ3JCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBR0QsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILHdDQUF3QztJQUN4Qyx1QkFBdUI7SUFDdkIseUNBQXlDO0lBQ3pDLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YscURBQXFEO0lBQ3JELG9EQUFvRDtJQUNwRCw2Q0FBNkM7SUFDN0Msa0RBQWtEO0lBQ2xELG1CQUFtQjtJQUNuQiw2Q0FBNkM7SUFDN0MsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixRQUFRO0lBQ1IsY0FBYztJQUNkLElBQUk7SUFFSixnQkFBZ0IsQ0FBQyxLQUFpQjtRQUNoQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QjtRQUNELGdDQUFnQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRO1FBQ3pCLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNmLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxFQUFFLEdBQUcsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7NEdBM0VVLGVBQWU7Z0dBQWYsZUFBZSwyTENSNUIsNjNEQXVDQTsyRkQvQmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZOzBFQVdiLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBR0UsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1hdHRhY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSBcIkRyYWcgYW5kIGRyb3AgZmlsZXMgaGVyZVwiXHJcbiAgQElucHV0KCkgZmlsZXM6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIGZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB1cGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuICBASW5wdXQoKSBlbmFibGVVcGxvYWQgPSBmYWxzZTtcclxuXHJcblxyXG4gIG9uRmlsZURyb3BwZWQoJGV2ZW50KSB7XHJcbiAgICB0aGlzLnByZXBhcmVGaWxlc0xpc3QoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGZpbGVCcm93c2VIYW5kbGVyKGV2ZW50KSB7XHJcbiAgICBsZXQgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICB0aGlzLnByZXBhcmVGaWxlc0xpc3QoZmlsZXMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2ltdWxhdGUgdGhlIHVwbG9hZCBwcm9jZXNzXHJcbiAgICovXHJcbiAgLy8gdXBsb2FkRmlsZXNTaW11bGF0b3IoaW5kZXg6IG51bWJlcikge1xyXG4gIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgLy8gICAgIGlmIChpbmRleCA9PT0gdGhpcy5maWxlcy5sZW5ndGgpIHtcclxuICAvLyAgICAgICByZXR1cm47XHJcbiAgLy8gICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgY29uc3QgcHJvZ3Jlc3NJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAvLyAgICAgICAgIGlmICh0aGlzLmZpbGVzW2luZGV4XS5wcm9ncmVzcyA9PT0gMTAwKSB7XHJcbiAgLy8gICAgICAgICAgIGNsZWFySW50ZXJ2YWwocHJvZ3Jlc3NJbnRlcnZhbCk7XHJcbiAgLy8gICAgICAgICAgIHRoaXMudXBsb2FkRmlsZXNTaW11bGF0b3IoaW5kZXggKyAxKTtcclxuICAvLyAgICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuZmlsZXNbaW5kZXhdLnByb2dyZXNzICs9IDU7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfSwgMjAwKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSwgMTAwMCk7XHJcbiAgLy8gfVxyXG5cclxuICBwcmVwYXJlRmlsZXNMaXN0KGZpbGVzOiBBcnJheTxhbnk+KSB7XHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZmlsZXMpIHtcclxuICAgICAgaXRlbS5wcm9ncmVzcyA9IDA7XHJcbiAgICAgIHRoaXMuZmlsZXMucHVzaChpdGVtKTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMudXBsb2FkRmlsZXNTaW11bGF0b3IoMCk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRCeXRlcyhieXRlcywgZGVjaW1hbHMpIHtcclxuICAgIGlmIChieXRlcyA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gJzAgQnl0ZXMnO1xyXG4gICAgfVxyXG4gICAgY29uc3QgayA9IDEwMjQ7XHJcbiAgICBjb25zdCBkbSA9IGRlY2ltYWxzIDw9IDAgPyAwIDogZGVjaW1hbHMgfHwgMjtcclxuICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xyXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xyXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKSArICcgJyArIHNpemVzW2ldO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkZWQoKXtcclxuICAgIHRoaXMudXBsb2FkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGZpbGVzQ2hhbmdlZCgpe1xyXG4gICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHRoaXMuZmlsZXMpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGluLWlucHV0LXJvd1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBhcHBEbmQgKGZpbGVEcm9wcGVkKT1cIm9uRmlsZURyb3BwZWQoJGV2ZW50KVwiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZURyb3BSZWYgaWQ9XCJmaWxlRHJvcFJlZlwiIG11bHRpcGxlIChjaGFuZ2UpPVwiZmlsZUJyb3dzZUhhbmRsZXIoJGV2ZW50KVwiIC8+XHJcbiAgICAgIDxoND57e21lc3NhZ2V9fTwvaDQ+XHJcblxyXG4gICAgICA8bGFiZWwgZm9yPVwiZmlsZURyb3BSZWZcIj5DbGljayB0byBCcm93c2U8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWxlcy1saXN0IFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWZpbGUgXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGkgPSBpbmRleFwiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGluLWlucHV0LXJvdyBpbmZvXCIgPlxyXG4gICAgICAgICAgPGg0IGNsYXNzPVwibmFtZVwiPlxyXG4gICAgICAgICAgICB7eyBmaWxlPy5uYW1lIH19XHJcbiAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJzaXplXCI+XHJcbiAgICAgICAgICAgIHt7IGZvcm1hdEJ5dGVzKGZpbGU/LnNpemUsIDIpIH19XHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGVcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShpKVwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxNCAxOFwiPlxyXG4gICAgICAgICAgICA8cGF0aCBmaWxsPVwiI0IxQjFCMVwiIGZpbGwtcnVsZT1cIm5vbnplcm9cIlxyXG4gICAgICAgICAgICAgIGQ9XCJNMSAxNmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0yIC45LTIgMnYxMHptMy4xNy03LjgzYS45OTYuOTk2IDAgMCAxIDEuNDEgMEw3IDkuNTlsMS40Mi0xLjQyYS45OTYuOTk2IDAgMSAxIDEuNDEgMS40MUw4LjQxIDExbDEuNDIgMS40MmEuOTk2Ljk5NiAwIDEgMS0xLjQxIDEuNDFMNyAxMi40MWwtMS40MiAxLjQyYS45OTYuOTk2IDAgMSAxLTEuNDEtMS40MUw1LjU5IDExIDQuMTcgOS41OGEuOTk2Ljk5NiAwIDAgMSAwLTEuNDF6TTEwLjUgMUw5Ljc5LjI5QzkuNjEuMTEgOS4zNSAwIDkuMDkgMEg0LjkxYy0uMjYgMC0uNTIuMTEtLjcuMjlMMy41IDFIMWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtMi41elwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiZmlsZXMubGVuZ3RoID4gMCAmJiBlbmFibGVVcGxvYWRcIiBjbGFzcz1cInRpbi1pbnB1dC1yb3cgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiID5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ1cGxvYWRlZCgpXCIgbWF0VG9vbHRpcD1cIlVwbG9hZCBOZXcgRG9jdW1lbnRzXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiAgPjxtYXQtaWNvbj5maWxlX3VwbG9hZDwvbWF0LWljb24+IFVwbG9hZDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BugComponent {
|
|
4
|
+
constructor() { }
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
BugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BugComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
BugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BugComponent, selector: "spa-bug", ngImport: i0, template: "<p>Report a fault</p>\n", styles: [""] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BugComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'spa-bug', template: "<p>Report a fault</p>\n" }]
|
|
13
|
+
}], ctorParameters: function () { return []; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL2J1Zy9idWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYnVnL2J1Zy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQU9sRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7eUdBTFUsWUFBWTs2RkFBWixZQUFZLCtDQ1B6Qix5QkFDQTsyRkRNYSxZQUFZO2tCQUx4QixTQUFTOytCQUNFLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcGEtYnVnJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1Zy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2J1Zy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnVnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiIsIjxwPlJlcG9ydCBhIGZhdWx0PC9wPlxuIl19
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { ChangeUserPassword } from './../../classes/Classes';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "../../services/http.service";
|
|
7
|
+
import * as i4 from "../../services/message.service";
|
|
8
|
+
import * as i5 from "../../services/datalib.service";
|
|
9
|
+
import * as i6 from "../../services/auth.service";
|
|
10
|
+
import * as i7 from "@angular/material/button";
|
|
11
|
+
import * as i8 from "../text/text.component";
|
|
12
|
+
export class ChangePasswordComponent {
|
|
13
|
+
constructor(router, location, httpService, messageService, dataService, authService, route) {
|
|
14
|
+
this.router = router;
|
|
15
|
+
this.location = location;
|
|
16
|
+
this.httpService = httpService;
|
|
17
|
+
this.messageService = messageService;
|
|
18
|
+
this.dataService = dataService;
|
|
19
|
+
this.authService = authService;
|
|
20
|
+
this.route = route;
|
|
21
|
+
this.isProcessing = false;
|
|
22
|
+
this.changePassword = new ChangeUserPassword();
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.myRole = this.authService.currentRoleSource.value;
|
|
26
|
+
if (this.dataService.tmpProfileuserName == "") {
|
|
27
|
+
this.changePassword.userName = this.authService.currentUser;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.changePassword.userName = this.dataService.tmpProfileuserName;
|
|
31
|
+
this.dataService.tmpProfileuserName = "";
|
|
32
|
+
}
|
|
33
|
+
if (this.route.snapshot.queryParams["redirectTo"] != undefined) {
|
|
34
|
+
this.redirectPath = this.route.snapshot.queryParams["redirectTo"];
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.redirectPath = "home";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
change() {
|
|
41
|
+
if (!this.myRole[this.dataService.capUsers.name]) {
|
|
42
|
+
if (this.changePassword.currentPassword == "") {
|
|
43
|
+
this.messageService.toast("Please enter current Password");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (this.changePassword.newPassword == "") {
|
|
48
|
+
this.messageService.toast("Please enter new Password");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (this.changePassword.confirmPassword == "") {
|
|
52
|
+
this.messageService.toast("Please confirm new Password");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (this.changePassword.confirmPassword != this.changePassword.newPassword) {
|
|
56
|
+
this.messageService.toast("Passwords do not match");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.isProcessing = true;
|
|
60
|
+
if (this.myRole[this.dataService.capUsers.name]) {
|
|
61
|
+
this.dataService.ChangePasswordAdmin(this.changePassword).subscribe((apiResponse) => {
|
|
62
|
+
this.isProcessing = false;
|
|
63
|
+
if (apiResponse.message == "success") {
|
|
64
|
+
this.messageService.toast("Password Changed");
|
|
65
|
+
this.router.navigate([this.redirectPath]);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.messageService.toast("Error: " + apiResponse.message);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.dataService.ChangePassword(this.changePassword).subscribe((apiResponse) => {
|
|
74
|
+
this.isProcessing = false;
|
|
75
|
+
if (apiResponse.message == "success") {
|
|
76
|
+
this.messageService.toast("Password Changed");
|
|
77
|
+
this.router.navigate([this.redirectPath]);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this.messageService.toast("Error: " + apiResponse.message);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
ChangePasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: i1.Router }, { token: i2.Location }, { token: i3.HttpService }, { token: i4.MessageService }, { token: i5.DataServiceLib }, { token: i6.AuthService }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
+
ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ChangePasswordComponent, selector: "spa-change-password", ngImport: i0, template: "<h4>Change Password</h4>\r\n<hr>\r\n\r\n\r\n<div class=\"container tin-grid\" style=\"font-size:14px;\">\r\n\r\n <div class=\"fill\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" type=\"password\"></spa-text>\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n\r\n </div>\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!-- <div class=\"container\">\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" >\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"tin-input \" style=\"font-size:14px;\">\r\n\r\n <div class=\"col\" *ngIf=\"changePassword.userName!=''\">\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" width=\"300px\" [readonly]=\"true\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\" *ngIf=\"!myRole[dataService.capUsers.name]\">\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col mt-3\">\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div> -->\r\n\r\n", styles: [""], dependencies: [{ kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }] });
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChangePasswordComponent, decorators: [{
|
|
89
|
+
type: Component,
|
|
90
|
+
args: [{ selector: 'spa-change-password', template: "<h4>Change Password</h4>\r\n<hr>\r\n\r\n\r\n<div class=\"container tin-grid\" style=\"font-size:14px;\">\r\n\r\n <div class=\"fill\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" type=\"password\"></spa-text>\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n\r\n </div>\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!-- <div class=\"container\">\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" >\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"tin-input \" style=\"font-size:14px;\">\r\n\r\n <div class=\"col\" *ngIf=\"changePassword.userName!=''\">\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" width=\"300px\" [readonly]=\"true\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\" *ngIf=\"!myRole[dataService.capUsers.name]\">\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col mt-3\">\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div> -->\r\n\r\n" }]
|
|
91
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.Location }, { type: i3.HttpService }, { type: i4.MessageService }, { type: i5.DataServiceLib }, { type: i6.AuthService }, { type: i1.ActivatedRoute }]; } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBYWxELE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFBbUIsTUFBYyxFQUFVLFFBQWtCLEVBQVUsV0FBd0IsRUFBVSxjQUE4QixFQUFTLFdBQTJCLEVBQVUsV0FBd0IsRUFBVSxLQUFxQjtRQUF6TixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQXVCNU8saUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUF4QnNNLENBQUM7SUFFalAsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUE7UUFFdEQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFFLEVBQUUsRUFBQztZQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztTQUU3RDthQUFJO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztZQUNuRSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztTQUMxQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLFNBQVMsRUFBRTtZQUM5RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtTQUNsRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUE7U0FDM0I7SUFFSCxDQUFDO0lBT00sTUFBTTtRQUVYLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFDO1lBQy9DLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLElBQUksRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2dCQUMzRCxPQUFPO2FBQ1I7U0FDRjtRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDdkQsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUN6RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFHO1lBQzNFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDcEQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFDO1lBRzlDLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtnQkFDL0YsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBRTFCLElBQUksV0FBVyxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBRTlDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7aUJBRTNDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzVEO1lBQ0gsQ0FBQyxDQUNBLENBQUM7U0FFSDthQUFJO1lBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtnQkFDMUYsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBRTFCLElBQUksV0FBVyxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBRTlDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7aUJBQzNDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzVEO1lBQ0gsQ0FBQyxDQUNBLENBQUM7U0FFSDtJQUNILENBQUM7O29IQXZGVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyRENmcEMsMG1HQW9GQTsyRkRyRWEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDaGFuZ2VVc2VyUGFzc3dvcmQsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi8uLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1jaGFuZ2UtcGFzc3dvcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENoYW5nZVBhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubXlSb2xlID0gdGhpcy5hdXRoU2VydmljZS5jdXJyZW50Um9sZVNvdXJjZS52YWx1ZVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGFTZXJ2aWNlLnRtcFByb2ZpbGV1c2VyTmFtZT09XCJcIil7XHJcbiAgICAgIHRoaXMuY2hhbmdlUGFzc3dvcmQudXNlck5hbWUgPSB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyO1xyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNoYW5nZVBhc3N3b3JkLnVzZXJOYW1lID0gdGhpcy5kYXRhU2VydmljZS50bXBQcm9maWxldXNlck5hbWU7XHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UudG1wUHJvZmlsZXVzZXJOYW1lID0gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcInJlZGlyZWN0VG9cIl0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMucmVkaXJlY3RQYXRoID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcInJlZGlyZWN0VG9cIl1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVkaXJlY3RQYXRoID0gXCJob21lXCJcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBteVJvbGU7XHJcbiAgcmVkaXJlY3RQYXRoXHJcbiAgaXNQcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2hhbmdlUGFzc3dvcmQgPSBuZXcgQ2hhbmdlVXNlclBhc3N3b3JkKCk7XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2UoKSB7XHJcblxyXG4gICAgaWYgKCF0aGlzLm15Um9sZVt0aGlzLmRhdGFTZXJ2aWNlLmNhcFVzZXJzLm5hbWVdKXtcclxuICAgICAgaWYgKHRoaXMuY2hhbmdlUGFzc3dvcmQuY3VycmVudFBhc3N3b3JkID09IFwiXCIpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIGVudGVyIGN1cnJlbnQgUGFzc3dvcmRcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY2hhbmdlUGFzc3dvcmQubmV3UGFzc3dvcmQgPT0gXCJcIikge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIGVudGVyIG5ldyBQYXNzd29yZFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNoYW5nZVBhc3N3b3JkLmNvbmZpcm1QYXNzd29yZCA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgY29uZmlybSBuZXcgUGFzc3dvcmRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jaGFuZ2VQYXNzd29yZC5jb25maXJtUGFzc3dvcmQgIT0gdGhpcy5jaGFuZ2VQYXNzd29yZC5uZXdQYXNzd29yZCApIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBhc3N3b3JkcyBkbyBub3QgbWF0Y2hcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMubXlSb2xlW3RoaXMuZGF0YVNlcnZpY2UuY2FwVXNlcnMubmFtZV0pe1xyXG5cclxuXHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2hhbmdlUGFzc3dvcmRBZG1pbih0aGlzLmNoYW5nZVBhc3N3b3JkKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmIChhcGlSZXNwb25zZS5tZXNzYWdlID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGFzc3dvcmQgQ2hhbmdlZFwiKTtcclxuXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5yZWRpcmVjdFBhdGhdKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICB9ZWxzZXtcclxuXHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2hhbmdlUGFzc3dvcmQodGhpcy5jaGFuZ2VQYXNzd29yZCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAoYXBpUmVzcG9uc2UubWVzc2FnZSA9PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBhc3N3b3JkIENoYW5nZWRcIik7XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucmVkaXJlY3RQYXRoXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxoND5DaGFuZ2UgUGFzc3dvcmQ8L2g0PlxyXG48aHI+XHJcblxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciB0aW4tZ3JpZFwiIHN0eWxlPVwiZm9udC1zaXplOjE0cHg7XCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmaWxsXCI+XHJcblxyXG4gICAgPHNwYS10ZXh0IGlkPVwidHh0dXNlck5hbWVcIiBkaXNwbGF5PVwiVXNlcm5hbWVcIiBbKHZhbHVlKV09XCJjaGFuZ2VQYXNzd29yZC51c2VyTmFtZVwiICBbcmVhZG9ubHldPVwidHJ1ZVwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXRleHQgaWQ9XCJ0eHRQYXNzd29yZFwiIGRpc3BsYXk9XCJDdXJyZW50IFBhc3N3b3JkXCIgWyh2YWx1ZSldPVwiY2hhbmdlUGFzc3dvcmQuY3VycmVudFBhc3N3b3JkXCIgIHR5cGU9XCJwYXNzd29yZFwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXRleHQgaWQ9XCJ0eHROZXdQYXNzd29yZFwiIGRpc3BsYXk9XCJOZXcgUGFzc3dvcmRcIiBbKHZhbHVlKV09XCJjaGFuZ2VQYXNzd29yZC5uZXdQYXNzd29yZFwiIHR5cGU9XCJwYXNzd29yZFwiPjwvc3BhLXRleHQ+XHJcbiAgICA8c3BhLXRleHQgaWQ9XCJ0eHRDb25maXJtUGFzc3dvcmRcIiBkaXNwbGF5PVwiQ29uZmlybSBQYXNzd29yZFwiIFsodmFsdWUpXT1cImNoYW5nZVBhc3N3b3JkLmNvbmZpcm1QYXNzd29yZFwiICB0eXBlPVwicGFzc3dvcmRcIj48L3NwYS10ZXh0PlxyXG4gICAgPGJ1dHRvbiBpZD1cImJ0bkNoYW5nZVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjaGFuZ2UoKVwiIGNka0ZvY3VzSW5pdGlhbD5DaGFuZ2U8L2J1dHRvbj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiIHJvbGU9XCJhbGVydFwiPlxyXG4gICAgICAgIDxiPipQbGVhc2UgY29uc2lkZXIgdGhlc2UgcmVxdWlyZW1lbnRzIGZvciB5b3VyIG5ldyBwYXNzd29yZC48L2I+IDxicj48YnI+XHJcblxyXG4gICAgICAgIEF0IGxlYXN0IDggY2hhcmFjdGVyczxicj5cclxuICAgICAgICBBdCBsZWFzdCAxIHVwcGVyY2FzZSBsZXR0ZXIgKEEtWik8YnI+XHJcbiAgICAgICAgQXQgbGVhc3QgMiBsb3dlcmNhc2UgbGV0dGVycyAoYS16KTxicj5cclxuICAgICAgICBBdCBsZWFzdCAxIGRpZ2l0ICgwLTkpPGJyPlxyXG4gICAgICAgIEF0IGxlYXN0IDEgc3BlY2lhbCBjaGFyYWN0ZXIgKH5gISDigKYpPGJyPlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG48IS0tIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiA+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpbi1pbnB1dCBcIiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4O1wiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCIgKm5nSWY9XCJjaGFuZ2VQYXNzd29yZC51c2VyTmFtZSE9JydcIj5cclxuICAgICAgICAgIDxzcGEtdGV4dCBpZD1cInR4dHVzZXJOYW1lXCIgZGlzcGxheT1cIlVzZXJuYW1lXCIgWyh2YWx1ZSldPVwiY2hhbmdlUGFzc3dvcmQudXNlck5hbWVcIiB3aWR0aD1cIjMwMHB4XCIgW3JlYWRvbmx5XT1cInRydWVcIj48L3NwYS10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCIgKm5nSWY9XCIhbXlSb2xlW2RhdGFTZXJ2aWNlLmNhcFVzZXJzLm5hbWVdXCI+XHJcbiAgICAgICAgICA8c3BhLXRleHQgaWQ9XCJ0eHRQYXNzd29yZFwiIGRpc3BsYXk9XCJDdXJyZW50IFBhc3N3b3JkXCIgWyh2YWx1ZSldPVwiY2hhbmdlUGFzc3dvcmQuY3VycmVudFBhc3N3b3JkXCIgd2lkdGg9XCIzMDBweFwiIHR5cGU9XCJwYXNzd29yZFwiPjwvc3BhLXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgIDxzcGEtdGV4dCBpZD1cInR4dE5ld1Bhc3N3b3JkXCIgZGlzcGxheT1cIk5ldyBQYXNzd29yZFwiIFsodmFsdWUpXT1cImNoYW5nZVBhc3N3b3JkLm5ld1Bhc3N3b3JkXCIgd2lkdGg9XCIzMDBweFwiIHR5cGU9XCJwYXNzd29yZFwiPjwvc3BhLXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICA8c3BhLXRleHQgaWQ9XCJ0eHRDb25maXJtUGFzc3dvcmRcIiBkaXNwbGF5PVwiQ29uZmlybSBQYXNzd29yZFwiIFsodmFsdWUpXT1cImNoYW5nZVBhc3N3b3JkLmNvbmZpcm1QYXNzd29yZFwiIHdpZHRoPVwiMzAwcHhcIiB0eXBlPVwicGFzc3dvcmRcIj48L3NwYS10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIG10LTNcIj5cclxuICAgICAgICAgIDxidXR0b24gaWQ9XCJidG5DaGFuZ2VcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2hhbmdlKClcIiBjZGtGb2N1c0luaXRpYWw+Q2hhbmdlPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiIHJvbGU9XCJhbGVydFwiPlxyXG4gICAgICAgIDxiPipQbGVhc2UgY29uc2lkZXIgdGhlc2UgcmVxdWlyZW1lbnRzIGZvciB5b3VyIG5ldyBwYXNzd29yZC48L2I+IDxicj48YnI+XHJcblxyXG4gICAgICAgIEF0IGxlYXN0IDggY2hhcmFjdGVyczxicj5cclxuICAgICAgICBBdCBsZWFzdCAxIHVwcGVyY2FzZSBsZXR0ZXIgKEEtWik8YnI+XHJcbiAgICAgICAgQXQgbGVhc3QgMiBsb3dlcmNhc2UgbGV0dGVycyAoYS16KTxicj5cclxuICAgICAgICBBdCBsZWFzdCAxIGRpZ2l0ICgwLTkpPGJyPlxyXG4gICAgICAgIEF0IGxlYXN0IDEgc3BlY2lhbCBjaGFyYWN0ZXIgKH5gISDigKYpPGJyPlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+IC0tPlxyXG5cclxuIl19
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/message.service";
|
|
4
|
+
import * as i2 from "@angular/forms";
|
|
5
|
+
import * as i3 from "@angular/material/checkbox";
|
|
6
|
+
export class CheckComponent {
|
|
7
|
+
constructor(messageService) {
|
|
8
|
+
this.messageService = messageService;
|
|
9
|
+
this.readonly = false;
|
|
10
|
+
this.display = "";
|
|
11
|
+
this.value = false;
|
|
12
|
+
this.valueChange = new EventEmitter();
|
|
13
|
+
this.click = new EventEmitter();
|
|
14
|
+
this.check = new EventEmitter();
|
|
15
|
+
this.uncheck = new EventEmitter();
|
|
16
|
+
this.infoClick = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
}
|
|
20
|
+
changed() {
|
|
21
|
+
this.valueChange.emit(this.value);
|
|
22
|
+
}
|
|
23
|
+
clicked() {
|
|
24
|
+
this.click.emit();
|
|
25
|
+
if (!this.value) {
|
|
26
|
+
this.checked();
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.unchecked();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
checked() {
|
|
33
|
+
this.check.emit();
|
|
34
|
+
}
|
|
35
|
+
unchecked() {
|
|
36
|
+
this.uncheck.emit();
|
|
37
|
+
}
|
|
38
|
+
onInfoClick(event) {
|
|
39
|
+
event.stopPropagation();
|
|
40
|
+
this.infoClick.emit();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
CheckComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CheckComponent, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
CheckComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CheckComponent, selector: "spa-check", inputs: { readonly: "readonly", display: "display", value: "value", infoMessage: "infoMessage" }, outputs: { valueChange: "valueChange", click: "click", check: "check", uncheck: "uncheck", infoClick: "infoClick" }, ngImport: i0, template: "\r\n\r\n<mat-checkbox color=\"primary\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n\r\n<!-- <div class=\"suffix-icons\">\r\n\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n\r\n <mat-icon *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\" style=\"color: steelblue;font-size: 15px;margin-left: 5px;margin-top: 8px;\">info</mat-icon>\r\n\r\n</div> -->\r\n\r\n", styles: [".suffix-icons{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CheckComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{ selector: 'spa-check', template: "\r\n\r\n<mat-checkbox color=\"primary\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n\r\n<!-- <div class=\"suffix-icons\">\r\n\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n\r\n <mat-icon *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\" style=\"color: steelblue;font-size: 15px;margin-left: 5px;margin-top: 8px;\">info</mat-icon>\r\n\r\n</div> -->\r\n\r\n", styles: [".suffix-icons{display:flex;align-items:center}\n"] }]
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i1.MessageService }]; }, propDecorators: { readonly: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], display: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], value: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], valueChange: [{
|
|
55
|
+
type: Output
|
|
56
|
+
}], click: [{
|
|
57
|
+
type: Output
|
|
58
|
+
}], check: [{
|
|
59
|
+
type: Output
|
|
60
|
+
}], uncheck: [{
|
|
61
|
+
type: Output
|
|
62
|
+
}], infoMessage: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], infoClick: [{
|
|
65
|
+
type: Output
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2svY2hlY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2svY2hlY2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTL0UsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBS3pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDYixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHN0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFkUSxDQUFDO0lBRXhELFFBQVE7SUFDUixDQUFDO0lBYUQsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEIsSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUM7WUFDYixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7YUFBSTtZQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV4QixDQUFDOzsyR0EzQ1UsY0FBYzsrRkFBZCxjQUFjLHdRQ1QzQix3bEJBWUE7MkZESGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxXQUFXO3FHQVdaLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFFRSxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1jaGVjaycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVjay5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hlY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHVuY2hlY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIGluZm9NZXNzYWdlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGluZm9DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgY2hhbmdlZCgpe1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tlZCgpe1xyXG4gICAgdGhpcy5jbGljay5lbWl0KCk7XHJcblxyXG4gICAgaWYoIXRoaXMudmFsdWUpe1xyXG4gICAgICB0aGlzLmNoZWNrZWQoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnVuY2hlY2tlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tlZCgpe1xyXG4gICAgdGhpcy5jaGVjay5lbWl0KCk7XHJcbiAgfVxyXG4gIHVuY2hlY2tlZCgpe1xyXG4gICAgdGhpcy51bmNoZWNrLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uSW5mb0NsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuaW5mb0NsaWNrLmVtaXQoKTtcclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuXHJcbjxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChjaGFuZ2UpPVwiY2hhbmdlZCgpXCIgKGNsaWNrKT1cImNsaWNrZWQoKVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPnt7ZGlzcGxheX19PC9tYXQtY2hlY2tib3g+XHJcblxyXG48IS0tIDxkaXYgY2xhc3M9XCJzdWZmaXgtaWNvbnNcIj5cclxuXHJcbiAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJjaGFuZ2VkKClcIiAoY2xpY2spPVwiY2xpY2tlZCgpXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCI+e3tkaXNwbGF5fX08L21hdC1jaGVja2JveD5cclxuXHJcbiAgPG1hdC1pY29uICpuZ0lmPVwiaW5mb01lc3NhZ2VcIiAoY2xpY2spPVwib25JbmZvQ2xpY2soJGV2ZW50KVwiIG1hdFRvb2x0aXA9XCJJbmZvXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBzdHlsZT1cImNvbG9yOiBzdGVlbGJsdWU7Zm9udC1zaXplOiAxNXB4O21hcmdpbi1sZWZ0OiA1cHg7bWFyZ2luLXRvcDogOHB4O1wiPmluZm88L21hdC1pY29uPlxyXG5cclxuPC9kaXY+IC0tPlxyXG5cclxuIl19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/message.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/icon";
|
|
6
|
+
import * as i4 from "@angular/material/chips";
|
|
7
|
+
export class ChipsComponent {
|
|
8
|
+
constructor(messageService) {
|
|
9
|
+
this.messageService = messageService;
|
|
10
|
+
this.icon = "";
|
|
11
|
+
this.removable = false;
|
|
12
|
+
this.addable = false;
|
|
13
|
+
// @Output() chipClick = new EventEmitter();
|
|
14
|
+
this.click = new EventEmitter();
|
|
15
|
+
this.remove = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
}
|
|
19
|
+
clicked(chip) {
|
|
20
|
+
if (typeof chip != 'string') {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (chip) {
|
|
24
|
+
this.click.emit(chip);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
removed(chip) {
|
|
28
|
+
// const index = this.chips.indexOf(chip);
|
|
29
|
+
// if (index >= 0) {
|
|
30
|
+
// this.chips.splice(index, 1);
|
|
31
|
+
// }
|
|
32
|
+
this.messageService.confirm(`Remove ${chip} ?`).subscribe((result) => {
|
|
33
|
+
if (result == "yes") {
|
|
34
|
+
this.remove.emit(chip);
|
|
35
|
+
}
|
|
36
|
+
;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
ChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChipsComponent, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
ChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ChipsComponent, selector: "spa-chips", inputs: { icon: "icon", removable: "removable", addable: "addable", chips: "chips" }, outputs: { click: "click", remove: "remove" }, ngImport: i0, template: "\r\n\r\n\r\n<div class=\"row mt-1\" style=\"margin-left: 1em;\">\r\n <mat-chip-list #chipList>\r\n <mat-chip *ngFor=\"let chip of chips let i = index\" selectable [removable]=\"removable\" style=\"font-size: 12px;\" [ngStyle]=\"{'padding-right': removable ? '5px':'12px'}\" (click)=\"clicked(chip)\">\r\n <mat-icon *ngIf=\"icon != ''\" color=\"primary\" style=\"font-size: 22px;\">{{icon}}</mat-icon>\r\n\r\n {{chip}}\r\n\r\n <mat-icon *ngIf=\"removable\" style=\"font-size: 20px; margin-left: 5px;margin-top: 3px;margin-right: 0px; color: grey;\" (click)=\"removed(chip)\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</div>\r\n\r\n\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }] });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChipsComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'spa-chips', template: "\r\n\r\n\r\n<div class=\"row mt-1\" style=\"margin-left: 1em;\">\r\n <mat-chip-list #chipList>\r\n <mat-chip *ngFor=\"let chip of chips let i = index\" selectable [removable]=\"removable\" style=\"font-size: 12px;\" [ngStyle]=\"{'padding-right': removable ? '5px':'12px'}\" (click)=\"clicked(chip)\">\r\n <mat-icon *ngIf=\"icon != ''\" color=\"primary\" style=\"font-size: 22px;\">{{icon}}</mat-icon>\r\n\r\n {{chip}}\r\n\r\n <mat-icon *ngIf=\"removable\" style=\"font-size: 20px; margin-left: 5px;margin-top: 3px;margin-right: 0px; color: grey;\" (click)=\"removed(chip)\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</div>\r\n\r\n\r\n\r\n" }]
|
|
45
|
+
}], ctorParameters: function () { return [{ type: i1.MessageService }]; }, propDecorators: { icon: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], removable: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], addable: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], chips: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], click: [{
|
|
54
|
+
type: Output
|
|
55
|
+
}], remove: [{
|
|
56
|
+
type: Output
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2hpcHMvY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2hpcHMvY2hpcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBTy9FLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQU96QyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBS3pCLDRDQUE0QztRQUVsQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWxCZ0IsQ0FBQztJQUd2RCxRQUFRO0lBQ1IsQ0FBQztJQWdCRCxPQUFPLENBQUMsSUFBWTtRQUVsQixJQUFJLE9BQU8sSUFBSSxJQUFJLFFBQVEsRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUdELE9BQU8sQ0FBQyxJQUFJO1FBRVYsMENBQTBDO1FBRTFDLG9CQUFvQjtRQUNwQixpQ0FBaUM7UUFDakMsSUFBSTtRQUVKLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNuRSxJQUFJLE1BQU0sSUFBSSxLQUFLLEVBQUU7Z0JBRW5CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBRXhCO1lBQUEsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQzs7MkdBbERVLGNBQWM7K0ZBQWQsY0FBYyxzTENQM0Isd3FCQWlCQTsyRkRWYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVc7cUdBYVosSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxLQUFLO3NCQUFkLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWNoaXBzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoaXBzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hpcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkgeyB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBpY29uID0gXCJcIjtcclxuICBASW5wdXQoKSByZW1vdmFibGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhZGRhYmxlID0gZmFsc2U7XHJcblxyXG5cclxuXHJcbiAgQElucHV0KCkgY2hpcHM6IHN0cmluZ1tdO1xyXG4gIC8vIEBPdXRwdXQoKSBjaGlwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY2xpY2tlZChjaGlwOiBzdHJpbmcpIHtcclxuXHJcbiAgICBpZiAodHlwZW9mIGNoaXAgIT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGlwKSB7XHJcbiAgICAgIHRoaXMuY2xpY2suZW1pdChjaGlwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICByZW1vdmVkKGNoaXApIHtcclxuXHJcbiAgICAvLyBjb25zdCBpbmRleCA9IHRoaXMuY2hpcHMuaW5kZXhPZihjaGlwKTtcclxuXHJcbiAgICAvLyBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgLy8gICB0aGlzLmNoaXBzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jb25maXJtKGBSZW1vdmUgJHtjaGlwfSA/YCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCA9PSBcInllc1wiKSB7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlLmVtaXQoY2hpcCk7XHJcblxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiIsIlxyXG5cclxuXHJcbjxkaXYgY2xhc3M9XCJyb3cgIG10LTFcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxZW07XCI+XHJcbiAgPG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0PlxyXG4gICAgPG1hdC1jaGlwICpuZ0Zvcj1cImxldCBjaGlwIG9mIGNoaXBzIGxldCBpID0gaW5kZXhcIiBzZWxlY3RhYmxlIFtyZW1vdmFibGVdPVwicmVtb3ZhYmxlXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgW25nU3R5bGVdPVwieydwYWRkaW5nLXJpZ2h0JzogcmVtb3ZhYmxlID8gJzVweCc6JzEycHgnfVwiIChjbGljayk9XCJjbGlja2VkKGNoaXApXCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb24gIT0gJydcIiBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMjJweDtcIj57e2ljb259fTwvbWF0LWljb24+XHJcblxyXG4gICAgICB7e2NoaXB9fVxyXG5cclxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwicmVtb3ZhYmxlXCIgc3R5bGU9XCJmb250LXNpemU6IDIwcHg7IG1hcmdpbi1sZWZ0OiA1cHg7bWFyZ2luLXRvcDogM3B4O21hcmdpbi1yaWdodDogMHB4OyBjb2xvcjogZ3JleTtcIiAoY2xpY2spPVwicmVtb3ZlZChjaGlwKVwiPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICA8L21hdC1jaGlwPlxyXG4gIDwvbWF0LWNoaXAtbGlzdD5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcbiJdfQ==
|