@trudb/tru-common-lib 0.2.158 → 0.2.159

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.
@@ -5,7 +5,7 @@ import * as i1$1 from '@angular/common';
5
5
  import { CommonModule, NgIf, NgClass, DatePipe } from '@angular/common';
6
6
  import * as i7 from '@angular/forms';
7
7
  import { FormsModule, FormControl, ReactiveFormsModule, FormGroup, Validators } from '@angular/forms';
8
- import { BehaviorSubject, defer, from, of, Subject, Observable, fromEvent, skip, forkJoin, first, tap as tap$1, delayWhen, interval, finalize, throwError } from 'rxjs';
8
+ import { BehaviorSubject, defer, from, of, Subject, Observable, fromEvent, skip, forkJoin, first, finalize, throwError } from 'rxjs';
9
9
  import * as _ from 'underscore';
10
10
  import ___default from 'underscore';
11
11
  import * as i2 from '@angular/common/http';
@@ -27,7 +27,7 @@ import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
27
27
  import * as i3 from '@angular/material/button';
28
28
  import { MatButtonModule, MatButton } from '@angular/material/button';
29
29
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
30
- import * as i5$2 from '@angular/material/card';
30
+ import * as i5$3 from '@angular/material/card';
31
31
  import { MatCardModule } from '@angular/material/card';
32
32
  import * as i4 from '@angular/material/checkbox';
33
33
  import { MatCheckboxModule, MatCheckbox } from '@angular/material/checkbox';
@@ -35,16 +35,16 @@ import { MatChipsModule } from '@angular/material/chips';
35
35
  import { MatStepperModule } from '@angular/material/stepper';
36
36
  import { MatDatepickerModule } from '@angular/material/datepicker';
37
37
  import { MatDividerModule, MatDivider as MatDivider$1 } from '@angular/material/divider';
38
- import * as i4$2 from '@angular/material/expansion';
38
+ import * as i4$1 from '@angular/material/expansion';
39
39
  import { MatExpansionModule } from '@angular/material/expansion';
40
40
  import { MatGridListModule } from '@angular/material/grid-list';
41
41
  import * as i2$1 from '@angular/material/icon';
42
42
  import { MatIconModule, MatIcon } from '@angular/material/icon';
43
43
  import * as i9 from '@angular/material/input';
44
44
  import { MatInputModule, MatFormField, MatInput } from '@angular/material/input';
45
- import * as i5$1 from '@angular/material/list';
45
+ import * as i5$2 from '@angular/material/list';
46
46
  import { MatListModule, MatList, MatSelectionList, MatListOption, MatDivider, MatListItem } from '@angular/material/list';
47
- import * as i4$1 from '@angular/material/menu';
47
+ import * as i5 from '@angular/material/menu';
48
48
  import { MatMenuModule, MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
49
49
  import { MatNativeDateModule, MatRippleModule, MatPseudoCheckbox } from '@angular/material/core';
50
50
  import { MatPaginatorModule } from '@angular/material/paginator';
@@ -60,7 +60,7 @@ import { MatSliderModule } from '@angular/material/slider';
60
60
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
61
61
  import { MatSnackBarModule } from '@angular/material/snack-bar';
62
62
  import { MatSortModule } from '@angular/material/sort';
63
- import * as i5 from '@angular/material/table';
63
+ import * as i5$1 from '@angular/material/table';
64
64
  import { MatTableModule, MatTable } from '@angular/material/table';
65
65
  import * as i2$3 from '@angular/material/tabs';
66
66
  import { MatTabsModule, MatTab, MatTabGroup } from '@angular/material/tabs';
@@ -3279,7 +3279,7 @@ class TruToolbarUserProfile {
3279
3279
  this.auth.logout();
3280
3280
  };
3281
3281
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruToolbarUserProfile, deps: [{ token: TruUser }, { token: TruAuth }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
3282
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruToolbarUserProfile, isStandalone: true, selector: "tru-toolbar-user-profile", ngImport: i0, template: "<div class=\"tru-toolbar-user-profile\">\r\n <button mat-mini-fab color=\"primary\" class=\"tru-toolbar-user-profile-user-button\" [matMenuTriggerFor]=\"userMenu\">\r\n {{initial}}\r\n </button>\r\n</div>\r\n<mat-menu #userMenu=\"matMenu\">\r\n <div class=\"tru-toolbar-user-profile-menu-container\">\r\n <mat-icon class=\"tru-toolbar-user-profile-menu-circle-icon\" [svgIcon]=\"'circle-icon'\"></mat-icon>\r\n <span class=\"tru-toolbar-user-profile-menu-circle-icon-text\">{{initial}}</span>\r\n <div class=\"tru-toolbar-user-profile-menu-text-container\">\r\n <p>{{name}}</p>\r\n <p *ngIf=\"email\">{{email}}</p>\r\n </div>\r\n <button mat-menu-item\r\n (click)=\"onChangePasswordButtonClicked()\"\r\n class=\"tru-toolbar-user-profile-menu-logout-button\">\r\n <mat-icon [svgIcon]=\"'change-password-icon'\"\r\n title=\"Change Password\"\r\n class=\"tru-toolbar-user-profile-change-password-icon\">\r\n </mat-icon>\r\n <span>Change Password</span>\r\n </button>\r\n <button mat-menu-item\r\n (click)=\"onLogoutButtonClicked()\"\r\n class=\"tru-toolbar-user-profile-menu-logout-button\">\r\n <mat-icon [svgIcon]=\"'logout-icon'\"\r\n title=\"Logout\"\r\n class=\"tru-toolbar-user-profile-logout-icon\">\r\n </mat-icon>\r\n <span>Logout</span>\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [".tru-toolbar-user-profile{height:25px;float:right}.tru-toolbar-user-profile button{height:23px;width:23px;margin-right:10px;margin-top:1px;font-size:12px;box-shadow:none}.tru-toolbar-user-profile-menu-container{width:250px}::ng-deep .tru-toolbar-user-profile-change-password-icon{right:3px}.tru-toolbar-user-profile-menu-container mat-icon{height:50px;width:50px;margin:auto;display:flex;justify-content:center;color:#006dcc}.tru-toolbar-user-profile-menu-container p{margin:5px;font-size:14px;text-align:center}.tru-toolbar-user-profile-menu-container .tru-toolbar-user-profile-menu-logout-button{display:flex;justify-content:center}.tru-toolbar-user-profile-menu-text-container{margin-top:-15px}.tru-toolbar-user-profile-menu-circle-icon-text{color:#fff;font-weight:200;font-size:30px;margin-right:12px;display:block;margin-left:12px;display:flex;justify-content:center;position:relative;z-index:100;top:-35px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
3282
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruToolbarUserProfile, isStandalone: true, selector: "tru-toolbar-user-profile", ngImport: i0, template: "<div class=\"tru-toolbar-user-profile\">\r\n <button mat-mini-fab color=\"primary\" class=\"tru-toolbar-user-profile-user-button\" [matMenuTriggerFor]=\"userMenu\">\r\n {{initial}}\r\n </button>\r\n</div>\r\n<mat-menu #userMenu=\"matMenu\">\r\n <div class=\"tru-toolbar-user-profile-menu-container\">\r\n <mat-icon class=\"tru-toolbar-user-profile-menu-circle-icon\" [svgIcon]=\"'circle-icon'\"></mat-icon>\r\n <span class=\"tru-toolbar-user-profile-menu-circle-icon-text\">{{initial}}</span>\r\n <div class=\"tru-toolbar-user-profile-menu-text-container\">\r\n <p>{{name}}</p>\r\n <p *ngIf=\"email\">{{email}}</p>\r\n </div>\r\n <button mat-menu-item\r\n (click)=\"onChangePasswordButtonClicked()\"\r\n class=\"tru-toolbar-user-profile-menu-logout-button\">\r\n <mat-icon [svgIcon]=\"'change-password-icon'\"\r\n title=\"Change Password\"\r\n class=\"tru-toolbar-user-profile-change-password-icon\">\r\n </mat-icon>\r\n <span>Change Password</span>\r\n </button>\r\n <button mat-menu-item\r\n (click)=\"onLogoutButtonClicked()\"\r\n class=\"tru-toolbar-user-profile-menu-logout-button\">\r\n <mat-icon [svgIcon]=\"'logout-icon'\"\r\n title=\"Logout\"\r\n class=\"tru-toolbar-user-profile-logout-icon\">\r\n </mat-icon>\r\n <span>Logout</span>\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [".tru-toolbar-user-profile{height:25px;float:right}.tru-toolbar-user-profile button{height:23px;width:23px;margin-right:10px;margin-top:1px;font-size:12px;box-shadow:none}.tru-toolbar-user-profile-menu-container{width:250px}::ng-deep .tru-toolbar-user-profile-change-password-icon{right:3px}.tru-toolbar-user-profile-menu-container mat-icon{height:50px;width:50px;margin:auto;display:flex;justify-content:center;color:#006dcc}.tru-toolbar-user-profile-menu-container p{margin:5px;font-size:14px;text-align:center}.tru-toolbar-user-profile-menu-container .tru-toolbar-user-profile-menu-logout-button{display:flex;justify-content:center}.tru-toolbar-user-profile-menu-text-container{margin-top:-15px}.tru-toolbar-user-profile-menu-circle-icon-text{color:#fff;font-weight:200;font-size:30px;margin-right:12px;display:block;margin-left:12px;display:flex;justify-content:center;position:relative;z-index:100;top:-35px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
3283
3283
  }
3284
3284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruToolbarUserProfile, decorators: [{
3285
3285
  type: Component,
@@ -4859,7 +4859,7 @@ class TruAppWindowOpenOnStartupSetting {
4859
4859
  this.displayedColumns = ['label', 'checked'];
4860
4860
  }
4861
4861
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruAppWindowOpenOnStartupSetting, deps: [{ token: TruUserPreferenceManager }, { token: TruModelTableLookup }], target: i0.ɵɵFactoryTarget.Component });
4862
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruAppWindowOpenOnStartupSetting, isStandalone: true, selector: "tru-app-window-open-on-startup-setting", ngImport: i0, template: "<p>Open Window(s) On Startup</p>\r\n<table mat-table [dataSource]=\"settings\">\r\n <ng-container matColumnDef=\"label\">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.label}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"checked\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"tru-app-window-open-on-startup-checkbox\">\r\n <mat-checkbox [(ngModel)]=\"element.checked\"></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" (click)=\"onRowClicked(row)\"></tr>\r\n</table>\r\n", styles: [".tru-app-window-open-on-startup-checkbox{text-align:center;justify-content:center}.tru-app-window-open-on-startup-checkbox mat-checkbox{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: "ngmodule", type: MaterialModule }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }] });
4862
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruAppWindowOpenOnStartupSetting, isStandalone: true, selector: "tru-app-window-open-on-startup-setting", ngImport: i0, template: "<p>Open Window(s) On Startup</p>\r\n<table mat-table [dataSource]=\"settings\">\r\n <ng-container matColumnDef=\"label\">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.label}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"checked\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"tru-app-window-open-on-startup-checkbox\">\r\n <mat-checkbox [(ngModel)]=\"element.checked\"></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" (click)=\"onRowClicked(row)\"></tr>\r\n</table>\r\n", styles: [".tru-app-window-open-on-startup-checkbox{text-align:center;justify-content:center}.tru-app-window-open-on-startup-checkbox mat-checkbox{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: "ngmodule", type: MaterialModule }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }] });
4863
4863
  }
4864
4864
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruAppWindowOpenOnStartupSetting, decorators: [{
4865
4865
  type: Component,
@@ -4908,7 +4908,7 @@ class TruAppSettingsDialog {
4908
4908
  });
4909
4909
  }
4910
4910
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruAppSettingsDialog, deps: [{ token: TruAppEnvironment }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
4911
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruAppSettingsDialog, isStandalone: true, selector: "tru-app-settings-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <div class=\"mat-dialog-title-container\">\r\n <mat-icon [svgIcon]=\"'settings-icon'\"\r\n title=\"Settings\">\r\n </mat-icon>\r\n App Settings\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <mat-sidenav-container class=\"example-sidenav-container\">\r\n <mat-sidenav #snav mode=\"side\" opened>\r\n <mat-nav-list>\r\n <a mat-list-item>Windows</a>\r\n </mat-nav-list>\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <tru-app-window-settings></tru-app-window-settings>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Close</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mat-dialog-title-container mat-icon{vertical-align:sub;height:24px;width:24px}mat-nav-list{width:200px}mat-sidenav-content{height:calc(100vh - 400px)}mat-sidenav-content{padding-left:10px}.mat-dialog-title-container{display:inline}.mdc-dialog__title{padding:0 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i5$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: TruAppWindowSettings, selector: "tru-app-window-settings" }] });
4911
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruAppSettingsDialog, isStandalone: true, selector: "tru-app-settings-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <div class=\"mat-dialog-title-container\">\r\n <mat-icon [svgIcon]=\"'settings-icon'\"\r\n title=\"Settings\">\r\n </mat-icon>\r\n App Settings\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <mat-sidenav-container class=\"example-sidenav-container\">\r\n <mat-sidenav #snav mode=\"side\" opened>\r\n <mat-nav-list>\r\n <a mat-list-item>Windows</a>\r\n </mat-nav-list>\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <tru-app-window-settings></tru-app-window-settings>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Close</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mat-dialog-title-container mat-icon{vertical-align:sub;height:24px;width:24px}mat-nav-list{width:200px}mat-sidenav-content{height:calc(100vh - 400px)}mat-sidenav-content{padding-left:10px}.mat-dialog-title-container{display:inline}.mdc-dialog__title{padding:0 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$2.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i5$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: TruAppWindowSettings, selector: "tru-app-window-settings" }] });
4912
4912
  }
4913
4913
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruAppSettingsDialog, decorators: [{
4914
4914
  type: Component,
@@ -5902,61 +5902,53 @@ class ColumnHeaderButton {
5902
5902
  }
5903
5903
  }
5904
5904
 
5905
- // @Directive declaration styled same as matMenuTriggerFor
5906
- // with different selector and exportAs.
5907
- class TruContextMenuTrigger extends MatMenuTrigger {
5908
- lastMouseEvent = null;
5909
- // Duplicate the code for the matMenuTriggerFor binding
5910
- // using a new property and the public menu accessors.
5911
- get menu_again() {
5912
- return this.menu;
5913
- }
5914
- set menu_again(menu) {
5915
- this.menu = menu;
5916
- }
5917
- // Override _handleMousedown, and call super._handleMousedown
5918
- _handleMousedown(event) {
5919
- this.lastMouseEvent = event;
5920
- super._handleMousedown(new MouseEvent(event.type));
5921
- }
5922
- ngAfterContentInit() {
5923
- // Can't just override a private method due to how the lib is compiled
5924
- this['_setPosition'] = (menu, positionStrategy) => {
5925
- let positions = [];
5926
- super['_setPosition'](menu, {
5927
- withPositions: (p) => {
5928
- positions = p;
5929
- },
5930
- });
5931
- positionStrategy.withPositions(positions);
5932
- if (this.lastMouseEvent) {
5933
- positionStrategy.setOrigin({ x: this.lastMouseEvent.clientX, y: this.lastMouseEvent.clientY });
5934
- }
5935
- positionStrategy.withViewportMargin(10);
5936
- };
5905
+ class TruDataGridCellRenderer {
5906
+ // private eGui: is an empty element to satisfy the getGui method.
5907
+ eGui;
5908
+ validationContainer;
5909
+ onMouseOver = (e) => {
5910
+ if (e.target)
5911
+ e.target.classList.contains('invalid-flag') ? this.validationContainer.classList.toggle('show') : this.validationContainer.classList.remove('show');
5912
+ };
5913
+ onRightClick = (event) => {
5914
+ event.stopPropagation();
5915
+ event.preventDefault();
5916
+ alert('Cell Clicked');
5917
+ };
5918
+ init(params) {
5919
+ params.eGridCell.innerHTML = '';
5920
+ let value = params.value;
5921
+ if (params.value === null)
5922
+ value = '';
5923
+ if (params.colDef.cellEditor && params.colDef.cellEditor.name === "StdRichTextList") {
5924
+ var p = document.createElement('div');
5925
+ p.innerHTML = value;
5926
+ params.eGridCell.appendChild(p);
5927
+ }
5928
+ else {
5929
+ var content = document.createTextNode(value);
5930
+ params.eGridCell.appendChild(content);
5931
+ }
5932
+ this.validationContainer = document.createElement('div');
5933
+ this.validationContainer.className = 'dialog-target';
5934
+ let validationFlag = document.createElement('span');
5935
+ validationFlag.className = 'invalid-flag';
5936
+ params.eGridCell.appendChild(this.validationContainer);
5937
+ params.eGridCell.appendChild(validationFlag);
5938
+ params.eGridCell.addEventListener('mouseover', this.onMouseOver);
5939
+ params.eGridCell.addEventListener('contextmenu', this.onRightClick);
5940
+ Object.assign(params.eGridCell.style, new TruUtil().rulesEval(params.data[params.colDef.field].rules(params.data.$entity)));
5937
5941
  }
5938
- ngOnDestroy() {
5939
- this['_closingActionsSubscription'].unsubscribe();
5940
- this['_menuCloseSubscription'].unsubscribe();
5941
- this['_hoverSubscription'].unsubscribe();
5942
- super.closeMenu();
5943
- super.ngOnDestroy();
5942
+ getGui() {
5943
+ return this.eGui;
5944
+ }
5945
+ refresh() {
5946
+ return false;
5947
+ }
5948
+ destroy() {
5949
+ document.removeEventListener('mouseover', this.onMouseOver);
5944
5950
  }
5945
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruContextMenuTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
5946
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.3", type: TruContextMenuTrigger, isStandalone: true, selector: "[truContextMenuTriggerFor]", inputs: { menu_again: ["truContextMenuTriggerFor", "menu_again"] }, host: { classAttribute: "mat-menu-trigger" }, usesInheritance: true, ngImport: i0 });
5947
5951
  }
5948
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruContextMenuTrigger, decorators: [{
5949
- type: Directive,
5950
- args: [{
5951
- selector: `[truContextMenuTriggerFor]`,
5952
- host: {
5953
- class: 'mat-menu-trigger',
5954
- }
5955
- }]
5956
- }], propDecorators: { menu_again: [{
5957
- type: Input,
5958
- args: ['truContextMenuTriggerFor']
5959
- }] } });
5960
5952
 
5961
5953
  class TruDataGridClipboard {
5962
5954
  util;
@@ -5971,12 +5963,18 @@ class TruDataGridClipboard {
5971
5963
  this.util = util;
5972
5964
  this.uiNotification = uiNotification;
5973
5965
  }
5974
- copyCell = (params, tableName, columnName, copiedCellData, copiedCellEntity) => {
5966
+ copyCell = async (params, tableName, columnName, copiedCellData, copiedCellEntity) => {
5975
5967
  this.tableName = tableName;
5976
5968
  this.columnName = columnName;
5977
5969
  this.copiedCellParams = params;
5978
5970
  this.copiedCellData = copiedCellData;
5979
5971
  this.copiedCellEntity = copiedCellEntity;
5972
+ try {
5973
+ await navigator.clipboard.writeText(params.value);
5974
+ }
5975
+ catch (err) {
5976
+ console.error('Failed to copy text: ', err);
5977
+ }
5980
5978
  };
5981
5979
  pasteCell = (params, pastedCellData, pastedCell) => {
5982
5980
  let colDef = params.colDef;
@@ -6016,11 +6014,8 @@ class TruDataGridClipboard {
6016
6014
  properties
6017
6015
  .forEach((propertyName) => {
6018
6016
  if (typeof selectedRow.$entity.setProperty !== 'undefined' &&
6017
+ selectedRow[propertyName] && selectedRow[propertyName].property.canEdit &&
6019
6018
  propertyName !== config.tableName + 'Ref' &&
6020
- propertyName !== 'Created' &&
6021
- propertyName !== 'CreatedRef' &&
6022
- propertyName !== 'Updated' &&
6023
- propertyName !== 'UpdatedRef' &&
6024
6019
  propertyName !== 'rowver' &&
6025
6020
  propertyName !== 'Merge_Data_Set' &&
6026
6021
  !propertyName.startsWith('o'))
@@ -6069,153 +6064,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
6069
6064
  }]
6070
6065
  }], ctorParameters: () => [{ type: TruUtil }, { type: TruUiNotification }] });
6071
6066
 
6072
- class TruDataGridCellRenderer {
6073
- dataContext;
6074
- dataGridClipboard;
6075
- contextMenu;
6076
- // private eGui: is an empty element to satisfy the getGui method.
6077
- eGui;
6078
- validationContainer;
6079
- windowClickSubscription;
6080
- menuSubscription;
6081
- params;
6082
- contextMenuPosition = { x: 0, y: 0 };
6083
- displayValue = '';
6084
- copyIsDisabled = true;
6085
- pasteIsDisabled = true;
6086
- constructor(dataContext, dataGridClipboard) {
6087
- this.dataContext = dataContext;
6088
- this.dataGridClipboard = dataGridClipboard;
6089
- }
6090
- delay(delayInms) {
6091
- return new Promise((resolve) => {
6092
- setTimeout(() => {
6093
- resolve(2);
6094
- }, delayInms);
6095
- });
6096
- }
6097
- onMouseOver = (e) => {
6098
- if (e.target)
6099
- e.target.classList.contains('invalid-flag') ? this.validationContainer.classList.toggle('show') : this.validationContainer.classList.remove('show');
6100
- };
6101
- onRightClick = (event) => {
6102
- event.preventDefault();
6103
- this.pasteIsDisabled = this.dataGridClipboard.getCopiedCell() ? false : true;
6104
- this.menuSubscription && this.menuSubscription.unsubscribe();
6105
- this.menuSubscription = of(1)
6106
- .pipe(tap$1(() => {
6107
- if (this.contextMenu.menuOpen) {
6108
- this.contextMenu.closeMenu();
6109
- }
6110
- this.contextMenuPosition.x = event.clientX;
6111
- this.contextMenuPosition.y = event.clientY;
6112
- }),
6113
- // delay(this.contextMenu.menuOpen ? 200 : 0),
6114
- delayWhen((_) => (this.contextMenu.menuOpen ? interval(200) : of(undefined))), tap$1(async () => {
6115
- this.contextMenu.menu?.focusFirstItem('mouse');
6116
- this.contextMenu.openMenu();
6117
- let backdrop;
6118
- do {
6119
- await this.delay(100);
6120
- backdrop = document.querySelector('div.cdk-overlay-backdrop.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing');
6121
- } while (backdrop === null);
6122
- backdrop.style.pointerEvents = 'none';
6123
- }))
6124
- .subscribe();
6125
- };
6126
- onCopy = (event) => {
6127
- this.dataGridClipboard.copyCell(this.params, this.params.context.grid.config.tableName, this.params.colDef?.field, this.params.data, this.params.data.$entity);
6128
- };
6129
- onPaste = (event) => {
6130
- this.dataGridClipboard.pasteCell(this.params, this.params.data, this.params.data.$entity);
6131
- };
6132
- init(params) {
6133
- }
6134
- agInit(params) {
6135
- this.params = params;
6136
- this.displayValue = params.value;
6137
- if (params.value === null)
6138
- this.displayValue = '';
6139
- if (params.colDef.cellEditor && params.colDef.cellEditor.name === "StdRichTextList") {
6140
- var p = document.createElement('div');
6141
- p.innerHTML = params.value;
6142
- params.eGridCell.appendChild(p);
6143
- }
6144
- else {
6145
- this.displayValue = params.value;
6146
- }
6147
- this.validationContainer = document.createElement('div');
6148
- this.validationContainer.className = 'dialog-target';
6149
- let validationFlag = document.createElement('span');
6150
- validationFlag.className = 'invalid-flag';
6151
- params.eGridCell.appendChild(this.validationContainer);
6152
- params.eGridCell.appendChild(validationFlag);
6153
- params.eGridCell.addEventListener('mouseover', this.onMouseOver);
6154
- params.eGridCell.addEventListener('contextmenu', this.onRightClick);
6155
- this.windowClickSubscription = fromEvent(window, 'click').subscribe((_) => {
6156
- if (this.contextMenu.menuOpen) {
6157
- this.contextMenu.closeMenu();
6158
- }
6159
- });
6160
- Object.assign(params.eGridCell.style, new TruUtil().rulesEval(params.data[params.colDef.field].rules(params.data.$entity)));
6161
- }
6162
- getGui() {
6163
- return this.eGui;
6164
- }
6165
- refresh() {
6166
- return false;
6167
- }
6168
- destroy() {
6169
- document.removeEventListener('mouseover', this.onMouseOver);
6170
- this.windowClickSubscription && this.windowClickSubscription.unsubscribe();
6171
- }
6172
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruDataGridCellRenderer, deps: [{ token: TruDataContext }, { token: TruDataGridClipboard }], target: i0.ɵɵFactoryTarget.Component });
6173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruDataGridCellRenderer, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "contextMenu", first: true, predicate: TruContextMenuTrigger, descendants: true }], ngImport: i0, template: `<div>{{displayValue}}
6174
- <div style="visibility: hidden; position: absolute;"
6175
- [truContextMenuTriggerFor]="truDataGridCellContextMenu">
6176
- </div>
6177
- <mat-menu #truDataGridCellContextMenu="matMenu" [hasBackdrop]="false">
6178
- <button mat-menu-item (click)="onCopy($event)">
6179
- <mat-icon [svgIcon]="'copy-icon'"></mat-icon>
6180
- <span>Copy</span>
6181
- </button>
6182
- <button mat-menu-item [disabled]="pasteIsDisabled" (click)="onPaste($event)">
6183
- <mat-icon [svgIcon]="'paste-icon'"></mat-icon>
6184
- <span>Paste</span>
6185
- </button>
6186
- </mat-menu>
6187
- </div>`, isInline: true, styles: ["::ng-deep .mat-mdc-menu-item{height:25px!important;min-height:25px!important}::ng-deep .mat-mdc-menu-content mat-icon svg{fill:#949494}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: TruContextMenuTrigger, selector: "[truContextMenuTriggerFor]", inputs: ["truContextMenuTriggerFor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6188
- }
6189
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruDataGridCellRenderer, decorators: [{
6190
- type: Component,
6191
- args: [{ standalone: true, imports: [
6192
- NgIf,
6193
- NgClass,
6194
- CommonModule,
6195
- MatIconModule,
6196
- MatButtonModule,
6197
- MatMenuModule,
6198
- TruContextMenuTrigger
6199
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: `<div>{{displayValue}}
6200
- <div style="visibility: hidden; position: absolute;"
6201
- [truContextMenuTriggerFor]="truDataGridCellContextMenu">
6202
- </div>
6203
- <mat-menu #truDataGridCellContextMenu="matMenu" [hasBackdrop]="false">
6204
- <button mat-menu-item (click)="onCopy($event)">
6205
- <mat-icon [svgIcon]="'copy-icon'"></mat-icon>
6206
- <span>Copy</span>
6207
- </button>
6208
- <button mat-menu-item [disabled]="pasteIsDisabled" (click)="onPaste($event)">
6209
- <mat-icon [svgIcon]="'paste-icon'"></mat-icon>
6210
- <span>Paste</span>
6211
- </button>
6212
- </mat-menu>
6213
- </div>`, styles: ["::ng-deep .mat-mdc-menu-item{height:25px!important;min-height:25px!important}::ng-deep .mat-mdc-menu-content mat-icon svg{fill:#949494}\n"] }]
6214
- }], ctorParameters: () => [{ type: TruDataContext }, { type: TruDataGridClipboard }], propDecorators: { contextMenu: [{
6215
- type: ViewChild,
6216
- args: [TruContextMenuTrigger]
6217
- }] } });
6218
-
6219
6067
  class TruDataGridPkeyCellRenderer {
6220
6068
  dataContext;
6221
6069
  dataGridClipboard;
@@ -6307,7 +6155,7 @@ class TruDataGridPkeyCellRenderer {
6307
6155
  <span>Insert At Top</span>
6308
6156
  </button>
6309
6157
  </mat-menu>
6310
- </div>`, isInline: true, styles: ["::ng-deep .mat-mdc-menu-item{height:25px!important;min-height:25px!important}::ng-deep .mat-mdc-menu-content mat-icon svg{fill:#949494}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6158
+ </div>`, isInline: true, styles: ["::ng-deep .mat-mdc-menu-item{height:25px!important;min-height:25px!important}::ng-deep .mat-mdc-menu-content mat-icon svg{fill:#949494}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6311
6159
  }
6312
6160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruDataGridPkeyCellRenderer, decorators: [{
6313
6161
  type: Component,
@@ -8014,7 +7862,7 @@ class TruToolbarAppCustomization {
8014
7862
  this.uiNotification.about();
8015
7863
  };
8016
7864
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruToolbarAppCustomization, deps: [{ token: i1.MatDialog }, { token: TruEntityAccessor }, { token: TruUser }, { token: TruAuth }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
8017
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruToolbarAppCustomization, isStandalone: true, selector: "tru-toolbar-app-customization", viewQueries: [{ propertyName: "fileInputElement", first: true, predicate: ["file"], descendants: true }], ngImport: i0, template: "<div class=\"tru-toolbar-app-customization\">\r\n <button mat-mini-fab class=\"tru-toolbar-app-customization-button\" [matMenuTriggerFor]=\"appCustomizationMenu\">\r\n <mat-icon \r\n [svgIcon]=\"'more-icon'\"\r\n title=\"Customize App\"\r\n class=\"std-search-control-operator-icon\">\r\n </mat-icon>\r\n </button>\r\n</div>\r\n<mat-menu #appCustomizationMenu=\"matMenu\">\r\n <input type=\"file\" #file (change)=\"importFiles($any($event.target).files)\" style=\"display:none\" accept=\".csv,.xlsx\" multiple>\r\n <div class=\"tru-toolbar-app-customization-menu-container\">\r\n <button mat-menu-item\r\n (click)=\"onImportClicked()\"\r\n class=\"tru-toolbar-app-customization-menu-logout-button\">\r\n <mat-icon [svgIcon]=\"'import-icon'\"\r\n title=\"Import\"\r\n class=\"tru-toolbar-app-customization-import-icon\">\r\n </mat-icon>\r\n <span>Import</span>\r\n </button>\r\n <button mat-menu-item\r\n (click)=\"onSettingsClicked()\"\r\n class=\"tru-toolbar-app-customization-menu-logout-button\">\r\n <mat-icon [svgIcon]=\"'settings-icon'\"\r\n title=\"Settings\"\r\n class=\"tru-toolbar-app-customization-settings-icon\">\r\n </mat-icon>\r\n <span>Settings</span>\r\n </button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item\r\n (click)=\"onAboutClicked()\"\r\n class=\"tru-toolbar-app-customization-menu-about-button\">\r\n <mat-icon [svgIcon]=\"'about-icon'\"\r\n title=\"About\"\r\n class=\"tru-toolbar-app-customization-about-icon\">\r\n </mat-icon>\r\n <span>About</span>\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [".tru-toolbar-app-customization{height:25px;float:right}.tru-toolbar-app-customization button{height:23px;width:23px;margin-right:10px;margin-top:1px;font-size:12px;box-shadow:none}.tru-toolbar-app-customization-button{background-color:transparent!important}.tru-toolbar-app-customization-button:hover,.tru-toolbar-app-customization-button:focus,.tru-toolbar-app-customization-button:active{background-color:#ababab}.tru-toolbar-app-customization-menu-container{width:250px}.tru-toolbar-app-customization-menu-container mat-icon{height:50px;width:50px;margin:auto;display:flex;justify-content:center;color:#006dcc}.tru-toolbar-app-customization-menu-container p{margin:5px;font-size:14px;text-align:center}.tru-toolbar-app-customization-menu-container .tru-toolbar-app-customization-menu-logout-button{display:flex;justify-content:center}.tru-toolbar-app-customization-menu-text-container{margin-top:-15px}.tru-toolbar-app-customization-menu-circle-icon-text{color:#fff;font-weight:200;font-size:30px;margin-right:12px;display:block;margin-left:12px;display:flex;justify-content:center;position:relative;z-index:100;top:-35px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatDivider$1, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], encapsulation: i0.ViewEncapsulation.None });
7865
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruToolbarAppCustomization, isStandalone: true, selector: "tru-toolbar-app-customization", viewQueries: [{ propertyName: "fileInputElement", first: true, predicate: ["file"], descendants: true }], ngImport: i0, template: "<div class=\"tru-toolbar-app-customization\">\r\n <button mat-mini-fab class=\"tru-toolbar-app-customization-button\" [matMenuTriggerFor]=\"appCustomizationMenu\">\r\n <mat-icon \r\n [svgIcon]=\"'more-icon'\"\r\n title=\"Customize App\"\r\n class=\"std-search-control-operator-icon\">\r\n </mat-icon>\r\n </button>\r\n</div>\r\n<mat-menu #appCustomizationMenu=\"matMenu\">\r\n <input type=\"file\" #file (change)=\"importFiles($any($event.target).files)\" style=\"display:none\" accept=\".csv,.xlsx\" multiple>\r\n <div class=\"tru-toolbar-app-customization-menu-container\">\r\n <button mat-menu-item\r\n (click)=\"onImportClicked()\"\r\n class=\"tru-toolbar-app-customization-menu-logout-button\">\r\n <mat-icon [svgIcon]=\"'import-icon'\"\r\n title=\"Import\"\r\n class=\"tru-toolbar-app-customization-import-icon\">\r\n </mat-icon>\r\n <span>Import</span>\r\n </button>\r\n <button mat-menu-item\r\n (click)=\"onSettingsClicked()\"\r\n class=\"tru-toolbar-app-customization-menu-logout-button\">\r\n <mat-icon [svgIcon]=\"'settings-icon'\"\r\n title=\"Settings\"\r\n class=\"tru-toolbar-app-customization-settings-icon\">\r\n </mat-icon>\r\n <span>Settings</span>\r\n </button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item\r\n (click)=\"onAboutClicked()\"\r\n class=\"tru-toolbar-app-customization-menu-about-button\">\r\n <mat-icon [svgIcon]=\"'about-icon'\"\r\n title=\"About\"\r\n class=\"tru-toolbar-app-customization-about-icon\">\r\n </mat-icon>\r\n <span>About</span>\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [".tru-toolbar-app-customization{height:25px;float:right}.tru-toolbar-app-customization button{height:23px;width:23px;margin-right:10px;margin-top:1px;font-size:12px;box-shadow:none}.tru-toolbar-app-customization-button{background-color:transparent!important}.tru-toolbar-app-customization-button:hover,.tru-toolbar-app-customization-button:focus,.tru-toolbar-app-customization-button:active{background-color:#ababab}.tru-toolbar-app-customization-menu-container{width:250px}.tru-toolbar-app-customization-menu-container mat-icon{height:50px;width:50px;margin:auto;display:flex;justify-content:center;color:#006dcc}.tru-toolbar-app-customization-menu-container p{margin:5px;font-size:14px;text-align:center}.tru-toolbar-app-customization-menu-container .tru-toolbar-app-customization-menu-logout-button{display:flex;justify-content:center}.tru-toolbar-app-customization-menu-text-container{margin-top:-15px}.tru-toolbar-app-customization-menu-circle-icon-text{color:#fff;font-weight:200;font-size:30px;margin-right:12px;display:block;margin-left:12px;display:flex;justify-content:center;position:relative;z-index:100;top:-35px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatDivider$1, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], encapsulation: i0.ViewEncapsulation.None });
8018
7866
  }
8019
7867
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruToolbarAppCustomization, decorators: [{
8020
7868
  type: Component,
@@ -10170,7 +10018,7 @@ class TruErrorDialog {
10170
10018
  this.dialogRef.close(false);
10171
10019
  }
10172
10020
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruErrorDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
10173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruErrorDialog, isStandalone: true, selector: "tru-error-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"tru-error-dialog-title mat-dialog-title\">\r\n <div class=\"mat-dialog-title-container\">\r\n <mat-icon [svgIcon]=\"'error-icon'\"\r\n title=\"Error\">\r\n </mat-icon>\r\n Error - {{title}}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <div class=\"tru-about-description\">\r\n {{message}}\r\n </div>\r\n <mat-expansion-panel *ngIf=\"stackTrace\"\r\n (opened)=\"panelOpenState.set(true)\"\r\n (closed)=\"panelOpenState.set(false)\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-description>\r\n Show Stack Trace\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <p>{{stackTrace}}</p>\r\n </mat-expansion-panel>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Close</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mat-dialog-title-container mat-icon{vertical-align:sub;height:24px;width:24px}.mat-dialog-title-container{display:inline}.mdc-dialog__title{padding:0 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.tru-about-description{width:550px;height:200px;padding:5px;margin-bottom:5px;border:1px #cbcbcb solid}.mat-expansion-panel{border-radius:0!important}mat-panel-description{font-size:12px;text-decoration:underline;border-radius:0}::ng-deep .tru-error-dialog-title svg{fill:red}::ng-deep .tru-error-dialog-title svg path{fill:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4$2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4$2.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i4$2.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatExpansionModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10021
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruErrorDialog, isStandalone: true, selector: "tru-error-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"tru-error-dialog-title mat-dialog-title\">\r\n <div class=\"mat-dialog-title-container\">\r\n <mat-icon [svgIcon]=\"'error-icon'\"\r\n title=\"Error\">\r\n </mat-icon>\r\n Error - {{title}}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <div class=\"tru-about-description\">\r\n {{message}}\r\n </div>\r\n <mat-expansion-panel *ngIf=\"stackTrace\"\r\n (opened)=\"panelOpenState.set(true)\"\r\n (closed)=\"panelOpenState.set(false)\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-description>\r\n Show Stack Trace\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <p>{{stackTrace}}</p>\r\n </mat-expansion-panel>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Close</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mat-dialog-title-container mat-icon{vertical-align:sub;height:24px;width:24px}.mat-dialog-title-container{display:inline}.mdc-dialog__title{padding:0 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.tru-about-description{width:550px;height:200px;padding:5px;margin-bottom:5px;border:1px #cbcbcb solid}.mat-expansion-panel{border-radius:0!important}mat-panel-description{font-size:12px;text-decoration:underline;border-radius:0}::ng-deep .tru-error-dialog-title svg{fill:red}::ng-deep .tru-error-dialog-title svg path{fill:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4$1.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4$1.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i4$1.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatExpansionModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10174
10022
  }
10175
10023
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruErrorDialog, decorators: [{
10176
10024
  type: Component,
@@ -10522,7 +10370,7 @@ class TruLogin {
10522
10370
  }
10523
10371
  }
10524
10372
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruLogin, deps: [{ token: TruAuth }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Component });
10525
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruLogin, isStandalone: false, selector: "tru-login", ngImport: i0, template: "<div class=\"login-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> {{title}} </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\" [disabled]=\"isDisabled()\">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}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i5$2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5$2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i5$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: 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"] }] });
10373
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: TruLogin, isStandalone: false, selector: "tru-login", ngImport: i0, template: "<div class=\"login-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> {{title}} </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\" [disabled]=\"isDisabled()\">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}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i5$3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5$3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i5$3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: 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"] }] });
10526
10374
  }
10527
10375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: TruLogin, decorators: [{
10528
10376
  type: Component,