@firestitch/system 18.0.20 → 18.0.22

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.
@@ -1,8 +1,8 @@
1
1
  import * as i1$1 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
2
+ import { CommonModule, JsonPipe } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Component, ChangeDetectionStrategy, Inject, ViewChild, Input, NgModule, Injectable, inject, ChangeDetectorRef, Pipe, EventEmitter, Output, InjectionToken } from '@angular/core';
5
- import * as i5$2 from '@angular/forms';
5
+ import * as i5$3 from '@angular/forms';
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import { RouterModule } from '@angular/router';
8
8
  import * as i4 from '@angular/material/button';
@@ -14,7 +14,7 @@ import { MatTabsModule } from '@angular/material/tabs';
14
14
  import * as i2 from '@firestitch/clipboard';
15
15
  import { FsClipboardModule } from '@firestitch/clipboard';
16
16
  import * as i10 from '@firestitch/common';
17
- import { FsCommonModule } from '@firestitch/common';
17
+ import { FsCommonModule, index } from '@firestitch/common';
18
18
  import * as i4$2 from '@firestitch/date';
19
19
  import { FsDateModule, parse } from '@firestitch/date';
20
20
  import * as i8 from '@firestitch/dialog';
@@ -43,6 +43,8 @@ import * as i12 from '@angular/material/select';
43
43
  import { MatSelectModule } from '@angular/material/select';
44
44
  import * as i5$1 from '@angular/material/tooltip';
45
45
  import { MatTooltipModule } from '@angular/material/tooltip';
46
+ import * as i5$2 from '@firestitch/badge';
47
+ import { FsBadgeModule } from '@firestitch/badge';
46
48
  import * as i16 from '@firestitch/colorpicker';
47
49
  import { FsColorPickerModule } from '@firestitch/colorpicker';
48
50
  import * as i15 from '@firestitch/datepicker';
@@ -1433,6 +1435,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
1433
1435
  type: Input
1434
1436
  }] } });
1435
1437
 
1438
+ const LogTypes = [
1439
+ { value: '1', name: 'Fatal Error' }, // E_ERROR
1440
+ { value: '2', name: 'Warning' }, // E_WARNING
1441
+ { value: '4', name: 'Parse Error' }, // E_PARSE
1442
+ { value: '8', name: 'Notice' }, // E_NOTICE
1443
+ { value: '16', name: 'Core Error' }, // E_CORE_ERROR
1444
+ { value: '32', name: 'Core Warning' }, // E_CORE_WARNING
1445
+ { value: '64', name: 'Compile Error' }, // E_COMPILE_ERROR
1446
+ { value: '128', name: 'Compile Warning' }, // E_COMPILE_WARNING
1447
+ { value: '256', name: 'User Error' }, // E_USER_ERROR
1448
+ { value: '512', name: 'User Warning' }, // E_USER_WARNING
1449
+ { value: '1024', name: 'User Notice' }, // E_USER_NOTICE
1450
+ { value: '2048', name: 'Strict Notice' }, // E_STRICT
1451
+ { value: '4096', name: 'Recoverable Error' }, // E_RECOVERABLE_ERROR
1452
+ { value: '8192', name: 'Deprecated' }, // E_DEPRECATED
1453
+ { value: '16384', name: 'User Deprecated' }, // E_USER_DEPRECATED
1454
+ { value: 'exception', name: 'Exception' },
1455
+ ];
1456
+
1436
1457
  class ServerLogComponent {
1437
1458
  data;
1438
1459
  log;
@@ -1452,16 +1473,29 @@ class ServerLogComponent {
1452
1473
  this.log.server = JSON.parse(this.log.server);
1453
1474
  }
1454
1475
  catch (e) {
1455
- //
1476
+ //
1456
1477
  }
1457
1478
  }
1458
1479
  }
1459
1480
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ServerLogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
1460
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ServerLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>Log</div>\n <mat-dialog-content>\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{log.type}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{log.message}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"log.url\">\n <fs-label>\n URL\n </fs-label>\n {{log.url}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{log.createDate|fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n \n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{log.file}} &#64; {{log.line}}\n </fs-label-field>\n </div>\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>{{log.server|json}}</pre>\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>{{log.backtrace|json}}</pre>\n </fs-label-field>\n\n\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { 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$1.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "component", type: i6.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i6.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "component", type: i8.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { kind: "pipe", type: i1$1.JsonPipe, name: "json" }, { kind: "pipe", type: i4$2.FsDateFormatPipe, name: "fsDateFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1481
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ServerLogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>\n Log\n </div>\n <mat-dialog-content>\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{ log.type }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{ log.message }}\n </fs-label-field>\n <fs-label-field *ngIf=\"log.url\">\n <fs-label>\n URL\n </fs-label>\n {{ log.url }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{ log.createDate|fsDateFormat: 'full-date-time' }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{ log.file }} &#64; {{ log.line }}\n </fs-label-field>\n </div>\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>\n {{ log.server|json }}\n </pre>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>\n {{ log.backtrace|json }}\n </pre>\n </fs-label-field>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Done\n </button>\n </mat-dialog-actions>\n</fs-dialog>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.JsonPipe, name: "json" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { 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: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i6.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i6.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "ngmodule", type: FsBadgeModule }, { kind: "ngmodule", type: FsDateModule }, { kind: "pipe", type: i4$2.FsDateFormatPipe, name: "fsDateFormat" }, { kind: "ngmodule", type: FsSkeletonModule }, { kind: "directive", type: i7$1.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "ngmodule", type: FsDialogModule }, { kind: "component", type: i8.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1461
1482
  }
1462
1483
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ServerLogComponent, decorators: [{
1463
1484
  type: Component,
1464
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>Log</div>\n <mat-dialog-content>\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{log.type}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{log.message}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"log.url\">\n <fs-label>\n URL\n </fs-label>\n {{log.url}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{log.createDate|fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n \n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{log.file}} &#64; {{log.line}}\n </fs-label-field>\n </div>\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>{{log.server|json}}</pre>\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>{{log.backtrace|json}}</pre>\n </fs-label-field>\n\n\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n" }]
1485
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
1486
+ CommonModule,
1487
+ MatDialogModule,
1488
+ MatButtonModule,
1489
+ MatIconModule,
1490
+ MatTooltipModule,
1491
+ FsLabelModule,
1492
+ FsLabelModule,
1493
+ FsBadgeModule,
1494
+ JsonPipe,
1495
+ FsDateModule,
1496
+ FsSkeletonModule,
1497
+ FsDialogModule,
1498
+ ], template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>\n Log\n </div>\n <mat-dialog-content>\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{ log.type }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{ log.message }}\n </fs-label-field>\n <fs-label-field *ngIf=\"log.url\">\n <fs-label>\n URL\n </fs-label>\n {{ log.url }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{ log.createDate|fsDateFormat: 'full-date-time' }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{ log.file }} &#64; {{ log.line }}\n </fs-label-field>\n </div>\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>\n {{ log.server|json }}\n </pre>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>\n {{ log.backtrace|json }}\n </pre>\n </fs-label-field>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Done\n </button>\n </mat-dialog-actions>\n</fs-dialog>" }]
1465
1499
  }], ctorParameters: () => [{ type: undefined, decorators: [{
1466
1500
  type: Inject,
1467
1501
  args: [MAT_DIALOG_DATA]
@@ -1469,24 +1503,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
1469
1503
 
1470
1504
  class ServerLogsComponent {
1471
1505
  _dialog;
1506
+ _api;
1472
1507
  list;
1473
1508
  loadLogs;
1474
1509
  config = null;
1475
- logTypes = [];
1476
- constructor(_dialog) {
1510
+ actions = [];
1511
+ LogTypes = index(LogTypes, 'value', 'name');
1512
+ constructor(_dialog, _api) {
1477
1513
  this._dialog = _dialog;
1514
+ this._api = _api;
1478
1515
  }
1479
1516
  ngOnInit() {
1480
1517
  this._configList();
1481
1518
  }
1519
+ toggleAcknowledged(log) {
1520
+ const acknowledge = log.acknowledged ? 'unacknowledge' : 'acknowledge';
1521
+ this._api
1522
+ .put(`system/logs/server/${log.id}/${acknowledge}`)
1523
+ .subscribe((response) => {
1524
+ this.list
1525
+ .updateData(response, (data) => {
1526
+ return data.id === response.id;
1527
+ });
1528
+ });
1529
+ }
1482
1530
  open(log) {
1483
- this._dialog.open(ServerLogComponent, {
1531
+ this._dialog
1532
+ .open(ServerLogComponent, {
1484
1533
  data: { log: log },
1485
1534
  width: '85%',
1486
1535
  });
1487
1536
  }
1488
1537
  _configList() {
1489
1538
  this.config = {
1539
+ actions: this.actions,
1490
1540
  paging: {
1491
1541
  strategy: PaginationStrategy.Many,
1492
1542
  },
@@ -1498,20 +1548,21 @@ class ServerLogsComponent {
1498
1548
  },
1499
1549
  ],
1500
1550
  fetch: (query) => {
1501
- return this.loadLogs(query)
1502
- .pipe(map((response) => ({ data: response.data, paging: response.paging })));
1551
+ return this._api
1552
+ .get('system/logs/server', query, { key: null })
1553
+ .pipe(map((response) => ({ data: response.logs, paging: response.paging })));
1503
1554
  },
1504
1555
  };
1505
1556
  }
1506
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ServerLogsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
1507
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ServerLogsComponent, selector: "fs-system-server-logs", inputs: { loadLogs: "loadLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Message</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <a href=\"javascript:;\" (click)=\"open(row)\">{{row.message}}</a>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>Type</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.type}}\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>Date</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n </fs-list>\r\n", styles: [""], dependencies: [{ kind: "component", type: i4$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { kind: "component", type: i5.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i5.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i5.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i5.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1557
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ServerLogsComponent, deps: [{ token: i1.MatDialog }, { token: i1$2.FsApi }], target: i0.ɵɵFactoryTarget.Component });
1558
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ServerLogsComponent, selector: "fs-system-server-logs", inputs: { loadLogs: "loadLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\r\n <fs-list-column width=\"1%\">\r\n <ng-template fs-list-header>\r\n Acknowledged\r\n </ng-template>\r\n <ng-template\r\n fs-list-cell\r\n let-row=\"row\">\r\n <a (click)=\"toggleAcknowledged(row)\">\r\n <fs-badge\r\n [size]=\"16\"\r\n [tooltip]=\"row.acknowledged ? 'Acknowledged' : 'Unacknowledged'\"\r\n [color]=\"row.acknowledged ? '#E3E3E3' : '#F30000'\">\r\n </fs-badge>\r\n </a>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>\r\n Message\r\n </ng-template>\r\n <ng-template\r\n fs-list-cell\r\n let-row=\"row\">\r\n <a\r\n href=\"javascript:;\"\r\n (click)=\"open(row)\">\r\n {{ row.message }}\r\n </a>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column class=\"col-date\">\r\n <ng-template fs-list-header>\r\n Type\r\n </ng-template>\r\n <ng-template\r\n fs-list-cell\r\n let-row=\"row\">\r\n {{ LogTypes[row.type] }}\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column class=\"col-date\">\r\n <ng-template fs-list-header>\r\n Date\r\n </ng-template>\r\n <ng-template\r\n fs-list-cell\r\n let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>", styles: ["fs-list ::ng-deep .col-date,fs-list ::ng-deep .col-type{white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i4$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { kind: "component", type: i5.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i5.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i5.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i5.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { kind: "component", type: i5$2.FsBadgeComponent, selector: "fs-badge", inputs: ["color", "text", "tooltip", "size", "shape", "image", "icon", "iconSize", "iconSizePercent", "iconColor", "backgroundSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1508
1559
  }
1509
1560
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ServerLogsComponent, decorators: [{
1510
1561
  type: Component,
1511
- args: [{ selector: 'fs-system-server-logs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Message</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <a href=\"javascript:;\" (click)=\"open(row)\">{{row.message}}</a>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>Type</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.type}}\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>Date</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n </fs-list>\r\n" }]
1512
- }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { list: [{
1562
+ args: [{ selector: 'fs-system-server-logs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-list [config]=\"config\">\r\n <fs-list-column width=\"1%\">\r\n <ng-template fs-list-header>\r\n Acknowledged\r\n </ng-template>\r\n <ng-template\r\n fs-list-cell\r\n let-row=\"row\">\r\n <a (click)=\"toggleAcknowledged(row)\">\r\n <fs-badge\r\n [size]=\"16\"\r\n [tooltip]=\"row.acknowledged ? 'Acknowledged' : 'Unacknowledged'\"\r\n [color]=\"row.acknowledged ? '#E3E3E3' : '#F30000'\">\r\n </fs-badge>\r\n </a>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>\r\n Message\r\n </ng-template>\r\n <ng-template\r\n fs-list-cell\r\n let-row=\"row\">\r\n <a\r\n href=\"javascript:;\"\r\n (click)=\"open(row)\">\r\n {{ row.message }}\r\n </a>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column class=\"col-date\">\r\n <ng-template fs-list-header>\r\n Type\r\n </ng-template>\r\n <ng-template\r\n fs-list-cell\r\n let-row=\"row\">\r\n {{ LogTypes[row.type] }}\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column class=\"col-date\">\r\n <ng-template fs-list-header>\r\n Date\r\n </ng-template>\r\n <ng-template\r\n fs-list-cell\r\n let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>", styles: ["fs-list ::ng-deep .col-date,fs-list ::ng-deep .col-type{white-space:nowrap}\n"] }]
1563
+ }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i1$2.FsApi }], propDecorators: { list: [{
1513
1564
  type: ViewChild,
1514
- args: ['list', { static: true }]
1565
+ args: [FsListComponent]
1515
1566
  }], loadLogs: [{
1516
1567
  type: Input
1517
1568
  }] } });
@@ -1640,7 +1691,7 @@ class SettingsComponent {
1640
1691
  });
1641
1692
  }
1642
1693
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SettingsComponent, deps: [{ token: i1$3.FsMessage }, { token: i2.FsClipboard }, { token: i2$2.FsPrompt }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1643
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: SettingsComponent, selector: "fs-system-settings", inputs: { loadSettings: "loadSettings", save: "save" }, outputs: { fileRemove: "fileRemove", fileSelect: "fileSelect" }, ngImport: i0, template: "<mat-accordion>\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngFor=\"let group of groups\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"title-row\">\r\n <div class=\"title\">\r\n {{ group || 'General' }}\r\n </div>\r\n <div class=\"actions\">\r\n <button\r\n type=\"button\"\r\n [matTooltip]=\"'Export ' + (group || 'General') + ' Settings'\"\r\n mat-icon-button\r\n (click)=\"export($event, groupedSettings[group])\">\r\n <mat-icon>\r\n cloud_download\r\n </mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n [matTooltip]=\"'Import ' + (group || 'General') + ' Settings'\"\r\n mat-icon-button\r\n (click)=\"import($event, group)\">\r\n <mat-icon>\r\n cloud_upload\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div\r\n hideToggle\r\n *ngFor=\"let setting of groupedSettings[group]\"\r\n class=\"setting\"\r\n [ngClass]=\"{ 'has-instruction': !! setting.instruction }\">\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.InputBox\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Textarea\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n </textarea>\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Select || setting.interfaceType===SettingInterfaceType.SelectMultiple\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <mat-select\r\n [(ngModel)]=\"setting.value\"\r\n [multiple]=\"setting.interfaceType===SettingInterfaceType.SelectMultiple\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-option\r\n *ngFor=\"let item of setting.values | keyNameValue\"\r\n [value]=\"item.value\">\r\n {{ item.name }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Date\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <input\r\n matInput\r\n fsDatePicker\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Color\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <input\r\n matInput\r\n fsColorPicker\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Time\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <input\r\n matInput\r\n fsTimePicker\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <fs-file-picker\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.File\"\r\n [allowRemove]=\"true\"\r\n [allowDownload]=\"true\"\r\n (select)=\"fileSelect.emit({ setting: setting, file: $event.file })\"\r\n (remove)=\"fileRemove.emit(setting)\"\r\n [url]=\"setting.value\">\r\n <div fsFileLabel>\r\n {{ setting.label }}\r\n </div>\r\n <div fsFileHint>\r\n {{ setting.instruction }}\r\n </div>\r\n </fs-file-picker>\r\n </div>\r\n <button\r\n mat-stroked-button\r\n color=\"primary\"\r\n type=\"button\"\r\n (click)=\"saveGroup(group)\">\r\n Save\r\n </button>\r\n </mat-expansion-panel>\r\n</mat-accordion>", styles: [".mat-expansion-panel-header{font-size:19px}.full-width{width:100%}.title-row{flex-direction:row;box-sizing:border-box;display:flex;place-content:center flex-start;align-items:center;width:100%}.title-row .title{display:flex;flex:1}:host ::ng-deep .mat-expansion-panel-header-title{margin:0}:host ::ng-deep .mat-expansion-panel .actions{display:none}:host ::ng-deep .mat-expansion-panel.mat-expanded .actions{display:block}:host ::ng-deep .setting.has-instruction fs-file-picker fs-label-message{display:block;padding-bottom:1em}\n"], dependencies: [{ 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: i5$2.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: i5$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i7$2.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7$2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i7$2.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i7$2.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i14.FsFilePickerComponent, selector: "fs-file-picker", inputs: ["minWidth", "minHeight", "imageWidth", "imageHeight", "imageQuality", "label", "showFilename", "allowDownload", "allowReupload", "multiple", "allowRemove", "url", "file", "accept", "disabled", "previewWidth", "previewHeight"], outputs: ["select", "remove", "download"] }, { kind: "directive", type: i14.FsFileLabelDirective, selector: "[fsFileLabel]" }, { kind: "component", type: i15.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { kind: "component", type: i15.FsTimePickerComponent, selector: "[fsTimePicker]", inputs: ["view"] }, { kind: "component", type: i16.FsColorPickerComponent, selector: "[fsColorPicker]", inputs: ["showClear"] }, { kind: "pipe", type: KeyNameValuePipe, name: "keyNameValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1694
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: SettingsComponent, selector: "fs-system-settings", inputs: { loadSettings: "loadSettings", save: "save" }, outputs: { fileRemove: "fileRemove", fileSelect: "fileSelect" }, ngImport: i0, template: "<mat-accordion>\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngFor=\"let group of groups\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"title-row\">\r\n <div class=\"title\">\r\n {{ group || 'General' }}\r\n </div>\r\n <div class=\"actions\">\r\n <button\r\n type=\"button\"\r\n [matTooltip]=\"'Export ' + (group || 'General') + ' Settings'\"\r\n mat-icon-button\r\n (click)=\"export($event, groupedSettings[group])\">\r\n <mat-icon>\r\n cloud_download\r\n </mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n [matTooltip]=\"'Import ' + (group || 'General') + ' Settings'\"\r\n mat-icon-button\r\n (click)=\"import($event, group)\">\r\n <mat-icon>\r\n cloud_upload\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div\r\n hideToggle\r\n *ngFor=\"let setting of groupedSettings[group]\"\r\n class=\"setting\"\r\n [ngClass]=\"{ 'has-instruction': !! setting.instruction }\">\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.InputBox\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Textarea\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n </textarea>\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Select || setting.interfaceType===SettingInterfaceType.SelectMultiple\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <mat-select\r\n [(ngModel)]=\"setting.value\"\r\n [multiple]=\"setting.interfaceType===SettingInterfaceType.SelectMultiple\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-option\r\n *ngFor=\"let item of setting.values | keyNameValue\"\r\n [value]=\"item.value\">\r\n {{ item.name }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Date\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <input\r\n matInput\r\n fsDatePicker\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Color\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <input\r\n matInput\r\n fsColorPicker\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Time\">\r\n <mat-label>\r\n {{ setting.label }}\r\n </mat-label>\r\n <input\r\n matInput\r\n fsTimePicker\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>\r\n {{ setting.instruction }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <fs-file-picker\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.File\"\r\n [allowRemove]=\"true\"\r\n [allowDownload]=\"true\"\r\n (select)=\"fileSelect.emit({ setting: setting, file: $event.file })\"\r\n (remove)=\"fileRemove.emit(setting)\"\r\n [url]=\"setting.value\">\r\n <div fsFileLabel>\r\n {{ setting.label }}\r\n </div>\r\n <div fsFileHint>\r\n {{ setting.instruction }}\r\n </div>\r\n </fs-file-picker>\r\n </div>\r\n <button\r\n mat-stroked-button\r\n color=\"primary\"\r\n type=\"button\"\r\n (click)=\"saveGroup(group)\">\r\n Save\r\n </button>\r\n </mat-expansion-panel>\r\n</mat-accordion>", styles: [".mat-expansion-panel-header{font-size:19px}.full-width{width:100%}.title-row{flex-direction:row;box-sizing:border-box;display:flex;place-content:center flex-start;align-items:center;width:100%}.title-row .title{display:flex;flex:1}:host ::ng-deep .mat-expansion-panel-header-title{margin:0}:host ::ng-deep .mat-expansion-panel .actions{display:none}:host ::ng-deep .mat-expansion-panel.mat-expanded .actions{display:block}:host ::ng-deep .setting.has-instruction fs-file-picker fs-label-message{display:block;padding-bottom:1em}\n"], dependencies: [{ 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: i5$3.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: i5$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i7$2.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7$2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i7$2.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i7$2.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i14.FsFilePickerComponent, selector: "fs-file-picker", inputs: ["minWidth", "minHeight", "imageWidth", "imageHeight", "imageQuality", "label", "showFilename", "allowDownload", "allowReupload", "multiple", "allowRemove", "url", "file", "accept", "disabled", "previewWidth", "previewHeight"], outputs: ["select", "remove", "download"] }, { kind: "directive", type: i14.FsFileLabelDirective, selector: "[fsFileLabel]" }, { kind: "component", type: i15.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { kind: "component", type: i15.FsTimePickerComponent, selector: "[fsTimePicker]", inputs: ["view"] }, { kind: "component", type: i16.FsColorPickerComponent, selector: "[fsColorPicker]", inputs: ["showClear"] }, { kind: "pipe", type: KeyNameValuePipe, name: "keyNameValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1644
1695
  }
1645
1696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SettingsComponent, decorators: [{
1646
1697
  type: Component,
@@ -1710,7 +1761,6 @@ class FsSystemModule {
1710
1761
  SettingsComponent,
1711
1762
  KeyNameValuePipe,
1712
1763
  ProcessesComponent,
1713
- ServerLogComponent,
1714
1764
  ServerLogsComponent,
1715
1765
  UpgradeLogsComponent,
1716
1766
  ApiLogsComponent,
@@ -1739,13 +1789,13 @@ class FsSystemModule {
1739
1789
  FsDialogModule,
1740
1790
  FsDatePickerModule,
1741
1791
  FsMenuModule,
1792
+ FsBadgeModule,
1742
1793
  FsPopoverModule,
1743
1794
  FsColorPickerModule,
1744
1795
  CronLogsComponent], exports: [DashboardComponent,
1745
1796
  CronsComponent,
1746
1797
  SettingsComponent,
1747
1798
  ProcessesComponent,
1748
- ServerLogsComponent,
1749
1799
  UpgradeLogsComponent,
1750
1800
  ApiLogsComponent,
1751
1801
  InfoComponent] });
@@ -1770,6 +1820,7 @@ class FsSystemModule {
1770
1820
  FsDialogModule,
1771
1821
  FsDatePickerModule,
1772
1822
  FsMenuModule,
1823
+ FsBadgeModule,
1773
1824
  FsPopoverModule,
1774
1825
  FsColorPickerModule,
1775
1826
  CronLogsComponent] });
@@ -1799,6 +1850,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
1799
1850
  FsDialogModule,
1800
1851
  FsDatePickerModule,
1801
1852
  FsMenuModule,
1853
+ FsBadgeModule,
1802
1854
  FsPopoverModule,
1803
1855
  FsColorPickerModule,
1804
1856
  CronLogsComponent,
@@ -1808,7 +1860,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
1808
1860
  CronsComponent,
1809
1861
  SettingsComponent,
1810
1862
  ProcessesComponent,
1811
- ServerLogsComponent,
1812
1863
  UpgradeLogsComponent,
1813
1864
  ApiLogsComponent,
1814
1865
  InfoComponent,
@@ -1820,7 +1871,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
1820
1871
  SettingsComponent,
1821
1872
  KeyNameValuePipe,
1822
1873
  ProcessesComponent,
1823
- ServerLogComponent,
1824
1874
  ServerLogsComponent,
1825
1875
  UpgradeLogsComponent,
1826
1876
  ApiLogsComponent,
@@ -1837,5 +1887,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
1837
1887
  * Generated bundle index. Do not edit.
1838
1888
  */
1839
1889
 
1840
- export { ApiLogComponent, ApiLogState, ApiLogStates, ApiLogsComponent, CronComponent, CronLogComponent, CronState, CronStates, CronsComponent, DashboardComponent, FS_SYSTEM_CONFIG, FsSystemModule, FsSystemQueryLogsModule, InfoComponent, KeyNameValuePipe, ProcessComponent, ProcessState, ProcessStates, ProcessesComponent, QueryLogsComponent, ServerLogComponent, ServerLogsComponent, SettingsComponent, UpgradeLogsComponent };
1890
+ export { ApiLogComponent, ApiLogState, ApiLogStates, ApiLogsComponent, CronComponent, CronLogComponent, CronState, CronStates, CronsComponent, DashboardComponent, FS_SYSTEM_CONFIG, FsSystemModule, FsSystemQueryLogsModule, InfoComponent, KeyNameValuePipe, ProcessComponent, ProcessState, ProcessStates, ProcessesComponent, QueryLogsComponent, ServerLogsComponent, SettingsComponent, UpgradeLogsComponent };
1841
1891
  //# sourceMappingURL=firestitch-system.mjs.map