@eo-sdk/client 11.0.0-rc.5 → 11.0.0-rc.7

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 (64) hide show
  1. package/app/eo-client/dashboard/dashboard.component.d.ts +2 -23
  2. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.d.ts +18 -0
  5. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.d.ts.map +1 -0
  6. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.d.ts +10 -0
  7. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.d.ts.map +1 -0
  8. package/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.d.ts +24 -0
  9. package/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.d.ts.map +1 -0
  10. package/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.d.ts +34 -0
  11. package/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.d.ts.map +1 -0
  12. package/app/eo-client/eo-client.module.d.ts +29 -24
  13. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  14. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
  15. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts +5 -1
  16. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts.map +1 -1
  17. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  18. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  19. package/app/eo-framework/media/media.component.d.ts +28 -3
  20. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  21. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  22. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  23. package/app/eo-framework/result-list/result-list.component.d.ts +3 -2
  24. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  25. package/app/eo-framework-core/api/grid.service.d.ts.map +1 -1
  26. package/assets/_default/i18n/de.json +9 -1
  27. package/assets/_default/i18n/en.json +8 -0
  28. package/assets/_default/svg/ic_noImage.svg +1 -0
  29. package/assets/_default/svg/ic_photo_library.svg +1 -0
  30. package/assets/_default/svg/ic_task.svg +1 -0
  31. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  32. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +16 -67
  33. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +5 -5
  34. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +4 -3
  35. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +4 -4
  36. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +4 -4
  37. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  38. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
  39. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +54 -0
  40. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +24 -0
  41. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +74 -0
  42. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +103 -0
  43. package/esm2022/app/eo-client/eo-client.module.mjs +22 -6
  44. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +18 -1
  45. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +23 -3
  46. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +10 -3
  47. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  48. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +4 -4
  49. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +2 -2
  50. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +2 -2
  51. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +2 -2
  52. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +2 -2
  53. package/esm2022/app/eo-framework/grid/grid.component.mjs +2 -2
  54. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +3 -1
  55. package/esm2022/app/eo-framework/media/media.component.mjs +97 -28
  56. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -2
  57. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  58. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +5 -1
  59. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +6 -1
  60. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +13 -2
  61. package/esm2022/app/eo-framework-core/api/grid.service.mjs +9 -4
  62. package/fesm2022/eo-sdk-client.mjs +445 -132
  63. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  64. package/package.json +2 -2
@@ -4,7 +4,7 @@ import * as i1$2 from '@angular/common';
4
4
  import { DecimalPipe, PercentPipe, CurrencyPipe, DatePipe, getLocaleDateTimeFormat, FormatWidth, getLocaleTimeFormat, getLocaleDateFormat, CommonModule } from '@angular/common';
5
5
  import * as i2 from '@angular/common/http';
6
6
  import { HttpResponse, HttpErrorResponse, HttpClientModule, HTTP_INTERCEPTORS, HttpHeaders } from '@angular/common/http';
7
- import { ReplaySubject, BehaviorSubject, from, forkJoin, of, Subject, fromEvent, firstValueFrom, AsyncSubject, Observable, debounceTime as debounceTime$1, tap as tap$1, EMPTY, map as map$2, skip, switchMap as switchMap$1, catchError as catchError$1 } from 'rxjs';
7
+ import { ReplaySubject, BehaviorSubject, from, forkJoin, of, Subject, tap as tap$1, fromEvent, firstValueFrom, AsyncSubject, Observable, debounceTime as debounceTime$1, EMPTY, map as map$2, skip, switchMap as switchMap$1, catchError as catchError$1 } from 'rxjs';
8
8
  import { groupBy, mergeMap, reduce, tap, catchError, map, debounceTime, throttleTime, filter as filter$1, switchMap, take as take$1, combineLatest, finalize, pluck, withLatestFrom, first as first$1 } from 'rxjs/operators';
9
9
  import * as i1 from '@eo-sdk/core';
10
10
  import { SearchQuery, SearchState, EnaioEvent, Utils, CORE_CONFIG, UploadTarget, DmsObject, EnvironmentEnaio, SearchFilter, RangeValue, AuthService, Logger, NotificationsService, TranslateService, EoError, SearchService, InboxItem, Process, PreparedItem, WorkItem, StoredQuery, ClipboardAction, QueryScope, EoSharedModule, FieldDefinition, SubscriptionMode, TranslateModule, UploadFileItem, StoredQueriesService, SortOption, SearchResult } from '@eo-sdk/core';
@@ -41,9 +41,9 @@ import { YvcChipsModule } from '@yuuvis/components/chips';
41
41
  import { trigger, state, style, transition, animate, query, stagger } from '@angular/animations';
42
42
  import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
43
43
  import { CsvExportModule } from '@ag-grid-community/csv-export';
44
- import * as i8 from '@ag-grid-community/angular';
44
+ import * as i8$1 from '@ag-grid-community/angular';
45
45
  import { AgGridModule } from '@ag-grid-community/angular';
46
- import * as i7$1 from '@yuuvis/components/popout';
46
+ import * as i8 from '@yuuvis/components/popout';
47
47
  import { PopoutTriggerPosition, YvcPopoutModule } from '@yuuvis/components/popout';
48
48
  import * as i20 from '@yuuvis/components/split-view';
49
49
  import { YvcSplitViewModule } from '@yuuvis/components/split-view';
@@ -56,12 +56,12 @@ import * as i3$1 from '@yuuvis/components/common';
56
56
  import { YvcAutofocusChild } from '@yuuvis/components/common';
57
57
  import * as i19 from '@yuuvis/components/split-tabs';
58
58
  import { SplitTabsComponent, YvcSplitTabsModule } from '@yuuvis/components/split-tabs';
59
- import * as i8$1 from '@yuuvis/components/master-details';
59
+ import * as i8$2 from '@yuuvis/components/master-details';
60
60
  import { YvcMasterDetailsModule } from '@yuuvis/components/master-details';
61
- import * as i2$5 from '@yuuvis/widget-grid';
62
- import { PictureWidgetSetupComponent, PictureWidgetComponent, TodoWidgetSetupComponent, TodoWidgetComponent, YuvWidgetGridModule } from '@yuuvis/widget-grid';
63
- import * as i7$2 from '@carbon/charts-angular';
61
+ import * as i7$1 from '@carbon/charts-angular';
64
62
  import { ChartsModule } from '@carbon/charts-angular';
63
+ import * as i2$5 from '@yuuvis/widget-grid';
64
+ import { WidgetGridUtils, YuvWidgetGridModule } from '@yuuvis/widget-grid';
65
65
 
66
66
  /**
67
67
  * AppSearchService is the apps main entry point for searching (used by the appBarSearch component).
@@ -1646,6 +1646,7 @@ class GridService {
1646
1646
  colDef.sortable = true;
1647
1647
  colDef.resizable = true;
1648
1648
  colDef.filter = 'agTextColumnFilter';
1649
+ colDef.filterParams = { buttons: ['reset'] };
1649
1650
  colDef.cellRenderer = params => GridService.escapeHtml(params.value);
1650
1651
  colDef.valueGetter = params => {
1651
1652
  return params.node.group || !params.data ? '' : params.data[colDef.field];
@@ -1785,6 +1786,7 @@ class GridService {
1785
1786
  colDef.cellRenderer = this.customContext(CellRenderer.dateTimeCellRenderer, { pattern: resultField.withtime ? 'eoShort' : 'eoShortDate' });
1786
1787
  colDef.getQuickFilterText = this.customContext(CellRenderer.dateTimeCellRenderer, { pattern: resultField.withtime ? 'eoShort' : 'eoShortDate' });
1787
1788
  colDef.filterParams = {
1789
+ ...colDef.filterParams,
1788
1790
  comparator: this.dateComparator(this.context.datePipe, resultField.withtime),
1789
1791
  withTime: resultField.withtime,
1790
1792
  inRangeInclusive: true
@@ -1794,7 +1796,7 @@ class GridService {
1794
1796
  case 'CODESYSTEM': {
1795
1797
  colDef.filter = 'CodesystemFilterComponent';
1796
1798
  colDef.colId = resultField.field;
1797
- colDef.filterParams = { multi: resultField.multiselect };
1799
+ colDef.filterParams = { ...colDef.filterParams, multi: resultField.multiselect };
1798
1800
  colDef.cellRenderer = CellRenderer.stringCellrenderer;
1799
1801
  if (resultField.multiselect) {
1800
1802
  colDef.cellRenderer = CellRenderer.multiSelectCellRenderer;
@@ -1813,13 +1815,13 @@ class GridService {
1813
1815
  const { scale, grouping, pattern } = resultField;
1814
1816
  colDef.cellRenderer = this.customContext(CellRenderer.numberCellRenderer, { scale, grouping, pattern });
1815
1817
  colDef.getQuickFilterText = this.customContext(CellRenderer.numberCellRenderer, { scale, grouping, pattern });
1816
- colDef.filterParams = { inRangeInclusive: true };
1818
+ colDef.filterParams = { ...colDef.filterParams, inRangeInclusive: true };
1817
1819
  break;
1818
1820
  }
1819
1821
  case 'ORGANIZATION': {
1820
1822
  colDef.filter = 'OrganizationFilterComponent';
1821
1823
  colDef.colId = resultField.qname;
1822
- colDef.filterParams = { multi: resultField.multiselect };
1824
+ colDef.filterParams = { ...colDef.filterParams, multi: resultField.multiselect };
1823
1825
  colDef.cellRenderer = CellRenderer.stringCellrenderer;
1824
1826
  if (resultField.multiselect) {
1825
1827
  colDef.cellRenderer = CellRenderer.multiSelectCellRenderer;
@@ -1835,6 +1837,7 @@ class GridService {
1835
1837
  colDef.cellClass = 'col-boolean';
1836
1838
  colDef.cellRenderer = CellRenderer.booleanCellRenderer;
1837
1839
  colDef.filterParams = {
1840
+ ...colDef.filterParams,
1838
1841
  cellRenderer: this.customContext(CellRenderer.booleanCellRenderer),
1839
1842
  cellHeight: 30,
1840
1843
  values: [false, true, undefined],
@@ -1877,6 +1880,7 @@ class GridService {
1877
1880
  colDef.cellClass = 'res-ico';
1878
1881
  colDef.getQuickFilterText = () => '';
1879
1882
  colDef.filterParams = {
1883
+ ...colDef.filterParams,
1880
1884
  cellRenderer: this.customContext(CellRenderer.typeCellRenderer),
1881
1885
  values: this.context.typeOpts
1882
1886
  };
@@ -1886,6 +1890,7 @@ class GridService {
1886
1890
  colDef.filter = 'ListFilterComponent';
1887
1891
  colDef.width = 101;
1888
1892
  colDef.filterParams = {
1893
+ ...colDef.filterParams,
1889
1894
  values: this.context.mimetypegroupOpts
1890
1895
  };
1891
1896
  break;
@@ -3814,6 +3819,10 @@ class ScopeElement {
3814
3819
  get label() {
3815
3820
  return this.element.label;
3816
3821
  }
3822
+ set description(description) {
3823
+ this.element.description = description;
3824
+ this.onScriptingModelChange(this.element.name, { newValue: description, name: 'description' });
3825
+ }
3817
3826
  get description() {
3818
3827
  return this.element.description;
3819
3828
  }
@@ -4459,6 +4468,11 @@ class ObjectFormHelperService {
4459
4468
  fc._eoFormElement.contextId = change.newValue;
4460
4469
  break;
4461
4470
  }
4471
+ // new description was applied by the script
4472
+ case 'description': {
4473
+ fc._eoFormElement.description = change.newValue;
4474
+ break;
4475
+ }
4462
4476
  }
4463
4477
  }
4464
4478
  };
@@ -5107,7 +5121,7 @@ class CodesystemComponent {
5107
5121
  this.addTreeNode(tree, this.codesystem.entries[i]);
5108
5122
  }
5109
5123
  this.tree = tree;
5110
- this.autocompleteRes = this.autocompleteValues;
5124
+ this.autocompleteRes = this.autocompleteValues.slice(0, 10);
5111
5125
  }
5112
5126
  addTreeNode(parentNode, codesystemEntry) {
5113
5127
  if (this._filterFunc && !this._filterFunc(codesystemEntry)) {
@@ -5164,7 +5178,7 @@ class CodesystemComponent {
5164
5178
  }
5165
5179
  }
5166
5180
  return acNode.name.toLowerCase().indexOf(term.toLowerCase()) !== -1;
5167
- });
5181
+ }).slice(0, 10);
5168
5182
  }
5169
5183
  // transform codesystem entry to tree node
5170
5184
  csEntryToTreeNode(codesystemEntry) {
@@ -5929,7 +5943,7 @@ class OrganizationComponent {
5929
5943
  .subscribe((res) => {
5930
5944
  // autocomplete values should be unique and not part of the exceptions
5931
5945
  this.autocompleteRes = res.filter(v => (!this.value || this.value.indexOf(v.name) === -1) && this.exceptions.indexOf(v.name) === -1 && (!this.removeCurrentUser || this.currentUserId !== v.id))
5932
- .sort(Utils.sortValues('title'));
5946
+ .sort(Utils.sortValues('title')).slice(0, 10);
5933
5947
  }, Utils.throw(null, this.translate.instant('eo.form.property.organization.request.error.title'), this.translate.instant('eo.form.property.organization.request.error.msg')));
5934
5948
  }
5935
5949
  else {
@@ -6168,7 +6182,7 @@ class StringComponent {
6168
6182
  r.push(i.value);
6169
6183
  }
6170
6184
  });
6171
- this.autocompleteRes = r;
6185
+ this.autocompleteRes = r.slice(0, 10);
6172
6186
  });
6173
6187
  }
6174
6188
  validateClassification(string) {
@@ -6408,7 +6422,7 @@ class ReferenceComponent {
6408
6422
  const results = res.hits.hits
6409
6423
  .filter(h => !value.includes(h._source[this.reference.element]))
6410
6424
  .map(h => ({ value: h._source[this.reference.element], title: h._source.title }));
6411
- this.autocompleteRes = Utils.uniqBy(results, 'value');
6425
+ this.autocompleteRes = Utils.uniqBy(results, 'value').slice(0, 10);
6412
6426
  }
6413
6427
  else {
6414
6428
  this.autocompleteRes = [];
@@ -6615,8 +6629,8 @@ class DynamicListComponent {
6615
6629
  return this._list;
6616
6630
  }
6617
6631
  set selectedNodes(n) {
6618
- if (n) {
6619
- this.autocompleteFn(n.name);
6632
+ if (n && !Array.isArray(n)) {
6633
+ this.autocompleteFn(n.value);
6620
6634
  }
6621
6635
  this._selectedNodes = structuredClone(n);
6622
6636
  }
@@ -6777,7 +6791,7 @@ class DynamicListComponent {
6777
6791
  }
6778
6792
  return acNode.data[this.valueField].toLowerCase().indexOf(term.toLowerCase()) !== -1 ||
6779
6793
  (acNode.data[this.descriptionField] && acNode.data[this.descriptionField].toLowerCase().indexOf(term.toLowerCase()) !== -1);
6780
- });
6794
+ }).slice(0, 10);
6781
6795
  }
6782
6796
  listEntryToTreeNode(listEntry) {
6783
6797
  let selectable = false;
@@ -7447,7 +7461,7 @@ class IdReferenceComponent {
7447
7461
  this.searchService
7448
7462
  .executeQuery(q)
7449
7463
  .pipe(debounceTime(500), map(item => item ? this.searchService.createResultFromResponse(item) : [])).subscribe((result) => {
7450
- this.autocompleteRes = result.hits;
7464
+ this.autocompleteRes = result.hits.slice(0, 10);
7451
7465
  });
7452
7466
  }
7453
7467
  onAutoCompleteBlur() {
@@ -7589,11 +7603,11 @@ class FormElementComponent {
7589
7603
  });
7590
7604
  }
7591
7605
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FormElementComponent, deps: [{ token: i1.TranslateService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
7592
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: FormElementComponent, selector: "eo-form-element", inputs: { situation: "situation", skipToggle: "skipToggle", elementSetter: ["element", "elementSetter"] }, queries: [{ propertyName: "contentElementTemplates", predicate: FormElementTemplate }], viewQueries: [{ propertyName: "formField", first: true, predicate: ["formField"], descendants: true }, { propertyName: "elementTemplates", predicate: FormElementTemplate, descendants: true }], ngImport: i0, template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\n\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\n\n <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\n\n <!-- the fields description -->\n <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\n\n <!-- error/validation messages -->\n <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\n\n <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\n <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\n <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\n <div *ngIf=\"formElementRef.errors.precision\" translate\n [translateParams]=\"formElementRef.errors.precision.translateValues\">\n {{formElementRef.errors.precision.translateKey}}</div>\n <div *ngIf=\"formElementRef.errors.scale\" translate\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\n </div>\n\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\n eo.form.property.string.regex.nomatch</div>\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\n eo.form.property.string.error.classification.email</div>\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\n </div>\n <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\n <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\n <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\n <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\n <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\n <div *ngIf=\"formElementRef.errors.maxlength\" translate\n [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\n <div *ngIf=\"formElementRef.errors.minlength\" translate\n [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\n <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\n <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\n </div>\n\n </div>\n\n\n\n <!-- STRING -->\n <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\n [multiline]=\"formElementRef._eoFormElement.multiline\"\n [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\n [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\n\n <!-- Dynamic List -->\n <eo-dynamic-list\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\n\n\n <!-- Reference -->\n <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID-Reference -->\n <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\n [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID -->\n <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\n [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\n\n </eo-form-input>\n </ng-template>\n\n\n <!-- BOOLEAN -->\n <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [tristate]=\"true\"></eo-checkbox>\n </eo-form-input>\n </ng-template>\n\n <!-- CODESYSTEM -->\n <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [codesystem]=\"formElementRef._eoFormElement.codesystem\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\n </eo-form-input>\n </ng-template>\n\n <!-- ORGANIZATION -->\n <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\n </eo-form-input>\n </ng-template>\n\n <!-- NUMBER -->\n <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\n </eo-number>\n\n <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\n </eo-form-input>\n </ng-template>\n\n <!-- DATE AND DATETIME -->\n <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\n\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\n </eo-form-input>\n </ng-template>\n\n <ng-content></ng-content>\n\n <!-- print out the type if it's not matching anything -->\n <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\n</div>\n", styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host{flex:1 1 auto}:host.label-toggled::ng-deep eo-form-input label{text-decoration:line-through}.form-element{box-sizing:border-box}.form-element .form-field{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.form-element .form-field .description{border:0;font-size:var(--font-hint);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.form-element .form-field .err-msg{color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.form-element .form-field .table{flex-flow:column;align-items:flex-start;border-color:transparent}.form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }, { kind: "component", type: DatetimeRangeComponent, selector: "eo-datetime-range", inputs: ["withTime", "pickerTitle", "operator"] }, { kind: "component", type: NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: NumberRangeComponent, selector: "eo-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: OrganizationComponent, selector: "eo-organization", inputs: ["removeCurrentUser", "situation", "multiselect", "readonly", "dataMeta", "placeholder", "exceptions", "filterObject"], outputs: ["onValueResolved", "onDataMetaChanged"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: ReferenceComponent, selector: "eo-reference", inputs: ["readonly", "multiselect", "reference", "minLength", "maxLength"], outputs: ["onReferenceClicked"] }, { kind: "component", type: DynamicListComponent, selector: "eo-dynamic-list", inputs: ["situation", "multiselect", "pickerTitle", "readonly", "filterFunction", "listObject"] }, { kind: "component", type: IdReferenceComponent, selector: "eo-id-reference", inputs: ["readonly", "multiselect", "situation", "contextId", "exceptionIDs", "dataToRender", "reference", "queryFilters", "objectTypesFilter"] }, { kind: "directive", type: FormElementTemplate, selector: "[eoFormElementTemplate]", inputs: ["propertyType"] }] }); }
7606
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: FormElementComponent, selector: "eo-form-element", inputs: { situation: "situation", skipToggle: "skipToggle", elementSetter: ["element", "elementSetter"] }, queries: [{ propertyName: "contentElementTemplates", predicate: FormElementTemplate }], viewQueries: [{ propertyName: "formField", first: true, predicate: ["formField"], descendants: true }, { propertyName: "elementTemplates", predicate: FormElementTemplate, descendants: true }], ngImport: i0, template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\n\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\n\n <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\n\n <!-- the fields description -->\n <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\n\n <!-- error/validation messages -->\n <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\n\n <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\n <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\n <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\n <div *ngIf=\"formElementRef.errors.precision\" translate\n [translateParams]=\"formElementRef.errors.precision.translateValues\">\n {{formElementRef.errors.precision.translateKey}}</div>\n <div *ngIf=\"formElementRef.errors.scale\" translate\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\n </div>\n\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\n eo.form.property.string.regex.nomatch</div>\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\n eo.form.property.string.error.classification.email</div>\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\n </div>\n <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\n <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\n <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\n <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\n <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\n <div *ngIf=\"formElementRef.errors.maxlength\" translate\n [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\n <div *ngIf=\"formElementRef.errors.minlength\" translate\n [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\n <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\n <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\n </div>\n\n </div>\n\n\n\n <!-- STRING -->\n <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\n [multiline]=\"formElementRef._eoFormElement.multiline\"\n [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\n [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\n\n <!-- Dynamic List -->\n <eo-dynamic-list\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\n\n\n <!-- Reference -->\n <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID-Reference -->\n <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\n [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID -->\n <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\n [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\n\n </eo-form-input>\n </ng-template>\n\n\n <!-- BOOLEAN -->\n <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\" class=\"checkbox\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [tristate]=\"true\"></eo-checkbox>\n </eo-form-input>\n </ng-template>\n\n <!-- CODESYSTEM -->\n <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [codesystem]=\"formElementRef._eoFormElement.codesystem\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\n </eo-form-input>\n </ng-template>\n\n <!-- ORGANIZATION -->\n <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\n </eo-form-input>\n </ng-template>\n\n <!-- NUMBER -->\n <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\n </eo-number>\n\n <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\n </eo-form-input>\n </ng-template>\n\n <!-- DATE AND DATETIME -->\n <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\n\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\n </eo-form-input>\n </ng-template>\n\n <ng-content></ng-content>\n\n <!-- print out the type if it's not matching anything -->\n <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\n</div>\n", styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host{flex:1 1 auto}:host.label-toggled::ng-deep eo-form-input label{text-decoration:line-through}.form-element{box-sizing:border-box}.form-element .form-field{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.form-element .form-field .description{border:0;font-size:var(--font-hint);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.form-element .form-field .err-msg{color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.form-element .form-field .table{flex-flow:column;align-items:flex-start;border-color:transparent}.form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }, { kind: "component", type: DatetimeRangeComponent, selector: "eo-datetime-range", inputs: ["withTime", "pickerTitle", "operator"] }, { kind: "component", type: NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: NumberRangeComponent, selector: "eo-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: OrganizationComponent, selector: "eo-organization", inputs: ["removeCurrentUser", "situation", "multiselect", "readonly", "dataMeta", "placeholder", "exceptions", "filterObject"], outputs: ["onValueResolved", "onDataMetaChanged"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: ReferenceComponent, selector: "eo-reference", inputs: ["readonly", "multiselect", "reference", "minLength", "maxLength"], outputs: ["onReferenceClicked"] }, { kind: "component", type: DynamicListComponent, selector: "eo-dynamic-list", inputs: ["situation", "multiselect", "pickerTitle", "readonly", "filterFunction", "listObject"] }, { kind: "component", type: IdReferenceComponent, selector: "eo-id-reference", inputs: ["readonly", "multiselect", "situation", "contextId", "exceptionIDs", "dataToRender", "reference", "queryFilters", "objectTypesFilter"] }, { kind: "directive", type: FormElementTemplate, selector: "[eoFormElementTemplate]", inputs: ["propertyType"] }] }); }
7593
7607
  }
7594
7608
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FormElementComponent, decorators: [{
7595
7609
  type: Component,
7596
- args: [{ selector: 'eo-form-element', template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\n\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\n\n <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\n\n <!-- the fields description -->\n <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\n\n <!-- error/validation messages -->\n <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\n\n <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\n <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\n <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\n <div *ngIf=\"formElementRef.errors.precision\" translate\n [translateParams]=\"formElementRef.errors.precision.translateValues\">\n {{formElementRef.errors.precision.translateKey}}</div>\n <div *ngIf=\"formElementRef.errors.scale\" translate\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\n </div>\n\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\n eo.form.property.string.regex.nomatch</div>\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\n eo.form.property.string.error.classification.email</div>\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\n </div>\n <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\n <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\n <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\n <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\n <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\n <div *ngIf=\"formElementRef.errors.maxlength\" translate\n [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\n <div *ngIf=\"formElementRef.errors.minlength\" translate\n [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\n <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\n <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\n </div>\n\n </div>\n\n\n\n <!-- STRING -->\n <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\n [multiline]=\"formElementRef._eoFormElement.multiline\"\n [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\n [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\n\n <!-- Dynamic List -->\n <eo-dynamic-list\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\n\n\n <!-- Reference -->\n <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID-Reference -->\n <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\n [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID -->\n <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\n [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\n\n </eo-form-input>\n </ng-template>\n\n\n <!-- BOOLEAN -->\n <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [tristate]=\"true\"></eo-checkbox>\n </eo-form-input>\n </ng-template>\n\n <!-- CODESYSTEM -->\n <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [codesystem]=\"formElementRef._eoFormElement.codesystem\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\n </eo-form-input>\n </ng-template>\n\n <!-- ORGANIZATION -->\n <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\n </eo-form-input>\n </ng-template>\n\n <!-- NUMBER -->\n <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\n </eo-number>\n\n <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\n </eo-form-input>\n </ng-template>\n\n <!-- DATE AND DATETIME -->\n <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\n\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\n </eo-form-input>\n </ng-template>\n\n <ng-content></ng-content>\n\n <!-- print out the type if it's not matching anything -->\n <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\n</div>\n", styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host{flex:1 1 auto}:host.label-toggled::ng-deep eo-form-input label{text-decoration:line-through}.form-element{box-sizing:border-box}.form-element .form-field{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.form-element .form-field .description{border:0;font-size:var(--font-hint);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.form-element .form-field .err-msg{color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.form-element .form-field .table{flex-flow:column;align-items:flex-start;border-color:transparent}.form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
7610
+ args: [{ selector: 'eo-form-element', template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\n\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\n\n <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\n\n <!-- the fields description -->\n <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\n\n <!-- error/validation messages -->\n <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\n\n <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\n <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\n <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\n <div *ngIf=\"formElementRef.errors.precision\" translate\n [translateParams]=\"formElementRef.errors.precision.translateValues\">\n {{formElementRef.errors.precision.translateKey}}</div>\n <div *ngIf=\"formElementRef.errors.scale\" translate\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\n </div>\n\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\n eo.form.property.string.regex.nomatch</div>\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\n eo.form.property.string.error.classification.email</div>\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\n </div>\n <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\n <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\n <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\n <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\n <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\n <div *ngIf=\"formElementRef.errors.maxlength\" translate\n [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\n <div *ngIf=\"formElementRef.errors.minlength\" translate\n [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\n <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\n <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\n </div>\n\n </div>\n\n\n\n <!-- STRING -->\n <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\n [multiline]=\"formElementRef._eoFormElement.multiline\"\n [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\n [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\n\n <!-- Dynamic List -->\n <eo-dynamic-list\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\n\n\n <!-- Reference -->\n <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID-Reference -->\n <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\n [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID -->\n <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\n [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\n\n </eo-form-input>\n </ng-template>\n\n\n <!-- BOOLEAN -->\n <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\" class=\"checkbox\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [tristate]=\"true\"></eo-checkbox>\n </eo-form-input>\n </ng-template>\n\n <!-- CODESYSTEM -->\n <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [codesystem]=\"formElementRef._eoFormElement.codesystem\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\n </eo-form-input>\n </ng-template>\n\n <!-- ORGANIZATION -->\n <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\n </eo-form-input>\n </ng-template>\n\n <!-- NUMBER -->\n <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\n </eo-number>\n\n <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\n </eo-form-input>\n </ng-template>\n\n <!-- DATE AND DATETIME -->\n <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\n\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\n </eo-form-input>\n </ng-template>\n\n <ng-content></ng-content>\n\n <!-- print out the type if it's not matching anything -->\n <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\n</div>\n", styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host{flex:1 1 auto}:host.label-toggled::ng-deep eo-form-input label{text-decoration:line-through}.form-element{box-sizing:border-box}.form-element .form-field{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.form-element .form-field .description{border:0;font-size:var(--font-hint);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.form-element .form-field .err-msg{color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.form-element .form-field .table{flex-flow:column;align-items:flex-start;border-color:transparent}.form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
7597
7611
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { elementTemplates: [{
7598
7612
  type: ViewChildren,
7599
7613
  args: [FormElementTemplate, { emitDistinctChangesOnly: true }]
@@ -7725,10 +7739,9 @@ let MediaComponent = class MediaComponent {
7725
7739
  return this._previewUri;
7726
7740
  }
7727
7741
  set previewFile(file) {
7742
+ this._previewFile = file;
7728
7743
  if (file) {
7729
- this.viewer = this.getViewer(file);
7730
- this.mediaType = file.mediaTypeName && this.system.getObjectType(file.mediaTypeName);
7731
- this.previewUri = this.viewer.previewUri;
7744
+ this.setupViewer();
7732
7745
  }
7733
7746
  else {
7734
7747
  this.previewUri = '';
@@ -7755,28 +7768,25 @@ let MediaComponent = class MediaComponent {
7755
7768
  path: file.path,
7756
7769
  mediaTypeName: item.typeName
7757
7770
  };
7758
- if (!!file.mimegroup?.match(/^mail|octet-stream/) && this.viewer.viewer.match('/view/api/pdf/')) {
7759
- this.slideUri = this.dms.getSlide(item.content.id, item.content.type, this.useVersion ? item.version : null, 256);
7760
- this.attachmentsLoading = this.dms.getAttachments(item).subscribe(a => this.setAttachments = a);
7761
- }
7762
- if (this.viewer.viewer.match('/view/api/mail/')) {
7763
- this.dms.getAttachments(item).subscribe(a => window.api.content.attachments = a);
7764
- }
7771
+ this.setupViewer();
7765
7772
  }
7766
7773
  else {
7767
7774
  this.previewUri = '';
7768
7775
  }
7769
7776
  }
7770
- constructor(translate, dms, renderer, system, config, pluginsService) {
7777
+ constructor(translate, dms, renderer, system, config, http, pluginsService, backend) {
7771
7778
  this.translate = translate;
7772
7779
  this.dms = dms;
7773
7780
  this.renderer = renderer;
7774
7781
  this.system = system;
7775
7782
  this.config = config;
7783
+ this.http = http;
7776
7784
  this.pluginsService = pluginsService;
7785
+ this.backend = backend;
7777
7786
  this.SIZE_LIMIT = 1024 * 1024 * 10; // 10MB
7778
7787
  this.attachments = [];
7779
7788
  this.customConfig = [];
7789
+ this.requiredServices = [];
7780
7790
  this.popoutTriggerPosition = PopoutTriggerPosition.BOTTOM_RIGHT;
7781
7791
  this.defaultViewers = [
7782
7792
  {
@@ -7795,15 +7805,47 @@ let MediaComponent = class MediaComponent {
7795
7805
  "mimeType": ["message/rfc822", "application/vnd.ms-outlook"],
7796
7806
  "viewer": "viewer/view/api/mail/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}"
7797
7807
  },
7808
+ {
7809
+ "requiredService": "office365",
7810
+ "supportsAttachments": false,
7811
+ "mimeType": [
7812
+ "application/msword",
7813
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
7814
+ "application/vnd.ms-word.document.macroEnabled.12",
7815
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
7816
+ "application/vnd.ms-word.template.macroEnabled.12",
7817
+ "application/vnd.ms-excel",
7818
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
7819
+ "application/vnd.ms-excel.sheet.macroEnabled.12",
7820
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
7821
+ "application/vnd.ms-excel.template.macroEnabled.12",
7822
+ "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
7823
+ "application/vnd.ms-excel.addin.macroEnabled.12",
7824
+ "application/vnd.ms-powerpoint",
7825
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation",
7826
+ "application/vnd.openxmlformats-officedocument.presentationml.template",
7827
+ "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
7828
+ "application/vnd.ms-powerpoint.addin.macroEnabled.12",
7829
+ "application/vnd.ms-powerpoint.presentation.macroEnabled.12",
7830
+ "application/vnd.ms-powerpoint.template.macroEnabled.12",
7831
+ "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"
7832
+ ],
7833
+ "viewer": "() => { let url = ''; let isLinkedDocument = dmsObject.id !== dmsObject.content.id; url = location.origin + '/dashlet365/?id=' + dmsObject.content.id + '&version=' + (!isLinkedDocument ? dmsObject.version : -1) + '&type=' + dmsObject.content.type + (parameters.mimeType ? '&mimeType=' + parameters.mimeType : ''); return url; }"
7834
+ },
7835
+ {
7836
+ "type": "extend",
7837
+ "viewer": "() => { window._o365 = window._o365 || window.addEventListener('message', (e) => { if (!e || !e.data || !e.data.match || !e.data.match('MessageId')) return; var data = JSON.parse(e.data); if (!data) return; if (data.MessageId === 'Host_PostmessageObjectUpdating' || data.MessageId === 'Host_PostmessageObjectConverted') { setTimeout(() => { var btn = api.util.$('eo-object-details .refresh-button'); btn && btn.click(); }, 3500) } else if(data.MessageId === 'UI_EditClick' && data.Values.url) { var w = window.open(decodeURIComponent(data.Values.url)); window['api'].content.windows = (window['api'].content.windows || []).concat([w]); } }); return parameters.viewer; }"
7838
+ },
7798
7839
  // ONLY applies to localhost env; fixed email cors for localhost testing
7799
7840
  {
7800
7841
  "type": "extend",
7801
7842
  "viewer": "() => { if (parameters.viewer.match('/view/api/mail/') && parameters.path.match('localhost')) { var host = 'localhost:4200'; var cors = 'kolibriproliant.optimal-systems.de'; parameters.path = parameters.path.replace(host, cors); return parameters.viewer + '&cors=' + cors;} return parameters.viewer; }"
7802
7843
  },
7803
7844
  // We need another pathPdf for email attachment files. This will only come in place if the mimetype is pdf or one of the not supported ones. (viewer attachments & api attachments can be parsed in different order, so we have to match them by filename)
7804
- { "viewer": "() => {var attachment = parameters.pathPdf.match(new RegExp('attachment=(\\\\d+)')); var a = attachment && api.content.viewer().document.querySelector('iframe').contentDocument.querySelector('a[data-src$=\"' + attachment[0] + '\"]'); var params = a && (api.content.attachments || []).find(att => api.util.decodeHtmlCharCodes(att.name) === a.getAttribute('data-filename')); if(params && params.previewUri) { debugger; parameters.pathPdf = location.origin + params.previewUri; } return parameters.defaultViewer;}" },
7845
+ { "viewer": "() => {var attachment = parameters.pathPdf.match(new RegExp('attachment=(\\\\d+)')); var a = attachment && api.content.viewer().document.querySelector('iframe').contentDocument.querySelector('a[data-src$=\"' + attachment[0] + '\"]'); var params = a && (api.content.attachments || []).find(att => api.util.decodeHtmlCharCodes(att.name) === a.getAttribute('data-filename')); if(params && params.previewUri) { parameters.pathPdf = location.origin + params.previewUri; } return parameters.defaultViewer;}" },
7805
7846
  { "error": true, "type": "error", "viewer": "viewer/view/api/error/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}" }
7806
7847
  ];
7848
+ this.initialized = false;
7807
7849
  this.undockDisabled = false;
7808
7850
  this.enableCloseBtn = false;
7809
7851
  // by default, the viewer ignores the version of the dms object. This will always show the latest version.
@@ -7821,6 +7863,39 @@ let MediaComponent = class MediaComponent {
7821
7863
  ]);
7822
7864
  uri && win && (win.location.href = this.resolveUri(uri, parameters));
7823
7865
  });
7866
+ this.customConfig.forEach((c) => {
7867
+ if (c.requiredService && !this.requiredServices.find(requiredService => requiredService.name === c.requiredService)) {
7868
+ this.requiredServices.push({ name: c.requiredService });
7869
+ }
7870
+ });
7871
+ const tasks = this.requiredServices.map((rS) => this.http.get(`${this.backend.getHost()}${this.config.getContextPath()}/config/services`).pipe(tap$1((res) => rS.running = res.includes('office365'))));
7872
+ forkJoin(tasks).subscribe(() => {
7873
+ this.initialized = true;
7874
+ this.setupViewer();
7875
+ }, () => {
7876
+ this.initialized = true;
7877
+ this.setupViewer();
7878
+ });
7879
+ }
7880
+ setupViewer() {
7881
+ if (!this.initialized || !this._previewFile) {
7882
+ return;
7883
+ }
7884
+ this.viewer = this.getViewer(this._previewFile);
7885
+ this.mediaType = this._previewFile.mediaTypeName && this.system.getObjectType(this._previewFile.mediaTypeName);
7886
+ this.previewUri = this.viewer.previewUri;
7887
+ if (this._dmsObject) {
7888
+ if (!!this._previewFile.mimegroup?.match(/^mail|octet-stream/) && this.viewer.viewer.match('/view/api/pdf/')) {
7889
+ this.slideUri = this.dms.getSlide(this._dmsObject.content.id, this._dmsObject.content.type, this.useVersion ? this._dmsObject.version : null, 256);
7890
+ this.attachmentsLoading = this.dms.getAttachments(this._dmsObject).subscribe(a => this.setAttachments = a);
7891
+ }
7892
+ if (this.viewer.viewer.match('/view/api/mail/')) {
7893
+ this.dms.getAttachments(this._dmsObject).subscribe(a => {
7894
+ window.api.content.attachments = a;
7895
+ this.setAttachments = a;
7896
+ });
7897
+ }
7898
+ }
7824
7899
  }
7825
7900
  _setPopoutWindowConfig(reset) {
7826
7901
  const winInset = 20;
@@ -7848,16 +7923,23 @@ let MediaComponent = class MediaComponent {
7848
7923
  refresh() {
7849
7924
  this.loadDocument(this.previewUri, true);
7850
7925
  }
7926
+ getMatchingConfig(fileExtension, mimeType, matchingConfig) {
7927
+ return this.customConfig.find((c) => {
7928
+ const matchMT = !c.mimeType || (typeof c.mimeType === 'string' ? [c.mimeType] : c.mimeType).includes(mimeType?.toLowerCase());
7929
+ const matchFE = !c.fileExtension || (typeof c.fileExtension === 'string' ? [c.fileExtension] : c.fileExtension).includes((fileExtension).toLowerCase());
7930
+ const supportsAttachments = !this.attachments.length || typeof c.supportsAttachments === 'undefined' || c.supportsAttachments;
7931
+ return matchMT && matchFE && (!c.type || c.type === 'default') && supportsAttachments && c !== matchingConfig;
7932
+ });
7933
+ }
7851
7934
  getViewer(file) {
7852
7935
  const isVideo = !!file.mimegroup?.match(/^audio|^video/);
7853
7936
  const defaultViewer = isVideo ? MediaComponent_1.VIDEO_VIEWER : MediaComponent_1.PDF_VIEWER;
7854
7937
  const fileExtension = file.fileExtension || (file.path?.includes('.') ? file.path.split('.').pop() : '');
7855
7938
  const mimeType = file.mimetype;
7856
- const config = this.customConfig.find((c) => {
7857
- const matchMT = !c.mimeType || (typeof c.mimeType === 'string' ? [c.mimeType] : c.mimeType).includes(mimeType?.toLowerCase());
7858
- const matchFE = !c.fileExtension || (typeof c.fileExtension === 'string' ? [c.fileExtension] : c.fileExtension).includes((fileExtension).toLowerCase());
7859
- return matchMT && matchFE && (!c.type || c.type === 'default');
7860
- });
7939
+ let config = this.getMatchingConfig(fileExtension, mimeType);
7940
+ if (!(config.requiredService && this.requiredServices.find(requiredService => requiredService.name === config.requiredService)?.running)) {
7941
+ config = this.getMatchingConfig(fileExtension, mimeType, config);
7942
+ }
7861
7943
  const parameters = {
7862
7944
  file,
7863
7945
  path: location.origin + file.uri,
@@ -7970,8 +8052,8 @@ let MediaComponent = class MediaComponent {
7970
8052
  }
7971
8053
  ngOnDestroy() {
7972
8054
  }
7973
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MediaComponent, deps: [{ token: i1.TranslateService }, { token: i1.DmsService }, { token: i0.Renderer2 }, { token: i1.SystemService }, { token: i1.Config }, { token: PluginsService }], target: i0.ɵɵFactoryTarget.Component }); }
7974
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: MediaComponent, selector: "eo-media", inputs: { undockDisabled: "undockDisabled", enableCloseBtn: "enableCloseBtn", useVersion: "useVersion", setAttachments: ["attachments", "setAttachments"], setSearchTerm: ["searchTerm", "setSearchTerm"], previewUri: "previewUri", previewFile: "previewFile", dmsObject: "dmsObject" }, host: { properties: { "class.open": "this.open" } }, providers: [ContentPreviewService], viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true, static: true }], ngImport: i0, template: "<div [hidden]=\"!open\">\n <!-- attachments overlay -->\n <div class=\"attachments\" *ngIf=\"attachments?.length\"\n [ngClass]=\"{notmain: latestUri !== previewUri && !attachmentsShown, active: attachmentsShown}\"\n (eoOutsideClick)=\"attachmentsShown = false\">\n <div class=\"attachments-list\" *ngIf=\"attachmentsShown\">\n <div class=\"attachment main\" (click)=\"selectAttachment(null)\" [ngClass]=\"{current: latestUri === previewUri}\">{{dmsObjectTitle}}</div>\n <div class=\"attachment\" *ngFor=\"let a of attachments\" (click)=\"selectAttachment(a)\" [ngClass]=\"{current: latestUri === a.previewUri}\">\n {{a.name}}\n </div>\n </div>\n\n <eo-icon class=\"button\" [badge]=\"attachments?.length\" (click)=\"attachmentsShown = !attachmentsShown\"\n [iconSrc]=\"attachmentsShown ? 'assets/_default/svg/ic_clear.svg' : 'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\n </div>\n\n <yvc-popout\n [popoutWindowConfig]=\"popoutWindowConfig\"\n [triggerPosition]=\"popoutTriggerPosition\" [disabled]=\"undockDisabled\">\n\n <div class=\"preview-container\" [style.overflow]=\"'hidden'\">\n <iframe [hidden]=\"isUndocked || loading\" #iframe height=\"100%\" width=\"100%\" frameborder=\"0\"></iframe>\n <div class=\"loader-overlay__mask\" *ngIf=\"loading\">\n <eo-loading-spinner class=\"iframe__loader\"></eo-loading-spinner>\n </div>\n <div class=\"slide\" *ngIf=\"isUndocked\">\n <eo-icon *ngIf=\"mediaType\" [objectType]=\"mediaType\"></eo-icon>\n </div>\n </div>\n </yvc-popout>\n</div>\n\n<div [hidden]=\"open\" class=\"empty-container\">\n <eo-icon class=\"nofile\" [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\n</div>\n", styles: [":host>div{height:100%}:host ::ng-deep .popoutWrapper{height:100%}:host ::ng-deep .popoutWrapper button.trigger{z-index:100}:host ::ng-deep .popoutWrapper button.trigger .yvc-icon{width:100%;height:100%}:host .empty-container{display:flex;justify-content:center;align-items:center;height:100%}:host .empty-container .nofile{width:128px;height:128px;opacity:.09}:host .preview-container{position:absolute;inset:0;overflow:hidden}:host .preview-container .slide{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;align-items:center;justify-content:center}:host .preview-container .slide .large-content{position:absolute;top:0;cursor:pointer;display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;justify-content:center;width:100%;padding:var(--app-pane-padding);color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.5)}:host .preview-container .slide .large-content.not-supported,:host .preview-container .slide .large-content:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .preview-container .slide .large-content.not-supported{cursor:inherit}:host .preview-container .slide img{padding:var(--app-pane-padding);width:100%}:host .preview-container .slide eo-icon{width:128px;height:128px;opacity:.2}:host .attachments{position:absolute;z-index:5;color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.6);right:calc(var(--app-pane-padding) / 2);bottom:calc(var(--app-pane-padding) * 3);display:flex;flex-flow:row;align-items:flex-end;border-radius:2px;max-width:calc(100% - 16px)}:host .attachments:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .attachments eo-icon{flex:0 0 auto;margin:calc(var(--app-pane-padding) / 2)}:host .attachments .attachments-list{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;overflow:auto;max-height:150px;padding:calc(var(--app-pane-padding) / 2);flex-flow:wrap}:host .attachments .attachments-list .attachment{border-radius:4px;background-color:rgba(var(--color-white-rgb),.1);padding:calc(var(--app-pane-padding) / 4);margin:calc(var(--app-pane-padding) / 8);cursor:pointer;border:1px solid rgba(var(--color-white-rgb),0);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .attachments .attachments-list .attachment:hover{border-color:rgba(var(--color-white-rgb),.5)}:host .attachments .attachments-list .attachment.current{background-color:var(--color-accent)}:host .attachments .attachments-list .attachment.main{background-color:var(--color-primary);order:100;flex:1 1 100%}:host .attachments .attachments-list .attachment:not(.main){font-style:italic}:host .attachments.notmain{background-color:var(--color-accent)}:host .attachments.active{background-color:rgba(var(--color-primary-rgb),.9);align-items:center;bottom:calc(var(--app-pane-padding) / 2)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .iframe__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i7$1.PopoutComponent, selector: "yvc-popout", inputs: ["triggerPosition", "triggerIconSVG", "triggerTooltip", "popoutWindowConfig", "disabled"], outputs: ["popOut", "popIn"] }] }); }
8055
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MediaComponent, deps: [{ token: i1.TranslateService }, { token: i1.DmsService }, { token: i0.Renderer2 }, { token: i1.SystemService }, { token: i1.Config }, { token: i2.HttpClient }, { token: PluginsService }, { token: i1.BackendService }], target: i0.ɵɵFactoryTarget.Component }); }
8056
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: MediaComponent, selector: "eo-media", inputs: { undockDisabled: "undockDisabled", enableCloseBtn: "enableCloseBtn", useVersion: "useVersion", setAttachments: ["attachments", "setAttachments"], setSearchTerm: ["searchTerm", "setSearchTerm"], previewUri: "previewUri", previewFile: "previewFile", dmsObject: "dmsObject" }, host: { properties: { "class.open": "this.open" } }, providers: [ContentPreviewService], viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true, static: true }], ngImport: i0, template: "<div [hidden]=\"!open\">\n <!-- attachments overlay -->\n <div class=\"attachments\" *ngIf=\"attachments?.length\"\n [ngClass]=\"{notmain: latestUri !== previewUri && !attachmentsShown, active: attachmentsShown}\"\n (eoOutsideClick)=\"attachmentsShown = false\">\n <div class=\"attachments-list\" *ngIf=\"attachmentsShown\">\n <div class=\"attachment main\" (click)=\"selectAttachment(null)\" [ngClass]=\"{current: latestUri === previewUri}\">{{dmsObjectTitle}}</div>\n <div class=\"attachment\" *ngFor=\"let a of attachments\" (click)=\"selectAttachment(a)\" [ngClass]=\"{current: latestUri === a.previewUri}\">\n {{a.name}}\n </div>\n </div>\n\n <eo-icon class=\"button\" [badge]=\"attachments?.length\" (click)=\"attachmentsShown = !attachmentsShown\"\n [iconSrc]=\"attachmentsShown ? 'assets/_default/svg/ic_clear.svg' : 'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\n </div>\n\n <yvc-popout\n [popoutWindowConfig]=\"popoutWindowConfig\"\n [triggerPosition]=\"popoutTriggerPosition\" [disabled]=\"undockDisabled\">\n\n <div class=\"preview-container\" [style.overflow]=\"'hidden'\">\n <iframe [hidden]=\"isUndocked || loading\" #iframe height=\"100%\" width=\"100%\" frameborder=\"0\"></iframe>\n <div class=\"loader-overlay__mask\" *ngIf=\"loading\">\n <eo-loading-spinner class=\"iframe__loader\"></eo-loading-spinner>\n </div>\n <div class=\"slide\" *ngIf=\"isUndocked\">\n <eo-icon *ngIf=\"mediaType\" [objectType]=\"mediaType\"></eo-icon>\n </div>\n </div>\n </yvc-popout>\n</div>\n\n<div [hidden]=\"open\" class=\"empty-container\">\n <eo-icon class=\"nofile\" [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\n</div>\n", styles: [":host>div{height:100%}:host ::ng-deep .popoutWrapper{height:100%}:host ::ng-deep .popoutWrapper button.trigger{z-index:100}:host ::ng-deep .popoutWrapper button.trigger .yvc-icon{width:100%;height:100%}:host .empty-container{display:flex;justify-content:center;align-items:center;height:100%}:host .empty-container .nofile{width:128px;height:128px;opacity:.09}:host .preview-container{position:absolute;inset:0;overflow:hidden}:host .preview-container .slide{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;align-items:center;justify-content:center}:host .preview-container .slide .large-content{position:absolute;top:0;cursor:pointer;display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;justify-content:center;width:100%;padding:var(--app-pane-padding);color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.5)}:host .preview-container .slide .large-content.not-supported,:host .preview-container .slide .large-content:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .preview-container .slide .large-content.not-supported{cursor:inherit}:host .preview-container .slide img{padding:var(--app-pane-padding);width:100%}:host .preview-container .slide eo-icon{width:128px;height:128px;opacity:.2}:host .attachments{position:absolute;z-index:5;color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.6);right:calc(var(--app-pane-padding) / 2);bottom:calc(var(--app-pane-padding) * 3);display:flex;flex-flow:row;align-items:flex-end;border-radius:2px;max-width:calc(100% - 16px)}:host .attachments:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .attachments eo-icon{flex:0 0 auto;margin:calc(var(--app-pane-padding) / 2)}:host .attachments .attachments-list{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;overflow:auto;max-height:150px;padding:calc(var(--app-pane-padding) / 2);flex-flow:wrap}:host .attachments .attachments-list .attachment{border-radius:4px;background-color:rgba(var(--color-white-rgb),.1);padding:calc(var(--app-pane-padding) / 4);margin:calc(var(--app-pane-padding) / 8);cursor:pointer;border:1px solid rgba(var(--color-white-rgb),0);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .attachments .attachments-list .attachment:hover{border-color:rgba(var(--color-white-rgb),.5)}:host .attachments .attachments-list .attachment.current{background-color:var(--color-accent)}:host .attachments .attachments-list .attachment.main{background-color:var(--color-primary);order:100;flex:1 1 100%}:host .attachments .attachments-list .attachment:not(.main){font-style:italic}:host .attachments.notmain{background-color:var(--color-accent)}:host .attachments.active{background-color:rgba(var(--color-primary-rgb),.9);align-items:center;bottom:calc(var(--app-pane-padding) / 2)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .iframe__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i8.PopoutComponent, selector: "yvc-popout", inputs: ["triggerPosition", "triggerIconSVG", "triggerTooltip", "popoutWindowConfig", "disabled"], outputs: ["popOut", "popIn"] }] }); }
7975
8057
  };
7976
8058
  MediaComponent = MediaComponent_1 = __decorate([
7977
8059
  UntilDestroy()
@@ -7979,7 +8061,7 @@ MediaComponent = MediaComponent_1 = __decorate([
7979
8061
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MediaComponent, decorators: [{
7980
8062
  type: Component,
7981
8063
  args: [{ selector: 'eo-media', providers: [ContentPreviewService], template: "<div [hidden]=\"!open\">\n <!-- attachments overlay -->\n <div class=\"attachments\" *ngIf=\"attachments?.length\"\n [ngClass]=\"{notmain: latestUri !== previewUri && !attachmentsShown, active: attachmentsShown}\"\n (eoOutsideClick)=\"attachmentsShown = false\">\n <div class=\"attachments-list\" *ngIf=\"attachmentsShown\">\n <div class=\"attachment main\" (click)=\"selectAttachment(null)\" [ngClass]=\"{current: latestUri === previewUri}\">{{dmsObjectTitle}}</div>\n <div class=\"attachment\" *ngFor=\"let a of attachments\" (click)=\"selectAttachment(a)\" [ngClass]=\"{current: latestUri === a.previewUri}\">\n {{a.name}}\n </div>\n </div>\n\n <eo-icon class=\"button\" [badge]=\"attachments?.length\" (click)=\"attachmentsShown = !attachmentsShown\"\n [iconSrc]=\"attachmentsShown ? 'assets/_default/svg/ic_clear.svg' : 'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\n </div>\n\n <yvc-popout\n [popoutWindowConfig]=\"popoutWindowConfig\"\n [triggerPosition]=\"popoutTriggerPosition\" [disabled]=\"undockDisabled\">\n\n <div class=\"preview-container\" [style.overflow]=\"'hidden'\">\n <iframe [hidden]=\"isUndocked || loading\" #iframe height=\"100%\" width=\"100%\" frameborder=\"0\"></iframe>\n <div class=\"loader-overlay__mask\" *ngIf=\"loading\">\n <eo-loading-spinner class=\"iframe__loader\"></eo-loading-spinner>\n </div>\n <div class=\"slide\" *ngIf=\"isUndocked\">\n <eo-icon *ngIf=\"mediaType\" [objectType]=\"mediaType\"></eo-icon>\n </div>\n </div>\n </yvc-popout>\n</div>\n\n<div [hidden]=\"open\" class=\"empty-container\">\n <eo-icon class=\"nofile\" [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\n</div>\n", styles: [":host>div{height:100%}:host ::ng-deep .popoutWrapper{height:100%}:host ::ng-deep .popoutWrapper button.trigger{z-index:100}:host ::ng-deep .popoutWrapper button.trigger .yvc-icon{width:100%;height:100%}:host .empty-container{display:flex;justify-content:center;align-items:center;height:100%}:host .empty-container .nofile{width:128px;height:128px;opacity:.09}:host .preview-container{position:absolute;inset:0;overflow:hidden}:host .preview-container .slide{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;align-items:center;justify-content:center}:host .preview-container .slide .large-content{position:absolute;top:0;cursor:pointer;display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;justify-content:center;width:100%;padding:var(--app-pane-padding);color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.5)}:host .preview-container .slide .large-content.not-supported,:host .preview-container .slide .large-content:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .preview-container .slide .large-content.not-supported{cursor:inherit}:host .preview-container .slide img{padding:var(--app-pane-padding);width:100%}:host .preview-container .slide eo-icon{width:128px;height:128px;opacity:.2}:host .attachments{position:absolute;z-index:5;color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.6);right:calc(var(--app-pane-padding) / 2);bottom:calc(var(--app-pane-padding) * 3);display:flex;flex-flow:row;align-items:flex-end;border-radius:2px;max-width:calc(100% - 16px)}:host .attachments:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .attachments eo-icon{flex:0 0 auto;margin:calc(var(--app-pane-padding) / 2)}:host .attachments .attachments-list{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;overflow:auto;max-height:150px;padding:calc(var(--app-pane-padding) / 2);flex-flow:wrap}:host .attachments .attachments-list .attachment{border-radius:4px;background-color:rgba(var(--color-white-rgb),.1);padding:calc(var(--app-pane-padding) / 4);margin:calc(var(--app-pane-padding) / 8);cursor:pointer;border:1px solid rgba(var(--color-white-rgb),0);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .attachments .attachments-list .attachment:hover{border-color:rgba(var(--color-white-rgb),.5)}:host .attachments .attachments-list .attachment.current{background-color:var(--color-accent)}:host .attachments .attachments-list .attachment.main{background-color:var(--color-primary);order:100;flex:1 1 100%}:host .attachments .attachments-list .attachment:not(.main){font-style:italic}:host .attachments.notmain{background-color:var(--color-accent)}:host .attachments.active{background-color:rgba(var(--color-primary-rgb),.9);align-items:center;bottom:calc(var(--app-pane-padding) / 2)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .iframe__loader{margin:auto}\n"] }]
7982
- }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i1.DmsService }, { type: i0.Renderer2 }, { type: i1.SystemService }, { type: i1.Config }, { type: PluginsService }], propDecorators: { undockDisabled: [{
8064
+ }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i1.DmsService }, { type: i0.Renderer2 }, { type: i1.SystemService }, { type: i1.Config }, { type: i2.HttpClient }, { type: PluginsService }, { type: i1.BackendService }], propDecorators: { undockDisabled: [{
7983
8065
  type: Input
7984
8066
  }], enableCloseBtn: [{
7985
8067
  type: Input
@@ -8779,7 +8861,7 @@ let FormElementTableComponent = class FormElementTableComponent {
8779
8861
  useExisting: forwardRef(() => FormElementTableComponent),
8780
8862
  multi: true,
8781
8863
  }
8782
- ], viewQueries: [{ propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }, { propertyName: "overlayGrid", first: true, predicate: ["overlayGrid"], descendants: true }, { propertyName: "rowEdit", first: true, predicate: ["rowEdit"], descendants: true }], ngImport: i0, template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"object-form-table-header\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData?.length\" [iconSrc]=\"'assets/_default/svg/ic_export.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon *ngIf=\"!_params.element.readonly\" class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_import.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.upload'| translate)\" (click)=\"file.click()\"></eo-icon>\n <input type=\"file\" accept=\".csv\" style=\"display:none;\" #file (change)=\"importCSV($event.target)\"\n (click)=\"$event.target.value = null\">\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\" [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\" (cellClicked)=\"onCellClicked($event)\" (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog [title]=\"params.element.label\" [visible]=\"showDialog\" [dirtyCheck]=\"rowEdit?.pendingTaskId\"\n [minWidth]=\"_params.situation !== 'SEARCH' ? minWidth : 200\" [width]=\"_params.situation !== 'SEARCH' ? '95vw' : 500\"\n [height]=\"height\" [styleClass]=\"'object-form-table-dialog'\" (hide)=\"onClose()\" [isFormTable]=\"true\"\n [hasPreviewFile]=\"hasPreviewFile\" [showPreview]=\"showPreview\" (onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\" *ngIf=\"showDialog\">\n <yvc-split-view (layoutSettingsChange)=\"onLayoutSettingsChange($event)\">\n <!-- the table itself-->\n <ng-template yvcSplitArea [size]=\"layoutSettings.areas[0].size\" [visible]=\"_params.situation !== 'SEARCH'\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"object-form-table-header\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #overlayGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\" (cellClicked)=\"onCellClickedRowEdit($event)\"\n (mousedown)=\"onMouseDown($event)\" (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- table edit component-->\n <ng-template yvcSplitArea [size]=\"layoutSettings.areas[1].size\" [visible]=\"!!editingRow\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" [limitReached]=\"limit <= overlayGridOptions?.rowData?.length\" #rowEdit\n (onSave)=\"updateRow($event)\" (onSaveCopy)=\"copyRow($event)\" (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </ng-template>\n\n <!-- viewer-->\n <ng-template yvcSplitArea [size]=\"layoutSettings.areas[2].size\" [visible]=\"showPreview && hasPreviewFile\">\n <eo-media *ngIf=\"hasPreviewFile\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object?.id === params.object?.content?.id\" [dmsObject]=\"params.object\"></eo-media>\n </ng-template>\n </yvc-split-view>\n </div>\n</eo-dialog>\n\n<eo-dialog [title]=\"('eo.form.table.csv.import.report.title' | translate)\" [visible]=\"showImportReportDialog\"\n (hide)=\"cancelImportReport()\" [styleClass]=\"'import-report__dialog'\">\n <div class=\"body\">\n <h4 translate [translateParams]=\"{readRows: mappedRows.length}\">eo.form.table.csv.import.report.readRows</h4>\n <div *ngIf=\"mappingErrorFields.length !== 0\" class=\"flex-col\">\n <h4 translate>eo.form.table.csv.import.report.errors</h4>\n <table>\n <thead>\n <tr>\n <th translate>eo.form.table.csv.import.report.errors.row</th>\n <th translate>eo.form.table.csv.import.report.errors.csvColumn</th>\n <th translate>eo.form.table.csv.import.report.errors.tableColumn</th>\n <th translate>eo.form.table.csv.import.report.errors.value</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let error of mappingErrorFields; let i = index\">\n <tr>\n <td>{{error.row + 1}}</td>\n <td>{{error.uploadedName}}</td>\n <td>{{error.technicalName}}</td>\n <td>{{error.value}}</td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n <div class=\"actions\">\n <button (click)=\"cancelImportReport()\" class=\"button-cancel\" translate>eo.resubmission.cancel</button>\n <button (click)=\"addImportValuesToTable()\" class=\"primary\" translate>eo.form.table.csv.import.report.import</button>\n </div>\n</eo-dialog>\n", styles: [":host-context(.dark) .label{color:var(--color-white);background-color:rgba(var(--color-white-rgb),.1)}:host-context(.dark) ::ng-deep .ag-theme-balham .ag-header-cell{color:rgba(var(--color-white-rgb),.7);background-color:rgba(var(--color-white-rgb),.1)}:host-context(.dark) ::ng-deep .ag-theme-balham .ag-root{background-color:transparent}:host ::ng-deep{--oft-row-height: 30px}:host ::ng-deep .ag-theme-balham{position:absolute;top:0;bottom:0;width:100%;box-sizing:border-box}:host ::ng-deep .ag-theme-balham .ag-root{background-color:var(--color-white)}:host ::ng-deep .ag-theme-balham .copy-cell{animation-name:copy-cell;animation-duration:4s}@keyframes copy-cell{0%{background-color:var(--color-accent)}to{background-color:none}}:host ::ng-deep .ag-theme-balham .ag-cell{display:flex;align-items:center;padding:0 calc(var(--app-pane-padding) / 4);font-size:var(--font-caption);line-height:var(--oft-row-height)}:host ::ng-deep .ag-theme-balham .ag-cell.ag-cell-focus{background-color:var(--list-item-hover-background);outline:0!important;border-color:transparent!important}:host ::ng-deep .ag-theme-balham .ag-cell svg{pointer-events:none}:host ::ng-deep .ag-theme-balham .ag-cell.res-ico,:host ::ng-deep .ag-theme-balham .ag-cell.col-boolean{justify-content:center}:host ::ng-deep .ag-theme-balham .ag-cell.col-number{justify-content:flex-end}:host ::ng-deep .ag-theme-balham .ag-cell .no-value{border-radius:2px;font-size:var(--font-hint);background-color:var(--color-accent);padding:calc(var(--app-pane-padding) / 4);color:var(--color-white)}:host ::ng-deep .ag-theme-balham .ag-cell .action-icon{display:flex;cursor:pointer}:host ::ng-deep .ag-theme-balham .ag-cell .action-icon svg{fill:var(--text-color-caption)}:host ::ng-deep .ag-theme-balham .ag-header-cell{color:var(--text-color-caption);font-size:var(--font-caption);line-height:var(--oft-row-height);padding-left:calc(var(--app-pane-padding) / 2);padding-right:calc(var(--app-pane-padding) / 2);font-weight:400;border-bottom-color:var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .ag-header-cell:after{opacity:0}:host ::ng-deep .ag-theme-balham .ag-ltr .ag-header-cell{border-right:1px solid var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .ag-rtl .ag-header-cell{border-left:1px solid var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .chip{display:flex;align-items:center}:host ::ng-deep .ag-theme-balham .chip .link{display:flex;align-items:center}:host{width:100%;display:block;padding:0!important;background:rgba(var(--color-black-rgb),.02);border:1px solid var(--color-gainsboro)}:host.ng-invalid{border-color:var(--color-error);background:rgba(var(--color-error),.15)}:host .object-form-table .grid-body{width:100%;position:relative}:host .object-form-table .grid-body.size-supersmall{height:100px}:host .object-form-table .grid-body.size-small{height:200px}:host .object-form-table .grid-body.size-medium{height:300px}:host .object-form-table .grid-body.size-large{height:400px}:host .object-form-table .grid-body ag-grid-angular{width:100%;height:100%;background-color:transparent}:host .object-form-table.medium .body{height:300px}:host .object-form-table.large .body{height:500px}:host .object-form-table-header{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);border-bottom:0}:host .object-form-table-header span{display:block;flex:1 1 auto}:host .object-form-table-header eo-icon.stf{width:16px;height:16px;margin:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption);cursor:pointer}:host .object-form-table-header eo-icon.stf.add-row{width:24px;height:24px;background-color:var(--text-color-hint);color:#fff;border-radius:2px}:host .object-form-table-header button.add{border-radius:2px;padding:calc(var(--app-pane-padding) / 2)}:host .object-form-table-header button.export{border-radius:2px;border:1px solid black;color:#000;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 4);font-size:var(--font-hint);margin:0 calc(var(--app-pane-padding) / 4)}::ng-deep .import-report__dialog{padding:8px;min-height:unset!important;overflow:hidden}::ng-deep .import-report__dialog .body{overflow:auto}::ng-deep .import-report__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}::ng-deep .import-report__dialog td,::ng-deep .import-report__dialog th{border:1px solid #dddddd;text-align:left;padding:8px}::ng-deep .import-report__dialog .actions{display:flex;flex:0;flex-direction:row;min-height:0;min-width:0;align-items:flex-end;justify-content:flex-end;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:3em}::ng-deep .import-report__dialog .actions button{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i8.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: MediaComponent, selector: "eo-media", inputs: ["undockDisabled", "enableCloseBtn", "useVersion", "attachments", "searchTerm", "previewUri", "previewFile", "dmsObject"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: RowEditComponent, selector: "eo-row-edit", inputs: ["limitReached", "row"], outputs: ["onCancel", "onSave", "onSaveCopy", "onDelete"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
8864
+ ], viewQueries: [{ propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }, { propertyName: "overlayGrid", first: true, predicate: ["overlayGrid"], descendants: true }, { propertyName: "rowEdit", first: true, predicate: ["rowEdit"], descendants: true }], ngImport: i0, template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"object-form-table-header\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData?.length\" [iconSrc]=\"'assets/_default/svg/ic_export.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon *ngIf=\"!_params.element.readonly\" class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_import.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.upload'| translate)\" (click)=\"file.click()\"></eo-icon>\n <input type=\"file\" accept=\".csv\" style=\"display:none;\" #file (change)=\"importCSV($event.target)\"\n (click)=\"$event.target.value = null\">\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\" [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\" (cellClicked)=\"onCellClicked($event)\" (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog [title]=\"params.element.label\" [visible]=\"showDialog\" [dirtyCheck]=\"rowEdit?.pendingTaskId\"\n [minWidth]=\"_params.situation !== 'SEARCH' ? minWidth : 200\" [width]=\"_params.situation !== 'SEARCH' ? '95vw' : 500\"\n [height]=\"height\" [styleClass]=\"'object-form-table-dialog'\" (hide)=\"onClose()\" [isFormTable]=\"true\"\n [hasPreviewFile]=\"hasPreviewFile\" [showPreview]=\"showPreview\" (onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\" *ngIf=\"showDialog\">\n <yvc-split-view (layoutSettingsChange)=\"onLayoutSettingsChange($event)\">\n <!-- the table itself-->\n <ng-template yvcSplitArea [size]=\"layoutSettings.areas[0].size\" [visible]=\"_params.situation !== 'SEARCH'\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"object-form-table-header\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #overlayGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\" (cellClicked)=\"onCellClickedRowEdit($event)\"\n (mousedown)=\"onMouseDown($event)\" (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- table edit component-->\n <ng-template yvcSplitArea [size]=\"layoutSettings.areas[1].size\" [visible]=\"!!editingRow\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" [limitReached]=\"limit <= overlayGridOptions?.rowData?.length\" #rowEdit\n (onSave)=\"updateRow($event)\" (onSaveCopy)=\"copyRow($event)\" (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </ng-template>\n\n <!-- viewer-->\n <ng-template yvcSplitArea [size]=\"layoutSettings.areas[2].size\" [visible]=\"showPreview && hasPreviewFile\">\n <eo-media *ngIf=\"hasPreviewFile\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object?.id === params.object?.content?.id\" [dmsObject]=\"params.object\"></eo-media>\n </ng-template>\n </yvc-split-view>\n </div>\n</eo-dialog>\n\n<eo-dialog [title]=\"('eo.form.table.csv.import.report.title' | translate)\" [visible]=\"showImportReportDialog\"\n (hide)=\"cancelImportReport()\" [styleClass]=\"'import-report__dialog'\">\n <div class=\"body\">\n <h4 translate [translateParams]=\"{readRows: mappedRows.length}\">eo.form.table.csv.import.report.readRows</h4>\n <div *ngIf=\"mappingErrorFields.length !== 0\" class=\"flex-col\">\n <h4 translate>eo.form.table.csv.import.report.errors</h4>\n <table>\n <thead>\n <tr>\n <th translate>eo.form.table.csv.import.report.errors.row</th>\n <th translate>eo.form.table.csv.import.report.errors.csvColumn</th>\n <th translate>eo.form.table.csv.import.report.errors.tableColumn</th>\n <th translate>eo.form.table.csv.import.report.errors.value</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let error of mappingErrorFields; let i = index\">\n <tr>\n <td>{{error.row + 1}}</td>\n <td>{{error.uploadedName}}</td>\n <td>{{error.technicalName}}</td>\n <td>{{error.value}}</td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n <div class=\"actions\">\n <button (click)=\"cancelImportReport()\" class=\"button-cancel\" translate>eo.resubmission.cancel</button>\n <button (click)=\"addImportValuesToTable()\" class=\"primary\" translate>eo.form.table.csv.import.report.import</button>\n </div>\n</eo-dialog>\n", styles: [":host-context(.dark) .label{color:var(--color-white);background-color:rgba(var(--color-white-rgb),.1)}:host-context(.dark) ::ng-deep .ag-theme-balham .ag-header-cell{color:rgba(var(--color-white-rgb),.7);background-color:rgba(var(--color-white-rgb),.1)}:host-context(.dark) ::ng-deep .ag-theme-balham .ag-root{background-color:transparent}:host ::ng-deep{--oft-row-height: 30px}:host ::ng-deep .ag-theme-balham{position:absolute;top:0;bottom:0;width:100%;box-sizing:border-box}:host ::ng-deep .ag-theme-balham .ag-root{background-color:var(--color-white)}:host ::ng-deep .ag-theme-balham .copy-cell{animation-name:copy-cell;animation-duration:4s}@keyframes copy-cell{0%{background-color:var(--color-accent)}to{background-color:none}}:host ::ng-deep .ag-theme-balham .ag-cell{display:flex;align-items:center;padding:0 calc(var(--app-pane-padding) / 4);font-size:var(--font-caption);line-height:var(--oft-row-height)}:host ::ng-deep .ag-theme-balham .ag-cell.ag-cell-focus{background-color:var(--list-item-hover-background);outline:0!important;border-color:transparent!important}:host ::ng-deep .ag-theme-balham .ag-cell svg{pointer-events:none}:host ::ng-deep .ag-theme-balham .ag-cell.res-ico,:host ::ng-deep .ag-theme-balham .ag-cell.col-boolean{justify-content:center}:host ::ng-deep .ag-theme-balham .ag-cell.col-number{justify-content:flex-end}:host ::ng-deep .ag-theme-balham .ag-cell .no-value{border-radius:2px;font-size:var(--font-hint);background-color:var(--color-accent);padding:calc(var(--app-pane-padding) / 4);color:var(--color-white)}:host ::ng-deep .ag-theme-balham .ag-cell .action-icon{display:flex;cursor:pointer}:host ::ng-deep .ag-theme-balham .ag-cell .action-icon svg{fill:var(--text-color-caption)}:host ::ng-deep .ag-theme-balham .ag-header-cell{color:var(--text-color-caption);font-size:var(--font-caption);line-height:var(--oft-row-height);padding-left:calc(var(--app-pane-padding) / 2);padding-right:calc(var(--app-pane-padding) / 2);font-weight:400;border-bottom-color:var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .ag-header-cell:after{opacity:0}:host ::ng-deep .ag-theme-balham .ag-ltr .ag-header-cell{border-right:1px solid var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .ag-rtl .ag-header-cell{border-left:1px solid var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .chip{display:flex;align-items:center}:host ::ng-deep .ag-theme-balham .chip .link{display:flex;align-items:center}:host{width:100%;display:block;padding:0!important;background:rgba(var(--color-black-rgb),.02);border:1px solid var(--color-gainsboro)}:host.ng-invalid{border-color:var(--color-error);background:rgba(var(--color-error),.15)}:host .object-form-table .grid-body{width:100%;position:relative}:host .object-form-table .grid-body.size-supersmall{height:100px}:host .object-form-table .grid-body.size-small{height:200px}:host .object-form-table .grid-body.size-medium{height:300px}:host .object-form-table .grid-body.size-large{height:400px}:host .object-form-table .grid-body ag-grid-angular{width:100%;height:100%;background-color:transparent}:host .object-form-table.medium .body{height:300px}:host .object-form-table.large .body{height:500px}:host .object-form-table-header{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);border-bottom:0}:host .object-form-table-header span{display:block;flex:1 1 auto}:host .object-form-table-header eo-icon.stf{width:16px;height:16px;margin:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption);cursor:pointer}:host .object-form-table-header eo-icon.stf.add-row{width:24px;height:24px;background-color:var(--text-color-hint);color:#fff;border-radius:2px}:host .object-form-table-header button.add{border-radius:2px;padding:calc(var(--app-pane-padding) / 2)}:host .object-form-table-header button.export{border-radius:2px;border:1px solid black;color:#000;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 4);font-size:var(--font-hint);margin:0 calc(var(--app-pane-padding) / 4)}::ng-deep .import-report__dialog{padding:8px;min-height:unset!important;overflow:hidden}::ng-deep .import-report__dialog .body{overflow:auto}::ng-deep .import-report__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}::ng-deep .import-report__dialog td,::ng-deep .import-report__dialog th{border:1px solid #dddddd;text-align:left;padding:8px}::ng-deep .import-report__dialog .actions{display:flex;flex:0;flex-direction:row;min-height:0;min-width:0;align-items:flex-end;justify-content:flex-end;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:3em}::ng-deep .import-report__dialog .actions button{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i8$1.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: MediaComponent, selector: "eo-media", inputs: ["undockDisabled", "enableCloseBtn", "useVersion", "attachments", "searchTerm", "previewUri", "previewFile", "dmsObject"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: RowEditComponent, selector: "eo-row-edit", inputs: ["limitReached", "row"], outputs: ["onCancel", "onSave", "onSaveCopy", "onDelete"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
8783
8865
  };
8784
8866
  FormElementTableComponent = __decorate([
8785
8867
  UntilDestroy()
@@ -12226,7 +12308,7 @@ let GridComponent = class GridComponent {
12226
12308
  if (!this.api) {
12227
12309
  return;
12228
12310
  }
12229
- const rowNode = typeof row === 'number' ? this.api.getModel().getRow(row) : this.api.getRowNode(row);
12311
+ const rowNode = typeof row === 'number' ? this.api.getModel()?.getRow(row) : this.api.getRowNode(row);
12230
12312
  let index = rowNode ? rowNode.rowIndex : 0;
12231
12313
  if (rowNode && rowNode.data) {
12232
12314
  if (selection) {
@@ -12324,7 +12406,7 @@ let GridComponent = class GridComponent {
12324
12406
  return !this._gridCount.rowCount;
12325
12407
  }
12326
12408
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GridComponent, deps: [{ token: i1.TranslateService }, { token: i1.UserService }, { token: GridService }, { token: i2$1.Router }, { token: PendingChangesService }], target: i0.ɵɵFactoryTarget.Component }); }
12327
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: GridComponent, selector: "eo-grid", inputs: { selectFirst: "selectFirst", selectionLimit: "selectionLimit", sizeToFit: "sizeToFit", fullWidth: "fullWidth", showHeader: "showHeader", showFooter: "showFooter", loaderContent: "loaderContent", options: "options", gridOptions: "gridOptions" }, outputs: { eoGridCountChanged: "eoGridCountChanged", eoGridSelectionChanged: "eoGridSelectionChanged", eoGridFocusChanged: "eoGridFocusChanged", eoGridCellClick: "eoGridCellClick", eoGridDoubleClick: "eoGridDoubleClick", eoGridContextMenuClick: "eoGridContextMenuClick", eoGridColumnResized: "eoGridColumnResized" }, host: { listeners: { "keydown.control.alt.shift.c": "copyCellHandler($event)", "keydown.control.shift.c": "copyCellHandler($event)", "keydown.control.alt.c": "copyCellHandler($event)", "keydown.control.c": "copyCellHandler($event)" } }, viewQueries: [{ propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }], ngImport: i0, template: "<div class=\"eo-grid-empty\" [hidden]=\"!(isEmpty || isEmptyRows)\">\n <ng-content select=\".empty\"></ng-content>\n</div>\n<div class=\"eo-grid-header\" *ngIf=\"showHeader\" [hidden]=\"isEmpty\">\n <ng-content select=\".header\"></ng-content>\n</div>\n<ag-grid-angular #agGrid class=\"ag-theme-balham\" [modules]=\"modules\"\n [hidden]=\"isEmpty\"\n [ngClass]=\"{'hide-header': showHeader, 'enable-footer': showFooter, 'full-width': fullWidth}\"\n [gridOptions]=\"gridOptions\"\n (modelUpdated)=\"onModelUpdated()\"\n (cellFocused)=\"onCellFocused($event)\"\n (cellContextMenu)=\"onContextMenuClicked($event)\"\n (contextmenu)=\"$event.stopPropagation();$event.preventDefault()\"\n (mousedown)=\"onMouseDown($event)\"\n (cellClicked)=\"onCellClicked($event)\"\n (cellDoubleClicked)=\"onCellDoubleClicked($event)\"\n (selectionChanged)=\"onSelectionChanged($event)\"\n (columnResized)=\"onColumnResized($event)\"\n (gridReady)=\"onReady()\">\n</ag-grid-angular>\n<div class=\"eo-grid-footer\" *ngIf=\"showFooter\" [hidden]=\"isEmpty\">\n <ng-content select=\".footer\"></ng-content>\n</div>\n", styles: [":host-context(.dark) .eo-grid-empty{color:var(--color-white)}eo-grid{position:absolute;inset:0;overflow:hidden;color:var(--text-color-caption);--header-height: 30px;--footer-height: 40px}eo-grid #center{overflow-x:hidden}eo-grid .eo-grid-empty,eo-grid .eo-grid-footer,eo-grid .eo-grid-header{position:absolute;display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;z-index:1;width:100%;box-sizing:border-box;align-items:center;height:var(--header-height);padding:0 calc(var(--app-pane-padding) / 4 * 3);border-bottom:1px solid var(--panel-header-border-bottom-color)}eo-grid .eo-grid-empty .empty,eo-grid .eo-grid-footer .empty,eo-grid .eo-grid-header .empty{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;align-items:center;font-style:italic;justify-content:space-around;background-color:rgba(var(--color-black-rgb),0);border-radius:2px;-webkit-border-radius:2px;height:auto;padding:5px}eo-grid .eo-grid-empty .header,eo-grid .eo-grid-empty .footer,eo-grid .eo-grid-footer .header,eo-grid .eo-grid-footer .footer,eo-grid .eo-grid-header .header,eo-grid .eo-grid-header .footer{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;justify-content:flex-end}eo-grid .eo-grid-empty .header>*,eo-grid .eo-grid-empty .footer>*,eo-grid .eo-grid-footer .header>*,eo-grid .eo-grid-footer .footer>*,eo-grid .eo-grid-header .header>*,eo-grid .eo-grid-header .footer>*{margin:0 calc(var(--app-pane-padding) / 4)}eo-grid .eo-grid-empty{border:none;top:var(--header-height);height:calc(100% - var(--footer-height) - var(--header-height))}eo-grid .eo-grid-footer{bottom:0;height:var(--footer-height);border-top:1px solid var(--panel-header-border-bottom-color)}eo-grid ag-grid-angular.ag-theme-balham{position:absolute;top:0;bottom:0;width:100%;box-sizing:border-box;font-size:13px}eo-grid ag-grid-angular.ag-theme-balham #center{overflow-x:hidden}eo-grid ag-grid-angular.ag-theme-balham.enable-footer{bottom:var(--footer-height)}eo-grid ag-grid-angular.ag-theme-balham.full-width{top:var(--header-height)}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-center-cols-container,eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-body-container{width:100%!important}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-cell{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;width:100%!important}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-cell>span{width:100%}eo-grid ag-grid-angular.ag-theme-balham.hide-header .ag-header{display:none;height:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell-menu-button .ag-icon-menu{height:30px}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell{line-height:30px;padding-left:var(--app-pane-padding);padding-right:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell:after{margin-top:0;height:100%;border-right:1px solid var(--list-item-border-color)}eo-grid ag-grid-angular.ag-theme-balham .ag-header{background-color:#0000;border-bottom:1px solid var(--list-item-border-color)}eo-grid ag-grid-angular.ag-theme-balham .ag-tab-header .ag-tab.ag-tab-selected{border-bottom:2px solid var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell-menu-button{float:left}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop-cell{border-radius:2px;-webkit-border-radius:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop-cell .ag-column-drag{margin-top:0}eo-grid ag-grid-angular.ag-theme-balham .chip:last-of-type:after{position:absolute;right:0;top:0;bottom:0;width:var(--app-pane-padding);content:\" \";background:#0000;background:-moz-linear-gradient(left,rgba(0,0,0,0) 0%,rgb(255,255,255) 100%);background:-webkit-linear-gradient(left,rgba(0,0,0,0) 0%,rgb(255,255,255) 100%);background:linear-gradient(to right,#0000,#fff)}eo-grid ag-grid-angular.ag-theme-balham .ag-row{border:none;background:var(--color-white);-webkit-user-select:none;user-select:none}eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover.ag-row-selected:before{background:var(--list-item-hover-background)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-header{border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-header .ag-header-cell:first-child:after{border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container{width:7px!important;min-width:7px!important;max-width:7px!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-cell[col-id=__selectionField],eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-cell[col-id=__selectionField]{border:0!important;padding:0!important;width:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-focus:not(.ag-row-group):before{content:\"\";height:100%;width:3px!important;position:absolute;background:linear-gradient(0deg,rgb(255,255,255) 0%,rgb(255,255,255) 5%,var(--color-accent) 5%,var(--color-accent) 95%,rgb(255,255,255) 95%,rgb(255,255,255) 100%)}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-focus:not(.ag-row-group):before{right:0}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected:not(.ag-row-group):before{background:var(--color-primary)}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected.ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected.ag-row-focus:not(.ag-row-group):before{background:linear-gradient(0deg,rgb(255,255,255) 0%,rgb(255,255,255) 5%,var(--color-accent) 5%,var(--color-accent) 95%,rgb(255,255,255) 95%,rgb(255,255,255) 100%)}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected:before{background-color:transparent}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{border:none;background:var(--list-item-selected-background)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected .chip:last-of-type:after{background:#0000;background:-moz-linear-gradient(left,rgba(0,0,0,0) 0%,var(--list-item-selected-background) 100%);background:-webkit-linear-gradient(left,rgba(0,0,0,0) 0%,var(--list-item-selected-background) 100%);background:linear-gradient(to right,rgba(0,0,0,0) 0%,var(--list-item-selected-background) 100%)}eo-grid ag-grid-angular.ag-theme-balham .copy-cell{animation-name:copy-cell;animation-duration:4s}@keyframes copy-cell{0%{background-color:var(--color-accent)}to{background-color:none}}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-range-selected{background:var(--list-item-selected-background)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell,eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus{border:1px solid;border-color:#0000!important;border-bottom-color:var(--list-item-border-color)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus{background-color:var(--list-item-hover-background);outline:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus[col-id=__custom]{background-color:transparent}eo-grid ag-grid-angular.ag-theme-balham .ag-cell{display:flex;align-items:center;font-size:var(--font-body);line-height:1.7em;-webkit-user-select:none;user-select:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell svg{pointer-events:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.ag-cell-value{white-space:nowrap;text-overflow:ellipsis}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a{text-decoration:none;color:var(--text-color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a.link{color:var(--text-color-body)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a.link:hover{color:var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a:hover{text-decoration:underline}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.res-ico,eo-grid ag-grid-angular.ag-theme-balham .ag-cell.col-boolean{justify-content:center}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.col-number{justify-content:flex-end}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .object-type{opacity:.5;height:24px;width:24px;vertical-align:bottom}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type-label,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .object-type-label{padding:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button{width:100%;padding:4px var(--app-pane-padding);white-space:nowrap;color:var(--text-color-caption);border-color:rgba(var(--color-black-rgb),0);background:rgba(var(--color-black-rgb),.06);margin:0!important;border-radius:2px;-webkit-border-radius:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button:focus{background:var(--color-accent);color:var(--color-white)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-condition[ref=eJoinOperatorPanel],eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-body[ref=eCondition2Body],eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-select[ref=eOptions2],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-condition[ref=eJoinOperatorPanel],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-body[ref=eCondition2Body],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-select[ref=eOptions2]{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled{padding:0;color:var(--text-color-caption);height:20px;width:20px;border-color:rgba(var(--color-black-rgb),0);background:rgba(var(--color-black-rgb),.06);border-radius:2px;-webkit-border-radius:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled:focus{background:var(--color-accent);color:var(--color-white)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled eo-icon,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled eo-icon{height:var(--app-pane-padding);width:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell input,eo-grid ag-grid-angular.ag-theme-balham .ag-filter input{font-family:inherit;width:100%;-webkit-user-select:all;user-select:all;border:0!important;border-bottom:1px solid!important;border-bottom-color:rgba(var(--color-black-rgb),.1)!important;height:2em;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell input:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter input:focus{border-bottom-color:var(--color-accent)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .yvc-datepicker input,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .yvc-datepicker input{padding:0!important;height:auto!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{font-family:inherit;border:none;height:2em;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-bottom:1px solid rgba(var(--color-black-rgb),.1);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z%22%2F%3E%3C%2Fsvg%3E\") no-repeat;background-position-x:right;background-position-y:center;background-size:var(--app-pane-padding)}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{background-position-x:right;none:left}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{none:right;background-position-x:left}eo-grid ag-grid-angular.ag-theme-balham .ag-cell select:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter select:focus{border-bottom:1px solid var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-list-filter,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-list-filter{display:block;padding-left:calc(var(--app-pane-padding) / 2)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom{display:block;margin:0 calc(var(--app-pane-padding) / 4)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom yvc-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom yvc-datepicker{width:100%}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom yvc-datepicker yvc-date-input-text,eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom yvc-datepicker yvc-date-input,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom yvc-datepicker yvc-date-input-text,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom yvc-datepicker yvc-date-input{flex:1}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization{margin-top:calc(var(--app-pane-padding) / 4);position:relative}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{position:absolute;top:0}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{right:0}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{left:0}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization .ui-autocomplete-panel{position:relative;top:3px!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container{flex-flow:column;border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token{margin:2px calc(var(--app-pane-padding) / 2)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token{padding:0}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button{right:8px}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button{left:8px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type-label,eo-grid ag-grid-angular.ag-theme-balham .ag-group-cell>svg.checkbox{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-ltr .ag-cell{padding:0 var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-cell{padding:0 var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell-label{text-align:right}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell.contextfolder .ag-header-cell-text:before{content:\"*\";display:inline-block;padding:0 calc(var(--app-pane-padding) / 4);background:var(--color-primary-3);border-radius:2px;-webkit-border-radius:2px;color:var(--color-white);line-height:14px}eo-grid ag-grid-angular.ag-theme-balham .ag-root-wrapper{border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell.contextfolder .ag-header-cell-text:before{margin-left:calc(var(--app-pane-padding) / 2)}eo-grid ag-grid-angular.ag-theme-balham .ag-ltr .ag-header-cell.contextfolder .ag-header-cell-text:before{margin-right:calc(var(--app-pane-padding) / 2)}eo-grid ag-grid-angular.ag-theme-balham .ag-group-value{vertical-align:middle}eo-grid .multiCell span{display:flex;flex-direction:row}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }], encapsulation: i0.ViewEncapsulation.None }); }
12409
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: GridComponent, selector: "eo-grid", inputs: { selectFirst: "selectFirst", selectionLimit: "selectionLimit", sizeToFit: "sizeToFit", fullWidth: "fullWidth", showHeader: "showHeader", showFooter: "showFooter", loaderContent: "loaderContent", options: "options", gridOptions: "gridOptions" }, outputs: { eoGridCountChanged: "eoGridCountChanged", eoGridSelectionChanged: "eoGridSelectionChanged", eoGridFocusChanged: "eoGridFocusChanged", eoGridCellClick: "eoGridCellClick", eoGridDoubleClick: "eoGridDoubleClick", eoGridContextMenuClick: "eoGridContextMenuClick", eoGridColumnResized: "eoGridColumnResized" }, host: { listeners: { "keydown.control.alt.shift.c": "copyCellHandler($event)", "keydown.control.shift.c": "copyCellHandler($event)", "keydown.control.alt.c": "copyCellHandler($event)", "keydown.control.c": "copyCellHandler($event)" } }, viewQueries: [{ propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }], ngImport: i0, template: "<div class=\"eo-grid-empty\" [hidden]=\"!(isEmpty || isEmptyRows)\">\n <ng-content select=\".empty\"></ng-content>\n</div>\n<div class=\"eo-grid-header\" *ngIf=\"showHeader\" [hidden]=\"isEmpty\">\n <ng-content select=\".header\"></ng-content>\n</div>\n<ag-grid-angular #agGrid class=\"ag-theme-balham\" [modules]=\"modules\"\n [hidden]=\"isEmpty\"\n [ngClass]=\"{'hide-header': showHeader, 'enable-footer': showFooter, 'full-width': fullWidth}\"\n [gridOptions]=\"gridOptions\"\n (modelUpdated)=\"onModelUpdated()\"\n (cellFocused)=\"onCellFocused($event)\"\n (cellContextMenu)=\"onContextMenuClicked($event)\"\n (contextmenu)=\"$event.stopPropagation();$event.preventDefault()\"\n (mousedown)=\"onMouseDown($event)\"\n (cellClicked)=\"onCellClicked($event)\"\n (cellDoubleClicked)=\"onCellDoubleClicked($event)\"\n (selectionChanged)=\"onSelectionChanged($event)\"\n (columnResized)=\"onColumnResized($event)\"\n (gridReady)=\"onReady()\">\n</ag-grid-angular>\n<div class=\"eo-grid-footer\" *ngIf=\"showFooter\" [hidden]=\"isEmpty\">\n <ng-content select=\".footer\"></ng-content>\n</div>\n", styles: [":host-context(.dark) .eo-grid-empty{color:var(--color-white)}eo-grid{position:absolute;inset:0;overflow:hidden;color:var(--text-color-caption);--header-height: 30px;--footer-height: 40px}eo-grid #center{overflow-x:hidden}eo-grid .eo-grid-empty,eo-grid .eo-grid-footer,eo-grid .eo-grid-header{position:absolute;display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;z-index:1;width:100%;box-sizing:border-box;align-items:center;height:var(--header-height);padding:0 calc(var(--app-pane-padding) / 4 * 3);border-bottom:1px solid var(--panel-header-border-bottom-color)}eo-grid .eo-grid-empty .empty,eo-grid .eo-grid-footer .empty,eo-grid .eo-grid-header .empty{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;align-items:center;font-style:italic;justify-content:space-around;background-color:rgba(var(--color-black-rgb),0);border-radius:2px;-webkit-border-radius:2px;height:auto;padding:5px}eo-grid .eo-grid-empty .header,eo-grid .eo-grid-empty .footer,eo-grid .eo-grid-footer .header,eo-grid .eo-grid-footer .footer,eo-grid .eo-grid-header .header,eo-grid .eo-grid-header .footer{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;justify-content:flex-end}eo-grid .eo-grid-empty .header>*,eo-grid .eo-grid-empty .footer>*,eo-grid .eo-grid-footer .header>*,eo-grid .eo-grid-footer .footer>*,eo-grid .eo-grid-header .header>*,eo-grid .eo-grid-header .footer>*{margin:0 calc(var(--app-pane-padding) / 4)}eo-grid .eo-grid-empty{border:none;top:var(--header-height);height:calc(100% - var(--footer-height) - var(--header-height))}eo-grid .eo-grid-footer{bottom:0;height:var(--footer-height);border-top:1px solid var(--panel-header-border-bottom-color)}eo-grid ag-grid-angular.ag-theme-balham{position:absolute;top:0;bottom:0;width:100%;box-sizing:border-box;font-size:13px}eo-grid ag-grid-angular.ag-theme-balham #center{overflow-x:hidden}eo-grid ag-grid-angular.ag-theme-balham.enable-footer{bottom:var(--footer-height)}eo-grid ag-grid-angular.ag-theme-balham.full-width{top:var(--header-height)}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-center-cols-container,eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-body-container{width:100%!important}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-cell{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;width:100%!important}eo-grid ag-grid-angular.ag-theme-balham.full-width .ag-cell>span{width:100%}eo-grid ag-grid-angular.ag-theme-balham.hide-header .ag-header{display:none;height:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell-menu-button .ag-icon-menu{height:30px}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell{line-height:30px;padding-left:var(--app-pane-padding);padding-right:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell:after{margin-top:0;height:100%;border-right:1px solid var(--list-item-border-color)}eo-grid ag-grid-angular.ag-theme-balham .ag-header{background-color:#0000;border-bottom:1px solid var(--list-item-border-color)}eo-grid ag-grid-angular.ag-theme-balham .ag-tab-header .ag-tab.ag-tab-selected{border-bottom:2px solid var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell-menu-button{float:left}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop-cell{border-radius:2px;-webkit-border-radius:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-column-drop-cell .ag-column-drag{margin-top:0}eo-grid ag-grid-angular.ag-theme-balham .chip:last-of-type:after{position:absolute;right:0;top:0;bottom:0;width:var(--app-pane-padding);content:\" \";background:#0000;background:-moz-linear-gradient(left,rgba(0,0,0,0) 0%,rgb(255,255,255) 100%);background:-webkit-linear-gradient(left,rgba(0,0,0,0) 0%,rgb(255,255,255) 100%);background:linear-gradient(to right,#0000,#fff)}eo-grid ag-grid-angular.ag-theme-balham .ag-row{border:none;background:var(--color-white);-webkit-user-select:none;user-select:none}eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover.ag-row-selected:before{background:var(--list-item-hover-background)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-header{border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-header .ag-header-cell:first-child:after{border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container{width:7px!important;min-width:7px!important;max-width:7px!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-cell[col-id=__selectionField],eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-cell[col-id=__selectionField]{border:0!important;padding:0!important;width:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-focus:not(.ag-row-group):before{content:\"\";height:100%;width:3px!important;position:absolute;background:linear-gradient(0deg,rgb(255,255,255) 0%,rgb(255,255,255) 5%,var(--color-accent) 5%,var(--color-accent) 95%,rgb(255,255,255) 95%,rgb(255,255,255) 100%)}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-focus:not(.ag-row-group):before{right:0}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected:not(.ag-row-group):before{background:var(--color-primary)}eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-right-cols-container .ag-row-selected.ag-row-focus:not(.ag-row-group):before,eo-grid ag-grid-angular.ag-theme-balham .ag-pinned-left-cols-container .ag-row-selected.ag-row-focus:not(.ag-row-group):before{background:linear-gradient(0deg,rgb(255,255,255) 0%,rgb(255,255,255) 5%,var(--color-accent) 5%,var(--color-accent) 95%,rgb(255,255,255) 95%,rgb(255,255,255) 100%)}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected:before{background-color:transparent}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{border:none;background:var(--list-item-selected-background)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected .chip:last-of-type:after{background:#0000;background:-moz-linear-gradient(left,rgba(0,0,0,0) 0%,var(--list-item-selected-background) 100%);background:-webkit-linear-gradient(left,rgba(0,0,0,0) 0%,var(--list-item-selected-background) 100%);background:linear-gradient(to right,rgba(0,0,0,0) 0%,var(--list-item-selected-background) 100%)}eo-grid ag-grid-angular.ag-theme-balham .copy-cell{animation-name:copy-cell;animation-duration:4s}@keyframes copy-cell{0%{background-color:var(--color-accent)}to{background-color:none}}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-range-selected{background:var(--list-item-selected-background)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell,eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus{border:1px solid;border-color:#0000!important;border-bottom-color:var(--list-item-border-color)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus{background-color:var(--list-item-hover-background);outline:0!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell-focus[col-id=__custom]{background-color:transparent}eo-grid ag-grid-angular.ag-theme-balham .ag-cell{display:flex;align-items:center;font-size:var(--font-body);line-height:1.7em;-webkit-user-select:none;user-select:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell svg{pointer-events:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.ag-cell-value{white-space:nowrap;text-overflow:ellipsis}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a{text-decoration:none;color:var(--text-color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a.link{color:var(--text-color-body)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a.link:hover{color:var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell a:hover{text-decoration:underline}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.res-ico,eo-grid ag-grid-angular.ag-theme-balham .ag-cell.col-boolean{justify-content:center}eo-grid ag-grid-angular.ag-theme-balham .ag-cell.col-number{justify-content:flex-end}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .object-type{opacity:.5;height:24px;width:24px;vertical-align:bottom}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type-label,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .object-type-label{padding:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button{width:100%;padding:4px var(--app-pane-padding);white-space:nowrap;color:var(--text-color-caption);border-color:rgba(var(--color-black-rgb),0);background:rgba(var(--color-black-rgb),.06);margin:0!important;border-radius:2px;-webkit-border-radius:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-apply-panel button:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-apply-panel button:focus{background:var(--color-accent);color:var(--color-white)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-condition[ref=eJoinOperatorPanel],eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-body[ref=eCondition2Body],eo-grid ag-grid-angular.ag-theme-balham .ag-cell .ag-filter-select[ref=eOptions2],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-condition[ref=eJoinOperatorPanel],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-body[ref=eCondition2Body],eo-grid ag-grid-angular.ag-theme-balham .ag-filter .ag-filter-select[ref=eOptions2]{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled{padding:0;color:var(--text-color-caption);height:20px;width:20px;border-color:rgba(var(--color-black-rgb),0);background:rgba(var(--color-black-rgb),.06);border-radius:2px;-webkit-border-radius:2px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled:hover,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled:focus{background:var(--color-accent);color:var(--color-white)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell button.ui-button:enabled eo-icon,eo-grid ag-grid-angular.ag-theme-balham .ag-filter button.ui-button:enabled eo-icon{height:var(--app-pane-padding);width:var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell input,eo-grid ag-grid-angular.ag-theme-balham .ag-filter input{font-family:inherit;width:100%;-webkit-user-select:all;user-select:all;border:0!important;border-bottom:1px solid!important;border-bottom-color:rgba(var(--color-black-rgb),.1)!important;height:2em;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell input:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter input:focus{border-bottom-color:var(--color-accent)!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .yvc-datepicker input,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .yvc-datepicker input{padding:0!important;height:auto!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{font-family:inherit;border:none;height:2em;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-bottom:1px solid rgba(var(--color-black-rgb),.1);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z%22%2F%3E%3C%2Fsvg%3E\") no-repeat;background-position-x:right;background-position-y:center;background-size:var(--app-pane-padding)}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{background-position-x:right;none:left}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell select,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter select{none:right;background-position-x:left}eo-grid ag-grid-angular.ag-theme-balham .ag-cell select:focus,eo-grid ag-grid-angular.ag-theme-balham .ag-filter select:focus{border-bottom:1px solid var(--color-accent)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-list-filter,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-list-filter{display:block;padding-left:calc(var(--app-pane-padding) / 2)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom{display:block;margin:0 calc(var(--app-pane-padding) / 4)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom yvc-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom yvc-datepicker{width:100%}eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom yvc-datepicker yvc-date-input-text,eo-grid ag-grid-angular.ag-theme-balham .ag-cell eo-datetime-custom yvc-datepicker yvc-date-input,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom yvc-datepicker yvc-date-input-text,eo-grid ag-grid-angular.ag-theme-balham .ag-filter eo-datetime-custom yvc-datepicker yvc-date-input{flex:1}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization{margin-top:calc(var(--app-pane-padding) / 4);position:relative}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{position:absolute;top:0}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{right:0}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization button{left:0}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list .ui-autocomplete-panel,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization .ui-autocomplete-panel{position:relative;top:3px!important}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container{flex-flow:column;border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token{margin:2px calc(var(--app-pane-padding) / 2)}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-datepicker ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token,eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-organization ul.ui-autocomplete-multiple-container .ui-autocomplete-input-token{padding:0}[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=ltr] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button{right:8px}[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-cell .eo-codesystem button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-dynamic-list button,[dir=rtl] eo-grid ag-grid-angular.ag-theme-balham .ag-filter .eo-codesystem button{left:8px}eo-grid ag-grid-angular.ag-theme-balham .ag-cell .object-type-label,eo-grid ag-grid-angular.ag-theme-balham .ag-group-cell>svg.checkbox{display:none}eo-grid ag-grid-angular.ag-theme-balham .ag-ltr .ag-cell{padding:0 var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-cell{padding:0 var(--app-pane-padding)}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell-label{text-align:right}eo-grid ag-grid-angular.ag-theme-balham .ag-header-cell.contextfolder .ag-header-cell-text:before{content:\"*\";display:inline-block;padding:0 calc(var(--app-pane-padding) / 4);background:var(--color-primary-3);border-radius:2px;-webkit-border-radius:2px;color:var(--color-white);line-height:14px}eo-grid ag-grid-angular.ag-theme-balham .ag-root-wrapper{border:none}eo-grid ag-grid-angular.ag-theme-balham .ag-rtl .ag-header-cell.contextfolder .ag-header-cell-text:before{margin-left:calc(var(--app-pane-padding) / 2)}eo-grid ag-grid-angular.ag-theme-balham .ag-ltr .ag-header-cell.contextfolder .ag-header-cell-text:before{margin-right:calc(var(--app-pane-padding) / 2)}eo-grid ag-grid-angular.ag-theme-balham .ag-group-value{vertical-align:middle}eo-grid .multiCell span{display:flex;flex-direction:row}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8$1.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }], encapsulation: i0.ViewEncapsulation.None }); }
12328
12410
  };
12329
12411
  GridComponent = __decorate([
12330
12412
  UntilDestroy()
@@ -15291,6 +15373,14 @@ class SequenceListComponent {
15291
15373
  event.stopPropagation();
15292
15374
  }
15293
15375
  }
15376
+ get duplicateEmailValidation() {
15377
+ const { errors, controls } = this.entryForm;
15378
+ let duplicateEmailValidationError = false;
15379
+ if (errors) {
15380
+ duplicateEmailValidationError = (controls.email.touched || controls.email.dirty) && errors.duplicateEmail;
15381
+ }
15382
+ return duplicateEmailValidationError;
15383
+ }
15294
15384
  get maxSigners() {
15295
15385
  return this.entries.length === this.MAX_SIGNERS;
15296
15386
  }
@@ -15335,12 +15425,24 @@ class SequenceListComponent {
15335
15425
  name: ['', [Validators.required, Validators.maxLength(100)]],
15336
15426
  email: ['', [Validators.required, Validators.maxLength(100), Validators.email]],
15337
15427
  phone: ['', [Validators.maxLength(100)]]
15428
+ }, {
15429
+ validator: Validators.compose([
15430
+ this.duplicateEmailValidator()
15431
+ ])
15338
15432
  });
15339
15433
  if (entry) {
15340
15434
  this.entryForm.patchValue({ name: entry.name, email: entry.email, phone: entry.phone });
15341
15435
  }
15342
15436
  this.itemEdit.emit(true);
15343
15437
  }
15438
+ duplicateEmailValidator() {
15439
+ return (group) => {
15440
+ if (group.controls['email'].invalid || group.controls['email'].value === null || !this.entries.find(entry => entry.email === group.controls['email'].value)) {
15441
+ return null;
15442
+ }
15443
+ return { 'duplicateEmail': true };
15444
+ };
15445
+ }
15344
15446
  removeEntry(index) {
15345
15447
  const entry = this.entries[index];
15346
15448
  if (!entry) {
@@ -15403,7 +15505,7 @@ class SequenceListComponent {
15403
15505
  useExisting: forwardRef(() => SequenceListComponent),
15404
15506
  multi: true
15405
15507
  }
15406
- ], ngImport: i0, template: "<div class=\"toolbar\" *ngIf=\"!entryForm; else tplEntryForm\">\n <h4>{{ 'eo.action.signature.signers' | translate }}</h4>\n <button id=\"add-item\" class=\"add primary\" (click)=\"showEntryForm()\" [disabled]=\"maxSigners\">\n <eo-icon [iconTitle]=\"('eo.action.signature.add.button.tooltip' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\">\n </eo-icon>\n </button>\n</div>\n\n<div class=\"entries\" cdkDropList (cdkDropListDropped)=\"dragDrop($event)\" [cdkDropListData]=\"entries\">\n <div [ngClass]=\"{ disabled: !!entryForm, single: entries.length === 1 }\" cdkDrag *ngFor=\"let entry of entries; let i = index\">\n <eo-sequence-list-item [index]=\"i\" (changeEntry)=\"changeEntry($event)\" [disableAdd]=\"maxSigners\">\n <ng-template #content>\n <div class=\"signer-list-entry\">\n <div class=\"signer-name\" title=\"{{entry.name}}\">{{ entry.name }}</div>\n <div class=\"signer-email\" title=\"{{entry.email}}\">{{ entry.email }}</div>\n <div class=\"signer-phone\" *ngIf=\"entry.phone\" title=\"{{entry.phone}}\">{{ entry.phone }}</div>\n </div>\n </ng-template>\n </eo-sequence-list-item>\n </div>\n</div>\n\n<ng-template #tplEntryForm>\n <form class=\"entryForm\" [formGroup]=\"entryForm\" (ngSubmit)=\"addSigner()\">\n <div class=\"form-body\">\n <eo-form-input\n class=\"name\"\n [invalid]=\"entryForm.get('name').dirty && entryForm.get('name').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignername' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignername'\" [autocomplete]=\"true\" [autofocus]=\"true\" formControlName=\"name\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('name').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\n translate>eo.form.property.maxlength</small>\n <eo-form-input\n class=\"task\"\n [invalid]=\"entryForm.get('email').dirty && entryForm.get('email').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsigneremail' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsigneremail'\" [autocomplete]=\"true\" formControlName=\"email\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('email').hasError('email')\" translate>eo.form.property.string.error.classification.email</small>\n <small class=\"errors\" *ngIf=\"!entryForm.get('email').hasError('email') && entryForm.get('email').hasError('maxlength')\"\n [translateParams]=\"{maxlength: 100}\" translate>eo.form.property.maxlength</small>\n <eo-form-input\n class=\"task\"\n *ngIf=\"phoneRequired\"\n [invalid]=\"entryForm.get('phone').dirty && entryForm.get('phone').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignerphone' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignerphone'\" formControlName=\"phone\"> </eo-string>\n <small class=\"errors\" *ngIf=\"entryForm.get('phone').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\n translate>eo.form.property.maxlength</small>\n </eo-form-input>\n </div>\n <footer class=\"footer-action\">\n <button class=\"secondary\" type=\"button\" (click)=\"cancel()\" translate>eo.action.signature.cancel</button>\n <ng-container [ngSwitch]=\"mode\">\n <button *ngSwitchCase=\"'edit'\" class=\"primary\" [disabled]=\"entryForm.invalid || entryForm.pristine\" type=\"submit\" translate>eo.action.signature.editSigner</button>\n <button *ngSwitchDefault class=\"primary\" [disabled]=\"entryForm.invalid\" type=\"submit\" translate>eo.action.signature.addSigner</button>\n </ng-container>\n </footer>\n </form>\n</ng-template>\n", styles: [":host{display:block;border:1px solid var(--panel-divider-color);padding:1px;background-color:var(--panel-background)}:host:focus{border-color:var(--color-accent)}:host.ng-invalid{border-color:var(--color-error)}:host.dense form.entryForm{display:flex;flex-flow:column}:host form.entryForm{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr;padding:calc(var(--app-pane-padding) / 2);gap:calc(var(--app-pane-padding) / 2);grid-template-areas:\"title\" \"task\" \"nextAssignee\" \"expiryDatetime\" \"buttons\";border:1px solid var(--panel-divider-color)}:host form.entryForm eo-form-input.task{grid-area:task}:host form.entryForm eo-form-input.nextAssignee{grid-area:nextAssignee}:host form.entryForm eo-form-input.expiryDatetime{grid-area:expiryDatetime}:host form.entryForm .buttons{grid-area:buttons;display:flex;justify-content:end;margin:0 -2px}:host form.entryForm .buttons button{margin:0 2px}:host form.entryForm .errors{color:var(--color-error)}:host .toolbar{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--app-pane-padding) / 4);border:1px solid var(--panel-divider-color)}:host .toolbar:focus{border-color:var(--color-accent)}:host .toolbar h4{padding:0;margin:0 calc(var(--app-pane-padding) * .75);flex:1;color:var(--color-primary-2)}:host .toolbar button{padding:calc(var(--app-pane-padding) / 4);border-radius:2px}:host .entries .entry{position:relative;transition:background-color .1s ease-in-out;border:1px solid var(--panel-divider-color);display:grid;padding:calc(var(--app-pane-padding) * .75);column-gap:calc(var(--app-pane-padding) / 2);row-gap:calc(var(--app-pane-padding) / 4);grid-template-rows:auto auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"handle index content action\" \"handle index content action\";margin-top:1px}:host .entries .entry.disabled{background-color:var(--panel-background-lightgrey);opacity:.85}:host .entries .entry.disabled.current{background-color:var(--panel-background);border-color:var(--color-accent)}:host .entries .entry.disabled .innerAdd:not(.active){opacity:0;pointer-events:none}:host .entries .entry.disabled button,:host .entries .entry.disabled .handle{pointer-events:none;cursor:default;opacity:.5}:host .entries .entry.single .handle,:host .entries .entry.single .index{display:none}:host .entries .entry .innerAdd{position:absolute;top:-12px;left:calc(50% - 12px);border-radius:2px;color:var(--text-color-caption);cursor:pointer;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:20px;height:20px}:host .entries .entry .innerAdd.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}:host .entries .entry .index{grid-area:index;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-accent);padding:0 calc(var(--app-pane-padding) / 4)}:host .entries .entry .handle{grid-area:handle;color:var(--text-color-caption);align-self:center;cursor:n-resize}:host .entries .entry .content{grid-area:content}:host .entries .entry .content ::ng-deep .list-entry .task{word-break:break-all}:host .entries .entry .action{grid-area:action;display:flex;align-items:center}:host .entries .entry .action button{padding:2px}:host .entries .entry .action button eo-icon{width:18px;height:18px}.footer-action{display:flex;justify-content:flex-end;padding:var(--app-pane-padding) 0;background-color:transparent;border-top:none}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "directive", type: i4$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: SequenceListItemComponent, selector: "eo-sequence-list-item", inputs: ["index", "disableAdd", "addTargetIndex"], outputs: ["changeEntry", "edit", "delete", "insert"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
15508
+ ], ngImport: i0, template: "<div class=\"toolbar\" *ngIf=\"!entryForm; else tplEntryForm\">\n <h4>{{ 'eo.action.signature.signers' | translate }}</h4>\n <button id=\"add-item\" class=\"add primary\" (click)=\"showEntryForm()\" [disabled]=\"maxSigners\">\n <eo-icon [iconTitle]=\"('eo.action.signature.add.button.tooltip' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\">\n </eo-icon>\n </button>\n</div>\n\n<div class=\"entries\" cdkDropList (cdkDropListDropped)=\"dragDrop($event)\" [cdkDropListData]=\"entries\">\n <div [ngClass]=\"{ disabled: !!entryForm, single: entries.length === 1 }\" cdkDrag *ngFor=\"let entry of entries; let i = index\">\n <eo-sequence-list-item [index]=\"i\" (changeEntry)=\"changeEntry($event)\" [disableAdd]=\"maxSigners\">\n <ng-template #content>\n <div class=\"signer-list-entry\">\n <div class=\"signer-name\" title=\"{{entry.name}}\">{{ entry.name }}</div>\n <div class=\"signer-email\" title=\"{{entry.email}}\">{{ entry.email }}</div>\n <div class=\"signer-phone\" *ngIf=\"entry.phone\" title=\"{{entry.phone}}\">{{ entry.phone }}</div>\n </div>\n </ng-template>\n </eo-sequence-list-item>\n </div>\n</div>\n\n<ng-template #tplEntryForm>\n <form class=\"entryForm\" [formGroup]=\"entryForm\" (ngSubmit)=\"addSigner()\">\n <div class=\"form-body\">\n <eo-form-input\n class=\"name\"\n [invalid]=\"entryForm.get('name').dirty && entryForm.get('name').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignername' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignername'\" [autocomplete]=\"true\" [autofocus]=\"true\" formControlName=\"name\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('name').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\n translate>eo.form.property.maxlength</small>\n <eo-form-input\n class=\"task\"\n [invalid]=\"entryForm.get('email').dirty && entryForm.get('email').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsigneremail' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsigneremail'\" [autocomplete]=\"true\" formControlName=\"email\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('email').hasError('email')\" translate>eo.form.property.string.error.classification.email</small>\n <small class=\"errors\" *ngIf=\"!entryForm.get('email').hasError('email') && entryForm.get('email').hasError('maxlength')\"\n [translateParams]=\"{maxlength: 100}\" translate>eo.form.property.maxlength</small>\n <small class=\"errors\" *ngIf=\"duplicateEmailValidation\" translate>eo.form.property.string.error.classification.email.duplicate</small>\n <eo-form-input\n class=\"task\"\n *ngIf=\"phoneRequired\"\n [invalid]=\"entryForm.get('phone').dirty && entryForm.get('phone').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignerphone' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignerphone'\" formControlName=\"phone\"> </eo-string>\n <small class=\"errors\" *ngIf=\"entryForm.get('phone').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\n translate>eo.form.property.maxlength</small>\n </eo-form-input>\n </div>\n <footer class=\"footer-action\">\n <button class=\"secondary\" type=\"button\" (click)=\"cancel()\" translate>eo.action.signature.cancel</button>\n <ng-container [ngSwitch]=\"mode\">\n <button *ngSwitchCase=\"'edit'\" class=\"primary\" [disabled]=\"entryForm.invalid || entryForm.pristine\" type=\"submit\" translate>eo.action.signature.editSigner</button>\n <button *ngSwitchDefault class=\"primary\" [disabled]=\"entryForm.invalid\" type=\"submit\" translate>eo.action.signature.addSigner</button>\n </ng-container>\n </footer>\n </form>\n</ng-template>\n", styles: [":host{display:block;border:1px solid var(--panel-divider-color);padding:1px;background-color:var(--panel-background)}:host:focus{border-color:var(--color-accent)}:host.ng-invalid{border-color:var(--color-error)}:host.dense form.entryForm{display:flex;flex-flow:column}:host form.entryForm{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr;padding:calc(var(--app-pane-padding) / 2);gap:calc(var(--app-pane-padding) / 2);grid-template-areas:\"title\" \"task\" \"nextAssignee\" \"expiryDatetime\" \"buttons\";border:1px solid var(--panel-divider-color)}:host form.entryForm eo-form-input.task{grid-area:task}:host form.entryForm eo-form-input.nextAssignee{grid-area:nextAssignee}:host form.entryForm eo-form-input.expiryDatetime{grid-area:expiryDatetime}:host form.entryForm .buttons{grid-area:buttons;display:flex;justify-content:end;margin:0 -2px}:host form.entryForm .buttons button{margin:0 2px}:host form.entryForm .errors{color:var(--color-error)}:host .toolbar{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--app-pane-padding) / 4);border:1px solid var(--panel-divider-color)}:host .toolbar:focus{border-color:var(--color-accent)}:host .toolbar h4{padding:0;margin:0 calc(var(--app-pane-padding) * .75);flex:1;color:var(--color-primary-2)}:host .toolbar button{padding:calc(var(--app-pane-padding) / 4);border-radius:2px}:host .entries .entry{position:relative;transition:background-color .1s ease-in-out;border:1px solid var(--panel-divider-color);display:grid;padding:calc(var(--app-pane-padding) * .75);column-gap:calc(var(--app-pane-padding) / 2);row-gap:calc(var(--app-pane-padding) / 4);grid-template-rows:auto auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"handle index content action\" \"handle index content action\";margin-top:1px}:host .entries .entry.disabled{background-color:var(--panel-background-lightgrey);opacity:.85}:host .entries .entry.disabled.current{background-color:var(--panel-background);border-color:var(--color-accent)}:host .entries .entry.disabled .innerAdd:not(.active){opacity:0;pointer-events:none}:host .entries .entry.disabled button,:host .entries .entry.disabled .handle{pointer-events:none;cursor:default;opacity:.5}:host .entries .entry.single .handle,:host .entries .entry.single .index{display:none}:host .entries .entry .innerAdd{position:absolute;top:-12px;left:calc(50% - 12px);border-radius:2px;color:var(--text-color-caption);cursor:pointer;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:20px;height:20px}:host .entries .entry .innerAdd.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}:host .entries .entry .index{grid-area:index;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-accent);padding:0 calc(var(--app-pane-padding) / 4)}:host .entries .entry .handle{grid-area:handle;color:var(--text-color-caption);align-self:center;cursor:n-resize}:host .entries .entry .content{grid-area:content}:host .entries .entry .content ::ng-deep .list-entry .task{word-break:break-all}:host .entries .entry .action{grid-area:action;display:flex;align-items:center}:host .entries .entry .action button{padding:2px}:host .entries .entry .action button eo-icon{width:18px;height:18px}.footer-action{display:flex;justify-content:flex-end;padding:var(--app-pane-padding) 0;background-color:transparent;border-top:none}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "directive", type: i4$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: SequenceListItemComponent, selector: "eo-sequence-list-item", inputs: ["index", "disableAdd", "addTargetIndex"], outputs: ["changeEntry", "edit", "delete", "insert"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
15407
15509
  }
15408
15510
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SequenceListComponent, decorators: [{
15409
15511
  type: Component,
@@ -15420,7 +15522,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
15420
15522
  }
15421
15523
  ], host: {
15422
15524
  tabindex: '0'
15423
- }, template: "<div class=\"toolbar\" *ngIf=\"!entryForm; else tplEntryForm\">\n <h4>{{ 'eo.action.signature.signers' | translate }}</h4>\n <button id=\"add-item\" class=\"add primary\" (click)=\"showEntryForm()\" [disabled]=\"maxSigners\">\n <eo-icon [iconTitle]=\"('eo.action.signature.add.button.tooltip' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\">\n </eo-icon>\n </button>\n</div>\n\n<div class=\"entries\" cdkDropList (cdkDropListDropped)=\"dragDrop($event)\" [cdkDropListData]=\"entries\">\n <div [ngClass]=\"{ disabled: !!entryForm, single: entries.length === 1 }\" cdkDrag *ngFor=\"let entry of entries; let i = index\">\n <eo-sequence-list-item [index]=\"i\" (changeEntry)=\"changeEntry($event)\" [disableAdd]=\"maxSigners\">\n <ng-template #content>\n <div class=\"signer-list-entry\">\n <div class=\"signer-name\" title=\"{{entry.name}}\">{{ entry.name }}</div>\n <div class=\"signer-email\" title=\"{{entry.email}}\">{{ entry.email }}</div>\n <div class=\"signer-phone\" *ngIf=\"entry.phone\" title=\"{{entry.phone}}\">{{ entry.phone }}</div>\n </div>\n </ng-template>\n </eo-sequence-list-item>\n </div>\n</div>\n\n<ng-template #tplEntryForm>\n <form class=\"entryForm\" [formGroup]=\"entryForm\" (ngSubmit)=\"addSigner()\">\n <div class=\"form-body\">\n <eo-form-input\n class=\"name\"\n [invalid]=\"entryForm.get('name').dirty && entryForm.get('name').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignername' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignername'\" [autocomplete]=\"true\" [autofocus]=\"true\" formControlName=\"name\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('name').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\n translate>eo.form.property.maxlength</small>\n <eo-form-input\n class=\"task\"\n [invalid]=\"entryForm.get('email').dirty && entryForm.get('email').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsigneremail' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsigneremail'\" [autocomplete]=\"true\" formControlName=\"email\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('email').hasError('email')\" translate>eo.form.property.string.error.classification.email</small>\n <small class=\"errors\" *ngIf=\"!entryForm.get('email').hasError('email') && entryForm.get('email').hasError('maxlength')\"\n [translateParams]=\"{maxlength: 100}\" translate>eo.form.property.maxlength</small>\n <eo-form-input\n class=\"task\"\n *ngIf=\"phoneRequired\"\n [invalid]=\"entryForm.get('phone').dirty && entryForm.get('phone').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignerphone' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignerphone'\" formControlName=\"phone\"> </eo-string>\n <small class=\"errors\" *ngIf=\"entryForm.get('phone').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\n translate>eo.form.property.maxlength</small>\n </eo-form-input>\n </div>\n <footer class=\"footer-action\">\n <button class=\"secondary\" type=\"button\" (click)=\"cancel()\" translate>eo.action.signature.cancel</button>\n <ng-container [ngSwitch]=\"mode\">\n <button *ngSwitchCase=\"'edit'\" class=\"primary\" [disabled]=\"entryForm.invalid || entryForm.pristine\" type=\"submit\" translate>eo.action.signature.editSigner</button>\n <button *ngSwitchDefault class=\"primary\" [disabled]=\"entryForm.invalid\" type=\"submit\" translate>eo.action.signature.addSigner</button>\n </ng-container>\n </footer>\n </form>\n</ng-template>\n", styles: [":host{display:block;border:1px solid var(--panel-divider-color);padding:1px;background-color:var(--panel-background)}:host:focus{border-color:var(--color-accent)}:host.ng-invalid{border-color:var(--color-error)}:host.dense form.entryForm{display:flex;flex-flow:column}:host form.entryForm{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr;padding:calc(var(--app-pane-padding) / 2);gap:calc(var(--app-pane-padding) / 2);grid-template-areas:\"title\" \"task\" \"nextAssignee\" \"expiryDatetime\" \"buttons\";border:1px solid var(--panel-divider-color)}:host form.entryForm eo-form-input.task{grid-area:task}:host form.entryForm eo-form-input.nextAssignee{grid-area:nextAssignee}:host form.entryForm eo-form-input.expiryDatetime{grid-area:expiryDatetime}:host form.entryForm .buttons{grid-area:buttons;display:flex;justify-content:end;margin:0 -2px}:host form.entryForm .buttons button{margin:0 2px}:host form.entryForm .errors{color:var(--color-error)}:host .toolbar{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--app-pane-padding) / 4);border:1px solid var(--panel-divider-color)}:host .toolbar:focus{border-color:var(--color-accent)}:host .toolbar h4{padding:0;margin:0 calc(var(--app-pane-padding) * .75);flex:1;color:var(--color-primary-2)}:host .toolbar button{padding:calc(var(--app-pane-padding) / 4);border-radius:2px}:host .entries .entry{position:relative;transition:background-color .1s ease-in-out;border:1px solid var(--panel-divider-color);display:grid;padding:calc(var(--app-pane-padding) * .75);column-gap:calc(var(--app-pane-padding) / 2);row-gap:calc(var(--app-pane-padding) / 4);grid-template-rows:auto auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"handle index content action\" \"handle index content action\";margin-top:1px}:host .entries .entry.disabled{background-color:var(--panel-background-lightgrey);opacity:.85}:host .entries .entry.disabled.current{background-color:var(--panel-background);border-color:var(--color-accent)}:host .entries .entry.disabled .innerAdd:not(.active){opacity:0;pointer-events:none}:host .entries .entry.disabled button,:host .entries .entry.disabled .handle{pointer-events:none;cursor:default;opacity:.5}:host .entries .entry.single .handle,:host .entries .entry.single .index{display:none}:host .entries .entry .innerAdd{position:absolute;top:-12px;left:calc(50% - 12px);border-radius:2px;color:var(--text-color-caption);cursor:pointer;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:20px;height:20px}:host .entries .entry .innerAdd.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}:host .entries .entry .index{grid-area:index;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-accent);padding:0 calc(var(--app-pane-padding) / 4)}:host .entries .entry .handle{grid-area:handle;color:var(--text-color-caption);align-self:center;cursor:n-resize}:host .entries .entry .content{grid-area:content}:host .entries .entry .content ::ng-deep .list-entry .task{word-break:break-all}:host .entries .entry .action{grid-area:action;display:flex;align-items:center}:host .entries .entry .action button{padding:2px}:host .entries .entry .action button eo-icon{width:18px;height:18px}.footer-action{display:flex;justify-content:flex-end;padding:var(--app-pane-padding) 0;background-color:transparent;border-top:none}\n"] }]
15525
+ }, template: "<div class=\"toolbar\" *ngIf=\"!entryForm; else tplEntryForm\">\n <h4>{{ 'eo.action.signature.signers' | translate }}</h4>\n <button id=\"add-item\" class=\"add primary\" (click)=\"showEntryForm()\" [disabled]=\"maxSigners\">\n <eo-icon [iconTitle]=\"('eo.action.signature.add.button.tooltip' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\">\n </eo-icon>\n </button>\n</div>\n\n<div class=\"entries\" cdkDropList (cdkDropListDropped)=\"dragDrop($event)\" [cdkDropListData]=\"entries\">\n <div [ngClass]=\"{ disabled: !!entryForm, single: entries.length === 1 }\" cdkDrag *ngFor=\"let entry of entries; let i = index\">\n <eo-sequence-list-item [index]=\"i\" (changeEntry)=\"changeEntry($event)\" [disableAdd]=\"maxSigners\">\n <ng-template #content>\n <div class=\"signer-list-entry\">\n <div class=\"signer-name\" title=\"{{entry.name}}\">{{ entry.name }}</div>\n <div class=\"signer-email\" title=\"{{entry.email}}\">{{ entry.email }}</div>\n <div class=\"signer-phone\" *ngIf=\"entry.phone\" title=\"{{entry.phone}}\">{{ entry.phone }}</div>\n </div>\n </ng-template>\n </eo-sequence-list-item>\n </div>\n</div>\n\n<ng-template #tplEntryForm>\n <form class=\"entryForm\" [formGroup]=\"entryForm\" (ngSubmit)=\"addSigner()\">\n <div class=\"form-body\">\n <eo-form-input\n class=\"name\"\n [invalid]=\"entryForm.get('name').dirty && entryForm.get('name').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignername' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignername'\" [autocomplete]=\"true\" [autofocus]=\"true\" formControlName=\"name\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('name').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\n translate>eo.form.property.maxlength</small>\n <eo-form-input\n class=\"task\"\n [invalid]=\"entryForm.get('email').dirty && entryForm.get('email').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsigneremail' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsigneremail'\" [autocomplete]=\"true\" formControlName=\"email\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('email').hasError('email')\" translate>eo.form.property.string.error.classification.email</small>\n <small class=\"errors\" *ngIf=\"!entryForm.get('email').hasError('email') && entryForm.get('email').hasError('maxlength')\"\n [translateParams]=\"{maxlength: 100}\" translate>eo.form.property.maxlength</small>\n <small class=\"errors\" *ngIf=\"duplicateEmailValidation\" translate>eo.form.property.string.error.classification.email.duplicate</small>\n <eo-form-input\n class=\"task\"\n *ngIf=\"phoneRequired\"\n [invalid]=\"entryForm.get('phone').dirty && entryForm.get('phone').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignerphone' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignerphone'\" formControlName=\"phone\"> </eo-string>\n <small class=\"errors\" *ngIf=\"entryForm.get('phone').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\n translate>eo.form.property.maxlength</small>\n </eo-form-input>\n </div>\n <footer class=\"footer-action\">\n <button class=\"secondary\" type=\"button\" (click)=\"cancel()\" translate>eo.action.signature.cancel</button>\n <ng-container [ngSwitch]=\"mode\">\n <button *ngSwitchCase=\"'edit'\" class=\"primary\" [disabled]=\"entryForm.invalid || entryForm.pristine\" type=\"submit\" translate>eo.action.signature.editSigner</button>\n <button *ngSwitchDefault class=\"primary\" [disabled]=\"entryForm.invalid\" type=\"submit\" translate>eo.action.signature.addSigner</button>\n </ng-container>\n </footer>\n </form>\n</ng-template>\n", styles: [":host{display:block;border:1px solid var(--panel-divider-color);padding:1px;background-color:var(--panel-background)}:host:focus{border-color:var(--color-accent)}:host.ng-invalid{border-color:var(--color-error)}:host.dense form.entryForm{display:flex;flex-flow:column}:host form.entryForm{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr;padding:calc(var(--app-pane-padding) / 2);gap:calc(var(--app-pane-padding) / 2);grid-template-areas:\"title\" \"task\" \"nextAssignee\" \"expiryDatetime\" \"buttons\";border:1px solid var(--panel-divider-color)}:host form.entryForm eo-form-input.task{grid-area:task}:host form.entryForm eo-form-input.nextAssignee{grid-area:nextAssignee}:host form.entryForm eo-form-input.expiryDatetime{grid-area:expiryDatetime}:host form.entryForm .buttons{grid-area:buttons;display:flex;justify-content:end;margin:0 -2px}:host form.entryForm .buttons button{margin:0 2px}:host form.entryForm .errors{color:var(--color-error)}:host .toolbar{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--app-pane-padding) / 4);border:1px solid var(--panel-divider-color)}:host .toolbar:focus{border-color:var(--color-accent)}:host .toolbar h4{padding:0;margin:0 calc(var(--app-pane-padding) * .75);flex:1;color:var(--color-primary-2)}:host .toolbar button{padding:calc(var(--app-pane-padding) / 4);border-radius:2px}:host .entries .entry{position:relative;transition:background-color .1s ease-in-out;border:1px solid var(--panel-divider-color);display:grid;padding:calc(var(--app-pane-padding) * .75);column-gap:calc(var(--app-pane-padding) / 2);row-gap:calc(var(--app-pane-padding) / 4);grid-template-rows:auto auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"handle index content action\" \"handle index content action\";margin-top:1px}:host .entries .entry.disabled{background-color:var(--panel-background-lightgrey);opacity:.85}:host .entries .entry.disabled.current{background-color:var(--panel-background);border-color:var(--color-accent)}:host .entries .entry.disabled .innerAdd:not(.active){opacity:0;pointer-events:none}:host .entries .entry.disabled button,:host .entries .entry.disabled .handle{pointer-events:none;cursor:default;opacity:.5}:host .entries .entry.single .handle,:host .entries .entry.single .index{display:none}:host .entries .entry .innerAdd{position:absolute;top:-12px;left:calc(50% - 12px);border-radius:2px;color:var(--text-color-caption);cursor:pointer;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:20px;height:20px}:host .entries .entry .innerAdd.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}:host .entries .entry .index{grid-area:index;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-accent);padding:0 calc(var(--app-pane-padding) / 4)}:host .entries .entry .handle{grid-area:handle;color:var(--text-color-caption);align-self:center;cursor:n-resize}:host .entries .entry .content{grid-area:content}:host .entries .entry .content ::ng-deep .list-entry .task{word-break:break-all}:host .entries .entry .action{grid-area:action;display:flex;align-items:center}:host .entries .entry .action button{padding:2px}:host .entries .entry .action button eo-icon{width:18px;height:18px}.footer-action{display:flex;justify-content:flex-end;padding:var(--app-pane-padding) 0;background-color:transparent;border-top:none}\n"] }]
15424
15526
  }], ctorParameters: () => [{ type: undefined, decorators: [{
15425
15527
  type: Attribute,
15426
15528
  args: ['form-open']
@@ -16602,6 +16704,9 @@ let AppSearchComponent = class AppSearchComponent {
16602
16704
  }
16603
16705
  resetExpertModeInput() {
16604
16706
  this.query.term = '';
16707
+ this.termForm.patchValue({
16708
+ term: ''
16709
+ });
16605
16710
  this.appSearchService.aggregate();
16606
16711
  }
16607
16712
  toggleExpertMode() {
@@ -16960,8 +17065,9 @@ let AppSearchComponent = class AppSearchComponent {
16960
17065
  // subscribe to query state as well to fetch result count and aggregations as they change
16961
17066
  this.queryStateSubscription = this.appSearchService.queryState$.subscribe((queryState) => this.processQueryState(queryState));
16962
17067
  this.appSearchService.aggregate();
16963
- this.termForm.valueChanges.pipe(debounceTime(1000), untilDestroyed(this)).subscribe(res => {
17068
+ this.termForm.valueChanges.pipe(tap$1(res => {
16964
17069
  this.query.term = res.term;
17070
+ }), debounceTime(1000), untilDestroyed(this)).subscribe(res => {
16965
17071
  this.autocompleteSuggest(this.query.term);
16966
17072
  });
16967
17073
  }
@@ -16972,6 +17078,9 @@ let AppSearchComponent = class AppSearchComponent {
16972
17078
  this._overlayRef = this.overlay.open(this.tplSearch, null, {
16973
17079
  centered: false
16974
17080
  });
17081
+ this.termForm.patchValue({
17082
+ term: this.query.term
17083
+ });
16975
17084
  this._overlayRef.afterClosed$.subscribe({
16976
17085
  next: () => {
16977
17086
  const queryParams = { queryParamsHandling: 'preserve' };
@@ -18536,6 +18645,7 @@ let InboxDetailsComponent = class InboxDetailsComponent {
18536
18645
  this.setupWorkItem();
18537
18646
  this.setFormOptions(form, data, actions);
18538
18647
  this.updateInboxSate();
18648
+ this.eventService.trigger(EnaioEvent.INBOX_ITEM_LOCKED);
18539
18649
  }, error => {
18540
18650
  if (error.status === 409) {
18541
18651
  Utils.throw(null, this.translate.instant('eo.bpm.event.script.execution.error'), this.workItem.title).call(this, {});
@@ -18556,6 +18666,7 @@ let InboxDetailsComponent = class InboxDetailsComponent {
18556
18666
  this.workItem = res;
18557
18667
  this.setupWorkItem();
18558
18668
  this.updateInboxSate();
18669
+ this.eventService.trigger(EnaioEvent.INBOX_ITEM_UNLOCKED);
18559
18670
  }, Utils.throw(null, this.translate.instant('eo.process.activity.unlock.denied'), this.workItem.title));
18560
18671
  }
18561
18672
  }
@@ -19175,7 +19286,7 @@ class ObjectLinksComponent {
19175
19286
  .subscribe(response => this.searchIcon = response.replace('<svg', '<svg focusable="false" class="search-icon"'));
19176
19287
  }
19177
19288
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectLinksComponent, deps: [{ token: i2$1.Router }, { token: ReferenceService }, { token: i1.BackendService }, { token: i1.AppCacheService }, { token: i1.TranslateService }, { token: GridService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
19178
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ObjectLinksComponent, selector: "eo-object-links", inputs: { dmsObject: "dmsObject" }, host: { listeners: { "click": "onClick($event)" } }, viewQueries: [{ propertyName: "gridIn", first: true, predicate: ["gridIn"], descendants: true }, { propertyName: "gridOut", first: true, predicate: ["gridOut"], descendants: true }], ngImport: i0, template: "<div class=\"eo-references\">\n <div class=\"object-not-found\" *ngIf=\"!inReferences?.length && !outReferences?.length; else refContainer\">\n <div>{{'eo.references.object.notfound' | translate}}</div>\n </div>\n\n <ng-template #refContainer>\n <div class=\"form-buttons\">\n <div class=\"gridlabels\">\n <div class=\"gridlabel\" [ngClass]=\"{'active': showInReferences}\" (click)=\"switchListVisibilityTo('in')\"\n title=\"{{'eo.references.to.label' | translate}}\">\n <span>{{'eo.references.to.label' | translate}}</span>\n </div>\n <div class=\"gridlabel\" [ngClass]=\"{'active': showOutReferences}\" (click)=\"switchListVisibilityTo('out')\"\n title=\"{{'eo.references.from.label' | translate}}\">\n <span>{{'eo.references.from.label' | translate}}</span>\n </div>\n </div>\n <a class=\"button primary\" [routerLink]=\"'/result'\" [queryParams]=\"superQueryParams\" title=\"{{'eo.references.open.resultlist' | translate}}\">\n <span>{{'eo.references.open.resultlist' | translate}}</span>\n </a>\n </div>\n\n <div class=\"eo-references-lists\">\n\n <!-- list of inReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showInReferences}\">\n <div class=\"notfound\" *ngIf=\"(!inReferences?.length)\">{{'eo.references.object.notfound' | translate}}</div>\n\n <div class=\"grid-wrapper\" *ngIf=\"inReferences?.length\">\n <ag-grid-angular #gridIn [modules]=\"modules\" [gridOptions]=\"gridOptions\" class=\"ag-result\"></ag-grid-angular>\n </div>\n </div>\n\n <!-- list of outReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showOutReferences}\">\n <div class=\"notfound\" *ngIf=\"(!outReferences?.length)\">{{'eo.references.object.notfound' | translate}}</div>\n\n <div class=\"grid-wrapper\" *ngIf=\"outReferences?.length\">\n <ag-grid-angular #gridOut [modules]=\"modules\" [gridOptions]=\"gridOptions2\" class=\"ag-result\"></ag-grid-angular>\n </div>\n </div>\n\n </div>\n </ng-template>\n</div>", styles: [":host ::ng-deep ag-grid-angular{background:transparent}:host ::ng-deep .ag-pinned-left-cols-viewport{display:none!important}:host ::ng-deep ag-grid-angular.ag-theme-balham .ag-column-drop-horizontal:not(.ag-hidden){display:none!important}:host ::ng-deep .ag-center-cols-container{width:100%!important}:host ::ng-deep .ag-row{background:transparent!important}:host ::ng-deep ag-grid-angular.ag-theme-balham .ag-header{border:none}:host ::ng-deep .ag-row-group>.ag-cell-wrapper{height:100%;display:flex;flex-flow:row nowrap;flex:1 1 auto;align-items:center;background:var(--color-white);border-radius:2px;padding:calc(var(--app-pane-padding) / 2);border-bottom:1px solid var(--list-item-border-color)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-icon{display:inline-block;height:12px;width:12px;color:var(--color-black)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-icon-contracted{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxyZWN0IHN0cm9rZS1vcGFjaXR5PSIuNSIgc3Ryb2tlPSIjMDAwIiB4PSIxLjUiIHk9IjEuNSIgd2lkdGg9IjkiIGhlaWdodD0iOSIgcng9IjEiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNNSAzaDJ2Nkg1eiIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik05IDV2MkgzVjV6Ii8+PC9nPjwvc3ZnPg==) center/12px 12px no-repeat}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-icon-expanded{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxyZWN0IHN0cm9rZS1vcGFjaXR5PSIuNSIgc3Ryb2tlPSIjMDAwIiB4PSIxLjUiIHk9IjEuNSIgd2lkdGg9IjkiIGhlaWdodD0iOSIgcng9IjEiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNOSA1djJIM1Y1eiIvPjwvZz48L3N2Zz4=) center/12px 12px no-repeat}:host ::ng-deep .ag-row-group>.ag-cell-wrapper>span.ag-group-value>span{display:flex;flex-flow:row nowrap;align-items:center}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-group-child-count{position:absolute;right:48px}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .search-link{opacity:0;height:24px;width:24px;position:absolute;right:var(--app-pane-padding);background:var(--color-accent);border-radius:2px;transition:all .2s ease-in-out;margin-left:var(--app-pane-padding)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .search-link svg{fill:var(--color-white)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .search-link .search-icon{width:20px;margin-left:2px}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .search-link:hover{background:var(--color-accent)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper:hover .search-link{opacity:1}:host ::ng-deep .ag-row-group>.ag-cell-wrapper span.ag-group-value{width:calc(100% - 110px);margin:0 calc(var(--app-pane-padding) * 2)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper span.ag-group-value img{height:24px;opacity:.5;margin-right:calc(var(--app-pane-padding) / 2)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-group-child-count{color:var(--text-color-caption);font-size:var(--font-caption)}:host ::ng-deep .ag-cell{width:100%!important;border-bottom:1px solid var(--list-item-border-color);background:var(--color-white)}:host ::ng-deep .content{pointer-events:none;overflow:hidden}:host ::ng-deep .content div{pointer-events:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host ::ng-deep .content .title{font-weight:var(--font-weight-bold)}:host ::ng-deep .content .description{opacity:.6;font-size:var(--font-caption)}:host ::ng-deep .ref-list-item{padding:0 var(--app-pane-padding) 0 calc(var(--app-pane-padding) * 4.3);cursor:pointer;height:100%;display:flex;align-items:center}:host ::ng-deep .ref-list-item a{display:flex;align-items:flex-start;text-decoration:none;color:var(--text-color-body);width:100%}:host ::ng-deep .ref-list-item .content{padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding)}:host ::ng-deep .ref-list-item:hover{background:var(--color-accent)}:host ::ng-deep .ref-list-item:hover .content{color:var(--color-white)}.eo-references{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding);height:calc(100% - var(--app-pane-padding) * 2);box-sizing:border-box;display:flex;flex-flow:column}.eo-references .hidden{display:none!important}.eo-references .object-not-found{height:100%;display:flex;justify-content:center;align-items:center}.eo-references .object-not-found div{color:var(--text-color-caption)}.eo-references .form-buttons{width:100%;padding:calc(var(--app-pane-padding) / 2);height:44px;display:flex;justify-content:space-between;background:var(--color-white);box-sizing:border-box}.eo-references .form-buttons .gridlabels{display:flex;width:60%}.eo-references .form-buttons .gridlabel{border:1px solid var(--list-item-border-color);border-radius:4px;padding:0 calc(var(--app-pane-padding) / 2);display:flex;align-items:center;color:var(--text-color-caption);cursor:pointer;margin-right:calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;overflow:hidden}.eo-references .form-buttons .gridlabel span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .form-buttons .gridlabel:hover{color:var(--text-color-body);border-color:#0003}.eo-references .form-buttons .active{color:var(--text-color-body);border-color:#0003;background-color:var(--panel-background-grey)}.eo-references .form-buttons a.button{display:flex;align-items:center;overflow:hidden}.eo-references .form-buttons a.button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .eo-references-lists{flex:1;overflow:hidden;border-top:4px solid rgba(var(--color-black-rgb),.2)}.eo-references .eo-references-lists .resultlist-container{display:flex;flex-flow:column;height:100%;width:100%}.eo-references .eo-references-lists .resultlist-container .notfound{color:var(--text-color-caption);display:flex;align-items:center;justify-content:center;height:100%}.eo-references .eo-references-lists .ag-result{position:absolute;inset:0}.eo-references .eo-references-lists .grid-wrapper{position:relative;flex:1}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLinkDirective, selector: "a[routerLink]" }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
19289
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ObjectLinksComponent, selector: "eo-object-links", inputs: { dmsObject: "dmsObject" }, host: { listeners: { "click": "onClick($event)" } }, viewQueries: [{ propertyName: "gridIn", first: true, predicate: ["gridIn"], descendants: true }, { propertyName: "gridOut", first: true, predicate: ["gridOut"], descendants: true }], ngImport: i0, template: "<div class=\"eo-references\">\n <div class=\"object-not-found\" *ngIf=\"!inReferences?.length && !outReferences?.length; else refContainer\">\n <div>{{'eo.references.object.notfound' | translate}}</div>\n </div>\n\n <ng-template #refContainer>\n <div class=\"form-buttons\">\n <div class=\"gridlabels\">\n <div class=\"gridlabel\" [ngClass]=\"{'active': showInReferences}\" (click)=\"switchListVisibilityTo('in')\"\n title=\"{{'eo.references.to.label' | translate}}\">\n <span>{{'eo.references.to.label' | translate}}</span>\n </div>\n <div class=\"gridlabel\" [ngClass]=\"{'active': showOutReferences}\" (click)=\"switchListVisibilityTo('out')\"\n title=\"{{'eo.references.from.label' | translate}}\">\n <span>{{'eo.references.from.label' | translate}}</span>\n </div>\n </div>\n <a class=\"button primary\" [routerLink]=\"'/result'\" [queryParams]=\"superQueryParams\" title=\"{{'eo.references.open.resultlist' | translate}}\">\n <span>{{'eo.references.open.resultlist' | translate}}</span>\n </a>\n </div>\n\n <div class=\"eo-references-lists\">\n\n <!-- list of inReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showInReferences}\">\n <div class=\"notfound\" *ngIf=\"(!inReferences?.length)\">{{'eo.references.object.notfound' | translate}}</div>\n\n <div class=\"grid-wrapper\" *ngIf=\"inReferences?.length\">\n <ag-grid-angular #gridIn [modules]=\"modules\" [gridOptions]=\"gridOptions\" class=\"ag-result\"></ag-grid-angular>\n </div>\n </div>\n\n <!-- list of outReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showOutReferences}\">\n <div class=\"notfound\" *ngIf=\"(!outReferences?.length)\">{{'eo.references.object.notfound' | translate}}</div>\n\n <div class=\"grid-wrapper\" *ngIf=\"outReferences?.length\">\n <ag-grid-angular #gridOut [modules]=\"modules\" [gridOptions]=\"gridOptions2\" class=\"ag-result\"></ag-grid-angular>\n </div>\n </div>\n\n </div>\n </ng-template>\n</div>", styles: [":host ::ng-deep ag-grid-angular{background:transparent}:host ::ng-deep .ag-pinned-left-cols-viewport{display:none!important}:host ::ng-deep ag-grid-angular.ag-theme-balham .ag-column-drop-horizontal:not(.ag-hidden){display:none!important}:host ::ng-deep .ag-center-cols-container{width:100%!important}:host ::ng-deep .ag-row{background:transparent!important}:host ::ng-deep ag-grid-angular.ag-theme-balham .ag-header{border:none}:host ::ng-deep .ag-row-group>.ag-cell-wrapper{height:100%;display:flex;flex-flow:row nowrap;flex:1 1 auto;align-items:center;background:var(--color-white);border-radius:2px;padding:calc(var(--app-pane-padding) / 2);border-bottom:1px solid var(--list-item-border-color)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-icon{display:inline-block;height:12px;width:12px;color:var(--color-black)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-icon-contracted{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxyZWN0IHN0cm9rZS1vcGFjaXR5PSIuNSIgc3Ryb2tlPSIjMDAwIiB4PSIxLjUiIHk9IjEuNSIgd2lkdGg9IjkiIGhlaWdodD0iOSIgcng9IjEiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNNSAzaDJ2Nkg1eiIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik05IDV2MkgzVjV6Ii8+PC9nPjwvc3ZnPg==) center/12px 12px no-repeat}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-icon-expanded{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxyZWN0IHN0cm9rZS1vcGFjaXR5PSIuNSIgc3Ryb2tlPSIjMDAwIiB4PSIxLjUiIHk9IjEuNSIgd2lkdGg9IjkiIGhlaWdodD0iOSIgcng9IjEiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNOSA1djJIM1Y1eiIvPjwvZz48L3N2Zz4=) center/12px 12px no-repeat}:host ::ng-deep .ag-row-group>.ag-cell-wrapper>span.ag-group-value>span{display:flex;flex-flow:row nowrap;align-items:center}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-group-child-count{position:absolute;right:48px}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .search-link{opacity:0;height:24px;width:24px;position:absolute;right:var(--app-pane-padding);background:var(--color-accent);border-radius:2px;transition:all .2s ease-in-out;margin-left:var(--app-pane-padding)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .search-link svg{fill:var(--color-white)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .search-link .search-icon{width:20px;margin-left:2px}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .search-link:hover{background:var(--color-accent)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper:hover .search-link{opacity:1}:host ::ng-deep .ag-row-group>.ag-cell-wrapper span.ag-group-value{width:calc(100% - 110px);margin:0 calc(var(--app-pane-padding) * 2)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper span.ag-group-value img{height:24px;opacity:.5;margin-right:calc(var(--app-pane-padding) / 2)}:host ::ng-deep .ag-row-group>.ag-cell-wrapper .ag-group-child-count{color:var(--text-color-caption);font-size:var(--font-caption)}:host ::ng-deep .ag-cell{width:100%!important;border-bottom:1px solid var(--list-item-border-color);background:var(--color-white)}:host ::ng-deep .content{pointer-events:none;overflow:hidden}:host ::ng-deep .content div{pointer-events:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host ::ng-deep .content .title{font-weight:var(--font-weight-bold)}:host ::ng-deep .content .description{opacity:.6;font-size:var(--font-caption)}:host ::ng-deep .ref-list-item{padding:0 var(--app-pane-padding) 0 calc(var(--app-pane-padding) * 4.3);cursor:pointer;height:100%;display:flex;align-items:center}:host ::ng-deep .ref-list-item a{display:flex;align-items:flex-start;text-decoration:none;color:var(--text-color-body);width:100%}:host ::ng-deep .ref-list-item .content{padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding)}:host ::ng-deep .ref-list-item:hover{background:var(--color-accent)}:host ::ng-deep .ref-list-item:hover .content{color:var(--color-white)}.eo-references{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding);height:calc(100% - var(--app-pane-padding) * 2);box-sizing:border-box;display:flex;flex-flow:column}.eo-references .hidden{display:none!important}.eo-references .object-not-found{height:100%;display:flex;justify-content:center;align-items:center}.eo-references .object-not-found div{color:var(--text-color-caption)}.eo-references .form-buttons{width:100%;padding:calc(var(--app-pane-padding) / 2);height:44px;display:flex;justify-content:space-between;background:var(--color-white);box-sizing:border-box}.eo-references .form-buttons .gridlabels{display:flex;width:60%}.eo-references .form-buttons .gridlabel{border:1px solid var(--list-item-border-color);border-radius:4px;padding:0 calc(var(--app-pane-padding) / 2);display:flex;align-items:center;color:var(--text-color-caption);cursor:pointer;margin-right:calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;overflow:hidden}.eo-references .form-buttons .gridlabel span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .form-buttons .gridlabel:hover{color:var(--text-color-body);border-color:#0003}.eo-references .form-buttons .active{color:var(--text-color-body);border-color:#0003;background-color:var(--panel-background-grey)}.eo-references .form-buttons a.button{display:flex;align-items:center;overflow:hidden}.eo-references .form-buttons a.button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .eo-references-lists{flex:1;overflow:hidden;border-top:4px solid rgba(var(--color-black-rgb),.2)}.eo-references .eo-references-lists .resultlist-container{display:flex;flex-flow:column;height:100%;width:100%}.eo-references .eo-references-lists .resultlist-container .notfound{color:var(--text-color-caption);display:flex;align-items:center;justify-content:center;height:100%}.eo-references .eo-references-lists .ag-result{position:absolute;inset:0}.eo-references .eo-references-lists .grid-wrapper{position:relative;flex:1}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLinkDirective, selector: "a[routerLink]" }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8$1.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
19179
19290
  }
19180
19291
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectLinksComponent, decorators: [{
19181
19292
  type: Component,
@@ -19652,9 +19763,10 @@ let ObjectDetailsComponent = class ObjectDetailsComponent {
19652
19763
  const _pTabs = [..._primary, ...plugins.filter(p => !_primary.includes(p))];
19653
19764
  const pTabs = primary ? [...primary, ...diff] : _pTabs;
19654
19765
  const sTabs = secondary || _secondary;
19766
+ const p = pTabs.filter(t => tabs.includes(t));
19655
19767
  const s = sTabs.filter(t => tabs.includes(t));
19656
19768
  // reset primary tabs order if no secondary tabs are available
19657
- const p = sTabs.length ? pTabs.filter(t => tabs.includes(t)) : _pTabs;
19769
+ !s.length && p.sort((a, b) => tabs.indexOf(a) - tabs.indexOf(b));
19658
19770
  this.splitTabConfig = {
19659
19771
  primary: { tabs: p, active: p.includes(cachedOrder?.primary?.active) ? cachedOrder?.primary?.active : p[0] || '' },
19660
19772
  secondary: { tabs: s, active: s.includes(cachedOrder?.secondary?.active) ? cachedOrder?.secondary?.active : s[0] || '' },
@@ -21607,6 +21719,15 @@ let ResultListComponent = class ResultListComponent {
21607
21719
  }
21608
21720
  });
21609
21721
  }
21722
+ ngAfterViewInit() {
21723
+ setTimeout(() => {
21724
+ if (this.grid) {
21725
+ this._query.sortOptions = (this.grid.api.getColumnState() || [])
21726
+ .map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));
21727
+ this.query = this._query;
21728
+ }
21729
+ }, 200);
21730
+ }
21610
21731
  updateRow(id, data) {
21611
21732
  const matchRow = this.resultGridOptions.rowData.find((r) => r.id === id);
21612
21733
  const systemFields = ['created', 'creatortitle', 'modified', 'modifiertitle', 'title', 'description', 'type', 'version', 'filesize', 'filename', 'mimetypegroup', 'mimetype'];
@@ -21656,7 +21777,9 @@ let ResultListComponent = class ResultListComponent {
21656
21777
  }
21657
21778
  refreshGrid() {
21658
21779
  if (this.query) {
21659
- this.query = this.defaultQuery;
21780
+ this._query.sortOptions = (this.grid.api.getColumnState() || [])
21781
+ .map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));
21782
+ this.query = this._query;
21660
21783
  }
21661
21784
  this.onRefresh.emit(this.query);
21662
21785
  }
@@ -22828,10 +22951,10 @@ class AboutStateComponent {
22828
22951
  this.backend = backend;
22829
22952
  this.userService = userService;
22830
22953
  this.config = config;
22831
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/cdk", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/common", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/compiler", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/core", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/forms", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/router", "version": "17.1.2", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.14.0", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.0.0-rc.3", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "17.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "2.0.1", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "2.0.2", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "18.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.2", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.4", "license": "MIT" }];
22954
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/cdk", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/common", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/compiler", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/core", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/forms", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/router", "version": "17.1.2", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.14.0", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.0.0-rc.6", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "17.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "2.0.1", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "2.0.2", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "18.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.2", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.4", "license": "MIT" }];
22832
22955
  this.ctrl = {
22833
22956
  componentName: 'yuuvis® RAD client',
22834
- componentVersion: '11.0.0-rc.5',
22957
+ componentVersion: '11.0.0-rc.7',
22835
22958
  productName: '',
22836
22959
  productVersion: ''
22837
22960
  };
@@ -23240,14 +23363,14 @@ let LastEditedAndCreatedComponent = class LastEditedAndCreatedComponent {
23240
23363
  });
23241
23364
  }
23242
23365
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LastEditedAndCreatedComponent, deps: [{ token: i1.UserService }, { token: i1.SearchService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
23243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: LastEditedAndCreatedComponent, selector: "eo-last-edited-and-created", inputs: { widgetConfig: "widgetConfig" }, viewQueries: [{ propertyName: "availableTabs", predicate: YvcTabDirective, descendants: true }], ngImport: i0, template: "@if (tabs) {\n <yvc-tabs [tabs]=\"tabs\" layoutSettingsID=\"eo.lastEdited.widget.tabs\"></yvc-tabs>\n}\n\n<ng-template [yvcTab]=\"{id: 'LastEdited', label: 'eo.dashboard.modified.title' | translate}\">\n @if (modifiedByMe?.lately.length) {\n <div class=\"container\">\n <main class=\"body\">\n @for (item of modifiedByMe.lately; track $index) {\n <div class=\"item\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{ item.modified | localeDate }}</div>\n <div class=\"title\">{{ item.title }}</div>\n <div class=\"description\">{{ item.description }}</div>\n </div>\n </div>\n }\n </main>\n </div>\n }\n</ng-template>\n\n<ng-template [yvcTab]=\"{id: 'LastCreated', label: 'eo.dashboard.created.title' | translate}\">\n @if (createdByMe?.lately.length) {\n <div class=\"container\">\n <main class=\"body\">\n @for (item of createdByMe.lately; track $index) {\n <div class=\"item\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{ item.created | localeDate }}</div>\n <div class=\"title\">{{ item.title }}</div>\n <div class=\"description\">{{ item.description }}</div>\n </div>\n </div>\n }\n </main>\n </div>\n }\n</ng-template>\n", styles: [":host{display:contents}@media screen and (max-width: 800px){:host{height:40%;padding:0 var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}}:host yvc-tabs{--text-color-body: #fff;color:var(--text-color-body);background-color:var(--text-color-body);height:100%}:host yvc-tabs ::ng-deep>header{height:50px;background-color:var(--color-primary-2)}:host .container{display:flex;flex-flow:column}:host .container .header{flex:0 0 auto;border-radius:2px;color:var(--color-white);background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}:host .container .header h2{margin:0;padding:0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal)}:host .container .header .total{font-size:var(--font-caption);opacity:.7}:host .container .body{flex:1 1 auto;overflow-y:auto}:host .container .body .item{border-radius:2px;display:flex;flex-flow:row nowrap;color:var(--text-color-caption);padding:calc(var(--app-pane-padding) / 2);margin:calc(var(--app-pane-padding) / 4) 0;align-items:center;background-color:rgba(var(--color-white-rgb),.9);text-decoration:none;cursor:pointer}:host .container .body .item:focus,:host .container .body .item:hover{background-color:var(--list-item-hover-background)}:host .container .body .item eo-icon{flex:0 0 auto;padding:0 calc(var(--app-pane-padding) / 2)}:host .container .body .item>div{flex:1 1 auto;width:90%;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host .container .body .item .modified,:host .container .body .item .description,:host .container .body .item .title{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host .container .body .item .modified,:host .container .body .item .description{font-size:var(--font-hint)}:host .container .body .item .title{font-weight:var(--font-weight-bold)}\n"], dependencies: [{ kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i12.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i12.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }] }); }
23366
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: LastEditedAndCreatedComponent, selector: "eo-last-edited-and-created", inputs: { widgetConfig: "widgetConfig" }, viewQueries: [{ propertyName: "availableTabs", predicate: YvcTabDirective, descendants: true }], ngImport: i0, template: "@if (tabs) {\n<yvc-tabs [tabs]=\"tabs\" layoutSettingsID=\"eo.lastEdited.widget.tabs\">\n\n <ng-template [yvcTab]=\"{id: 'LastEdited', label: 'eo.dashboard.modified.title' | translate}\">\n @if (modifiedByMe?.lately.length) {\n <div class=\"container\">\n <main class=\"body\">\n @for (item of modifiedByMe.lately; track $index) {\n <div class=\"item\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{ item.modified | localeDate }}</div>\n <div class=\"title\">{{ item.title }}</div>\n <div class=\"description\">{{ item.description }}</div>\n </div>\n </div>\n }\n </main>\n </div>\n }\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'LastCreated', label: 'eo.dashboard.created.title' | translate}\">\n @if (createdByMe?.lately.length) {\n <div class=\"container\">\n <main class=\"body\">\n @for (item of createdByMe.lately; track $index) {\n <div class=\"item\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{ item.created | localeDate }}</div>\n <div class=\"title\">{{ item.title }}</div>\n <div class=\"description\">{{ item.description }}</div>\n </div>\n </div>\n }\n </main>\n </div>\n }\n </ng-template>\n</yvc-tabs>\n}", styles: [":host{display:contents}@media screen and (max-width: 800px){:host{height:40%;padding:0 var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}}:host yvc-tabs{--text-color-body: #fff;color:var(--text-color-body);background-color:var(--text-color-body);height:100%}:host yvc-tabs ::ng-deep>header{height:50px;background-color:var(--color-primary-2)}:host .container{display:flex;flex-flow:column}:host .container .header{flex:0 0 auto;border-radius:2px;color:var(--color-white);background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}:host .container .header h2{margin:0;padding:0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal)}:host .container .header .total{font-size:var(--font-caption);opacity:.7}:host .container .body{flex:1 1 auto;overflow-y:auto}:host .container .body .item{border-radius:2px;display:flex;flex-flow:row nowrap;color:var(--text-color-caption);padding:calc(var(--app-pane-padding) / 2);margin:calc(var(--app-pane-padding) / 4) 0;align-items:center;background-color:rgba(var(--color-white-rgb),.9);text-decoration:none;cursor:pointer}:host .container .body .item:focus,:host .container .body .item:hover{background-color:var(--list-item-hover-background)}:host .container .body .item eo-icon{flex:0 0 auto;padding:0 calc(var(--app-pane-padding) / 2)}:host .container .body .item>div{flex:1 1 auto;width:90%;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host .container .body .item .modified,:host .container .body .item .description,:host .container .body .item .title{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host .container .body .item .modified,:host .container .body .item .description{font-size:var(--font-hint)}:host .container .body .item .title{font-weight:var(--font-weight-bold)}\n"], dependencies: [{ kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i12.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i12.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }] }); }
23244
23367
  };
23245
23368
  LastEditedAndCreatedComponent = __decorate([
23246
23369
  UntilDestroy()
23247
23370
  ], LastEditedAndCreatedComponent);
23248
23371
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LastEditedAndCreatedComponent, decorators: [{
23249
23372
  type: Component,
23250
- args: [{ selector: 'eo-last-edited-and-created', template: "@if (tabs) {\n <yvc-tabs [tabs]=\"tabs\" layoutSettingsID=\"eo.lastEdited.widget.tabs\"></yvc-tabs>\n}\n\n<ng-template [yvcTab]=\"{id: 'LastEdited', label: 'eo.dashboard.modified.title' | translate}\">\n @if (modifiedByMe?.lately.length) {\n <div class=\"container\">\n <main class=\"body\">\n @for (item of modifiedByMe.lately; track $index) {\n <div class=\"item\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{ item.modified | localeDate }}</div>\n <div class=\"title\">{{ item.title }}</div>\n <div class=\"description\">{{ item.description }}</div>\n </div>\n </div>\n }\n </main>\n </div>\n }\n</ng-template>\n\n<ng-template [yvcTab]=\"{id: 'LastCreated', label: 'eo.dashboard.created.title' | translate}\">\n @if (createdByMe?.lately.length) {\n <div class=\"container\">\n <main class=\"body\">\n @for (item of createdByMe.lately; track $index) {\n <div class=\"item\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{ item.created | localeDate }}</div>\n <div class=\"title\">{{ item.title }}</div>\n <div class=\"description\">{{ item.description }}</div>\n </div>\n </div>\n }\n </main>\n </div>\n }\n</ng-template>\n", styles: [":host{display:contents}@media screen and (max-width: 800px){:host{height:40%;padding:0 var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}}:host yvc-tabs{--text-color-body: #fff;color:var(--text-color-body);background-color:var(--text-color-body);height:100%}:host yvc-tabs ::ng-deep>header{height:50px;background-color:var(--color-primary-2)}:host .container{display:flex;flex-flow:column}:host .container .header{flex:0 0 auto;border-radius:2px;color:var(--color-white);background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}:host .container .header h2{margin:0;padding:0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal)}:host .container .header .total{font-size:var(--font-caption);opacity:.7}:host .container .body{flex:1 1 auto;overflow-y:auto}:host .container .body .item{border-radius:2px;display:flex;flex-flow:row nowrap;color:var(--text-color-caption);padding:calc(var(--app-pane-padding) / 2);margin:calc(var(--app-pane-padding) / 4) 0;align-items:center;background-color:rgba(var(--color-white-rgb),.9);text-decoration:none;cursor:pointer}:host .container .body .item:focus,:host .container .body .item:hover{background-color:var(--list-item-hover-background)}:host .container .body .item eo-icon{flex:0 0 auto;padding:0 calc(var(--app-pane-padding) / 2)}:host .container .body .item>div{flex:1 1 auto;width:90%;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host .container .body .item .modified,:host .container .body .item .description,:host .container .body .item .title{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host .container .body .item .modified,:host .container .body .item .description{font-size:var(--font-hint)}:host .container .body .item .title{font-weight:var(--font-weight-bold)}\n"] }]
23373
+ args: [{ selector: 'eo-last-edited-and-created', template: "@if (tabs) {\n<yvc-tabs [tabs]=\"tabs\" layoutSettingsID=\"eo.lastEdited.widget.tabs\">\n\n <ng-template [yvcTab]=\"{id: 'LastEdited', label: 'eo.dashboard.modified.title' | translate}\">\n @if (modifiedByMe?.lately.length) {\n <div class=\"container\">\n <main class=\"body\">\n @for (item of modifiedByMe.lately; track $index) {\n <div class=\"item\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{ item.modified | localeDate }}</div>\n <div class=\"title\">{{ item.title }}</div>\n <div class=\"description\">{{ item.description }}</div>\n </div>\n </div>\n }\n </main>\n </div>\n }\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'LastCreated', label: 'eo.dashboard.created.title' | translate}\">\n @if (createdByMe?.lately.length) {\n <div class=\"container\">\n <main class=\"body\">\n @for (item of createdByMe.lately; track $index) {\n <div class=\"item\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{ item.created | localeDate }}</div>\n <div class=\"title\">{{ item.title }}</div>\n <div class=\"description\">{{ item.description }}</div>\n </div>\n </div>\n }\n </main>\n </div>\n }\n </ng-template>\n</yvc-tabs>\n}", styles: [":host{display:contents}@media screen and (max-width: 800px){:host{height:40%;padding:0 var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}}:host yvc-tabs{--text-color-body: #fff;color:var(--text-color-body);background-color:var(--text-color-body);height:100%}:host yvc-tabs ::ng-deep>header{height:50px;background-color:var(--color-primary-2)}:host .container{display:flex;flex-flow:column}:host .container .header{flex:0 0 auto;border-radius:2px;color:var(--color-white);background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}:host .container .header h2{margin:0;padding:0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal)}:host .container .header .total{font-size:var(--font-caption);opacity:.7}:host .container .body{flex:1 1 auto;overflow-y:auto}:host .container .body .item{border-radius:2px;display:flex;flex-flow:row nowrap;color:var(--text-color-caption);padding:calc(var(--app-pane-padding) / 2);margin:calc(var(--app-pane-padding) / 4) 0;align-items:center;background-color:rgba(var(--color-white-rgb),.9);text-decoration:none;cursor:pointer}:host .container .body .item:focus,:host .container .body .item:hover{background-color:var(--list-item-hover-background)}:host .container .body .item eo-icon{flex:0 0 auto;padding:0 calc(var(--app-pane-padding) / 2)}:host .container .body .item>div{flex:1 1 auto;width:90%;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host .container .body .item .modified,:host .container .body .item .description,:host .container .body .item .title{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host .container .body .item .modified,:host .container .body .item .description{font-size:var(--font-hint)}:host .container .body .item .title{font-weight:var(--font-weight-bold)}\n"] }]
23251
23374
  }], ctorParameters: () => [{ type: i1.UserService }, { type: i1.SearchService }, { type: i1.SystemService }], propDecorators: { availableTabs: [{
23252
23375
  type: ViewChildren,
23253
23376
  args: [YvcTabDirective]
@@ -23369,14 +23492,14 @@ let InfoInboxWidgetComponent = class InfoInboxWidgetComponent {
23369
23492
  }
23370
23493
  }
23371
23494
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: InfoInboxWidgetComponent, deps: [{ token: i1.CapabilitiesService }, { token: i1.InboxService }], target: i0.ɵɵFactoryTarget.Component }); }
23372
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: InfoInboxWidgetComponent, selector: "eo-info-inbox-widget", inputs: { widgetConfig: "widgetConfig" }, ngImport: i0, template: "<a class=\"info\" [ngClass]=\"{visible: capabilities.inbox && inboxState && inboxState.totalmessages > 0}\" [routerLink]=\"['/inbox']\">\n <div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"count\">{{inboxState.totalmessages}}</div>\n </div>\n <div class=\"msg\">{{widgetConfig?.title}}</div>\n</a>\n", styles: [":host-context(.editMode) .info:not(.visible){opacity:1}:host .info{color:var(--color-primary-2);padding:0 var(--app-pane-padding);margin-bottom:calc(var(--app-pane-padding) * 2);text-decoration:none;cursor:pointer}:host .info:not(.visible){opacity:0;pointer-events:none}:host .info:focus,:host .info:hover{color:var(--color-accent)}:host .info:focus eo-icon,:host .info:hover eo-icon{background-color:var(--color-accent)}:host .info>div{display:flex;align-items:center}:host .info eo-icon{flex:0 0 auto;border-radius:2px;background-color:var(--color-primary-2);color:rgba(var(--color-white-rgb),.7);padding:2px}:host .info .count{font-size:40px;line-height:1em;padding:0 var(--app-pane-padding);text-align:right}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: RouterLinkDirective, selector: "a[routerLink]" }] }); }
23495
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: InfoInboxWidgetComponent, selector: "eo-info-inbox-widget", inputs: { widgetConfig: "widgetConfig" }, ngImport: i0, template: "<a class=\"info\" [ngClass]=\"{visible: capabilities.inbox && inboxState && inboxState.totalmessages > 0}\" [routerLink]=\"['/inbox']\">\n <div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"count\">{{inboxState?.totalmessages}}</div>\n </div>\n <div class=\"msg\">{{widgetConfig?.title}}</div>\n</a>\n", styles: [":host-context(.editMode) .info:not(.visible){opacity:1}:host .info{color:var(--color-primary-2);padding:0 var(--app-pane-padding);margin-bottom:calc(var(--app-pane-padding) * 2);text-decoration:none;cursor:pointer}:host .info:not(.visible){opacity:0;pointer-events:none}:host .info:focus,:host .info:hover{color:var(--color-accent)}:host .info:focus eo-icon,:host .info:hover eo-icon{background-color:var(--color-accent)}:host .info>div{display:flex;align-items:center}:host .info eo-icon{flex:0 0 auto;border-radius:2px;background-color:var(--color-primary-2);color:rgba(var(--color-white-rgb),.7);padding:2px}:host .info .count{font-size:40px;line-height:1em;padding:0 var(--app-pane-padding);text-align:right}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: RouterLinkDirective, selector: "a[routerLink]" }] }); }
23373
23496
  };
23374
23497
  InfoInboxWidgetComponent = __decorate([
23375
23498
  UntilDestroy()
23376
23499
  ], InfoInboxWidgetComponent);
23377
23500
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: InfoInboxWidgetComponent, decorators: [{
23378
23501
  type: Component,
23379
- args: [{ selector: 'eo-info-inbox-widget', template: "<a class=\"info\" [ngClass]=\"{visible: capabilities.inbox && inboxState && inboxState.totalmessages > 0}\" [routerLink]=\"['/inbox']\">\n <div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"count\">{{inboxState.totalmessages}}</div>\n </div>\n <div class=\"msg\">{{widgetConfig?.title}}</div>\n</a>\n", styles: [":host-context(.editMode) .info:not(.visible){opacity:1}:host .info{color:var(--color-primary-2);padding:0 var(--app-pane-padding);margin-bottom:calc(var(--app-pane-padding) * 2);text-decoration:none;cursor:pointer}:host .info:not(.visible){opacity:0;pointer-events:none}:host .info:focus,:host .info:hover{color:var(--color-accent)}:host .info:focus eo-icon,:host .info:hover eo-icon{background-color:var(--color-accent)}:host .info>div{display:flex;align-items:center}:host .info eo-icon{flex:0 0 auto;border-radius:2px;background-color:var(--color-primary-2);color:rgba(var(--color-white-rgb),.7);padding:2px}:host .info .count{font-size:40px;line-height:1em;padding:0 var(--app-pane-padding);text-align:right}\n"] }]
23502
+ args: [{ selector: 'eo-info-inbox-widget', template: "<a class=\"info\" [ngClass]=\"{visible: capabilities.inbox && inboxState && inboxState.totalmessages > 0}\" [routerLink]=\"['/inbox']\">\n <div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"count\">{{inboxState?.totalmessages}}</div>\n </div>\n <div class=\"msg\">{{widgetConfig?.title}}</div>\n</a>\n", styles: [":host-context(.editMode) .info:not(.visible){opacity:1}:host .info{color:var(--color-primary-2);padding:0 var(--app-pane-padding);margin-bottom:calc(var(--app-pane-padding) * 2);text-decoration:none;cursor:pointer}:host .info:not(.visible){opacity:0;pointer-events:none}:host .info:focus,:host .info:hover{color:var(--color-accent)}:host .info:focus eo-icon,:host .info:hover eo-icon{background-color:var(--color-accent)}:host .info>div{display:flex;align-items:center}:host .info eo-icon{flex:0 0 auto;border-radius:2px;background-color:var(--color-primary-2);color:rgba(var(--color-white-rgb),.7);padding:2px}:host .info .count{font-size:40px;line-height:1em;padding:0 var(--app-pane-padding);text-align:right}\n"] }]
23380
23503
  }], ctorParameters: () => [{ type: i1.CapabilitiesService }, { type: i1.InboxService }], propDecorators: { widgetConfig: [{
23381
23504
  type: Input
23382
23505
  }] } });
@@ -23606,7 +23729,7 @@ let HitlistSetupComponent = class HitlistSetupComponent {
23606
23729
  sortRevert: [],
23607
23730
  });
23608
23731
  this.storedQueriesPicker = {
23609
- title: this.translate.instant('eo.search.title.storedqueries'),
23732
+ title: this.translate.instant('eo.workspace.widget.label.storedquery'),
23610
23733
  codesystem: null,
23611
23734
  };
23612
23735
  this.propertyPicker = {
@@ -23743,14 +23866,14 @@ let HitlistSetupComponent = class HitlistSetupComponent {
23743
23866
  }
23744
23867
  }
23745
23868
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HitlistSetupComponent, deps: [{ token: i1$3.UntypedFormBuilder }, { token: i1.StoredQueriesService }, { token: i1.TranslateService }, { token: i1.UserService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
23746
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: HitlistSetupComponent, selector: "eo-hitlist-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange", widgetConfigStateChange: "widgetConfigStateChange" }, viewQueries: [{ propertyName: "firstLabelPropertyCodesystem", first: true, predicate: ["firstLabelPropertyCodesystem"], descendants: true }, { propertyName: "secondLabelPropertyCodesystem", first: true, predicate: ["secondLabelPropertyCodesystem"], descendants: true }, { propertyName: "thirdLabelPropertyCodesystem", first: true, predicate: ["thirdLabelPropertyCodesystem"], descendants: true }], ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.search.title.storedqueries' | translate\" [required]=\"true\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n @if (widgetConfig?.storedQuery) {\n <div class=\"listOptions\">\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\n [invalid]=\"setupForm.get('size').invalid\"\n [label]=\"'eo.workspace.widget.form.label.size' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('size').invalid) {\n <div class=\"err-msg\" translate>\n @if (setupForm.get('size').hasError('required')) {\n eo.form.property.required\n } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\n eo.form.property.string.error.classification.partialValue\n }\n </div>\n }\n\n @if (propertyPicker?.codesystem?.entries) {\n <div class=\"propertyPicker\">\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.firstLabel'|translate\">\n <eo-codesystem #firstLabelPropertyCodesystem formControlName=\"firstLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.secondLabel'|translate\"\n [invalid]=\"setupForm.get('secondLabel').invalid\">\n <eo-codesystem #secondLabelPropertyCodesystem formControlName=\"secondLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('secondLabel').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.thirdLabel'|translate\">\n <eo-codesystem #thirdLabelPropertyCodesystem formControlName=\"thirdLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n </div>\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.sortField'|translate\">\n <eo-codesystem formControlName=\"sortField\" [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n\n <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\n [skipToggle]=\"true\">\n <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n </div>\n }\n </form>\n</div>\n\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-hitlist-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-hitlist-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .propertyPicker{padding-bottom:30px;padding-top:30px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-hitlist-widget{border:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: HitlistWidgetComponent, selector: "eo-hitlist-widget", inputs: ["editMode", "widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
23869
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: HitlistSetupComponent, selector: "eo-hitlist-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange", widgetConfigStateChange: "widgetConfigStateChange" }, viewQueries: [{ propertyName: "firstLabelPropertyCodesystem", first: true, predicate: ["firstLabelPropertyCodesystem"], descendants: true }, { propertyName: "secondLabelPropertyCodesystem", first: true, predicate: ["secondLabelPropertyCodesystem"], descendants: true }, { propertyName: "thirdLabelPropertyCodesystem", first: true, predicate: ["thirdLabelPropertyCodesystem"], descendants: true }], ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.label.storedquery' | translate\" [required]=\"true\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n @if (widgetConfig?.storedQuery) {\n <div class=\"listOptions\">\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\n [invalid]=\"setupForm.get('size').invalid\"\n [label]=\"'eo.workspace.widget.form.label.size' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('size').invalid) {\n <div class=\"err-msg\" translate>\n @if (setupForm.get('size').hasError('required')) {\n eo.form.property.required\n } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\n eo.form.property.string.error.classification.partialValue\n }\n </div>\n }\n\n @if (propertyPicker?.codesystem?.entries) {\n <div class=\"propertyPicker\">\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.firstLabel'|translate\">\n <eo-codesystem #firstLabelPropertyCodesystem formControlName=\"firstLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.secondLabel'|translate\"\n [invalid]=\"setupForm.get('secondLabel').invalid\">\n <eo-codesystem #secondLabelPropertyCodesystem formControlName=\"secondLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('secondLabel').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.thirdLabel'|translate\">\n <eo-codesystem #thirdLabelPropertyCodesystem formControlName=\"thirdLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n </div>\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.sortField'|translate\">\n <eo-codesystem formControlName=\"sortField\" [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n\n <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\n [skipToggle]=\"true\">\n <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n </div>\n }\n </form>\n</div>\n\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-hitlist-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-hitlist-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .propertyPicker{padding-bottom:30px;padding-top:30px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-hitlist-widget{border:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: HitlistWidgetComponent, selector: "eo-hitlist-widget", inputs: ["editMode", "widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
23747
23870
  };
23748
23871
  HitlistSetupComponent = __decorate([
23749
23872
  UntilDestroy()
23750
23873
  ], HitlistSetupComponent);
23751
23874
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HitlistSetupComponent, decorators: [{
23752
23875
  type: Component,
23753
- args: [{ selector: 'eo-hitlist-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.search.title.storedqueries' | translate\" [required]=\"true\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n @if (widgetConfig?.storedQuery) {\n <div class=\"listOptions\">\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\n [invalid]=\"setupForm.get('size').invalid\"\n [label]=\"'eo.workspace.widget.form.label.size' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('size').invalid) {\n <div class=\"err-msg\" translate>\n @if (setupForm.get('size').hasError('required')) {\n eo.form.property.required\n } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\n eo.form.property.string.error.classification.partialValue\n }\n </div>\n }\n\n @if (propertyPicker?.codesystem?.entries) {\n <div class=\"propertyPicker\">\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.firstLabel'|translate\">\n <eo-codesystem #firstLabelPropertyCodesystem formControlName=\"firstLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.secondLabel'|translate\"\n [invalid]=\"setupForm.get('secondLabel').invalid\">\n <eo-codesystem #secondLabelPropertyCodesystem formControlName=\"secondLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('secondLabel').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.thirdLabel'|translate\">\n <eo-codesystem #thirdLabelPropertyCodesystem formControlName=\"thirdLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n </div>\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.sortField'|translate\">\n <eo-codesystem formControlName=\"sortField\" [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n\n <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\n [skipToggle]=\"true\">\n <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n </div>\n }\n </form>\n</div>\n\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-hitlist-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-hitlist-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .propertyPicker{padding-bottom:30px;padding-top:30px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-hitlist-widget{border:1px solid var(--panel-divider-color)}\n"] }]
23876
+ args: [{ selector: 'eo-hitlist-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.label.storedquery' | translate\" [required]=\"true\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n @if (widgetConfig?.storedQuery) {\n <div class=\"listOptions\">\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\n [invalid]=\"setupForm.get('size').invalid\"\n [label]=\"'eo.workspace.widget.form.label.size' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('size').invalid) {\n <div class=\"err-msg\" translate>\n @if (setupForm.get('size').hasError('required')) {\n eo.form.property.required\n } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\n eo.form.property.string.error.classification.partialValue\n }\n </div>\n }\n\n @if (propertyPicker?.codesystem?.entries) {\n <div class=\"propertyPicker\">\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.firstLabel'|translate\">\n <eo-codesystem #firstLabelPropertyCodesystem formControlName=\"firstLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.secondLabel'|translate\"\n [invalid]=\"setupForm.get('secondLabel').invalid\">\n <eo-codesystem #secondLabelPropertyCodesystem formControlName=\"secondLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('secondLabel').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.thirdLabel'|translate\">\n <eo-codesystem #thirdLabelPropertyCodesystem formControlName=\"thirdLabel\"\n [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n </div>\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.sortField'|translate\">\n <eo-codesystem formControlName=\"sortField\" [pickerTitle]=\"propertyPicker.title\"\n [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n\n <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\n [skipToggle]=\"true\">\n <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n </div>\n }\n </form>\n</div>\n\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-hitlist-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-hitlist-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .propertyPicker{padding-bottom:30px;padding-top:30px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-hitlist-widget{border:1px solid var(--panel-divider-color)}\n"] }]
23754
23877
  }], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }, { type: i1.StoredQueriesService }, { type: i1.TranslateService }, { type: i1.UserService }, { type: i1.SystemService }], propDecorators: { widgetConfigChange: [{
23755
23878
  type: Output
23756
23879
  }], widgetConfigStateChange: [{
@@ -23933,6 +24056,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
23933
24056
  size: this._widgetConfig?.formValue?.size || 10,
23934
24057
  order: sort ? 'asc' : 'desc',
23935
24058
  sort: attributMetricKey + '.value',
24059
+ min_doc_count: minDocCount,
23936
24060
  sub: {
23937
24061
  [attributMetricKey]: {
23938
24062
  metrics: this._widgetConfig?.formValue?.metric
@@ -23950,7 +24074,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
23950
24074
  this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {
23951
24075
  return {
23952
24076
  group: e.key.replace('_', '-'),
23953
- value: e[metric + '#' + attributMetric].value,
24077
+ value: e[metric + '#' + attributMetricKey].value,
23954
24078
  };
23955
24079
  });
23956
24080
  }
@@ -24049,7 +24173,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
24049
24173
  if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.filesize') {
24050
24174
  this.chartData = res.aggregations.filesize.buckets.map((e) => {
24051
24175
  return {
24052
- group: this.translate.instant('eo.search.agg.filesize.' + e.key),
24176
+ group: e.key.replace('_', '-'),
24053
24177
  value: e.doc_count,
24054
24178
  };
24055
24179
  });
@@ -24096,7 +24220,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
24096
24220
  window.open(url, event?.ctrlKey || this.editMode ? '_blank' : '_self');
24097
24221
  }
24098
24222
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChartsWidgetComponent, deps: [{ token: i2$1.Router }, { token: i1.SearchService }, { token: AppSearchService }, { token: i1.StoredQueriesService }, { token: i1.TranslateService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
24099
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ChartsWidgetComponent, selector: "eo-charts-widget", inputs: { editMode: "editMode", widgetConfig: "widgetConfig" }, ngImport: i0, template: "<header>\n <div class=\"header-title\">\n @if (widgetConfig?.formValue?.storedQuery) {\n <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\n <div class=\"icons-title\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n }\n </div>\n</header>\n\n@if (refreshingRequest) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n} @else if (chartData.length > 0 && !refreshingRequest) {\n <main class=\"chart\">\n <div class=\"item\">\n @switch (widgetConfig!.formValue.chartType) {\n @case ('bar') {\n <ibm-simple-bar-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\n }\n @case ('pie') {\n <ibm-pie-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\n }\n @case ('donut') {\n <ibm-donut-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\n }\n @case ('lineStraight') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\n }\n @case ('lineCurve') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\n }\n }\n </div>\n </main>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:hidden}:host main.chart .item{height:92%;padding:calc(var(--app-pane-padding) / 2)}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--chart-holder{height:100%!important}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-title)}::ng-deep .cds--cc--axes g.axis .axis-title{font-size:var(--font-subhead)}\n"], dependencies: [{ kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i7$2.SimpleBarChartComponent, selector: "ibm-simple-bar-chart" }, { kind: "component", type: i7$2.DonutChartComponent, selector: "ibm-donut-chart" }, { kind: "component", type: i7$2.LineChartComponent, selector: "ibm-line-chart" }, { kind: "component", type: i7$2.PieChartComponent, selector: "ibm-pie-chart" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
24223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ChartsWidgetComponent, selector: "eo-charts-widget", inputs: { editMode: "editMode", widgetConfig: "widgetConfig" }, ngImport: i0, template: "<header>\n <div class=\"header-title\">\n @if (widgetConfig?.formValue?.storedQuery) {\n <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\n <div class=\"icons-title\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n }\n </div>\n</header>\n\n@if (refreshingRequest) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n} @else if (chartData.length > 0 && !refreshingRequest) {\n <main class=\"chart\">\n <div class=\"item\">\n @switch (widgetConfig!.formValue.chartType) {\n @case ('bar') {\n <ibm-simple-bar-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\n }\n @case ('pie') {\n <ibm-pie-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\n }\n @case ('donut') {\n <ibm-donut-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\n }\n @case ('lineStraight') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\n }\n @case ('lineCurve') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\n }\n }\n </div>\n </main>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:hidden}:host main.chart .item{height:92%;padding:calc(var(--app-pane-padding) / 2)}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--chart-holder{height:100%!important}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-title)}::ng-deep .cds--cc--axes g.axis .axis-title{font-size:var(--font-subhead)}\n"], dependencies: [{ kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i7$1.SimpleBarChartComponent, selector: "ibm-simple-bar-chart" }, { kind: "component", type: i7$1.DonutChartComponent, selector: "ibm-donut-chart" }, { kind: "component", type: i7$1.LineChartComponent, selector: "ibm-line-chart" }, { kind: "component", type: i7$1.PieChartComponent, selector: "ibm-pie-chart" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
24100
24224
  };
24101
24225
  ChartsWidgetComponent = __decorate([
24102
24226
  UntilDestroy()
@@ -24143,7 +24267,7 @@ let ChartsSetupComponent = class ChartsSetupComponent {
24143
24267
  yAxe: ['', [Validators.maxLength(50)]]
24144
24268
  });
24145
24269
  this.storedQueriesPicker = {
24146
- title: this.translate.instant('eo.search.title.storedqueries'),
24270
+ title: this.translate.instant('eo.workspace.widget.label.storedquery'),
24147
24271
  codesystem: null,
24148
24272
  };
24149
24273
  this.aggregationPicker = {
@@ -24185,7 +24309,7 @@ let ChartsSetupComponent = class ChartsSetupComponent {
24185
24309
  this.widgetConfig = {
24186
24310
  storedQuery: this.storedQuery?.id,
24187
24311
  formValue: this.setupForm.value,
24188
- aggregationType: ''
24312
+ aggregationType: 'DATETIME'
24189
24313
  };
24190
24314
  if (this.setupForm.get('storedQuery').value !== this.selectedSavedSearchName) {
24191
24315
  if (this.storedQuery) {
@@ -24488,14 +24612,14 @@ let ChartsSetupComponent = class ChartsSetupComponent {
24488
24612
  }
24489
24613
  }
24490
24614
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChartsSetupComponent, deps: [{ token: i1$3.UntypedFormBuilder }, { token: i1.StoredQueriesService }, { token: i1.TranslateService }, { token: i1.UserService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
24491
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ChartsSetupComponent, selector: "eo-charts-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange", widgetConfigStateChange: "widgetConfigStateChange" }, viewQueries: [{ propertyName: "aggregationCodesystem", first: true, predicate: ["aggregationCodesystem"], descendants: true }], ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.chartTypeField' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('chartType').invalid\">\n <eo-codesystem formControlName=\"chartType\" [pickerTitle]=\"chartTypePicker.title\"\n [codesystem]=\"chartTypePicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('chartType').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.search.title.storedqueries' | translate\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n @if (aggregationPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid) {\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.aggregationField' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('aggregation').invalid\">\n <eo-codesystem #aggregationCodesystem formControlName=\"aggregation\" [pickerTitle]=\"aggregationPicker.title\"\n [codesystem]=\"aggregationPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('aggregation').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n <eo-form-input [required]=\"true\"\n [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.partialValue' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('size').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('size').invalid) {\n <div class=\"err-msg\" translate>\n @if (setupForm.get('size').hasError('required')) {\n eo.form.property.required\n } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\n eo.form.property.string.error.classification.partialValue\n }\n </div>\n }\n }\n\n @if (isDateTimeType) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.histogram' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('histogramType').invalid\">\n <eo-codesystem formControlName=\"histogramType\" [pickerTitle]=\"histogramTypePicker.title\"\n [codesystem]=\"histogramTypePicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n @if (widgetConfig?.formValue?.aggregation && !isDateTimeType) {\n @if (widgetConfig.formValue.chartType === 'bar') {\n <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\n [skipToggle]=\"true\">\n <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n }\n @if (widgetConfig.formValue.chartType === 'bar' || widgetConfig.formValue.chartType === 'pie' || widgetConfig.formValue.chartType === 'ring' && !widgetConfig?.formValue?.attributMetric) {\n <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.minDocCount' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"minDocCount\">\n </eo-number>\n </eo-form-input>\n }\n }\n\n @if (isNumberType) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.charts.interval' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('interval').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"interval\"></eo-number>\n </eo-form-input>\n\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.charts.startingpoint' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('startingpoint').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"startingpoint\"></eo-number>\n </eo-form-input>\n }\n @if (widgetConfig?.formValue?.chartType !== 'lineStraight' && widgetConfig?.formValue?.chartType !== 'lineCurve' &&\n attributMetricPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid && !isNumberType && !isDateTimeType) {\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.attributMetric' | translate\">\n <eo-codesystem formControlName=\"attributMetric\" [pickerTitle]=\"attributMetricPicker.title\"\n [codesystem]=\"attributMetricPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n\n @if (widgetConfig?.formValue?.attributMetric) {\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.chartMetric' | translate\">\n <eo-codesystem formControlName=\"metric\" [pickerTitle]=\"chartMetricPicker.title\"\n [codesystem]=\"chartMetricPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n }\n\n @if (widgetConfig?.formValue?.chartType) {\n <div class=\"propertyPicker\">\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.title' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('title').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"title\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('title').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n @if (widgetConfig?.formValue?.chartType !== 'pie' && widgetConfig?.formValue?.chartType !== 'donut') {\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.xAxe' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('xAxe').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"xAxe\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('xAxe').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.yAxe' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('yAxe').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"yAxe\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('yAxe').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n }\n </div>\n }\n </form>\n</div>\n\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-charts-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-charts-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .propertyPicker{display:block;padding-top:40px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-charts-widget{border:1px transparent var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: ChartsWidgetComponent, selector: "eo-charts-widget", inputs: ["editMode", "widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
24615
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ChartsSetupComponent, selector: "eo-charts-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange", widgetConfigStateChange: "widgetConfigStateChange" }, viewQueries: [{ propertyName: "aggregationCodesystem", first: true, predicate: ["aggregationCodesystem"], descendants: true }], ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.chartTypeField' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('chartType').invalid\">\n <eo-codesystem formControlName=\"chartType\" [pickerTitle]=\"chartTypePicker.title\"\n [codesystem]=\"chartTypePicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('chartType').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.label.storedquery' | translate\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n @if (aggregationPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid) {\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.aggregationField' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('aggregation').invalid\">\n <eo-codesystem #aggregationCodesystem formControlName=\"aggregation\" [pickerTitle]=\"aggregationPicker.title\"\n [codesystem]=\"aggregationPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('aggregation').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n <eo-form-input [required]=\"true\"\n [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.partialValue' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('size').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('size').invalid) {\n <div class=\"err-msg\" translate>\n @if (setupForm.get('size').hasError('required')) {\n eo.form.property.required\n } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\n eo.form.property.string.error.classification.partialValue\n }\n </div>\n }\n }\n\n @if (isDateTimeType) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.histogram' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('histogramType').invalid\">\n <eo-codesystem formControlName=\"histogramType\" [pickerTitle]=\"histogramTypePicker.title\"\n [codesystem]=\"histogramTypePicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n @if (widgetConfig?.formValue?.aggregation && !isDateTimeType) {\n @if (widgetConfig.formValue.chartType === 'bar') {\n <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\n [skipToggle]=\"true\">\n <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n }\n @if (widgetConfig.formValue.chartType === 'bar' || widgetConfig.formValue.chartType === 'pie' || widgetConfig.formValue.chartType === 'ring' && !widgetConfig?.formValue?.attributMetric) {\n <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.minDocCount' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"minDocCount\">\n </eo-number>\n </eo-form-input>\n }\n }\n\n @if (isNumberType) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.charts.interval' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('interval').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"interval\"></eo-number>\n </eo-form-input>\n\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.charts.startingpoint' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('startingpoint').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"startingpoint\"></eo-number>\n </eo-form-input>\n }\n @if (widgetConfig?.formValue?.chartType !== 'lineStraight' && widgetConfig?.formValue?.chartType !== 'lineCurve' &&\n attributMetricPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid && !isNumberType && !isDateTimeType) {\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.attributMetric' | translate\">\n <eo-codesystem formControlName=\"attributMetric\" [pickerTitle]=\"attributMetricPicker.title\"\n [codesystem]=\"attributMetricPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n\n @if (widgetConfig?.formValue?.attributMetric) {\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.chartMetric' | translate\">\n <eo-codesystem formControlName=\"metric\" [pickerTitle]=\"chartMetricPicker.title\"\n [codesystem]=\"chartMetricPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n }\n\n @if (widgetConfig?.formValue?.chartType) {\n <div class=\"propertyPicker\">\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.title' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('title').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"title\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('title').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n @if (widgetConfig?.formValue?.chartType !== 'pie' && widgetConfig?.formValue?.chartType !== 'donut') {\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.xAxe' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('xAxe').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"xAxe\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('xAxe').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.yAxe' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('yAxe').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"yAxe\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('yAxe').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n }\n </div>\n }\n </form>\n</div>\n\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-charts-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-charts-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .propertyPicker{display:block;padding-top:40px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-charts-widget{border:1px transparent var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: ChartsWidgetComponent, selector: "eo-charts-widget", inputs: ["editMode", "widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
24492
24616
  };
24493
24617
  ChartsSetupComponent = __decorate([
24494
24618
  UntilDestroy()
24495
24619
  ], ChartsSetupComponent);
24496
24620
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChartsSetupComponent, decorators: [{
24497
24621
  type: Component,
24498
- args: [{ selector: 'eo-charts-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.chartTypeField' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('chartType').invalid\">\n <eo-codesystem formControlName=\"chartType\" [pickerTitle]=\"chartTypePicker.title\"\n [codesystem]=\"chartTypePicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('chartType').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.search.title.storedqueries' | translate\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n @if (aggregationPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid) {\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.aggregationField' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('aggregation').invalid\">\n <eo-codesystem #aggregationCodesystem formControlName=\"aggregation\" [pickerTitle]=\"aggregationPicker.title\"\n [codesystem]=\"aggregationPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('aggregation').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n <eo-form-input [required]=\"true\"\n [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.partialValue' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('size').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('size').invalid) {\n <div class=\"err-msg\" translate>\n @if (setupForm.get('size').hasError('required')) {\n eo.form.property.required\n } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\n eo.form.property.string.error.classification.partialValue\n }\n </div>\n }\n }\n\n @if (isDateTimeType) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.histogram' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('histogramType').invalid\">\n <eo-codesystem formControlName=\"histogramType\" [pickerTitle]=\"histogramTypePicker.title\"\n [codesystem]=\"histogramTypePicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n @if (widgetConfig?.formValue?.aggregation && !isDateTimeType) {\n @if (widgetConfig.formValue.chartType === 'bar') {\n <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\n [skipToggle]=\"true\">\n <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n }\n @if (widgetConfig.formValue.chartType === 'bar' || widgetConfig.formValue.chartType === 'pie' || widgetConfig.formValue.chartType === 'ring' && !widgetConfig?.formValue?.attributMetric) {\n <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.minDocCount' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"minDocCount\">\n </eo-number>\n </eo-form-input>\n }\n }\n\n @if (isNumberType) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.charts.interval' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('interval').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"interval\"></eo-number>\n </eo-form-input>\n\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.charts.startingpoint' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('startingpoint').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"startingpoint\"></eo-number>\n </eo-form-input>\n }\n @if (widgetConfig?.formValue?.chartType !== 'lineStraight' && widgetConfig?.formValue?.chartType !== 'lineCurve' &&\n attributMetricPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid && !isNumberType && !isDateTimeType) {\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.attributMetric' | translate\">\n <eo-codesystem formControlName=\"attributMetric\" [pickerTitle]=\"attributMetricPicker.title\"\n [codesystem]=\"attributMetricPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n\n @if (widgetConfig?.formValue?.attributMetric) {\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.chartMetric' | translate\">\n <eo-codesystem formControlName=\"metric\" [pickerTitle]=\"chartMetricPicker.title\"\n [codesystem]=\"chartMetricPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n }\n\n @if (widgetConfig?.formValue?.chartType) {\n <div class=\"propertyPicker\">\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.title' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('title').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"title\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('title').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n @if (widgetConfig?.formValue?.chartType !== 'pie' && widgetConfig?.formValue?.chartType !== 'donut') {\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.xAxe' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('xAxe').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"xAxe\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('xAxe').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.yAxe' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('yAxe').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"yAxe\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('yAxe').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n }\n </div>\n }\n </form>\n</div>\n\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-charts-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-charts-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .propertyPicker{display:block;padding-top:40px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-charts-widget{border:1px transparent var(--panel-divider-color)}\n"] }]
24622
+ args: [{ selector: 'eo-charts-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.chartTypeField' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('chartType').invalid\">\n <eo-codesystem formControlName=\"chartType\" [pickerTitle]=\"chartTypePicker.title\"\n [codesystem]=\"chartTypePicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('chartType').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.label.storedquery' | translate\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n @if (aggregationPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid) {\n <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.aggregationField' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('aggregation').invalid\">\n <eo-codesystem #aggregationCodesystem formControlName=\"aggregation\" [pickerTitle]=\"aggregationPicker.title\"\n [codesystem]=\"aggregationPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('aggregation').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n <eo-form-input [required]=\"true\"\n [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.partialValue' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('size').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('size').invalid) {\n <div class=\"err-msg\" translate>\n @if (setupForm.get('size').hasError('required')) {\n eo.form.property.required\n } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\n eo.form.property.string.error.classification.partialValue\n }\n </div>\n }\n }\n\n @if (isDateTimeType) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.histogram' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('histogramType').invalid\">\n <eo-codesystem formControlName=\"histogramType\" [pickerTitle]=\"histogramTypePicker.title\"\n [codesystem]=\"histogramTypePicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n @if (widgetConfig?.formValue?.aggregation && !isDateTimeType) {\n @if (widgetConfig.formValue.chartType === 'bar') {\n <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\n [skipToggle]=\"true\">\n <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n }\n @if (widgetConfig.formValue.chartType === 'bar' || widgetConfig.formValue.chartType === 'pie' || widgetConfig.formValue.chartType === 'ring' && !widgetConfig?.formValue?.attributMetric) {\n <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.form.label.minDocCount' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"minDocCount\">\n </eo-number>\n </eo-form-input>\n }\n }\n\n @if (isNumberType) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.charts.interval' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('interval').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"interval\"></eo-number>\n </eo-form-input>\n\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.charts.startingpoint' | translate\"\n [invalid]=\"setupForm.dirty && setupForm.get('startingpoint').invalid\">\n <eo-number [scale]=\"0\" formControlName=\"startingpoint\"></eo-number>\n </eo-form-input>\n }\n @if (widgetConfig?.formValue?.chartType !== 'lineStraight' && widgetConfig?.formValue?.chartType !== 'lineCurve' &&\n attributMetricPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid && !isNumberType && !isDateTimeType) {\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.attributMetric' | translate\">\n <eo-codesystem formControlName=\"attributMetric\" [pickerTitle]=\"attributMetricPicker.title\"\n [codesystem]=\"attributMetricPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n\n @if (widgetConfig?.formValue?.attributMetric) {\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.chartMetric' | translate\">\n <eo-codesystem formControlName=\"metric\" [pickerTitle]=\"chartMetricPicker.title\"\n [codesystem]=\"chartMetricPicker.codesystem\"></eo-codesystem>\n </eo-form-input>\n }\n }\n\n @if (widgetConfig?.formValue?.chartType) {\n <div class=\"propertyPicker\">\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.title' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('title').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"title\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('title').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n @if (widgetConfig?.formValue?.chartType !== 'pie' && widgetConfig?.formValue?.chartType !== 'donut') {\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.xAxe' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('xAxe').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"xAxe\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('xAxe').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n <eo-form-input tabindex=\"0\"\n [label]=\"'eo.workspace.widget.charts.yAxe' | translate\"\n [skipToggle]=\"true\"\n [invalid]=\"setupForm.dirty && setupForm.get('yAxe').invalid\">\n <eo-string autocomplete=\"true\" formControlName=\"yAxe\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('yAxe').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n }\n }\n </div>\n }\n </form>\n</div>\n\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-charts-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-charts-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .propertyPicker{display:block;padding-top:40px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-charts-widget{border:1px transparent var(--panel-divider-color)}\n"] }]
24499
24623
  }], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }, { type: i1.StoredQueriesService }, { type: i1.TranslateService }, { type: i1.UserService }, { type: i1.SystemService }], propDecorators: { widgetConfigChange: [{
24500
24624
  type: Output
24501
24625
  }], widgetConfigStateChange: [{
@@ -24649,7 +24773,7 @@ let CountObjectsSetupComponent = class CountObjectsSetupComponent {
24649
24773
  });
24650
24774
  this.countTileThresholdDesc = this.translate.instant('eo.widget.hitcount.form.desc.threshold');
24651
24775
  this.storedQueriesPicker = {
24652
- title: this.translate.instant('eo.search.title.storedqueries'),
24776
+ title: this.translate.instant('eo.workspace.widget.label.storedquery'),
24653
24777
  codesystem: null,
24654
24778
  value: null,
24655
24779
  parameter: null,
@@ -24721,14 +24845,14 @@ let CountObjectsSetupComponent = class CountObjectsSetupComponent {
24721
24845
  }
24722
24846
  }
24723
24847
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CountObjectsSetupComponent, deps: [{ token: i1$3.UntypedFormBuilder }, { token: i4.TranslateService }, { token: i1.StoredQueriesService }], target: i0.ɵɵFactoryTarget.Component }); }
24724
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CountObjectsSetupComponent, selector: "eo-count-objects-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange", widgetConfigStateChange: "widgetConfigStateChange" }, ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.search.title.storedqueries' | translate\" [required]=\"true\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.showZero' | translate\">\n <eo-checkbox formControlName=\"showZero\">\n </eo-checkbox>\n </eo-form-input>\n \n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.countTileThresholdInvert' | translate\">\n <eo-checkbox formControlName=\"countTileThresholdInvert\">\n </eo-checkbox>\n </eo-form-input>\n <div class=\"desc\">{{ countTileThresholdDesc }}</div>\n\n <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.success' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileSuccessThreshold\">\n </eo-number>\n </eo-form-input>\n\n <eo-form-input class=\"threshold-warning\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.warning' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileWarningThreshold\">\n </eo-number>\n </eo-form-input>\n\n <eo-form-input class=\"threshold-error\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.error' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileErrorThreshold\">\n </eo-number>\n </eo-form-input>\n </form>\n</div>\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-count-objects-widget [widgetConfig]=\"widgetConfig\"></eo-count-objects-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\n </div>\n}", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .checkboxCountTitle{padding-bottom:30px;padding-top:30px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .setup .desc{color:var(--text-color-caption)}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: CountObjectsWidgetComponent, selector: "eo-count-objects-widget", inputs: ["widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
24848
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CountObjectsSetupComponent, selector: "eo-count-objects-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange", widgetConfigStateChange: "widgetConfigStateChange" }, ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.label.storedquery' | translate\" [required]=\"true\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.showZero' | translate\">\n <eo-checkbox formControlName=\"showZero\">\n </eo-checkbox>\n </eo-form-input>\n \n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.countTileThresholdInvert' | translate\">\n <eo-checkbox formControlName=\"countTileThresholdInvert\">\n </eo-checkbox>\n </eo-form-input>\n <div class=\"desc\">{{ countTileThresholdDesc }}</div>\n\n <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.success' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileSuccessThreshold\">\n </eo-number>\n </eo-form-input>\n\n <eo-form-input class=\"threshold-warning\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.warning' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileWarningThreshold\">\n </eo-number>\n </eo-form-input>\n\n <eo-form-input class=\"threshold-error\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.error' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileErrorThreshold\">\n </eo-number>\n </eo-form-input>\n </form>\n</div>\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-count-objects-widget [widgetConfig]=\"widgetConfig\"></eo-count-objects-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\n </div>\n}", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .checkboxCountTitle{padding-bottom:30px;padding-top:30px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .setup .desc{color:var(--text-color-caption)}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: CountObjectsWidgetComponent, selector: "eo-count-objects-widget", inputs: ["widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
24725
24849
  };
24726
24850
  CountObjectsSetupComponent = __decorate([
24727
24851
  UntilDestroy()
24728
24852
  ], CountObjectsSetupComponent);
24729
24853
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CountObjectsSetupComponent, decorators: [{
24730
24854
  type: Component,
24731
- args: [{ selector: 'eo-count-objects-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.search.title.storedqueries' | translate\" [required]=\"true\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.showZero' | translate\">\n <eo-checkbox formControlName=\"showZero\">\n </eo-checkbox>\n </eo-form-input>\n \n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.countTileThresholdInvert' | translate\">\n <eo-checkbox formControlName=\"countTileThresholdInvert\">\n </eo-checkbox>\n </eo-form-input>\n <div class=\"desc\">{{ countTileThresholdDesc }}</div>\n\n <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.success' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileSuccessThreshold\">\n </eo-number>\n </eo-form-input>\n\n <eo-form-input class=\"threshold-warning\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.warning' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileWarningThreshold\">\n </eo-number>\n </eo-form-input>\n\n <eo-form-input class=\"threshold-error\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.error' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileErrorThreshold\">\n </eo-number>\n </eo-form-input>\n </form>\n</div>\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-count-objects-widget [widgetConfig]=\"widgetConfig\"></eo-count-objects-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\n </div>\n}", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .checkboxCountTitle{padding-bottom:30px;padding-top:30px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .setup .desc{color:var(--text-color-caption)}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}\n"] }]
24855
+ args: [{ selector: 'eo-count-objects-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n @if (storedQueriesPicker?.codesystem?.entries) {\n <eo-form-input [skipToggle]=\"true\"\n [label]=\"'eo.workspace.widget.label.storedquery' | translate\" [required]=\"true\"\n [description]=\"'eo.workspace.widget.stored.queries.description'\"\n [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\n <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\n [codesystem]=\"storedQueriesPicker.codesystem\"\n [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\n <div class=\"err-msg\" translate>\n eo.form.property.required\n </div>\n }\n }\n\n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.showZero' | translate\">\n <eo-checkbox formControlName=\"showZero\">\n </eo-checkbox>\n </eo-form-input>\n \n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.countTileThresholdInvert' | translate\">\n <eo-checkbox formControlName=\"countTileThresholdInvert\">\n </eo-checkbox>\n </eo-form-input>\n <div class=\"desc\">{{ countTileThresholdDesc }}</div>\n\n <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.success' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileSuccessThreshold\">\n </eo-number>\n </eo-form-input>\n\n <eo-form-input class=\"threshold-warning\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.warning' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileWarningThreshold\">\n </eo-number>\n </eo-form-input>\n\n <eo-form-input class=\"threshold-error\" [skipToggle]=\"true\"\n [label]=\"'eo.widget.hitcount.form.label.threshold.error' | translate\">\n <eo-number [scale]=\"0\" formControlName=\"countTileErrorThreshold\">\n </eo-number>\n </eo-form-input>\n </form>\n</div>\n@if (setupForm.valid) {\n <div class=\"preview\">\n <eo-count-objects-widget [widgetConfig]=\"widgetConfig\"></eo-count-objects-widget>\n </div>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\n </div>\n}", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .checkboxCountTitle{padding-bottom:30px;padding-top:30px}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .setup .desc{color:var(--text-color-caption)}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}\n"] }]
24732
24856
  }], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }, { type: i4.TranslateService }, { type: i1.StoredQueriesService }], propDecorators: { widgetConfigChange: [{
24733
24857
  type: Output
24734
24858
  }], widgetConfigStateChange: [{
@@ -24799,23 +24923,230 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
24799
24923
  type: Input
24800
24924
  }] } });
24801
24925
 
24802
- let DashboardComponent = class DashboardComponent {
24803
- onKey(event) {
24804
- if (event.which === 27) {
24805
- this.selectStoredQuery(null);
24926
+ let TodoWidgetComponent = class TodoWidgetComponent {
24927
+ set widgetConfig(c) {
24928
+ this._widgetConfig = c;
24929
+ this.todos = c ? c.todos : [];
24930
+ if (this._widgetConfig?.id) {
24931
+ this.loadTaskList(this._widgetConfig?.id);
24932
+ }
24933
+ }
24934
+ get widgetConfig() {
24935
+ return this._widgetConfig;
24936
+ }
24937
+ constructor(userService, widgetGridRegistry, fb) {
24938
+ this.userService = userService;
24939
+ this.widgetGridRegistry = widgetGridRegistry;
24940
+ this.fb = fb;
24941
+ this.subscriptions = [];
24942
+ this.labels = {};
24943
+ this.showForm = true;
24944
+ this.addForm = this.fb.group({
24945
+ task: ['', [Validators.required, Validators.maxLength(50)]],
24946
+ });
24947
+ this.todoWidgets = [];
24948
+ this.subscriptions.push(this.widgetGridRegistry.labels$.subscribe({
24949
+ next: (labels) => (this.labels = labels),
24950
+ }));
24951
+ }
24952
+ addTask() {
24953
+ if (!this.todos) {
24954
+ this.todos = [];
24955
+ }
24956
+ if (this.addForm.valid) {
24957
+ this.todos.push({
24958
+ title: this.addForm.value.task,
24959
+ });
24960
+ this.addForm.reset();
24961
+ this.emitChange(this._widgetConfig.id);
24962
+ }
24963
+ }
24964
+ loadTaskList(id) {
24965
+ this.todoWidgets = this.userService.getCurrentUser().userSettings.tasks;
24966
+ if (this.todoWidgets) {
24967
+ const todoItem = this.todoWidgets?.find(item => item.id === id);
24968
+ return this.todos = todoItem ? todoItem.todos : [];
24969
+ }
24970
+ }
24971
+ removeTask(idx) {
24972
+ this.todos.splice(idx, 1);
24973
+ this.emitChange();
24974
+ }
24975
+ toggleDone(t) {
24976
+ t.done = !t.done;
24977
+ this.emitChange();
24978
+ }
24979
+ drop(event) {
24980
+ moveItemInArray(this.todos, event.previousIndex, event.currentIndex);
24981
+ this.emitChange();
24982
+ }
24983
+ emitChange(id) {
24984
+ if (!this.todoWidgets) {
24985
+ this.todoWidgets = [];
24986
+ }
24987
+ const currentIndex = this.todoWidgets.findIndex(item => item.id === id);
24988
+ if (currentIndex !== -1) {
24989
+ this.todoWidgets[currentIndex].todos = this.todos;
24990
+ }
24991
+ else {
24992
+ this._widgetConfig.todos = this.todos;
24993
+ this.todoWidgets.push(this._widgetConfig);
24994
+ }
24995
+ return this.userService.saveTodoWidget(this.todoWidgets).subscribe();
24996
+ }
24997
+ ngOnDestroy() {
24998
+ this.subscriptions.forEach((s) => s.unsubscribe());
24999
+ }
25000
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TodoWidgetComponent, deps: [{ token: i1.UserService }, { token: i2$5.WidgetGridRegistry }, { token: i1$3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
25001
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TodoWidgetComponent, selector: "eo-todo-widget", inputs: { widgetConfig: "widgetConfig" }, ngImport: i0, template: "<div class=\"container\">\n\n <header>\n <div class=\"header-title\">\n @if (widgetConfig?.headline) {\n <div class=\"title\">{{ widgetConfig?.headline }}</div>\n }\n </div>\n </header>\n\n <main class=\"todos\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n @if (todos.length > 0) {\n @for (t of todos; track $index) {\n <div class=\"todo\" cdkDrag [ngClass]=\"{done: t.done}\">\n <div class=\"dragHandle\" cdkDragHandle>\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\">\n <path\n d=\"M9 20q-.825 0-1.412-.587Q7 18.825 7 18q0-.825.588-1.413Q8.175 16 9 16t1.413.587Q11 17.175 11 18q0 .825-.587 1.413Q9.825 20 9 20Zm6 0q-.825 0-1.412-.587Q13 18.825 13 18q0-.825.588-1.413Q14.175 16 15 16t1.413.587Q17 17.175 17 18q0 .825-.587 1.413Q15.825 20 15 20Zm-6-6q-.825 0-1.412-.588Q7 12.825 7 12t.588-1.413Q8.175 10 9 10t1.413.587Q11 11.175 11 12q0 .825-.587 1.412Q9.825 14 9 14Zm6 0q-.825 0-1.412-.588Q13 12.825 13 12t.588-1.413Q14.175 10 15 10t1.413.587Q17 11.175 17 12q0 .825-.587 1.412Q15.825 14 15 14ZM9 8q-.825 0-1.412-.588Q7 6.825 7 6t.588-1.412Q8.175 4 9 4t1.413.588Q11 5.175 11 6t-.587 1.412Q9.825 8 9 8Zm6 0q-.825 0-1.412-.588Q13 6.825 13 6t.588-1.412Q14.175 4 15 4t1.413.588Q17 5.175 17 6t-.587 1.412Q15.825 8 15 8Z\"/>\n </svg>\n </div>\n <button class=\"checkbox\" (click)=\"toggleDone(t)\"></button>\n <div class=\"task\" (click)=\"toggleDone(t)\">{{ t.title }}</div>\n <button class=\"remove\" *ngIf=\"t.done\" (click)=\"removeTask($index)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"/>\n </svg>\n </button>\n </div>\n }\n } @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_task.svg', text: 'eo.workspace.widget.todo.noTasks'}\"></eo-error-message>\n </div>\n }\n </main>\n\n <footer>\n <form [formGroup]=\"addForm\">\n <eo-form-input tabindex=\"0\" [invalid]=\"addForm.dirty && addForm.get('task').invalid\"\n [label]=\"'eo.workspace.widget.todo.taskTitle' | translate\" [skipToggle]=\"true\">\n <eo-string [autofocus]=\"true\" [size]=\"'large'\" [maxlength]=\"50\" autocomplete=\"true\" (keyup.enter)=\"addTask()\"\n formControlName=\"task\"></eo-string>\n </eo-form-input>\n\n <button class=\"primary add\" [disabled]=\"!addForm.dirty\" (click)=\"addTask()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n <path d=\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z\"/>\n </svg>\n </button>\n\n @if (addForm.dirty && addForm.get('task').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>\n eo.form.property.maxlength\n </div>\n }\n </form>\n </footer>\n</div>\n", styles: [":host .container{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr;grid-template-areas:\"header\" \"main\" \"footer\";background:var(--panel-background);color:var(--text-color-body)}:host .container header{grid-area:header;grid-row:1;color:#fff;display:grid;height:40px}:host .container header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host .container header .title{text-align:center;flex-grow:1;justify-content:center}:host .container .todos{grid-area:main;grid-row:2;max-width:100%;min-height:60px;display:block;overflow-y:auto}:host .container .todos .todo{padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);border-bottom:solid 1px var(--panel-divider-color);color:var(--text-color-body);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box}:host .container .todos .todo:last-child{border:none}:host .container .todos .todo.done .checkbox:after{content:\"\";width:50%;height:50%;background-color:var(--text-color-body);border-radius:50%}:host .container .todos .todo.done .task{text-decoration:line-through}:host .container .todos .todo .dragHandle{cursor:move}:host .container .todos .todo .remove{padding:0}:host .container .todos .todo .checkbox{border:2px solid var(--text-color-hint);width:24px;height:24px;margin:0 var(--app-pane-padding);padding:0;display:flex;align-items:center;justify-content:center}:host .container .todos .todo .task{flex:1;word-break:break-all;line-height:1.5em}:host .container .todos .empty{display:contents}:host .container footer{grid-area:footer;grid-row:3;display:flex}:host .container footer form{display:flex;flex:1;padding:calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 2);border-bottom:1px solid var(--panel-divider-color);background-color:var(--panel-divider-color);justify-content:space-between}:host .container footer form eo-form-input{flex:1;padding:calc(var(--app-pane-padding) / 4)}:host .container footer form .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .container footer form>button{display:flex;align-items:center;margin:calc(var(--app-pane-padding) / 4);border-radius:calc(var(--app-pane-padding) / 4)}:host .container footer form label{width:100%;color:var(--text-color-body);flex:1;align-items:center;display:flex}:host .container footer form label input{color:var(--text-color-body);border:0;flex:1;padding:.5em;background-color:var(--panel-background);margin:calc(var(--app-pane-padding) / 2);border-radius:2px;box-shadow:0 1px 3px #0003}:host .cdk-drag-placeholder{opacity:.5}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .todos.cdk-drop-list-dragging .todo:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "directive", type: i4$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
25002
+ };
25003
+ TodoWidgetComponent = __decorate([
25004
+ UntilDestroy()
25005
+ ], TodoWidgetComponent);
25006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TodoWidgetComponent, decorators: [{
25007
+ type: Component,
25008
+ args: [{ selector: 'eo-todo-widget', template: "<div class=\"container\">\n\n <header>\n <div class=\"header-title\">\n @if (widgetConfig?.headline) {\n <div class=\"title\">{{ widgetConfig?.headline }}</div>\n }\n </div>\n </header>\n\n <main class=\"todos\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n @if (todos.length > 0) {\n @for (t of todos; track $index) {\n <div class=\"todo\" cdkDrag [ngClass]=\"{done: t.done}\">\n <div class=\"dragHandle\" cdkDragHandle>\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\">\n <path\n d=\"M9 20q-.825 0-1.412-.587Q7 18.825 7 18q0-.825.588-1.413Q8.175 16 9 16t1.413.587Q11 17.175 11 18q0 .825-.587 1.413Q9.825 20 9 20Zm6 0q-.825 0-1.412-.587Q13 18.825 13 18q0-.825.588-1.413Q14.175 16 15 16t1.413.587Q17 17.175 17 18q0 .825-.587 1.413Q15.825 20 15 20Zm-6-6q-.825 0-1.412-.588Q7 12.825 7 12t.588-1.413Q8.175 10 9 10t1.413.587Q11 11.175 11 12q0 .825-.587 1.412Q9.825 14 9 14Zm6 0q-.825 0-1.412-.588Q13 12.825 13 12t.588-1.413Q14.175 10 15 10t1.413.587Q17 11.175 17 12q0 .825-.587 1.412Q15.825 14 15 14ZM9 8q-.825 0-1.412-.588Q7 6.825 7 6t.588-1.412Q8.175 4 9 4t1.413.588Q11 5.175 11 6t-.587 1.412Q9.825 8 9 8Zm6 0q-.825 0-1.412-.588Q13 6.825 13 6t.588-1.412Q14.175 4 15 4t1.413.588Q17 5.175 17 6t-.587 1.412Q15.825 8 15 8Z\"/>\n </svg>\n </div>\n <button class=\"checkbox\" (click)=\"toggleDone(t)\"></button>\n <div class=\"task\" (click)=\"toggleDone(t)\">{{ t.title }}</div>\n <button class=\"remove\" *ngIf=\"t.done\" (click)=\"removeTask($index)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"/>\n </svg>\n </button>\n </div>\n }\n } @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_task.svg', text: 'eo.workspace.widget.todo.noTasks'}\"></eo-error-message>\n </div>\n }\n </main>\n\n <footer>\n <form [formGroup]=\"addForm\">\n <eo-form-input tabindex=\"0\" [invalid]=\"addForm.dirty && addForm.get('task').invalid\"\n [label]=\"'eo.workspace.widget.todo.taskTitle' | translate\" [skipToggle]=\"true\">\n <eo-string [autofocus]=\"true\" [size]=\"'large'\" [maxlength]=\"50\" autocomplete=\"true\" (keyup.enter)=\"addTask()\"\n formControlName=\"task\"></eo-string>\n </eo-form-input>\n\n <button class=\"primary add\" [disabled]=\"!addForm.dirty\" (click)=\"addTask()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n <path d=\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z\"/>\n </svg>\n </button>\n\n @if (addForm.dirty && addForm.get('task').invalid) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>\n eo.form.property.maxlength\n </div>\n }\n </form>\n </footer>\n</div>\n", styles: [":host .container{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr;grid-template-areas:\"header\" \"main\" \"footer\";background:var(--panel-background);color:var(--text-color-body)}:host .container header{grid-area:header;grid-row:1;color:#fff;display:grid;height:40px}:host .container header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host .container header .title{text-align:center;flex-grow:1;justify-content:center}:host .container .todos{grid-area:main;grid-row:2;max-width:100%;min-height:60px;display:block;overflow-y:auto}:host .container .todos .todo{padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);border-bottom:solid 1px var(--panel-divider-color);color:var(--text-color-body);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box}:host .container .todos .todo:last-child{border:none}:host .container .todos .todo.done .checkbox:after{content:\"\";width:50%;height:50%;background-color:var(--text-color-body);border-radius:50%}:host .container .todos .todo.done .task{text-decoration:line-through}:host .container .todos .todo .dragHandle{cursor:move}:host .container .todos .todo .remove{padding:0}:host .container .todos .todo .checkbox{border:2px solid var(--text-color-hint);width:24px;height:24px;margin:0 var(--app-pane-padding);padding:0;display:flex;align-items:center;justify-content:center}:host .container .todos .todo .task{flex:1;word-break:break-all;line-height:1.5em}:host .container .todos .empty{display:contents}:host .container footer{grid-area:footer;grid-row:3;display:flex}:host .container footer form{display:flex;flex:1;padding:calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 2);border-bottom:1px solid var(--panel-divider-color);background-color:var(--panel-divider-color);justify-content:space-between}:host .container footer form eo-form-input{flex:1;padding:calc(var(--app-pane-padding) / 4)}:host .container footer form .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .container footer form>button{display:flex;align-items:center;margin:calc(var(--app-pane-padding) / 4);border-radius:calc(var(--app-pane-padding) / 4)}:host .container footer form label{width:100%;color:var(--text-color-body);flex:1;align-items:center;display:flex}:host .container footer form label input{color:var(--text-color-body);border:0;flex:1;padding:.5em;background-color:var(--panel-background);margin:calc(var(--app-pane-padding) / 2);border-radius:2px;box-shadow:0 1px 3px #0003}:host .cdk-drag-placeholder{opacity:.5}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .todos.cdk-drop-list-dragging .todo:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
25009
+ }], ctorParameters: () => [{ type: i1.UserService }, { type: i2$5.WidgetGridRegistry }, { type: i1$3.UntypedFormBuilder }], propDecorators: { widgetConfig: [{
25010
+ type: Input
25011
+ }] } });
25012
+
25013
+ let TodoSetupComponent = class TodoSetupComponent {
25014
+ set widgetConfig(wc) {
25015
+ this._widgetConfig = wc;
25016
+ this.setupForm.patchValue({
25017
+ headline: wc ? wc.headline : '',
25018
+ });
25019
+ }
25020
+ get widgetConfig() {
25021
+ return this._widgetConfig;
25022
+ }
25023
+ constructor(fb, widgetGridRegistry) {
25024
+ this.fb = fb;
25025
+ this.widgetGridRegistry = widgetGridRegistry;
25026
+ this.subscriptions = [];
25027
+ this.labels = {};
25028
+ this.widgetConfigChange = new EventEmitter();
25029
+ this.widgetConfigStateChange = new EventEmitter();
25030
+ this.setupForm = this.fb.group({
25031
+ headline: ['', [Validators.maxLength(50)]]
25032
+ });
25033
+ this.setupForm.valueChanges.pipe(debounceTime$1(1000), untilDestroyed(this)).subscribe((_) => {
25034
+ this.setWidgetConfig();
25035
+ this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {
25036
+ this.widgetConfigStateChange.emit(v);
25037
+ });
25038
+ });
25039
+ this.subscriptions.push(this.widgetGridRegistry.labels$.subscribe({
25040
+ next: (labels) => (this.labels = labels),
25041
+ }));
25042
+ }
25043
+ setWidgetConfig() {
25044
+ if (this.setupForm.valid) {
25045
+ this._widgetConfig = {
25046
+ id: this._widgetConfig?.id || WidgetGridUtils.uuid(),
25047
+ todos: this._widgetConfig?.todos || [],
25048
+ ...this.setupForm.value,
25049
+ };
25050
+ this.widgetConfigChange.emit(this._widgetConfig);
24806
25051
  }
24807
25052
  }
24808
- constructor(userService, widgetGridRegistry, titleService, router, http, config, storageService, translate, capabilityService, storedQueriesService, pendingChanges) {
25053
+ ngOnInit() {
25054
+ this.setWidgetConfig();
25055
+ }
25056
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TodoSetupComponent, deps: [{ token: i1$3.UntypedFormBuilder }, { token: i2$5.WidgetGridRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
25057
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TodoSetupComponent, selector: "eo-todo-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange", widgetConfigStateChange: "widgetConfigStateChange" }, ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\">\n <eo-string autocomplete=\"true\" formControlName=\"headline\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('headline').errors) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>\n eo.form.property.maxlength\n </div>\n }\n </form>\n</div>\n<div class=\"preview\">\n <eo-todo-widget [widgetConfig]=\"widgetConfig\"></eo-todo-widget>\n</div>\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding);pointer-events:none}:host .preview eo-todo-widget{border:1px transparent var(--panel-divider-color)}:host .empty{background-color:var(--main-background);padding:var(--app-pane-padding)}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: TodoWidgetComponent, selector: "eo-todo-widget", inputs: ["widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
25058
+ };
25059
+ TodoSetupComponent = __decorate([
25060
+ UntilDestroy()
25061
+ ], TodoSetupComponent);
25062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TodoSetupComponent, decorators: [{
25063
+ type: Component,
25064
+ args: [{ selector: 'eo-todo-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\">\n <eo-string autocomplete=\"true\" formControlName=\"headline\"></eo-string>\n </eo-form-input>\n @if (setupForm.dirty && setupForm.get('headline').errors) {\n <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>\n eo.form.property.maxlength\n </div>\n }\n </form>\n</div>\n<div class=\"preview\">\n <eo-todo-widget [widgetConfig]=\"widgetConfig\"></eo-todo-widget>\n</div>\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding);pointer-events:none}:host .preview eo-todo-widget{border:1px transparent var(--panel-divider-color)}:host .empty{background-color:var(--main-background);padding:var(--app-pane-padding)}\n"] }]
25065
+ }], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }, { type: i2$5.WidgetGridRegistry }], propDecorators: { widgetConfigChange: [{
25066
+ type: Output
25067
+ }], widgetConfigStateChange: [{
25068
+ type: Output
25069
+ }], widgetConfig: [{
25070
+ type: Input
25071
+ }] } });
25072
+
25073
+ class PictureWidgetComponent {
25074
+ constructor() {
25075
+ this.style = {};
25076
+ }
25077
+ set widgetConfig(c) {
25078
+ this.imageUri = c?.image || undefined;
25079
+ this.style['background-image'] = this.imageUri
25080
+ ? `url(${this.imageUri})`
25081
+ : 'none';
25082
+ }
25083
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PictureWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25084
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: PictureWidgetComponent, selector: "eo-picture-widget", inputs: { widgetConfig: "widgetConfig" }, ngImport: i0, template: "@if (imageUri) {\n <div [ngStyle]=\"style\"></div>\n\n} @else {\n<div class=\"empty\">\n <eo-error-message [emptyState]=\"{icon: 'ic_noImage.svg', text: 'eo.workspace.widget.picture.noImage'}\"></eo-error-message>\n</div>\n}", styles: [":host{height:100%;width:100%;display:block}:host>div{max-width:100%;max-height:100%;width:100%;height:100%;background-size:contain;background-position:center;background-repeat:no-repeat}:host img{object-fit:cover}:host.wholeImage{display:inline-block;height:auto;width:auto}:host .empty{display:contents}\n"], dependencies: [{ kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }] }); }
25085
+ }
25086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PictureWidgetComponent, decorators: [{
25087
+ type: Component,
25088
+ args: [{ selector: 'eo-picture-widget', template: "@if (imageUri) {\n <div [ngStyle]=\"style\"></div>\n\n} @else {\n<div class=\"empty\">\n <eo-error-message [emptyState]=\"{icon: 'ic_noImage.svg', text: 'eo.workspace.widget.picture.noImage'}\"></eo-error-message>\n</div>\n}", styles: [":host{height:100%;width:100%;display:block}:host>div{max-width:100%;max-height:100%;width:100%;height:100%;background-size:contain;background-position:center;background-repeat:no-repeat}:host img{object-fit:cover}:host.wholeImage{display:inline-block;height:auto;width:auto}:host .empty{display:contents}\n"] }]
25089
+ }], propDecorators: { widgetConfig: [{
25090
+ type: Input
25091
+ }] } });
25092
+
25093
+ class PictureWidgetSetupComponent {
25094
+ constructor() {
25095
+ this.widgetConfig = {
25096
+ image: undefined,
25097
+ };
25098
+ this.MAX_FILE_SIZE = 1048576;
25099
+ this.widgetConfigChange = new EventEmitter();
25100
+ }
25101
+ pick() {
25102
+ this.fileInputEl.nativeElement.click();
25103
+ }
25104
+ fileInputChangeListener(event) {
25105
+ const file = event.target.files[0];
25106
+ if (file) {
25107
+ this.fileName = file.name;
25108
+ if (!(file.type.includes('image/') && file.type.includes('jpeg') || file.type.includes('png'))) {
25109
+ this.errorType = 'image';
25110
+ this.showErrorDialog = true;
25111
+ }
25112
+ else if (file.size > this.MAX_FILE_SIZE) {
25113
+ this.errorType = 'size';
25114
+ this.showErrorDialog = true;
25115
+ }
25116
+ else {
25117
+ const reader = new FileReader();
25118
+ reader.onload = () => {
25119
+ this.widgetConfig = { image: reader.result };
25120
+ this.widgetConfigChange.emit(this.widgetConfig);
25121
+ };
25122
+ reader.readAsDataURL(file);
25123
+ }
25124
+ }
25125
+ }
25126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PictureWidgetSetupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: PictureWidgetSetupComponent, selector: "eo-picture-widget-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange" }, viewQueries: [{ propertyName: "fileInputEl", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"setup\">\n <button class=\"primary\" (click)=\"pick(); $event.target.value = null\">\n <input type=\"file\" accept=\"image/*\" #fileInput (change)=\"fileInputChangeListener($event)\">\n <eo-icon class=\"button sync-tab-btn\" [iconSrc]=\"'assets/_default/svg/ic_photo_library.svg'\"\n [iconTitle]=\"'eo.workspace.widget.picture.tooltip' | translate\"></eo-icon>\n </button>\n</div>\n<div class=\"preview\">\n <eo-picture-widget [widgetConfig]=\"widgetConfig\"></eo-picture-widget>\n</div>\n\n<eo-dialog [title]=\"'eo.workspace.widget.picture.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>\n <p>{{ fileName }}</p>\n @if (errorType === 'size') {\n <p translate>eo.workspace.widget.picture.dialog.sizeError</p>\n }\n @if (errorType === 'image') {\n <p translate>eo.state.settings.details.upload.dialog.fileError </p>\n }\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel\n </button>\n <button type=\"button\" (click)=\"pick(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back\n </button>\n </div>\n</eo-dialog>\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%;overflow-y:hidden}:host .setup{display:flex;grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color);justify-content:center;align-items:center;height:100%;width:100%}:host .setup input[type=file]{display:none}:host .setup .primary{display:flex;height:5cm;align-content:center;align-items:center;width:5cm;justify-content:center}:host .setup .primary eo-icon{--eoSvgIcon-size: 100px}:host .preview{grid-area:preview;padding:var(--app-pane-padding);pointer-events:none;display:flex;align-items:center;justify-content:center}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: PictureWidgetComponent, selector: "eo-picture-widget", inputs: ["widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
25128
+ }
25129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PictureWidgetSetupComponent, decorators: [{
25130
+ type: Component,
25131
+ args: [{ selector: 'eo-picture-widget-setup', template: "<div class=\"setup\">\n <button class=\"primary\" (click)=\"pick(); $event.target.value = null\">\n <input type=\"file\" accept=\"image/*\" #fileInput (change)=\"fileInputChangeListener($event)\">\n <eo-icon class=\"button sync-tab-btn\" [iconSrc]=\"'assets/_default/svg/ic_photo_library.svg'\"\n [iconTitle]=\"'eo.workspace.widget.picture.tooltip' | translate\"></eo-icon>\n </button>\n</div>\n<div class=\"preview\">\n <eo-picture-widget [widgetConfig]=\"widgetConfig\"></eo-picture-widget>\n</div>\n\n<eo-dialog [title]=\"'eo.workspace.widget.picture.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>\n <p>{{ fileName }}</p>\n @if (errorType === 'size') {\n <p translate>eo.workspace.widget.picture.dialog.sizeError</p>\n }\n @if (errorType === 'image') {\n <p translate>eo.state.settings.details.upload.dialog.fileError </p>\n }\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel\n </button>\n <button type=\"button\" (click)=\"pick(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back\n </button>\n </div>\n</eo-dialog>\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%;overflow-y:hidden}:host .setup{display:flex;grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color);justify-content:center;align-items:center;height:100%;width:100%}:host .setup input[type=file]{display:none}:host .setup .primary{display:flex;height:5cm;align-content:center;align-items:center;width:5cm;justify-content:center}:host .setup .primary eo-icon{--eoSvgIcon-size: 100px}:host .preview{grid-area:preview;padding:var(--app-pane-padding);pointer-events:none;display:flex;align-items:center;justify-content:center}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"] }]
25132
+ }], ctorParameters: () => [], propDecorators: { fileInputEl: [{
25133
+ type: ViewChild,
25134
+ args: ['fileInput']
25135
+ }], widgetConfig: [{
25136
+ type: Input
25137
+ }], widgetConfigChange: [{
25138
+ type: Output
25139
+ }] } });
25140
+
25141
+ let DashboardComponent = class DashboardComponent {
25142
+ constructor(userService, widgetGridRegistry, titleService, http, config, storageService, translate, pendingChanges) {
24809
25143
  this.userService = userService;
24810
25144
  this.widgetGridRegistry = widgetGridRegistry;
24811
25145
  this.titleService = titleService;
24812
- this.router = router;
24813
25146
  this.http = http;
24814
25147
  this.config = config;
24815
25148
  this.storageService = storageService;
24816
25149
  this.translate = translate;
24817
- this.capabilityService = capabilityService;
24818
- this.storedQueriesService = storedQueriesService;
24819
25150
  this.pendingChanges = pendingChanges;
24820
25151
  this.workspaceOptions = {
24821
25152
  gridConfig: {
@@ -24824,8 +25155,6 @@ let DashboardComponent = class DashboardComponent {
24824
25155
  newItemHeight: 5
24825
25156
  }
24826
25157
  };
24827
- this.storedQueries = [];
24828
- this.tree = {};
24829
25158
  this.STORAGE_KEY = 'eo.client.dashboard.currentWorkspace';
24830
25159
  this.pendingTaskID = '';
24831
25160
  this.titleService.setDefaultTitle();
@@ -24879,7 +25208,7 @@ let DashboardComponent = class DashboardComponent {
24879
25208
  {
24880
25209
  name: 'yuv.widget.todo',
24881
25210
  label: this.translate.instant('eo.workspace.widgetGrid.widgetTodoHeadlineLabel'),
24882
- setupComponent: TodoWidgetSetupComponent,
25211
+ setupComponent: TodoSetupComponent,
24883
25212
  widgetComponent: TodoWidgetComponent,
24884
25213
  },
24885
25214
  {
@@ -24931,46 +25260,9 @@ let DashboardComponent = class DashboardComponent {
24931
25260
  }
24932
25261
  ].sort(Utils.sortValues('label')));
24933
25262
  }
24934
- selectStoredQuery(q) {
24935
- this.selectedQuery = q;
24936
- }
24937
- // user changed input of quickSearch component
24938
- onQuickSearchInputChange(term) {
24939
- this.quickSearchResult = null;
24940
- }
24941
- // quickSearch component is returning results
24942
- onQuickSearchResult(result) {
24943
- this.quickSearchResult = result;
24944
- Object.keys(this.quickSearchResult.groups).map(key => (this.tree[key] = this.getTreeNodes(key)));
24945
- }
24946
- onStoredQueryLoaded() {
24947
- this.selectStoredQuery(null);
24948
- this.router.navigate([{ outlets: { modal: 'search' } }]);
24949
- }
24950
- onStoredQueryExecute(evt) {
24951
- this.selectStoredQuery(null);
24952
- const uriParam = encodeURIComponent(JSON.stringify(evt.queryJson));
24953
- const uriParamQuery = { queryParams: { 'query': uriParam } };
24954
- this.router.navigate(['/result'], uriParamQuery);
24955
- }
24956
- getTreeNodes(key) {
24957
- return this.quickSearchResult.groups[key].map(group => ({
24958
- id: group.data.id,
24959
- name: group.label,
24960
- selectable: true,
24961
- data: group.data,
24962
- badges: [{ value: group.count }]
24963
- }));
24964
- }
24965
25263
  ngOnInit() {
24966
25264
  this.loadWorkspacesConfig();
24967
25265
  this.registerWidgets();
24968
- this.capabilities = this.capabilityService.getCapabilities();
24969
- if (this.capabilities.storedqueries) {
24970
- this.storedQueriesService.getStoredQueries$()
24971
- .pipe(untilDestroyed(this))
24972
- .subscribe(queriesSubscription => this.storedQueries = queriesSubscription.queries.filter(q => q.favorite).sort(Utils.sortValues('name')));
24973
- }
24974
25266
  }
24975
25267
  ngAfterViewInit() {
24976
25268
  setTimeout(() => {
@@ -25052,8 +25344,8 @@ let DashboardComponent = class DashboardComponent {
25052
25344
  this.pendingChanges.finishTask(this.pendingTaskID);
25053
25345
  }
25054
25346
  }
25055
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.UserService }, { token: i2$5.WidgetGridRegistry }, { token: PageTitleService }, { token: i2$1.Router }, { token: i2.HttpClient }, { token: i1.Config }, { token: i1.LocalStorageService }, { token: i1.TranslateService }, { token: i1.CapabilitiesService }, { token: i1.StoredQueriesService }, { token: PendingChangesService }], target: i0.ɵɵFactoryTarget.Component }); }
25056
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: DashboardComponent, selector: "eo-dashboard", host: { listeners: { "window:keyup": "onKey($event)" } }, viewQueries: [{ propertyName: "quickSearchEl", first: true, predicate: ["quickSearch"], descendants: true }], ngImport: i0, template: "<ng-container>\n <div class=\"fade\"></div>\n <div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\n <div class=\"footerButton\" eoRtlAware=\"full\">\n <eo-icon id=\"dashboardButton\" [iconSrc]=\"toolbarIconSrc\" [iconTitle]=\"toolbarIconTooltip | translate\"></eo-icon>\n </div>\n <yuv-widget-grid-workspaces *ngIf=\"workspaceConfig\"\n [workspaceLabelMaxLength]=\"50\"\n [workspaceConfig]=\"workspaceConfig\"\n (configChange)=\"onWorkspacesConfigChange($event)\" (editModeChange)=\"onWorkspaceEditMode($event)\" [options]=\"workspaceOptions\">\n </yuv-widget-grid-workspaces>\n </div>\n</ng-container>\n", styles: [".fade{position:absolute;opacity:.3;left:0;right:0;top:0;z-index:1;height:500px;background:linear-gradient(to bottom,rgba(var(--color-black-rgb),1) 0,transparent 100%)}.dashboard{position:absolute;inset:0;background-size:cover;background-position:center center}.footerButton{position:absolute;z-index:1000;bottom:10px;cursor:pointer;right:5px}.footerButton.rtl{left:5px;right:unset}.footerButton:hover{color:var(--list-item-hover-background)}.footerButton:hover eo-icon{background-color:var(--list-item-hover-background)}.footerButton #dashboardButton{color:var(--text-color-caption)}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-body);font-weight:700;color:var(--text-color-caption);font-style:italic;margin:0;padding:0}::ng-deep svg{width:24px;height:24px}::ng-deep .legend-item svg{width:11px;height:11px}::ng-deep yuv-widget-grid{top:60px;height:92%!important;--color-admin-primary: var(--color-primary)}::ng-deep yuv-widget-grid.editMode gridster-item{outline:2px dotted var(--color-admin-primary);border-radius:2px}::ng-deep yuv-widget-grid-workspaces{background-size:cover;background-position:center center}::ng-deep yuv-widget-grid-workspaces>.confirm{align-items:center!important;justify-content:center!important}::ng-deep yuv-widget-grid-workspaces>.toolbar{padding-inline-end:36px!important;background-color:#d3d3d380!important}::ng-deep yuv-widget-grid-workspaces>.toolbar>.workspace-edit input{position:relative;left:6px;width:230px}::ng-deep yuv-widget-grid-workspaces yuv-picture-widget{box-sizing:border-box}::ng-deep gridster{background:none!important}::ng-deep gridster gridster-item:has(yuv-todo-widget),::ng-deep gridster gridster-item:has(yuv-picture-widget){border:1px solid var(--panel-divider-color)}::ng-deep gridster gridster-item:has(yuv-picture-widget){box-shadow:0 0 10px #0003}::ng-deep gridster .yuv-widget{border:1px solid var(--panel-divider-color)}::ng-deep gridster .gridster-row,::ng-deep gridster .gridster-column{border-color:#0003}.dark ::ng-deep gridster .gridster-row,.dark ::ng-deep gridster .gridster-column{border-color:var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i2$5.WidgetGridWorkspacesComponent, selector: "yuv-widget-grid-workspaces", inputs: ["options", "workspaceConfig", "preventAdd", "workspaceLabelMaxLength"], outputs: ["configChange", "gridItemEvent", "editModeChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [
25347
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.UserService }, { token: i2$5.WidgetGridRegistry }, { token: PageTitleService }, { token: i2.HttpClient }, { token: i1.Config }, { token: i1.LocalStorageService }, { token: i1.TranslateService }, { token: PendingChangesService }], target: i0.ɵɵFactoryTarget.Component }); }
25348
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: DashboardComponent, selector: "eo-dashboard", ngImport: i0, template: "<ng-container>\n <div class=\"fade\"></div>\n <div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\n <div class=\"footerButton\" eoRtlAware=\"full\">\n <eo-icon id=\"dashboardButton\" [iconSrc]=\"toolbarIconSrc\" [iconTitle]=\"toolbarIconTooltip | translate\"></eo-icon>\n </div>\n <yuv-widget-grid-workspaces *ngIf=\"workspaceConfig\"\n [workspaceLabelMaxLength]=\"50\"\n [workspaceConfig]=\"workspaceConfig\"\n (configChange)=\"onWorkspacesConfigChange($event)\" (editModeChange)=\"onWorkspaceEditMode($event)\" [options]=\"workspaceOptions\">\n </yuv-widget-grid-workspaces>\n </div>\n</ng-container>\n", styles: [".fade{position:absolute;opacity:.3;left:0;right:0;top:0;z-index:1;height:500px;background:linear-gradient(to bottom,rgba(var(--color-black-rgb),1) 0,transparent 100%)}.dashboard{position:absolute;inset:0;background-size:cover;background-position:center center}.footerButton{position:absolute;z-index:1000;bottom:10px;cursor:pointer;right:5px}.footerButton.rtl{left:5px;right:unset}.footerButton:hover{color:var(--list-item-hover-background)}.footerButton:hover eo-icon{background-color:var(--list-item-hover-background)}.footerButton #dashboardButton{color:var(--text-color-caption)}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-body);font-weight:700;color:var(--text-color-caption);font-style:italic;margin:0;padding:0}::ng-deep svg{width:24px;height:24px}::ng-deep .legend-item svg{width:11px;height:11px}::ng-deep yuv-widget-grid{top:60px;height:92%!important;--color-admin-primary: var(--color-primary)}::ng-deep yuv-widget-grid.editMode gridster-item{outline:2px dotted var(--color-admin-primary);border-radius:2px}::ng-deep yuv-widget-grid-workspaces{background-size:cover;background-position:center center}::ng-deep yuv-widget-grid-workspaces>.confirm{align-items:center!important;justify-content:center!important}::ng-deep yuv-widget-grid-workspaces>.toolbar{padding-inline-end:36px!important;background-color:#d3d3d380!important}::ng-deep yuv-widget-grid-workspaces>.toolbar>.workspace-edit input{position:relative;left:6px;width:230px}::ng-deep yuv-widget-grid-workspaces yuv-picture-widget{box-sizing:border-box}::ng-deep gridster{background:none!important}::ng-deep gridster gridster-item:has(yuv-todo-widget),::ng-deep gridster gridster-item:has(yuv-picture-widget){border:1px solid var(--panel-divider-color)}::ng-deep gridster gridster-item:has(yuv-picture-widget){box-shadow:0 0 10px #0003}::ng-deep gridster .yuv-widget{border:1px solid var(--panel-divider-color)}::ng-deep gridster .gridster-row,::ng-deep gridster .gridster-column{border-color:#0003}.dark ::ng-deep gridster .gridster-row,.dark ::ng-deep gridster .gridster-column{border-color:var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i2$5.WidgetGridWorkspacesComponent, selector: "yuv-widget-grid-workspaces", inputs: ["options", "workspaceConfig", "preventAdd", "workspaceLabelMaxLength"], outputs: ["configChange", "gridItemEvent", "editModeChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [
25057
25349
  listAnimation
25058
25350
  ] }); }
25059
25351
  };
@@ -25065,13 +25357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
25065
25357
  args: [{ selector: 'eo-dashboard', animations: [
25066
25358
  listAnimation
25067
25359
  ], template: "<ng-container>\n <div class=\"fade\"></div>\n <div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\n <div class=\"footerButton\" eoRtlAware=\"full\">\n <eo-icon id=\"dashboardButton\" [iconSrc]=\"toolbarIconSrc\" [iconTitle]=\"toolbarIconTooltip | translate\"></eo-icon>\n </div>\n <yuv-widget-grid-workspaces *ngIf=\"workspaceConfig\"\n [workspaceLabelMaxLength]=\"50\"\n [workspaceConfig]=\"workspaceConfig\"\n (configChange)=\"onWorkspacesConfigChange($event)\" (editModeChange)=\"onWorkspaceEditMode($event)\" [options]=\"workspaceOptions\">\n </yuv-widget-grid-workspaces>\n </div>\n</ng-container>\n", styles: [".fade{position:absolute;opacity:.3;left:0;right:0;top:0;z-index:1;height:500px;background:linear-gradient(to bottom,rgba(var(--color-black-rgb),1) 0,transparent 100%)}.dashboard{position:absolute;inset:0;background-size:cover;background-position:center center}.footerButton{position:absolute;z-index:1000;bottom:10px;cursor:pointer;right:5px}.footerButton.rtl{left:5px;right:unset}.footerButton:hover{color:var(--list-item-hover-background)}.footerButton:hover eo-icon{background-color:var(--list-item-hover-background)}.footerButton #dashboardButton{color:var(--text-color-caption)}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-body);font-weight:700;color:var(--text-color-caption);font-style:italic;margin:0;padding:0}::ng-deep svg{width:24px;height:24px}::ng-deep .legend-item svg{width:11px;height:11px}::ng-deep yuv-widget-grid{top:60px;height:92%!important;--color-admin-primary: var(--color-primary)}::ng-deep yuv-widget-grid.editMode gridster-item{outline:2px dotted var(--color-admin-primary);border-radius:2px}::ng-deep yuv-widget-grid-workspaces{background-size:cover;background-position:center center}::ng-deep yuv-widget-grid-workspaces>.confirm{align-items:center!important;justify-content:center!important}::ng-deep yuv-widget-grid-workspaces>.toolbar{padding-inline-end:36px!important;background-color:#d3d3d380!important}::ng-deep yuv-widget-grid-workspaces>.toolbar>.workspace-edit input{position:relative;left:6px;width:230px}::ng-deep yuv-widget-grid-workspaces yuv-picture-widget{box-sizing:border-box}::ng-deep gridster{background:none!important}::ng-deep gridster gridster-item:has(yuv-todo-widget),::ng-deep gridster gridster-item:has(yuv-picture-widget){border:1px solid var(--panel-divider-color)}::ng-deep gridster gridster-item:has(yuv-picture-widget){box-shadow:0 0 10px #0003}::ng-deep gridster .yuv-widget{border:1px solid var(--panel-divider-color)}::ng-deep gridster .gridster-row,::ng-deep gridster .gridster-column{border-color:#0003}.dark ::ng-deep gridster .gridster-row,.dark ::ng-deep gridster .gridster-column{border-color:var(--panel-divider-color)}\n"] }]
25068
- }], ctorParameters: () => [{ type: i1.UserService }, { type: i2$5.WidgetGridRegistry }, { type: PageTitleService }, { type: i2$1.Router }, { type: i2.HttpClient }, { type: i1.Config }, { type: i1.LocalStorageService }, { type: i1.TranslateService }, { type: i1.CapabilitiesService }, { type: i1.StoredQueriesService }, { type: PendingChangesService }], propDecorators: { quickSearchEl: [{
25069
- type: ViewChild,
25070
- args: ['quickSearch']
25071
- }], onKey: [{
25072
- type: HostListener,
25073
- args: ['window:keyup', ['$event']]
25074
- }] } });
25360
+ }], ctorParameters: () => [{ type: i1.UserService }, { type: i2$5.WidgetGridRegistry }, { type: PageTitleService }, { type: i2.HttpClient }, { type: i1.Config }, { type: i1.LocalStorageService }, { type: i1.TranslateService }, { type: PendingChangesService }] });
25075
25361
 
25076
25362
  let SettingsComponent = class SettingsComponent {
25077
25363
  constructor(renderer, userService, config, notify, systemService, eventService, capabilitiesService, titleService, agentService, fb, cacheService, storageService, translate, elemRef, notification) {
@@ -25464,7 +25750,7 @@ let ResultStateComponent = class ResultStateComponent {
25464
25750
  this.selection.clear();
25465
25751
  }
25466
25752
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ResultStateComponent, deps: [{ token: PendingChangesService }, { token: i2$1.ActivatedRoute }, { token: PageTitleService }, { token: SelectionService }, { token: i2$1.Router }, { token: i1.NotificationsService }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
25467
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ResultStateComponent, selector: "eo-result-state", ngImport: i0, template: "<yvc-master-details [layoutOptions]=\"{masterSize: 60, detailsSize: 40}\" [layoutSettingsID]=\"'result.state--' + typeName\"\n [detailsActive]=\"true\">\n <!-- master -->\n <ng-template #yvcMasterPane>\n <eo-result-list [query]=\"query\" [hasIcon]=\"true\" [clearAfterExecute]=\"clearAfterExecute\"\n (onResult)=\"onResult($event)\" (onQueryInvalid)=\"onQueryInvalid()\"></eo-result-list>\n </ng-template>\n\n <!-- details -->\n <ng-template #yvcDetailsPane>\n <eo-object-details [searchTerm]=\"searchTerm\" [applySelection]=\"{}\"\n [cacheLayout]=\"'result.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.result' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-master-details>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden;display:block}:host yvc-master-details{height:100%}\n"], dependencies: [{ kind: "component", type: ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i8$1.MasterDetailsComponent, selector: "yvc-master-details", inputs: ["detailsActive", "layoutSettingsID", "layoutOptions", "undockableDetails", "panelStyle", "mode"] }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
25753
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ResultStateComponent, selector: "eo-result-state", ngImport: i0, template: "<yvc-master-details [layoutOptions]=\"{masterSize: 60, detailsSize: 40}\" [layoutSettingsID]=\"'result.state--' + typeName\"\n [detailsActive]=\"true\">\n <!-- master -->\n <ng-template #yvcMasterPane>\n <eo-result-list [query]=\"query\" [hasIcon]=\"true\" [clearAfterExecute]=\"clearAfterExecute\"\n (onResult)=\"onResult($event)\" (onQueryInvalid)=\"onQueryInvalid()\"></eo-result-list>\n </ng-template>\n\n <!-- details -->\n <ng-template #yvcDetailsPane>\n <eo-object-details [searchTerm]=\"searchTerm\" [applySelection]=\"{}\"\n [cacheLayout]=\"'result.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.result' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-master-details>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden;display:block}:host yvc-master-details{height:100%}\n"], dependencies: [{ kind: "component", type: ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i8$2.MasterDetailsComponent, selector: "yvc-master-details", inputs: ["detailsActive", "layoutSettingsID", "layoutOptions", "undockableDetails", "panelStyle", "mode"] }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
25468
25754
  };
25469
25755
  ResultStateComponent = __decorate([
25470
25756
  UntilDestroy()
@@ -26720,6 +27006,22 @@ let InboxStateComponent = class InboxStateComponent {
26720
27006
  setTimeout(() => this.eoGrid.selectRow(lastInboxItemID), 500);
26721
27007
  }
26722
27008
  });
27009
+ this.eventService
27010
+ .on(EnaioEvent.INBOX_ITEM_LOCKED)
27011
+ .pipe(untilDestroyed(this))
27012
+ .subscribe(() => {
27013
+ const lastInboxItemID = this.storageService.getItem(this.storageKeyLastItemID);
27014
+ this.gridData.find(i => i.id === lastInboxItemID).accepted = true;
27015
+ this.eoGrid.api.redrawRows();
27016
+ });
27017
+ this.eventService
27018
+ .on(EnaioEvent.INBOX_ITEM_UNLOCKED)
27019
+ .pipe(untilDestroyed(this))
27020
+ .subscribe(() => {
27021
+ const lastInboxItemID = this.storageService.getItem(this.storageKeyLastItemID);
27022
+ this.gridData.find(i => i.id === lastInboxItemID).accepted = false;
27023
+ this.eoGrid.api.redrawRows();
27024
+ });
26723
27025
  }
26724
27026
  ngOnDestroy() {
26725
27027
  this.selection.clear();
@@ -27475,13 +27777,17 @@ class EoClientModule {
27475
27777
  SearchWidgetComponent,
27476
27778
  SafeUrlPipe,
27477
27779
  LastEditedAndCreatedComponent,
27780
+ LastEditedAndCreatedSetupComponent,
27478
27781
  HitlistSetupComponent,
27479
27782
  HitlistWidgetComponent,
27480
27783
  ChartsWidgetComponent,
27481
27784
  ChartsSetupComponent,
27482
27785
  CountObjectsWidgetComponent,
27483
27786
  CountObjectsSetupComponent,
27484
- LastEditedAndCreatedSetupComponent], imports: [CommonModule,
27787
+ TodoWidgetComponent,
27788
+ TodoSetupComponent,
27789
+ PictureWidgetComponent,
27790
+ PictureWidgetSetupComponent], imports: [CommonModule,
27485
27791
  FormsModule,
27486
27792
  ReactiveFormsModule,
27487
27793
  ObjectStateModule,
@@ -27496,7 +27802,8 @@ class EoClientModule {
27496
27802
  YvcDropdownModule,
27497
27803
  YuvWidgetGridModule,
27498
27804
  HttpClientModule,
27499
- ChartsModule], exports: [RouterModule, EoFrameworkModule] }); }
27805
+ ChartsModule,
27806
+ DragDropModule], exports: [RouterModule, EoFrameworkModule] }); }
27500
27807
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EoClientModule, imports: [CommonModule,
27501
27808
  FormsModule,
27502
27809
  ReactiveFormsModule,
@@ -27512,7 +27819,8 @@ class EoClientModule {
27512
27819
  YvcDropdownModule,
27513
27820
  YuvWidgetGridModule,
27514
27821
  HttpClientModule,
27515
- ChartsModule, RouterModule, EoFrameworkModule] }); }
27822
+ ChartsModule,
27823
+ DragDropModule, RouterModule, EoFrameworkModule] }); }
27516
27824
  }
27517
27825
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EoClientModule, decorators: [{
27518
27826
  type: NgModule,
@@ -27533,7 +27841,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
27533
27841
  YvcDropdownModule,
27534
27842
  YuvWidgetGridModule,
27535
27843
  HttpClientModule,
27536
- ChartsModule
27844
+ ChartsModule,
27845
+ DragDropModule,
27537
27846
  ],
27538
27847
  declarations: [
27539
27848
  DashboardComponent,
@@ -27556,13 +27865,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
27556
27865
  SearchWidgetComponent,
27557
27866
  SafeUrlPipe,
27558
27867
  LastEditedAndCreatedComponent,
27868
+ LastEditedAndCreatedSetupComponent,
27559
27869
  HitlistSetupComponent,
27560
27870
  HitlistWidgetComponent,
27561
27871
  ChartsWidgetComponent,
27562
27872
  ChartsSetupComponent,
27563
27873
  CountObjectsWidgetComponent,
27564
27874
  CountObjectsSetupComponent,
27565
- LastEditedAndCreatedSetupComponent
27875
+ TodoWidgetComponent,
27876
+ TodoSetupComponent,
27877
+ PictureWidgetComponent,
27878
+ PictureWidgetSetupComponent
27566
27879
  ],
27567
27880
  exports: [RouterModule, EoFrameworkModule]
27568
27881
  }]