@trudb/tru-common-lib 0.2.544 → 0.2.545

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.
@@ -96,10 +96,10 @@ class TruControlComponentConfigBase {
96
96
  * The abstract class needs the Angular @Directive decorator in order in implement @Input
97
97
  */
98
98
  class TruEditControlBase {
99
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruEditControlBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
100
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruEditControlBase, isStandalone: true, inputs: { config: "config", entity: "entity" }, ngImport: i0 });
99
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruEditControlBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
100
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruEditControlBase, isStandalone: true, inputs: { config: "config", entity: "entity" }, ngImport: i0 });
101
101
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruEditControlBase, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruEditControlBase, decorators: [{
103
103
  type: Directive
104
104
  }], propDecorators: { config: [{
105
105
  type: Input
@@ -218,10 +218,10 @@ class TruSearchControlBase {
218
218
  'contains': 'Contains',
219
219
  'default': 'Equal To',
220
220
  };
221
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchControlBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
222
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruSearchControlBase, isStandalone: true, inputs: { config: "config" }, ngImport: i0 });
221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchControlBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
222
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruSearchControlBase, isStandalone: true, inputs: { config: "config" }, ngImport: i0 });
223
223
  }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchControlBase, decorators: [{
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchControlBase, decorators: [{
225
225
  type: Directive
226
226
  }], propDecorators: { config: [{
227
227
  type: Input
@@ -261,10 +261,10 @@ class TruSearchControlParentBase {
261
261
  'contains': 'Contains',
262
262
  'default': 'Equal To',
263
263
  };
264
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchControlParentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
265
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruSearchControlParentBase, isStandalone: true, inputs: { config: "config" }, ngImport: i0 });
264
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchControlParentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
265
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruSearchControlParentBase, isStandalone: true, inputs: { config: "config" }, ngImport: i0 });
266
266
  }
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchControlParentBase, decorators: [{
267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchControlParentBase, decorators: [{
268
268
  type: Directive
269
269
  }], propDecorators: { config: [{
270
270
  type: Input
@@ -309,10 +309,10 @@ class TruSearchControlRangeBase {
309
309
  'contains': 'Contains',
310
310
  'default': 'Equal To',
311
311
  };
312
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchControlRangeBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
313
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruSearchControlRangeBase, isStandalone: true, inputs: { config: "config" }, ngImport: i0 });
312
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchControlRangeBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
313
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruSearchControlRangeBase, isStandalone: true, inputs: { config: "config" }, ngImport: i0 });
314
314
  }
315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchControlRangeBase, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchControlRangeBase, decorators: [{
316
316
  type: Directive
317
317
  }], propDecorators: { config: [{
318
318
  type: Input
@@ -345,10 +345,10 @@ class TruBreezeMetadataProvider {
345
345
  set metadata(json) {
346
346
  this._metadata = json;
347
347
  }
348
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruBreezeMetadataProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
349
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruBreezeMetadataProvider, providedIn: 'root' });
348
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruBreezeMetadataProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
349
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruBreezeMetadataProvider, providedIn: 'root' });
350
350
  }
351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruBreezeMetadataProvider, decorators: [{
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruBreezeMetadataProvider, decorators: [{
352
352
  type: Injectable,
353
353
  args: [{
354
354
  providedIn: 'root',
@@ -515,10 +515,10 @@ class TruAppEnvironment {
515
515
  return 'Are you sure you want to delete 1 ' + tableName + '?';
516
516
  return 'Are you sure you want to delete ' + count + ' ' + tablePluralLabel + '?';
517
517
  };
518
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppEnvironment, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
519
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppEnvironment, providedIn: 'root' });
518
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppEnvironment, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
519
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppEnvironment, providedIn: 'root' });
520
520
  }
521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppEnvironment, decorators: [{
521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppEnvironment, decorators: [{
522
522
  type: Injectable,
523
523
  args: [{
524
524
  providedIn: 'root',
@@ -579,10 +579,10 @@ class TruBreezeContextFactory {
579
579
  }
580
580
  return breezeContext;
581
581
  };
582
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruBreezeContextFactory, deps: [{ token: TruBreezeMetadataProvider }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Injectable });
583
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruBreezeContextFactory, providedIn: 'root' });
582
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruBreezeContextFactory, deps: [{ token: TruBreezeMetadataProvider }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Injectable });
583
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruBreezeContextFactory, providedIn: 'root' });
584
584
  }
585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruBreezeContextFactory, decorators: [{
585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruBreezeContextFactory, decorators: [{
586
586
  type: Injectable,
587
587
  args: [{
588
588
  providedIn: 'root',
@@ -617,10 +617,10 @@ class TruModelNavigationPropertiesLookup {
617
617
  set lookup(value) {
618
618
  this._lookup = value;
619
619
  }
620
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelNavigationPropertiesLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
621
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelNavigationPropertiesLookup, providedIn: 'root' });
620
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelNavigationPropertiesLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
621
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelNavigationPropertiesLookup, providedIn: 'root' });
622
622
  }
623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelNavigationPropertiesLookup, decorators: [{
623
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelNavigationPropertiesLookup, decorators: [{
624
624
  type: Injectable,
625
625
  args: [{
626
626
  providedIn: 'root',
@@ -639,10 +639,10 @@ class TruGlobalDataContext {
639
639
  else
640
640
  console.log('Global Data Context is alreay set and can not be modified.');
641
641
  }
642
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruGlobalDataContext, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
643
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruGlobalDataContext, providedIn: 'root' });
642
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruGlobalDataContext, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
643
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruGlobalDataContext, providedIn: 'root' });
644
644
  }
645
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruGlobalDataContext, decorators: [{
645
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruGlobalDataContext, decorators: [{
646
646
  type: Injectable,
647
647
  args: [{
648
648
  providedIn: 'root',
@@ -716,8 +716,8 @@ class TruEntityMetadataRegistry {
716
716
  }
717
717
 
718
718
  class MaterialModule {
719
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
720
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: MaterialModule, exports: [A11yModule,
719
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
720
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: MaterialModule, exports: [A11yModule,
721
721
  CdkAccordionModule,
722
722
  ClipboardModule,
723
723
  CdkStepperModule,
@@ -762,7 +762,7 @@ class MaterialModule {
762
762
  OverlayModule,
763
763
  PortalModule,
764
764
  ScrollingModule] });
765
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MaterialModule, imports: [A11yModule,
765
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MaterialModule, imports: [A11yModule,
766
766
  CdkAccordionModule,
767
767
  ClipboardModule,
768
768
  CdkStepperModule,
@@ -808,7 +808,7 @@ class MaterialModule {
808
808
  PortalModule,
809
809
  ScrollingModule] });
810
810
  }
811
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MaterialModule, decorators: [{
811
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MaterialModule, decorators: [{
812
812
  type: NgModule,
813
813
  args: [{
814
814
  exports: [
@@ -887,10 +887,10 @@ class TruConfirmDialog {
887
887
  onDismiss() {
888
888
  this.dialogRef.close(false);
889
889
  }
890
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruConfirmDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
891
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruConfirmDialog, isStandalone: true, selector: "tru-confirm-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <p>{{message}}</p>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button *ngIf=\"displayDismissButton\" mat-raised-button (click)=\"onDismiss()\">{{dismissButtonName}}</button>\r\n <button *ngIf=\"displayConfirmButton\" mat-raised-button color=\"primary\" (click)=\"onConfirm()\">{{confirmButtonName}}</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}.mdc-dialog__title{padding:20px 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: "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]" }] });
890
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruConfirmDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
891
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruConfirmDialog, isStandalone: true, selector: "tru-confirm-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <p>{{message}}</p>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button *ngIf=\"displayDismissButton\" mat-raised-button (click)=\"onDismiss()\">{{dismissButtonName}}</button>\r\n <button *ngIf=\"displayConfirmButton\" mat-raised-button color=\"primary\" (click)=\"onConfirm()\">{{confirmButtonName}}</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}.mdc-dialog__title{padding:20px 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: "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]" }] });
892
892
  }
893
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruConfirmDialog, decorators: [{
893
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruConfirmDialog, decorators: [{
894
894
  type: Component,
895
895
  args: [{ selector: 'tru-confirm-dialog', imports: [CommonModule, FormsModule, MaterialModule], template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <p>{{message}}</p>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button *ngIf=\"displayDismissButton\" mat-raised-button (click)=\"onDismiss()\">{{dismissButtonName}}</button>\r\n <button *ngIf=\"displayConfirmButton\" mat-raised-button color=\"primary\" (click)=\"onConfirm()\">{{confirmButtonName}}</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}.mdc-dialog__title{padding:20px 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"] }]
896
896
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: TruConfirmDialog, decorators: [{
@@ -949,10 +949,10 @@ class TruExportDialog {
949
949
  }
950
950
  }
951
951
  ngOnInit() { }
952
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruExportDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
953
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruExportDialog, isStandalone: true, selector: "tru-export-dialog", host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<h1 mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"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 [(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()\">Cancel</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Export</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}::ng-deep .mat-mdc-checkbox{height:30px;float:left}::ng-deep .mdc-checkbox__ripple{display:none}::ng-deep .mdc-checkbox__background{border:1px solid currentColor}::ng-deep .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{background-color:#006dcc}::ng-deep .mat-mdc-checkbox label{color:#0000008a}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important;width:300px}.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}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "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: "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]" }] });
952
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruExportDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
953
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruExportDialog, isStandalone: true, selector: "tru-export-dialog", host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<h1 mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"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 [(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()\">Cancel</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Export</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}::ng-deep .mat-mdc-checkbox{height:30px;float:left}::ng-deep .mdc-checkbox__ripple{display:none}::ng-deep .mdc-checkbox__background{border:1px solid currentColor}::ng-deep .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{background-color:#006dcc}::ng-deep .mat-mdc-checkbox label{color:#0000008a}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important;width:300px}.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}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "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: "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]" }] });
954
954
  }
955
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruExportDialog, decorators: [{
955
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruExportDialog, decorators: [{
956
956
  type: Component,
957
957
  args: [{ selector: 'tru-export-dialog', imports: [CommonModule, FormsModule, MaterialModule, MatCheckbox], template: "<h1 mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"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 [(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()\">Cancel</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Export</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}::ng-deep .mat-mdc-checkbox{height:30px;float:left}::ng-deep .mdc-checkbox__ripple{display:none}::ng-deep .mdc-checkbox__background{border:1px solid currentColor}::ng-deep .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{background-color:#006dcc}::ng-deep .mat-mdc-checkbox label{color:#0000008a}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important;width:300px}.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}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"] }]
958
958
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: TruExportDialog, decorators: [{
@@ -1076,10 +1076,10 @@ class TruPasswordDialog {
1076
1076
  ngOnDestroy() {
1077
1077
  this.subs.forEach(s => s.unsubscribe());
1078
1078
  }
1079
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruPasswordDialog, deps: [{ token: i1.MatDialogRef }, { token: i1$2.HttpClient }, { token: TruAppEnvironment }, { token: TruUiNotification }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
1080
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruPasswordDialog, isStandalone: true, selector: "tru-password-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <p class=\"tru-password-dialog-title\">{{title}}</p>\r\n <p class=\"tru-password-dialog-username\">for {{username}}</p>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content tru-control-container tru-password-dialog\">\r\n <p>{{message}}</p>\r\n\r\n <div class=\"tru-password-dialog-control-wrapper\" *ngIf=\"!admin\">\r\n <mat-label>Current Password</mat-label>\r\n <mat-form-field>\r\n <input #currentInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"currentPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <p class=\"tru-password-dialog-error-msg\" *ngIf=\"errorMsg\">{{errorMsg}}</p>\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>New Password</mat-label>\r\n <mat-form-field>\r\n <input #newInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"newPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <password-strength-meter [password]=\"newPasswordControl.value\" (strengthChange)=\"onPasswordStrengthChanged($event)\" />\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>Confirm New Password</mat-label>\r\n <mat-form-field>\r\n <input #confirmInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"confirmNewPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n </div>\r\n <mat-checkbox [formControl]=\"showPasswordControl\"\r\n (click)=\"onShowPasswordClicked()\"\r\n [labelPosition]=\"'before'\">\r\n Show Password\r\n </mat-checkbox>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Cancel</button>\r\n <button [disabled]=\"!canSubmit() || busy || errorMsg ? 'disabled' : null\" mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Submit</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}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important;overflow:hidden}.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-password-dialog .tru-password-dialog-control-wrapper{margin-bottom:20px}.tru-password-dialog-title{font-size:26px}.tru-password-dialog-username{font-size:14px;margin:0;color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, .6))}.tru-password-dialog-error-msg{color:red!important;font-size:11px!important}mat-checkbox{float:right!important}.std-control.edit{margin-bottom:10px;margin-right:10px}::ng-deep .tru-password-dialog .mat-mdc-form-field{display:inline!important}::ng-deep .tru-password-dialog .mat-mdc-form-field-infix{padding:0!important;min-height:unset!important}::ng-deep .tru-password-dialog mat-label{font-size:14px;font-weight:700}::ng-deep .tru-password-dialog input{font-size:12px;padding-left:5px}::ng-deep .tru-password-dialog .mat-mdc-form-field-bottom-align:before{content:unset!important}::ng-deep .tru-password-dialog path{color:#a9a9a9}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: "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: "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: "directive", type: i7.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: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: PasswordStrengthMeterComponent, selector: "password-strength-meter", inputs: ["password", "minPasswordLength", "enableFeedback", "enableAsync", "colors", "numberOfProgressBarItems"], outputs: ["strengthChange"] }] });
1079
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruPasswordDialog, deps: [{ token: i1.MatDialogRef }, { token: i1$2.HttpClient }, { token: TruAppEnvironment }, { token: TruUiNotification }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
1080
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruPasswordDialog, isStandalone: true, selector: "tru-password-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <p class=\"tru-password-dialog-title\">{{title}}</p>\r\n <p class=\"tru-password-dialog-username\">for {{username}}</p>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content tru-control-container tru-password-dialog\">\r\n <p>{{message}}</p>\r\n\r\n <div class=\"tru-password-dialog-control-wrapper\" *ngIf=\"!admin\">\r\n <mat-label>Current Password</mat-label>\r\n <mat-form-field>\r\n <input #currentInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"currentPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <p class=\"tru-password-dialog-error-msg\" *ngIf=\"errorMsg\">{{errorMsg}}</p>\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>New Password</mat-label>\r\n <mat-form-field>\r\n <input #newInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"newPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <password-strength-meter [password]=\"newPasswordControl.value\" (strengthChange)=\"onPasswordStrengthChanged($event)\" />\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>Confirm New Password</mat-label>\r\n <mat-form-field>\r\n <input #confirmInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"confirmNewPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n </div>\r\n <mat-checkbox [formControl]=\"showPasswordControl\"\r\n (click)=\"onShowPasswordClicked()\"\r\n [labelPosition]=\"'before'\">\r\n Show Password\r\n </mat-checkbox>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Cancel</button>\r\n <button [disabled]=\"!canSubmit() || busy || errorMsg ? 'disabled' : null\" mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Submit</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}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important;overflow:hidden}.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-password-dialog .tru-password-dialog-control-wrapper{margin-bottom:20px}.tru-password-dialog-title{font-size:26px}.tru-password-dialog-username{font-size:14px;margin:0;color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, .6))}.tru-password-dialog-error-msg{color:red!important;font-size:11px!important}mat-checkbox{float:right!important}.std-control.edit{margin-bottom:10px;margin-right:10px}::ng-deep .tru-password-dialog .mat-mdc-form-field{display:inline!important}::ng-deep .tru-password-dialog .mat-mdc-form-field-infix{padding:0!important;min-height:unset!important}::ng-deep .tru-password-dialog mat-label{font-size:14px;font-weight:700}::ng-deep .tru-password-dialog input{font-size:12px;padding-left:5px}::ng-deep .tru-password-dialog .mat-mdc-form-field-bottom-align:before{content:unset!important}::ng-deep .tru-password-dialog path{color:#a9a9a9}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: "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: "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: "directive", type: i7.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: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: PasswordStrengthMeterComponent, selector: "password-strength-meter", inputs: ["password", "minPasswordLength", "enableFeedback", "enableAsync", "colors", "numberOfProgressBarItems"], outputs: ["strengthChange"] }] });
1081
1081
  }
1082
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruPasswordDialog, decorators: [{
1082
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruPasswordDialog, decorators: [{
1083
1083
  type: Component,
1084
1084
  args: [{ selector: 'tru-password-dialog', imports: [CommonModule, FormsModule, ReactiveFormsModule, MaterialModule, PasswordStrengthMeterComponent], template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <p class=\"tru-password-dialog-title\">{{title}}</p>\r\n <p class=\"tru-password-dialog-username\">for {{username}}</p>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content tru-control-container tru-password-dialog\">\r\n <p>{{message}}</p>\r\n\r\n <div class=\"tru-password-dialog-control-wrapper\" *ngIf=\"!admin\">\r\n <mat-label>Current Password</mat-label>\r\n <mat-form-field>\r\n <input #currentInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"currentPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <p class=\"tru-password-dialog-error-msg\" *ngIf=\"errorMsg\">{{errorMsg}}</p>\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>New Password</mat-label>\r\n <mat-form-field>\r\n <input #newInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"newPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <password-strength-meter [password]=\"newPasswordControl.value\" (strengthChange)=\"onPasswordStrengthChanged($event)\" />\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>Confirm New Password</mat-label>\r\n <mat-form-field>\r\n <input #confirmInput\r\n matInput\r\n autocomplete=\"off webauthn\"\r\n [formControl]=\"confirmNewPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n </div>\r\n <mat-checkbox [formControl]=\"showPasswordControl\"\r\n (click)=\"onShowPasswordClicked()\"\r\n [labelPosition]=\"'before'\">\r\n Show Password\r\n </mat-checkbox>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Cancel</button>\r\n <button [disabled]=\"!canSubmit() || busy || errorMsg ? 'disabled' : null\" mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Submit</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}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important;overflow:hidden}.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-password-dialog .tru-password-dialog-control-wrapper{margin-bottom:20px}.tru-password-dialog-title{font-size:26px}.tru-password-dialog-username{font-size:14px;margin:0;color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, .6))}.tru-password-dialog-error-msg{color:red!important;font-size:11px!important}mat-checkbox{float:right!important}.std-control.edit{margin-bottom:10px;margin-right:10px}::ng-deep .tru-password-dialog .mat-mdc-form-field{display:inline!important}::ng-deep .tru-password-dialog .mat-mdc-form-field-infix{padding:0!important;min-height:unset!important}::ng-deep .tru-password-dialog mat-label{font-size:14px;font-weight:700}::ng-deep .tru-password-dialog input{font-size:12px;padding-left:5px}::ng-deep .tru-password-dialog .mat-mdc-form-field-bottom-align:before{content:unset!important}::ng-deep .tru-password-dialog path{color:#a9a9a9}\n"] }]
1085
1085
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i1$2.HttpClient }, { type: TruAppEnvironment }, { type: TruUiNotification }, { type: undefined, decorators: [{
@@ -1105,10 +1105,10 @@ class TruAboutDialog {
1105
1105
  onDismiss() {
1106
1106
  this.dialogRef.close(false);
1107
1107
  }
1108
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAboutDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Component });
1109
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruAboutDialog, isStandalone: true, selector: "tru-about-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]=\"'about-icon'\"\r\n title=\"Settings\">\r\n </mat-icon>\r\n About - {{appName}}\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 {{appDescription}}\r\n </div>\r\n <p>\r\n Powered By TruDB\r\n </p>\r\n <p>\r\n Copyright {{currentYear}} TruDB LLC. All rights reserved.\r\n </p>\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}\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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
1108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAboutDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Component });
1109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruAboutDialog, isStandalone: true, selector: "tru-about-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]=\"'about-icon'\"\r\n title=\"Settings\">\r\n </mat-icon>\r\n About - {{appName}}\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 {{appDescription}}\r\n </div>\r\n <p>\r\n Powered By TruDB\r\n </p>\r\n <p>\r\n Copyright {{currentYear}} TruDB LLC. All rights reserved.\r\n </p>\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}\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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
1110
1110
  }
1111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAboutDialog, decorators: [{
1111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAboutDialog, decorators: [{
1112
1112
  type: Component,
1113
1113
  args: [{ selector: 'tru-about-dialog', imports: [
1114
1114
  CommonModule,
@@ -1269,10 +1269,10 @@ class TruUiNotification {
1269
1269
  this.log(formatted);
1270
1270
  return toast?.toastId ?? null;
1271
1271
  }
1272
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUiNotification, deps: [{ token: i1$3.ToastrService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
1273
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUiNotification, providedIn: 'root' });
1272
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUiNotification, deps: [{ token: i1$3.ToastrService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
1273
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUiNotification, providedIn: 'root' });
1274
1274
  }
1275
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUiNotification, decorators: [{
1275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUiNotification, decorators: [{
1276
1276
  type: Injectable,
1277
1277
  args: [{
1278
1278
  providedIn: 'root',
@@ -1425,10 +1425,10 @@ class TruUtil {
1425
1425
  return str === str.toLowerCase() &&
1426
1426
  str !== str.toUpperCase();
1427
1427
  };
1428
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1429
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUtil, providedIn: 'root' });
1428
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1429
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUtil, providedIn: 'root' });
1430
1430
  }
1431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUtil, decorators: [{
1431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUtil, decorators: [{
1432
1432
  type: Injectable,
1433
1433
  args: [{
1434
1434
  providedIn: 'root',
@@ -1614,10 +1614,10 @@ class TruTextManager {
1614
1614
  .replace(/%20/g, '+');
1615
1615
  return (source);
1616
1616
  };
1617
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTextManager, deps: [{ token: TruUtil }], target: i0.ɵɵFactoryTarget.Injectable });
1618
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTextManager, providedIn: 'root' });
1617
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTextManager, deps: [{ token: TruUtil }], target: i0.ɵɵFactoryTarget.Injectable });
1618
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTextManager, providedIn: 'root' });
1619
1619
  }
1620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTextManager, decorators: [{
1620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTextManager, decorators: [{
1621
1621
  type: Injectable,
1622
1622
  args: [{
1623
1623
  providedIn: 'root',
@@ -1671,10 +1671,10 @@ class TruUser {
1671
1671
  this._email = null;
1672
1672
  this._roles = null;
1673
1673
  };
1674
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUser, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1675
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUser, providedIn: 'root' });
1674
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUser, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1675
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUser, providedIn: 'root' });
1676
1676
  }
1677
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUser, decorators: [{
1677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUser, decorators: [{
1678
1678
  type: Injectable,
1679
1679
  args: [{
1680
1680
  providedIn: 'root',
@@ -2089,10 +2089,10 @@ class TruEntityAccessor {
2089
2089
  }
2090
2090
  });
2091
2091
  };
2092
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruEntityAccessor, deps: [{ token: i1$2.HttpClient }, { token: TruAppEnvironment }, { token: TruUiNotification }, { token: TruTextManager }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
2093
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruEntityAccessor });
2092
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruEntityAccessor, deps: [{ token: i1$2.HttpClient }, { token: TruAppEnvironment }, { token: TruUiNotification }, { token: TruTextManager }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
2093
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruEntityAccessor });
2094
2094
  }
2095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruEntityAccessor, decorators: [{
2095
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruEntityAccessor, decorators: [{
2096
2096
  type: Injectable
2097
2097
  }], ctorParameters: () => [{ type: i1$2.HttpClient }, { type: TruAppEnvironment }, { type: TruUiNotification }, { type: TruTextManager }, { type: TruUser }] });
2098
2098
 
@@ -2460,10 +2460,10 @@ class TruDataContext {
2460
2460
  }
2461
2461
  });
2462
2462
  };
2463
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataContext, deps: [{ token: TruBreezeContextFactory }, { token: TruModelNavigationPropertiesLookup }, { token: TruGlobalDataContext }, { token: TruAppEnvironment }, { token: TruEntityAccessor }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Injectable });
2464
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataContext });
2463
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataContext, deps: [{ token: TruBreezeContextFactory }, { token: TruModelNavigationPropertiesLookup }, { token: TruGlobalDataContext }, { token: TruAppEnvironment }, { token: TruEntityAccessor }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Injectable });
2464
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataContext });
2465
2465
  }
2466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataContext, decorators: [{
2466
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataContext, decorators: [{
2467
2467
  type: Injectable
2468
2468
  }], ctorParameters: () => [{ type: TruBreezeContextFactory }, { type: TruModelNavigationPropertiesLookup }, { type: TruGlobalDataContext }, { type: TruAppEnvironment }, { type: TruEntityAccessor }, { type: TruUiNotification }] });
2469
2469
 
@@ -2515,10 +2515,10 @@ class TruWindowEventArgs {
2515
2515
  views = [{}];
2516
2516
  contextFilters = [];
2517
2517
  onClose$ = new Subject();
2518
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowEventArgs, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2519
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowEventArgs, providedIn: 'root' });
2518
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowEventArgs, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2519
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowEventArgs, providedIn: 'root' });
2520
2520
  }
2521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowEventArgs, decorators: [{
2521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowEventArgs, decorators: [{
2522
2522
  type: Injectable,
2523
2523
  args: [{
2524
2524
  providedIn: 'root'
@@ -2547,10 +2547,10 @@ class TruContextFilters {
2547
2547
  return label;
2548
2548
  };
2549
2549
  constructor() { }
2550
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruContextFilters, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2551
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruContextFilters, providedIn: 'root' });
2550
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruContextFilters, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2551
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruContextFilters, providedIn: 'root' });
2552
2552
  }
2553
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruContextFilters, decorators: [{
2553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruContextFilters, decorators: [{
2554
2554
  type: Injectable,
2555
2555
  args: [{
2556
2556
  providedIn: 'root',
@@ -2569,10 +2569,10 @@ class TruDesktopEventHandler {
2569
2569
  openCustom(windowEvent) {
2570
2570
  this.open$.next(windowEvent);
2571
2571
  }
2572
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2573
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopEventHandler, providedIn: 'root' });
2572
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2573
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopEventHandler, providedIn: 'root' });
2574
2574
  }
2575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopEventHandler, decorators: [{
2575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopEventHandler, decorators: [{
2576
2576
  type: Injectable,
2577
2577
  args: [{
2578
2578
  providedIn: 'root'
@@ -2662,10 +2662,10 @@ class TruDesktopManager {
2662
2662
  }
2663
2663
  };
2664
2664
  };
2665
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopManager, deps: [{ token: TruContextFilters }, { token: TruDesktopEventHandler }], target: i0.ɵɵFactoryTarget.Injectable });
2666
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopManager, providedIn: 'root' });
2665
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopManager, deps: [{ token: TruContextFilters }, { token: TruDesktopEventHandler }], target: i0.ɵɵFactoryTarget.Injectable });
2666
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopManager, providedIn: 'root' });
2667
2667
  }
2668
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopManager, decorators: [{
2668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopManager, decorators: [{
2669
2669
  type: Injectable,
2670
2670
  args: [{
2671
2671
  providedIn: 'root'
@@ -2708,10 +2708,10 @@ class TruWindowEventHandler {
2708
2708
  setWindowTitle(value) {
2709
2709
  this.setWindowTitle$.next(value);
2710
2710
  }
2711
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2712
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowEventHandler });
2711
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2712
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowEventHandler });
2713
2713
  }
2714
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowEventHandler, decorators: [{
2714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowEventHandler, decorators: [{
2715
2715
  type: Injectable
2716
2716
  }] });
2717
2717
 
@@ -2791,10 +2791,10 @@ class TruSearchViewBase {
2791
2791
  this.windowEventHandler.addView(windowAddViewEventArgs);
2792
2792
  this.view.active = false;
2793
2793
  };
2794
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchViewBase, deps: [{ token: TruDesktopManager }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
2795
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruSearchViewBase, isStandalone: true, selector: "tru-search-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
2794
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchViewBase, deps: [{ token: TruDesktopManager }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
2795
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruSearchViewBase, isStandalone: true, selector: "tru-search-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
2796
2796
  }
2797
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchViewBase, decorators: [{
2797
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchViewBase, decorators: [{
2798
2798
  type: Component,
2799
2799
  args: [{ selector: 'tru-search-view-base', imports: [CommonModule, FormsModule], template: "" }]
2800
2800
  }], ctorParameters: () => [{ type: TruDesktopManager }, { type: TruWindowEventHandler }], propDecorators: { view: [{
@@ -3010,10 +3010,10 @@ class TruIframeView extends TruSearchViewBase {
3010
3010
  });
3011
3011
  this.subs.push(sub);
3012
3012
  }
3013
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruIframeView, deps: [{ token: TruDesktopManager }, { token: TruWindowEventHandler }, { token: i1$2.HttpClient }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
3014
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruIframeView, isStandalone: true, selector: "tru-iframe-view", inputs: { view: "view" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div>\n <div class=\"view-busy-overlay\" *ngIf=\"isBusy\"></div>\n <iframe #iframe class=\"iframe-view-frame\" (load)=\"onLoad(iframe)\"></iframe>\n</div>\n\n", styles: [".iframe-view-frame{position:absolute;inset:0;border-style:none;height:100%;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3013
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruIframeView, deps: [{ token: TruDesktopManager }, { token: TruWindowEventHandler }, { token: i1$2.HttpClient }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
3014
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruIframeView, isStandalone: true, selector: "tru-iframe-view", inputs: { view: "view" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div>\n <div class=\"view-busy-overlay\" *ngIf=\"isBusy\"></div>\n <iframe #iframe class=\"iframe-view-frame\" (load)=\"onLoad(iframe)\"></iframe>\n</div>\n\n", styles: [".iframe-view-frame{position:absolute;inset:0;border-style:none;height:100%;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3015
3015
  }
3016
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruIframeView, decorators: [{
3016
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruIframeView, decorators: [{
3017
3017
  type: Component,
3018
3018
  args: [{ selector: 'tru-iframe-view', imports: [CommonModule], template: "<div>\n <div class=\"view-busy-overlay\" *ngIf=\"isBusy\"></div>\n <iframe #iframe class=\"iframe-view-frame\" (load)=\"onLoad(iframe)\"></iframe>\n</div>\n\n", styles: [".iframe-view-frame{position:absolute;inset:0;border-style:none;height:100%;width:100%}\n"] }]
3019
3019
  }], ctorParameters: () => [{ type: TruDesktopManager }, { type: TruWindowEventHandler }, { type: i1$2.HttpClient }, { type: TruUiNotification }], propDecorators: { view: [{
@@ -3070,10 +3070,10 @@ class TruViewBase {
3070
3070
  this.windowEventHandler.setWindowTitle(this.textManager.formatWindowTitle(title));
3071
3071
  this.recordLocation = recordIndex + ' of ' + this.entities.length;
3072
3072
  }
3073
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruViewBase, deps: [{ token: TruTextManager }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
3074
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruViewBase, isStandalone: true, selector: "tru-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
3073
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruViewBase, deps: [{ token: TruTextManager }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
3074
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruViewBase, isStandalone: true, selector: "tru-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
3075
3075
  }
3076
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruViewBase, decorators: [{
3076
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruViewBase, decorators: [{
3077
3077
  type: Component,
3078
3078
  args: [{ selector: 'tru-view-base', imports: [CommonModule, FormsModule], template: "" }]
3079
3079
  }], ctorParameters: () => [{ type: TruTextManager }, { type: TruWindowEventHandler }], propDecorators: { view: [{
@@ -3084,10 +3084,10 @@ class TruWindowCloseEventArgs {
3084
3084
  entities = [];
3085
3085
  entityIndex = 0;
3086
3086
  refresh = false;
3087
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowCloseEventArgs, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3088
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowCloseEventArgs, providedIn: 'root' });
3087
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowCloseEventArgs, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3088
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowCloseEventArgs, providedIn: 'root' });
3089
3089
  }
3090
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowCloseEventArgs, decorators: [{
3090
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowCloseEventArgs, decorators: [{
3091
3091
  type: Injectable,
3092
3092
  args: [{
3093
3093
  providedIn: 'root'
@@ -3106,10 +3106,10 @@ class TruToolbarButton {
3106
3106
  constructor() { }
3107
3107
  ngOnInit() {
3108
3108
  }
3109
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
3110
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbarButton, isStandalone: true, selector: "tru-toolbar-button", inputs: { config: "config", icon: "icon", text: "text", disabled: "disabled", tooltip: "tooltip", type: "type" }, outputs: { onClick: "onClick", onKeydown: "onKeydown" }, ngImport: i0, template: "<button\r\n class=\"toolbar-btn toolbar-btn-default\"\r\n title=\"{{ tooltip }}\"\r\n tabindex=\"0\"\r\n [disabled]=\"disabled\"\r\n (click)=\"onClick.emit($event)\"\r\n (keydown)=\"onKeydown.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 p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\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;-moz-user-select:none;-ms-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);-webkit-box-shadow:none;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);-webkit-box-shadow:none;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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
3109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
3110
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbarButton, isStandalone: true, selector: "tru-toolbar-button", inputs: { config: "config", icon: "icon", text: "text", disabled: "disabled", tooltip: "tooltip", type: "type" }, outputs: { onClick: "onClick", onKeydown: "onKeydown" }, ngImport: i0, template: "<button\r\n class=\"toolbar-btn toolbar-btn-default\"\r\n title=\"{{ tooltip }}\"\r\n tabindex=\"0\"\r\n [disabled]=\"disabled\"\r\n (click)=\"onClick.emit($event)\"\r\n (keydown)=\"onKeydown.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 p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\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;-moz-user-select:none;-ms-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);-webkit-box-shadow:none;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);-webkit-box-shadow:none;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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
3111
3111
  }
3112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarButton, decorators: [{
3112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarButton, decorators: [{
3113
3113
  type: Component,
3114
3114
  args: [{ selector: 'tru-toolbar-button', imports: [
3115
3115
  CommonModule,
@@ -3192,10 +3192,10 @@ class TruMatSelectPanel {
3192
3192
  ngOnDestroy() {
3193
3193
  this.removeListeners();
3194
3194
  }
3195
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruMatSelectPanel, deps: [{ token: i0.Renderer2 }, { token: i1$4.MatSelect }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Directive });
3196
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruMatSelectPanel, isStandalone: true, selector: "[tru-mat-select-panel]", ngImport: i0 });
3195
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruMatSelectPanel, deps: [{ token: i0.Renderer2 }, { token: i1$4.MatSelect }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Directive });
3196
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruMatSelectPanel, isStandalone: true, selector: "[tru-mat-select-panel]", ngImport: i0 });
3197
3197
  }
3198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruMatSelectPanel, decorators: [{
3198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruMatSelectPanel, decorators: [{
3199
3199
  type: Directive,
3200
3200
  args: [{
3201
3201
  selector: '[tru-mat-select-panel]'
@@ -3206,10 +3206,10 @@ class TruOpenOnStart {
3206
3206
  transform(openOnStart, args) {
3207
3207
  openOnStart();
3208
3208
  }
3209
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruOpenOnStart, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3210
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: TruOpenOnStart, isStandalone: true, name: "openOnStart" });
3209
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruOpenOnStart, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3210
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: TruOpenOnStart, isStandalone: true, name: "openOnStart" });
3211
3211
  }
3212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruOpenOnStart, decorators: [{
3212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruOpenOnStart, decorators: [{
3213
3213
  type: Pipe,
3214
3214
  args: [{
3215
3215
  name: 'openOnStart'
@@ -3226,10 +3226,10 @@ class TruToolbarContextFilter {
3226
3226
  }
3227
3227
  ngOnInit() {
3228
3228
  }
3229
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarContextFilter, deps: [{ token: TruContextFilters }], target: i0.ɵɵFactoryTarget.Component });
3230
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbarContextFilter, isStandalone: true, selector: "tru-toolbar-context-filter", ngImport: i0, template: "<mat-form-field *ngIf=\"filters.length\">\r\n <div *ngFor=\"let filter of filters\">\r\n <mat-select [(value)]=\"filter.selectedChoice\"\r\n [compareWith]=\"filter.comparer\"\r\n (selectionChange)=\"filter.onChange(filter.selectedChoice)\"\r\n title=\"{{filter.tooltip}}\"\r\n panelClass=\"tru-mat-select-panel\" \r\n tru-mat-select-panel>\r\n <mat-option *ngFor=\"let choice of filter.choices; trackBy filter.identify\" [value]=\"choice\">\r\n {{choice.label}}\r\n </mat-option>\r\n </mat-select>\r\n </div>\r\n</mat-form-field>\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\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}.tru-mat-select-panel{min-width:100px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: TruMatSelectPanel, selector: "[tru-mat-select-panel]" }], encapsulation: i0.ViewEncapsulation.None });
3229
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarContextFilter, deps: [{ token: TruContextFilters }], target: i0.ɵɵFactoryTarget.Component });
3230
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbarContextFilter, isStandalone: true, selector: "tru-toolbar-context-filter", ngImport: i0, template: "<mat-form-field *ngIf=\"filters.length\">\r\n <div *ngFor=\"let filter of filters\">\r\n <mat-select [(value)]=\"filter.selectedChoice\"\r\n [compareWith]=\"filter.comparer\"\r\n (selectionChange)=\"filter.onChange(filter.selectedChoice)\"\r\n title=\"{{filter.tooltip}}\"\r\n panelClass=\"tru-mat-select-panel\" \r\n tru-mat-select-panel>\r\n <mat-option *ngFor=\"let choice of filter.choices; trackBy filter.identify\" [value]=\"choice\">\r\n {{choice.label}}\r\n </mat-option>\r\n </mat-select>\r\n </div>\r\n</mat-form-field>\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\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}.tru-mat-select-panel{min-width:100px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: TruMatSelectPanel, selector: "[tru-mat-select-panel]" }], encapsulation: i0.ViewEncapsulation.None });
3231
3231
  }
3232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarContextFilter, decorators: [{
3232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarContextFilter, decorators: [{
3233
3233
  type: Component,
3234
3234
  args: [{ selector: 'tru-toolbar-context-filter', imports: [
3235
3235
  CommonModule,
@@ -3298,10 +3298,10 @@ class TruToolbarDropdown {
3298
3298
  return label.includes(searchInput);
3299
3299
  });
3300
3300
  };
3301
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarDropdown, deps: [], target: i0.ɵɵFactoryTarget.Component });
3302
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TruToolbarDropdown, isStandalone: true, selector: "tru-toolbar-dropdown", inputs: { config: "config", options: "options", tooltip: "tooltip", multiple: "multiple", filterable: "filterable", filterTooltip: "filterTooltip", width: "width", selectedOption: "selectedOption", disabled: "disabled" }, outputs: { selectedOptionChange: "selectedOptionChange", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field>\r\n @if (multiple) {\r\n <mat-select #select\r\n [(ngModel)]=\"selectedOption\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"tooltip\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [style.width.px]=\"width\"\r\n tru-mat-select-panel\r\n multiple>\r\n <input matInput\r\n *ngIf=\"filterable\"\r\n [placeholder]=\"filterTooltip\"\r\n (input)=\"onFilterChange($event)\"\r\n type=\"text\"\r\n autocomplete=\"off\" />\r\n <div class=\"select-all-pseudo-checkbox-container\">\r\n <mat-pseudo-checkbox [(ngModel)]=\"selectAll\" (click)=\"toggleSelectAll()\" [ngClass]=\"{ 'mat-pseudo-checkbox-checked': selectAll }\"></mat-pseudo-checkbox>\r\n <span>{{selectAllLabel}}</span>\r\n </div>\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\r\n {{option.label}}\r\n </mat-option>\r\n </mat-select>\r\n } @else {\r\n <mat-select [(ngModel)]=\"selectedOption\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"tooltip\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [style.width.px]=\"width\"\r\n [hideSingleSelectionIndicator]=\"true\"\r\n tru-mat-select-panel>\r\n <input matInput\r\n *ngIf=\"filterable\"\r\n [placeholder]=\"filterTooltip\"\r\n (input)=\"onFilterChange($event)\"\r\n type=\"text\"\r\n autocomplete=\"off\" />\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\r\n {{option.label}}\r\n </mat-option>\r\n </mat-select>\r\n }\r\n</mat-form-field>\r\n\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: TruMatSelectPanel, selector: "[tru-mat-select-panel]" }, { kind: "component", type: MatPseudoCheckbox, selector: "mat-pseudo-checkbox", inputs: ["state", "disabled", "appearance"] }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatOption$1, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }], encapsulation: i0.ViewEncapsulation.None });
3301
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarDropdown, deps: [], target: i0.ɵɵFactoryTarget.Component });
3302
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TruToolbarDropdown, isStandalone: true, selector: "tru-toolbar-dropdown", inputs: { config: "config", options: "options", tooltip: "tooltip", multiple: "multiple", filterable: "filterable", filterTooltip: "filterTooltip", width: "width", selectedOption: "selectedOption", disabled: "disabled" }, outputs: { selectedOptionChange: "selectedOptionChange", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field>\r\n @if (multiple) {\r\n <mat-select #select\r\n [(ngModel)]=\"selectedOption\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"tooltip\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [style.width.px]=\"width\"\r\n tru-mat-select-panel\r\n multiple>\r\n <input matInput\r\n *ngIf=\"filterable\"\r\n [placeholder]=\"filterTooltip\"\r\n (input)=\"onFilterChange($event)\"\r\n type=\"text\"\r\n autocomplete=\"off\" />\r\n <div class=\"select-all-pseudo-checkbox-container\">\r\n <mat-pseudo-checkbox [(ngModel)]=\"selectAll\" (click)=\"toggleSelectAll()\" [ngClass]=\"{ 'mat-pseudo-checkbox-checked': selectAll }\"></mat-pseudo-checkbox>\r\n <span>{{selectAllLabel}}</span>\r\n </div>\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\r\n {{option.label}}\r\n </mat-option>\r\n </mat-select>\r\n } @else {\r\n <mat-select [(ngModel)]=\"selectedOption\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"tooltip\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [style.width.px]=\"width\"\r\n [hideSingleSelectionIndicator]=\"true\"\r\n tru-mat-select-panel>\r\n <input matInput\r\n *ngIf=\"filterable\"\r\n [placeholder]=\"filterTooltip\"\r\n (input)=\"onFilterChange($event)\"\r\n type=\"text\"\r\n autocomplete=\"off\" />\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\r\n {{option.label}}\r\n </mat-option>\r\n </mat-select>\r\n }\r\n</mat-form-field>\r\n\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: TruMatSelectPanel, selector: "[tru-mat-select-panel]" }, { kind: "component", type: MatPseudoCheckbox, selector: "mat-pseudo-checkbox", inputs: ["state", "disabled", "appearance"] }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatOption$1, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }], encapsulation: i0.ViewEncapsulation.None });
3303
3303
  }
3304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarDropdown, decorators: [{
3304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarDropdown, decorators: [{
3305
3305
  type: Component,
3306
3306
  args: [{ selector: 'tru-toolbar-dropdown', imports: [
3307
3307
  CommonModule,
@@ -3344,10 +3344,10 @@ class TruToolbarMenuButton {
3344
3344
  config;
3345
3345
  constructor() {
3346
3346
  }
3347
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarMenuButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
3348
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbarMenuButton, isStandalone: true, selector: "tru-toolbar-menu-button", inputs: { config: "config" }, ngImport: i0, template: "<div>\r\n <i *ngIf=\"config.menuIcon\" class=\"{{config.menuIcon}} sub-menu-icon\" tabindex=\"-1\" (click)=\"config.fire()\"></i>\r\n <button tabindex=\"-1\" (click)=\"config.fire()\" *ngIf=\"config.hasAccess() && !config.menuIcon\">{{config.label}}</button>\r\n</div>\r\n", styles: [".menu{padding:0 10px;border-bottom:1px solid #6b6b6b;background:#f7f7f7;height:26px}.menu,.menu a{color:#000}.menu-nav{float:left;height:26px}.menu-nav>*{margin-right:0}.menu-nav>*>a{padding:0 10px;height:20px;line-height:19px;display:block;margin:3px 2px 2px}.menu-nav>*>a:hover{background:#959595}.menu-nav>*:active>a{color:#fff}.menu-nav select::-ms-expand{display:none}.menu-nav{margin:0;list-style:none;padding:0}.menu-nav>*{float:left;position:relative;margin:0 .5em 0 0;line-height:1}.menu-nav>*:last-child{margin-right:0}li.has-sub-menu{padding:0 5px}.has-sub-menu{position:relative;cursor:pointer}.has-sub-menu button{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important}.has-sub-menu p{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important;line-height:26px;pointer-events:none}.has-sub-menu p.separator-title{padding:0!important;font-size:12px;color:#ababab}.has-sub-menu:hover{background:#959595}\n", ".sub-menu-icon{font-size:18px;line-height:22px;vertical-align:middle;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }], encapsulation: i0.ViewEncapsulation.None });
3347
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarMenuButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
3348
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbarMenuButton, isStandalone: true, selector: "tru-toolbar-menu-button", inputs: { config: "config" }, ngImport: i0, template: "<div>\r\n <i *ngIf=\"config.menuIcon\" class=\"{{config.menuIcon}} sub-menu-icon\" tabindex=\"-1\" (click)=\"config.fire()\"></i>\r\n <button tabindex=\"-1\" (click)=\"config.fire()\" *ngIf=\"config.hasAccess() && !config.menuIcon\">{{config.label}}</button>\r\n</div>\r\n", styles: [".menu{padding:0 10px;border-bottom:1px solid #6b6b6b;background:#f7f7f7;height:26px}.menu,.menu a{color:#000}.menu-nav{float:left;height:26px}.menu-nav>*{margin-right:0}.menu-nav>*>a{padding:0 10px;height:20px;line-height:19px;display:block;margin:3px 2px 2px}.menu-nav>*>a:hover{background:#959595}.menu-nav>*:active>a{color:#fff}.menu-nav select::-ms-expand{display:none}.menu-nav{margin:0;list-style:none;padding:0}.menu-nav>*{float:left;position:relative;margin:0 .5em 0 0;line-height:1}.menu-nav>*:last-child{margin-right:0}li.has-sub-menu{padding:0 5px}.has-sub-menu{position:relative;cursor:pointer}.has-sub-menu button{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important}.has-sub-menu p{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important;line-height:26px;pointer-events:none}.has-sub-menu p.separator-title{padding:0!important;font-size:12px;color:#ababab}.has-sub-menu:hover{background:#959595}\n", ".sub-menu-icon{font-size:18px;line-height:22px;vertical-align:middle;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }], encapsulation: i0.ViewEncapsulation.None });
3349
3349
  }
3350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarMenuButton, decorators: [{
3350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarMenuButton, decorators: [{
3351
3351
  type: Component,
3352
3352
  args: [{ selector: 'tru-toolbar-menu-button', imports: [CommonModule, FormsModule], encapsulation: ViewEncapsulation.None, template: "<div>\r\n <i *ngIf=\"config.menuIcon\" class=\"{{config.menuIcon}} sub-menu-icon\" tabindex=\"-1\" (click)=\"config.fire()\"></i>\r\n <button tabindex=\"-1\" (click)=\"config.fire()\" *ngIf=\"config.hasAccess() && !config.menuIcon\">{{config.label}}</button>\r\n</div>\r\n", styles: [".menu{padding:0 10px;border-bottom:1px solid #6b6b6b;background:#f7f7f7;height:26px}.menu,.menu a{color:#000}.menu-nav{float:left;height:26px}.menu-nav>*{margin-right:0}.menu-nav>*>a{padding:0 10px;height:20px;line-height:19px;display:block;margin:3px 2px 2px}.menu-nav>*>a:hover{background:#959595}.menu-nav>*:active>a{color:#fff}.menu-nav select::-ms-expand{display:none}.menu-nav{margin:0;list-style:none;padding:0}.menu-nav>*{float:left;position:relative;margin:0 .5em 0 0;line-height:1}.menu-nav>*:last-child{margin-right:0}li.has-sub-menu{padding:0 5px}.has-sub-menu{position:relative;cursor:pointer}.has-sub-menu button{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important}.has-sub-menu p{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important;line-height:26px;pointer-events:none}.has-sub-menu p.separator-title{padding:0!important;font-size:12px;color:#ababab}.has-sub-menu:hover{background:#959595}\n", ".sub-menu-icon{font-size:18px;line-height:22px;vertical-align:middle;pointer-events:none}\n"] }]
3353
3353
  }], ctorParameters: () => [], propDecorators: { config: [{
@@ -3389,10 +3389,10 @@ class TruToolbarMenuItem {
3389
3389
  ngOnDestroy() {
3390
3390
  window.removeEventListener('resize', this.windoeResize);
3391
3391
  }
3392
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarMenuItem, deps: [{ token: i0.ElementRef }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
3393
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbarMenuItem, isStandalone: true, selector: "tru-toolbar-menu-item", inputs: { config: "config" }, ngImport: i0, template: "<div (click)=\"onClick($event)\">\r\n <p *ngIf=\"config.menuLabel\">{{config.menuLabel}}</p>\r\n <i *ngIf=\"config.menuIcon\" class=\"{{config.menuIcon}} sub-menu-icon\" tabindex=\"-1\"></i>\r\n <div class=\"sub-menu\" *ngIf=\"config.choices\" [style.maxHeight.px]=\"[maxHeight]\">\r\n <ul class=\"sub-menu-nav\">\r\n <li *ngFor=\"let choice of config.choices\">\r\n <div *ngIf=\"typeof choice.hasAccess === 'function' && choice.hasAccess() || choice.separator\">\r\n <p *ngIf=\"choice.separator && choice.title\" class=\"separator-title\">{{choice.title}}</p>\r\n <hr *ngIf=\"choice.separator\" />\r\n <div style=\"display: none\" *ngIf=\"choice?.openOnStart\">{{choice?.openOnStart | openOnStart}}</div>\r\n <button *ngIf=\"!choice.separator\" tabindex=\"-1\" (click)=\"choice.fire()\" [disabled]=\"!choice.enabled()\">{{choice.label}}</button>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [".menu{padding:0 10px;border-bottom:1px solid #6b6b6b;background:#f7f7f7;height:26px}.menu,.menu a{color:#000}.menu-nav{float:left;height:26px}.menu-nav>*{margin-right:0}.menu-nav>*>a{padding:0 10px;height:20px;line-height:19px;display:block;margin:3px 2px 2px}.menu-nav>*>a:hover{background:#959595}.menu-nav>*:active>a{color:#fff}.menu-nav select::-ms-expand{display:none}.menu-nav{margin:0;list-style:none;padding:0}.menu-nav>*{float:left;position:relative;margin:0 .5em 0 0;line-height:1}.menu-nav>*:last-child{margin-right:0}li.has-sub-menu{padding:0 5px}.has-sub-menu{position:relative;cursor:pointer}.has-sub-menu button{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important}.has-sub-menu p{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important;line-height:26px;pointer-events:none}.has-sub-menu p.separator-title{padding:0!important;font-size:12px;color:#ababab}.has-sub-menu:hover{background:#959595}\n", "p{margin:0;line-height:26px;pointer-events:none}.sub-menu{display:none;position:absolute;left:-1px;min-width:200px;padding:5px 0;background:#fff;border:1px solid #d5d5d5;border-top:none;z-index:99999999;overflow-y:auto}.sub-menu-nav a{display:block;padding:0 20px;line-height:1.5}.sub-menu-nav a:hover{background:#959595;color:#fff}.sub-menu-nav hr{margin:0;color:#dedede}.sub-menu button{background:#fff;border:none;text-decoration:none;cursor:pointer;display:block;padding:0 20px!important;line-height:1.5;width:100%;text-align:left;outline:none;white-space:nowrap;overflow:hidden;font-size:12px}.sub-menu button:hover{background:#959595;color:#fff}.sub-menu button:disabled{background:#fff;color:#000;opacity:.5}.sub-menu-nav>li{position:relative;padding:0 3px}.sub-menu-nav>li:hover>.sub-menu{display:block;top:-6px;left:190px;border:1px solid #d5d5d5}.sub-menu-nav{margin:0;padding:0;list-style:none}.sub-menu-nav>*+*{display:block;margin-top:5px}.sub-menu-icon{font-size:18px;line-height:22px;vertical-align:middle;pointer-events:none}.is-active div.sub-menu{display:block}.sub-menu-nav p.separator-title{padding:0!important;font-size:12px;color:#ababab}.sub-menu-nav hr{margin:0;color:#dedede;border:0;border-top:1px solid #dfdfdf;border-bottom:1px solid #fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: TruOpenOnStart, name: "openOnStart" }] });
3392
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarMenuItem, deps: [{ token: i0.ElementRef }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
3393
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbarMenuItem, isStandalone: true, selector: "tru-toolbar-menu-item", inputs: { config: "config" }, ngImport: i0, template: "<div (click)=\"onClick($event)\">\r\n <p *ngIf=\"config.menuLabel\">{{config.menuLabel}}</p>\r\n <i *ngIf=\"config.menuIcon\" class=\"{{config.menuIcon}} sub-menu-icon\" tabindex=\"-1\"></i>\r\n <div class=\"sub-menu\" *ngIf=\"config.choices\" [style.maxHeight.px]=\"[maxHeight]\">\r\n <ul class=\"sub-menu-nav\">\r\n <li *ngFor=\"let choice of config.choices\">\r\n <div *ngIf=\"typeof choice.hasAccess === 'function' && choice.hasAccess() || choice.separator\">\r\n <p *ngIf=\"choice.separator && choice.title\" class=\"separator-title\">{{choice.title}}</p>\r\n <hr *ngIf=\"choice.separator\" />\r\n <div style=\"display: none\" *ngIf=\"choice?.openOnStart\">{{choice?.openOnStart | openOnStart}}</div>\r\n <button *ngIf=\"!choice.separator\" tabindex=\"-1\" (click)=\"choice.fire()\" [disabled]=\"!choice.enabled()\">{{choice.label}}</button>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [".menu{padding:0 10px;border-bottom:1px solid #6b6b6b;background:#f7f7f7;height:26px}.menu,.menu a{color:#000}.menu-nav{float:left;height:26px}.menu-nav>*{margin-right:0}.menu-nav>*>a{padding:0 10px;height:20px;line-height:19px;display:block;margin:3px 2px 2px}.menu-nav>*>a:hover{background:#959595}.menu-nav>*:active>a{color:#fff}.menu-nav select::-ms-expand{display:none}.menu-nav{margin:0;list-style:none;padding:0}.menu-nav>*{float:left;position:relative;margin:0 .5em 0 0;line-height:1}.menu-nav>*:last-child{margin-right:0}li.has-sub-menu{padding:0 5px}.has-sub-menu{position:relative;cursor:pointer}.has-sub-menu button{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important}.has-sub-menu p{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important;line-height:26px;pointer-events:none}.has-sub-menu p.separator-title{padding:0!important;font-size:12px;color:#ababab}.has-sub-menu:hover{background:#959595}\n", "p{margin:0;line-height:26px;pointer-events:none}.sub-menu{display:none;position:absolute;left:-1px;min-width:200px;padding:5px 0;background:#fff;border:1px solid #d5d5d5;border-top:none;z-index:99999999;overflow-y:auto}.sub-menu-nav a{display:block;padding:0 20px;line-height:1.5}.sub-menu-nav a:hover{background:#959595;color:#fff}.sub-menu-nav hr{margin:0;color:#dedede}.sub-menu button{background:#fff;border:none;text-decoration:none;cursor:pointer;display:block;padding:0 20px!important;line-height:1.5;width:100%;text-align:left;outline:none;white-space:nowrap;overflow:hidden;font-size:12px}.sub-menu button:hover{background:#959595;color:#fff}.sub-menu button:disabled{background:#fff;color:#000;opacity:.5}.sub-menu-nav>li{position:relative;padding:0 3px}.sub-menu-nav>li:hover>.sub-menu{display:block;top:-6px;left:190px;border:1px solid #d5d5d5}.sub-menu-nav{margin:0;padding:0;list-style:none}.sub-menu-nav>*+*{display:block;margin-top:5px}.sub-menu-icon{font-size:18px;line-height:22px;vertical-align:middle;pointer-events:none}.is-active div.sub-menu{display:block}.sub-menu-nav p.separator-title{padding:0!important;font-size:12px;color:#ababab}.sub-menu-nav hr{margin:0;color:#dedede;border:0;border-top:1px solid #dfdfdf;border-bottom:1px solid #fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: TruOpenOnStart, name: "openOnStart" }] });
3394
3394
  }
3395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarMenuItem, decorators: [{
3395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarMenuItem, decorators: [{
3396
3396
  type: Component,
3397
3397
  args: [{ selector: 'tru-toolbar-menu-item', imports: [CommonModule, FormsModule, TruOpenOnStart], template: "<div (click)=\"onClick($event)\">\r\n <p *ngIf=\"config.menuLabel\">{{config.menuLabel}}</p>\r\n <i *ngIf=\"config.menuIcon\" class=\"{{config.menuIcon}} sub-menu-icon\" tabindex=\"-1\"></i>\r\n <div class=\"sub-menu\" *ngIf=\"config.choices\" [style.maxHeight.px]=\"[maxHeight]\">\r\n <ul class=\"sub-menu-nav\">\r\n <li *ngFor=\"let choice of config.choices\">\r\n <div *ngIf=\"typeof choice.hasAccess === 'function' && choice.hasAccess() || choice.separator\">\r\n <p *ngIf=\"choice.separator && choice.title\" class=\"separator-title\">{{choice.title}}</p>\r\n <hr *ngIf=\"choice.separator\" />\r\n <div style=\"display: none\" *ngIf=\"choice?.openOnStart\">{{choice?.openOnStart | openOnStart}}</div>\r\n <button *ngIf=\"!choice.separator\" tabindex=\"-1\" (click)=\"choice.fire()\" [disabled]=\"!choice.enabled()\">{{choice.label}}</button>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [".menu{padding:0 10px;border-bottom:1px solid #6b6b6b;background:#f7f7f7;height:26px}.menu,.menu a{color:#000}.menu-nav{float:left;height:26px}.menu-nav>*{margin-right:0}.menu-nav>*>a{padding:0 10px;height:20px;line-height:19px;display:block;margin:3px 2px 2px}.menu-nav>*>a:hover{background:#959595}.menu-nav>*:active>a{color:#fff}.menu-nav select::-ms-expand{display:none}.menu-nav{margin:0;list-style:none;padding:0}.menu-nav>*{float:left;position:relative;margin:0 .5em 0 0;line-height:1}.menu-nav>*:last-child{margin-right:0}li.has-sub-menu{padding:0 5px}.has-sub-menu{position:relative;cursor:pointer}.has-sub-menu button{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important}.has-sub-menu p{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important;line-height:26px;pointer-events:none}.has-sub-menu p.separator-title{padding:0!important;font-size:12px;color:#ababab}.has-sub-menu:hover{background:#959595}\n", "p{margin:0;line-height:26px;pointer-events:none}.sub-menu{display:none;position:absolute;left:-1px;min-width:200px;padding:5px 0;background:#fff;border:1px solid #d5d5d5;border-top:none;z-index:99999999;overflow-y:auto}.sub-menu-nav a{display:block;padding:0 20px;line-height:1.5}.sub-menu-nav a:hover{background:#959595;color:#fff}.sub-menu-nav hr{margin:0;color:#dedede}.sub-menu button{background:#fff;border:none;text-decoration:none;cursor:pointer;display:block;padding:0 20px!important;line-height:1.5;width:100%;text-align:left;outline:none;white-space:nowrap;overflow:hidden;font-size:12px}.sub-menu button:hover{background:#959595;color:#fff}.sub-menu button:disabled{background:#fff;color:#000;opacity:.5}.sub-menu-nav>li{position:relative;padding:0 3px}.sub-menu-nav>li:hover>.sub-menu{display:block;top:-6px;left:190px;border:1px solid #d5d5d5}.sub-menu-nav{margin:0;padding:0;list-style:none}.sub-menu-nav>*+*{display:block;margin-top:5px}.sub-menu-icon{font-size:18px;line-height:22px;vertical-align:middle;pointer-events:none}.is-active div.sub-menu{display:block}.sub-menu-nav p.separator-title{padding:0!important;font-size:12px;color:#ababab}.sub-menu-nav hr{margin:0;color:#dedede;border:0;border-top:1px solid #dfdfdf;border-bottom:1px solid #fff}\n"] }]
3398
3398
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: TruUtil }], propDecorators: { config: [{
@@ -3419,10 +3419,10 @@ class TruToolbarMenu {
3419
3419
  ngOnDestroy() {
3420
3420
  document.removeEventListener('click', this.onDocumentClick);
3421
3421
  }
3422
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
3423
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbarMenu, isStandalone: true, selector: "tru-toolbar-menu", inputs: { config: "config" }, ngImport: i0, template: "<ul class=\"hList menu-nav\" *ngIf=\"!config.choices || config.choices && config.choices.length && atLeastOneItemVisible\">\r\n <li class=\"has-sub-menu\">\r\n <tru-toolbar-menu-button [config]=\"config\" *ngIf=\"!config.choices\"></tru-toolbar-menu-button>\r\n <tru-toolbar-menu-item [config]=\"config\" *ngIf=\"config.choices\"></tru-toolbar-menu-item>\r\n </li>\r\n</ul>\r\n", styles: [".menu{padding:0 10px;border-bottom:1px solid #6b6b6b;background:#f7f7f7;height:26px}.menu,.menu a{color:#000}.menu-nav{float:left;height:26px}.menu-nav>*{margin-right:0}.menu-nav>*>a{padding:0 10px;height:20px;line-height:19px;display:block;margin:3px 2px 2px}.menu-nav>*>a:hover{background:#959595}.menu-nav>*:active>a{color:#fff}.menu-nav select::-ms-expand{display:none}.menu-nav{margin:0;list-style:none;padding:0}.menu-nav>*{float:left;position:relative;margin:0 .5em 0 0;line-height:1}.menu-nav>*:last-child{margin-right:0}li.has-sub-menu{padding:0 5px}.has-sub-menu{position:relative;cursor:pointer}.has-sub-menu button{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important}.has-sub-menu p{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important;line-height:26px;pointer-events:none}.has-sub-menu p.separator-title{padding:0!important;font-size:12px;color:#ababab}.has-sub-menu:hover{background:#959595}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TruToolbarMenuItem, selector: "tru-toolbar-menu-item", inputs: ["config"] }, { kind: "component", type: TruToolbarMenuButton, selector: "tru-toolbar-menu-button", inputs: ["config"] }] });
3422
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
3423
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbarMenu, isStandalone: true, selector: "tru-toolbar-menu", inputs: { config: "config" }, ngImport: i0, template: "<ul class=\"hList menu-nav\" *ngIf=\"!config.choices || config.choices && config.choices.length && atLeastOneItemVisible\">\r\n <li class=\"has-sub-menu\">\r\n <tru-toolbar-menu-button [config]=\"config\" *ngIf=\"!config.choices\"></tru-toolbar-menu-button>\r\n <tru-toolbar-menu-item [config]=\"config\" *ngIf=\"config.choices\"></tru-toolbar-menu-item>\r\n </li>\r\n</ul>\r\n", styles: [".menu{padding:0 10px;border-bottom:1px solid #6b6b6b;background:#f7f7f7;height:26px}.menu,.menu a{color:#000}.menu-nav{float:left;height:26px}.menu-nav>*{margin-right:0}.menu-nav>*>a{padding:0 10px;height:20px;line-height:19px;display:block;margin:3px 2px 2px}.menu-nav>*>a:hover{background:#959595}.menu-nav>*:active>a{color:#fff}.menu-nav select::-ms-expand{display:none}.menu-nav{margin:0;list-style:none;padding:0}.menu-nav>*{float:left;position:relative;margin:0 .5em 0 0;line-height:1}.menu-nav>*:last-child{margin-right:0}li.has-sub-menu{padding:0 5px}.has-sub-menu{position:relative;cursor:pointer}.has-sub-menu button{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important}.has-sub-menu p{background:transparent;border:none;text-decoration:none;cursor:pointer;display:block;width:100%;text-align:left;outline:none;padding:0 10px!important;line-height:26px;pointer-events:none}.has-sub-menu p.separator-title{padding:0!important;font-size:12px;color:#ababab}.has-sub-menu:hover{background:#959595}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TruToolbarMenuItem, selector: "tru-toolbar-menu-item", inputs: ["config"] }, { kind: "component", type: TruToolbarMenuButton, selector: "tru-toolbar-menu-button", inputs: ["config"] }] });
3424
3424
  }
3425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarMenu, decorators: [{
3425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarMenu, decorators: [{
3426
3426
  type: Component,
3427
3427
  args: [{ selector: 'tru-toolbar-menu', imports: [
3428
3428
  CommonModule,
@@ -3436,10 +3436,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
3436
3436
 
3437
3437
  class TruToolbarSeparator {
3438
3438
  constructor() { }
3439
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
3440
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbarSeparator, isStandalone: true, selector: "tru-toolbar-separator", ngImport: i0, template: "<div class=\"tru-toolbar-separator\"></div>\r\n", styles: [".tru-toolbar-separator{display:inline-block;border-left:1px solid #999;margin:0 3px;font-size:1.4rem;line-height:1.8rem;text-indent:-99em;vertical-align:-2px;height:15px;margin-top:5px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
3439
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
3440
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbarSeparator, isStandalone: true, selector: "tru-toolbar-separator", ngImport: i0, template: "<div class=\"tru-toolbar-separator\"></div>\r\n", styles: [".tru-toolbar-separator{display:inline-block;border-left:1px solid #999;margin:0 3px;font-size:1.4rem;line-height:1.8rem;text-indent:-99em;vertical-align:-2px;height:15px;margin-top:5px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
3441
3441
  }
3442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarSeparator, decorators: [{
3442
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarSeparator, decorators: [{
3443
3443
  type: Component,
3444
3444
  args: [{ selector: 'tru-toolbar-separator', imports: [CommonModule, FormsModule], template: "<div class=\"tru-toolbar-separator\"></div>\r\n", styles: [".tru-toolbar-separator{display:inline-block;border-left:1px solid #999;margin:0 3px;font-size:1.4rem;line-height:1.8rem;text-indent:-99em;vertical-align:-2px;height:15px;margin-top:5px!important}\n"] }]
3445
3445
  }], ctorParameters: () => [] });
@@ -3452,10 +3452,10 @@ class TruToolbarText {
3452
3452
  constructor() { }
3453
3453
  ngOnInit() {
3454
3454
  }
3455
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarText, deps: [], target: i0.ɵɵFactoryTarget.Component });
3456
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbarText, isStandalone: true, selector: "tru-toolbar-text", inputs: { config: "config", icon: "icon", text: "text", tooltip: "tooltip" }, ngImport: i0, template: "<p>\r\n <span class=\"toolbar-text-text\" *ngIf=\"text\">{{text}}</span>\r\n</p>\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\n", ".toolbar-text-text{vertical-align:sub}p{line-height:1.8}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }], encapsulation: i0.ViewEncapsulation.None });
3455
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarText, deps: [], target: i0.ɵɵFactoryTarget.Component });
3456
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbarText, isStandalone: true, selector: "tru-toolbar-text", inputs: { config: "config", icon: "icon", text: "text", tooltip: "tooltip" }, ngImport: i0, template: "<p>\r\n <span class=\"toolbar-text-text\" *ngIf=\"text\">{{text}}</span>\r\n</p>\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\n", ".toolbar-text-text{vertical-align:sub}p{line-height:1.8}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }], encapsulation: i0.ViewEncapsulation.None });
3457
3457
  }
3458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarText, decorators: [{
3458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarText, decorators: [{
3459
3459
  type: Component,
3460
3460
  args: [{ selector: 'tru-toolbar-text', imports: [
3461
3461
  CommonModule,
@@ -3481,10 +3481,10 @@ class TruAuthCache {
3481
3481
  pruneAll() {
3482
3482
  this.prunables.forEach((p) => p.pruneCache());
3483
3483
  }
3484
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuthCache, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3485
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuthCache, providedIn: "root" });
3484
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuthCache, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3485
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuthCache, providedIn: "root" });
3486
3486
  }
3487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuthCache, decorators: [{
3487
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuthCache, decorators: [{
3488
3488
  type: Injectable,
3489
3489
  args: [{
3490
3490
  providedIn: "root",
@@ -3698,10 +3698,10 @@ class TruServerTouchTracker {
3698
3698
  // ignore (storage may be disabled)
3699
3699
  }
3700
3700
  }
3701
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruServerTouchTracker, deps: [{ token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Injectable });
3702
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruServerTouchTracker, providedIn: 'root' });
3701
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruServerTouchTracker, deps: [{ token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Injectable });
3702
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruServerTouchTracker, providedIn: 'root' });
3703
3703
  }
3704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruServerTouchTracker, decorators: [{
3704
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruServerTouchTracker, decorators: [{
3705
3705
  type: Injectable,
3706
3706
  args: [{
3707
3707
  providedIn: 'root',
@@ -3735,10 +3735,10 @@ class TruUserActivityTracker {
3735
3735
  getLastActivityAtMs() {
3736
3736
  return this.lastActivityAtMs;
3737
3737
  }
3738
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUserActivityTracker, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
3739
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUserActivityTracker, providedIn: 'root' });
3738
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUserActivityTracker, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
3739
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUserActivityTracker, providedIn: 'root' });
3740
3740
  }
3741
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUserActivityTracker, decorators: [{
3741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUserActivityTracker, decorators: [{
3742
3742
  type: Injectable,
3743
3743
  args: [{
3744
3744
  providedIn: 'root',
@@ -3921,10 +3921,10 @@ class TruSessionKeepalive {
3921
3921
  const cappedByExpiryMs = Math.max(1_000, Math.floor(timeUntilExpiryMs / 2));
3922
3922
  return Math.min(exponentialBackoffMs, cappedByExpiryMs);
3923
3923
  }
3924
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSessionKeepalive, deps: [{ token: i1$2.HttpClient }, { token: TruAppEnvironment }, { token: TruServerTouchTracker }, { token: TruUserActivityTracker }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
3925
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSessionKeepalive, providedIn: 'root' });
3924
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSessionKeepalive, deps: [{ token: i1$2.HttpClient }, { token: TruAppEnvironment }, { token: TruServerTouchTracker }, { token: TruUserActivityTracker }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
3925
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSessionKeepalive, providedIn: 'root' });
3926
3926
  }
3927
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSessionKeepalive, decorators: [{
3927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSessionKeepalive, decorators: [{
3928
3928
  type: Injectable,
3929
3929
  args: [{
3930
3930
  providedIn: 'root',
@@ -4089,10 +4089,10 @@ class TruSessionExpiryMonitor {
4089
4089
  const clamped = Math.min(TruSessionExpiryMonitor.MAX_WARNING_MS, Math.max(TruSessionExpiryMonitor.MIN_WARNING_MS, derived));
4090
4090
  return Math.min(clamped, Math.max(0, timeoutMs - 1_000));
4091
4091
  }
4092
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSessionExpiryMonitor, deps: [{ token: TruAppEnvironment }, { token: TruServerTouchTracker }, { token: TruUserActivityTracker }, { token: TruUiNotification }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
4093
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSessionExpiryMonitor, providedIn: 'root' });
4092
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSessionExpiryMonitor, deps: [{ token: TruAppEnvironment }, { token: TruServerTouchTracker }, { token: TruUserActivityTracker }, { token: TruUiNotification }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
4093
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSessionExpiryMonitor, providedIn: 'root' });
4094
4094
  }
4095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSessionExpiryMonitor, decorators: [{
4095
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSessionExpiryMonitor, decorators: [{
4096
4096
  type: Injectable,
4097
4097
  args: [{
4098
4098
  providedIn: 'root',
@@ -4174,10 +4174,10 @@ class TruAuth {
4174
4174
  this.sessionKeepalive.stop();
4175
4175
  this.sessionExpiryMonitor.stop();
4176
4176
  }
4177
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuth, deps: [{ token: i1$5.Router }, { token: i1$2.HttpClient }, { token: TruAuthCache }, { token: TruUser }, { token: TruAppEnvironment }, { token: TruSessionKeepalive }, { token: TruSessionExpiryMonitor }, { token: TRU_AUTH_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable });
4178
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuth, providedIn: "root" });
4177
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuth, deps: [{ token: i1$5.Router }, { token: i1$2.HttpClient }, { token: TruAuthCache }, { token: TruUser }, { token: TruAppEnvironment }, { token: TruSessionKeepalive }, { token: TruSessionExpiryMonitor }, { token: TRU_AUTH_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable });
4178
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuth, providedIn: "root" });
4179
4179
  }
4180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuth, decorators: [{
4180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuth, decorators: [{
4181
4181
  type: Injectable,
4182
4182
  args: [{
4183
4183
  providedIn: "root",
@@ -4208,10 +4208,10 @@ class TruToolbarUserProfile {
4208
4208
  onLogoutButtonClicked = () => {
4209
4209
  this.auth.logout();
4210
4210
  };
4211
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarUserProfile, deps: [{ token: TruUser }, { token: TruAuth }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
4212
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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 });
4211
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarUserProfile, deps: [{ token: TruUser }, { token: TruAuth }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
4212
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", 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 });
4213
4213
  }
4214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarUserProfile, decorators: [{
4214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarUserProfile, decorators: [{
4215
4215
  type: Component,
4216
4216
  args: [{ selector: 'tru-toolbar-user-profile', imports: [
4217
4217
  CommonModule,
@@ -4233,10 +4233,10 @@ class TruToolbar {
4233
4233
  this.config.forEach(item => {
4234
4234
  });
4235
4235
  }
4236
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
4237
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbar, isStandalone: true, selector: "tru-toolbar", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"toolbar toolbar-group\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
4236
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
4237
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbar, isStandalone: true, selector: "tru-toolbar", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"toolbar toolbar-group\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
4238
4238
  }
4239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbar, decorators: [{
4239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbar, decorators: [{
4240
4240
  type: Component,
4241
4241
  args: [{ selector: 'tru-toolbar', imports: [
4242
4242
  CommonModule,
@@ -4258,10 +4258,10 @@ class TruRendered {
4258
4258
  ngAfterContentChecked() {
4259
4259
  this.rendered.emit();
4260
4260
  }
4261
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruRendered, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4262
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruRendered, isStandalone: true, selector: "[truRendered]", outputs: { rendered: "rendered" }, ngImport: i0 });
4261
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruRendered, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4262
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruRendered, isStandalone: true, selector: "[truRendered]", outputs: { rendered: "rendered" }, ngImport: i0 });
4263
4263
  }
4264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruRendered, decorators: [{
4264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruRendered, decorators: [{
4265
4265
  type: Directive,
4266
4266
  args: [{
4267
4267
  selector: '[truRendered]'
@@ -4407,11 +4407,11 @@ class TruIconModule {
4407
4407
  iconRegistry.addSvgIconLiteral("visibility-icon", sanitizer.bypassSecurityTrustHtml(VISIBILITY_ICON));
4408
4408
  iconRegistry.addSvgIconLiteral("visibility-off-icon", sanitizer.bypassSecurityTrustHtml(VISIBILITY_OFF_ICON));
4409
4409
  }
4410
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruIconModule, deps: [{ token: i1$6.DomSanitizer }, { token: i2.MatIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
4411
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: TruIconModule, imports: [CommonModule, FormsModule] });
4412
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruIconModule, imports: [CommonModule, FormsModule] });
4410
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruIconModule, deps: [{ token: i1$6.DomSanitizer }, { token: i2.MatIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
4411
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: TruIconModule, imports: [CommonModule, FormsModule] });
4412
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruIconModule, imports: [CommonModule, FormsModule] });
4413
4413
  }
4414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruIconModule, decorators: [{
4414
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruIconModule, decorators: [{
4415
4415
  type: NgModule,
4416
4416
  args: [{
4417
4417
  imports: [CommonModule, FormsModule],
@@ -4432,10 +4432,10 @@ class TruModelTableLookup {
4432
4432
  get all() {
4433
4433
  return [...this._lookup.values()];
4434
4434
  }
4435
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelTableLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4436
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelTableLookup, providedIn: 'root' });
4435
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelTableLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4436
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelTableLookup, providedIn: 'root' });
4437
4437
  }
4438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelTableLookup, decorators: [{
4438
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelTableLookup, decorators: [{
4439
4439
  type: Injectable,
4440
4440
  args: [{
4441
4441
  providedIn: 'root',
@@ -4451,10 +4451,10 @@ class TruModelPropertyLookup {
4451
4451
  set lookup(value) {
4452
4452
  this._lookup = value;
4453
4453
  }
4454
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelPropertyLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4455
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelPropertyLookup, providedIn: 'root' });
4454
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelPropertyLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4455
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelPropertyLookup, providedIn: 'root' });
4456
4456
  }
4457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelPropertyLookup, decorators: [{
4457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelPropertyLookup, decorators: [{
4458
4458
  type: Injectable,
4459
4459
  args: [{
4460
4460
  providedIn: 'root',
@@ -4470,10 +4470,10 @@ class TruModelTypeLookup {
4470
4470
  setType(typeName, type) {
4471
4471
  this._lookup.set(typeName, type);
4472
4472
  }
4473
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelTypeLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4474
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelTypeLookup, providedIn: 'root' });
4473
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelTypeLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4474
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelTypeLookup, providedIn: 'root' });
4475
4475
  }
4476
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruModelTypeLookup, decorators: [{
4476
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruModelTypeLookup, decorators: [{
4477
4477
  type: Injectable,
4478
4478
  args: [{
4479
4479
  providedIn: 'root',
@@ -4730,10 +4730,10 @@ class TruCloneView extends TruViewBase {
4730
4730
  this.flatList.length = 0;
4731
4731
  this.childFlatList.length = 0;
4732
4732
  }
4733
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCloneView, deps: [{ token: TruTextManager }, { token: TruWindowEventHandler }, { token: TruDataContext }, { token: TruModelTableLookup }, { token: TruModelPropertyLookup }, { token: TruModelTypeLookup }, { token: TruModelNavigationPropertiesLookup }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
4734
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruCloneView, isStandalone: true, selector: "tru-clone-view", usesInheritance: true, ngImport: i0, template: "<div>\r\n <tru-toolbar>\r\n <tru-toolbar-button [icon]=\"'expand-icon'\" [tooltip]=\"'Expand'\" [disabled]=\"!doneProcessing\" (onClick)=\"onExpandClicked()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'collapse-icon'\" [tooltip]=\"'Collapse'\" [disabled]=\"!doneProcessing\" (onClick)=\"onCollapseClicked()\"></tru-toolbar-button>\r\n <tru-toolbar-text [text]=\"'Copies:'\"></tru-toolbar-text>\r\n <tru-toolbar-dropdown [options]=\"numberOfCopies\"\r\n [(selectedOption)]=\"selectedNumberOfCopies\"\r\n [disabled]=\"!doneProcessing\"\r\n (selectionChange)=\"onNumberOfCopiesChanged($event)\">\r\n </tru-toolbar-dropdown>\r\n </tru-toolbar>\r\n <div class=\"tru-dialog-content clone\">\r\n <ng-template #groupNodeRenderer let-data>\r\n <div *ngIf=\"!data.child || data.showEntities\"\r\n class=\"clone-modal-tree-group\">\r\n <input [(ngModel)]=\"data.checked\"\r\n (change)=\"data.onCheckedChanged()\"\r\n [disabled]=\"data.root\"\r\n type=\"checkbox\" />\r\n <a (click)=\"data.onGroupDisplayNameClicked()\"\r\n [ngClass]=\"{'clone-modal-tree-group-root-name': data.root || data.child}\"\r\n [ngStyle]=\"{'max-width': data.childNode ? '300px' : 'auto'}\">{{data.displayName}}</a>\r\n <span *ngIf=\"!data.root && !data.child\"\r\n class=\"clone-modal-tree-group-count\">({{data.nodes.length}})</span>\r\n </div>\r\n <ul>\r\n <li *ngFor=\"let data of data.nodes; let last = last\" truRendered (rendered)=\"onRendered()\">\r\n <div *ngTemplateOutlet=\"groupNodeRenderer; context: {$implicit: data}\"></div>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n <div *ngIf=\"loadingMessage\"\r\n class=\"clone-modal-loading\">\r\n <span class=\"clone-modal-loading-message\">{{loadingMessage}}</span>\r\n </div>\r\n <div *ngIf=\"doneProcessing\"\r\n class=\"clone-modal-tree\">\r\n <ul>\r\n <li *ngFor=\"let data of displayTree; let last = last\" truRendered (rendered)=\"onRendered()\">\r\n <div *ngTemplateOutlet=\"groupNodeRenderer; context: {$implicit: data}\"></div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"tru-dialog-footer\">\r\n <button mat-button (keyup.enter)=\"onCancel()\" (click)=\"onCancel()\">Cancel</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onClone()\" (keyup.enter)=\"onClone()\" [disabled]=\"!doneProcessing\">Clone</button>\r\n </div>\r\n</div>\r\n", styles: [".tru-dialog-footer{position:absolute;left:0;right:0;bottom:0;padding:4px 15px 5px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px #fff}.tru-dialog-footer button{height:30px;margin-left:10px}::ng-deep tru-toolbar-button svg{height:20px!important}.clone ul{list-style-type:none}.clone-modal-loading{position:absolute;inset:15px 0 -15px;overflow:hidden;margin-top:10px}.clone-modal-loading-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%)}.clone-modal-tree{position:absolute;inset:15px 0 35px;overflow-y:auto;margin-top:10px}.clone-modal-tree ul{padding-left:15px}.clone-modal-tree-group{display:flex;margin-top:5px}.clone-modal-tree-group input{float:left}.clone-modal-tree-group a{text-decoration-line:underline}.clone-modal-tree-group-root-name{text-decoration-line:none!important;color:#000}.clone-modal-tree-group span{margin-left:5px}.clone-modal-tree-group a{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:18px;margin-left:5px;float:left}.clone-modal-tree-group-count{vertical-align:middle;float:left}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarButton, selector: "tru-toolbar-button", inputs: ["config", "icon", "text", "disabled", "tooltip", "type"], outputs: ["onClick", "onKeydown"] }, { kind: "component", type: TruToolbarText, selector: "tru-toolbar-text", inputs: ["config", "icon", "text", "tooltip"] }, { kind: "component", type: TruToolbarDropdown, selector: "tru-toolbar-dropdown", inputs: ["config", "options", "tooltip", "multiple", "filterable", "filterTooltip", "width", "selectedOption", "disabled"], outputs: ["selectedOptionChange", "selectionChange"] }, { kind: "ngmodule", type: TruIconModule }, { kind: "directive", type: TruRendered, selector: "[truRendered]", outputs: ["rendered"] }] });
4733
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCloneView, deps: [{ token: TruTextManager }, { token: TruWindowEventHandler }, { token: TruDataContext }, { token: TruModelTableLookup }, { token: TruModelPropertyLookup }, { token: TruModelTypeLookup }, { token: TruModelNavigationPropertiesLookup }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
4734
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruCloneView, isStandalone: true, selector: "tru-clone-view", usesInheritance: true, ngImport: i0, template: "<div>\r\n <tru-toolbar>\r\n <tru-toolbar-button [icon]=\"'expand-icon'\" [tooltip]=\"'Expand'\" [disabled]=\"!doneProcessing\" (onClick)=\"onExpandClicked()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'collapse-icon'\" [tooltip]=\"'Collapse'\" [disabled]=\"!doneProcessing\" (onClick)=\"onCollapseClicked()\"></tru-toolbar-button>\r\n <tru-toolbar-text [text]=\"'Copies:'\"></tru-toolbar-text>\r\n <tru-toolbar-dropdown [options]=\"numberOfCopies\"\r\n [(selectedOption)]=\"selectedNumberOfCopies\"\r\n [disabled]=\"!doneProcessing\"\r\n (selectionChange)=\"onNumberOfCopiesChanged($event)\">\r\n </tru-toolbar-dropdown>\r\n </tru-toolbar>\r\n <div class=\"tru-dialog-content clone\">\r\n <ng-template #groupNodeRenderer let-data>\r\n <div *ngIf=\"!data.child || data.showEntities\"\r\n class=\"clone-modal-tree-group\">\r\n <input [(ngModel)]=\"data.checked\"\r\n (change)=\"data.onCheckedChanged()\"\r\n [disabled]=\"data.root\"\r\n type=\"checkbox\" />\r\n <a (click)=\"data.onGroupDisplayNameClicked()\"\r\n [ngClass]=\"{'clone-modal-tree-group-root-name': data.root || data.child}\"\r\n [ngStyle]=\"{'max-width': data.childNode ? '300px' : 'auto'}\">{{data.displayName}}</a>\r\n <span *ngIf=\"!data.root && !data.child\"\r\n class=\"clone-modal-tree-group-count\">({{data.nodes.length}})</span>\r\n </div>\r\n <ul>\r\n <li *ngFor=\"let data of data.nodes; let last = last\" truRendered (rendered)=\"onRendered()\">\r\n <div *ngTemplateOutlet=\"groupNodeRenderer; context: {$implicit: data}\"></div>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n <div *ngIf=\"loadingMessage\"\r\n class=\"clone-modal-loading\">\r\n <span class=\"clone-modal-loading-message\">{{loadingMessage}}</span>\r\n </div>\r\n <div *ngIf=\"doneProcessing\"\r\n class=\"clone-modal-tree\">\r\n <ul>\r\n <li *ngFor=\"let data of displayTree; let last = last\" truRendered (rendered)=\"onRendered()\">\r\n <div *ngTemplateOutlet=\"groupNodeRenderer; context: {$implicit: data}\"></div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"tru-dialog-footer\">\r\n <button mat-button (keyup.enter)=\"onCancel()\" (click)=\"onCancel()\">Cancel</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onClone()\" (keyup.enter)=\"onClone()\" [disabled]=\"!doneProcessing\">Clone</button>\r\n </div>\r\n</div>\r\n", styles: [".tru-dialog-footer{position:absolute;left:0;right:0;bottom:0;padding:4px 15px 5px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px #fff}.tru-dialog-footer button{height:30px;margin-left:10px}::ng-deep tru-toolbar-button svg{height:20px!important}.clone ul{list-style-type:none}.clone-modal-loading{position:absolute;inset:15px 0 -15px;overflow:hidden;margin-top:10px}.clone-modal-loading-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%)}.clone-modal-tree{position:absolute;inset:15px 0 35px;overflow-y:auto;margin-top:10px}.clone-modal-tree ul{padding-left:15px}.clone-modal-tree-group{display:flex;margin-top:5px}.clone-modal-tree-group input{float:left}.clone-modal-tree-group a{text-decoration-line:underline}.clone-modal-tree-group-root-name{text-decoration-line:none!important;color:#000}.clone-modal-tree-group span{margin-left:5px}.clone-modal-tree-group a{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:18px;margin-left:5px;float:left}.clone-modal-tree-group-count{vertical-align:middle;float:left}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarButton, selector: "tru-toolbar-button", inputs: ["config", "icon", "text", "disabled", "tooltip", "type"], outputs: ["onClick", "onKeydown"] }, { kind: "component", type: TruToolbarText, selector: "tru-toolbar-text", inputs: ["config", "icon", "text", "tooltip"] }, { kind: "component", type: TruToolbarDropdown, selector: "tru-toolbar-dropdown", inputs: ["config", "options", "tooltip", "multiple", "filterable", "filterTooltip", "width", "selectedOption", "disabled"], outputs: ["selectedOptionChange", "selectionChange"] }, { kind: "ngmodule", type: TruIconModule }, { kind: "directive", type: TruRendered, selector: "[truRendered]", outputs: ["rendered"] }] });
4735
4735
  }
4736
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCloneView, decorators: [{
4736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCloneView, decorators: [{
4737
4737
  type: Component,
4738
4738
  args: [{ selector: 'tru-clone-view', imports: [
4739
4739
  CommonModule,
@@ -4835,10 +4835,10 @@ class TruComponentLookup {
4835
4835
  v.name.toLowerCase().endsWith(suffix.toLowerCase());
4836
4836
  });
4837
4837
  };
4838
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruComponentLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4839
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruComponentLookup, providedIn: 'root' });
4838
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruComponentLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4839
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruComponentLookup, providedIn: 'root' });
4840
4840
  }
4841
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruComponentLookup, decorators: [{
4841
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruComponentLookup, decorators: [{
4842
4842
  type: Injectable,
4843
4843
  args: [{ providedIn: 'root' }]
4844
4844
  }], ctorParameters: () => [] });
@@ -4854,10 +4854,10 @@ class TruDesktopViewEventNotifier {
4854
4854
  set isActive(value) {
4855
4855
  this.active$.next(value);
4856
4856
  }
4857
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopViewEventNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4858
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopViewEventNotifier });
4857
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopViewEventNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4858
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopViewEventNotifier });
4859
4859
  }
4860
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopViewEventNotifier, decorators: [{
4860
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopViewEventNotifier, decorators: [{
4861
4861
  type: Injectable
4862
4862
  }] });
4863
4863
 
@@ -5056,10 +5056,10 @@ class TruDetailViewBase {
5056
5056
  this.windowEventHandler.setWindowTitle(this.textManager.formatWindowTitle(title));
5057
5057
  this.recordLocation = recordIndex + ' of ' + this.entities.length;
5058
5058
  }
5059
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDetailViewBase, deps: [{ token: TruDataContext }, { token: TruComponentLookup }, { token: TruAppEnvironment }, { token: TruTextManager }, { token: TruDesktopManager }, { token: TruWindowEventHandler }, { token: TruDesktopViewEventNotifier }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
5060
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDetailViewBase, isStandalone: true, selector: "tru-detail-view-base", inputs: { view: "view" }, viewQueries: [{ propertyName: "customToolbarContainer", first: true, predicate: ["customToolbarContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
5059
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDetailViewBase, deps: [{ token: TruDataContext }, { token: TruComponentLookup }, { token: TruAppEnvironment }, { token: TruTextManager }, { token: TruDesktopManager }, { token: TruWindowEventHandler }, { token: TruDesktopViewEventNotifier }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
5060
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDetailViewBase, isStandalone: true, selector: "tru-detail-view-base", inputs: { view: "view" }, viewQueries: [{ propertyName: "customToolbarContainer", first: true, predicate: ["customToolbarContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
5061
5061
  }
5062
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDetailViewBase, decorators: [{
5062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDetailViewBase, decorators: [{
5063
5063
  type: Component,
5064
5064
  args: [{ selector: 'tru-detail-view-base', imports: [CommonModule, FormsModule], template: "" }]
5065
5065
  }], ctorParameters: () => [{ type: TruDataContext }, { type: TruComponentLookup }, { type: TruAppEnvironment }, { type: TruTextManager }, { type: TruDesktopManager }, { type: TruWindowEventHandler }, { type: TruDesktopViewEventNotifier }, { type: TruUtil }], propDecorators: { customToolbarContainer: [{
@@ -5091,10 +5091,10 @@ class TruSearchViewControlEventHandler {
5091
5091
  updateDependants = (table, ancestorRef, entity, value) => {
5092
5092
  this.updateDependants$.next({ table: table, ancestorRef: ancestorRef, entity: entity, value: value });
5093
5093
  };
5094
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchViewControlEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5095
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchViewControlEventHandler });
5094
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchViewControlEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5095
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchViewControlEventHandler });
5096
5096
  }
5097
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchViewControlEventHandler, decorators: [{
5097
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchViewControlEventHandler, decorators: [{
5098
5098
  type: Injectable
5099
5099
  }] });
5100
5100
 
@@ -5120,10 +5120,10 @@ class TruSearchViewEventHandler {
5120
5120
  onFilter() {
5121
5121
  return this.filter$.asObservable();
5122
5122
  }
5123
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchViewEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5124
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchViewEventHandler });
5123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchViewEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5124
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchViewEventHandler });
5125
5125
  }
5126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchViewEventHandler, decorators: [{
5126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchViewEventHandler, decorators: [{
5127
5127
  type: Injectable
5128
5128
  }] });
5129
5129
 
@@ -5201,10 +5201,10 @@ class TruSearchResultViewBase {
5201
5201
  this.uiNotification.confirm('No Detail View', this.tablePluralLabel + ' does not have a detail view.', false, true, "", "Ok").then(() => { });
5202
5202
  }
5203
5203
  };
5204
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchResultViewBase, deps: [{ token: TruUiNotification }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
5205
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruSearchResultViewBase, isStandalone: true, selector: "tru-search-result-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
5204
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchResultViewBase, deps: [{ token: TruUiNotification }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
5205
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruSearchResultViewBase, isStandalone: true, selector: "tru-search-result-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
5206
5206
  }
5207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchResultViewBase, decorators: [{
5207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchResultViewBase, decorators: [{
5208
5208
  type: Component,
5209
5209
  args: [{ selector: 'tru-search-result-view-base', imports: [CommonModule, FormsModule], template: "" }]
5210
5210
  }], ctorParameters: () => [{ type: TruUiNotification }, { type: TruWindowEventHandler }], propDecorators: { view: [{
@@ -5773,10 +5773,10 @@ class TruUserPreferenceManager {
5773
5773
  });
5774
5774
  });
5775
5775
  };
5776
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUserPreferenceManager, deps: [{ token: TruModelTypeLookup }, { token: TruAppEnvironment }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
5777
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUserPreferenceManager, providedIn: 'root' });
5776
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUserPreferenceManager, deps: [{ token: TruModelTypeLookup }, { token: TruAppEnvironment }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
5777
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUserPreferenceManager, providedIn: 'root' });
5778
5778
  }
5779
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruUserPreferenceManager, decorators: [{
5779
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruUserPreferenceManager, decorators: [{
5780
5780
  type: Injectable,
5781
5781
  args: [{
5782
5782
  providedIn: 'root',
@@ -5825,10 +5825,10 @@ class TruAppWindowOpenOnStartupSetting {
5825
5825
  ngOnInit() {
5826
5826
  this.displayedColumns = ['label', 'checked'];
5827
5827
  }
5828
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppWindowOpenOnStartupSetting, deps: [{ token: TruUserPreferenceManager }, { token: TruModelTableLookup }], target: i0.ɵɵFactoryTarget.Component });
5829
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.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"] }] });
5828
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppWindowOpenOnStartupSetting, deps: [{ token: TruUserPreferenceManager }, { token: TruModelTableLookup }], target: i0.ɵɵFactoryTarget.Component });
5829
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", 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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.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"] }] });
5830
5830
  }
5831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppWindowOpenOnStartupSetting, decorators: [{
5831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppWindowOpenOnStartupSetting, decorators: [{
5832
5832
  type: Component,
5833
5833
  args: [{ selector: 'tru-app-window-open-on-startup-setting', imports: [
5834
5834
  CommonModule,
@@ -5841,10 +5841,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
5841
5841
 
5842
5842
  class TruAppWindowSettings {
5843
5843
  constructor() { }
5844
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppWindowSettings, deps: [], target: i0.ɵɵFactoryTarget.Component });
5845
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruAppWindowSettings, isStandalone: true, selector: "tru-app-window-settings", ngImport: i0, template: "<div>\r\n <tru-app-window-open-on-startup-setting></tru-app-window-open-on-startup-setting>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: TruAppWindowOpenOnStartupSetting, selector: "tru-app-window-open-on-startup-setting" }] });
5844
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppWindowSettings, deps: [], target: i0.ɵɵFactoryTarget.Component });
5845
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruAppWindowSettings, isStandalone: true, selector: "tru-app-window-settings", ngImport: i0, template: "<div>\r\n <tru-app-window-open-on-startup-setting></tru-app-window-open-on-startup-setting>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: TruAppWindowOpenOnStartupSetting, selector: "tru-app-window-open-on-startup-setting" }] });
5846
5846
  }
5847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppWindowSettings, decorators: [{
5847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppWindowSettings, decorators: [{
5848
5848
  type: Component,
5849
5849
  args: [{ selector: 'tru-app-window-settings', imports: [
5850
5850
  CommonModule,
@@ -5874,10 +5874,10 @@ class TruAppSettingsDialog {
5874
5874
  this.dialogRef.close(false);
5875
5875
  });
5876
5876
  }
5877
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppSettingsDialog, deps: [{ token: TruAppEnvironment }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
5878
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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.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" }] });
5877
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppSettingsDialog, deps: [{ token: TruAppEnvironment }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
5878
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", 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.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" }] });
5879
5879
  }
5880
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAppSettingsDialog, decorators: [{
5880
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAppSettingsDialog, decorators: [{
5881
5881
  type: Component,
5882
5882
  args: [{ selector: 'tru-app-settings-dialog', imports: [
5883
5883
  CommonModule,
@@ -5911,10 +5911,10 @@ class TruToolbarTextbox {
5911
5911
  onValueChange(event) {
5912
5912
  this.valueChange.emit(event.target.value);
5913
5913
  }
5914
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarTextbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
5915
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruToolbarTextbox, isStandalone: true, selector: "tru-toolbar-textbox", inputs: { config: "config", tooltip: "tooltip", value: "value", width: "width" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<mat-form-field class=\"tru-toolbar-textbox-container\">\r\n <input #input\r\n matInput\r\n (input)=\"onValueChange($event)\"\r\n [placeholder]=\"tooltip\"\r\n [style.width.px]=\"width\"\r\n type=\"text\" />\r\n</mat-form-field>\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\n", ".toolbar-text-text{vertical-align:sub}.toolbar .tru-toolbar-textbox-container input{background-color:#ebebeb;padding-left:5px;padding-right:5px;margin-left:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "directive", type: i7.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: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }], encapsulation: i0.ViewEncapsulation.None });
5914
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarTextbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
5915
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruToolbarTextbox, isStandalone: true, selector: "tru-toolbar-textbox", inputs: { config: "config", tooltip: "tooltip", value: "value", width: "width" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<mat-form-field class=\"tru-toolbar-textbox-container\">\r\n <input #input\r\n matInput\r\n (input)=\"onValueChange($event)\"\r\n [placeholder]=\"tooltip\"\r\n [style.width.px]=\"width\"\r\n type=\"text\" />\r\n</mat-form-field>\r\n", styles: [".toolbar{height:25px}.toolbar p{font-size:12px}.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:12px}.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}::ng-deep .toolbar input::placeholder{font-size:12px;opacity:.75}::ng-deep .toolbar .mat-mdc-select-placeholder{font-size:12px;opacity:.75}\n", ".toolbar-text-text{vertical-align:sub}.toolbar .tru-toolbar-textbox-container input{background-color:#ebebeb;padding-left:5px;padding-right:5px;margin-left:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "directive", type: i7.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: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }], encapsulation: i0.ViewEncapsulation.None });
5916
5916
  }
5917
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarTextbox, decorators: [{
5917
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarTextbox, decorators: [{
5918
5918
  type: Component,
5919
5919
  args: [{ selector: 'tru-toolbar-textbox', imports: [
5920
5920
  CommonModule,
@@ -6055,10 +6055,10 @@ class TruSearchResultViewManager {
6055
6055
  get searchViewToolbarTemplate() {
6056
6056
  return this._searchViewToolbarTemplate;
6057
6057
  }
6058
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchResultViewManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6059
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchResultViewManager });
6058
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchResultViewManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6059
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchResultViewManager });
6060
6060
  }
6061
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchResultViewManager, decorators: [{
6061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchResultViewManager, decorators: [{
6062
6062
  type: Injectable
6063
6063
  }], ctorParameters: () => [] });
6064
6064
 
@@ -6588,10 +6588,10 @@ class TruCardColumn {
6588
6588
  card.cardElement.classList.remove('tru-card-selected');
6589
6589
  //scope.config.onSelectionChanged(selectedCards);
6590
6590
  };
6591
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCardColumn, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruModelTypeLookup }, { token: TruSearchViewEventHandler }, { token: TruSearchResultViewManager }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
6592
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruCardColumn, isStandalone: true, selector: "tru-card-column", inputs: { config: "config", name: "name" }, viewQueries: [{ propertyName: "portal", first: true, predicate: ["cardPortal"], descendants: true }], ngImport: i0, template: "<div class=\"tru-card\">\r\n <div *ngIf=\"isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{busyMessage}}</p>\r\n </div>\r\n <tru-toolbar>\r\n <ng-container *ngTemplateOutlet=\"parentToolbarTemplate\"></ng-container>\r\n <tru-toolbar-separator></tru-toolbar-separator>\r\n <tru-toolbar-dropdown\r\n [tooltip]=\"columnFilterTooltip\"\r\n (selectionChange)=\"filterColumns($event)\"\r\n [options]=\"columnFilterChoices\"\r\n [multiple]=\"true\"\r\n [filterable]=\"true\"\r\n [filterTooltip]=\"columnDropdownFilterTooltip\"\r\n [width]=\"150\">\r\n </tru-toolbar-dropdown>\r\n <tru-toolbar-textbox\r\n [tooltip]=\"cardFilterTooltip\"\r\n (valueChange)=\"filterCards($event)\"\r\n [width]=\"150\">\r\n </tru-toolbar-textbox>\r\n <tru-toolbar-separator *ngIf=\"viewMenuItems.length\"></tru-toolbar-separator>\r\n <div *ngIf=\"viewMenuItems.length\">\r\n <tru-toolbar-menu *ngFor=\"let viewMenuItem of viewMenuItems\" [config]=\"viewMenuItem\"></tru-toolbar-menu>\r\n </div>\r\n </tru-toolbar>\r\n <div class=\"tru-card-portal\" #cardPortal>\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}::ng-deep .tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}::ng-deep .tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}::ng-deep .tru-card-portal{position:absolute;inset:30px 10px 10px;border:1px solid #ddd;padding:10px;background-color:#0079bf}::ng-deep .tru-card-portal-disabled>*{opacity:.75;pointer-events:none}::ng-deep .tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}::ng-deep .tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}::ng-deep .tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}::ng-deep .tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}::ng-deep .tru-card-portal-columns{position:absolute;inset:10px 10px 0 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}::ng-deep .tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% - 10px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}::ng-deep .tru-card-portal-column-inactive *{font-style:italic;opacity:.7}::ng-deep .tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}::ng-deep .tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}::ng-deep .tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}::ng-deep .tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}::ng-deep .tru-card-portal-column-header-extra-button input[type=checkbox]{height:14px;width:14px}::ng-deep .tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}::ng-deep .tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}::ng-deep .tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}::ng-deep .tru-card-portal-column-footer-text:active,::ng-deep .tru-card-portal-column-footer-text:visited{color:#777}::ng-deep .tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative;width:14px;height:14px}::ng-deep .tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px;cursor:pointer}::ng-deep .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}::ng-deep .tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}::ng-deep .tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:30px;transition:all .4s ease-out;opacity:1}::ng-deep .tru-card-portal-card-container.show{opacity:1}::ng-deep .tru-card-portal-card-container *{pointer-events:none}::ng-deep .tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}::ng-deep .tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}::ng-deep .tru-card-portal-card p{font-size:12px;word-wrap:break-word}::ng-deep .tru-card-portal-card:focus{outline:none}::ng-deep .tru-card-portal-card.empty{border:1px dashed #999}::ng-deep .tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}::ng-deep .tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}::ng-deep .tru-card-selected p{color:#000!important;font-size:12px}::ng-deep .tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}::ng-deep .tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}::ng-deep .tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}::ng-deep .tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}::ng-deep .tru-card-menu a:hover{text-decoration:underline;color:#777}::ng-deep .tru-card-menu a:active,::ng-deep .tru-card-menu a:visited{color:#777}::ng-deep .tru-card-menu-move-container{width:100%!important;display:inline-flex}::ng-deep .tru-card-menu-move-container select{width:100%!important}::ng-deep .tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}::ng-deep .tru-card-menu-move-container span{color:#0079bf;margin-top:0}::ng-deep .tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}::ng-deep .tru-card-menu-move-container .move-button-disabled span{color:#ccc}::ng-deep .tru-card-portal-column-filtered{display:none}::ng-deep .tru-card-portal-card-filtered{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarMenu, selector: "tru-toolbar-menu", inputs: ["config"] }, { kind: "component", type: TruToolbarDropdown, selector: "tru-toolbar-dropdown", inputs: ["config", "options", "tooltip", "multiple", "filterable", "filterTooltip", "width", "selectedOption", "disabled"], outputs: ["selectedOptionChange", "selectionChange"] }, { kind: "component", type: TruToolbarSeparator, selector: "tru-toolbar-separator" }, { kind: "component", type: TruToolbarTextbox, selector: "tru-toolbar-textbox", inputs: ["config", "tooltip", "value", "width"], outputs: ["valueChange"] }] });
6591
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCardColumn, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruModelTypeLookup }, { token: TruSearchViewEventHandler }, { token: TruSearchResultViewManager }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
6592
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruCardColumn, isStandalone: true, selector: "tru-card-column", inputs: { config: "config", name: "name" }, viewQueries: [{ propertyName: "portal", first: true, predicate: ["cardPortal"], descendants: true }], ngImport: i0, template: "<div class=\"tru-card\">\r\n <div *ngIf=\"isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{busyMessage}}</p>\r\n </div>\r\n <tru-toolbar>\r\n <ng-container *ngTemplateOutlet=\"parentToolbarTemplate\"></ng-container>\r\n <tru-toolbar-separator></tru-toolbar-separator>\r\n <tru-toolbar-dropdown\r\n [tooltip]=\"columnFilterTooltip\"\r\n (selectionChange)=\"filterColumns($event)\"\r\n [options]=\"columnFilterChoices\"\r\n [multiple]=\"true\"\r\n [filterable]=\"true\"\r\n [filterTooltip]=\"columnDropdownFilterTooltip\"\r\n [width]=\"150\">\r\n </tru-toolbar-dropdown>\r\n <tru-toolbar-textbox\r\n [tooltip]=\"cardFilterTooltip\"\r\n (valueChange)=\"filterCards($event)\"\r\n [width]=\"150\">\r\n </tru-toolbar-textbox>\r\n <tru-toolbar-separator *ngIf=\"viewMenuItems.length\"></tru-toolbar-separator>\r\n <div *ngIf=\"viewMenuItems.length\">\r\n <tru-toolbar-menu *ngFor=\"let viewMenuItem of viewMenuItems\" [config]=\"viewMenuItem\"></tru-toolbar-menu>\r\n </div>\r\n </tru-toolbar>\r\n <div class=\"tru-card-portal\" #cardPortal>\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}::ng-deep .tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}::ng-deep .tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}::ng-deep .tru-card-portal{position:absolute;inset:30px 10px 10px;border:1px solid #ddd;padding:10px;background-color:#0079bf}::ng-deep .tru-card-portal-disabled>*{opacity:.75;pointer-events:none}::ng-deep .tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}::ng-deep .tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}::ng-deep .tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}::ng-deep .tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}::ng-deep .tru-card-portal-columns{position:absolute;inset:10px 10px 0 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}::ng-deep .tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% - 10px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}::ng-deep .tru-card-portal-column-inactive *{font-style:italic;opacity:.7}::ng-deep .tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}::ng-deep .tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}::ng-deep .tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}::ng-deep .tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}::ng-deep .tru-card-portal-column-header-extra-button input[type=checkbox]{height:14px;width:14px}::ng-deep .tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}::ng-deep .tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}::ng-deep .tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}::ng-deep .tru-card-portal-column-footer-text:active,::ng-deep .tru-card-portal-column-footer-text:visited{color:#777}::ng-deep .tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative;width:14px;height:14px}::ng-deep .tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px;cursor:pointer}::ng-deep .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}::ng-deep .tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}::ng-deep .tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:30px;transition:all .4s ease-out;opacity:1}::ng-deep .tru-card-portal-card-container.show{opacity:1}::ng-deep .tru-card-portal-card-container *{pointer-events:none}::ng-deep .tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}::ng-deep .tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}::ng-deep .tru-card-portal-card p{font-size:12px;word-wrap:break-word}::ng-deep .tru-card-portal-card:focus{outline:none}::ng-deep .tru-card-portal-card.empty{border:1px dashed #999}::ng-deep .tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}::ng-deep .tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}::ng-deep .tru-card-selected p{color:#000!important;font-size:12px}::ng-deep .tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}::ng-deep .tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}::ng-deep .tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}::ng-deep .tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}::ng-deep .tru-card-menu a:hover{text-decoration:underline;color:#777}::ng-deep .tru-card-menu a:active,::ng-deep .tru-card-menu a:visited{color:#777}::ng-deep .tru-card-menu-move-container{width:100%!important;display:inline-flex}::ng-deep .tru-card-menu-move-container select{width:100%!important}::ng-deep .tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}::ng-deep .tru-card-menu-move-container span{color:#0079bf;margin-top:0}::ng-deep .tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}::ng-deep .tru-card-menu-move-container .move-button-disabled span{color:#ccc}::ng-deep .tru-card-portal-column-filtered{display:none}::ng-deep .tru-card-portal-card-filtered{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarMenu, selector: "tru-toolbar-menu", inputs: ["config"] }, { kind: "component", type: TruToolbarDropdown, selector: "tru-toolbar-dropdown", inputs: ["config", "options", "tooltip", "multiple", "filterable", "filterTooltip", "width", "selectedOption", "disabled"], outputs: ["selectedOptionChange", "selectionChange"] }, { kind: "component", type: TruToolbarSeparator, selector: "tru-toolbar-separator" }, { kind: "component", type: TruToolbarTextbox, selector: "tru-toolbar-textbox", inputs: ["config", "tooltip", "value", "width"], outputs: ["valueChange"] }] });
6593
6593
  }
6594
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCardColumn, decorators: [{
6594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCardColumn, decorators: [{
6595
6595
  type: Component,
6596
6596
  args: [{ selector: 'tru-card-column', imports: [
6597
6597
  CommonModule,
@@ -7252,10 +7252,10 @@ class TruFormatter {
7252
7252
  return formatter({ $: json.DATA });
7253
7253
  return { $: json.Error_Message };
7254
7254
  };
7255
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruFormatter, deps: [{ token: TruAppEnvironment }, { token: TruModelTypeLookup }], target: i0.ɵɵFactoryTarget.Injectable });
7256
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruFormatter, providedIn: 'root' });
7255
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruFormatter, deps: [{ token: TruAppEnvironment }, { token: TruModelTypeLookup }], target: i0.ɵɵFactoryTarget.Injectable });
7256
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruFormatter, providedIn: 'root' });
7257
7257
  }
7258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruFormatter, decorators: [{
7258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruFormatter, decorators: [{
7259
7259
  type: Injectable,
7260
7260
  args: [{
7261
7261
  providedIn: 'root',
@@ -7537,10 +7537,10 @@ class TruDataGridClipboard {
7537
7537
  getCopiedCell = () => {
7538
7538
  return this.copiedCellEntity;
7539
7539
  };
7540
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridClipboard, deps: [{ token: TruUtil }, { token: TruFormatter }, { token: TruUiNotification }, { token: TruModelPropertyLookup }], target: i0.ɵɵFactoryTarget.Injectable });
7541
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridClipboard, providedIn: 'root' });
7540
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridClipboard, deps: [{ token: TruUtil }, { token: TruFormatter }, { token: TruUiNotification }, { token: TruModelPropertyLookup }], target: i0.ɵɵFactoryTarget.Injectable });
7541
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridClipboard, providedIn: 'root' });
7542
7542
  }
7543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridClipboard, decorators: [{
7543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridClipboard, decorators: [{
7544
7544
  type: Injectable,
7545
7545
  args: [{
7546
7546
  providedIn: 'root',
@@ -7630,8 +7630,8 @@ class TruDataGridPkeyCellRenderer {
7630
7630
  this.params.eGridCell.removeEventListener('mousedown', this.onMouseUp);
7631
7631
  this.windowClickSubscription && this.windowClickSubscription.unsubscribe();
7632
7632
  }
7633
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridPkeyCellRenderer, deps: [{ token: TruDataContext }, { token: TruDataGridClipboard }], target: i0.ɵɵFactoryTarget.Component });
7634
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDataGridPkeyCellRenderer, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "contextMenu", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: `<div>{{displayValue}}
7633
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridPkeyCellRenderer, deps: [{ token: TruDataContext }, { token: TruDataGridClipboard }], target: i0.ɵɵFactoryTarget.Component });
7634
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDataGridPkeyCellRenderer, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "contextMenu", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: `<div>{{displayValue}}
7635
7635
  <div style="visibility: hidden; position: relative"
7636
7636
  [style.left]="contextMenuPosition.x"
7637
7637
  [matMenuTriggerFor]="truDataGridContextMenu">
@@ -7656,7 +7656,7 @@ class TruDataGridPkeyCellRenderer {
7656
7656
  </mat-menu>
7657
7657
  </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.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 });
7658
7658
  }
7659
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridPkeyCellRenderer, decorators: [{
7659
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridPkeyCellRenderer, decorators: [{
7660
7660
  type: Component,
7661
7661
  args: [{ standalone: true, imports: [
7662
7662
  NgIf,
@@ -7772,8 +7772,8 @@ class TruDataGridHeader {
7772
7772
  this.params.api.removeEventListener('cellFocused', this.onCellFocused.bind(this));
7773
7773
  this.params.column.removeEventListener('sortChanged', this.onSortChanged.bind(this));
7774
7774
  }
7775
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
7776
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDataGridHeader, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "headerRef", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: `
7775
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
7776
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDataGridHeader, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "headerRef", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: `
7777
7777
  <div #header class="ag-cell-label-container" role="presentation">
7778
7778
  <div ref="eLabel" class="ag-header-cell-label" role="presentation" (mouseenter)="onHeaderMouseEnter($event)" (mouseleave)="onHeaderMouseLeave($event)">
7779
7779
  <div class="ag-header-control-container">
@@ -7792,7 +7792,7 @@ class TruDataGridHeader {
7792
7792
  </div>
7793
7793
  </div>`, isInline: true, styles: [".ag-header-control-container{display:flex}.ag-header-control-filter-container{position:absolute;top:1px;right:3px;width:20px;height:20px;display:table}.ag-header-cell-text{position:relative;pointer-events:none;vertical-align:middle;vertical-align:-webkit-baseline-middle}.ag-sort-icon{height:100%;width:100%;margin-left:0!important}.tru-data-grid-select-all-icon{width:16px;font-size:28px;color:#ddd;float:right;position:absolute;top:-1px;right:4px}.ag-sort-icon mat-icon{height:16px;width:16px;padding-top:4px}.ag-column-focus .ag-header-cell-text{color:#3f51b5;font-weight:700}.ag-column-focus{background-color:#ddd;border-bottom:1px solid #3f51b5}::ng-deep .tru-data-grid-select-all-icon path{fill:#d3d3d3;position:relative;z-index:100;pointer-events:all}::ng-deep .ag-header-control-filter-container mat-icon{height:20px!important;width:20px!important;padding-top:2px!important}::ng-deep .ag-filter-icon .ag-header-asc.filtering{position:relative;right:-7px}::ng-deep .ag-filter-icon .ag-header-desc.filtering{position:relative;right:-7px}::ng-deep .ag-filter-icon mat-icon{height:18px!important;width:18px!important;color:#ddd}::ng-deep .ag-filter-icon mat-icon svg{fill:#949494!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
7794
7794
  }
7795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridHeader, decorators: [{
7795
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridHeader, decorators: [{
7796
7796
  type: Component,
7797
7797
  args: [{ standalone: true, imports: [NgIf, NgClass, CommonModule, MatIconModule], template: `
7798
7798
  <div #header class="ag-cell-label-container" role="presentation">
@@ -7885,8 +7885,8 @@ class TruDataGridHeaderFilter {
7885
7885
  this.filterParams.colDef.headerComponentParams.setSort(typeOfSort.value, event.shiftKey);
7886
7886
  this.guiFilterParams.hidePopup();
7887
7887
  };
7888
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridHeaderFilter, deps: [], target: i0.ɵɵFactoryTarget.Component });
7889
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TruDataGridHeaderFilter, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
7888
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridHeaderFilter, deps: [], target: i0.ɵɵFactoryTarget.Component });
7889
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TruDataGridHeaderFilter, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
7890
7890
  <div class="tru-data-grid-header-filter-container">
7891
7891
  <mat-selection-list #sort [multiple]="false">
7892
7892
  @for (typeOfSort of typesOfSort; track typeOfSort.value) {
@@ -7916,7 +7916,7 @@ class TruDataGridHeaderFilter {
7916
7916
  </mat-form-field>
7917
7917
  </div>`, isInline: true, styles: [".tru-data-grid-header-filter-container{min-width:200px!important}.tru-data-grid-header-filter-container mdc-list{padding-bottom:10px!important}::ng-deep .tru-data-grid-header-filter-container mat-list-option{padding-left:10px!important}::ng-deep .tru-data-grid-header-filter-container mat-icon{height:18px!important;width:18px!important;padding-right:5px;padding-top:4px}::ng-deep .tru-data-grid-header-filter-container .mdc-list-item__primary-text span{font-size:12px!important;vertical-align:text-bottom}::ng-deep .tru-data-grid-header-filter-container .mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{display:none!important}::ng-deep .tru-data-grid-header-filter-container mat-divider{padding-top:5px;padding-bottom:5px;margin-left:10px;margin-right:10px}::ng-deep .tru-data-grid-header-filter-container mat-label{margin-left:10px;font-weight:700}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field{display:block!important;margin:0 10px 10px!important}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field-infix{padding:0!important;min-height:unset!important}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__leading{border-color:#bd362f}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__notch{border-color:#bd362f}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__trailing{border-color:#bd362f}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field-bottom-align:before{content:unset!important}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field-icon-prefix>.mat-icon{padding:0 0 5px!important}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 0 5px!important}::ng-deep .tru-data-grid-header-filter-container .mat-mdc-form-field-infix{padding:0 0 5px!important;min-height:unset!important}::ng-deep .tru-data-grid-header-filter-search-icon svg{fill:#343434}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.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: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
7918
7918
  }
7919
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridHeaderFilter, decorators: [{
7919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridHeaderFilter, decorators: [{
7920
7920
  type: Component,
7921
7921
  args: [{ standalone: true, imports: [
7922
7922
  NgIf,
@@ -8014,8 +8014,8 @@ class TruDataGridRefHeader {
8014
8014
  this.filterIsActive = this.params.column.isFilterActive();
8015
8015
  }
8016
8016
  ngOnDestroy() { }
8017
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridRefHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
8018
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDataGridRefHeader, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "headerRef", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: `
8017
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridRefHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
8018
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDataGridRefHeader, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "headerRef", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: `
8019
8019
  <div #header class="ag-cell-label-container" role="presentation">
8020
8020
  <div ref="eLabel" class="ag-header-cell-label" role="presentation" (mouseenter)="onHeaderMouseEnter($event)" (mouseleave)="onHeaderMouseLeave($event)">
8021
8021
  <div>
@@ -8036,7 +8036,7 @@ class TruDataGridRefHeader {
8036
8036
  title="Select All (Ctrl+A)"></mat-icon>
8037
8037
  </div>`, isInline: true, styles: [".ag-header-control-container{display:flex}.ag-header-control-filter-container{position:absolute;top:1px;left:5px;width:20px;height:20px;display:table}.ag-header-cell-text{position:relative;pointer-events:none;vertical-align:middle;vertical-align:-webkit-baseline-middle}.ag-sort-icon{height:100%;width:100%;margin-left:0!important}.ag-sort-icon mat-icon{height:16px;width:16px;padding-top:4px}.ag-column-focus .ag-header-cell-text{color:#3f51b5;font-weight:700}.ag-column-focus{background-color:#ddd;border-bottom:1px solid #3f51b5}::ng-deep .ag-header-control-filter-container mat-icon{height:20px!important;width:20px!important;padding-top:2px!important}::ng-deep .ag-filter-icon .ag-header-asc.filtering{position:relative;right:-7px}::ng-deep .ag-filter-icon .ag-header-desc.filtering{position:relative;right:-7px}::ng-deep .ag-filter-icon mat-icon{height:18px!important;width:18px!important;color:#ddd}::ng-deep .ag-filter-icon mat-icon svg{fill:#949494!important}.tru-data-grid-select-all-icon{width:16px;font-size:28px;color:#ddd;float:right;position:absolute;top:-1px;right:4px}::ng-deep .tru-data-grid-select-all-icon path{fill:#d3d3d3;position:relative;z-index:100;pointer-events:all}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
8038
8038
  }
8039
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridRefHeader, decorators: [{
8039
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridRefHeader, decorators: [{
8040
8040
  type: Component,
8041
8041
  args: [{ standalone: true, imports: [NgIf, NgClass, CommonModule, MatIconModule], template: `
8042
8042
  <div #header class="ag-cell-label-container" role="presentation">
@@ -8064,6 +8064,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
8064
8064
  }] } });
8065
8065
 
8066
8066
  class TruDataGridUtil {
8067
+ static resolvePropertyPath = (entity, propertyPath) => {
8068
+ if (!entity || !propertyPath)
8069
+ return null;
8070
+ const propertyPathParts = propertyPath.split('.').filter(part => part.length > 0);
8071
+ const propertyName = propertyPathParts.pop();
8072
+ if (!propertyName)
8073
+ return null;
8074
+ let propertyEntity = entity;
8075
+ for (const propertyPathPart of propertyPathParts) {
8076
+ propertyEntity = propertyEntity?.[propertyPathPart];
8077
+ if (propertyEntity === null || propertyEntity === undefined)
8078
+ return null;
8079
+ }
8080
+ return { entity: propertyEntity, propertyName };
8081
+ };
8082
+ static isPropertyPathAvailable = (entity, propertyPath) => {
8083
+ if (!propertyPath || !propertyPath.includes('.'))
8084
+ return true;
8085
+ return TruDataGridUtil.resolvePropertyPath(entity, propertyPath) !== null;
8086
+ };
8087
+ static validatePropertyPath = (entity, propertyPath) => {
8088
+ const resolvedProperty = TruDataGridUtil.resolvePropertyPath(entity, propertyPath);
8089
+ if (!resolvedProperty)
8090
+ return null;
8091
+ const validateProperty = resolvedProperty.entity?.entityAspect?.validateProperty;
8092
+ if (typeof validateProperty !== 'function')
8093
+ return null;
8094
+ return validateProperty.call(resolvedProperty.entity.entityAspect, resolvedProperty.propertyName);
8095
+ };
8067
8096
  getColumnIndexByColId = (api, colId) => {
8068
8097
  return api.getAllDisplayedColumns()?.findIndex(col => col.getColId() === colId);
8069
8098
  };
@@ -8103,10 +8132,10 @@ class TruDataGridUtil {
8103
8132
  api.stopEditing();
8104
8133
  api.setFocusedCell(rowIndex, column);
8105
8134
  };
8106
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8107
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridUtil, providedIn: 'root' });
8135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8136
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridUtil, providedIn: 'root' });
8108
8137
  }
8109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridUtil, decorators: [{
8138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridUtil, decorators: [{
8110
8139
  type: Injectable,
8111
8140
  args: [{
8112
8141
  providedIn: 'root',
@@ -8181,10 +8210,10 @@ class TruGridValidationDialog {
8181
8210
  this.cellElement.classList.remove('show');
8182
8211
  this.listeners.forEach(l => l());
8183
8212
  }
8184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruGridValidationDialog, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
8185
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruGridValidationDialog, isStandalone: true, selector: "tru-grid-validation-dialog", inputs: { config: "config" }, outputs: { close: "close" }, ngImport: i0, template: "<i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n<div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll()\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept()\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline()\">Decline</button>\r\n</div>\r\n\r\n", styles: ["::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid{position:absolute;left:0;top:20px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.hide,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.hide{display:none!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.show,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.show{display:inline-block!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-flag,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-flag{box-sizing:border-box;position:absolute;left:0;top:0;width:8px;height:8px;border-bottom:solid 4px transparent;border-right:solid 4px transparent;border-left:solid 4px red;border-top:solid 4px red}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-triangle:after,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-triangle:after{box-sizing:border-box}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}.merge-button{margin:5px;background-color:#fff}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:before{border-bottom-color:red!important}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:after{border-bottom-color:red!important}.invalid{font-family:Calibri,Helvetica,Arial,sans-serif!important}i{line-height:24px!important}::ng-deep .ag-row .ag-cell-value .invalid{position:absolute;left:0;top:18px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px}::ng-deep .ag-row .ag-cell-value.hide .invalid{display:none!important}::ng-deep .ag-row .ag-cell-value.show .invalid{display:inline-block!important}::ng-deep .ag-row .ag-cell-value.invalid.show{overflow:visible!important}::ng-deep .ag-row .ag-cell-value .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
8213
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruGridValidationDialog, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
8214
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruGridValidationDialog, isStandalone: true, selector: "tru-grid-validation-dialog", inputs: { config: "config" }, outputs: { close: "close" }, ngImport: i0, template: "<i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n<div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll()\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept()\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline()\">Decline</button>\r\n</div>\r\n\r\n", styles: ["::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid{position:absolute;left:0;top:20px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.hide,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.hide{display:none!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.show,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.show{display:inline-block!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-flag,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-flag{box-sizing:border-box;position:absolute;left:0;top:0;width:8px;height:8px;border-bottom:solid 4px transparent;border-right:solid 4px transparent;border-left:solid 4px red;border-top:solid 4px red}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-triangle:after,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-triangle:after{box-sizing:border-box}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}.merge-button{margin:5px;background-color:#fff}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:before{border-bottom-color:red!important}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:after{border-bottom-color:red!important}.invalid{font-family:Calibri,Helvetica,Arial,sans-serif!important}i{line-height:24px!important}::ng-deep .ag-row .ag-cell-value .invalid{position:absolute;left:0;top:18px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px}::ng-deep .ag-row .ag-cell-value.hide .invalid{display:none!important}::ng-deep .ag-row .ag-cell-value.show .invalid{display:inline-block!important}::ng-deep .ag-row .ag-cell-value.invalid.show{overflow:visible!important}::ng-deep .ag-row .ag-cell-value .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
8186
8215
  }
8187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruGridValidationDialog, decorators: [{
8216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruGridValidationDialog, decorators: [{
8188
8217
  type: Component,
8189
8218
  args: [{ selector: 'tru-grid-validation-dialog', imports: [CommonModule, FormsModule], template: "<i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n<div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll()\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept()\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline()\">Decline</button>\r\n</div>\r\n\r\n", styles: ["::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid{position:absolute;left:0;top:20px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.hide,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.hide{display:none!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.show,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.show{display:inline-block!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-flag,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-flag{box-sizing:border-box;position:absolute;left:0;top:0;width:8px;height:8px;border-bottom:solid 4px transparent;border-right:solid 4px transparent;border-left:solid 4px red;border-top:solid 4px red}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-triangle:after,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-triangle:after{box-sizing:border-box}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}.merge-button{margin:5px;background-color:#fff}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:before{border-bottom-color:red!important}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:after{border-bottom-color:red!important}.invalid{font-family:Calibri,Helvetica,Arial,sans-serif!important}i{line-height:24px!important}::ng-deep .ag-row .ag-cell-value .invalid{position:absolute;left:0;top:18px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px}::ng-deep .ag-row .ag-cell-value.hide .invalid{display:none!important}::ng-deep .ag-row .ag-cell-value.show .invalid{display:inline-block!important}::ng-deep .ag-row .ag-cell-value.invalid.show{overflow:visible!important}::ng-deep .ag-row .ag-cell-value .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}\n"] }]
8190
8219
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: TruUtil }], propDecorators: { config: [{
@@ -8244,8 +8273,8 @@ class TruDataGridLoadingOverlay {
8244
8273
  agInit(params) {
8245
8274
  this.params = params;
8246
8275
  }
8247
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridLoadingOverlay, deps: [], target: i0.ɵɵFactoryTarget.Component });
8248
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDataGridLoadingOverlay, isStandalone: true, selector: "tru-data-grid-loading-overlay", ngImport: i0, template: `
8276
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridLoadingOverlay, deps: [], target: i0.ɵɵFactoryTarget.Component });
8277
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDataGridLoadingOverlay, isStandalone: true, selector: "tru-data-grid-loading-overlay", ngImport: i0, template: `
8249
8278
  <div class="ag-overlay-loading-center" style="height:50px;width:275px;">
8250
8279
  <div style="display:inline-block;margin-right:15px;vertical-align:middle;line-height:38px;">
8251
8280
  <mat-spinner [diameter]="30"></mat-spinner>
@@ -8256,7 +8285,7 @@ class TruDataGridLoadingOverlay {
8256
8285
  </div>
8257
8286
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i1$7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] });
8258
8287
  }
8259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridLoadingOverlay, decorators: [{
8288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridLoadingOverlay, decorators: [{
8260
8289
  type: Component,
8261
8290
  args: [{
8262
8291
  standalone: true,
@@ -8280,13 +8309,13 @@ class TruDataGridNoRowsOverlay {
8280
8309
  agInit(params) {
8281
8310
  this.params = params;
8282
8311
  }
8283
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridNoRowsOverlay, deps: [], target: i0.ɵɵFactoryTarget.Component });
8284
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDataGridNoRowsOverlay, isStandalone: true, selector: "tru-data-grid-no-rows-overlay", ngImport: i0, template: `
8312
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridNoRowsOverlay, deps: [], target: i0.ɵɵFactoryTarget.Component });
8313
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDataGridNoRowsOverlay, isStandalone: true, selector: "tru-data-grid-no-rows-overlay", ngImport: i0, template: `
8285
8314
  <div class="ag-overlay-loading-center" style="height:50px;width:275px;">
8286
8315
  <span style="font-size:12px;font-weight:bold;line-height:38px;">{{ params.noRowsMessageFunc() }}</span>
8287
8316
  </div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: MaterialModule }] });
8288
8317
  }
8289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGridNoRowsOverlay, decorators: [{
8318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGridNoRowsOverlay, decorators: [{
8290
8319
  type: Component,
8291
8320
  args: [{
8292
8321
  standalone: true,
@@ -8644,10 +8673,10 @@ class TruConnectionHub {
8644
8673
  subscribe = (dataContext, entity, tableName, addEntity, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded) => {
8645
8674
  return new TruDataChangeParser(this.connection, this.appEnvironment, this.user, dataContext, this.appEnvironment.globalDataContext, entity, tableName, addEntity, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, this.modelTypeLookup, this.modelPropertyLookup).onDataChanged();
8646
8675
  };
8647
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruConnectionHub, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruUser }, { token: TruModelTypeLookup }, { token: TruModelPropertyLookup }], target: i0.ɵɵFactoryTarget.Injectable });
8648
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruConnectionHub, providedIn: 'root' });
8676
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruConnectionHub, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruUser }, { token: TruModelTypeLookup }, { token: TruModelPropertyLookup }], target: i0.ɵɵFactoryTarget.Injectable });
8677
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruConnectionHub, providedIn: 'root' });
8649
8678
  }
8650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruConnectionHub, decorators: [{
8679
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruConnectionHub, decorators: [{
8651
8680
  type: Injectable,
8652
8681
  args: [{
8653
8682
  providedIn: 'root',
@@ -8665,10 +8694,10 @@ class TruTabGroupEventNotifier {
8665
8694
  set isActive(value) {
8666
8695
  this.active$.next(value);
8667
8696
  }
8668
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTabGroupEventNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8669
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTabGroupEventNotifier });
8697
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTabGroupEventNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8698
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTabGroupEventNotifier });
8670
8699
  }
8671
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTabGroupEventNotifier, decorators: [{
8700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTabGroupEventNotifier, decorators: [{
8672
8701
  type: Injectable
8673
8702
  }] });
8674
8703
 
@@ -9144,6 +9173,28 @@ class TruDataGrid {
9144
9173
  propertyPath = propertyPath.slice(0, lastIndex);
9145
9174
  return propertyPath.split('.');
9146
9175
  };
9176
+ configureColumnDefs = (columnDefs) => {
9177
+ return columnDefs.map((columnDef) => {
9178
+ const configuredEditable = columnDef.editable;
9179
+ if (configuredEditable === undefined || configuredEditable === false)
9180
+ return columnDef;
9181
+ return {
9182
+ ...columnDef,
9183
+ editable: (params) => {
9184
+ const canEdit = typeof configuredEditable === 'function'
9185
+ ? configuredEditable(params)
9186
+ : configuredEditable;
9187
+ if (!canEdit)
9188
+ return false;
9189
+ const fieldName = columnDef.field;
9190
+ const propertyPath = fieldName
9191
+ ? params.data?.[fieldName]?.propertyPath
9192
+ : undefined;
9193
+ return TruDataGridUtil.isPropertyPathAvailable(params.data?.$entity, propertyPath);
9194
+ },
9195
+ };
9196
+ });
9197
+ };
9147
9198
  renderCustomToolbarComponents = () => {
9148
9199
  this.customToolbarComponents.filter((componentName) => componentName).forEach((componentName) => {
9149
9200
  let toolbarContainerRef = this.customToolbarContainer.createComponent(this.componentLookup.get(componentName));
@@ -9371,7 +9422,7 @@ class TruDataGrid {
9371
9422
  ngOnInit() {
9372
9423
  this.subscribeTo();
9373
9424
  this.label = this.config.resultConfig.label;
9374
- this.columnDefs = this.config.resultConfig.columnDefs;
9425
+ this.columnDefs = this.configureColumnDefs(this.config.resultConfig.columnDefs);
9375
9426
  this.gridType = this.config.resultConfig.gridType;
9376
9427
  }
9377
9428
  ngAfterViewInit() {
@@ -9595,10 +9646,10 @@ class TruDataGrid {
9595
9646
  apiAny.doLayout();
9596
9647
  }
9597
9648
  };
9598
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGrid, deps: [{ token: TruDataContext }, { token: TruComponentLookup }, { token: TruSearchResultViewManager }, { token: TruAppEnvironment }, { token: TruSearchViewEventHandler }, { token: TruUiNotification }, { token: TruConnectionHub }, { token: TruWindowEventHandler }, { token: TruDataGridClipboard }, { token: TruUtil }, { token: i0.ApplicationRef }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: TruDesktopViewEventNotifier }, { token: TruTabGroupEventNotifier, optional: true }], target: i0.ɵɵFactoryTarget.Component });
9599
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDataGrid, isStandalone: true, selector: "tru-data-grid", inputs: { config: "config", entity: "entity", name: "name" }, host: { properties: { "class.tru-data-grid": "true" } }, viewQueries: [{ propertyName: "dataGridContainer", first: true, predicate: ["dataGridContainer"], descendants: true }, { propertyName: "customToolbarContainer", first: true, predicate: ["customToolbarContainer"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"{'tru-data-grid-label-offset': label}\">\r\n <span class=\"tru-data-grid-label\" *ngIf=\"label\">{{label}}</span>\r\n <div class=\"tru-data-grid-toolbar-container\">\r\n <tru-toolbar>\r\n <tru-toolbar-dropdown [options]=\"unassociatedChoices\"\r\n [(selectedOption)]=\"selectedUnassociatedChoice\"\r\n [disabled]=\"!this.config.tableConfig.canAdd\"\r\n (selectionChange)=\"onUnassociatedChoiceChanged($event)\"\r\n *ngIf=\"gridType === TruDataGridTypes.DetailManyToMany\">\r\n </tru-toolbar-dropdown>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-add-icon'\" [tooltip]=\"'Add - [Ctrl + I]'\" [disabled]=\"!canAdd()\" (onClick)=\"onAdd()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-delete-icon'\" [tooltip]=\"'Delete - [Ctrl + D]'\" (click)=\"onDelete()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-keep-icon'\" [tooltip]=\"'Keep selected records - [Ctrl + K]'\" (click)=\"onKeep()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-remove-icon'\" [tooltip]=\"'Remove selected records - [Ctrl + R]'\" (click)=\"onRemove()\"></tru-toolbar-button>\r\n <tru-toolbar-separator *ngIf=\"parentToolbarTemplate\"></tru-toolbar-separator>\r\n <ng-container *ngTemplateOutlet=\"parentToolbarTemplate\"></ng-container>\r\n <tru-toolbar-separator></tru-toolbar-separator>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-export-icon'\" [tooltip]=\"'Export'\" (click)=\"onExport()\"></tru-toolbar-button>\r\n <tru-toolbar-separator *ngIf=\"viewMenuItems.length\"></tru-toolbar-separator>\r\n <div *ngIf=\"viewMenuItems.length\">\r\n <tru-toolbar-menu *ngFor=\"let viewMenuItem of viewMenuItems\" [config]=\"viewMenuItem\"></tru-toolbar-menu>\r\n </div>\r\n <ng-container #customToolbarContainer></ng-container>\r\n </tru-toolbar>\r\n </div>\r\n <div #dataGridContainer class=\"tru-data-grid-container\">\r\n <ag-grid-angular class=\"ag-theme-alpine\"\r\n [gridOptions]=\"gridOptions\"\r\n [rowData]=\"rowData\"\r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [headerHeight]=\"25\"\r\n [rowHeight]=\"22\"\r\n [rowBuffer]=\"50\"\r\n [enterNavigatesVertically]=\"true\"\r\n [enterNavigatesVerticallyAfterEdit]=\"true\"\r\n [suppressRowHoverHighlight]=\"true\"\r\n [suppressRowClickSelection]=\"true\"\r\n [stopEditingWhenCellsLoseFocus]=\"false\"\r\n (cellClicked)=\"onCellClicked($event)\"\r\n (cellDoubleClicked)=\"onCellDoubleClicked($event)\"\r\n (cellKeyDown)=\"onCellKeyDown($event)\"\r\n (rowDataChanged)=\"onRowDataChanged($event)\"\r\n (cellMouseDown)=\"onCellMouseDown($event)\"\r\n (cellMouseOver)=\"onCellMouseOver($event)\"\r\n (cellMouseOut)=\"onCellMouseOut($event)\"\r\n (contextmenu)=\"onRightClick($event)\"\r\n (rowClicked)=\"onRowClicked($event)\">\r\n </ag-grid-angular>\r\n </div>\r\n <div class=\"tru-data-grid-statusbar-container\">\r\n <div class=\"tru-data-grid-statusbar-values-container\">\r\n <p class=\"tru-data-grid-statusbar-values-text\">{{rowCount}}</p>\r\n <p class=\"tru-data-grid-statusbar-values-text\">Selected: {{api ? api.getSelectedRows().length : 0}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-data-grid-label{font-size:14px;font-weight:700;margin-bottom:5px;display:flex}.tru-data-grid:first-of-type+.tru-data-grid{margin-left:5px}.tru-data-grid-toolbar-container{display:inline-flex}.tru-data-grid-container{min-height:200px}.tru-data-grid .ag-body-viewport{padding-bottom:var(--grid-footer-height, 23px)}.tru-data-grid-statusbar-container{position:absolute!important;left:0;right:0;bottom:0;height:23px;background:#006dcc;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top:1px solid #e7e7e7}.tru-data-grid-statusbar-container p{float:left;color:#fff;font-weight:700;margin-left:10px;margin-top:0!important;line-height:23px;font-size:12px}.detail-container .tru-data-grid{position:relative}.detail-container .mat-mdc-tab-body-content{height:100%;overflow:hidden!important}.detail-container .ag-root-wrapper{height:calc(100% - 50px)!important}ag-grid-angular{position:absolute;inset:28px 0 23px;width:100%;height:100%}.tru-data-grid-label-offset ag-grid-angular{top:48px;height:calc(100% - 70px)}.ag-root-wrapper{border-top:0px!important}.ag-root{top:0;bottom:23px!important}::ng-deep .mat-mdc-tab-group .ag-root.ag-layout-normal{height:calc(100% - 50px)!important}.search-container .ag-root.ag-layout-normal{height:calc(100% - 50px)!important}.ag-header-cell{padding-left:0!important;padding-right:0!important}.ag-header-cell-resize:after{top:unset!important;height:25px!important}.ag-header-row{font-weight:500!important}.ag-header-cell-label{justify-content:center}.ag-row{border-color:#d8dbe3}.ag-row.popup-editing{z-index:unset!important}.ag-row .ag-cell-value{padding-left:2px!important;padding-right:2px!important}.ag-row .ag-cell-value.invalid{border:1px solid red!important;border-radius:0}.ag-row .ag-cell-value.ag-cell-inline-editing:not(.invalid){border-color:#006dcc!important}.ag-ltr .ag-header-cell-resize{right:-5px}.ag-header-cell-text{font-size:12px!important}.ag-cell-inline-editing{height:21px!important}.ag-cell{height:21px;border-right:solid #d8dbe3 1px!important}.ag-cell ng-component{pointer-events:none}.ag-has-focus .ag-cell-focus:not(.invalid){border:solid #006dcc 1px!important}.ag-pinned-left-cols-container .ag-cell.ag-cell-focus{border:solid #dde2eb 1px!important;border-top:0px!important;border-bottom:0px!important}.ag-pinned-left-cols-container .ag-row-selected .ag-cell,.ag-pinned-left-cols-container .ag-row-focus .ag-cell{border:0px solid #dde2eb!important;border-right:2px solid #006dcc!important;color:#fff;font-weight:700;background-color:#006dcc}.ag-pinned-left-cols-container *:not(.ag-row-selected):not(.ag-row-focus) .ag-cell{background-color:#f5f5f5!important}.ag-pinned-left-cols-container *:not(.ag-row-selected):not(.ag-row-focus) .ag-cell:hover{background-color:#2196f31a!important}.ag-header-cell{background-color:#f5f5f5}.ag-column-focus .ag-header-control-sort-container rect{fill:#ddd}.ag-header-cell.ag-column-focus{border:0px solid #dde2eb!important;border-bottom:2px solid #006dcc!important;color:#006dcc;font-weight:700;background-color:#ddd}.ag-header-cell-comp-wrapper{display:block!important}.ag-cell-label-container{padding:0!important}.ag-pk-aligned-cell{text-align:center}.ag-horizontal-left-spacer{overflow:hidden}.ag-popup-editor{background:#fff;padding:10px;border:solid 1px #006dcc}.ag-overlay-loading-center{border:none!important;box-shadow:none!important}.ag-viewport .ag-row-selected{background-color:#efefef}.ag-viewport .ag-row-selected .ag-cell{background-color:unset!important}.ag-row-selected~.ag-row-selected .ag-cell{border-top-color:#dde2eb}*:not(.ag-row-selected):not(.ag-row-inline-editing)+.ag-row-selected .ag-cell{border-top-color:#006dcc}.ag-row-selected:has(+:not(.ag-row-selected)):not(.ag-row-inline-editing) .ag-cell{border-bottom-color:#006dcc}.ag-cell.invalid .invalid-flag{box-sizing:border-box;position:absolute;left:0;top:0;width:3px;height:3px;border-bottom:solid 3px transparent;border-right:solid 3px transparent;border-left:solid 3px red;border-top:solid 3px red}.ag-grid-row-has-changes-gradient{background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=#fff,endColorstr=#ffffff);background-image:-moz-linear-gradient(top,#fff 0%,#ffffff 25%,#dbffdf 100%);background-image:linear-gradient(top,#fff 0% 25%,#dbffdf);background-image:-webkit-linear-gradient(top,#fff 0%,#ffffff 25%,#dbffdf 100%);background-image:-o-linear-gradient(top,#fff 0%,#ffffff 25%,#dbffdf 100%);background-image:-ms-linear-gradient(top,#fff 0%,#ffffff 25%,#dbffdf 100%);background-image:-webkit-gradient(linear,right top,right bottom,color-stop(0%,#fff),color-stop(25%,#ffffff),color-stop(100%,#dbffdf))}@keyframes ants-marching{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:40px 0,-40px 100%,0 -40px,100% 40px}}.animated-border{background-size:10px 0px,10px 0px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-image:linear-gradient(to right,#006dcc 50%,transparent 50%),linear-gradient(to right,#006dcc 50%,transparent 50%),linear-gradient(to bottom,#006dcc 50%,transparent 50%),linear-gradient(to bottom,#006dcc 50%,transparent 50%);animation:ants-marching 1s linear infinite}.animated-border.ag-row-selected{background-color:#efefef!important}.animated-border .ag-cell{background-color:unset!important;border-top:none!important;border-bottom:none!important}.animated-border:not(.animated-border+.animated-border){background-size:10px 1px,10px 0px,1px 10px,1px 10px}.animated-border:has(+:not(.animated-border)){background-size:10px 0px,10px 1px,1px 10px,1px 10px}.animated-border:not(.animated-border+.animated-border).animated-border:has(+:not(.animated-border)){background-size:10px 1px,10px 1px,1px 10px,1px 10px}.animated-border:has(+:not(.animated-border)) .ag-cell{height:20px!important}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation-name:spin;animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:linear}.detail-container .mat-mdc-tab-body-content tru-data-grid{--grid-scroll-left: 0px;--grid-scroll-right: 0px;--grid-scroll-bottom: 80px;--grid-scroll-visible: 1;display:flex;flex-direction:column;height:100%;min-height:0}.detail-container .mat-mdc-tab-body-content tru-data-grid ag-grid-angular{position:relative!important;inset:0!important;height:calc(100% - var(--grid-footer-height, 23px))!important}.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-root-wrapper,.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-root{height:100%!important;top:0!important;bottom:0!important}.detail-container .mat-mdc-tab-body-content tru-data-grid .tru-data-grid-container{flex:1 1 auto;position:relative;min-height:0}.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-body-viewport{position:relative!important;padding-bottom:calc(var(--grid-footer-height, 23px) + (var(--grid-scroll-bottom, 80px) - var(--grid-footer-height, 23px)) * var(--grid-scroll-visible, 1))!important;overflow-x:auto!important}.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-body-horizontal-scroll-viewport,.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-body-horizontal-scroll{position:fixed!important;left:var(--grid-scroll-left, 0px)!important;right:var(--grid-scroll-right, 0px)!important;width:calc(100% - var(--grid-scroll-left, 0px) - var(--grid-scroll-right, 0px))!important;bottom:var(--grid-scroll-bottom, 80px)!important;height:calc(16px * var(--grid-scroll-visible, 1))!important;min-height:calc(16px * var(--grid-scroll-visible, 1))!important;display:block!important;opacity:var(--grid-scroll-visible, 1)!important;pointer-events:calc(var(--grid-scroll-visible, 1))!important;overflow-x:scroll!important;overflow-y:hidden!important;z-index:9999!important;background:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { kind: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarButton, selector: "tru-toolbar-button", inputs: ["config", "icon", "text", "disabled", "tooltip", "type"], outputs: ["onClick", "onKeydown"] }, { kind: "component", type: TruToolbarDropdown, selector: "tru-toolbar-dropdown", inputs: ["config", "options", "tooltip", "multiple", "filterable", "filterTooltip", "width", "selectedOption", "disabled"], outputs: ["selectedOptionChange", "selectionChange"] }, { kind: "component", type: TruToolbarSeparator, selector: "tru-toolbar-separator" }, { kind: "component", type: TruToolbarMenu, selector: "tru-toolbar-menu", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
9649
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGrid, deps: [{ token: TruDataContext }, { token: TruComponentLookup }, { token: TruSearchResultViewManager }, { token: TruAppEnvironment }, { token: TruSearchViewEventHandler }, { token: TruUiNotification }, { token: TruConnectionHub }, { token: TruWindowEventHandler }, { token: TruDataGridClipboard }, { token: TruUtil }, { token: i0.ApplicationRef }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: TruDesktopViewEventNotifier }, { token: TruTabGroupEventNotifier, optional: true }], target: i0.ɵɵFactoryTarget.Component });
9650
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDataGrid, isStandalone: true, selector: "tru-data-grid", inputs: { config: "config", entity: "entity", name: "name" }, host: { properties: { "class.tru-data-grid": "true" } }, viewQueries: [{ propertyName: "dataGridContainer", first: true, predicate: ["dataGridContainer"], descendants: true }, { propertyName: "customToolbarContainer", first: true, predicate: ["customToolbarContainer"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"{'tru-data-grid-label-offset': label}\">\r\n <span class=\"tru-data-grid-label\" *ngIf=\"label\">{{label}}</span>\r\n <div class=\"tru-data-grid-toolbar-container\">\r\n <tru-toolbar>\r\n <tru-toolbar-dropdown [options]=\"unassociatedChoices\"\r\n [(selectedOption)]=\"selectedUnassociatedChoice\"\r\n [disabled]=\"!this.config.tableConfig.canAdd\"\r\n (selectionChange)=\"onUnassociatedChoiceChanged($event)\"\r\n *ngIf=\"gridType === TruDataGridTypes.DetailManyToMany\">\r\n </tru-toolbar-dropdown>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-add-icon'\" [tooltip]=\"'Add - [Ctrl + I]'\" [disabled]=\"!canAdd()\" (onClick)=\"onAdd()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-delete-icon'\" [tooltip]=\"'Delete - [Ctrl + D]'\" (click)=\"onDelete()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-keep-icon'\" [tooltip]=\"'Keep selected records - [Ctrl + K]'\" (click)=\"onKeep()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-remove-icon'\" [tooltip]=\"'Remove selected records - [Ctrl + R]'\" (click)=\"onRemove()\"></tru-toolbar-button>\r\n <tru-toolbar-separator *ngIf=\"parentToolbarTemplate\"></tru-toolbar-separator>\r\n <ng-container *ngTemplateOutlet=\"parentToolbarTemplate\"></ng-container>\r\n <tru-toolbar-separator></tru-toolbar-separator>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-export-icon'\" [tooltip]=\"'Export'\" (click)=\"onExport()\"></tru-toolbar-button>\r\n <tru-toolbar-separator *ngIf=\"viewMenuItems.length\"></tru-toolbar-separator>\r\n <div *ngIf=\"viewMenuItems.length\">\r\n <tru-toolbar-menu *ngFor=\"let viewMenuItem of viewMenuItems\" [config]=\"viewMenuItem\"></tru-toolbar-menu>\r\n </div>\r\n <ng-container #customToolbarContainer></ng-container>\r\n </tru-toolbar>\r\n </div>\r\n <div #dataGridContainer class=\"tru-data-grid-container\">\r\n <ag-grid-angular class=\"ag-theme-alpine\"\r\n [gridOptions]=\"gridOptions\"\r\n [rowData]=\"rowData\"\r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [headerHeight]=\"25\"\r\n [rowHeight]=\"22\"\r\n [rowBuffer]=\"50\"\r\n [enterNavigatesVertically]=\"true\"\r\n [enterNavigatesVerticallyAfterEdit]=\"true\"\r\n [suppressRowHoverHighlight]=\"true\"\r\n [suppressRowClickSelection]=\"true\"\r\n [stopEditingWhenCellsLoseFocus]=\"false\"\r\n (cellClicked)=\"onCellClicked($event)\"\r\n (cellDoubleClicked)=\"onCellDoubleClicked($event)\"\r\n (cellKeyDown)=\"onCellKeyDown($event)\"\r\n (rowDataChanged)=\"onRowDataChanged($event)\"\r\n (cellMouseDown)=\"onCellMouseDown($event)\"\r\n (cellMouseOver)=\"onCellMouseOver($event)\"\r\n (cellMouseOut)=\"onCellMouseOut($event)\"\r\n (contextmenu)=\"onRightClick($event)\"\r\n (rowClicked)=\"onRowClicked($event)\">\r\n </ag-grid-angular>\r\n </div>\r\n <div class=\"tru-data-grid-statusbar-container\">\r\n <div class=\"tru-data-grid-statusbar-values-container\">\r\n <p class=\"tru-data-grid-statusbar-values-text\">{{rowCount}}</p>\r\n <p class=\"tru-data-grid-statusbar-values-text\">Selected: {{api ? api.getSelectedRows().length : 0}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-data-grid-label{font-size:14px;font-weight:700;margin-bottom:5px;display:flex}.tru-data-grid:first-of-type+.tru-data-grid{margin-left:5px}.tru-data-grid-toolbar-container{display:inline-flex}.tru-data-grid-container{min-height:200px}.tru-data-grid .ag-body-viewport{padding-bottom:var(--grid-footer-height, 23px)}.tru-data-grid-statusbar-container{position:absolute!important;left:0;right:0;bottom:0;height:23px;background:#006dcc;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top:1px solid #e7e7e7}.tru-data-grid-statusbar-container p{float:left;color:#fff;font-weight:700;margin-left:10px;margin-top:0!important;line-height:23px;font-size:12px}.detail-container .tru-data-grid{position:relative}.detail-container .mat-mdc-tab-body-content{height:100%;overflow:hidden!important}.detail-container .ag-root-wrapper{height:calc(100% - 50px)!important}ag-grid-angular{position:absolute;inset:28px 0 23px;width:100%;height:100%}.tru-data-grid-label-offset ag-grid-angular{top:48px;height:calc(100% - 70px)}.ag-root-wrapper{border-top:0px!important}.ag-root{top:0;bottom:23px!important}::ng-deep .mat-mdc-tab-group .ag-root.ag-layout-normal{height:calc(100% - 50px)!important}.search-container .ag-root.ag-layout-normal{height:calc(100% - 50px)!important}.ag-header-cell{padding-left:0!important;padding-right:0!important}.ag-header-cell-resize:after{top:unset!important;height:25px!important}.ag-header-row{font-weight:500!important}.ag-header-cell-label{justify-content:center}.ag-row{border-color:#d8dbe3}.ag-row.popup-editing{z-index:unset!important}.ag-row .ag-cell-value{padding-left:2px!important;padding-right:2px!important}.ag-row .ag-cell-value.invalid{border:1px solid red!important;border-radius:0}.ag-row .ag-cell-value.ag-cell-inline-editing:not(.invalid){border-color:#006dcc!important}.ag-ltr .ag-header-cell-resize{right:-5px}.ag-header-cell-text{font-size:12px!important}.ag-cell-inline-editing{height:21px!important}.ag-cell{height:21px;border-right:solid #d8dbe3 1px!important}.ag-cell ng-component{pointer-events:none}.ag-has-focus .ag-cell-focus:not(.invalid){border:solid #006dcc 1px!important}.ag-pinned-left-cols-container .ag-cell.ag-cell-focus{border:solid #dde2eb 1px!important;border-top:0px!important;border-bottom:0px!important}.ag-pinned-left-cols-container .ag-row-selected .ag-cell,.ag-pinned-left-cols-container .ag-row-focus .ag-cell{border:0px solid #dde2eb!important;border-right:2px solid #006dcc!important;color:#fff;font-weight:700;background-color:#006dcc}.ag-pinned-left-cols-container *:not(.ag-row-selected):not(.ag-row-focus) .ag-cell{background-color:#f5f5f5!important}.ag-pinned-left-cols-container *:not(.ag-row-selected):not(.ag-row-focus) .ag-cell:hover{background-color:#2196f31a!important}.ag-header-cell{background-color:#f5f5f5}.ag-column-focus .ag-header-control-sort-container rect{fill:#ddd}.ag-header-cell.ag-column-focus{border:0px solid #dde2eb!important;border-bottom:2px solid #006dcc!important;color:#006dcc;font-weight:700;background-color:#ddd}.ag-header-cell-comp-wrapper{display:block!important}.ag-cell-label-container{padding:0!important}.ag-pk-aligned-cell{text-align:center}.ag-horizontal-left-spacer{overflow:hidden}.ag-popup-editor{background:#fff;padding:10px;border:solid 1px #006dcc}.ag-overlay-loading-center{border:none!important;box-shadow:none!important}.ag-viewport .ag-row-selected{background-color:#efefef}.ag-viewport .ag-row-selected .ag-cell{background-color:unset!important}.ag-row-selected~.ag-row-selected .ag-cell{border-top-color:#dde2eb}*:not(.ag-row-selected):not(.ag-row-inline-editing)+.ag-row-selected .ag-cell{border-top-color:#006dcc}.ag-row-selected:has(+:not(.ag-row-selected)):not(.ag-row-inline-editing) .ag-cell{border-bottom-color:#006dcc}.ag-cell.invalid .invalid-flag{box-sizing:border-box;position:absolute;left:0;top:0;width:3px;height:3px;border-bottom:solid 3px transparent;border-right:solid 3px transparent;border-left:solid 3px red;border-top:solid 3px red}.ag-grid-row-has-changes-gradient{background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=#fff,endColorstr=#ffffff);background-image:-moz-linear-gradient(top,#fff 0%,#ffffff 25%,#dbffdf 100%);background-image:linear-gradient(top,#fff 0% 25%,#dbffdf);background-image:-webkit-linear-gradient(top,#fff 0%,#ffffff 25%,#dbffdf 100%);background-image:-o-linear-gradient(top,#fff 0%,#ffffff 25%,#dbffdf 100%);background-image:-ms-linear-gradient(top,#fff 0%,#ffffff 25%,#dbffdf 100%);background-image:-webkit-gradient(linear,right top,right bottom,color-stop(0%,#fff),color-stop(25%,#ffffff),color-stop(100%,#dbffdf))}@keyframes ants-marching{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:40px 0,-40px 100%,0 -40px,100% 40px}}.animated-border{background-size:10px 0px,10px 0px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-image:linear-gradient(to right,#006dcc 50%,transparent 50%),linear-gradient(to right,#006dcc 50%,transparent 50%),linear-gradient(to bottom,#006dcc 50%,transparent 50%),linear-gradient(to bottom,#006dcc 50%,transparent 50%);animation:ants-marching 1s linear infinite}.animated-border.ag-row-selected{background-color:#efefef!important}.animated-border .ag-cell{background-color:unset!important;border-top:none!important;border-bottom:none!important}.animated-border:not(.animated-border+.animated-border){background-size:10px 1px,10px 0px,1px 10px,1px 10px}.animated-border:has(+:not(.animated-border)){background-size:10px 0px,10px 1px,1px 10px,1px 10px}.animated-border:not(.animated-border+.animated-border).animated-border:has(+:not(.animated-border)){background-size:10px 1px,10px 1px,1px 10px,1px 10px}.animated-border:has(+:not(.animated-border)) .ag-cell{height:20px!important}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation-name:spin;animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:linear}.detail-container .mat-mdc-tab-body-content tru-data-grid{--grid-scroll-left: 0px;--grid-scroll-right: 0px;--grid-scroll-bottom: 80px;--grid-scroll-visible: 1;display:flex;flex-direction:column;height:100%;min-height:0}.detail-container .mat-mdc-tab-body-content tru-data-grid ag-grid-angular{position:relative!important;inset:0!important;height:calc(100% - var(--grid-footer-height, 23px))!important}.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-root-wrapper,.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-root{height:100%!important;top:0!important;bottom:0!important}.detail-container .mat-mdc-tab-body-content tru-data-grid .tru-data-grid-container{flex:1 1 auto;position:relative;min-height:0}.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-body-viewport{position:relative!important;padding-bottom:calc(var(--grid-footer-height, 23px) + (var(--grid-scroll-bottom, 80px) - var(--grid-footer-height, 23px)) * var(--grid-scroll-visible, 1))!important;overflow-x:auto!important}.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-body-horizontal-scroll-viewport,.detail-container .mat-mdc-tab-body-content tru-data-grid .ag-body-horizontal-scroll{position:fixed!important;left:var(--grid-scroll-left, 0px)!important;right:var(--grid-scroll-right, 0px)!important;width:calc(100% - var(--grid-scroll-left, 0px) - var(--grid-scroll-right, 0px))!important;bottom:var(--grid-scroll-bottom, 80px)!important;height:calc(16px * var(--grid-scroll-visible, 1))!important;min-height:calc(16px * var(--grid-scroll-visible, 1))!important;display:block!important;opacity:var(--grid-scroll-visible, 1)!important;pointer-events:calc(var(--grid-scroll-visible, 1))!important;overflow-x:scroll!important;overflow-y:hidden!important;z-index:9999!important;background:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { kind: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarButton, selector: "tru-toolbar-button", inputs: ["config", "icon", "text", "disabled", "tooltip", "type"], outputs: ["onClick", "onKeydown"] }, { kind: "component", type: TruToolbarDropdown, selector: "tru-toolbar-dropdown", inputs: ["config", "options", "tooltip", "multiple", "filterable", "filterTooltip", "width", "selectedOption", "disabled"], outputs: ["selectedOptionChange", "selectionChange"] }, { kind: "component", type: TruToolbarSeparator, selector: "tru-toolbar-separator" }, { kind: "component", type: TruToolbarMenu, selector: "tru-toolbar-menu", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
9600
9651
  }
9601
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDataGrid, decorators: [{
9652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDataGrid, decorators: [{
9602
9653
  type: Component,
9603
9654
  args: [{ selector: 'tru-data-grid', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class.tru-data-grid]': 'true' }, imports: [
9604
9655
  CommonModule,
@@ -9673,10 +9724,10 @@ class TruToolbarAppCustomization {
9673
9724
  onAboutClicked = () => {
9674
9725
  this.uiNotification.about();
9675
9726
  };
9676
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarAppCustomization, deps: [{ token: i1.MatDialog }, { token: TruEntityAccessor }, { token: TruUser }, { token: TruAuth }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
9677
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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 });
9727
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarAppCustomization, deps: [{ token: i1.MatDialog }, { token: TruEntityAccessor }, { token: TruUser }, { token: TruAuth }, { token: TruUiNotification }], target: i0.ɵɵFactoryTarget.Component });
9728
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", 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 });
9678
9729
  }
9679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruToolbarAppCustomization, decorators: [{
9730
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruToolbarAppCustomization, decorators: [{
9680
9731
  type: Component,
9681
9732
  args: [{ selector: 'tru-toolbar-app-customization', imports: [
9682
9733
  CommonModule,
@@ -9709,10 +9760,10 @@ class TruDesktopMenubar {
9709
9760
  this.configs = this.options.menubarConfig;
9710
9761
  this.filters = this.contextFilters.filters;
9711
9762
  }
9712
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopMenubar, deps: [{ token: TruContextFilters }], target: i0.ɵɵFactoryTarget.Component });
9713
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktopMenubar, isStandalone: true, selector: "tru-desktop-menubar", inputs: { desktopCtrl: "desktopCtrl" }, ngImport: i0, template: "<div class=\"desktop-main-menu\">\r\n <tru-toolbar>\r\n <tru-toolbar-menu *ngFor=\"let config of configs\" [config]=\"config\"></tru-toolbar-menu>\r\n <tru-toolbar-separator *ngIf=\"filters.length\"></tru-toolbar-separator>\r\n <tru-toolbar-context-filter></tru-toolbar-context-filter>\r\n </tru-toolbar>\r\n <tru-toolbar>\r\n <tru-toolbar-app-customization></tru-toolbar-app-customization>\r\n <tru-toolbar-user-profile></tru-toolbar-user-profile>\r\n </tru-toolbar>\r\n</div>\r\n", styles: [".desktop-main-menu tru-toolbar{display:inline-block}tru-toolbar:nth-of-type(2){float:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarMenu, selector: "tru-toolbar-menu", inputs: ["config"] }, { kind: "component", type: TruToolbarSeparator, selector: "tru-toolbar-separator" }, { kind: "component", type: TruToolbarContextFilter, selector: "tru-toolbar-context-filter" }, { kind: "component", type: TruToolbarUserProfile, selector: "tru-toolbar-user-profile" }, { kind: "component", type: TruToolbarAppCustomization, selector: "tru-toolbar-app-customization" }], encapsulation: i0.ViewEncapsulation.None });
9763
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopMenubar, deps: [{ token: TruContextFilters }], target: i0.ɵɵFactoryTarget.Component });
9764
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktopMenubar, isStandalone: true, selector: "tru-desktop-menubar", inputs: { desktopCtrl: "desktopCtrl" }, ngImport: i0, template: "<div class=\"desktop-main-menu\">\r\n <tru-toolbar>\r\n <tru-toolbar-menu *ngFor=\"let config of configs\" [config]=\"config\"></tru-toolbar-menu>\r\n <tru-toolbar-separator *ngIf=\"filters.length\"></tru-toolbar-separator>\r\n <tru-toolbar-context-filter></tru-toolbar-context-filter>\r\n </tru-toolbar>\r\n <tru-toolbar>\r\n <tru-toolbar-app-customization></tru-toolbar-app-customization>\r\n <tru-toolbar-user-profile></tru-toolbar-user-profile>\r\n </tru-toolbar>\r\n</div>\r\n", styles: [".desktop-main-menu tru-toolbar{display:inline-block}tru-toolbar:nth-of-type(2){float:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarMenu, selector: "tru-toolbar-menu", inputs: ["config"] }, { kind: "component", type: TruToolbarSeparator, selector: "tru-toolbar-separator" }, { kind: "component", type: TruToolbarContextFilter, selector: "tru-toolbar-context-filter" }, { kind: "component", type: TruToolbarUserProfile, selector: "tru-toolbar-user-profile" }, { kind: "component", type: TruToolbarAppCustomization, selector: "tru-toolbar-app-customization" }], encapsulation: i0.ViewEncapsulation.None });
9714
9765
  }
9715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopMenubar, decorators: [{
9766
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopMenubar, decorators: [{
9716
9767
  type: Component,
9717
9768
  args: [{ selector: 'tru-desktop-menubar', imports: [
9718
9769
  CommonModule,
@@ -9747,10 +9798,10 @@ class TruDesktopService {
9747
9798
  var desktop = new Desktop();
9748
9799
  return desktop;
9749
9800
  };
9750
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9751
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopService });
9801
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9802
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopService });
9752
9803
  }
9753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopService, decorators: [{
9804
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopService, decorators: [{
9754
9805
  type: Injectable
9755
9806
  }] });
9756
9807
  /**
@@ -9850,10 +9901,10 @@ class TruDesktopStatusbar {
9850
9901
  }
9851
9902
  ngOnInit() {
9852
9903
  }
9853
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopStatusbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
9854
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktopStatusbar, isStandalone: true, selector: "tru-desktop-statusbar", inputs: { desktopCtrl: "desktopCtrl" }, ngImport: i0, template: "<div class=\"desktop-window-statusbar\" data-ng-class=\"{'desktop-window-maximized': window.maximized, 'desktop-window-opacity': !window.active}\">\r\n <div class=\"desktop-window-statusbar-container\">\r\n <div class=\"desktop-window-statusbar-context-filter-container\">\r\n <p class=\"desktop-window-statusbar-context-filter-container-text\">{{label}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".desktop-window-statusbar{position:absolute!important;left:0;right:0;bottom:0;height:23px;background:#006dcc;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top:1px solid #e7e7e7}.desktop-window-statusbar-container{position:absolute;top:1px;left:2px;right:0}.desktop-window-statusbar-context-filter-container{float:right;color:#fff;font-weight:700;line-height:8px;margin-right:5px}.desktop-window-statusbar-context-filter-container-text{line-height:1.5;cursor:default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
9904
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopStatusbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
9905
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktopStatusbar, isStandalone: true, selector: "tru-desktop-statusbar", inputs: { desktopCtrl: "desktopCtrl" }, ngImport: i0, template: "<div class=\"desktop-window-statusbar\" data-ng-class=\"{'desktop-window-maximized': window.maximized, 'desktop-window-opacity': !window.active}\">\r\n <div class=\"desktop-window-statusbar-container\">\r\n <div class=\"desktop-window-statusbar-context-filter-container\">\r\n <p class=\"desktop-window-statusbar-context-filter-container-text\">{{label}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".desktop-window-statusbar{position:absolute!important;left:0;right:0;bottom:0;height:23px;background:#006dcc;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top:1px solid #e7e7e7}.desktop-window-statusbar-container{position:absolute;top:1px;left:2px;right:0}.desktop-window-statusbar-context-filter-container{float:right;color:#fff;font-weight:700;line-height:8px;margin-right:5px}.desktop-window-statusbar-context-filter-container-text{line-height:1.5;cursor:default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
9855
9906
  }
9856
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopStatusbar, decorators: [{
9907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopStatusbar, decorators: [{
9857
9908
  type: Component,
9858
9909
  args: [{ selector: 'tru-desktop-statusbar', imports: [CommonModule, FormsModule], template: "<div class=\"desktop-window-statusbar\" data-ng-class=\"{'desktop-window-maximized': window.maximized, 'desktop-window-opacity': !window.active}\">\r\n <div class=\"desktop-window-statusbar-container\">\r\n <div class=\"desktop-window-statusbar-context-filter-container\">\r\n <p class=\"desktop-window-statusbar-context-filter-container-text\">{{label}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".desktop-window-statusbar{position:absolute!important;left:0;right:0;bottom:0;height:23px;background:#006dcc;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top:1px solid #e7e7e7}.desktop-window-statusbar-container{position:absolute;top:1px;left:2px;right:0}.desktop-window-statusbar-context-filter-container{float:right;color:#fff;font-weight:700;line-height:8px;margin-right:5px}.desktop-window-statusbar-context-filter-container-text{line-height:1.5;cursor:default}\n"] }]
9859
9910
  }], ctorParameters: () => [], propDecorators: { desktopCtrl: [{
@@ -9885,10 +9936,10 @@ class TruDesktopTaskbar {
9885
9936
  e.stopPropagation();
9886
9937
  e.preventDefault();
9887
9938
  };
9888
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopTaskbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
9889
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktopTaskbar, isStandalone: true, 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 [ngClass]=\"{'is-modal': window.isModal}\"\r\n (click)=\"updateWindowState(window)\"\r\n (keydown.enter)=\"updateWindowState(window)\">\r\n <div class=\"desktop-relative desktop-taskbar-list-item\" tabindex=\"0\" [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;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);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}li.is-modal{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
9939
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopTaskbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
9940
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktopTaskbar, isStandalone: true, 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 [ngClass]=\"{'is-modal': window.isModal}\"\r\n (click)=\"updateWindowState(window)\"\r\n (keydown.enter)=\"updateWindowState(window)\">\r\n <div class=\"desktop-relative desktop-taskbar-list-item\" tabindex=\"0\" [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;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);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}li.is-modal{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
9890
9941
  }
9891
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopTaskbar, decorators: [{
9942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopTaskbar, decorators: [{
9892
9943
  type: Component,
9893
9944
  args: [{ selector: 'tru-desktop-taskbar', imports: [CommonModule, FormsModule, TruToolbarButton, MatIcon], 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 [ngClass]=\"{'is-modal': window.isModal}\"\r\n (click)=\"updateWindowState(window)\"\r\n (keydown.enter)=\"updateWindowState(window)\">\r\n <div class=\"desktop-relative desktop-taskbar-list-item\" tabindex=\"0\" [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;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);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}li.is-modal{display:none!important}\n"] }]
9894
9945
  }], ctorParameters: () => [], propDecorators: { windows: [{
@@ -9917,10 +9968,10 @@ class TruDesktopView {
9917
9968
  containerRef.instance.view = this.view;
9918
9969
  }
9919
9970
  ngOnChanges(changes) { }
9920
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopView, deps: [{ token: i0.Injector }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: TruComponentLookup }], target: i0.ɵɵFactoryTarget.Component });
9921
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktopView, isStandalone: true, selector: "tru-desktop-view", inputs: { view: "view", active: "active" }, providers: [TruDesktopViewEventNotifier], usesOnChanges: true, ngImport: i0, template: "<div></div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
9971
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopView, deps: [{ token: i0.Injector }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: TruComponentLookup }], target: i0.ɵɵFactoryTarget.Component });
9972
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktopView, isStandalone: true, selector: "tru-desktop-view", inputs: { view: "view", active: "active" }, providers: [TruDesktopViewEventNotifier], usesOnChanges: true, ngImport: i0, template: "<div></div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
9922
9973
  }
9923
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopView, decorators: [{
9974
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopView, decorators: [{
9924
9975
  type: Component,
9925
9976
  args: [{ selector: 'tru-desktop-view', imports: [CommonModule, FormsModule], providers: [TruDesktopViewEventNotifier], template: "<div></div>\r\n" }]
9926
9977
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: TruComponentLookup }], propDecorators: { view: [{
@@ -10092,10 +10143,10 @@ class TruActionInvoke {
10092
10143
  refs: actionRefs,
10093
10144
  });
10094
10145
  };
10095
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruActionInvoke, deps: [{ token: TruDataContext }, { token: TruTextManager }, { token: TruDesktopManager }, { token: TruWindowEventHandler }, { token: TruUiNotification }, { token: TruAppEnvironment }, { token: i1$2.HttpClient }, { token: TruComponentLookup }, { token: TruModelTypeLookup }, { token: TruGlobalDataContext }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
10096
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruActionInvoke });
10146
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruActionInvoke, deps: [{ token: TruDataContext }, { token: TruTextManager }, { token: TruDesktopManager }, { token: TruWindowEventHandler }, { token: TruUiNotification }, { token: TruAppEnvironment }, { token: i1$2.HttpClient }, { token: TruComponentLookup }, { token: TruModelTypeLookup }, { token: TruGlobalDataContext }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
10147
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruActionInvoke });
10097
10148
  }
10098
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruActionInvoke, decorators: [{
10149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruActionInvoke, decorators: [{
10099
10150
  type: Injectable
10100
10151
  }], ctorParameters: () => [{ type: TruDataContext }, { type: TruTextManager }, { type: TruDesktopManager }, { type: TruWindowEventHandler }, { type: TruUiNotification }, { type: TruAppEnvironment }, { type: i1$2.HttpClient }, { type: TruComponentLookup }, { type: TruModelTypeLookup }, { type: TruGlobalDataContext }, { type: TruUser }] });
10101
10152
 
@@ -10220,10 +10271,10 @@ class TruReportManager {
10220
10271
  });
10221
10272
  });
10222
10273
  };
10223
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruReportManager, deps: [{ token: TruDataContext }, { token: TruModelTypeLookup }, { token: TruAppEnvironment }, { token: TruActionInvoke }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
10224
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruReportManager, providedIn: 'root' });
10274
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruReportManager, deps: [{ token: TruDataContext }, { token: TruModelTypeLookup }, { token: TruAppEnvironment }, { token: TruActionInvoke }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
10275
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruReportManager, providedIn: 'root' });
10225
10276
  }
10226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruReportManager, decorators: [{
10277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruReportManager, decorators: [{
10227
10278
  type: Injectable,
10228
10279
  args: [{
10229
10280
  providedIn: 'root',
@@ -10334,10 +10385,10 @@ class TruDesktopResizable {
10334
10385
  document.removeEventListener('mousemove', this.mouseMove);
10335
10386
  document.removeEventListener('mouseup', this.mouseUp);
10336
10387
  }
10337
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopResizable, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
10338
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktopResizable, isStandalone: true, selector: "[tru-desktop-resizable]", inputs: { window: "window", maximized: "maximized", direction: "direction" }, ngImport: i0 });
10388
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopResizable, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
10389
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktopResizable, isStandalone: true, selector: "[tru-desktop-resizable]", inputs: { window: "window", maximized: "maximized", direction: "direction" }, ngImport: i0 });
10339
10390
  }
10340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopResizable, decorators: [{
10391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopResizable, decorators: [{
10341
10392
  type: Directive,
10342
10393
  args: [{
10343
10394
  selector: '[tru-desktop-resizable]'
@@ -10446,10 +10497,10 @@ class TruDesktopWindowStateMonitor {
10446
10497
  this.tabListener();
10447
10498
  this.focusListener();
10448
10499
  }
10449
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopWindowStateMonitor, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: TruWindowEventHandler }, { token: i2$1.OverlayContainer }], target: i0.ɵɵFactoryTarget.Directive });
10450
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktopWindowStateMonitor, isStandalone: true, selector: "[truDesktopWindowStateMonitor]", inputs: { active: ["truDesktopWindowStateMonitor", "active"] }, usesOnChanges: true, ngImport: i0 });
10500
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopWindowStateMonitor, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: TruWindowEventHandler }, { token: i2$1.OverlayContainer }], target: i0.ɵɵFactoryTarget.Directive });
10501
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktopWindowStateMonitor, isStandalone: true, selector: "[truDesktopWindowStateMonitor]", inputs: { active: ["truDesktopWindowStateMonitor", "active"] }, usesOnChanges: true, ngImport: i0 });
10451
10502
  }
10452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopWindowStateMonitor, decorators: [{
10503
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopWindowStateMonitor, decorators: [{
10453
10504
  type: Directive,
10454
10505
  args: [{
10455
10506
  selector: '[truDesktopWindowStateMonitor]'
@@ -10478,10 +10529,10 @@ class TruWindowManager {
10478
10529
  }
10479
10530
  this.windowEventHandler.addView(windowAddViewEventArgs);
10480
10531
  };
10481
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowManager, deps: [{ token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Injectable });
10482
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowManager });
10532
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowManager, deps: [{ token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Injectable });
10533
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowManager });
10483
10534
  }
10484
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowManager, decorators: [{
10535
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowManager, decorators: [{
10485
10536
  type: Injectable
10486
10537
  }], ctorParameters: () => [{ type: TruWindowEventHandler }] });
10487
10538
 
@@ -10944,8 +10995,8 @@ class TruDesktopWindow {
10944
10995
  this.subs.forEach(s => s.unsubscribe());
10945
10996
  this.dataContext.onHasChanged.unsubscribe(this.onHasChangedToken);
10946
10997
  }
10947
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopWindow, deps: [{ token: TruDataContext }, { token: TruUiNotification }, { token: TruTextManager }, { token: TruWindowEventHandler }, { token: i0.ElementRef }, { token: TruUtil }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10948
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktopWindow, isStandalone: true, selector: "tru-desktop-window", inputs: { window: "window", viewportCtrl: "viewportCtrl", desktopCtrl: "desktopCtrl" }, providers: [
10998
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopWindow, deps: [{ token: TruDataContext }, { token: TruUiNotification }, { token: TruTextManager }, { token: TruWindowEventHandler }, { token: i0.ElementRef }, { token: TruUtil }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10999
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktopWindow, isStandalone: true, selector: "tru-desktop-window", inputs: { window: "window", viewportCtrl: "viewportCtrl", desktopCtrl: "desktopCtrl" }, providers: [
10949
11000
  TruDataContext,
10950
11001
  TruEntityAccessor,
10951
11002
  TruReportManager,
@@ -10956,7 +11007,7 @@ class TruDesktopWindow {
10956
11007
  WindowConfig
10957
11008
  ], ngImport: i0, template: "<div class=\"desktop-window-container\"\r\n [ngClass]=\"{'desktop-window-active': window.active, 'desktop-window-maximized': window.maximized}\"\r\n [ngStyle]=\"{'z-index': window.zIndex, 'top': window.top, 'left': window.left, 'right': window.right, 'bottom': window.bottom, 'height': window.height, 'width': window.width, 'min-height': window.minHeight, 'minWidth': window.minWidth}\"\r\n [style.offsetLeft.px]=\"x\"\r\n [style.offsetTop.px]=\"y\"\r\n (mousedown)=\"activate()\"\r\n [hidden]=\"window.minimized\"\r\n [truDesktopWindowStateMonitor]=\"window.active\">\r\n <div class=\"desktop-window-header\" [ngClass]=\"{'desktop-window-maximized': window.maximized, 'desktop-window-opacity': !window.active}\">\r\n <div class=\"toolbar-window-navigation\" *ngIf=\"showNavigation\">\r\n <tru-toolbar>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-previous-icon'\" [tooltip]=\"'Go Back One View - [Alt + Left]'\" (click)=\"previousView()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-next-icon'\" [tooltip]=\"'Go Forward One View - [Alt + Right]'\" (click)=\"nextView()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-save-icon'\" class=\"desktop-window-save-icon\" [ngClass]=\"{'desktop-window-save-icon-has-changes': hasChanges}\" [tooltip]=\"'Save - [Ctrl + S]'\" [disabled]=\"saveRevertSuppressed\" (click)=\"save()\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-revert-icon'\" class=\"desktop-window-revert-icon\" [ngClass]=\"{'desktop-window-revert-icon-has-changes': hasChanges}\" [tooltip]=\"'Revert - [Ctrl + Shift + R]'\" [disabled]=\"saveRevertSuppressed\" (click)=\"revert()\"></tru-toolbar-button>\r\n <tru-toolbar-separator></tru-toolbar-separator>\r\n </tru-toolbar>\r\n </div>\r\n <div class=\"desktop-window-title\" [ngClass]=\"{'no-navigation': !showNavigation}\" (dblclick)=\"maximize()\" (mousedown)=\"windowTitleMouseDown($event)\">\r\n <div class=\"desktop-click-through\">\r\n <div class=\"desktop-text\">{{window.title}}</div>\r\n </div>\r\n </div>\r\n <div class=\"desktop-window-action\" *ngIf=\"!window.isModal\">\r\n <tru-toolbar>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-minimize-icon'\" [tooltip]=\"'Minimize - [Alt + N]'\" (click)=\"minimize()\"></tru-toolbar-button>\r\n <tru-toolbar-button *ngIf=\"!window.maximized\" [icon]=\"'tru-toolbar-maximize-icon'\" [tooltip]=\"'Maximize Window - [Alt + M]'\" (click)=\"maximize()\" class=\"maximize\"></tru-toolbar-button>\r\n <tru-toolbar-button *ngIf=\"window.maximized\" [icon]=\"'tru-toolbar-restore-icon'\" [tooltip]=\"'Restore Window - [Alt + M]'\" (click)=\"maximize()\" class=\"maximize\"></tru-toolbar-button>\r\n <tru-toolbar-button [icon]=\"'tru-toolbar-close-icon'\" [tooltip]=\"'Close Window - [Alt + SHIFT + X]'\" (click)=\"close(null)\"></tru-toolbar-button>\r\n </tru-toolbar>\r\n </div>\r\n </div>\r\n <fieldset ng-disabled=\"!window.active\" class=\"desktop-window-fieldset\" [ngClass]=\"{'desktop-window-opacity': !window.active}\">\r\n <div class=\"desktop-window-content\">\r\n <div *ngFor=\"let view of window.views\">\r\n <tru-desktop-view [view]=\"view\" [active]=\"view.active\" [hidden]=\"!view.active\"><ng-template></ng-template></tru-desktop-view>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <span class=\"desktop-window-resizable-handle desktop-window-resizable-nw\" tru-desktop-resizable [window]=\"window\" *ngIf=\"!window.maximized\" [direction]=\"'nw'\"></span>\r\n <span class=\"desktop-window-resizable-handle desktop-window-resizable-ne\" tru-desktop-resizable [window]=\"window\" *ngIf=\"!window.maximized\" [direction]=\"'ne'\"></span>\r\n <span class=\"desktop-window-resizable-handle desktop-window-resizable-sw\" tru-desktop-resizable [window]=\"window\" *ngIf=\"!window.maximized\" [direction]=\"'sw'\"></span>\r\n <span class=\"desktop-window-resizable-handle desktop-window-resizable-se\" tru-desktop-resizable [window]=\"window\" *ngIf=\"!window.maximized\" [direction]=\"'se'\"></span>\r\n <span class=\"desktop-window-resizable-handle desktop-window-resizable-n\" tru-desktop-resizable [window]=\"window\" *ngIf=\"!window.maximized\" [direction]=\"'n'\"></span>\r\n <span class=\"desktop-window-resizable-handle desktop-window-resizable-s\" tru-desktop-resizable [window]=\"window\" *ngIf=\"!window.maximized\" [direction]=\"'s'\"></span>\r\n <span class=\"desktop-window-resizable-handle desktop-window-resizable-w\" tru-desktop-resizable [window]=\"window\" *ngIf=\"!window.maximized\" [direction]=\"'w'\"></span>\r\n <span class=\"desktop-window-resizable-handle desktop-window-resizable-e\" tru-desktop-resizable [window]=\"window\" *ngIf=\"!window.maximized\" [direction]=\"'e'\"></span>\r\n</div>\r\n", styles: ["body{-webkit-user-select:none;-moz-user-select:-moz-none;-ms-user-select:none;user-select:none}input,textarea{-moz-user-select:text}.desktop-text{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:14px;line-height:1;color:#333}.desktop-wrapper{position:absolute!important;inset:0;background:#fff;overflow:hidden}.desktop-relative{position:relative}.desktop-display-none{display:none}.desktop-click-through{pointer-events:none}.desktop-menubar-container{position:absolute!important;top:0;left:0;right:0;height:26px;background:#f8f8f8;border-bottom:1px solid #e7e7e7;padding-left:5px}\n", ".desktop-window-container{position:absolute!important;background-color:#fff;background-clip:padding-box;border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px #0003;border:1px solid #e7e7e7}.desktop-window-header{position:absolute!important;top:0;left:0;right:0;height:27px;background:#fff;border-top-left-radius:0;border-top-right-radius:0;border-bottom:1px solid #e7e7e7}.desktop-window-content{position:absolute!important;inset:27px 0 0;background:#fff;overflow:hidden}.desktop-window-busy-overlay{position:absolute!important;inset:27px 0 0;background:#fff;overflow:hidden;z-index:1000;background-repeat:no-repeat;background-position:center center}.desktop-window-fieldset{padding:0;margin:0;border:0}.desktop-window-statusbar{position:absolute!important;left:0;right:0;bottom:0;height:23px;background:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top:1px solid #e7e7e7}.desktop-window-statusbar-container{position:absolute;top:1px;left:2px;right:0}.desktop-window-navigation{position:absolute!important;top:0;left:0;bottom:0;width:105px;background:transparent}.desktop-window-navigation-button-group{position:absolute!important;left:0;padding:0;margin:0}.desktop-window-navigation-button-group button{margin-left:0!important}.desktop-window-navigation-button-group-split{position:absolute!important;top:2px;right:6px}.desktop-window-title{position:absolute!important;inset:0 80px 0 110px;height:27px;background:transparent;cursor:inherit;outline:0;margin-top:2px}.desktop-window-title.no-navigation,.desktop-window-title-hidden-nav{left:5px!important}.desktop-window-title-hidden-nav-with-buttons{left:55px!important}.desktop-window-title>div{position:absolute!important;top:5px;left:3px;cursor:default}.desktop-window-title>div>div{font-size:14px;font-weight:700}.desktop-window-action{position:absolute!important;top:0;right:0;bottom:0;width:80px;background:transparent}.desktop-window-action-button-group{position:absolute!important;top:2px;right:6px}.desktop-window-action .desktop-window-navigation-button-group{left:unset!important;right:0!important}.desktop-window-opacity{opacity:.5}.desktop-window-close-button:hover{background-color:maroon;color:#fff}.desktop-window-active{border:1px solid #6b6b6b!important;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.4);box-shadow:0 5px 10px #0006}.desktop-window-maximized{border-radius:0;-webkit-box-shadow:0 0 0 rgba(0,0,0,0);box-shadow:0 0 #0000;border-top-color:#f8f8f8!important;border-bottom-color:#f8f8f8!important}.desktop-window-is-dirty{display:block;float:left;height:15px;width:15px;font-size:15px;color:orange;margin-left:3px}.desktop-window-is-invalid{display:block;float:left;height:15px;width:15px;font-size:15px;color:red;margin-left:3px}.desktop-window-resizable-nw{position:absolute!important;overflow:hidden;width:10px;height:10px;left:-5px;top:-5px;z-index:103;cursor:nw-resize;opacity:0}.desktop-window-resizable-ne{position:absolute!important;overflow:hidden;width:10px;height:10px;right:-5px;top:-5px;z-index:103;cursor:ne-resize;opacity:0}.desktop-window-resizable-sw{position:absolute!important;overflow:hidden;width:10px;height:10px;left:-5px;bottom:-5px;z-index:103;cursor:sw-resize;opacity:0}.desktop-window-resizable-se{position:absolute!important;overflow:hidden;width:10px;height:10px;right:-5px;bottom:-5px;z-index:103;cursor:se-resize;opacity:0}.desktop-window-resizable-n{position:absolute!important;top:0;left:10px;right:10px;overflow:hidden;height:5px;z-index:102;cursor:s-resize;opacity:0;margin-top:-5px}.desktop-window-resizable-s{position:absolute!important;left:10px;right:10px;bottom:0;overflow:hidden;height:5px;z-index:102;cursor:s-resize;opacity:0;margin-bottom:-5px}.desktop-window-resizable-w{position:absolute!important;top:10px;left:0;bottom:10px;overflow:hidden;width:5px;z-index:102;cursor:w-resize;opacity:0;margin-left:-5px}.desktop-window-resizable-e{position:absolute!important;top:10px;right:0;bottom:10px;overflow:hidden;width:5px;z-index:102;cursor:e-resize;opacity:0;margin-right:-5px}div.desktop-window-resizable-handle{display:none!important;visibility:hidden!important}.desktop-window-save-icon,.desktop-window-revert-icon{opacity:.5}.desktop-window-save-icon-has-changes,.desktop-window-revert-icon-has-changes{opacity:1}::ng-deep .desktop-window-disabled{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: TruDesktopResizable, selector: "[tru-desktop-resizable]", inputs: ["window", "maximized", "direction"] }, { kind: "component", type: TruDesktopView, selector: "tru-desktop-view", inputs: ["view", "active"] }, { kind: "component", type: TruToolbar, selector: "tru-toolbar", inputs: ["config"] }, { kind: "component", type: TruToolbarButton, selector: "tru-toolbar-button", inputs: ["config", "icon", "text", "disabled", "tooltip", "type"], outputs: ["onClick", "onKeydown"] }, { kind: "component", type: TruToolbarSeparator, selector: "tru-toolbar-separator" }, { kind: "directive", type: TruDesktopWindowStateMonitor, selector: "[truDesktopWindowStateMonitor]", inputs: ["truDesktopWindowStateMonitor"] }] });
10958
11009
  }
10959
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopWindow, decorators: [{
11010
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopWindow, decorators: [{
10960
11011
  type: Component,
10961
11012
  args: [{ selector: 'tru-desktop-window', imports: [
10962
11013
  CommonModule,
@@ -11082,10 +11133,10 @@ class TruDesktopViewport {
11082
11133
  document.removeEventListener('mousemove', this.mouseMove);
11083
11134
  document.removeEventListener('mouseup', this.mouseUp);
11084
11135
  }
11085
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopViewport, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
11086
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktopViewport, isStandalone: true, selector: "tru-desktop-viewport", inputs: { windows: "windows", desktopCtrl: "desktopCtrl" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "windowComponents", predicate: TruDesktopWindow, descendants: true }], ngImport: i0, template: "<div class=\"desktop-viewport-container\" [ngStyle]=\"{'top': options.viewportTop + 'px' }\" (mousedown)=\"viewportMouseDown($event)\">\r\n <span class=\"desktop-viewport-dimensions desktop-text\" *ngIf=\"displayViewportDimensions\">{{dimensions.height}} x {{dimensions.width}}</span>\r\n <div *ngFor=\"let window of windows\" class=\"am-fade-and-scale\">\r\n <tru-desktop-window [window]=\"window\" [viewportCtrl]=\"this\" [desktopCtrl]=\"this.desktopCtrl\"></tru-desktop-window>\r\n </div>\r\n <div class=\"desktop-viewport-fill-outline\" *ngIf=\"showFillOutline\"></div>\r\n <div class=\"desktop-viewport-left-outline\" *ngIf=\"showLeftOutline\"></div>\r\n <div class=\"desktop-viewport-right-outline\" *ngIf=\"showRightOutline\"></div>\r\n</div>\r\n", styles: [".desktop-viewport-container{position:absolute!important;inset:33px 0 42px;background:#fff;overflow:hidden}.desktop-viewport-dimensions{position:absolute!important;right:0;bottom:0}.desktop-viewport-fill-outline{position:absolute;inset:0;width:auto;height:auto;border:1px dashed #000000}.desktop-viewport-left-outline{position:absolute;top:0;left:0;bottom:0;width:49.9%;height:auto;border:1px dashed #000000}.desktop-viewport-right-outline{position:absolute;inset:0 0 0 50.1%;width:49.8%;height:auto;border:1px dashed #000000}.desktop-viewport-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TruDesktopWindow, selector: "tru-desktop-window", inputs: ["window", "viewportCtrl", "desktopCtrl"] }] });
11136
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopViewport, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
11137
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktopViewport, isStandalone: true, selector: "tru-desktop-viewport", inputs: { windows: "windows", desktopCtrl: "desktopCtrl" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "windowComponents", predicate: TruDesktopWindow, descendants: true }], ngImport: i0, template: "<div class=\"desktop-viewport-container\" [ngStyle]=\"{'top': options.viewportTop + 'px' }\" (mousedown)=\"viewportMouseDown($event)\">\r\n <span class=\"desktop-viewport-dimensions desktop-text\" *ngIf=\"displayViewportDimensions\">{{dimensions.height}} x {{dimensions.width}}</span>\r\n <div *ngFor=\"let window of windows\" class=\"am-fade-and-scale\">\r\n <tru-desktop-window [window]=\"window\" [viewportCtrl]=\"this\" [desktopCtrl]=\"this.desktopCtrl\"></tru-desktop-window>\r\n </div>\r\n <div class=\"desktop-viewport-fill-outline\" *ngIf=\"showFillOutline\"></div>\r\n <div class=\"desktop-viewport-left-outline\" *ngIf=\"showLeftOutline\"></div>\r\n <div class=\"desktop-viewport-right-outline\" *ngIf=\"showRightOutline\"></div>\r\n</div>\r\n", styles: [".desktop-viewport-container{position:absolute!important;inset:33px 0 42px;background:#fff;overflow:hidden}.desktop-viewport-dimensions{position:absolute!important;right:0;bottom:0}.desktop-viewport-fill-outline{position:absolute;inset:0;width:auto;height:auto;border:1px dashed #000000}.desktop-viewport-left-outline{position:absolute;top:0;left:0;bottom:0;width:49.9%;height:auto;border:1px dashed #000000}.desktop-viewport-right-outline{position:absolute;inset:0 0 0 50.1%;width:49.8%;height:auto;border:1px dashed #000000}.desktop-viewport-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TruDesktopWindow, selector: "tru-desktop-window", inputs: ["window", "viewportCtrl", "desktopCtrl"] }] });
11087
11138
  }
11088
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktopViewport, decorators: [{
11139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktopViewport, decorators: [{
11089
11140
  type: Component,
11090
11141
  args: [{ selector: 'tru-desktop-viewport', imports: [CommonModule, FormsModule, TruDesktopWindow], template: "<div class=\"desktop-viewport-container\" [ngStyle]=\"{'top': options.viewportTop + 'px' }\" (mousedown)=\"viewportMouseDown($event)\">\r\n <span class=\"desktop-viewport-dimensions desktop-text\" *ngIf=\"displayViewportDimensions\">{{dimensions.height}} x {{dimensions.width}}</span>\r\n <div *ngFor=\"let window of windows\" class=\"am-fade-and-scale\">\r\n <tru-desktop-window [window]=\"window\" [viewportCtrl]=\"this\" [desktopCtrl]=\"this.desktopCtrl\"></tru-desktop-window>\r\n </div>\r\n <div class=\"desktop-viewport-fill-outline\" *ngIf=\"showFillOutline\"></div>\r\n <div class=\"desktop-viewport-left-outline\" *ngIf=\"showLeftOutline\"></div>\r\n <div class=\"desktop-viewport-right-outline\" *ngIf=\"showRightOutline\"></div>\r\n</div>\r\n", styles: [".desktop-viewport-container{position:absolute!important;inset:33px 0 42px;background:#fff;overflow:hidden}.desktop-viewport-dimensions{position:absolute!important;right:0;bottom:0}.desktop-viewport-fill-outline{position:absolute;inset:0;width:auto;height:auto;border:1px dashed #000000}.desktop-viewport-left-outline{position:absolute;top:0;left:0;bottom:0;width:49.9%;height:auto;border:1px dashed #000000}.desktop-viewport-right-outline{position:absolute;inset:0 0 0 50.1%;width:49.8%;height:auto;border:1px dashed #000000}.desktop-viewport-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%)}\n"] }]
11091
11142
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { windows: [{
@@ -11822,10 +11873,10 @@ class TruDesktop {
11822
11873
  window.removeEventListener('keydown', this.onKeyDown);
11823
11874
  window.removeEventListener('keyup', this.onKeyUp);
11824
11875
  }
11825
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktop, deps: [{ token: TruDesktopService }, { token: TruTextManager }, { token: TruDesktopEventHandler }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
11826
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruDesktop, isStandalone: true, selector: "tru-desktop", inputs: { options: "options" }, providers: [TruDesktopService], viewQueries: [{ propertyName: "viewportComponent", first: true, predicate: TruDesktopViewport, descendants: true }], ngImport: i0, template: "<div class=\"desktop-wrapper\">\r\n\r\n <div class=\"desktop-menubar-container\" [ngStyle]=\"{'height': options.menubarHeight + 'px'}\">\r\n <tru-desktop-menubar [desktopCtrl]=\"this\"></tru-desktop-menubar>\r\n </div>\r\n\r\n <tru-desktop-viewport [windows]=\"windows\" [desktopCtrl]=\"this\"></tru-desktop-viewport>\r\n\r\n <tru-desktop-taskbar [windows]=\"windows\" [desktopCtrl]=\"this\"></tru-desktop-taskbar>\r\n\r\n <img class=\"desktop-viewport-logo\" data-ng-show=\"logoUrl\" alt=\"\">\r\n</div>\r\n", styles: ["body{-webkit-user-select:none;-moz-user-select:-moz-none;-ms-user-select:none;user-select:none}input,textarea{-moz-user-select:text}.desktop-text{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:14px;line-height:1;color:#333}.desktop-wrapper{position:absolute!important;inset:0;background:#fff;overflow:hidden}.desktop-relative{position:relative}.desktop-display-none{display:none}.desktop-click-through{pointer-events:none}.desktop-menubar-container{position:absolute!important;top:0;left:0;right:0;height:26px;background:#f8f8f8;border-bottom:1px solid #e7e7e7;padding-left:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: BrowserModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: BrowserAnimationsModule }, { kind: "component", type: TruDesktopMenubar, selector: "tru-desktop-menubar", inputs: ["desktopCtrl"] }, { kind: "component", type: TruDesktopTaskbar, selector: "tru-desktop-taskbar", inputs: ["windows", "desktopCtrl"] }, { kind: "component", type: TruDesktopViewport, selector: "tru-desktop-viewport", inputs: ["windows", "desktopCtrl"] }] });
11876
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktop, deps: [{ token: TruDesktopService }, { token: TruTextManager }, { token: TruDesktopEventHandler }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
11877
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruDesktop, isStandalone: true, selector: "tru-desktop", inputs: { options: "options" }, providers: [TruDesktopService], viewQueries: [{ propertyName: "viewportComponent", first: true, predicate: TruDesktopViewport, descendants: true }], ngImport: i0, template: "<div class=\"desktop-wrapper\">\r\n\r\n <div class=\"desktop-menubar-container\" [ngStyle]=\"{'height': options.menubarHeight + 'px'}\">\r\n <tru-desktop-menubar [desktopCtrl]=\"this\"></tru-desktop-menubar>\r\n </div>\r\n\r\n <tru-desktop-viewport [windows]=\"windows\" [desktopCtrl]=\"this\"></tru-desktop-viewport>\r\n\r\n <tru-desktop-taskbar [windows]=\"windows\" [desktopCtrl]=\"this\"></tru-desktop-taskbar>\r\n\r\n <img class=\"desktop-viewport-logo\" data-ng-show=\"logoUrl\" alt=\"\">\r\n</div>\r\n", styles: ["body{-webkit-user-select:none;-moz-user-select:-moz-none;-ms-user-select:none;user-select:none}input,textarea{-moz-user-select:text}.desktop-text{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:14px;line-height:1;color:#333}.desktop-wrapper{position:absolute!important;inset:0;background:#fff;overflow:hidden}.desktop-relative{position:relative}.desktop-display-none{display:none}.desktop-click-through{pointer-events:none}.desktop-menubar-container{position:absolute!important;top:0;left:0;right:0;height:26px;background:#f8f8f8;border-bottom:1px solid #e7e7e7;padding-left:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: BrowserModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: BrowserAnimationsModule }, { kind: "component", type: TruDesktopMenubar, selector: "tru-desktop-menubar", inputs: ["desktopCtrl"] }, { kind: "component", type: TruDesktopTaskbar, selector: "tru-desktop-taskbar", inputs: ["windows", "desktopCtrl"] }, { kind: "component", type: TruDesktopViewport, selector: "tru-desktop-viewport", inputs: ["windows", "desktopCtrl"] }] });
11827
11878
  }
11828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruDesktop, decorators: [{
11879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruDesktop, decorators: [{
11829
11880
  type: Component,
11830
11881
  args: [{ selector: 'tru-desktop', imports: [
11831
11882
  CommonModule,
@@ -11863,10 +11914,10 @@ class TruWindowActionEventHandler {
11863
11914
  revert = () => {
11864
11915
  this.revert$.next(null);
11865
11916
  };
11866
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowActionEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11867
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowActionEventHandler });
11917
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowActionEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11918
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowActionEventHandler });
11868
11919
  }
11869
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruWindowActionEventHandler, decorators: [{
11920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruWindowActionEventHandler, decorators: [{
11870
11921
  type: Injectable
11871
11922
  }] });
11872
11923
 
@@ -11888,10 +11939,10 @@ class TruErrorDialog {
11888
11939
  onDismiss() {
11889
11940
  this.dialogRef.close(false);
11890
11941
  }
11891
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruErrorDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
11892
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatExpansionModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11942
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruErrorDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
11943
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", 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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatExpansionModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11893
11944
  }
11894
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruErrorDialog, decorators: [{
11945
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruErrorDialog, decorators: [{
11895
11946
  type: Component,
11896
11947
  args: [{ selector: 'tru-error-dialog', imports: [
11897
11948
  CommonModule,
@@ -12043,10 +12094,10 @@ class TruErrorManager {
12043
12094
  else
12044
12095
  this.handleServerSideError(error);
12045
12096
  };
12046
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruErrorManager, deps: [{ token: i1$2.HttpClient }, { token: i1.MatDialog }, { token: TruTextManager }, { token: TruUiNotification }, { token: TruComponentLookup }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Injectable });
12047
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruErrorManager, providedIn: 'root' });
12097
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruErrorManager, deps: [{ token: i1$2.HttpClient }, { token: i1.MatDialog }, { token: TruTextManager }, { token: TruUiNotification }, { token: TruComponentLookup }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Injectable });
12098
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruErrorManager, providedIn: 'root' });
12048
12099
  }
12049
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruErrorManager, decorators: [{
12100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruErrorManager, decorators: [{
12050
12101
  type: Injectable,
12051
12102
  args: [{
12052
12103
  providedIn: 'root',
@@ -12065,19 +12116,19 @@ class TruErrorInterceptor {
12065
12116
  return next.handle(request);
12066
12117
  }));
12067
12118
  }
12068
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruErrorInterceptor, deps: [{ token: TruErrorManager }], target: i0.ɵɵFactoryTarget.Injectable });
12069
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruErrorInterceptor });
12119
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruErrorInterceptor, deps: [{ token: TruErrorManager }], target: i0.ɵɵFactoryTarget.Injectable });
12120
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruErrorInterceptor });
12070
12121
  }
12071
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruErrorInterceptor, decorators: [{
12122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruErrorInterceptor, decorators: [{
12072
12123
  type: Injectable
12073
12124
  }], ctorParameters: () => [{ type: TruErrorManager }] });
12074
12125
 
12075
12126
  class TruColumn {
12076
12127
  constructor() { }
12077
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
12078
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruColumn, isStandalone: true, selector: "tru-column", ngImport: i0, template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-vList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
12128
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
12129
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruColumn, isStandalone: true, selector: "tru-column", ngImport: i0, template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-vList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
12079
12130
  }
12080
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruColumn, decorators: [{
12131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruColumn, decorators: [{
12081
12132
  type: Component,
12082
12133
  args: [{ selector: 'tru-column', imports: [CommonModule, FormsModule], template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-vList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"] }]
12083
12134
  }], ctorParameters: () => [] });
@@ -12107,30 +12158,30 @@ class TruForm {
12107
12158
  });
12108
12159
  });
12109
12160
  };
12110
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruForm, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
12111
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruForm, isStandalone: true, selector: "tru-form", ngImport: i0, template: "<div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
12161
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruForm, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
12162
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruForm, isStandalone: true, selector: "tru-form", ngImport: i0, template: "<div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
12112
12163
  }
12113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruForm, decorators: [{
12164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruForm, decorators: [{
12114
12165
  type: Component,
12115
12166
  args: [{ selector: 'tru-form', imports: [CommonModule, FormsModule], template: "<div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"] }]
12116
12167
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
12117
12168
 
12118
12169
  class TruGroupBox {
12119
12170
  constructor() { }
12120
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruGroupBox, deps: [], target: i0.ɵɵFactoryTarget.Component });
12121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruGroupBox, isStandalone: true, selector: "tru-group-box", ngImport: i0, template: "<div>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
12171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruGroupBox, deps: [], target: i0.ɵɵFactoryTarget.Component });
12172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruGroupBox, isStandalone: true, selector: "tru-group-box", ngImport: i0, template: "<div>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
12122
12173
  }
12123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruGroupBox, decorators: [{
12174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruGroupBox, decorators: [{
12124
12175
  type: Component,
12125
12176
  args: [{ selector: 'tru-group-box', imports: [CommonModule, FormsModule], template: "<div>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
12126
12177
  }], ctorParameters: () => [] });
12127
12178
 
12128
12179
  class TruRow {
12129
12180
  constructor() { }
12130
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruRow, deps: [], target: i0.ɵɵFactoryTarget.Component });
12131
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruRow, isStandalone: true, selector: "tru-row", ngImport: i0, template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
12181
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruRow, deps: [], target: i0.ɵɵFactoryTarget.Component });
12182
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruRow, isStandalone: true, selector: "tru-row", ngImport: i0, template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] });
12132
12183
  }
12133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruRow, decorators: [{
12184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruRow, decorators: [{
12134
12185
  type: Component,
12135
12186
  args: [{ selector: 'tru-row', imports: [CommonModule, FormsModule], template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n" }]
12136
12187
  }], ctorParameters: () => [] });
@@ -12146,10 +12197,10 @@ class TruTab {
12146
12197
  notifyListeners = (isActive) => {
12147
12198
  this.tabGroupEventNotifier.isActive = isActive;
12148
12199
  };
12149
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTab, deps: [{ token: TruTabGroupEventNotifier }], target: i0.ɵɵFactoryTarget.Component });
12150
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruTab, isStandalone: true, selector: "tru-tab", inputs: { view: "view", label: "label" }, providers: [TruTabGroupEventNotifier], viewQueries: [{ propertyName: "matTab", first: true, predicate: MatTab, descendants: true }], ngImport: i0, template: "<mat-tab [label]=\"label\" [disabled]=\"!view.window.isActive()\">\r\n <ng-content></ng-content>\r\n</mat-tab>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }], encapsulation: i0.ViewEncapsulation.None });
12200
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTab, deps: [{ token: TruTabGroupEventNotifier }], target: i0.ɵɵFactoryTarget.Component });
12201
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruTab, isStandalone: true, selector: "tru-tab", inputs: { view: "view", label: "label" }, providers: [TruTabGroupEventNotifier], viewQueries: [{ propertyName: "matTab", first: true, predicate: MatTab, descendants: true }], ngImport: i0, template: "<mat-tab [label]=\"label\" [disabled]=\"!view.window.isActive()\">\r\n <ng-content></ng-content>\r\n</mat-tab>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }], encapsulation: i0.ViewEncapsulation.None });
12151
12202
  }
12152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTab, decorators: [{
12203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTab, decorators: [{
12153
12204
  type: Component,
12154
12205
  args: [{ selector: 'tru-tab', imports: [CommonModule, FormsModule, MatTabsModule], encapsulation: ViewEncapsulation.None, providers: [TruTabGroupEventNotifier], template: "<mat-tab [label]=\"label\" [disabled]=\"!view.window.isActive()\">\r\n <ng-content></ng-content>\r\n</mat-tab>\r\n" }]
12155
12206
  }], ctorParameters: () => [{ type: TruTabGroupEventNotifier }], propDecorators: { view: [{
@@ -12184,10 +12235,10 @@ class TruTabGroup {
12184
12235
  const allTabs = this.tabs?.toArray?.() ?? [];
12185
12236
  allTabs.forEach((tab, index) => tab.notifyListeners(index === selectedIndex));
12186
12237
  }
12187
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTabGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
12188
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TruTabGroup, isStandalone: true, selector: "tru-tab-group", queries: [{ propertyName: "tabs", predicate: TruTab }], viewQueries: [{ propertyName: "tabGroup", first: true, predicate: MatTabGroup, descendants: true }], ngImport: i0, template: "<mat-tab-group #tabGroup\r\n (selectedTabChange)=\"onChange($event)\"\r\n animationDuration=\"0ms\">\r\n <ng-content #outlet></ng-content>\r\n</mat-tab-group>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }], encapsulation: i0.ViewEncapsulation.None });
12238
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTabGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
12239
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TruTabGroup, isStandalone: true, selector: "tru-tab-group", queries: [{ propertyName: "tabs", predicate: TruTab }], viewQueries: [{ propertyName: "tabGroup", first: true, predicate: MatTabGroup, descendants: true }], ngImport: i0, template: "<mat-tab-group #tabGroup\r\n (selectedTabChange)=\"onChange($event)\"\r\n animationDuration=\"0ms\">\r\n <ng-content #outlet></ng-content>\r\n</mat-tab-group>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }], encapsulation: i0.ViewEncapsulation.None });
12189
12240
  }
12190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruTabGroup, decorators: [{
12241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruTabGroup, decorators: [{
12191
12242
  type: Component,
12192
12243
  args: [{ selector: 'tru-tab-group', imports: [CommonModule, FormsModule, MatTabsModule], encapsulation: ViewEncapsulation.None, template: "<mat-tab-group #tabGroup\r\n (selectedTabChange)=\"onChange($event)\"\r\n animationDuration=\"0ms\">\r\n <ng-content #outlet></ng-content>\r\n</mat-tab-group>\r\n" }]
12193
12244
  }], ctorParameters: () => [], propDecorators: { tabGroup: [{
@@ -12276,10 +12327,10 @@ class TruLogin {
12276
12327
  }
12277
12328
  });
12278
12329
  }
12279
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruLogin, deps: [{ token: TruAuth }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Component });
12280
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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 <ng-container *ngIf=\"isWindowsAuth; else passwordLogin\"></ng-container>\r\n <ng-template #passwordLogin>\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\" [type]=\"passwordVisible ? 'text' : 'password'\">\r\n <button class=\"visibility-button\" [disableRipple]=\"true\" type=\"button\" mat-icon-button matSuffix (click)=\"passwordVisible = !passwordVisible\">\r\n <mat-icon class=\"visibility\" *ngIf=\"passwordVisible\" [svgIcon]=\"'visibility-icon'\">visibility-icon</mat-icon>\r\n <mat-icon class=\"visibility-off\" *ngIf=\"!passwordVisible\" [svgIcon]=\"'visibility-off-icon'\">visibility-off-icon</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </ng-template>\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 *ngIf=\"!isWindowsAuth\">\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}::ng-deep .login-wrapper .mat-mdc-icon-button.mat-mdc-button-base{height:20px;width:20px;padding:0!important}::ng-deep .login-wrapper .mat-icon{height:20px;width:30px;vertical-align:middle}::ng-deep .login-wrapper .material-icons{font-size:18px}::ng-deep .login-wrapper .visibility svg{fill:#006dcc;height:18px;width:18px;margin-top:5px}::ng-deep .login-wrapper .visibility-off svg{fill:#787878;height:18px;width:18px;margin-top:5px}::ng-deep .login-wrapper .visibility-button{--mat-text-button-state-layer-color: none}::ng-deep .login-wrapper button:focus{outline:none!important}::ng-deep .login-wrapper .mat-button-focus-overlay{display:none!important}::ng-deep .login-wrapper .mat-mdc-button-persistent-ripple{display:none!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: i3.MatIconButton, selector: "button[mat-icon-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: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.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: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
12330
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruLogin, deps: [{ token: TruAuth }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Component });
12331
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", 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 <ng-container *ngIf=\"isWindowsAuth; else passwordLogin\"></ng-container>\r\n <ng-template #passwordLogin>\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\" [type]=\"passwordVisible ? 'text' : 'password'\">\r\n <button class=\"visibility-button\" [disableRipple]=\"true\" type=\"button\" mat-icon-button matSuffix (click)=\"passwordVisible = !passwordVisible\">\r\n <mat-icon class=\"visibility\" *ngIf=\"passwordVisible\" [svgIcon]=\"'visibility-icon'\">visibility-icon</mat-icon>\r\n <mat-icon class=\"visibility-off\" *ngIf=\"!passwordVisible\" [svgIcon]=\"'visibility-off-icon'\">visibility-off-icon</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </ng-template>\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 *ngIf=\"!isWindowsAuth\">\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}::ng-deep .login-wrapper .mat-mdc-icon-button.mat-mdc-button-base{height:20px;width:20px;padding:0!important}::ng-deep .login-wrapper .mat-icon{height:20px;width:30px;vertical-align:middle}::ng-deep .login-wrapper .material-icons{font-size:18px}::ng-deep .login-wrapper .visibility svg{fill:#006dcc;height:18px;width:18px;margin-top:5px}::ng-deep .login-wrapper .visibility-off svg{fill:#787878;height:18px;width:18px;margin-top:5px}::ng-deep .login-wrapper .visibility-button{--mat-text-button-state-layer-color: none}::ng-deep .login-wrapper button:focus{outline:none!important}::ng-deep .login-wrapper .mat-button-focus-overlay{display:none!important}::ng-deep .login-wrapper .mat-mdc-button-persistent-ripple{display:none!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: i3.MatIconButton, selector: "button[mat-icon-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: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.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: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
12281
12332
  }
12282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruLogin, decorators: [{
12333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruLogin, decorators: [{
12283
12334
  type: Component,
12284
12335
  args: [{ selector: 'tru-login', standalone: false, 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 <ng-container *ngIf=\"isWindowsAuth; else passwordLogin\"></ng-container>\r\n <ng-template #passwordLogin>\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\" [type]=\"passwordVisible ? 'text' : 'password'\">\r\n <button class=\"visibility-button\" [disableRipple]=\"true\" type=\"button\" mat-icon-button matSuffix (click)=\"passwordVisible = !passwordVisible\">\r\n <mat-icon class=\"visibility\" *ngIf=\"passwordVisible\" [svgIcon]=\"'visibility-icon'\">visibility-icon</mat-icon>\r\n <mat-icon class=\"visibility-off\" *ngIf=\"!passwordVisible\" [svgIcon]=\"'visibility-off-icon'\">visibility-off-icon</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </ng-template>\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 *ngIf=\"!isWindowsAuth\">\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}::ng-deep .login-wrapper .mat-mdc-icon-button.mat-mdc-button-base{height:20px;width:20px;padding:0!important}::ng-deep .login-wrapper .mat-icon{height:20px;width:30px;vertical-align:middle}::ng-deep .login-wrapper .material-icons{font-size:18px}::ng-deep .login-wrapper .visibility svg{fill:#006dcc;height:18px;width:18px;margin-top:5px}::ng-deep .login-wrapper .visibility-off svg{fill:#787878;height:18px;width:18px;margin-top:5px}::ng-deep .login-wrapper .visibility-button{--mat-text-button-state-layer-color: none}::ng-deep .login-wrapper button:focus{outline:none!important}::ng-deep .login-wrapper .mat-button-focus-overlay{display:none!important}::ng-deep .login-wrapper .mat-mdc-button-persistent-ripple{display:none!important}\n"] }]
12285
12336
  }], ctorParameters: () => [{ type: TruAuth }, { type: TruAppEnvironment }] });
@@ -12374,10 +12425,10 @@ class TruAuthInterceptor {
12374
12425
  setHeaders: { Authorization: `Bearer ${token}` },
12375
12426
  });
12376
12427
  }
12377
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuthInterceptor, deps: [{ token: TruAuth }, { token: TruAppEnvironment }, { token: TRU_AUTH_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable });
12378
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuthInterceptor });
12428
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuthInterceptor, deps: [{ token: TruAuth }, { token: TruAppEnvironment }, { token: TRU_AUTH_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable });
12429
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuthInterceptor });
12379
12430
  }
12380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruAuthInterceptor, decorators: [{
12431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruAuthInterceptor, decorators: [{
12381
12432
  type: Injectable
12382
12433
  }], ctorParameters: () => [{ type: TruAuth }, { type: TruAppEnvironment }, { type: TruAuthJwtStrategy, decorators: [{
12383
12434
  type: Inject,
@@ -12414,10 +12465,10 @@ class TruServerTouchInterceptor {
12414
12465
  return url.includes('/api/');
12415
12466
  }
12416
12467
  }
12417
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruServerTouchInterceptor, deps: [{ token: TruAppEnvironment }, { token: TruServerTouchTracker }], target: i0.ɵɵFactoryTarget.Injectable });
12418
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruServerTouchInterceptor });
12468
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruServerTouchInterceptor, deps: [{ token: TruAppEnvironment }, { token: TruServerTouchTracker }], target: i0.ɵɵFactoryTarget.Injectable });
12469
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruServerTouchInterceptor });
12419
12470
  }
12420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruServerTouchInterceptor, decorators: [{
12471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruServerTouchInterceptor, decorators: [{
12421
12472
  type: Injectable
12422
12473
  }], ctorParameters: () => [{ type: TruAppEnvironment }, { type: TruServerTouchTracker }] });
12423
12474
 
@@ -12478,9 +12529,9 @@ const routes = [
12478
12529
  }
12479
12530
  ];
12480
12531
  class TruLoginModule {
12481
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruLoginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12482
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: TruLoginModule, declarations: [TruLogin], imports: [CommonModule, MaterialModule, FormsModule, ReactiveFormsModule, i1$5.RouterModule], exports: [TruLogin] });
12483
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruLoginModule, providers: [
12532
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruLoginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12533
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: TruLoginModule, declarations: [TruLogin], imports: [CommonModule, MaterialModule, FormsModule, ReactiveFormsModule, i1$5.RouterModule], exports: [TruLogin] });
12534
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruLoginModule, providers: [
12484
12535
  {
12485
12536
  provide: HTTP_INTERCEPTORS,
12486
12537
  useClass: TruAuthInterceptor,
@@ -12499,7 +12550,7 @@ class TruLoginModule {
12499
12550
  TruAuthStrategyProvider
12500
12551
  ], imports: [CommonModule, MaterialModule, FormsModule, ReactiveFormsModule, RouterModule.forChild(routes)] });
12501
12552
  }
12502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruLoginModule, decorators: [{
12553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruLoginModule, decorators: [{
12503
12554
  type: NgModule,
12504
12555
  args: [{
12505
12556
  declarations: [TruLogin],
@@ -12634,10 +12685,10 @@ class TruValidationDialog {
12634
12685
  }
12635
12686
  this.listeners.forEach(l => l());
12636
12687
  }
12637
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruValidationDialog, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
12638
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TruValidationDialog, isStandalone: true, selector: "tru-validation-dialog", inputs: { config: "config" }, outputs: { close: "close" }, ngImport: i0, template: "@if (config.context === 0) {\r\n<div class=\"invalid hide\">\r\n <i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n <div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll($event)\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept($event)\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline($event)\">Decline</button>\r\n </div>\r\n</div>\r\n<span class=\"invalid-flag\"></span>\r\n}\r\n@else {\r\n<i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n<div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll($event)\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept($event)\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline($event)\">Decline</button>\r\n</div>\r\n}\r\n", styles: ["::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid,::ng-deep .NgxEditor__Wrapper .invalid{position:absolute;left:0;top:24px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid{top:16px}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.hide,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.hide,::ng-deep .NgxEditor__Wrapper .invalid.hide{display:none!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.show,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.show,::ng-deep .NgxEditor__Wrapper .invalid.show{display:inline-block!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-flag,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-flag,::ng-deep .NgxEditor__Wrapper .invalid-flag{box-sizing:border-box;position:absolute;left:0;top:0;width:3px;height:3px;border-bottom:solid 3px transparent;border-right:solid 3px transparent;border-left:solid 3px red;border-top:solid 3px red}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-triangle:after,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-triangle:after{box-sizing:border-box}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid,::ng-deep .NgxEditor__Wrapper .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}::ng-deep .merge-button,::ng-deep .NgxEditor__Wrapper .invalid .merge-button{margin:5px;font-size:12px;font-family:Calibri,Helvetica,Arial,sans-serif!important;background-color:#fff}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:before{border-bottom-color:red!important}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:after{border-bottom-color:red!important}.invalid{font-family:Calibri,Helvetica,Arial,sans-serif!important}i{line-height:24px!important}::ng-deep .ag-row .ag-cell-value .invalid{position:absolute;left:0;top:18px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px}::ng-deep .ag-row .ag-cell-value.hide .invalid{display:none!important}::ng-deep .ag-row .ag-cell-value.show:not(.ag-cell-popup-editing) .invalid{display:inline-block!important}::ng-deep .ag-row .ag-cell-value.invalid.show{overflow:visible!important}::ng-deep .ag-row .ag-cell-value .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}::ng-deep .ag-cell .tru-control.list.in-cell .invalid-flag{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
12688
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruValidationDialog, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
12689
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TruValidationDialog, isStandalone: true, selector: "tru-validation-dialog", inputs: { config: "config" }, outputs: { close: "close" }, ngImport: i0, template: "@if (config.context === 0) {\r\n<div class=\"invalid hide\">\r\n <i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n <div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll($event)\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept($event)\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline($event)\">Decline</button>\r\n </div>\r\n</div>\r\n<span class=\"invalid-flag\"></span>\r\n}\r\n@else {\r\n<i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n<div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll($event)\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept($event)\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline($event)\">Decline</button>\r\n</div>\r\n}\r\n", styles: ["::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid,::ng-deep .NgxEditor__Wrapper .invalid{position:absolute;left:0;top:24px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid{top:16px}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.hide,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.hide,::ng-deep .NgxEditor__Wrapper .invalid.hide{display:none!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.show,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.show,::ng-deep .NgxEditor__Wrapper .invalid.show{display:inline-block!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-flag,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-flag,::ng-deep .NgxEditor__Wrapper .invalid-flag{box-sizing:border-box;position:absolute;left:0;top:0;width:3px;height:3px;border-bottom:solid 3px transparent;border-right:solid 3px transparent;border-left:solid 3px red;border-top:solid 3px red}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-triangle:after,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-triangle:after{box-sizing:border-box}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid,::ng-deep .NgxEditor__Wrapper .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}::ng-deep .merge-button,::ng-deep .NgxEditor__Wrapper .invalid .merge-button{margin:5px;font-size:12px;font-family:Calibri,Helvetica,Arial,sans-serif!important;background-color:#fff}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:before{border-bottom-color:red!important}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:after{border-bottom-color:red!important}.invalid{font-family:Calibri,Helvetica,Arial,sans-serif!important}i{line-height:24px!important}::ng-deep .ag-row .ag-cell-value .invalid{position:absolute;left:0;top:18px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px}::ng-deep .ag-row .ag-cell-value.hide .invalid{display:none!important}::ng-deep .ag-row .ag-cell-value.show:not(.ag-cell-popup-editing) .invalid{display:inline-block!important}::ng-deep .ag-row .ag-cell-value.invalid.show{overflow:visible!important}::ng-deep .ag-row .ag-cell-value .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}::ng-deep .ag-cell .tru-control.list.in-cell .invalid-flag{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
12639
12690
  }
12640
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruValidationDialog, decorators: [{
12691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruValidationDialog, decorators: [{
12641
12692
  type: Component,
12642
12693
  args: [{ selector: 'tru-validation-dialog', imports: [CommonModule, FormsModule], template: "@if (config.context === 0) {\r\n<div class=\"invalid hide\">\r\n <i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n <div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll($event)\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept($event)\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline($event)\">Decline</button>\r\n </div>\r\n</div>\r\n<span class=\"invalid-flag\"></span>\r\n}\r\n@else {\r\n<i class=\"icon-warning-sign icon-white\"></i>{{config.errorMsg}}\r\n<div *ngIf=\"config.mergeData\">\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAcceptAll($event)\">Accept All</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onAccept($event)\">Accept</button>\r\n <button class=\"md-primary md-button ng-scope md-ink-ripple merge-button\" (click)=\"onDecline($event)\">Decline</button>\r\n</div>\r\n}\r\n", styles: ["::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid,::ng-deep .NgxEditor__Wrapper .invalid{position:absolute;left:0;top:24px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid{top:16px}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.hide,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.hide,::ng-deep .NgxEditor__Wrapper .invalid.hide{display:none!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid.show,::ng-deep .tru-control.list .mat-mdc-form-field .invalid.show,::ng-deep .NgxEditor__Wrapper .invalid.show{display:inline-block!important}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-flag,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-flag,::ng-deep .NgxEditor__Wrapper .invalid-flag{box-sizing:border-box;position:absolute;left:0;top:0;width:3px;height:3px;border-bottom:solid 3px transparent;border-right:solid 3px transparent;border-left:solid 3px red;border-top:solid 3px red}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid-triangle:after,::ng-deep .tru-control.list .mat-mdc-form-field .invalid-triangle:after{box-sizing:border-box}::ng-deep .tru-control.edit .mat-mdc-form-field .invalid,::ng-deep .tru-control.list .mat-mdc-form-field .invalid,::ng-deep .NgxEditor__Wrapper .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}::ng-deep .merge-button,::ng-deep .NgxEditor__Wrapper .invalid .merge-button{margin:5px;font-size:12px;font-family:Calibri,Helvetica,Arial,sans-serif!important;background-color:#fff}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:before{border-bottom-color:red!important}::ng-deep .mat-mdc-form-field.invalid .mdc-line-ripple:after{border-bottom-color:red!important}.invalid{font-family:Calibri,Helvetica,Arial,sans-serif!important}i{line-height:24px!important}::ng-deep .ag-row .ag-cell-value .invalid{position:absolute;left:0;top:18px;-moz-min-width:200px;-ms-min-width:200px;-o-min-width:200px;-webkit-min-width:200px;min-width:200px;min-height:20px;max-width:500px;max-height:500px;font-size:12px}::ng-deep .ag-row .ag-cell-value.hide .invalid{display:none!important}::ng-deep .ag-row .ag-cell-value.show:not(.ag-cell-popup-editing) .invalid{display:inline-block!important}::ng-deep .ag-row .ag-cell-value.invalid.show{overflow:visible!important}::ng-deep .ag-row .ag-cell-value .invalid{background-color:#bd362f;margin:2px 0 0;padding:4px 10px;-ms-border-radius:3px 3px 3px 3px!important;border-radius:3px!important;background-position:15px center;background-repeat:no-repeat;-webkit-box-shadow:0 0 12px #999999;-ms-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999;color:#fff;-ms-opacity:.9;opacity:.9;z-index:1000}::ng-deep .ag-cell .tru-control.list.in-cell .invalid-flag{display:none!important}\n"] }]
12643
12694
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: TruUtil }], propDecorators: { config: [{
@@ -12805,10 +12856,10 @@ class TruBreezeValidator {
12805
12856
  ngOnDestroy() {
12806
12857
  this.subs.forEach(s => s.unsubscribe());
12807
12858
  }
12808
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruBreezeValidator, deps: [{ token: i0.ElementRef }, { token: TruDataContext }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive });
12809
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruBreezeValidator, isStandalone: true, selector: "[truBreezeValidator]", inputs: { entity: ["truBreezeValidator", "entity"], config: "config" }, usesOnChanges: true, ngImport: i0 });
12859
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruBreezeValidator, deps: [{ token: i0.ElementRef }, { token: TruDataContext }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive });
12860
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruBreezeValidator, isStandalone: true, selector: "[truBreezeValidator]", inputs: { entity: ["truBreezeValidator", "entity"], config: "config" }, usesOnChanges: true, ngImport: i0 });
12810
12861
  }
12811
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruBreezeValidator, decorators: [{
12862
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruBreezeValidator, decorators: [{
12812
12863
  type: Directive,
12813
12864
  args: [{
12814
12865
  selector: '[truBreezeValidator]'
@@ -12961,10 +13012,10 @@ class TruSearchPanelPositionManager {
12961
13012
  ngOnDestroy() {
12962
13013
  this.listeners.forEach(fn => fn());
12963
13014
  }
12964
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchPanelPositionManager, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
12965
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TruSearchPanelPositionManager, isStandalone: true, selector: "[truSearchPanelPositionManager]", inputs: { config: "config" }, ngImport: i0 });
13015
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchPanelPositionManager, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
13016
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TruSearchPanelPositionManager, isStandalone: true, selector: "[truSearchPanelPositionManager]", inputs: { config: "config" }, ngImport: i0 });
12966
13017
  }
12967
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchPanelPositionManager, decorators: [{
13018
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchPanelPositionManager, decorators: [{
12968
13019
  type: Directive,
12969
13020
  args: [{
12970
13021
  selector: '[truSearchPanelPositionManager]'
@@ -13114,10 +13165,10 @@ class TruCloudFileManager {
13114
13165
  blobId: blobId
13115
13166
  }));
13116
13167
  };
13117
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCloudFileManager, deps: [{ token: TruAppEnvironment }, { token: TruUtil }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
13118
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCloudFileManager, providedIn: 'root' });
13168
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCloudFileManager, deps: [{ token: TruAppEnvironment }, { token: TruUtil }, { token: TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
13169
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCloudFileManager, providedIn: 'root' });
13119
13170
  }
13120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCloudFileManager, decorators: [{
13171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCloudFileManager, decorators: [{
13121
13172
  type: Injectable,
13122
13173
  args: [{
13123
13174
  providedIn: 'root',
@@ -14387,10 +14438,10 @@ class TruCountries {
14387
14438
  all = () => {
14388
14439
  return this.getAllCountries();
14389
14440
  };
14390
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCountries, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14391
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCountries, providedIn: 'root' });
14441
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCountries, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14442
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCountries, providedIn: 'root' });
14392
14443
  }
14393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCountries, decorators: [{
14444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCountries, decorators: [{
14394
14445
  type: Injectable,
14395
14446
  args: [{
14396
14447
  providedIn: 'root',
@@ -14399,10 +14450,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
14399
14450
 
14400
14451
  class TruPredicateMap {
14401
14452
  constructor() { }
14402
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruPredicateMap, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14403
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruPredicateMap });
14453
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruPredicateMap, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14454
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruPredicateMap });
14404
14455
  }
14405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruPredicateMap, decorators: [{
14456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruPredicateMap, decorators: [{
14406
14457
  type: Injectable
14407
14458
  }], ctorParameters: () => [] });
14408
14459
 
@@ -14532,10 +14583,10 @@ class TruSort {
14532
14583
  }
14533
14584
  return current;
14534
14585
  };
14535
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSort, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14536
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSort, providedIn: 'root' });
14586
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSort, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14587
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSort, providedIn: 'root' });
14537
14588
  }
14538
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSort, decorators: [{
14589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSort, decorators: [{
14539
14590
  type: Injectable,
14540
14591
  args: [{
14541
14592
  providedIn: 'root',
@@ -14580,11 +14631,11 @@ class TruSearchIconModule {
14580
14631
  iconRegistry.addSvgIconLiteral("less-than-or-equal-operator-icon", sanitizer.bypassSecurityTrustHtml(LESS_THAN_OR_EQUAL_ICON));
14581
14632
  iconRegistry.addSvgIconLiteral("contains-operator-icon", sanitizer.bypassSecurityTrustHtml(CONTAINS_ICON));
14582
14633
  }
14583
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchIconModule, deps: [{ token: i1$6.DomSanitizer }, { token: i2.MatIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
14584
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: TruSearchIconModule, imports: [CommonModule, FormsModule] });
14585
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchIconModule, imports: [CommonModule, FormsModule] });
14634
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchIconModule, deps: [{ token: i1$6.DomSanitizer }, { token: i2.MatIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
14635
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: TruSearchIconModule, imports: [CommonModule, FormsModule] });
14636
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchIconModule, imports: [CommonModule, FormsModule] });
14586
14637
  }
14587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruSearchIconModule, decorators: [{
14638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruSearchIconModule, decorators: [{
14588
14639
  type: NgModule,
14589
14640
  args: [{
14590
14641
  imports: [CommonModule, FormsModule],
@@ -14594,11 +14645,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
14594
14645
  }], ctorParameters: () => [{ type: i1$6.DomSanitizer }, { type: i2.MatIconRegistry }] });
14595
14646
 
14596
14647
  class TruCommonModule {
14597
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14598
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: TruCommonModule });
14599
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCommonModule });
14648
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14649
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: TruCommonModule });
14650
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCommonModule });
14600
14651
  }
14601
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TruCommonModule, decorators: [{
14652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TruCommonModule, decorators: [{
14602
14653
  type: NgModule,
14603
14654
  args: [{
14604
14655
  declarations: [],