@smartbit4all/ng-client 3.1.26 → 3.1.29

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.
Files changed (82) hide show
  1. package/esm2020/lib/session/projects.mjs +7 -9
  2. package/esm2020/lib/session/smart-session.module.mjs +6 -22
  3. package/esm2020/lib/smart-grid/smart-grid.component.mjs +17 -3
  4. package/esm2020/lib/smart-table/smarttable.model.mjs +19 -20
  5. package/esm2020/lib/smart-table/smarttable.module.mjs +6 -2
  6. package/esm2020/lib/smart-table/tables/material-table/material-table.component.mjs +6 -5
  7. package/esm2020/lib/smart-table/tables/table.mjs +20 -8
  8. package/esm2020/lib/view-context/api/api/api.mjs +1 -1
  9. package/esm2020/lib/view-context/api/api/view.service.mjs +1 -1
  10. package/esm2020/lib/view-context/api/api.module.mjs +1 -1
  11. package/esm2020/lib/view-context/api/configuration.mjs +1 -1
  12. package/esm2020/lib/view-context/api/encoder.mjs +1 -1
  13. package/esm2020/lib/view-context/api/index.mjs +1 -1
  14. package/esm2020/lib/view-context/api/model/closeResult.mjs +1 -1
  15. package/esm2020/lib/view-context/api/model/componentConstraint.mjs +1 -1
  16. package/esm2020/lib/view-context/api/model/componentModel.mjs +1 -1
  17. package/esm2020/lib/view-context/api/model/componentModelChange.mjs +1 -1
  18. package/esm2020/lib/view-context/api/model/dataChange.mjs +1 -1
  19. package/esm2020/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
  20. package/esm2020/lib/view-context/api/model/dataChangeKind.mjs +1 -1
  21. package/esm2020/lib/view-context/api/model/downloadedFile.mjs +1 -1
  22. package/esm2020/lib/view-context/api/model/imageResource.mjs +1 -1
  23. package/esm2020/lib/view-context/api/model/link.mjs +1 -1
  24. package/esm2020/lib/view-context/api/model/messageData.mjs +1 -1
  25. package/esm2020/lib/view-context/api/model/messageOption.mjs +1 -1
  26. package/esm2020/lib/view-context/api/model/messageOptionType.mjs +1 -1
  27. package/esm2020/lib/view-context/api/model/messageResult.mjs +1 -1
  28. package/esm2020/lib/view-context/api/model/messageType.mjs +1 -1
  29. package/esm2020/lib/view-context/api/model/models.mjs +1 -1
  30. package/esm2020/lib/view-context/api/model/openPendingData.mjs +1 -1
  31. package/esm2020/lib/view-context/api/model/smartLinkData.mjs +1 -1
  32. package/esm2020/lib/view-context/api/model/uiAction.mjs +1 -1
  33. package/esm2020/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
  34. package/esm2020/lib/view-context/api/model/uiActionButtonIconPos.mjs +1 -1
  35. package/esm2020/lib/view-context/api/model/uiActionButtonType.mjs +3 -2
  36. package/esm2020/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
  37. package/esm2020/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
  38. package/esm2020/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
  39. package/esm2020/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
  40. package/esm2020/lib/view-context/api/model/uiActionInputType.mjs +1 -1
  41. package/esm2020/lib/view-context/api/model/uiActionRequest.mjs +1 -1
  42. package/esm2020/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
  43. package/esm2020/lib/view-context/api/model/uploadedFile.mjs +1 -1
  44. package/esm2020/lib/view-context/api/model/valueSet.mjs +1 -1
  45. package/esm2020/lib/view-context/api/model/view.mjs +1 -1
  46. package/esm2020/lib/view-context/api/model/viewApiError.mjs +1 -1
  47. package/esm2020/lib/view-context/api/model/viewConstraint.mjs +1 -1
  48. package/esm2020/lib/view-context/api/model/viewContext.mjs +1 -1
  49. package/esm2020/lib/view-context/api/model/viewContextChange.mjs +1 -1
  50. package/esm2020/lib/view-context/api/model/viewContextData.mjs +1 -1
  51. package/esm2020/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
  52. package/esm2020/lib/view-context/api/model/viewData.mjs +1 -1
  53. package/esm2020/lib/view-context/api/model/viewEventHandler.mjs +1 -1
  54. package/esm2020/lib/view-context/api/model/viewState.mjs +1 -1
  55. package/esm2020/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
  56. package/esm2020/lib/view-context/api/model/viewType.mjs +1 -1
  57. package/esm2020/lib/view-context/api/param.mjs +1 -1
  58. package/esm2020/lib/view-context/api/variables.mjs +1 -1
  59. package/fesm2015/smartbit4all-ng-client.mjs +78 -418
  60. package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
  61. package/fesm2020/smartbit4all-ng-client.mjs +74 -411
  62. package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
  63. package/lib/session/projects.d.ts +6 -8
  64. package/lib/session/smart-session.module.d.ts +7 -10
  65. package/lib/smart-table/smarttable.model.d.ts +7 -3
  66. package/lib/smart-table/smarttable.module.d.ts +2 -1
  67. package/lib/smart-table/tables/table.d.ts +4 -1
  68. package/lib/view-context/api/model/uiActionButtonType.d.ts +2 -1
  69. package/package.json +1 -1
  70. package/smartbit4all-ng-client-3.1.29.tgz +0 -0
  71. package/src/lib/view-context/api/README.md +226 -226
  72. package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.mjs +0 -90
  73. package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.mjs +0 -43
  74. package/esm2020/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.mjs +0 -40
  75. package/esm2020/lib/session/dev-tool/smart-dev-tool.interceptor.mjs +0 -52
  76. package/esm2020/lib/session/dev-tool/smart-dev-tool.service.mjs +0 -165
  77. package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.d.ts +0 -28
  78. package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.d.ts +0 -18
  79. package/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.d.ts +0 -15
  80. package/lib/session/dev-tool/smart-dev-tool.interceptor.d.ts +0 -18
  81. package/lib/session/dev-tool/smart-dev-tool.service.d.ts +0 -57
  82. package/smartbit4all-ng-client-3.1.26.tgz +0 -0
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Injectable, Optional, Inject, PLATFORM_ID, NgModule, SkipSelf, Component, Input, ViewChild, forwardRef, EventEmitter, Output, Directive, HostListener, ViewContainerRef, ViewEncapsulation, ViewChildren, Pipe, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
3
- import { Subject, takeUntil, startWith, map, distinctUntilChanged, catchError, throwError, from, lastValueFrom } from 'rxjs';
3
+ import { Subject, takeUntil, startWith, map, distinctUntilChanged, throwError, from, catchError as catchError$1, lastValueFrom } from 'rxjs';
4
4
  import * as i1 from '@angular/common/http';
5
- import { HttpHeaders, HttpContext, HttpParams, HttpEventType, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
5
+ import { HttpHeaders, HttpContext, HttpParams, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
6
6
  import * as i3$1 from '@angular/common';
7
7
  import { isPlatformBrowser, DOCUMENT, DatePipe, CommonModule } from '@angular/common';
8
8
  import * as i3 from '@angular/material/button';
@@ -16,7 +16,7 @@ import * as i7 from '@angular/material/core';
16
16
  import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatCommonModule } from '@angular/material/core';
17
17
  import * as i2$1 from '@angular/platform-browser';
18
18
  import { BrowserModule } from '@angular/platform-browser';
19
- import * as i4 from '@angular/material/expansion';
19
+ import * as i2$6 from '@angular/material/expansion';
20
20
  import { MatExpansionModule } from '@angular/material/expansion';
21
21
  import * as i20 from '@angular/forms';
22
22
  import { FormGroup, FormControl, Validators, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -60,11 +60,13 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
60
60
  import { trigger, state, style, transition, animate } from '@angular/animations';
61
61
  import * as i2$4 from '@angular/material/table';
62
62
  import { MatTableModule } from '@angular/material/table';
63
- import { catchError as catchError$1, switchMap } from 'rxjs/operators';
63
+ import * as i7$1 from '@angular/material/divider';
64
+ import { MatDividerModule } from '@angular/material/divider';
65
+ import { catchError, switchMap } from 'rxjs/operators';
64
66
  import * as i2$5 from '@angular/material/tree';
65
67
  import { MatTreeNestedDataSource, MatTreeModule } from '@angular/material/tree';
66
68
  import { NestedTreeControl } from '@angular/cdk/tree';
67
- import * as i7$1 from '@angular/material/paginator';
69
+ import * as i7$2 from '@angular/material/paginator';
68
70
  import { MatPaginatorModule } from '@angular/material/paginator';
69
71
  import * as i1$5 from '@angular/material/toolbar';
70
72
  import { MatToolbarModule } from '@angular/material/toolbar';
@@ -2203,7 +2205,8 @@ const UiActionButtonType = {
2203
2205
  Raised: 'RAISED',
2204
2206
  Icon: 'ICON',
2205
2207
  MiniFab: 'MINI_FAB',
2206
- Fab: 'FAB'
2208
+ Fab: 'FAB',
2209
+ Separator: 'SEPARATOR'
2207
2210
  };
2208
2211
 
2209
2212
  /**
@@ -5260,6 +5263,7 @@ var SmartTableButtonType;
5260
5263
  SmartTableButtonType["ICON"] = "ICON";
5261
5264
  SmartTableButtonType["NORMAL"] = "NORMAL";
5262
5265
  SmartTableButtonType["RAISED"] = "RAISED";
5266
+ SmartTableButtonType["SEPARATOR"] = "SEPARATOR";
5263
5267
  })(SmartTableButtonType || (SmartTableButtonType = {}));
5264
5268
  var SmartTableOptionButtonDirection;
5265
5269
  (function (SmartTableOptionButtonDirection) {
@@ -5280,19 +5284,17 @@ class SmartTable {
5280
5284
  this.customSmartTableHeaders = config.customSmartTableHeaders;
5281
5285
  if (this.expandable) {
5282
5286
  this.customSmartTableHeaders?.push({
5283
- label: "",
5284
- propertyName: "expand",
5287
+ label: '',
5288
+ propertyName: 'expand',
5285
5289
  });
5286
5290
  }
5287
5291
  this.tableType = config.tableType;
5288
5292
  if (this.tableType === SmartTableType.CHECK_BOX) {
5289
5293
  this.customSmartTableHeaders = [
5290
5294
  {
5291
- label: "",
5292
- propertyName: "select",
5293
- showCheckboxInHeader: typeof config.showCheckboxInHeader === "undefined"
5294
- ? true
5295
- : config.showCheckboxInHeader,
5295
+ label: '',
5296
+ propertyName: 'select',
5297
+ showCheckboxInHeader: typeof config.showCheckboxInHeader === 'undefined' ? true : config.showCheckboxInHeader,
5296
5298
  },
5297
5299
  ...this.customSmartTableHeaders,
5298
5300
  ];
@@ -5301,8 +5303,7 @@ class SmartTable {
5301
5303
  this.tableType === SmartTableType.ROW_SELECT) {
5302
5304
  this.isMultiple = config.isMultiple;
5303
5305
  this.selectionProperty = config.selectionProperty;
5304
- this.selection =
5305
- config.selection ?? new SelectionModel(this.isMultiple, []);
5306
+ this.selection = config.selection ?? new SelectionModel(this.isMultiple, []);
5306
5307
  }
5307
5308
  this.tableHeaders = this.getPropertyNamesDeeply(config.tableRows[0]);
5308
5309
  this.setTableHeaders();
@@ -5312,6 +5313,7 @@ class SmartTable {
5312
5313
  this.tableOptionButtonDirection = config.tableOptionButtonDirection;
5313
5314
  this.onRowClick = config.onRowClick;
5314
5315
  this.onRowDoubleClick = config.onRowDoubleClick;
5316
+ this.defaultActions = config.defaultActions;
5315
5317
  this.highlightOnRowClick = config.highlightOnRowClick;
5316
5318
  this.highlightClass = config.highlightClass;
5317
5319
  this.hover = config.hover;
@@ -5334,9 +5336,9 @@ class SmartTable {
5334
5336
  let properties = Object.keys(element);
5335
5337
  properties.forEach((property) => {
5336
5338
  if (element === undefined ||
5337
- typeof element[property] === "string" ||
5338
- typeof element[property] === "boolean" ||
5339
- typeof element[property] === "number" ||
5339
+ typeof element[property] === 'string' ||
5340
+ typeof element[property] === 'boolean' ||
5341
+ typeof element[property] === 'number' ||
5340
5342
  element[property] === undefined ||
5341
5343
  element[property] === null ||
5342
5344
  !element[property] ||
@@ -5349,7 +5351,7 @@ class SmartTable {
5349
5351
  return properties;
5350
5352
  }
5351
5353
  getValueDeeply(model, key) {
5352
- let splittedKey = key.split(".");
5354
+ let splittedKey = key.split('.');
5353
5355
  let value;
5354
5356
  splittedKey.forEach((k) => {
5355
5357
  if (!value) {
@@ -5360,7 +5362,7 @@ class SmartTable {
5360
5362
  return undefined;
5361
5363
  }
5362
5364
  else if (value[k] === undefined || value[k] === null || !value) {
5363
- value = "";
5365
+ value = '';
5364
5366
  return value;
5365
5367
  }
5366
5368
  else {
@@ -5372,7 +5374,7 @@ class SmartTable {
5372
5374
  }
5373
5375
  pushOptions() {
5374
5376
  if (this.options && this.options.length) {
5375
- this.tableHeaders.push("options");
5377
+ this.tableHeaders.push('options');
5376
5378
  }
5377
5379
  }
5378
5380
  setTableHeaders() {
@@ -5381,7 +5383,7 @@ class SmartTable {
5381
5383
  this.tableHeaders = [];
5382
5384
  this.customTableHeaders = [];
5383
5385
  this.customSmartTableHeaders.forEach((tableHeader) => {
5384
- let propertyNames = tableHeader.propertyName.split(".");
5386
+ let propertyNames = tableHeader.propertyName.split('.');
5385
5387
  if (propertyNames.filter((property) => originalHeaders.includes(property)) &&
5386
5388
  !tableHeader.isHidden) {
5387
5389
  this.tableHeaders.push(tableHeader.propertyName);
@@ -5389,8 +5391,8 @@ class SmartTable {
5389
5391
  }
5390
5392
  else if (tableHeader.buttons ||
5391
5393
  tableHeader.icon ||
5392
- tableHeader.propertyName === "expand" ||
5393
- tableHeader.propertyName === "select") {
5394
+ tableHeader.propertyName === 'expand' ||
5395
+ tableHeader.propertyName === 'select') {
5394
5396
  this.tableHeaders.push(tableHeader.propertyName);
5395
5397
  this.customTableHeaders.push(tableHeader.label);
5396
5398
  }
@@ -5424,6 +5426,7 @@ class Table {
5424
5426
  this.sortEvent = new Subject();
5425
5427
  this.onSelectionChanged = new Subject();
5426
5428
  this.asyncTranslationResult = (translator, param) => translator(param);
5429
+ this.ACTION_SEPERATOR = SmartTableButtonType.SEPARATOR;
5427
5430
  }
5428
5431
  ngOnInit() {
5429
5432
  if (this.smartTable.sortable)
@@ -5461,13 +5464,18 @@ class Table {
5461
5464
  this.myTableChild.renderRows();
5462
5465
  }
5463
5466
  handleOnRowDoubleClick(element) {
5464
- if (this.smartTable.tableType === SmartTableType.INHERITED) {
5465
- this.onRowDoubleClick(element);
5467
+ if (this.smartTable.defaultActions) {
5468
+ this.openDefaultActionsMenu();
5466
5469
  }
5467
- else if (this.smartTable.tableType === SmartTableType.CHECK_BOX) {
5468
- if (this.smartTable.onRowDoubleClick) {
5470
+ else {
5471
+ if (this.smartTable.tableType === SmartTableType.INHERITED) {
5469
5472
  this.onRowDoubleClick(element);
5470
5473
  }
5474
+ else if (this.smartTable.tableType === SmartTableType.CHECK_BOX) {
5475
+ if (this.smartTable.onRowDoubleClick) {
5476
+ this.onRowDoubleClick(element);
5477
+ }
5478
+ }
5471
5479
  }
5472
5480
  }
5473
5481
  type() {
@@ -5486,7 +5494,7 @@ class Table {
5486
5494
  }
5487
5495
  button.callback(button.args, element, btn);
5488
5496
  if (close) {
5489
- let openMenus = this.trigger.filter((matMenuTrigger) => matMenuTrigger.menuOpen);
5497
+ let openMenus = this.triggers.filter((matMenuTrigger) => matMenuTrigger.menuOpen);
5490
5498
  openMenus.forEach((matMenuTrigger) => {
5491
5499
  matMenuTrigger.closeMenu();
5492
5500
  });
@@ -5816,17 +5824,23 @@ class Table {
5816
5824
  getImageResourceColor(element, header) {
5817
5825
  return element.icons[this.originalProperty(header)].color ?? 'primary';
5818
5826
  }
5827
+ openDefaultActionsMenu() {
5828
+ this.trigger.openMenu();
5829
+ }
5819
5830
  }
5820
5831
  Table.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: Table, deps: [{ token: ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component });
5821
- Table.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: Table, selector: "ng-component", inputs: { smartTable: "smartTable" }, viewQueries: [{ propertyName: "myTableChild", first: true, predicate: ["myTable"], descendants: true }, { propertyName: "trigger", predicate: MatMenuTrigger, descendants: true }, { propertyName: "vcRef", predicate: ["expandedArea"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: '', isInline: true });
5832
+ Table.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: Table, selector: "ng-component", inputs: { smartTable: "smartTable" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: ["defaultActionsMenuTrigger"], descendants: true, read: MatMenuTrigger }, { propertyName: "myTableChild", first: true, predicate: ["myTable"], descendants: true }, { propertyName: "triggers", predicate: MatMenuTrigger, descendants: true }, { propertyName: "vcRef", predicate: ["expandedArea"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: '', isInline: true });
5822
5833
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: Table, decorators: [{
5823
5834
  type: Component,
5824
5835
  args: [{
5825
5836
  template: '',
5826
5837
  }]
5827
- }], ctorParameters: function () { return [{ type: ComponentFactoryService }]; }, propDecorators: { trigger: [{
5838
+ }], ctorParameters: function () { return [{ type: ComponentFactoryService }]; }, propDecorators: { triggers: [{
5828
5839
  type: ViewChildren,
5829
5840
  args: [MatMenuTrigger]
5841
+ }], trigger: [{
5842
+ type: ViewChild,
5843
+ args: ['defaultActionsMenuTrigger', { read: MatMenuTrigger }]
5830
5844
  }], vcRef: [{
5831
5845
  type: ViewChildren,
5832
5846
  args: ['expandedArea', { read: ViewContainerRef }]
@@ -5883,7 +5897,7 @@ class MaterialTableComponent extends Table {
5883
5897
  }
5884
5898
  }
5885
5899
  MaterialTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MaterialTableComponent, deps: [{ token: ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component });
5886
- MaterialTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MaterialTableComponent, selector: "lib-material-table", usesInheritance: true, ngImport: i0, template: "<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isImageResource(element, header)\">\r\n <smart-icon\r\n [icon]=\"getImageResourceIcon(element, header)\"\r\n [color]=\"getImageResourceColor(element, header)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn.label }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <button\r\n *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n {{ button.translator!(btn) }}\r\n </button>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:whitesmoke}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}\n"], components: [{ type: i2$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i2$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i2$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.MatCellDef, selector: "[matCellDef]" }, { type: i2$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i2$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i2$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "smartDateTime": SmartDateTimePipe, "smartDate": SmartDatePipe, "smartTime": SmartTimePipe }, animations: [
5900
+ MaterialTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MaterialTableComponent, selector: "lib-material-table", usesInheritance: true, ngImport: i0, template: "<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isImageResource(element, header)\">\r\n <smart-icon\r\n [icon]=\"getImageResourceIcon(element, header)\"\r\n [color]=\"getImageResourceColor(element, header)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn.label }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <div *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\">\r\n <button\r\n *ngIf=\"btn.descriptor.type !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n {{ button.translator!(btn) }}\r\n </button>\r\n <mat-divider\r\n [color]=\"btn.descriptor.color\"\r\n *ngIf=\"btn.descriptor.type === ACTION_SEPERATOR\"\r\n ></mat-divider>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n <div>\r\n <div #defaultActionsMenuTrigger [matMenuTriggerFor]=\"defaultActionsMenu\"></div>\r\n <mat-menu #defaultActionsMenu=\"matMenu\">\r\n <div *ngFor=\"let btn of smartTable.defaultActions\">\r\n <button\r\n *ngIf=\"btn.type! !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, btn, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n {{ btn.label }}\r\n </button>\r\n <mat-divider *ngIf=\"btn.type === ACTION_SEPERATOR\"></mat-divider>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:whitesmoke}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}\n"], components: [{ type: i2$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i7$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i2$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i2$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.MatCellDef, selector: "[matCellDef]" }, { type: i2$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i2$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i2$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "smartDateTime": SmartDateTimePipe, "smartDate": SmartDatePipe, "smartTime": SmartTimePipe }, animations: [
5887
5901
  trigger('detailExpand', [
5888
5902
  state('collapsed', style({ height: '0px', minHeight: '0' })),
5889
5903
  state('expanded', style({ height: '*' })),
@@ -5898,7 +5912,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
5898
5912
  state('expanded', style({ height: '*' })),
5899
5913
  transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
5900
5914
  ]),
5901
- ], template: "<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isImageResource(element, header)\">\r\n <smart-icon\r\n [icon]=\"getImageResourceIcon(element, header)\"\r\n [color]=\"getImageResourceColor(element, header)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn.label }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <button\r\n *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n {{ button.translator!(btn) }}\r\n </button>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:whitesmoke}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}\n"] }]
5915
+ ], template: "<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isImageResource(element, header)\">\r\n <smart-icon\r\n [icon]=\"getImageResourceIcon(element, header)\"\r\n [color]=\"getImageResourceColor(element, header)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn.label }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <div *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\">\r\n <button\r\n *ngIf=\"btn.descriptor.type !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n {{ button.translator!(btn) }}\r\n </button>\r\n <mat-divider\r\n [color]=\"btn.descriptor.color\"\r\n *ngIf=\"btn.descriptor.type === ACTION_SEPERATOR\"\r\n ></mat-divider>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n <div>\r\n <div #defaultActionsMenuTrigger [matMenuTriggerFor]=\"defaultActionsMenu\"></div>\r\n <mat-menu #defaultActionsMenu=\"matMenu\">\r\n <div *ngFor=\"let btn of smartTable.defaultActions\">\r\n <button\r\n *ngIf=\"btn.type! !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, btn, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n {{ btn.label }}\r\n </button>\r\n <mat-divider *ngIf=\"btn.type === ACTION_SEPERATOR\"></mat-divider>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:whitesmoke}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}\n"] }]
5902
5916
  }], ctorParameters: function () { return [{ type: ComponentFactoryService }]; } });
5903
5917
 
5904
5918
  class MobileTableComponent extends Table {
@@ -6612,7 +6626,8 @@ SmarttableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
6612
6626
  MatMenuModule,
6613
6627
  MatProgressSpinnerModule,
6614
6628
  ComponentFactoryServiceModule,
6615
- SmartIconModule], exports: [SmarttableComponent] });
6629
+ SmartIconModule,
6630
+ MatDividerModule], exports: [SmarttableComponent] });
6616
6631
  SmarttableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttableModule, providers: [ComponentFactoryService], imports: [[
6617
6632
  BrowserModule,
6618
6633
  MatCommonModule,
@@ -6627,6 +6642,7 @@ SmarttableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
6627
6642
  MatProgressSpinnerModule,
6628
6643
  ComponentFactoryServiceModule,
6629
6644
  SmartIconModule,
6645
+ MatDividerModule,
6630
6646
  ]] });
6631
6647
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttableModule, decorators: [{
6632
6648
  type: NgModule,
@@ -6654,6 +6670,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
6654
6670
  MatProgressSpinnerModule,
6655
6671
  ComponentFactoryServiceModule,
6656
6672
  SmartIconModule,
6673
+ MatDividerModule,
6657
6674
  ],
6658
6675
  exports: [SmarttableComponent],
6659
6676
  providers: [ComponentFactoryService],
@@ -6723,362 +6740,6 @@ var SmartActionType;
6723
6740
  * Public API Surface of smartdialog
6724
6741
  */
6725
6742
 
6726
- class SmartDevToolService {
6727
- constructor(cookieService) {
6728
- this.cookieService = cookieService;
6729
- this.smartDevToolName = 'smartDevTool';
6730
- this.isSmartDevToolActiveName = 'smartDevToolActive';
6731
- this.isActive = false;
6732
- this.smartDevToolHoursName = 'smartDevToolHours';
6733
- this.smartDevToolMaxName = 'smartDevToolMaxCalls';
6734
- this.hoursToSave = 1;
6735
- this.maxNumOfSavedCalls = 50;
6736
- this._destroy$ = new Subject();
6737
- this.descriptorChanged = new SmartSubject(this._destroy$);
6738
- this.newErrorsCount = 0;
6739
- this.newErrorsCountChanged = new SmartSubject(this._destroy$);
6740
- this.setUpLocalStorage();
6741
- let apiCallsFromLocalStorage = localStorage.getItem(this.smartDevToolName);
6742
- if (apiCallsFromLocalStorage) {
6743
- this.descriptor = JSON.parse(apiCallsFromLocalStorage);
6744
- }
6745
- else {
6746
- this.descriptor = { apiCalls: [] };
6747
- this.save();
6748
- }
6749
- window.addEventListener('storage', (event) => {
6750
- if (event.storageArea === localStorage) {
6751
- this.isActive = localStorage.getItem(this.isSmartDevToolActiveName) === 'true';
6752
- let hoursToSaveString = localStorage.getItem(this.smartDevToolHoursName);
6753
- if (hoursToSaveString) {
6754
- this.hoursToSave = Number.parseInt(hoursToSaveString);
6755
- }
6756
- let maxNumOfSavedCalls = localStorage.getItem(this.smartDevToolMaxName);
6757
- if (maxNumOfSavedCalls) {
6758
- this.maxNumOfSavedCalls = Number.parseInt(maxNumOfSavedCalls);
6759
- }
6760
- }
6761
- });
6762
- }
6763
- ngOnDestroy() {
6764
- this._destroy$.next();
6765
- this._destroy$.complete();
6766
- }
6767
- setUpLocalStorage() {
6768
- let keysOfLocalStorage = Object.keys(localStorage);
6769
- if (!keysOfLocalStorage.includes(this.isSmartDevToolActiveName)) {
6770
- localStorage.setItem(this.isSmartDevToolActiveName, 'true');
6771
- }
6772
- }
6773
- writeResponse(request, response, requestDate, responseDate) {
6774
- this.sanitizeByLength();
6775
- this.sanitizeByTime();
6776
- let requestHeader = this.createObject(request.headers.keys(), request.headers, false);
6777
- let responseHeader = this.createObject(response.headers.keys(), response.headers, false);
6778
- let _localStorage = this.createObject(Object.keys(localStorage).filter((key) => key !== this.smartDevToolName), localStorage, true);
6779
- let _sessionStorage = this.createObject(Object.keys(sessionStorage), sessionStorage, true);
6780
- let _cookies = this.cookieService.getAll();
6781
- this.descriptor.apiCalls = [
6782
- {
6783
- url: response.url,
6784
- requestBody: request.body,
6785
- requestHeader,
6786
- requestDate,
6787
- requestMethod: request.method,
6788
- responseBody: response.body ?? null,
6789
- responseHeader,
6790
- responseStatus: response.status,
6791
- responseStatusText: response.statusText,
6792
- responseDate,
6793
- localStorage: _localStorage,
6794
- sessionStorage: _sessionStorage,
6795
- cookies: _cookies,
6796
- },
6797
- ...this.descriptor.apiCalls,
6798
- ];
6799
- if (response.status !== 200) {
6800
- this.newErrorsCount++;
6801
- this.newErrorsCountChanged.next();
6802
- }
6803
- this.save();
6804
- }
6805
- clearErrors() {
6806
- this.newErrorsCount = 0;
6807
- this.newErrorsCountChanged.next();
6808
- }
6809
- createObject(keys, mapWithValues, useGetItem) {
6810
- let newObject = {};
6811
- keys.forEach((key) => {
6812
- if (useGetItem) {
6813
- newObject[key] = mapWithValues.getItem(key);
6814
- }
6815
- else {
6816
- newObject[key] = mapWithValues.get(key);
6817
- }
6818
- });
6819
- return newObject;
6820
- }
6821
- sanitizeByTime() {
6822
- let now = new Date();
6823
- this.descriptor.apiCalls = this.descriptor.apiCalls.filter((apiCall) => {
6824
- let hoursBetween;
6825
- if (typeof apiCall.requestDate === 'string') {
6826
- hoursBetween = Math.floor(Math.abs(now.getMilliseconds() - new Date(apiCall.requestDate).getMilliseconds()) / 36e5);
6827
- }
6828
- else {
6829
- hoursBetween = Math.floor(Math.abs(now.getMilliseconds() - apiCall.requestDate.getMilliseconds()) / 36e5);
6830
- }
6831
- return hoursBetween < this.hoursToSave;
6832
- });
6833
- }
6834
- sanitizeByLength() {
6835
- if (this.descriptor?.apiCalls && this.descriptor.apiCalls.length > this.maxNumOfSavedCalls) {
6836
- let length = this.descriptor.apiCalls.length;
6837
- this.descriptor.apiCalls.splice(this.maxNumOfSavedCalls - 1, length - this.maxNumOfSavedCalls);
6838
- }
6839
- }
6840
- save() {
6841
- try {
6842
- localStorage.setItem(this.smartDevToolName, JSON.stringify(this.descriptor));
6843
- this.descriptorChanged.next();
6844
- }
6845
- catch (error) {
6846
- // localStorage.setItem() throws a "QuotaExceededError" DOMException exception if the new value
6847
- // couldn't be set. (Setting could fail if, e.g., the user has disabled storage for the site,
6848
- // or if the quota has been exceeded.)
6849
- this.sanitizeByLength();
6850
- this.save();
6851
- }
6852
- }
6853
- clear() {
6854
- this.descriptor = {
6855
- apiCalls: [],
6856
- };
6857
- this.save();
6858
- }
6859
- getPureString() {
6860
- return localStorage.getItem(this.smartDevToolName);
6861
- }
6862
- }
6863
- SmartDevToolService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolService, deps: [{ token: SmartCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
6864
- SmartDevToolService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolService, providedIn: 'root' });
6865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolService, decorators: [{
6866
- type: Injectable,
6867
- args: [{
6868
- providedIn: 'root',
6869
- }]
6870
- }], ctorParameters: function () { return [{ type: SmartCookieService }]; } });
6871
- class SmartDevToolDatePipe extends DatePipe {
6872
- transform(value, format = 'yyyy.MM.dd. H:mm:ss') {
6873
- return super.transform(value, format);
6874
- }
6875
- }
6876
- SmartDevToolDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe });
6877
- SmartDevToolDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDatePipe, name: "smartDevToolDatePipe" });
6878
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDatePipe, decorators: [{
6879
- type: Pipe,
6880
- args: [{
6881
- name: 'smartDevToolDatePipe',
6882
- }]
6883
- }] });
6884
-
6885
- class SmartDevToolDialogService extends SmartdialogService {
6886
- constructor(dialog, router, service) {
6887
- super(dialog, router);
6888
- this.service = service;
6889
- this.update = this.service.descriptorChanged;
6890
- }
6891
- handleAfterClosed(result) { }
6892
- openDialog() {
6893
- const dialogData = {
6894
- content: {
6895
- title: '',
6896
- },
6897
- size: {},
6898
- customComponent: SmartDevToolDialogComponent,
6899
- };
6900
- this.createDialog(dialogData, SmartDevToolDialogComponent);
6901
- }
6902
- getData() {
6903
- return this.service.descriptor;
6904
- }
6905
- getPureString() {
6906
- return this.service.getPureString();
6907
- }
6908
- clear() {
6909
- this.service.clear();
6910
- }
6911
- }
6912
- SmartDevToolDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogService, deps: [{ token: i1$2.MatDialog }, { token: i2.Router }, { token: SmartDevToolService }], target: i0.ɵɵFactoryTarget.Injectable });
6913
- SmartDevToolDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogService, providedIn: 'root' });
6914
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogService, decorators: [{
6915
- type: Injectable,
6916
- args: [{
6917
- providedIn: 'root',
6918
- }]
6919
- }], ctorParameters: function () { return [{ type: i1$2.MatDialog }, { type: i2.Router }, { type: SmartDevToolService }]; } });
6920
-
6921
- class SmartDevToolDialogComponent {
6922
- constructor(service) {
6923
- this.service = service;
6924
- this._destroy$ = new Subject();
6925
- this.descriptor = this.service.getData();
6926
- this.service.update.pipe(takeUntil(this._destroy$)).subscribe(() => {
6927
- this.descriptor = this.service.getData();
6928
- });
6929
- this.service.service.clearErrors();
6930
- }
6931
- ngOnDestroy() {
6932
- this._destroy$.next();
6933
- }
6934
- clear() {
6935
- this.service.clear();
6936
- }
6937
- getBody(inp) {
6938
- return this.syntaxHighlight(inp);
6939
- }
6940
- syntaxHighlight(json) {
6941
- if (typeof json != 'string') {
6942
- json = JSON.stringify(json, undefined, 2);
6943
- }
6944
- json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
6945
- return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
6946
- var cls = 'number';
6947
- if (/^"/.test(match)) {
6948
- if (/:$/.test(match)) {
6949
- cls = 'key';
6950
- }
6951
- else {
6952
- cls = 'string';
6953
- }
6954
- }
6955
- else if (/true|false/.test(match)) {
6956
- cls = 'boolean';
6957
- }
6958
- else if (/null/.test(match)) {
6959
- cls = 'null';
6960
- }
6961
- return '<span class="' + cls + '">' + match + '</span>';
6962
- });
6963
- }
6964
- copy() {
6965
- copyToClipboard({
6966
- value: this.service.getPureString(),
6967
- });
6968
- }
6969
- close() {
6970
- this.service.closeDialog();
6971
- }
6972
- }
6973
- SmartDevToolDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogComponent, deps: [{ token: SmartDevToolDialogService }], target: i0.ɵɵFactoryTarget.Component });
6974
- SmartDevToolDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartDevToolDialogComponent, selector: "app-smart-dev-tool-dialog", ngImport: i0, template: "<div class=\"smartDevToolDialogContainer\">\r\n <div class=\"header\">\r\n <h2>Developer tool</h2>\r\n <button mat-icon-button title=\"close\" (click)=\"close()\">\r\n <smart-icon icon=\"close\"></smart-icon>\r\n </button>\r\n </div>\r\n <div class=\"requestsContainer\">\r\n <mat-accordion multi>\r\n <mat-expansion-panel\r\n class=\"requestCard\"\r\n [ngClass]=\"apiCall.responseStatus === 200 ? '' : 'hasError'\"\r\n *ngFor=\"let apiCall of descriptor?.apiCalls; let i = index\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"titlePanel\">\r\n <span class=\"date\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </span>\r\n <span class=\"urlText\">\r\n {{ apiCall.url }}\r\n </span>\r\n <div [ngClass]=\"apiCall.requestMethod\">\r\n {{ apiCall.requestMethod }}\r\n </div>\r\n <div [ngClass]=\"'statusCode-' + apiCall.responseStatus.toString()[0]\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <div>\r\n <div class=\"table\">\r\n <div class=\"row\">\r\n <div class=\"mainCol heading\">Request</div>\r\n <div class=\"mainCol heading\">Response</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.requestDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestHeader\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseHeader\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status text</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatusText }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestBody\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseBody\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Session Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Local Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Cookies</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.sessionStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.sessionStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.sessionStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.localStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.localStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.localStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.cookies\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.cookies)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.cookies\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n <div class=\"buttonsContainer\">\r\n <button color=\"primary\" mat-raised-button (click)=\"copy()\">Copy</button>\r\n <button color=\"warn\" mat-raised-button (click)=\"clear()\">Clear</button>\r\n </div>\r\n</div>\r\n", styles: [".smartDevToolDialogContainer{display:flex;flex-direction:column;gap:1rem;width:78vw;height:90vh}.header{display:flex;flex-direction:row;justify-content:space-between}.requestsContainer{display:flex;flex-direction:column;gap:1rem;flex:1;overflow:auto}.requestCard{background-color:var(--primary-lighter-color);padding:.5rem;border-radius:.5rem;display:flex;flex-direction:column}.table{display:flex;flex-direction:column;gap:.25rem}.row{display:flex;flex-direction:row;gap:1rem}.mainCol{flex:1;display:flex;flex-direction:row;gap:.5rem;overflow:auto}.heading{font-weight:700}.data{word-wrap:break-word}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}pre{outline:1px solid #000;padding:5px;margin:5px}.string{color:green}.number{color:#ff8c00}.boolean{color:#00f}.null{color:#f0f}.key{color:red}@media only screen and (max-width: 1000px){.row{flex-direction:column;gap:.5rem}.mainCol{flex-direction:column;overflow-x:auto;overflow-y:visible;flex:auto}.requestCard h4{font-size:small;overflow:auto}.smartDevToolDialogContainer{width:calc(80vw - 3rem)}}.hasError{background-color:var(--warn-lighter-color)}.titlePanel{flex:1;display:flex;flex-direction:row;gap:1rem}.urlText{flex:1;text-decoration:underline}.PATCH{color:#d38042}.DELETE{color:#a41e22}.GET{color:#0f6ab4}.POST{color:#10a54a}.PUT{color:#c5862b}.HEAD{color:#ffd20f}.statusCode-2{color:#5fb442}.statusCode-3{color:#5970f6}.statusCode-4{color:#ec6762}.statusCode-5{color:#f2a63b}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }], directives: [{ type: i4.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "smartDevToolDatePipe": SmartDevToolDatePipe } });
6975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogComponent, decorators: [{
6976
- type: Component,
6977
- args: [{ selector: 'app-smart-dev-tool-dialog', template: "<div class=\"smartDevToolDialogContainer\">\r\n <div class=\"header\">\r\n <h2>Developer tool</h2>\r\n <button mat-icon-button title=\"close\" (click)=\"close()\">\r\n <smart-icon icon=\"close\"></smart-icon>\r\n </button>\r\n </div>\r\n <div class=\"requestsContainer\">\r\n <mat-accordion multi>\r\n <mat-expansion-panel\r\n class=\"requestCard\"\r\n [ngClass]=\"apiCall.responseStatus === 200 ? '' : 'hasError'\"\r\n *ngFor=\"let apiCall of descriptor?.apiCalls; let i = index\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"titlePanel\">\r\n <span class=\"date\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </span>\r\n <span class=\"urlText\">\r\n {{ apiCall.url }}\r\n </span>\r\n <div [ngClass]=\"apiCall.requestMethod\">\r\n {{ apiCall.requestMethod }}\r\n </div>\r\n <div [ngClass]=\"'statusCode-' + apiCall.responseStatus.toString()[0]\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <div>\r\n <div class=\"table\">\r\n <div class=\"row\">\r\n <div class=\"mainCol heading\">Request</div>\r\n <div class=\"mainCol heading\">Response</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.requestDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestHeader\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseHeader\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status text</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatusText }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestBody\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseBody\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Session Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Local Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Cookies</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.sessionStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.sessionStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.sessionStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.localStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.localStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.localStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.cookies\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.cookies)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.cookies\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n <div class=\"buttonsContainer\">\r\n <button color=\"primary\" mat-raised-button (click)=\"copy()\">Copy</button>\r\n <button color=\"warn\" mat-raised-button (click)=\"clear()\">Clear</button>\r\n </div>\r\n</div>\r\n", styles: [".smartDevToolDialogContainer{display:flex;flex-direction:column;gap:1rem;width:78vw;height:90vh}.header{display:flex;flex-direction:row;justify-content:space-between}.requestsContainer{display:flex;flex-direction:column;gap:1rem;flex:1;overflow:auto}.requestCard{background-color:var(--primary-lighter-color);padding:.5rem;border-radius:.5rem;display:flex;flex-direction:column}.table{display:flex;flex-direction:column;gap:.25rem}.row{display:flex;flex-direction:row;gap:1rem}.mainCol{flex:1;display:flex;flex-direction:row;gap:.5rem;overflow:auto}.heading{font-weight:700}.data{word-wrap:break-word}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}pre{outline:1px solid #000;padding:5px;margin:5px}.string{color:green}.number{color:#ff8c00}.boolean{color:#00f}.null{color:#f0f}.key{color:red}@media only screen and (max-width: 1000px){.row{flex-direction:column;gap:.5rem}.mainCol{flex-direction:column;overflow-x:auto;overflow-y:visible;flex:auto}.requestCard h4{font-size:small;overflow:auto}.smartDevToolDialogContainer{width:calc(80vw - 3rem)}}.hasError{background-color:var(--warn-lighter-color)}.titlePanel{flex:1;display:flex;flex-direction:row;gap:1rem}.urlText{flex:1;text-decoration:underline}.PATCH{color:#d38042}.DELETE{color:#a41e22}.GET{color:#0f6ab4}.POST{color:#10a54a}.PUT{color:#c5862b}.HEAD{color:#ffd20f}.statusCode-2{color:#5fb442}.statusCode-3{color:#5970f6}.statusCode-4{color:#ec6762}.statusCode-5{color:#f2a63b}\n"] }]
6978
- }], ctorParameters: function () { return [{ type: SmartDevToolDialogService }]; } });
6979
- const copyToClipboard = async ({ target, message, value }) => {
6980
- try {
6981
- let copyValue = '';
6982
- if (!navigator.clipboard) {
6983
- throw new Error("Browser don't have support for native clipboard.");
6984
- }
6985
- if (target) {
6986
- const node = document.querySelector(target);
6987
- if (!node || !node.textContent) {
6988
- throw new Error('Element not found');
6989
- }
6990
- value = node.textContent;
6991
- }
6992
- if (value) {
6993
- copyValue = value;
6994
- }
6995
- await navigator.clipboard.writeText(copyValue);
6996
- }
6997
- catch (error) {
6998
- console.error(error.toString());
6999
- }
7000
- };
7001
-
7002
- class SmartDevToolFloatingButtonComponent {
7003
- constructor(service) {
7004
- this.service = service;
7005
- this._destroy$ = new Subject();
7006
- this.adminKeyName = 'useDevTool';
7007
- this.isShown = false;
7008
- this.errorsCount = '';
7009
- this.service.service.newErrorsCountChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
7010
- this.errorsCount = `${this.service.service.newErrorsCount > 0 ? this.service.service.newErrorsCount : ''}`;
7011
- });
7012
- window.addEventListener('storage', (event) => {
7013
- if (event.storageArea === localStorage) {
7014
- if (Object.keys(localStorage).includes(this.adminKeyName)) {
7015
- this.isShown = localStorage.getItem(this.adminKeyName) === 'true';
7016
- }
7017
- }
7018
- });
7019
- this.isShown = localStorage.getItem(this.adminKeyName) === 'true';
7020
- }
7021
- ngOnDestroy() {
7022
- this._destroy$.next();
7023
- }
7024
- openDevToolDialog() {
7025
- this.service.openDialog();
7026
- }
7027
- }
7028
- SmartDevToolFloatingButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolFloatingButtonComponent, deps: [{ token: SmartDevToolDialogService }], target: i0.ɵɵFactoryTarget.Component });
7029
- SmartDevToolFloatingButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartDevToolFloatingButtonComponent, selector: "smart-session-dev-tool", ngImport: i0, template: "<button\r\n *ngIf=\"isShown\"\r\n mat-fab\r\n [color]=\"errorsCount.length ? 'warn' : 'accent'\"\r\n class=\"floatingButton\"\r\n extended\r\n title=\"devTool\"\r\n (click)=\"openDevToolDialog()\"\r\n>\r\n <smart-icon color=\"white\" icon=\"developer_mode\"></smart-icon>\r\n {{ errorsCount }}\r\n</button>\r\n", styles: [".floatingButton{position:fixed;right:2rem;bottom:2rem}.mat-icon.mat-white{color:#fff}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
7030
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolFloatingButtonComponent, decorators: [{
7031
- type: Component,
7032
- args: [{ selector: 'smart-session-dev-tool', template: "<button\r\n *ngIf=\"isShown\"\r\n mat-fab\r\n [color]=\"errorsCount.length ? 'warn' : 'accent'\"\r\n class=\"floatingButton\"\r\n extended\r\n title=\"devTool\"\r\n (click)=\"openDevToolDialog()\"\r\n>\r\n <smart-icon color=\"white\" icon=\"developer_mode\"></smart-icon>\r\n {{ errorsCount }}\r\n</button>\r\n", styles: [".floatingButton{position:fixed;right:2rem;bottom:2rem}.mat-icon.mat-white{color:#fff}\n"] }]
7033
- }], ctorParameters: function () { return [{ type: SmartDevToolDialogService }]; } });
7034
-
7035
- class SmartDevToolInterceptor {
7036
- constructor(service) {
7037
- this.service = service;
7038
- }
7039
- intercept(request, next) {
7040
- if (!this.service.isActive) {
7041
- return next.handle(request);
7042
- }
7043
- let requestDate = new Date();
7044
- return next.handle(request).pipe(map((event) => {
7045
- if (event.type === HttpEventType.Response) {
7046
- let responseDate = new Date();
7047
- this.service.writeResponse(request, event, requestDate, responseDate);
7048
- }
7049
- return event;
7050
- }));
7051
- }
7052
- }
7053
- SmartDevToolInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolInterceptor, deps: [{ token: SmartDevToolService }], target: i0.ɵɵFactoryTarget.Injectable });
7054
- SmartDevToolInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolInterceptor });
7055
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolInterceptor, decorators: [{
7056
- type: Injectable
7057
- }], ctorParameters: function () { return [{ type: SmartDevToolService }]; } });
7058
- class SmartDevToolErrorInterceptor {
7059
- constructor(service) {
7060
- this.service = service;
7061
- }
7062
- intercept(request, next) {
7063
- if (!this.service.isActive) {
7064
- return next.handle(request);
7065
- }
7066
- let requestDate = new Date();
7067
- return next.handle(request).pipe(catchError((error) => {
7068
- if (error.status !== 200) {
7069
- let responseDate = new Date();
7070
- this.service.writeResponse(request, error, requestDate, responseDate);
7071
- }
7072
- return throwError(error);
7073
- }));
7074
- }
7075
- }
7076
- SmartDevToolErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolErrorInterceptor, deps: [{ token: SmartDevToolService }], target: i0.ɵɵFactoryTarget.Injectable });
7077
- SmartDevToolErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolErrorInterceptor });
7078
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolErrorInterceptor, decorators: [{
7079
- type: Injectable
7080
- }], ctorParameters: function () { return [{ type: SmartDevToolService }]; } });
7081
-
7082
6743
  var SessionErrorBehaviour;
7083
6744
  (function (SessionErrorBehaviour) {
7084
6745
  SessionErrorBehaviour[SessionErrorBehaviour["REFRESH"] = 0] = "REFRESH";
@@ -7200,7 +6861,7 @@ class SmartErrorCatchingInterceptor {
7200
6861
  ];
7201
6862
  }
7202
6863
  intercept(request, next) {
7203
- return next.handle(request).pipe(catchError$1((error) => {
6864
+ return next.handle(request).pipe(catchError((error) => {
7204
6865
  if (error.status === 400 && error.error.code) {
7205
6866
  let sessionError = this.sessionErrorCodes.find((sessionError) => sessionError.code === error.error.code);
7206
6867
  if (sessionError) {
@@ -7276,10 +6937,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
7276
6937
  class SmartSessionModule {
7277
6938
  }
7278
6939
  SmartSessionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartSessionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7279
- SmartSessionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartSessionModule, declarations: [SmartDevToolDialogComponent,
7280
- SmartDevToolFloatingButtonComponent,
7281
- SmartDevToolDatePipe,
7282
- SmartSessionTimerComponent], imports: [BrowserModule, MatCommonModule, MatExpansionModule, MatButtonModule, SmartIconModule], exports: [SmartDevToolFloatingButtonComponent, SmartSessionTimerComponent] });
6940
+ SmartSessionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartSessionModule, declarations: [SmartSessionTimerComponent], imports: [BrowserModule, MatCommonModule, MatExpansionModule, MatButtonModule, SmartIconModule], exports: [SmartSessionTimerComponent] });
7283
6941
  SmartSessionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartSessionModule, providers: [
7284
6942
  SmartCookieService,
7285
6943
  SmartSessionService,
@@ -7294,20 +6952,13 @@ SmartSessionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
7294
6952
  useClass: SmartHeaderMaintainerInterceptor,
7295
6953
  multi: true,
7296
6954
  },
7297
- { provide: HTTP_INTERCEPTORS, useClass: SmartDevToolInterceptor, multi: true },
7298
- { provide: HTTP_INTERCEPTORS, useClass: SmartDevToolErrorInterceptor, multi: true },
7299
6955
  ], imports: [[BrowserModule, MatCommonModule, MatExpansionModule, MatButtonModule, SmartIconModule]] });
7300
6956
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartSessionModule, decorators: [{
7301
6957
  type: NgModule,
7302
6958
  args: [{
7303
- declarations: [
7304
- SmartDevToolDialogComponent,
7305
- SmartDevToolFloatingButtonComponent,
7306
- SmartDevToolDatePipe,
7307
- SmartSessionTimerComponent,
7308
- ],
6959
+ declarations: [SmartSessionTimerComponent],
7309
6960
  imports: [BrowserModule, MatCommonModule, MatExpansionModule, MatButtonModule, SmartIconModule],
7310
- exports: [SmartDevToolFloatingButtonComponent, SmartSessionTimerComponent],
6961
+ exports: [SmartSessionTimerComponent],
7311
6962
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
7312
6963
  providers: [
7313
6964
  SmartCookieService,
@@ -7323,8 +6974,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
7323
6974
  useClass: SmartHeaderMaintainerInterceptor,
7324
6975
  multi: true,
7325
6976
  },
7326
- { provide: HTTP_INTERCEPTORS, useClass: SmartDevToolInterceptor, multi: true },
7327
- { provide: HTTP_INTERCEPTORS, useClass: SmartDevToolErrorInterceptor, multi: true },
7328
6977
  ],
7329
6978
  }]
7330
6979
  }] });
@@ -7429,7 +7078,7 @@ class SmartViewContextInterceptor {
7429
7078
  }
7430
7079
  catch (error) { }
7431
7080
  }
7432
- return next.handle(request).pipe(catchError((error) => {
7081
+ return next.handle(request).pipe(catchError$1((error) => {
7433
7082
  if (error.status === 409 &&
7434
7083
  (error.error.code || error.error.message)) {
7435
7084
  this.openErrorDialog(error.error);
@@ -9768,7 +9417,7 @@ class ExpandableSectionComponent {
9768
9417
  }
9769
9418
  }
9770
9419
  ExpandableSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ExpandableSectionComponent, deps: [{ token: ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component });
9771
- ExpandableSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: { data: "data", index: "index" }, viewQueries: [{ propertyName: "vcRef", first: true, predicate: ["renderComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "vcRefheader", first: true, predicate: ["headerComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"section-container\" [ngClass]=\"data.cssClass ?? ''\">\r\n <mat-expansion-panel\r\n [expanded]=\"data.isExpanded\"\r\n (opened)=\"onStateChange(true)\"\r\n (closed)=\"onStateChange(false)\"\r\n >\r\n <mat-expansion-panel-header *ngIf=\"data.headerComponent\">\r\n <ng-template #headerComponent></ng-template>\r\n </mat-expansion-panel-header>\r\n <mat-expansion-panel-header *ngIf=\"!data.headerComponent\">\r\n <mat-panel-title> {{ data.title }} </mat-panel-title>\r\n <div class=\"btn-container\" *ngIf=\"data.button\">\r\n <button\r\n *ngIf=\"data.button.type === type().BUTTON\"\r\n class=\"btn\"\r\n (click)=\"action(data.button, $event)\"\r\n mat-stroked-button\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n data.button.icon &&\r\n (!data.button.iconPosition ||\r\n data.button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n {{ data.button.label }}\r\n <smart-icon\r\n *ngIf=\"data.button.icon && data.button.iconPosition === position().POST\"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n </button>\r\n <button\r\n *ngIf=\"data.button.type === type().MENU\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"$event.stopPropagation()\"\r\n color=\"{{ data.button.color }}\"\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n data.button.icon &&\r\n (!data.button.iconPosition ||\r\n data.button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon\r\n >{{ data.button.label }}\r\n <smart-icon\r\n *ngIf=\"data.button.icon && data.button.iconPosition === position().POST\"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of data.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, data.index)\"\r\n mat-menu-item\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n button.icon &&\r\n (!button.iconPosition || button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"button.icon\"\r\n ></smart-icon\r\n >{{ button.label }}\r\n <smart-icon\r\n *ngIf=\"button.icon && button.iconPosition === position().POST\"\r\n [icon]=\"button.icon\"\r\n ></smart-icon>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-template #renderComponent></ng-template>\r\n </mat-expansion-panel>\r\n</div>\r\n", styles: [".section-container{margin-bottom:50px}:host::ng-deep .mat-expansion-panel-header{background:var(--primary-lighter-color)}:host::ng-deep .mat-expansion-panel-header-title{color:var(--primary-color)}:host::ng-deep .btn-container{margin:1em 3em 1em 1em}:host::ng-deep .btn{border-radius:24px}\n"], components: [{ type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
9420
+ ExpandableSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: { data: "data", index: "index" }, viewQueries: [{ propertyName: "vcRef", first: true, predicate: ["renderComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "vcRefheader", first: true, predicate: ["headerComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"section-container\" [ngClass]=\"data.cssClass ?? ''\">\r\n <mat-expansion-panel\r\n [expanded]=\"data.isExpanded\"\r\n (opened)=\"onStateChange(true)\"\r\n (closed)=\"onStateChange(false)\"\r\n >\r\n <mat-expansion-panel-header *ngIf=\"data.headerComponent\">\r\n <ng-template #headerComponent></ng-template>\r\n </mat-expansion-panel-header>\r\n <mat-expansion-panel-header *ngIf=\"!data.headerComponent\">\r\n <mat-panel-title> {{ data.title }} </mat-panel-title>\r\n <div class=\"btn-container\" *ngIf=\"data.button\">\r\n <button\r\n *ngIf=\"data.button.type === type().BUTTON\"\r\n class=\"btn\"\r\n (click)=\"action(data.button, $event)\"\r\n mat-stroked-button\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n data.button.icon &&\r\n (!data.button.iconPosition ||\r\n data.button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n {{ data.button.label }}\r\n <smart-icon\r\n *ngIf=\"data.button.icon && data.button.iconPosition === position().POST\"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n </button>\r\n <button\r\n *ngIf=\"data.button.type === type().MENU\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"$event.stopPropagation()\"\r\n color=\"{{ data.button.color }}\"\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n data.button.icon &&\r\n (!data.button.iconPosition ||\r\n data.button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon\r\n >{{ data.button.label }}\r\n <smart-icon\r\n *ngIf=\"data.button.icon && data.button.iconPosition === position().POST\"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of data.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, data.index)\"\r\n mat-menu-item\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n button.icon &&\r\n (!button.iconPosition || button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"button.icon\"\r\n ></smart-icon\r\n >{{ button.label }}\r\n <smart-icon\r\n *ngIf=\"button.icon && button.iconPosition === position().POST\"\r\n [icon]=\"button.icon\"\r\n ></smart-icon>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-template #renderComponent></ng-template>\r\n </mat-expansion-panel>\r\n</div>\r\n", styles: [".section-container{margin-bottom:50px}:host::ng-deep .mat-expansion-panel-header{background:var(--primary-lighter-color)}:host::ng-deep .mat-expansion-panel-header-title{color:var(--primary-color)}:host::ng-deep .btn-container{margin:1em 3em 1em 1em}:host::ng-deep .btn{border-radius:24px}\n"], components: [{ type: i2$6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i2$6.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$6.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
9772
9421
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ExpandableSectionComponent, decorators: [{
9773
9422
  type: Component,
9774
9423
  args: [{ selector: 'smart-expandable-section', template: "<div class=\"section-container\" [ngClass]=\"data.cssClass ?? ''\">\r\n <mat-expansion-panel\r\n [expanded]=\"data.isExpanded\"\r\n (opened)=\"onStateChange(true)\"\r\n (closed)=\"onStateChange(false)\"\r\n >\r\n <mat-expansion-panel-header *ngIf=\"data.headerComponent\">\r\n <ng-template #headerComponent></ng-template>\r\n </mat-expansion-panel-header>\r\n <mat-expansion-panel-header *ngIf=\"!data.headerComponent\">\r\n <mat-panel-title> {{ data.title }} </mat-panel-title>\r\n <div class=\"btn-container\" *ngIf=\"data.button\">\r\n <button\r\n *ngIf=\"data.button.type === type().BUTTON\"\r\n class=\"btn\"\r\n (click)=\"action(data.button, $event)\"\r\n mat-stroked-button\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n data.button.icon &&\r\n (!data.button.iconPosition ||\r\n data.button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n {{ data.button.label }}\r\n <smart-icon\r\n *ngIf=\"data.button.icon && data.button.iconPosition === position().POST\"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n </button>\r\n <button\r\n *ngIf=\"data.button.type === type().MENU\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"$event.stopPropagation()\"\r\n color=\"{{ data.button.color }}\"\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n data.button.icon &&\r\n (!data.button.iconPosition ||\r\n data.button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon\r\n >{{ data.button.label }}\r\n <smart-icon\r\n *ngIf=\"data.button.icon && data.button.iconPosition === position().POST\"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of data.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, data.index)\"\r\n mat-menu-item\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n button.icon &&\r\n (!button.iconPosition || button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"button.icon\"\r\n ></smart-icon\r\n >{{ button.label }}\r\n <smart-icon\r\n *ngIf=\"button.icon && button.iconPosition === position().POST\"\r\n [icon]=\"button.icon\"\r\n ></smart-icon>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-template #renderComponent></ng-template>\r\n </mat-expansion-panel>\r\n</div>\r\n", styles: [".section-container{margin-bottom:50px}:host::ng-deep .mat-expansion-panel-header{background:var(--primary-lighter-color)}:host::ng-deep .mat-expansion-panel-header-title{color:var(--primary-color)}:host::ng-deep .btn-container{margin:1em 3em 1em 1em}:host::ng-deep .btn{border-radius:24px}\n"] }]
@@ -11310,6 +10959,20 @@ class SmartGridComponent {
11310
10959
  expandedComponent: this.smartGrid.expandedComponent,
11311
10960
  type: SmartTableInterfaceTypeEnum.NORMAL,
11312
10961
  sortable: true,
10962
+ defaultActions: this.smartGrid?.gridModel.defaultRowActions?.map((code) => {
10963
+ return {
10964
+ type: code === '_actionSeparator_'
10965
+ ? SmartTableButtonType.SEPARATOR
10966
+ : SmartTableButtonType.NORMAL,
10967
+ callback: this.execute.bind(this),
10968
+ label: this.buttonTranslator({ code: code }),
10969
+ args: [
10970
+ {
10971
+ code: code,
10972
+ },
10973
+ ],
10974
+ };
10975
+ }),
11313
10976
  };
11314
10977
  if (this.smartGrid.uiActionService &&
11315
10978
  this.smartGrid.uiActionDescriptorService &&
@@ -11620,10 +11283,10 @@ class SmartGridComponent {
11620
11283
  }
11621
11284
  }
11622
11285
  SmartGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartGridComponent, deps: [{ token: SmartGridService }, { token: ComponentFactoryService }, { token: i1$2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
11623
- SmartGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartGridComponent, selector: "smart-grid", inputs: { smartGrid: "smartGrid", uuid: "uuid", dev: "dev" }, providers: [SmartGridService], viewQueries: [{ propertyName: "vcRefTable", first: true, predicate: ["table"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartGrid\" class=\"smartGrid-container\">\r\n <div class=\"smart-grid-edit-button\" *ngIf=\"smartGrid.showEditColumns\">\r\n <button (click)=\"editColumns()\" mat-raised-button color=\"primary\">\r\n Oszlopok testreszab\u00E1sa\r\n </button>\r\n </div>\r\n <!-- <div [ngClass]=\"isBlocked ? 'blocked' : ''\"></div> -->\r\n <div class=\"smartGridContent\">\r\n <div>\r\n <div *ngIf=\"smartGrid.showResultCount\">\r\n <div class=\"smartGrid-data-number\">\r\n {{ smartGrid.gridModel.totalRowCount }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"smart-grid-table-container\">\r\n <ng-template #table></ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"smartGrid.layoutDef === layoutDef().EXPANDABLE\">\r\n <smart-expandable-section\r\n #gridExpandableSection\r\n *ngFor=\"let expandableSection of expandableSections\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().CARD\"\r\n class=\"cards-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <app-smart-grid-card\r\n class=\"smartGrid-card-container\"\r\n *ngFor=\"let task of smartGrid.gridModel.page.rows\"\r\n [item]=\"task\"\r\n [smartGrid]=\"smartGrid\"\r\n ></app-smart-grid-card>\r\n </div>\r\n </div>\r\n\r\n <mat-paginator\r\n *ngIf=\"smartGrid.paginator\"\r\n #paginator\r\n [length]=\"length\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n (page)=\"onChangePage($event)\"\r\n ></mat-paginator>\r\n</div>\r\n", styles: [".smartGrid-container{position:relative;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.smartGrid-data-number{padding-bottom:1rem}.cards-container{display:grid;grid-gap:1rem;gap:1rem;padding:1rem}.smartGrid-card-container{height:auto;border:1px solid black;border-radius:8px}.smartGrid-container ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-underline{bottom:0}.smartGridContent{width:100%;flex:1;overflow:auto}.blocked{position:absolute;width:calc(100% - 3rem);height:calc(100% - 3rem);z-index:110;background-color:#0003}.smart-grid-table-container{display:flex;flex-direction:column;gap:1rem}.smart-grid-edit-button{display:flex;flex-direction:row;justify-content:flex-end}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { type: SmartGridCardComponent, selector: "app-smart-grid-card", inputs: ["item", "smartGrid"] }, { type: i7$1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
11286
+ SmartGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartGridComponent, selector: "smart-grid", inputs: { smartGrid: "smartGrid", uuid: "uuid", dev: "dev" }, providers: [SmartGridService], viewQueries: [{ propertyName: "vcRefTable", first: true, predicate: ["table"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartGrid\" class=\"smartGrid-container\">\r\n <div class=\"smart-grid-edit-button\" *ngIf=\"smartGrid.showEditColumns\">\r\n <button (click)=\"editColumns()\" mat-raised-button color=\"primary\">\r\n Oszlopok testreszab\u00E1sa\r\n </button>\r\n </div>\r\n <!-- <div [ngClass]=\"isBlocked ? 'blocked' : ''\"></div> -->\r\n <div class=\"smartGridContent\">\r\n <div>\r\n <div *ngIf=\"smartGrid.showResultCount\">\r\n <div class=\"smartGrid-data-number\">\r\n {{ smartGrid.gridModel.totalRowCount }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"smart-grid-table-container\">\r\n <ng-template #table></ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"smartGrid.layoutDef === layoutDef().EXPANDABLE\">\r\n <smart-expandable-section\r\n #gridExpandableSection\r\n *ngFor=\"let expandableSection of expandableSections\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().CARD\"\r\n class=\"cards-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <app-smart-grid-card\r\n class=\"smartGrid-card-container\"\r\n *ngFor=\"let task of smartGrid.gridModel.page.rows\"\r\n [item]=\"task\"\r\n [smartGrid]=\"smartGrid\"\r\n ></app-smart-grid-card>\r\n </div>\r\n </div>\r\n\r\n <mat-paginator\r\n *ngIf=\"smartGrid.paginator\"\r\n #paginator\r\n [length]=\"length\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n (page)=\"onChangePage($event)\"\r\n ></mat-paginator>\r\n</div>\r\n", styles: [""], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { type: SmartGridCardComponent, selector: "app-smart-grid-card", inputs: ["item", "smartGrid"] }, { type: i7$2.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
11624
11287
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartGridComponent, decorators: [{
11625
11288
  type: Component,
11626
- args: [{ selector: 'smart-grid', providers: [SmartGridService], template: "<div *ngIf=\"smartGrid\" class=\"smartGrid-container\">\r\n <div class=\"smart-grid-edit-button\" *ngIf=\"smartGrid.showEditColumns\">\r\n <button (click)=\"editColumns()\" mat-raised-button color=\"primary\">\r\n Oszlopok testreszab\u00E1sa\r\n </button>\r\n </div>\r\n <!-- <div [ngClass]=\"isBlocked ? 'blocked' : ''\"></div> -->\r\n <div class=\"smartGridContent\">\r\n <div>\r\n <div *ngIf=\"smartGrid.showResultCount\">\r\n <div class=\"smartGrid-data-number\">\r\n {{ smartGrid.gridModel.totalRowCount }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"smart-grid-table-container\">\r\n <ng-template #table></ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"smartGrid.layoutDef === layoutDef().EXPANDABLE\">\r\n <smart-expandable-section\r\n #gridExpandableSection\r\n *ngFor=\"let expandableSection of expandableSections\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().CARD\"\r\n class=\"cards-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <app-smart-grid-card\r\n class=\"smartGrid-card-container\"\r\n *ngFor=\"let task of smartGrid.gridModel.page.rows\"\r\n [item]=\"task\"\r\n [smartGrid]=\"smartGrid\"\r\n ></app-smart-grid-card>\r\n </div>\r\n </div>\r\n\r\n <mat-paginator\r\n *ngIf=\"smartGrid.paginator\"\r\n #paginator\r\n [length]=\"length\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n (page)=\"onChangePage($event)\"\r\n ></mat-paginator>\r\n</div>\r\n", styles: [".smartGrid-container{position:relative;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.smartGrid-data-number{padding-bottom:1rem}.cards-container{display:grid;grid-gap:1rem;gap:1rem;padding:1rem}.smartGrid-card-container{height:auto;border:1px solid black;border-radius:8px}.smartGrid-container ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-underline{bottom:0}.smartGridContent{width:100%;flex:1;overflow:auto}.blocked{position:absolute;width:calc(100% - 3rem);height:calc(100% - 3rem);z-index:110;background-color:#0003}.smart-grid-table-container{display:flex;flex-direction:column;gap:1rem}.smart-grid-edit-button{display:flex;flex-direction:row;justify-content:flex-end}\n"] }]
11289
+ args: [{ selector: 'smart-grid', providers: [SmartGridService], template: "<div *ngIf=\"smartGrid\" class=\"smartGrid-container\">\r\n <div class=\"smart-grid-edit-button\" *ngIf=\"smartGrid.showEditColumns\">\r\n <button (click)=\"editColumns()\" mat-raised-button color=\"primary\">\r\n Oszlopok testreszab\u00E1sa\r\n </button>\r\n </div>\r\n <!-- <div [ngClass]=\"isBlocked ? 'blocked' : ''\"></div> -->\r\n <div class=\"smartGridContent\">\r\n <div>\r\n <div *ngIf=\"smartGrid.showResultCount\">\r\n <div class=\"smartGrid-data-number\">\r\n {{ smartGrid.gridModel.totalRowCount }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"smart-grid-table-container\">\r\n <ng-template #table></ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"smartGrid.layoutDef === layoutDef().EXPANDABLE\">\r\n <smart-expandable-section\r\n #gridExpandableSection\r\n *ngFor=\"let expandableSection of expandableSections\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().CARD\"\r\n class=\"cards-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <app-smart-grid-card\r\n class=\"smartGrid-card-container\"\r\n *ngFor=\"let task of smartGrid.gridModel.page.rows\"\r\n [item]=\"task\"\r\n [smartGrid]=\"smartGrid\"\r\n ></app-smart-grid-card>\r\n </div>\r\n </div>\r\n\r\n <mat-paginator\r\n *ngIf=\"smartGrid.paginator\"\r\n #paginator\r\n [length]=\"length\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n (page)=\"onChangePage($event)\"\r\n ></mat-paginator>\r\n</div>\r\n", styles: [""] }]
11627
11290
  }], ctorParameters: function () { return [{ type: SmartGridService }, { type: ComponentFactoryService }, { type: i1$2.MatDialog }]; }, propDecorators: { smartGrid: [{
11628
11291
  type: Input
11629
11292
  }], uuid: [{
@@ -13052,5 +12715,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13052
12715
  * Generated bundle index. Do not edit.
13053
12716
  */
13054
12717
 
13055
- export { APIS$3 as APIS, ApiModule$3 as ApiModule, ApiQueueService, BASE_PATH$4 as BASE_PATH, COLLECTION_FORMATS$4 as COLLECTION_FORMATS, CloseResult, ComponentFactoryService, ComponentFactoryServiceModule, ComponentType, ComponentWidgetType, Configuration$4 as Configuration, DIALOG_DISABLE_CLOSE, DataChangeKind, DefaultUiActionCode_CLOSE, ExpandableSectionButtonIconPosition, ExpandableSectionButtonType, ExpandableSectionComponent, FilterExpressionBoolOperator, FilterExpressionBuilderGroup, FilterExpressionDataType, FilterExpressionFieldWidgetType, FilterExpressionOperation, FilterExpressionOrderBy, GridColumnContentType, GridDataAccessConfig, GridSelectionMode, GridSelectionType, GridUiActionType, GridViewDescriptor, IS_ASYNC_PARAM_NAME, ImageResource, LayoutDirection, Link, MessageOptionType, MessageType, SelectionDefinition, SessionAPIS, SessionErrorBehaviour, SessionService, SimplifiedTabGroupComponent, SmartActionType, SmartAuthService, SmartComponent, SmartComponentApiClient, SmartComponentLayoutComponent, SmartComponentLayoutModule, SmartComponentLayoutUtility, SmartDatePipe, SmartDateTimePipe, SmartDevToolDatePipe, SmartDevToolFloatingButtonComponent, SmartDevToolService, SmartDialog, SmartExpandableSectionModule, SmartExpandableSectionService, SmartFileUploaderComponent, SmartFilterComponent, SmartFilterModule, SmartFilterPosition, SmartFilterType, SmartFormTextFieldButtonIconPosition, SmartFormWidgetDirection, SmartFormWidgetType, SmartFormWidgetWidth, SmartGridButtonType, SmartGridComponent, SmartGridDataLayout, SmartGridModule, SmartGridService, SmartGridType, SmartIconComponent, SmartIconModule, SmartIconService, SmartLayoutDef, SmartLinkChannelVariableInPath, SmartLinkUuidVariableInPath, SmartNavbarComponent, SmartNavbarModule, SmartNavbarService, SmartNavigationModule, SmartNavigationService, SmartNgClientModule, SmartNgClientService, SmartService, SmartSessionModule, SmartSessionService, SmartSessionTimerComponent, SmartSessionTimerService, SmartSubject, SmartTabGroupModule, SmartTabGroupService, SmartTable, SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableInterfaceTypeEnum, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, SmartTimePipe, SmartTreeComponent, SmartTreeNodeButtonType, SmartUserSettinsIconPosition, SmartValidatorName, SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, SmartViewContextModule, SmartViewContextService, SmartViewRedirect, SmartWidgetHintPosition, SmartWidgetSettings, SmartdialogModule, SmartdialogService, SmartfileuploaderComponent, SmartformComponent, SmartformLayoutDefinitionService, SmartformModule, SmartformwidgetComponent, SmarttableComponent, SmarttableModule, SmarttableService, SmarttreeGenericService, SmarttreeModule, SmarttreeService, TabGroupComponent, ToggleLabelPosition, UiActionButtonIconPos, UiActionButtonType, UiActionConfirmDialogComponent, UiActionConfirmDialogService, UiActionDescriptorService, UiActionDialogType, UiActionFeedbackType, UiActionInputDialogComponent, UiActionInputDialogService, UiActionInputType, UiActionService, UiActionToolbarComponent, ViewEventHandler, ViewService, ViewState, ViewType, WidgetMap };
12718
+ export { APIS$3 as APIS, ApiModule$3 as ApiModule, ApiQueueService, BASE_PATH$4 as BASE_PATH, COLLECTION_FORMATS$4 as COLLECTION_FORMATS, CloseResult, ComponentFactoryService, ComponentFactoryServiceModule, ComponentType, ComponentWidgetType, Configuration$4 as Configuration, DIALOG_DISABLE_CLOSE, DataChangeKind, DefaultUiActionCode_CLOSE, ExpandableSectionButtonIconPosition, ExpandableSectionButtonType, ExpandableSectionComponent, FilterExpressionBoolOperator, FilterExpressionBuilderGroup, FilterExpressionDataType, FilterExpressionFieldWidgetType, FilterExpressionOperation, FilterExpressionOrderBy, GridColumnContentType, GridDataAccessConfig, GridSelectionMode, GridSelectionType, GridUiActionType, GridViewDescriptor, IS_ASYNC_PARAM_NAME, ImageResource, LayoutDirection, Link, MessageOptionType, MessageType, SelectionDefinition, SessionAPIS, SessionErrorBehaviour, SessionService, SimplifiedTabGroupComponent, SmartActionType, SmartAuthService, SmartComponent, SmartComponentApiClient, SmartComponentLayoutComponent, SmartComponentLayoutModule, SmartComponentLayoutUtility, SmartDatePipe, SmartDateTimePipe, SmartDialog, SmartExpandableSectionModule, SmartExpandableSectionService, SmartFileUploaderComponent, SmartFilterComponent, SmartFilterModule, SmartFilterPosition, SmartFilterType, SmartFormTextFieldButtonIconPosition, SmartFormWidgetDirection, SmartFormWidgetType, SmartFormWidgetWidth, SmartGridButtonType, SmartGridComponent, SmartGridDataLayout, SmartGridModule, SmartGridService, SmartGridType, SmartIconComponent, SmartIconModule, SmartIconService, SmartLayoutDef, SmartLinkChannelVariableInPath, SmartLinkUuidVariableInPath, SmartNavbarComponent, SmartNavbarModule, SmartNavbarService, SmartNavigationModule, SmartNavigationService, SmartNgClientModule, SmartNgClientService, SmartService, SmartSessionModule, SmartSessionService, SmartSessionTimerComponent, SmartSessionTimerService, SmartSubject, SmartTabGroupModule, SmartTabGroupService, SmartTable, SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableInterfaceTypeEnum, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, SmartTimePipe, SmartTreeComponent, SmartTreeNodeButtonType, SmartUserSettinsIconPosition, SmartValidatorName, SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, SmartViewContextModule, SmartViewContextService, SmartViewRedirect, SmartWidgetHintPosition, SmartWidgetSettings, SmartdialogModule, SmartdialogService, SmartfileuploaderComponent, SmartformComponent, SmartformLayoutDefinitionService, SmartformModule, SmartformwidgetComponent, SmarttableComponent, SmarttableModule, SmarttableService, SmarttreeGenericService, SmarttreeModule, SmarttreeService, TabGroupComponent, ToggleLabelPosition, UiActionButtonIconPos, UiActionButtonType, UiActionConfirmDialogComponent, UiActionConfirmDialogService, UiActionDescriptorService, UiActionDialogType, UiActionFeedbackType, UiActionInputDialogComponent, UiActionInputDialogService, UiActionInputType, UiActionService, UiActionToolbarComponent, ViewEventHandler, ViewService, ViewState, ViewType, WidgetMap };
13056
12719
  //# sourceMappingURL=smartbit4all-ng-client.mjs.map