@trudb/tru-common-lib 0.0.310 → 0.0.313
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/esm2020/lib/base-classes/tru-edit-control-config-base.mjs +1 -1
- package/esm2020/lib/components/login/classes/tru-auth-config.mjs +8 -0
- package/esm2020/lib/components/login/classes/tru-auth-jwt-strategy.mjs +39 -0
- package/esm2020/lib/components/login/classes/tru-auth-login-request.mjs +3 -0
- package/esm2020/lib/components/login/classes/tru-auth-token.mjs +6 -0
- package/esm2020/lib/components/login/services/tru-auth-cache.mjs +19 -0
- package/esm2020/lib/components/login/services/tru-auth-interceptor.mjs +39 -0
- package/esm2020/lib/components/login/services/tru-auth.mjs +66 -0
- package/esm2020/lib/components/login/tru-login-module.mjs +20 -0
- package/esm2020/lib/components/login/tru-login.mjs +54 -0
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/trudb-tru-common-lib.mjs +415 -15
- package/fesm2015/trudb-tru-common-lib.mjs.map +1 -1
- package/fesm2020/trudb-tru-common-lib.mjs +411 -15
- package/fesm2020/trudb-tru-common-lib.mjs.map +1 -1
- package/lib/base-classes/tru-edit-control-config-base.d.ts +0 -1
- package/lib/components/login/classes/tru-auth-config.d.ts +16 -0
- package/lib/components/login/classes/tru-auth-jwt-strategy.d.ts +13 -0
- package/lib/components/login/classes/tru-auth-login-request.d.ts +4 -0
- package/lib/components/login/classes/tru-auth-token.d.ts +4 -0
- package/lib/components/login/services/tru-auth-cache.d.ts +11 -0
- package/lib/components/login/services/tru-auth-interceptor.d.ts +14 -0
- package/lib/components/login/services/tru-auth.d.ts +26 -0
- package/lib/components/login/tru-login-module.d.ts +10 -0
- package/lib/components/login/tru-login.d.ts +19 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { EntityAspect, BinaryPredicate, AndOrPredicate, breeze, MetadataStore, DataService, EntityManager, EntityQuery, FetchStrategy, EntityState } from 'breeze-client';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Directive, Input, Component, NgModule, Injectable, Inject, HostListener, EventEmitter, ViewEncapsulation, Output, APP_INITIALIZER } from '@angular/core';
|
|
3
|
+
import { Directive, Input, Component, NgModule, Injectable, Inject, HostListener, EventEmitter, ViewEncapsulation, Output, APP_INITIALIZER, InjectionToken } from '@angular/core';
|
|
4
4
|
import * as i1$3 from '@angular/common';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
|
-
import * as
|
|
7
|
-
import { FormsModule } from '@angular/forms';
|
|
8
|
-
import { Subject, BehaviorSubject, defer, from, of, skip, forkJoin } from 'rxjs';
|
|
6
|
+
import * as i7 from '@angular/forms';
|
|
7
|
+
import { FormsModule, FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
8
|
+
import { Subject, BehaviorSubject, defer, from, of, skip, forkJoin, throwError } from 'rxjs';
|
|
9
9
|
import * as _ from 'underscore';
|
|
10
10
|
import moment from 'moment/moment';
|
|
11
11
|
import * as i1 from '@angular/material/dialog';
|
|
12
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
12
|
+
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
13
13
|
import * as i1$2 from '@angular/common/http';
|
|
14
14
|
import { HttpClientModule } from '@angular/common/http';
|
|
15
15
|
import * as i3 from '@angular/material/checkbox';
|
|
@@ -17,18 +17,60 @@ import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
|
17
17
|
import * as i1$1 from 'ngx-toastr';
|
|
18
18
|
import * as i6 from 'ag-grid-angular';
|
|
19
19
|
import { AgGridModule } from 'ag-grid-angular';
|
|
20
|
-
import * as i2
|
|
20
|
+
import * as i2 from '@angular/material/icon';
|
|
21
21
|
import { MatIconModule } from '@angular/material/icon';
|
|
22
22
|
import * as i3$1 from '@angular/material/form-field';
|
|
23
23
|
import * as i1$4 from '@angular/material/select';
|
|
24
24
|
import { MatSelectModule } from '@angular/material/select';
|
|
25
25
|
import * as i5 from '@angular/material/core';
|
|
26
|
-
import { MatOptionModule } from '@angular/material/core';
|
|
26
|
+
import { MatOptionModule, MatNativeDateModule, MatRippleModule } from '@angular/material/core';
|
|
27
|
+
import * as i3$2 from '@angular/material/button';
|
|
27
28
|
import { MatButtonModule } from '@angular/material/button';
|
|
29
|
+
import * as i5$1 from '@angular/material/input';
|
|
28
30
|
import { MatInputModule } from '@angular/material/input';
|
|
29
|
-
import * as i1$
|
|
31
|
+
import * as i1$6 from '@angular/platform-browser';
|
|
30
32
|
import { BrowserModule } from '@angular/platform-browser';
|
|
31
33
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
34
|
+
import { tap, map, catchError } from 'rxjs/operators';
|
|
35
|
+
import * as i1$5 from '@angular/router';
|
|
36
|
+
import * as i4 from '@angular/material/card';
|
|
37
|
+
import { MatCardModule } from '@angular/material/card';
|
|
38
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
39
|
+
import { CdkAccordionModule } from '@angular/cdk/accordion';
|
|
40
|
+
import { ClipboardModule } from '@angular/cdk/clipboard';
|
|
41
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
42
|
+
import { PortalModule } from '@angular/cdk/portal';
|
|
43
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
44
|
+
import { CdkStepperModule } from '@angular/cdk/stepper';
|
|
45
|
+
import { CdkTableModule } from '@angular/cdk/table';
|
|
46
|
+
import { CdkTreeModule } from '@angular/cdk/tree';
|
|
47
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
48
|
+
import { MatBadgeModule } from '@angular/material/badge';
|
|
49
|
+
import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
|
|
50
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
51
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
52
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
53
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
54
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
55
|
+
import { MatExpansionModule } from '@angular/material/expansion';
|
|
56
|
+
import { MatGridListModule } from '@angular/material/grid-list';
|
|
57
|
+
import { MatListModule } from '@angular/material/list';
|
|
58
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
59
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
60
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
61
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
62
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
63
|
+
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
64
|
+
import { MatSliderModule } from '@angular/material/slider';
|
|
65
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
66
|
+
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
67
|
+
import { MatSortModule } from '@angular/material/sort';
|
|
68
|
+
import { MatTableModule } from '@angular/material/table';
|
|
69
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
|
70
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
71
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
72
|
+
import { MatTreeModule } from '@angular/material/tree';
|
|
73
|
+
import { OverlayModule } from '@angular/cdk/overlay';
|
|
32
74
|
|
|
33
75
|
class TruComponentConfigBase {
|
|
34
76
|
constructor() { }
|
|
@@ -1132,7 +1174,7 @@ class TruExportDialog {
|
|
|
1132
1174
|
ngOnInit() { }
|
|
1133
1175
|
}
|
|
1134
1176
|
TruExportDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruExportDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
1135
|
-
TruExportDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruExportDialog, selector: "tru-export-dialog", host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<h1 mat-dialog-title>\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content>\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: [".mat-mdc-dialog-content{overflow:hidden}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"], dependencies: [{ kind: "directive", type:
|
|
1177
|
+
TruExportDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruExportDialog, selector: "tru-export-dialog", host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<h1 mat-dialog-title>\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content>\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: [".mat-mdc-dialog-content{overflow:hidden}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.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"] }] });
|
|
1136
1178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruExportDialog, decorators: [{
|
|
1137
1179
|
type: Component,
|
|
1138
1180
|
args: [{ selector: 'tru-export-dialog', template: "<h1 mat-dialog-title>\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content>\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: [".mat-mdc-dialog-content{overflow:hidden}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"] }]
|
|
@@ -1648,7 +1690,7 @@ class TruToolbarButton {
|
|
|
1648
1690
|
}
|
|
1649
1691
|
}
|
|
1650
1692
|
TruToolbarButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruToolbarButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1651
|
-
TruToolbarButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruToolbarButton, selector: "tru-toolbar-button", inputs: { config: "config", icon: "icon", text: "text", disabled: "disabled", tooltip: "tooltip", type: "type" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n class=\"toolbar-btn toolbar-btn-default\"\r\n title=\"{{ tooltip }}\"\r\n tabindex=\"-1\"\r\n [attr.disabled]=\"disabled ? '' : null\"\r\n (click)=\"onClick.emit($event)\"\r\n type=\"{{type}}\">\r\n <span class=\"toolbar-btn-icon\" *ngIf=\"icon\"><mat-icon [svgIcon]=\"icon\"></mat-icon></span>\r\n <span class=\"toolbar-btn-text\" *ngIf=\"text\">{{text}}</span>\r\n</button>\r\n", styles: [".toolbar{height:25px}.toolbar .toolbar-btn{height:26px}.toolbar .mat-mdc-form-field{display:block;height:25px;width:auto}.toolbar .mat-mdc-text-field-wrapper{margin-top:1px;height:23px}.toolbar .mat-mdc-form-field-infix{padding:0;border-top:0;width:auto;height:25px}.mat-mdc-option{height:25px;font-size:14px}.toolbar .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix .toolbar .mat-mdc-select-arrow-wrapper{padding:0!important}.toolbar .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding:0!important}.toolbar .mat-mdc-select-arrow{padding-left:5px}.toolbar .mat-mdc-select-value-text{font-size:14px}.toolbar-group,.toolbar-group-vertical{position:relative;display:flex;vertical-align:middle;height:25px}.toolbar-group>.toolbar-btn,.toolbar-group-vertical>.toolbar-btn{position:relative;float:left}.toolbar-group>.toolbar-btn:hover,.toolbar-group-vertical>.toolbar-btn:hover,.toolbar-group>.toolbar-btn:focus,.toolbar-group-vertical>.toolbar-btn:focus,.toolbar-group>.toolbar-btn:active,.toolbar-group-vertical>.toolbar-btn:active,.toolbar-group>.toolbar-btn.active,.toolbar-group-vertical>.toolbar-btn.active{z-index:2}.toolbar-group .toolbar-btn+.toolbar-btn,.toolbar-group .toolbar-btn+.toolbar-group,.toolbar-group .toolbar-group+.toolbar-btn,.toolbar-group .toolbar-group+.toolbar-group{margin-left:-1px}.toolbar-group>.toolbar-btn:not(:first-child):not(:last-child){border-radius:0}.toolbar-group>.toolbar-btn:first-child{margin-left:0}.toolbar-group>.toolbar-btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.toolbar-group>.toolbar-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.toolbar-group>.toolbar-btn{padding:1px 5px;font-size:12px;line-height:1;border-radius:0}.toolbar-group .btn_iconOnly{padding:0;margin:0}.toolbar-group .btn_iconOnly i{vertical-align:15%}.toolbar-group div{padding:0;margin:0}.toolbar-group button{padding:0!important}.toolbar-group span,.toolbar-group i{padding:0;margin:0}.toolbar-group button{vertical-align:top}::ng-deep .toolbar .mat-mdc-option{min-height:unset;height:35px}\n", ".toolbar-btn{margin:0;text-transform:none;font-family:inherit;display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:0;-webkit-user-select:none;-o-user-select:none;user-select:none;-webkit-appearance:button}.toolbar-btn.disabled,.toolbar-btn[disabled],fieldset[disabled] .btn{cursor:default;opacity:.3;filter:alpha(opacity=65);box-shadow:none;pointer-events:none}.toolbar-btn.disabled:hover,.toolbar-btn[disabled]:hover,fieldset[disabled] .btn:hover{cursor:default;opacity:.3;filter:alpha(opacity=65);box-shadow:none;background-color:#f8f8f8;border-color:transparent;pointer-events:none}.toolbar-btn:hover,.toolbar-btn:focus{color:#333;text-decoration:none}.toolbar-btn-default{color:#333;background-color:transparent;border-color:transparent}.toolbar-btn-default:hover,.toolbar-btn-default:focus,.toolbar-btn-default:active,.toolbar-btn-default.active{color:#333;background-color:#ebebeb;border-color:transparent}.toolbar-btn-text{padding:5px!important}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2
|
|
1693
|
+
TruToolbarButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruToolbarButton, selector: "tru-toolbar-button", inputs: { config: "config", icon: "icon", text: "text", disabled: "disabled", tooltip: "tooltip", type: "type" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n class=\"toolbar-btn toolbar-btn-default\"\r\n title=\"{{ tooltip }}\"\r\n tabindex=\"-1\"\r\n [attr.disabled]=\"disabled ? '' : null\"\r\n (click)=\"onClick.emit($event)\"\r\n type=\"{{type}}\">\r\n <span class=\"toolbar-btn-icon\" *ngIf=\"icon\"><mat-icon [svgIcon]=\"icon\"></mat-icon></span>\r\n <span class=\"toolbar-btn-text\" *ngIf=\"text\">{{text}}</span>\r\n</button>\r\n", styles: [".toolbar{height:25px}.toolbar .toolbar-btn{height:26px}.toolbar .mat-mdc-form-field{display:block;height:25px;width:auto}.toolbar .mat-mdc-text-field-wrapper{margin-top:1px;height:23px}.toolbar .mat-mdc-form-field-infix{padding:0;border-top:0;width:auto;height:25px}.mat-mdc-option{height:25px;font-size:14px}.toolbar .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix .toolbar .mat-mdc-select-arrow-wrapper{padding:0!important}.toolbar .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding:0!important}.toolbar .mat-mdc-select-arrow{padding-left:5px}.toolbar .mat-mdc-select-value-text{font-size:14px}.toolbar-group,.toolbar-group-vertical{position:relative;display:flex;vertical-align:middle;height:25px}.toolbar-group>.toolbar-btn,.toolbar-group-vertical>.toolbar-btn{position:relative;float:left}.toolbar-group>.toolbar-btn:hover,.toolbar-group-vertical>.toolbar-btn:hover,.toolbar-group>.toolbar-btn:focus,.toolbar-group-vertical>.toolbar-btn:focus,.toolbar-group>.toolbar-btn:active,.toolbar-group-vertical>.toolbar-btn:active,.toolbar-group>.toolbar-btn.active,.toolbar-group-vertical>.toolbar-btn.active{z-index:2}.toolbar-group .toolbar-btn+.toolbar-btn,.toolbar-group .toolbar-btn+.toolbar-group,.toolbar-group .toolbar-group+.toolbar-btn,.toolbar-group .toolbar-group+.toolbar-group{margin-left:-1px}.toolbar-group>.toolbar-btn:not(:first-child):not(:last-child){border-radius:0}.toolbar-group>.toolbar-btn:first-child{margin-left:0}.toolbar-group>.toolbar-btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.toolbar-group>.toolbar-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.toolbar-group>.toolbar-btn{padding:1px 5px;font-size:12px;line-height:1;border-radius:0}.toolbar-group .btn_iconOnly{padding:0;margin:0}.toolbar-group .btn_iconOnly i{vertical-align:15%}.toolbar-group div{padding:0;margin:0}.toolbar-group button{padding:0!important}.toolbar-group span,.toolbar-group i{padding:0;margin:0}.toolbar-group button{vertical-align:top}::ng-deep .toolbar .mat-mdc-option{min-height:unset;height:35px}\n", ".toolbar-btn{margin:0;text-transform:none;font-family:inherit;display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:0;-webkit-user-select:none;-o-user-select:none;user-select:none;-webkit-appearance:button}.toolbar-btn.disabled,.toolbar-btn[disabled],fieldset[disabled] .btn{cursor:default;opacity:.3;filter:alpha(opacity=65);box-shadow:none;pointer-events:none}.toolbar-btn.disabled:hover,.toolbar-btn[disabled]:hover,fieldset[disabled] .btn:hover{cursor:default;opacity:.3;filter:alpha(opacity=65);box-shadow:none;background-color:#f8f8f8;border-color:transparent;pointer-events:none}.toolbar-btn:hover,.toolbar-btn:focus{color:#333;text-decoration:none}.toolbar-btn-default{color:#333;background-color:transparent;border-color:transparent}.toolbar-btn-default:hover,.toolbar-btn-default:focus,.toolbar-btn-default:active,.toolbar-btn-default.active{color:#333;background-color:#ebebeb;border-color:transparent}.toolbar-btn-text{padding:5px!important}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
1652
1694
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruToolbarButton, decorators: [{
|
|
1653
1695
|
type: Component,
|
|
1654
1696
|
args: [{ selector: 'tru-toolbar-button', encapsulation: ViewEncapsulation.None, template: "<button\r\n class=\"toolbar-btn toolbar-btn-default\"\r\n title=\"{{ tooltip }}\"\r\n tabindex=\"-1\"\r\n [attr.disabled]=\"disabled ? '' : null\"\r\n (click)=\"onClick.emit($event)\"\r\n type=\"{{type}}\">\r\n <span class=\"toolbar-btn-icon\" *ngIf=\"icon\"><mat-icon [svgIcon]=\"icon\"></mat-icon></span>\r\n <span class=\"toolbar-btn-text\" *ngIf=\"text\">{{text}}</span>\r\n</button>\r\n", styles: [".toolbar{height:25px}.toolbar .toolbar-btn{height:26px}.toolbar .mat-mdc-form-field{display:block;height:25px;width:auto}.toolbar .mat-mdc-text-field-wrapper{margin-top:1px;height:23px}.toolbar .mat-mdc-form-field-infix{padding:0;border-top:0;width:auto;height:25px}.mat-mdc-option{height:25px;font-size:14px}.toolbar .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix .toolbar .mat-mdc-select-arrow-wrapper{padding:0!important}.toolbar .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding:0!important}.toolbar .mat-mdc-select-arrow{padding-left:5px}.toolbar .mat-mdc-select-value-text{font-size:14px}.toolbar-group,.toolbar-group-vertical{position:relative;display:flex;vertical-align:middle;height:25px}.toolbar-group>.toolbar-btn,.toolbar-group-vertical>.toolbar-btn{position:relative;float:left}.toolbar-group>.toolbar-btn:hover,.toolbar-group-vertical>.toolbar-btn:hover,.toolbar-group>.toolbar-btn:focus,.toolbar-group-vertical>.toolbar-btn:focus,.toolbar-group>.toolbar-btn:active,.toolbar-group-vertical>.toolbar-btn:active,.toolbar-group>.toolbar-btn.active,.toolbar-group-vertical>.toolbar-btn.active{z-index:2}.toolbar-group .toolbar-btn+.toolbar-btn,.toolbar-group .toolbar-btn+.toolbar-group,.toolbar-group .toolbar-group+.toolbar-btn,.toolbar-group .toolbar-group+.toolbar-group{margin-left:-1px}.toolbar-group>.toolbar-btn:not(:first-child):not(:last-child){border-radius:0}.toolbar-group>.toolbar-btn:first-child{margin-left:0}.toolbar-group>.toolbar-btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.toolbar-group>.toolbar-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.toolbar-group>.toolbar-btn{padding:1px 5px;font-size:12px;line-height:1;border-radius:0}.toolbar-group .btn_iconOnly{padding:0;margin:0}.toolbar-group .btn_iconOnly i{vertical-align:15%}.toolbar-group div{padding:0;margin:0}.toolbar-group button{padding:0!important}.toolbar-group span,.toolbar-group i{padding:0;margin:0}.toolbar-group button{vertical-align:top}::ng-deep .toolbar .mat-mdc-option{min-height:unset;height:35px}\n", ".toolbar-btn{margin:0;text-transform:none;font-family:inherit;display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:0;-webkit-user-select:none;-o-user-select:none;user-select:none;-webkit-appearance:button}.toolbar-btn.disabled,.toolbar-btn[disabled],fieldset[disabled] .btn{cursor:default;opacity:.3;filter:alpha(opacity=65);box-shadow:none;pointer-events:none}.toolbar-btn.disabled:hover,.toolbar-btn[disabled]:hover,fieldset[disabled] .btn:hover{cursor:default;opacity:.3;filter:alpha(opacity=65);box-shadow:none;background-color:#f8f8f8;border-color:transparent;pointer-events:none}.toolbar-btn:hover,.toolbar-btn:focus{color:#333;text-decoration:none}.toolbar-btn-default{color:#333;background-color:transparent;border-color:transparent}.toolbar-btn-default:hover,.toolbar-btn-default:focus,.toolbar-btn-default:active,.toolbar-btn-default.active{color:#333;background-color:#ebebeb;border-color:transparent}.toolbar-btn-text{padding:5px!important}\n"] }]
|
|
@@ -1784,7 +1826,7 @@ class TruToolbarDropdown {
|
|
|
1784
1826
|
}
|
|
1785
1827
|
}
|
|
1786
1828
|
TruToolbarDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruToolbarDropdown, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1787
|
-
TruToolbarDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruToolbarDropdown, selector: "tru-toolbar-dropdown", inputs: { config: "config", options: "options", selectedOption: "selectedOption", disabled: "disabled" }, outputs: { selectedOptionChange: "selectedOptionChange", selectionChange: "selectionChange" }, ngImport: i0, template: "<mat-form-field>\r\n <mat-select [(ngModel)]=\"selectedOption\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n tru-mat-select-panel>\r\n <mat-option *ngFor=\"let option of options\" [value]=\"option\">\r\n {{option.label}}\r\n </mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n\r\n", styles: [".toolbar{height:25px}.toolbar .toolbar-btn{height:26px}.toolbar .mat-mdc-form-field{display:block;height:25px;width:auto}.toolbar .mat-mdc-text-field-wrapper{margin-top:1px;height:23px}.toolbar .mat-mdc-form-field-infix{padding:0;border-top:0;width:auto;height:25px}.mat-mdc-option{height:25px;font-size:14px}.toolbar .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix .toolbar .mat-mdc-select-arrow-wrapper{padding:0!important}.toolbar .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding:0!important}.toolbar .mat-mdc-select-arrow{padding-left:5px}.toolbar .mat-mdc-select-value-text{font-size:14px}.toolbar-group,.toolbar-group-vertical{position:relative;display:flex;vertical-align:middle;height:25px}.toolbar-group>.toolbar-btn,.toolbar-group-vertical>.toolbar-btn{position:relative;float:left}.toolbar-group>.toolbar-btn:hover,.toolbar-group-vertical>.toolbar-btn:hover,.toolbar-group>.toolbar-btn:focus,.toolbar-group-vertical>.toolbar-btn:focus,.toolbar-group>.toolbar-btn:active,.toolbar-group-vertical>.toolbar-btn:active,.toolbar-group>.toolbar-btn.active,.toolbar-group-vertical>.toolbar-btn.active{z-index:2}.toolbar-group .toolbar-btn+.toolbar-btn,.toolbar-group .toolbar-btn+.toolbar-group,.toolbar-group .toolbar-group+.toolbar-btn,.toolbar-group .toolbar-group+.toolbar-group{margin-left:-1px}.toolbar-group>.toolbar-btn:not(:first-child):not(:last-child){border-radius:0}.toolbar-group>.toolbar-btn:first-child{margin-left:0}.toolbar-group>.toolbar-btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.toolbar-group>.toolbar-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.toolbar-group>.toolbar-btn{padding:1px 5px;font-size:12px;line-height:1;border-radius:0}.toolbar-group .btn_iconOnly{padding:0;margin:0}.toolbar-group .btn_iconOnly i{vertical-align:15%}.toolbar-group div{padding:0;margin:0}.toolbar-group button{padding:0!important}.toolbar-group span,.toolbar-group i{padding:0;margin:0}.toolbar-group button{vertical-align:top}::ng-deep .toolbar .mat-mdc-option{min-height:unset;height:35px}\n", ".toolbar .mat-mdc-select{width:auto;min-width:90px;padding-top:0!important;font-family:Calibri,Helvetica,Arial,sans-serif!important;background-color:#ebebeb;height:24px;margin-left:2px;margin-right:2px;padding-left:8px;padding-right:3px}.toolbar .mdc-line-ripple{display:none}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type:
|
|
1829
|
+
TruToolbarDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruToolbarDropdown, selector: "tru-toolbar-dropdown", inputs: { config: "config", options: "options", selectedOption: "selectedOption", disabled: "disabled" }, outputs: { selectedOptionChange: "selectedOptionChange", selectionChange: "selectionChange" }, ngImport: i0, template: "<mat-form-field>\r\n <mat-select [(ngModel)]=\"selectedOption\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n tru-mat-select-panel>\r\n <mat-option *ngFor=\"let option of options\" [value]=\"option\">\r\n {{option.label}}\r\n </mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n\r\n", styles: [".toolbar{height:25px}.toolbar .toolbar-btn{height:26px}.toolbar .mat-mdc-form-field{display:block;height:25px;width:auto}.toolbar .mat-mdc-text-field-wrapper{margin-top:1px;height:23px}.toolbar .mat-mdc-form-field-infix{padding:0;border-top:0;width:auto;height:25px}.mat-mdc-option{height:25px;font-size:14px}.toolbar .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix .toolbar .mat-mdc-select-arrow-wrapper{padding:0!important}.toolbar .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding:0!important}.toolbar .mat-mdc-select-arrow{padding-left:5px}.toolbar .mat-mdc-select-value-text{font-size:14px}.toolbar-group,.toolbar-group-vertical{position:relative;display:flex;vertical-align:middle;height:25px}.toolbar-group>.toolbar-btn,.toolbar-group-vertical>.toolbar-btn{position:relative;float:left}.toolbar-group>.toolbar-btn:hover,.toolbar-group-vertical>.toolbar-btn:hover,.toolbar-group>.toolbar-btn:focus,.toolbar-group-vertical>.toolbar-btn:focus,.toolbar-group>.toolbar-btn:active,.toolbar-group-vertical>.toolbar-btn:active,.toolbar-group>.toolbar-btn.active,.toolbar-group-vertical>.toolbar-btn.active{z-index:2}.toolbar-group .toolbar-btn+.toolbar-btn,.toolbar-group .toolbar-btn+.toolbar-group,.toolbar-group .toolbar-group+.toolbar-btn,.toolbar-group .toolbar-group+.toolbar-group{margin-left:-1px}.toolbar-group>.toolbar-btn:not(:first-child):not(:last-child){border-radius:0}.toolbar-group>.toolbar-btn:first-child{margin-left:0}.toolbar-group>.toolbar-btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.toolbar-group>.toolbar-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.toolbar-group>.toolbar-btn{padding:1px 5px;font-size:12px;line-height:1;border-radius:0}.toolbar-group .btn_iconOnly{padding:0;margin:0}.toolbar-group .btn_iconOnly i{vertical-align:15%}.toolbar-group div{padding:0;margin:0}.toolbar-group button{padding:0!important}.toolbar-group span,.toolbar-group i{padding:0;margin:0}.toolbar-group button{vertical-align:top}::ng-deep .toolbar .mat-mdc-option{min-height:unset;height:35px}\n", ".toolbar .mat-mdc-select{width:auto;min-width:90px;padding-top:0!important;font-family:Calibri,Helvetica,Arial,sans-serif!important;background-color:#ebebeb;height:24px;margin-left:2px;margin-right:2px;padding-left:8px;padding-right:3px}.toolbar .mdc-line-ripple{display:none}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i1$4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: TruMatSelectPanel, selector: "[tru-mat-select-panel]" }], encapsulation: i0.ViewEncapsulation.None });
|
|
1788
1830
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruToolbarDropdown, decorators: [{
|
|
1789
1831
|
type: Component,
|
|
1790
1832
|
args: [{ selector: 'tru-toolbar-dropdown', encapsulation: ViewEncapsulation.None, template: "<mat-form-field>\r\n <mat-select [(ngModel)]=\"selectedOption\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n tru-mat-select-panel>\r\n <mat-option *ngFor=\"let option of options\" [value]=\"option\">\r\n {{option.label}}\r\n </mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n\r\n", styles: [".toolbar{height:25px}.toolbar .toolbar-btn{height:26px}.toolbar .mat-mdc-form-field{display:block;height:25px;width:auto}.toolbar .mat-mdc-text-field-wrapper{margin-top:1px;height:23px}.toolbar .mat-mdc-form-field-infix{padding:0;border-top:0;width:auto;height:25px}.mat-mdc-option{height:25px;font-size:14px}.toolbar .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix .toolbar .mat-mdc-select-arrow-wrapper{padding:0!important}.toolbar .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding:0!important}.toolbar .mat-mdc-select-arrow{padding-left:5px}.toolbar .mat-mdc-select-value-text{font-size:14px}.toolbar-group,.toolbar-group-vertical{position:relative;display:flex;vertical-align:middle;height:25px}.toolbar-group>.toolbar-btn,.toolbar-group-vertical>.toolbar-btn{position:relative;float:left}.toolbar-group>.toolbar-btn:hover,.toolbar-group-vertical>.toolbar-btn:hover,.toolbar-group>.toolbar-btn:focus,.toolbar-group-vertical>.toolbar-btn:focus,.toolbar-group>.toolbar-btn:active,.toolbar-group-vertical>.toolbar-btn:active,.toolbar-group>.toolbar-btn.active,.toolbar-group-vertical>.toolbar-btn.active{z-index:2}.toolbar-group .toolbar-btn+.toolbar-btn,.toolbar-group .toolbar-btn+.toolbar-group,.toolbar-group .toolbar-group+.toolbar-btn,.toolbar-group .toolbar-group+.toolbar-group{margin-left:-1px}.toolbar-group>.toolbar-btn:not(:first-child):not(:last-child){border-radius:0}.toolbar-group>.toolbar-btn:first-child{margin-left:0}.toolbar-group>.toolbar-btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.toolbar-group>.toolbar-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.toolbar-group>.toolbar-btn{padding:1px 5px;font-size:12px;line-height:1;border-radius:0}.toolbar-group .btn_iconOnly{padding:0;margin:0}.toolbar-group .btn_iconOnly i{vertical-align:15%}.toolbar-group div{padding:0;margin:0}.toolbar-group button{padding:0!important}.toolbar-group span,.toolbar-group i{padding:0;margin:0}.toolbar-group button{vertical-align:top}::ng-deep .toolbar .mat-mdc-option{min-height:unset;height:35px}\n", ".toolbar .mat-mdc-select{width:auto;min-width:90px;padding-top:0!important;font-family:Calibri,Helvetica,Arial,sans-serif!important;background-color:#ebebeb;height:24px;margin-left:2px;margin-right:2px;padding-left:8px;padding-right:3px}.toolbar .mdc-line-ripple{display:none}\n"] }]
|
|
@@ -2666,7 +2708,7 @@ class TruDesktopTaskbar {
|
|
|
2666
2708
|
}
|
|
2667
2709
|
}
|
|
2668
2710
|
TruDesktopTaskbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruDesktopTaskbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2669
|
-
TruDesktopTaskbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruDesktopTaskbar, selector: "tru-desktop-taskbar", inputs: { windows: "windows", desktopCtrl: "desktopCtrl" }, ngImport: i0, template: "<div class=\"desktop-taskbar-container\">\r\n <div class=\"desktop-taskbar-list\">\r\n <ul>\r\n <li class=\"am-fade-and-scale desktop-text\"\r\n *ngFor=\"let window of windows\"\r\n (click)=\"updateWindowState(window)\">\r\n <div class=\"desktop-relative desktop-taskbar-list-item\" [ngClass]=\"{'desktop-active-taskbar-list-item': window.active, 'desktop-minimized-taskbar-list-item': window.minimized, 'desktop-taskbar-list-item-recover': window.outOfBounds}\">\r\n <div class=\"desktop-taskbar-list-item-title\">\r\n <span>{{window.title}}</span>\r\n </div>\r\n <mat-icon [svgIcon]=\"'tru-toolbar-close-icon'\" class=\"desktop-taskbar-list-item-close-icon\" [ngClass]=\"{'desktop-taskbar-list-item-close-minimized': window.minimized}\" (click)=\"close($event, window)\"></mat-icon>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"desktop-taskbar-hide\">\r\n <div class=\"desktop-taskbar-hide-button\" (click)=\"hideShowAll()\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".desktop-taskbar-container{position:absolute!important;left:0;right:0;bottom:0;height:40px;background:#f8f8f8;border:1px solid #6b6b6b}.desktop-taskbar-launch-menu{position:absolute!important;top:0;left:0;bottom:0;width:50px;background:#f8f8f8;border-right:1px solid #e7e7e7}.desktop-taskbar-launch-button{height:35px;width:43px;background-clip:padding-box;border-radius:6px;border:1px solid #dfdfdf;margin:2px;padding-top:1px;padding-left:5px}.desktop-taskbar-launch-button:active{margin-top:3px;margin-left:3px;outline:0;box-shadow:0 0 10px #0057ff}.desktop-taskbar-list{position:absolute!important;inset:0 16px 0 0;background:#f8f8f8}.desktop-taskbar-list-offset{left:50px}.desktop-taskbar-list ul{padding:3px;margin:0}.desktop-taskbar-list ul>li{display:inline-block;list-style:none;width:165px;height:33px}.desktop-taskbar-list ul>li>div{background-clip:padding-box;border-radius:0;border:1px solid #dfdfdf;line-height:30px;margin-top:1px;margin-left:7px;overflow:hidden}.desktop-taskbar-list ul>li>div:active{top:1px;left:1px}.desktop-taskbar-list li span{position:relative;left:5px;margin-left:5px;text-overflow:ellipsis;font-size:12px;font-weight:700}.desktop-taskbar-list-item-recover{background:maroon!important;color:#fff!important}.desktop-taskbar-list-item-title{width:135px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:default}.desktop-taskbar-list-item-close{position:absolute;z-index:1;top:11px;right:5px;font-size:9px;color:#333;cursor:pointer}.desktop-taskbar-list-item-close-minimized{color:#bababa}.desktop-taskbar-list-item-close:active{top:10px;right:6px}.desktop-taskbar-list-item-close:hover{color:maroon}.desktop-taskbar-list-item{background-color:#f8f8f8;position:relative}.desktop-taskbar-list-item-close-icon{position:absolute;right:2px;top:5px;height:16px}.desktop-active-taskbar-list-item{outline:0;border:1px solid #6b6b6b!important;box-shadow:inset 0 1px 1px #00000013;color:#333}.desktop-minimized-taskbar-list-item{color:#bababa}.desktop-taskbar-hide{position:absolute!important;top:0;right:0;bottom:0;width:16px;background:#f8f8f8}.desktop-taskbar-hide-button{height:35px;width:12px;background-clip:padding-box;border-radius:0;border:1px solid #dfdfdf;margin:2px}.desktop-taskbar-hide-button:active{margin-top:3px;margin-left:3px;outline:0;box-shadow:0 0 10px #0057ff}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2
|
|
2711
|
+
TruDesktopTaskbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruDesktopTaskbar, selector: "tru-desktop-taskbar", inputs: { windows: "windows", desktopCtrl: "desktopCtrl" }, ngImport: i0, template: "<div class=\"desktop-taskbar-container\">\r\n <div class=\"desktop-taskbar-list\">\r\n <ul>\r\n <li class=\"am-fade-and-scale desktop-text\"\r\n *ngFor=\"let window of windows\"\r\n (click)=\"updateWindowState(window)\">\r\n <div class=\"desktop-relative desktop-taskbar-list-item\" [ngClass]=\"{'desktop-active-taskbar-list-item': window.active, 'desktop-minimized-taskbar-list-item': window.minimized, 'desktop-taskbar-list-item-recover': window.outOfBounds}\">\r\n <div class=\"desktop-taskbar-list-item-title\">\r\n <span>{{window.title}}</span>\r\n </div>\r\n <mat-icon [svgIcon]=\"'tru-toolbar-close-icon'\" class=\"desktop-taskbar-list-item-close-icon\" [ngClass]=\"{'desktop-taskbar-list-item-close-minimized': window.minimized}\" (click)=\"close($event, window)\"></mat-icon>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"desktop-taskbar-hide\">\r\n <div class=\"desktop-taskbar-hide-button\" (click)=\"hideShowAll()\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".desktop-taskbar-container{position:absolute!important;left:0;right:0;bottom:0;height:40px;background:#f8f8f8;border:1px solid #6b6b6b}.desktop-taskbar-launch-menu{position:absolute!important;top:0;left:0;bottom:0;width:50px;background:#f8f8f8;border-right:1px solid #e7e7e7}.desktop-taskbar-launch-button{height:35px;width:43px;background-clip:padding-box;border-radius:6px;border:1px solid #dfdfdf;margin:2px;padding-top:1px;padding-left:5px}.desktop-taskbar-launch-button:active{margin-top:3px;margin-left:3px;outline:0;box-shadow:0 0 10px #0057ff}.desktop-taskbar-list{position:absolute!important;inset:0 16px 0 0;background:#f8f8f8}.desktop-taskbar-list-offset{left:50px}.desktop-taskbar-list ul{padding:3px;margin:0}.desktop-taskbar-list ul>li{display:inline-block;list-style:none;width:165px;height:33px}.desktop-taskbar-list ul>li>div{background-clip:padding-box;border-radius:0;border:1px solid #dfdfdf;line-height:30px;margin-top:1px;margin-left:7px;overflow:hidden}.desktop-taskbar-list ul>li>div:active{top:1px;left:1px}.desktop-taskbar-list li span{position:relative;left:5px;margin-left:5px;text-overflow:ellipsis;font-size:12px;font-weight:700}.desktop-taskbar-list-item-recover{background:maroon!important;color:#fff!important}.desktop-taskbar-list-item-title{width:135px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:default}.desktop-taskbar-list-item-close{position:absolute;z-index:1;top:11px;right:5px;font-size:9px;color:#333;cursor:pointer}.desktop-taskbar-list-item-close-minimized{color:#bababa}.desktop-taskbar-list-item-close:active{top:10px;right:6px}.desktop-taskbar-list-item-close:hover{color:maroon}.desktop-taskbar-list-item{background-color:#f8f8f8;position:relative}.desktop-taskbar-list-item-close-icon{position:absolute;right:2px;top:5px;height:16px}.desktop-active-taskbar-list-item{outline:0;border:1px solid #6b6b6b!important;box-shadow:inset 0 1px 1px #00000013;color:#333}.desktop-minimized-taskbar-list-item{color:#bababa}.desktop-taskbar-hide{position:absolute!important;top:0;right:0;bottom:0;width:16px;background:#f8f8f8}.desktop-taskbar-hide-button{height:35px;width:12px;background-clip:padding-box;border-radius:0;border:1px solid #dfdfdf;margin:2px}.desktop-taskbar-hide-button:active{margin-top:3px;margin-left:3px;outline:0;box-shadow:0 0 10px #0057ff}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
2670
2712
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruDesktopTaskbar, decorators: [{
|
|
2671
2713
|
type: Component,
|
|
2672
2714
|
args: [{ selector: 'tru-desktop-taskbar', template: "<div class=\"desktop-taskbar-container\">\r\n <div class=\"desktop-taskbar-list\">\r\n <ul>\r\n <li class=\"am-fade-and-scale desktop-text\"\r\n *ngFor=\"let window of windows\"\r\n (click)=\"updateWindowState(window)\">\r\n <div class=\"desktop-relative desktop-taskbar-list-item\" [ngClass]=\"{'desktop-active-taskbar-list-item': window.active, 'desktop-minimized-taskbar-list-item': window.minimized, 'desktop-taskbar-list-item-recover': window.outOfBounds}\">\r\n <div class=\"desktop-taskbar-list-item-title\">\r\n <span>{{window.title}}</span>\r\n </div>\r\n <mat-icon [svgIcon]=\"'tru-toolbar-close-icon'\" class=\"desktop-taskbar-list-item-close-icon\" [ngClass]=\"{'desktop-taskbar-list-item-close-minimized': window.minimized}\" (click)=\"close($event, window)\"></mat-icon>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"desktop-taskbar-hide\">\r\n <div class=\"desktop-taskbar-hide-button\" (click)=\"hideShowAll()\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".desktop-taskbar-container{position:absolute!important;left:0;right:0;bottom:0;height:40px;background:#f8f8f8;border:1px solid #6b6b6b}.desktop-taskbar-launch-menu{position:absolute!important;top:0;left:0;bottom:0;width:50px;background:#f8f8f8;border-right:1px solid #e7e7e7}.desktop-taskbar-launch-button{height:35px;width:43px;background-clip:padding-box;border-radius:6px;border:1px solid #dfdfdf;margin:2px;padding-top:1px;padding-left:5px}.desktop-taskbar-launch-button:active{margin-top:3px;margin-left:3px;outline:0;box-shadow:0 0 10px #0057ff}.desktop-taskbar-list{position:absolute!important;inset:0 16px 0 0;background:#f8f8f8}.desktop-taskbar-list-offset{left:50px}.desktop-taskbar-list ul{padding:3px;margin:0}.desktop-taskbar-list ul>li{display:inline-block;list-style:none;width:165px;height:33px}.desktop-taskbar-list ul>li>div{background-clip:padding-box;border-radius:0;border:1px solid #dfdfdf;line-height:30px;margin-top:1px;margin-left:7px;overflow:hidden}.desktop-taskbar-list ul>li>div:active{top:1px;left:1px}.desktop-taskbar-list li span{position:relative;left:5px;margin-left:5px;text-overflow:ellipsis;font-size:12px;font-weight:700}.desktop-taskbar-list-item-recover{background:maroon!important;color:#fff!important}.desktop-taskbar-list-item-title{width:135px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:default}.desktop-taskbar-list-item-close{position:absolute;z-index:1;top:11px;right:5px;font-size:9px;color:#333;cursor:pointer}.desktop-taskbar-list-item-close-minimized{color:#bababa}.desktop-taskbar-list-item-close:active{top:10px;right:6px}.desktop-taskbar-list-item-close:hover{color:maroon}.desktop-taskbar-list-item{background-color:#f8f8f8;position:relative}.desktop-taskbar-list-item-close-icon{position:absolute;right:2px;top:5px;height:16px}.desktop-active-taskbar-list-item{outline:0;border:1px solid #6b6b6b!important;box-shadow:inset 0 1px 1px #00000013;color:#333}.desktop-minimized-taskbar-list-item{color:#bababa}.desktop-taskbar-hide{position:absolute!important;top:0;right:0;bottom:0;width:16px;background:#f8f8f8}.desktop-taskbar-hide-button{height:35px;width:12px;background-clip:padding-box;border-radius:0;border:1px solid #dfdfdf;margin:2px}.desktop-taskbar-hide-button:active{margin-top:3px;margin-left:3px;outline:0;box-shadow:0 0 10px #0057ff}\n"] }]
|
|
@@ -4408,6 +4450,364 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
4408
4450
|
}]
|
|
4409
4451
|
}] });
|
|
4410
4452
|
|
|
4453
|
+
const TRU_AUTH_CONFIG = {
|
|
4454
|
+
baseUrl: "https://localhost:44303",
|
|
4455
|
+
authUrl: "/api/auth",
|
|
4456
|
+
auth: "token",
|
|
4457
|
+
};
|
|
4458
|
+
const TRU_AUTH_STRATEGY = new InjectionToken("AuthStrategy");
|
|
4459
|
+
|
|
4460
|
+
class TruAuthCache {
|
|
4461
|
+
constructor() {
|
|
4462
|
+
this.prunables = [];
|
|
4463
|
+
}
|
|
4464
|
+
registerPrunable(prunable) {
|
|
4465
|
+
this.prunables.push(prunable);
|
|
4466
|
+
}
|
|
4467
|
+
pruneAll() {
|
|
4468
|
+
this.prunables.forEach((p) => p.pruneCache());
|
|
4469
|
+
}
|
|
4470
|
+
}
|
|
4471
|
+
TruAuthCache.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuthCache, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4472
|
+
TruAuthCache.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuthCache });
|
|
4473
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuthCache, decorators: [{
|
|
4474
|
+
type: Injectable
|
|
4475
|
+
}] });
|
|
4476
|
+
|
|
4477
|
+
class TruAuth {
|
|
4478
|
+
constructor(router, http, cache, auth) {
|
|
4479
|
+
this.router = router;
|
|
4480
|
+
this.http = http;
|
|
4481
|
+
this.cache = cache;
|
|
4482
|
+
this.auth = auth;
|
|
4483
|
+
this.loggedIn = new BehaviorSubject(false);
|
|
4484
|
+
this.baseUrl = "https://localhost:44303"; //this.environmentService.getValue('apiUrl');
|
|
4485
|
+
}
|
|
4486
|
+
login(loginRequest) {
|
|
4487
|
+
return this.http
|
|
4488
|
+
//.post<any>(this.baseUrl + "/auth/Login", loginRequest)
|
|
4489
|
+
.post(`${this.baseUrl}${TRU_AUTH_CONFIG.authUrl}/login`, loginRequest)
|
|
4490
|
+
.pipe(tap((data) => {
|
|
4491
|
+
this.auth.doLoginUser(data);
|
|
4492
|
+
this.loggedIn.next(true);
|
|
4493
|
+
}));
|
|
4494
|
+
}
|
|
4495
|
+
logout() {
|
|
4496
|
+
this.doLogoutUser();
|
|
4497
|
+
}
|
|
4498
|
+
isLoggedIn$() {
|
|
4499
|
+
return this.auth.getCurrentUser().pipe(map(() => true),
|
|
4500
|
+
//map((user) => !!user),
|
|
4501
|
+
catchError(() => of(false)));
|
|
4502
|
+
}
|
|
4503
|
+
get isLoggedIn() {
|
|
4504
|
+
if (!this.loggedIn.value) {
|
|
4505
|
+
this.loggedIn.next(this.auth.isLoggedIn());
|
|
4506
|
+
}
|
|
4507
|
+
return this.loggedIn.asObservable();
|
|
4508
|
+
}
|
|
4509
|
+
getCurrentUser$() {
|
|
4510
|
+
return this.auth.getCurrentUser();
|
|
4511
|
+
}
|
|
4512
|
+
doLogoutAndRedirectToLogin() {
|
|
4513
|
+
this.doLogoutUser();
|
|
4514
|
+
this.router.navigate([""]);
|
|
4515
|
+
}
|
|
4516
|
+
doLogoutUser() {
|
|
4517
|
+
this.cache.pruneAll();
|
|
4518
|
+
this.auth.doLogoutUser();
|
|
4519
|
+
}
|
|
4520
|
+
}
|
|
4521
|
+
TruAuth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, deps: [{ token: i1$5.Router }, { token: i1$2.HttpClient }, { token: TruAuthCache }, { token: TRU_AUTH_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4522
|
+
TruAuth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, providedIn: "root" });
|
|
4523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, decorators: [{
|
|
4524
|
+
type: Injectable,
|
|
4525
|
+
args: [{
|
|
4526
|
+
providedIn: "root",
|
|
4527
|
+
}]
|
|
4528
|
+
}], ctorParameters: function () {
|
|
4529
|
+
return [{ type: i1$5.Router }, { type: i1$2.HttpClient }, { type: TruAuthCache }, { type: undefined, decorators: [{
|
|
4530
|
+
type: Inject,
|
|
4531
|
+
args: [TRU_AUTH_STRATEGY]
|
|
4532
|
+
}] }];
|
|
4533
|
+
} });
|
|
4534
|
+
|
|
4535
|
+
class TruLogin {
|
|
4536
|
+
constructor(auth) {
|
|
4537
|
+
this.auth = auth;
|
|
4538
|
+
this.loginForm = new FormGroup({
|
|
4539
|
+
username: new FormControl('', Validators.required),
|
|
4540
|
+
password: new FormControl('', Validators.required)
|
|
4541
|
+
});
|
|
4542
|
+
this.loginError = "";
|
|
4543
|
+
}
|
|
4544
|
+
get f() {
|
|
4545
|
+
return this.loginForm.controls;
|
|
4546
|
+
}
|
|
4547
|
+
onSubmit() {
|
|
4548
|
+
//create a new login request
|
|
4549
|
+
const loginRequest = {
|
|
4550
|
+
username: this.f.username.value,
|
|
4551
|
+
password: this.f.password.value
|
|
4552
|
+
};
|
|
4553
|
+
if (loginRequest.username && loginRequest.password) {
|
|
4554
|
+
this.auth
|
|
4555
|
+
.login(loginRequest)
|
|
4556
|
+
.subscribe((user) => [
|
|
4557
|
+
//this.router.navigate(...) where to?
|
|
4558
|
+
]
|
|
4559
|
+
//if there is a login error
|
|
4560
|
+
, (error) => {
|
|
4561
|
+
if (error.status === 401) {
|
|
4562
|
+
this.loginError = "Incorrect username and/or password";
|
|
4563
|
+
}
|
|
4564
|
+
else {
|
|
4565
|
+
this.loginError = "Invalid Login - Error: " + error.status;
|
|
4566
|
+
}
|
|
4567
|
+
//if
|
|
4568
|
+
});
|
|
4569
|
+
}
|
|
4570
|
+
}
|
|
4571
|
+
}
|
|
4572
|
+
TruLogin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruLogin, deps: [{ token: TruAuth }], target: i0.ɵɵFactoryTarget.Component });
|
|
4573
|
+
TruLogin.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TruLogin, selector: "tru-login", ngImport: i0, template: "<div class=\"wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> loginFormTitle </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i5$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
4574
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruLogin, decorators: [{
|
|
4575
|
+
type: Component,
|
|
4576
|
+
args: [{ selector: 'tru-login', template: "<div class=\"wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> loginFormTitle </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}\n"] }]
|
|
4577
|
+
}], ctorParameters: function () { return [{ type: TruAuth }]; } });
|
|
4578
|
+
|
|
4579
|
+
class MaterialModule {
|
|
4580
|
+
}
|
|
4581
|
+
MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4582
|
+
MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: MaterialModule, exports: [A11yModule,
|
|
4583
|
+
CdkAccordionModule,
|
|
4584
|
+
ClipboardModule,
|
|
4585
|
+
CdkStepperModule,
|
|
4586
|
+
CdkTableModule,
|
|
4587
|
+
CdkTreeModule,
|
|
4588
|
+
DragDropModule,
|
|
4589
|
+
MatAutocompleteModule,
|
|
4590
|
+
MatBadgeModule,
|
|
4591
|
+
MatBottomSheetModule,
|
|
4592
|
+
MatButtonModule,
|
|
4593
|
+
MatButtonToggleModule,
|
|
4594
|
+
MatCardModule,
|
|
4595
|
+
MatCheckboxModule,
|
|
4596
|
+
MatChipsModule,
|
|
4597
|
+
MatStepperModule,
|
|
4598
|
+
MatDatepickerModule,
|
|
4599
|
+
MatDialogModule,
|
|
4600
|
+
MatDividerModule,
|
|
4601
|
+
MatExpansionModule,
|
|
4602
|
+
MatGridListModule,
|
|
4603
|
+
MatIconModule,
|
|
4604
|
+
MatInputModule,
|
|
4605
|
+
MatListModule,
|
|
4606
|
+
MatMenuModule,
|
|
4607
|
+
MatNativeDateModule,
|
|
4608
|
+
MatPaginatorModule,
|
|
4609
|
+
MatProgressBarModule,
|
|
4610
|
+
MatProgressSpinnerModule,
|
|
4611
|
+
MatRadioModule,
|
|
4612
|
+
MatRippleModule,
|
|
4613
|
+
MatSelectModule,
|
|
4614
|
+
MatSidenavModule,
|
|
4615
|
+
MatSliderModule,
|
|
4616
|
+
MatSlideToggleModule,
|
|
4617
|
+
MatSnackBarModule,
|
|
4618
|
+
MatSortModule,
|
|
4619
|
+
MatTableModule,
|
|
4620
|
+
MatTabsModule,
|
|
4621
|
+
MatToolbarModule,
|
|
4622
|
+
MatTooltipModule,
|
|
4623
|
+
MatTreeModule,
|
|
4624
|
+
OverlayModule,
|
|
4625
|
+
PortalModule,
|
|
4626
|
+
ScrollingModule] });
|
|
4627
|
+
MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MaterialModule, imports: [A11yModule,
|
|
4628
|
+
CdkAccordionModule,
|
|
4629
|
+
ClipboardModule,
|
|
4630
|
+
CdkStepperModule,
|
|
4631
|
+
CdkTableModule,
|
|
4632
|
+
CdkTreeModule,
|
|
4633
|
+
DragDropModule,
|
|
4634
|
+
MatAutocompleteModule,
|
|
4635
|
+
MatBadgeModule,
|
|
4636
|
+
MatBottomSheetModule,
|
|
4637
|
+
MatButtonModule,
|
|
4638
|
+
MatButtonToggleModule,
|
|
4639
|
+
MatCardModule,
|
|
4640
|
+
MatCheckboxModule,
|
|
4641
|
+
MatChipsModule,
|
|
4642
|
+
MatStepperModule,
|
|
4643
|
+
MatDatepickerModule,
|
|
4644
|
+
MatDialogModule,
|
|
4645
|
+
MatDividerModule,
|
|
4646
|
+
MatExpansionModule,
|
|
4647
|
+
MatGridListModule,
|
|
4648
|
+
MatIconModule,
|
|
4649
|
+
MatInputModule,
|
|
4650
|
+
MatListModule,
|
|
4651
|
+
MatMenuModule,
|
|
4652
|
+
MatNativeDateModule,
|
|
4653
|
+
MatPaginatorModule,
|
|
4654
|
+
MatProgressBarModule,
|
|
4655
|
+
MatProgressSpinnerModule,
|
|
4656
|
+
MatRadioModule,
|
|
4657
|
+
MatRippleModule,
|
|
4658
|
+
MatSelectModule,
|
|
4659
|
+
MatSidenavModule,
|
|
4660
|
+
MatSliderModule,
|
|
4661
|
+
MatSlideToggleModule,
|
|
4662
|
+
MatSnackBarModule,
|
|
4663
|
+
MatSortModule,
|
|
4664
|
+
MatTableModule,
|
|
4665
|
+
MatTabsModule,
|
|
4666
|
+
MatToolbarModule,
|
|
4667
|
+
MatTooltipModule,
|
|
4668
|
+
MatTreeModule,
|
|
4669
|
+
OverlayModule,
|
|
4670
|
+
PortalModule,
|
|
4671
|
+
ScrollingModule] });
|
|
4672
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MaterialModule, decorators: [{
|
|
4673
|
+
type: NgModule,
|
|
4674
|
+
args: [{
|
|
4675
|
+
exports: [
|
|
4676
|
+
A11yModule,
|
|
4677
|
+
CdkAccordionModule,
|
|
4678
|
+
ClipboardModule,
|
|
4679
|
+
CdkStepperModule,
|
|
4680
|
+
CdkTableModule,
|
|
4681
|
+
CdkTreeModule,
|
|
4682
|
+
DragDropModule,
|
|
4683
|
+
MatAutocompleteModule,
|
|
4684
|
+
MatBadgeModule,
|
|
4685
|
+
MatBottomSheetModule,
|
|
4686
|
+
MatButtonModule,
|
|
4687
|
+
MatButtonToggleModule,
|
|
4688
|
+
MatCardModule,
|
|
4689
|
+
MatCheckboxModule,
|
|
4690
|
+
MatChipsModule,
|
|
4691
|
+
MatStepperModule,
|
|
4692
|
+
MatDatepickerModule,
|
|
4693
|
+
MatDialogModule,
|
|
4694
|
+
MatDividerModule,
|
|
4695
|
+
MatExpansionModule,
|
|
4696
|
+
MatGridListModule,
|
|
4697
|
+
MatIconModule,
|
|
4698
|
+
MatInputModule,
|
|
4699
|
+
MatListModule,
|
|
4700
|
+
MatMenuModule,
|
|
4701
|
+
MatNativeDateModule,
|
|
4702
|
+
MatPaginatorModule,
|
|
4703
|
+
MatProgressBarModule,
|
|
4704
|
+
MatProgressSpinnerModule,
|
|
4705
|
+
MatRadioModule,
|
|
4706
|
+
MatRippleModule,
|
|
4707
|
+
MatSelectModule,
|
|
4708
|
+
MatSidenavModule,
|
|
4709
|
+
MatSliderModule,
|
|
4710
|
+
MatSlideToggleModule,
|
|
4711
|
+
MatSnackBarModule,
|
|
4712
|
+
MatSortModule,
|
|
4713
|
+
MatTableModule,
|
|
4714
|
+
MatTabsModule,
|
|
4715
|
+
MatToolbarModule,
|
|
4716
|
+
MatTooltipModule,
|
|
4717
|
+
MatTreeModule,
|
|
4718
|
+
OverlayModule,
|
|
4719
|
+
PortalModule,
|
|
4720
|
+
ScrollingModule,
|
|
4721
|
+
]
|
|
4722
|
+
}]
|
|
4723
|
+
}] });
|
|
4724
|
+
|
|
4725
|
+
class TruLoginModule {
|
|
4726
|
+
}
|
|
4727
|
+
TruLoginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruLoginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4728
|
+
TruLoginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: TruLoginModule, declarations: [TruLogin], imports: [CommonModule, MaterialModule, FormsModule, ReactiveFormsModule], exports: [TruLogin] });
|
|
4729
|
+
TruLoginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruLoginModule, imports: [CommonModule, MaterialModule, FormsModule, ReactiveFormsModule] });
|
|
4730
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruLoginModule, decorators: [{
|
|
4731
|
+
type: NgModule,
|
|
4732
|
+
args: [{
|
|
4733
|
+
declarations: [TruLogin],
|
|
4734
|
+
imports: [CommonModule, MaterialModule, FormsModule, ReactiveFormsModule,],
|
|
4735
|
+
exports: [TruLogin]
|
|
4736
|
+
}]
|
|
4737
|
+
}] });
|
|
4738
|
+
|
|
4739
|
+
class TruAuthJwtStrategy {
|
|
4740
|
+
constructor() {
|
|
4741
|
+
this.JWT_TOKEN = "JWT_TOKEN";
|
|
4742
|
+
}
|
|
4743
|
+
doLoginUser(token) {
|
|
4744
|
+
localStorage.setItem(this.JWT_TOKEN, token.jwt);
|
|
4745
|
+
}
|
|
4746
|
+
doLogoutUser() {
|
|
4747
|
+
localStorage.removeItem(this.JWT_TOKEN);
|
|
4748
|
+
}
|
|
4749
|
+
getCurrentUser() {
|
|
4750
|
+
//todo check v6 for how this should be done
|
|
4751
|
+
return of(undefined);
|
|
4752
|
+
}
|
|
4753
|
+
isLoggedIn() {
|
|
4754
|
+
return !!this.getJwtToken();
|
|
4755
|
+
}
|
|
4756
|
+
getJwtToken() {
|
|
4757
|
+
return localStorage.getItem(this.JWT_TOKEN);
|
|
4758
|
+
}
|
|
4759
|
+
getToken() {
|
|
4760
|
+
var token = localStorage.getItem(this.JWT_TOKEN);
|
|
4761
|
+
if (token && token !== "undefined") {
|
|
4762
|
+
const encodedPayload = token.split(".")[1];
|
|
4763
|
+
const payloadStr = window.atob(encodedPayload);
|
|
4764
|
+
var payload = JSON.parse(payloadStr);
|
|
4765
|
+
var exp = payload["exp"];
|
|
4766
|
+
var d = new Date();
|
|
4767
|
+
var epoch = Math.round(d.getTime() / 1000);
|
|
4768
|
+
if (exp < epoch) {
|
|
4769
|
+
localStorage.removeItem(this.JWT_TOKEN);
|
|
4770
|
+
return null;
|
|
4771
|
+
}
|
|
4772
|
+
}
|
|
4773
|
+
return token;
|
|
4774
|
+
}
|
|
4775
|
+
}
|
|
4776
|
+
|
|
4777
|
+
// import { ConfigService } from "../config.service";
|
|
4778
|
+
class TruAuthInterceptor {
|
|
4779
|
+
constructor(auth, jwt) {
|
|
4780
|
+
this.auth = auth;
|
|
4781
|
+
this.jwt = jwt;
|
|
4782
|
+
}
|
|
4783
|
+
intercept(request, next) {
|
|
4784
|
+
if (TRU_AUTH_CONFIG.auth === "token" && this.jwt && this.jwt.getToken()) {
|
|
4785
|
+
request = this.addToken(request, String(this.jwt.getToken()));
|
|
4786
|
+
}
|
|
4787
|
+
return next.handle(request).pipe(catchError((error) => {
|
|
4788
|
+
if (error.status === 401) {
|
|
4789
|
+
this.auth.doLogoutAndRedirectToLogin();
|
|
4790
|
+
}
|
|
4791
|
+
return throwError(error);
|
|
4792
|
+
}));
|
|
4793
|
+
}
|
|
4794
|
+
addToken(request, token) {
|
|
4795
|
+
return request.clone({
|
|
4796
|
+
setHeaders: { Authorization: `Bearer ${token}` },
|
|
4797
|
+
});
|
|
4798
|
+
}
|
|
4799
|
+
}
|
|
4800
|
+
TruAuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuthInterceptor, deps: [{ token: TruAuth }, { token: TRU_AUTH_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4801
|
+
TruAuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuthInterceptor });
|
|
4802
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuthInterceptor, decorators: [{
|
|
4803
|
+
type: Injectable
|
|
4804
|
+
}], ctorParameters: function () {
|
|
4805
|
+
return [{ type: TruAuth }, { type: TruAuthJwtStrategy, decorators: [{
|
|
4806
|
+
type: Inject,
|
|
4807
|
+
args: [TRU_AUTH_STRATEGY]
|
|
4808
|
+
}] }];
|
|
4809
|
+
} });
|
|
4810
|
+
|
|
4411
4811
|
class TruSearchPanelPositionManager {
|
|
4412
4812
|
constructor(el, renderer) {
|
|
4413
4813
|
this.el = el;
|
|
@@ -4923,7 +5323,7 @@ class TruSearchIconModule {
|
|
|
4923
5323
|
iconRegistry.addSvgIconLiteral("contains-operator-icon", sanitizer.bypassSecurityTrustHtml(CONTAINS_ICON));
|
|
4924
5324
|
}
|
|
4925
5325
|
}
|
|
4926
|
-
TruSearchIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruSearchIconModule, deps: [{ token: i1$
|
|
5326
|
+
TruSearchIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruSearchIconModule, deps: [{ token: i1$6.DomSanitizer }, { token: i2.MatIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4927
5327
|
TruSearchIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: TruSearchIconModule, imports: [CommonModule, FormsModule] });
|
|
4928
5328
|
TruSearchIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruSearchIconModule, imports: [CommonModule, FormsModule] });
|
|
4929
5329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruSearchIconModule, decorators: [{
|
|
@@ -4933,7 +5333,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
4933
5333
|
declarations: [],
|
|
4934
5334
|
exports: []
|
|
4935
5335
|
}]
|
|
4936
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
5336
|
+
}], ctorParameters: function () { return [{ type: i1$6.DomSanitizer }, { type: i2.MatIconRegistry }]; } });
|
|
4937
5337
|
|
|
4938
5338
|
class TruCommonModule {
|
|
4939
5339
|
}
|
|
@@ -4957,5 +5357,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
4957
5357
|
* Generated bundle index. Do not edit.
|
|
4958
5358
|
*/
|
|
4959
5359
|
|
|
4960
|
-
export { DetailViewModule, TruAppEnvironment, TruBreezeContext, TruBreezeContextFactory, TruBreezeMetadataProvider, TruChoice, TruColumn, TruColumnModule, TruCommonModule, TruComponentConfigBase, TruComponentLookup, TruConfirmDialog, TruConfirmDialogConfig, TruConfirmDialogModule, TruContextFilter, TruContextFilterChoice, TruContextFilters, TruControlComponentConfigBase, TruDataContext, TruDataGrid, TruDataGridModule, TruDataGridTypes, TruDesktop, TruDesktopManager, TruDesktopModule, TruDetailViewBase, TruEditControlConfigBase, TruEntityAccessor, TruEntityBase, TruExportDialog, TruExportDialogConfig, TruExportDialogModule, TruForm, TruFormModule, TruFormulaEval, TruGroupBox, TruGroupBoxModule, TruPredicate, TruPredicateMap, TruPropertyConfigBase, TruPropertyConfigCloudFile, TruPropertyConfigDate, TruPropertyConfigDecimal, TruPropertyConfigFile, TruPropertyConfigForeignKey, TruPropertyConfigInteger, TruPropertyConfigPassword, TruPropertyConfigPercentage, TruPropertyConfigScientific, TruPropertyConfigText, TruPropertyConfigTextChoices, TruPropertyConfigUsaAddress, TruPropertyConfigZipCode, TruQueryPredicateManager, TruRow, TruRowModule, TruSearchConfigBase, TruSearchControlBase, TruSearchControlConfigBase, TruSearchControlRangeBase, TruSearchIconModule, TruSearchPanelPositionManager, TruSearchPanelPositionManagerModule, TruSearchViewBase, TruSearchViewBaseModule, TruSearchViewControlEventHandler, TruSearchViewEventHandler, TruSort, TruTableConfigBase, TruTableRegistry, TruTextManager, TruToolbar, TruToolbarButton, TruToolbarButtonModule, TruToolbarContextFilter, TruToolbarContextFilterModule, TruToolbarDropdown, TruToolbarDropdownModule, TruToolbarMenu, TruToolbarMenuModule, TruToolbarModule, TruToolbarSeparator, TruToolbarSeparatorModule, TruToolbarText, TruToolbarTextModule, TruUiNotification, TruUser, TruUtil, TruWindowActionEventHandler, TruWindowAddViewEventArgs, TruWindowEventArgs, TruWindowEventHandler };
|
|
5360
|
+
export { DetailViewModule, TruAppEnvironment, TruAuthInterceptor, TruBreezeContext, TruBreezeContextFactory, TruBreezeMetadataProvider, TruChoice, TruColumn, TruColumnModule, TruCommonModule, TruComponentConfigBase, TruComponentLookup, TruConfirmDialog, TruConfirmDialogConfig, TruConfirmDialogModule, TruContextFilter, TruContextFilterChoice, TruContextFilters, TruControlComponentConfigBase, TruDataContext, TruDataGrid, TruDataGridModule, TruDataGridTypes, TruDesktop, TruDesktopManager, TruDesktopModule, TruDetailViewBase, TruEditControlConfigBase, TruEntityAccessor, TruEntityBase, TruExportDialog, TruExportDialogConfig, TruExportDialogModule, TruForm, TruFormModule, TruFormulaEval, TruGroupBox, TruGroupBoxModule, TruLogin, TruLoginModule, TruPredicate, TruPredicateMap, TruPropertyConfigBase, TruPropertyConfigCloudFile, TruPropertyConfigDate, TruPropertyConfigDecimal, TruPropertyConfigFile, TruPropertyConfigForeignKey, TruPropertyConfigInteger, TruPropertyConfigPassword, TruPropertyConfigPercentage, TruPropertyConfigScientific, TruPropertyConfigText, TruPropertyConfigTextChoices, TruPropertyConfigUsaAddress, TruPropertyConfigZipCode, TruQueryPredicateManager, TruRow, TruRowModule, TruSearchConfigBase, TruSearchControlBase, TruSearchControlConfigBase, TruSearchControlRangeBase, TruSearchIconModule, TruSearchPanelPositionManager, TruSearchPanelPositionManagerModule, TruSearchViewBase, TruSearchViewBaseModule, TruSearchViewControlEventHandler, TruSearchViewEventHandler, TruSort, TruTableConfigBase, TruTableRegistry, TruTextManager, TruToolbar, TruToolbarButton, TruToolbarButtonModule, TruToolbarContextFilter, TruToolbarContextFilterModule, TruToolbarDropdown, TruToolbarDropdownModule, TruToolbarMenu, TruToolbarMenuModule, TruToolbarModule, TruToolbarSeparator, TruToolbarSeparatorModule, TruToolbarText, TruToolbarTextModule, TruUiNotification, TruUser, TruUtil, TruWindowActionEventHandler, TruWindowAddViewEventArgs, TruWindowEventArgs, TruWindowEventHandler };
|
|
4961
5361
|
//# sourceMappingURL=trudb-tru-common-lib.mjs.map
|