@eo-sdk/client 9.0.0-rc.4 → 9.0.0-rc.6

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 (59) hide show
  1. package/app/eo-client/settings/settings.component.d.ts +34 -4
  2. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +3 -1
  3. package/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.d.ts +1 -0
  4. package/app/eo-framework/grid/column-configurator/column-configurator.component.d.ts +2 -0
  5. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +1 -0
  6. package/app/eo-framework-core/api/grid.service.d.ts +8 -2
  7. package/assets/_default/config/main.json +1 -7
  8. package/assets/_default/i18n/de.json +17 -6
  9. package/assets/_default/i18n/en.json +17 -6
  10. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +73 -28
  11. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  12. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  13. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  14. package/bundles/eo-sdk-client.umd.js +260 -94
  15. package/bundles/eo-sdk-client.umd.js.map +1 -1
  16. package/bundles/eo-sdk-client.umd.min.js +1 -1
  17. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  18. package/eo-sdk-client.d.ts +11 -10
  19. package/eo-sdk-client.metadata.json +1 -1
  20. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  21. package/esm2015/app/eo-client/settings/settings.component.js +118 -10
  22. package/esm2015/app/eo-framework/app-shell/app-bar/app-bar.component.js +11 -4
  23. package/esm2015/app/eo-framework/form-elements/form-input/form-input.component.js +2 -2
  24. package/esm2015/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.js +7 -3
  25. package/esm2015/app/eo-framework/grid/column-configurator/column-configurator.component.js +31 -6
  26. package/esm2015/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.js +4 -2
  27. package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +2 -3
  28. package/esm2015/app/eo-framework/grid/filters/list-filter.component.js +2 -2
  29. package/esm2015/app/eo-framework/inbox-details/inbox-details.component.js +5 -1
  30. package/esm2015/app/eo-framework/object-details/object-history/object-history.component.js +4 -3
  31. package/esm2015/app/eo-framework/object-form/object-form/form-element/form-element.component.js +2 -2
  32. package/esm2015/app/eo-framework/result-list/result-list.component.js +3 -3
  33. package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +2 -2
  34. package/esm2015/app/eo-framework/ui/ui.module.js +4 -2
  35. package/esm2015/app/eo-framework/ui/user-avatar/user-avatar.component.js +3 -2
  36. package/esm2015/app/eo-framework-core/api/grid.service.js +11 -5
  37. package/esm2015/app/eo-framework-core/api/plugins.service.js +2 -1
  38. package/esm2015/eo-sdk-client.js +12 -11
  39. package/esm2015/projects/eo-sdk/core/lib/service/auth/auth.service.js +5 -5
  40. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +21 -14
  41. package/esm2015/projects/eo-sdk/core/lib/service/config/config.service.js +22 -4
  42. package/esm2015/projects/eo-sdk/core/lib/service/events/events.js +3 -2
  43. package/esm2015/projects/eo-sdk/core/lib/service/search/search-query.model.js +5 -4
  44. package/esm2015/projects/eo-sdk/core/lib/service/search/search.service.js +7 -3
  45. package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +17 -3
  46. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +72 -28
  47. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  48. package/fesm2015/eo-sdk-client.js +239 -80
  49. package/fesm2015/eo-sdk-client.js.map +1 -1
  50. package/package.json +2 -2
  51. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  52. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +2 -0
  53. package/projects/eo-sdk/core/lib/service/config/config.service.d.ts +5 -0
  54. package/projects/eo-sdk/core/lib/service/events/events.d.ts +1 -0
  55. package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts +8 -1
  56. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +10 -1
  57. package/projects/eo-sdk/core/package.json +1 -1
  58. package/scss/_form.scss +2 -2
  59. package/styles.css +1 -1
@@ -1,4 +1,4 @@
1
- import { Injectable, Inject, ApplicationRef, NgZone, Pipe, NgModule, EventEmitter, Injector, ɵɵdefineInjectable, ɵɵinject, ErrorHandler, Optional, SkipSelf, Component, Input, Output, ViewEncapsulation, ElementRef, Renderer2, Directive, HostListener, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, HostBinding, ViewContainerRef, forwardRef, ViewChildren, ContentChildren, ANALYZE_FOR_ENTRY_COMPONENTS, InjectionToken, ComponentFactoryResolver, ContentChild, QueryList } from '@angular/core';
1
+ import { Injectable, Inject, ApplicationRef, NgZone, Pipe, NgModule, EventEmitter, Injector, ɵɵdefineInjectable, ɵɵinject, ErrorHandler, Optional, SkipSelf, Component, Input, Output, ViewEncapsulation, ElementRef, Renderer2, Directive, HostListener, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, HostBinding, ViewContainerRef, ViewChildren, forwardRef, ContentChildren, ANALYZE_FOR_ENTRY_COMPONENTS, InjectionToken, ComponentFactoryResolver, ContentChild, QueryList } from '@angular/core';
2
2
  import { DecimalPipe, PercentPipe, CurrencyPipe, DatePipe, getLocaleDateTimeFormat, FormatWidth, getLocaleTimeFormat, getLocaleDateFormat, CommonModule, Location, PlatformLocation } from '@angular/common';
3
3
  import { HttpClient, HttpResponse, HttpErrorResponse, HttpClientModule, HTTP_INTERCEPTORS, HttpHeaders } from '@angular/common/http';
4
4
  import { ReplaySubject, BehaviorSubject, from, forkJoin, of, Subject, fromEvent, AsyncSubject, Observable } from 'rxjs';
@@ -13,11 +13,12 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
13
13
  import { OverlayPanelModule, DialogModule, InputMask, AutoComplete, InputTextModule, InputMaskModule, AutoCompleteModule, CheckboxModule, TriStateCheckboxModule, InputTextareaModule, ChipsModule, DropdownModule, SharedModule, TabPanel, TabViewModule, FieldsetModule, CalendarModule, TabView, TabViewNav, DragDropModule as DragDropModule$1 } from 'primeng/primeng';
14
14
  import { Overlay, OverlayModule } from '@angular/cdk/overlay';
15
15
  import { TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';
16
+ import { A11yModule } from '@angular/cdk/a11y';
17
+ import { trigger, state, style, transition, animate, query, stagger } from '@angular/animations';
16
18
  import * as moment_ from 'moment';
17
19
  import 'moment/min/locales';
18
20
  import * as _ from 'lodash';
19
21
  import { uniqBy, cloneDeep, groupBy as groupBy$1, orderBy } from 'lodash';
20
- import { trigger, state, style, transition, animate, query, stagger } from '@angular/animations';
21
22
  import { AgGridModule } from '@ag-grid-community/angular';
22
23
  import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
23
24
  import { CsvExportModule } from '@ag-grid-community/csv-export';
@@ -960,6 +961,7 @@ class PluginsService {
960
961
  return {
961
962
  serviceBase: this.backend.getServiceBase()
962
963
  // todo: do we have to provide the plugin developers with these informations?
964
+ // after speaking to Andreas also removed from documentation
963
965
  // pluginsBase: $eoConfig.getPluginBase(),
964
966
  // pluginStatesBase: $eoConfig.getPluginStatesBase(),
965
967
  // themeBase: $eoConfig.getThemeBase()
@@ -1447,8 +1449,8 @@ class GridService {
1447
1449
  updateContext(typeOpts, options = {}) {
1448
1450
  Object.assign(this.context, { typeOpts: (typeOpts && typeOpts.length ? typeOpts : this.system.getObjectTypes().map(o => o.qname)) }, options);
1449
1451
  }
1450
- getColumnDefs(elements, sortorder = [], grouporder = [], pinned = [], enableRowGroup = true, cachedColumns = [], mode) {
1451
- return elements.map(f => this.getColumnDefinition(f, sortorder, grouporder, pinned, enableRowGroup, cachedColumns, mode));
1452
+ getColumnDefs(elements, sortorder = [], grouporder = [], pinned = [], alignmentx = [], enableRowGroup = true, cachedColumns = [], mode) {
1453
+ return elements.map(f => this.getColumnDefinition(f, sortorder, grouporder, pinned, alignmentx, enableRowGroup, cachedColumns, mode));
1452
1454
  }
1453
1455
  /**
1454
1456
  * Renders the visual output of form elements based on its type etc. (see IndexdataSummaryComponent for usage details)
@@ -1498,7 +1500,7 @@ class GridService {
1498
1500
  *
1499
1501
  * @param sortFields - Array of fields to be sorted
1500
1502
  */
1501
- getColumnDefinition(resultField, sortFields = [], groupFields = [], pinnedFields = [], enableRowGroup = false, cachedColumns = [], mode) {
1503
+ getColumnDefinition(resultField, sortFields = [], groupFields = [], pinnedFields = [], alignmentFields = [], enableRowGroup = false, cachedColumns = [], mode) {
1502
1504
  let colDef = {};
1503
1505
  colDef.headerName = resultField.label;
1504
1506
  colDef.field = resultField.hitname || resultField.name;
@@ -1510,7 +1512,6 @@ class GridService {
1510
1512
  return params.node.group || !params.data ? '' : params.data[colDef.field];
1511
1513
  };
1512
1514
  colDef.refData = { qname: resultField.qname || '' };
1513
- colDef.cellStyle = { 'justify-content': resultField.alignmentx ? resultField.alignmentx : 'unset' };
1514
1515
  /**
1515
1516
  * headerClass
1516
1517
  * add special header class for fields from the contextfolder
@@ -1578,6 +1579,13 @@ class GridService {
1578
1579
  if (cachedColumn) {
1579
1580
  colDef.width = cachedColumn.width;
1580
1581
  }
1582
+ let alignmentField = alignmentFields.find(f => f.qname === resultField.qname);
1583
+ if (alignmentField && alignmentField.value) {
1584
+ colDef.cellStyle = { 'justify-content': alignmentField.value };
1585
+ }
1586
+ else {
1587
+ colDef.cellStyle = { 'justify-content': resultField.alignmentx ? resultField.alignmentx : '' };
1588
+ }
1581
1589
  return colDef;
1582
1590
  }
1583
1591
  /**
@@ -3486,7 +3494,8 @@ class UserAvatarComponent {
3486
3494
  this.subscription = this.userService.user$
3487
3495
  .subscribe(u => {
3488
3496
  this.present = u.present;
3489
- this.backgroundImage = u.imageUri ? `url(${u.imageUri})` : `url(${this.defImg})`;
3497
+ const timestamp = new Date().getTime().toString();
3498
+ this.backgroundImage = `url(${this.userService.getUserImageUri(u.id) + '#' + timestamp}), url(${this.defImg})`;
3490
3499
  });
3491
3500
  }
3492
3501
  ngOnDestroy() {
@@ -3706,7 +3715,7 @@ class EoDialogComponent extends UnsubscribeOnDestroy {
3706
3715
  EoDialogComponent.decorators = [
3707
3716
  { type: Component, args: [{
3708
3717
  selector: 'eo-dialog',
3709
- template: "<ng-template #dialogContent>\n <div class=\"eo-dialog\" [ngClass]=\"styleClass || ''\" eoRtlAware=\"dir\">\n <header class=\"eo-dialog-header\" [ngClass]=\"styleClass ? styleClass + '--header ' : ''\">\n <h5 class=\"headline\">{{title}}</h5>\n <h6 *ngIf=\"subtitle\" class=\"subtitle\">{{subtitle}}</h6>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"closeDialog()\" class=\"button white eo-dialog-close\"></eo-icon>\n <ng-container *ngIf=\"isFormTable && hasPreviewFile\">\n <eo-icon *ngIf=\"showPreview\" [iconSrc]=\"'assets/_default/svg/ic_preview_close.svg'\"\n [iconTitle]=\"'eo.form.table.dialog.preview.hide' | translate\" (click)=\"togglePreview()\" class=\"button white eo-dialog-preview-toggle\"></eo-icon>\n <eo-icon *ngIf=\"!showPreview\" [iconSrc]=\"'assets/_default/svg/ic_preview_show.svg'\"\n [iconTitle]=\"'eo.form.table.dialog.preview.show' | translate\" (click)=\"togglePreview()\" class=\"button white eo-dialog-preview-toggle\"></eo-icon>\n </ng-container>\n </header>\n <div class=\"eo-dialog-content\" [ngClass]=\"styleClass ? styleClass + '--content ' : ''\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n",
3718
+ template: "<ng-template #dialogContent>\n <div class=\"eo-dialog\" [ngClass]=\"styleClass || ''\" eoRtlAware=\"dir\">\n <header class=\"eo-dialog-header\" [ngClass]=\"styleClass ? styleClass + '--header ' : ''\">\n <h5 class=\"headline\">{{title}}</h5>\n <h6 *ngIf=\"subtitle\" class=\"subtitle\">{{subtitle}}</h6>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"closeDialog()\" class=\"button white eo-dialog-close\"></eo-icon>\n <ng-container *ngIf=\"isFormTable && hasPreviewFile\">\n <eo-icon *ngIf=\"showPreview\" [iconSrc]=\"'assets/_default/svg/ic_preview_close.svg'\"\n [iconTitle]=\"'eo.form.table.dialog.preview.hide' | translate\" (click)=\"togglePreview()\" class=\"button white eo-dialog-preview-toggle\"></eo-icon>\n <eo-icon *ngIf=\"!showPreview\" [iconSrc]=\"'assets/_default/svg/ic_preview_show.svg'\"\n [iconTitle]=\"'eo.form.table.dialog.preview.show' | translate\" (click)=\"togglePreview()\" class=\"button white eo-dialog-preview-toggle\"></eo-icon>\n </ng-container>\n </header>\n <div class=\"eo-dialog-content\" [ngClass]=\"styleClass ? styleClass + '--content ' : ''\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n",
3710
3719
  encapsulation: ViewEncapsulation.None,
3711
3720
  styles: [".eo-dialog{-webkit-animation:none;animation:none;background-color:var(--panel-background);display:flex;flex:1;flex-direction:column;max-height:100%;max-width:100%;min-height:0;min-width:0}.eo-dialog-close{position:absolute;right:5px;top:5px;z-index:2}.eo-dialog-preview-toggle{position:absolute;right:5px;top:50px;z-index:2}.eo-dialog-header{background-color:var(--color-accent);color:var(--color-white);flex:0 0 auto;font-size:var(--font-headline);font-weight:var(--font-weight-light);padding:var(--app-pane-padding) calc(var(--app-pane-padding)*2.5) calc(var(--app-pane-padding)*2) var(--app-pane-padding)}.eo-dialog-header .headline{font-size:24px;font-weight:400;margin:0 25px 0 0}.eo-dialog-header .subtitle{font-size:15px;font-weight:400;margin:0}.eo-dialog-content{display:flex;flex:1;flex-direction:column;height:100%;max-height:520px;min-height:0;min-width:0;overflow:auto;position:relative}.eo-dialog-content>eo-tree{margin:var(--app-pane-padding)}.eo-dialog-content .empty{align-items:center;color:var(--text-color-caption);display:flex;flex:1;flex-direction:column;justify-content:center;min-height:0;min-width:0;padding:var(--app-pane-padding)}.eo-dialog-content .action-buttons{justify-content:flex-end;padding-top:32px}.eo-dialog-content button:not(:last-child){margin-right:5px}.object-form-table-dialog{background-color:var(--panel-background-grey);height:95vh;width:100%}.object-form-table-dialog .body{height:80vh;width:100%}.object-form-table-dialog .edit-body{display:flex;height:100%}.object-form-table-dialog .table-body{background-color:var(--panel-background-grey);display:flex;height:100%;width:100%}.object-form-table-dialog eo-split{padding:var(--app-pane-padding);width:auto!important}.object-form-table-dialog eo-split-area{box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}.object-form-table-dialog eo-row-edit{background-color:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}.object-form-table-dialog eo-row-edit .row-edit{display:flex;flex-direction:column;height:100%}.object-form-table-dialog eo-row-edit .row-edit .edit-header{display:flex;justify-content:space-between}.object-form-table-dialog eo-row-edit .row-edit .edit-header .new-indicator{color:var(--text-color-caption);font-size:var(--font-title);margin:8px 16px 0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.object-form-table-dialog eo-row-edit .row-edit .edit-header .cancel-icon{color:var(--text-color-caption);margin:8px 8px 0}.object-form-table-dialog eo-row-edit .row-edit .edit-header .cancel-icon:hover{background:rgba(var(--color-black-rgb),.1)}.object-form-table-dialog eo-row-edit .row-edit .form{height:100%;overflow:auto}.object-form-table-dialog eo-row-edit .row-edit .actions{align-items:center;border-top:1px solid var(--panel-header-border-bottom-color);display:flex;flex:0;flex-direction:row;justify-content:flex-end;min-height:0;min-height:5em;min-width:0;padding-right:var(--app-pane-padding)}.object-form-table-dialog eo-row-edit .row-edit .actions button{height:3em;margin:0 calc(var(--app-pane-padding)/8);padding:0 calc(var(--app-pane-padding)/2)}.object-form-table-dialog eo-row-edit .row-edit .actions eo-checkbox{margin:0 calc(var(--app-pane-padding)/2)}.object-form-table-dialog eo-row-edit .row-edit .actions .add-label{color:var(--text-color-caption);font-size:var(--font-body);margin-right:var(--app-pane-padding)}.object-form-table-dialog .object-form-table{background-color:#fff;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;height:100%;width:100%}.object-form-table-dialog .object-form-table .grid-body{height:100%;position:relative;width:100%}.object-form-table-dialog .object-form-table .grid-body .ag-theme-balham .ag-header{background-color:unset!important}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular{background-color:transparent;height:100%;width:100%}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .copy-cell,.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .new-row{-webkit-animation-duration:4s;-webkit-animation-name:new-row;animation-duration:4s;animation-name:new-row}@-webkit-keyframes new-row{0%{background-color:var(--color-accent)}to{background-color:none}}@keyframes new-row{0%{background-color:var(--color-accent)}to{background-color:none}}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell{align-items:center;display:flex;font-size:var(--font-caption);line-height:var(--oft-row-height);padding:0 calc(var(--app-pane-padding)/4)}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.ag-cell-focus{background-color:var(--list-item-hover-background);border-color:transparent!important;outline:0!important}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell svg{pointer-events:none}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.col-boolean,.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.res-ico{justify-content:center}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.col-number{justify-content:flex-end}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell .action-icon{cursor:pointer;display:flex}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell .action-icon svg{fill:var(--text-color-caption)}.object-form-table-dialog .label{align-items:center;border-bottom:0;display:flex;flex-flow:row nowrap;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)}.object-form-table-dialog .label span{display:block;flex:1 1 auto}.object-form-table-dialog .label eo-icon.stf{color:var(--text-color-caption);cursor:pointer;height:20px;margin:calc(var(--app-pane-padding)/4);width:20px}.object-form-table-dialog .label eo-icon.stf.add-row{background-color:var(--color-accent);border-radius:2px;color:#fff;height:24px;width:24px}.object-form-table-dialog .label button.add{border-radius:2px;padding:calc(var(--app-pane-padding)/2)}.object-form-table-dialog .label button.export{border:1px solid #000;border-radius:2px;color:#000;font-size:var(--font-hint);margin:0 calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/8) calc(var(--app-pane-padding)/4)}.object-form-table-dialog .eo-dialog-content{height:100%;max-height:none;overflow:hidden}.object-form-table-dialog .table-area{overflow:unset!important}.cdk-overlay-pane{position:absolute!important}"]
3712
3721
  },] }
@@ -3846,7 +3855,8 @@ UiModule.decorators = [
3846
3855
  RouterModule,
3847
3856
  DialogModule,
3848
3857
  AccordionModule,
3849
- OverlayModule
3858
+ OverlayModule,
3859
+ A11yModule
3850
3860
  ],
3851
3861
  exports: [
3852
3862
  CommonModule,
@@ -3885,6 +3895,48 @@ UiModule.decorators = [
3885
3895
  },] }
3886
3896
  ];
3887
3897
 
3898
+ const STATE = {
3899
+ LOADING: 'loading',
3900
+ READY: 'ready',
3901
+ ERROR: 'error'
3902
+ };
3903
+ class PanelLoading {
3904
+ constructor() {
3905
+ this.state = '';
3906
+ this.loading = () => this._set(STATE.LOADING);
3907
+ this.ready = () => this._set(STATE.READY);
3908
+ this.error = () => this._set(STATE.ERROR);
3909
+ this.isLoading = () => this.state === STATE.LOADING;
3910
+ this.isReady = () => this.state === STATE.READY;
3911
+ this.isError = () => this.state === STATE.ERROR;
3912
+ }
3913
+ _set(_state) {
3914
+ this.state = _state;
3915
+ }
3916
+ subscribe(observable, success, error) {
3917
+ this.loading();
3918
+ return observable.subscribe((res) => {
3919
+ if (success) {
3920
+ success.call(this, res);
3921
+ }
3922
+ this.ready();
3923
+ }, (err) => {
3924
+ if (error) {
3925
+ error.call(this, err);
3926
+ }
3927
+ this.error();
3928
+ });
3929
+ }
3930
+ }
3931
+ const panelLoadingAnimations = trigger('panelLoading', [
3932
+ state(STATE.ERROR, style({ opacity: 0 })),
3933
+ state(STATE.LOADING, style({ opacity: 0.5 })),
3934
+ state(STATE.READY, style({ opacity: 1 })),
3935
+ transition(STATE.LOADING + ' <=> ' + STATE.READY, [
3936
+ animate(200)
3937
+ ])
3938
+ ]);
3939
+
3888
3940
  class AppBarComponent extends UnsubscribeOnDestroy {
3889
3941
  constructor(userService, capabilityService, translate, inboxService, prepareService, clipboard, renderer, router, bpmService, eventService, config) {
3890
3942
  super();
@@ -4018,12 +4070,17 @@ class AppBarComponent extends UnsubscribeOnDestroy {
4018
4070
  // this.exeActions = !!res.length;
4019
4071
  // });
4020
4072
  this.initVisibilityChangeListener();
4073
+ this.eventService.on(EnaioEvent.SYSTEM_STATUS_IMAGE_CHANGE).subscribe(() => {
4074
+ this.avatarComponents.forEach(avatar => {
4075
+ avatar.createUserBackground();
4076
+ });
4077
+ });
4021
4078
  }
4022
4079
  }
4023
4080
  AppBarComponent.decorators = [
4024
4081
  { type: Component, args: [{
4025
4082
  selector: 'eo-app-bar',
4026
- template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"sidebarShow = !sidebarShow\" (keyup.enter)=\"sidebarShow = !sidebarShow\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\" \n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a [routerLink]=\"[ {outlets: { modal: 'search' } } ]\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a [routerLink]=\"[ {outlets: { modal: 'add' } } ]\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a> \n <a [routerLink]=\"[ {outlets: { modal: 'actions' } } ]\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n <eo-app-layout></eo-app-layout>\n </div>\n <a routerLink=\"/favorites\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/prepare\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/inbox\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel>\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\">\n <div class=\"avatar\">\n <eo-user-avatar></eo-user-avatar>\n <div class=\"overlay\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\">\n <div class=\"nav-item settings\" (click)=\"userpanel?.close()\">\n <a routerLink=\"/settings\" routerLinkActive=\"active-link\" translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n",
4083
+ template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"sidebarShow = !sidebarShow\" (keyup.enter)=\"sidebarShow = !sidebarShow\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\" \n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a [routerLink]=\"[ {outlets: { modal: 'search' } } ]\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a [routerLink]=\"[ {outlets: { modal: 'add' } } ]\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a> \n <a [routerLink]=\"[ {outlets: { modal: 'actions' } } ]\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n <eo-app-layout></eo-app-layout>\n </div>\n <a routerLink=\"/favorites\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/prepare\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/inbox\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel>\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (click)=\"userpanel?.close()\" >\n <a routerLink=\"/settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n",
4027
4084
  styles: [":host .eo-app-bar{--profile-dropdown-width:180px;align-items:center;background:var(--color-primary);color:var(--color-white);display:flex;flex-flow:row nowrap;height:var(--app-bar-height);justify-content:space-between;left:0;position:absolute;right:0;top:0;z-index:5}:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon,:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{align-items:center;display:flex;flex-flow:row nowrap;height:var(--app-bar-height)}@media (max-width:480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{background-color:var(--color-accent);box-sizing:border-box;cursor:pointer;height:var(--app-bar-height);padding:20px;width:var(--app-bar-height);z-index:22}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{background-color:transparent;cursor:pointer;height:auto;margin:0 4px;padding:var(--app-pane-padding) calc(var(--app-pane-padding)*2) var(--app-pane-padding) calc(var(--app-pane-padding)/2);width:104px}@media (max-width:480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{align-items:center;display:flex;flex-flow:row nowrap}:host .eo-app-bar .left .actions a eo-icon{border-radius:50%;box-sizing:content-box;color:var(--color-white);cursor:pointer;margin:4px;padding:8px}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right,:host .eo-app-bar .right .sub{align-items:center;display:flex;flex-flow:row nowrap}:host .eo-app-bar .right .sub{margin:0 calc(var(--app-pane-padding)/2);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding)/4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{background-color:var(--color-error);bottom:-4px;content:\"\";height:4px;left:0;position:absolute;right:0}@media (max-width:480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{border:2px solid transparent;border-radius:50%;cursor:pointer;height:40px;margin:0 var(--app-pane-padding);width:40px}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);color:var(--color-white);width:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar{position:relative}:host .eo-app-bar .right .eo-profile .avatar,:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{height:var(--profile-dropdown-width);width:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{background:rgba(var(--color-primary-rgb),.6);bottom:0;left:0;padding:calc(var(--app-pane-padding)/2) calc(var(--app-pane-padding)/2) calc(var(--app-pane-padding)/2) var(--app-pane-padding);position:absolute;right:0}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail,:host .eo-app-bar .right .eo-profile .avatar .overlay .name{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{background:var(--color-error);border-radius:2px;color:var(--color-white);display:inline-block;font-size:var(--font-hint);margin-top:calc(var(--app-pane-padding)/2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;color:var(--color-white);cursor:pointer;display:block;padding:calc(var(--app-pane-padding)/2);text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid transparent}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid transparent}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{background:rgba(var(--color-white-rgb),.06);border-color:var(--color-accent);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media (max-width:480px){:host .eo-app-bar.rtl .left{padding-left:0;padding-right:var(--app-pane-padding)}}@-webkit-keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}"]
4028
4085
  },] }
4029
4086
  ];
@@ -4041,7 +4098,8 @@ AppBarComponent.ctorParameters = () => [
4041
4098
  { type: Config }
4042
4099
  ];
4043
4100
  AppBarComponent.propDecorators = {
4044
- transparent: [{ type: Input }]
4101
+ transparent: [{ type: Input }],
4102
+ avatarComponents: [{ type: ViewChildren, args: [UserAvatarComponent,] }]
4045
4103
  };
4046
4104
 
4047
4105
  class ContextSearchComponent {
@@ -6814,7 +6872,7 @@ class FormInputComponent {
6814
6872
  FormInputComponent.decorators = [
6815
6873
  { type: Component, args: [{
6816
6874
  selector: 'eo-form-input',
6817
- template: "<div class=\"fe-wrapper\" eoInputFocus>\n <div class=\"tag\" *ngIf=\"tag\" title=\"{{tag.title}}\">{{tag.label}}</div>\n <label class=\"form-input__label\" (click)=\"toggle()\">{{_label}}</label>\n <div class=\"control\">\n <ng-content *ngIf=\"!toggled; else tplnull\"></ng-content>\n\n <ng-template #tplnull><span translate>eo.form.input.null</span></ng-template>\n </div>\n</div>\n<div class=\"description\" *ngIf=\"description\">{{description}}</div>\n\n",
6875
+ template: "<div class=\"fe-wrapper\" eoInputFocus [disabled]=\"isDisabled\">\n <div class=\"tag\" *ngIf=\"tag\" title=\"{{tag.title}}\">{{tag.label}}</div>\n <label class=\"form-input__label\" (click)=\"toggle()\">{{_label}}</label>\n <div class=\"control\">\n <ng-content *ngIf=\"!toggled; else tplnull\"></ng-content>\n\n <ng-template #tplnull><span translate>eo.form.input.null</span></ng-template>\n </div>\n</div>\n<div class=\"description\" *ngIf=\"description\">{{description}}</div>\n\n",
6818
6876
  styles: [":host .fe-wrapper{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;border-bottom:1px solid rgba(var(--color-black-rgb),.15);display:flex;flex-flow:row nowrap;padding:calc(var(--app-pane-padding)/4) 0;transition:all var(--app-default-transition-duration) ease-in-out}:host .fe-wrapper.focused{border-color:var(--color-accent)}:host .fe-wrapper.focused>label{color:var(--color-accent)}:host .fe-wrapper>div.control{flex:1 1 auto;order:1;padding:0 calc(var(--app-pane-padding)/4)}:host .fe-wrapper>div.control>span{background-color:var(--color-accent);border-radius:2px;color:var(--color-white);display:inline-block;font-size:var(--font-hint);padding:0 calc(var(--app-pane-padding)/4)}:host .fe-wrapper>.form-input__label{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-moz-user-select:none;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-user-select:none;border-radius:2px;color:var(--text-color-caption);flex:0 1 auto;font-size:var(--font-caption);margin-right:3px;order:2;padding:2px calc(var(--app-pane-padding)/4);text-align:end;transition:all var(--app-default-transition-duration) ease-in-out;user-select:none}:host .fe-wrapper>.tag{background-color:var(--color-primary-2);border-radius:2px;color:var(--color-white);cursor:default;display:inline-block;flex:0 0 auto;font-size:var(--font-hint);line-height:1em;order:3;padding:2px}:host.checkbox .fe-wrapper>label{text-align:start}:host .description{color:var(--text-color-caption);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)}:host.required .fe-wrapper>label{background-color:rgba(var(--color-black-rgb),.06)}:host.required .fe-wrapper>label:after{content:\"*\";font-weight:700;padding:0 4px}:host.invalid .fe-wrapper{background:rgba(var(--color-error),.15);border-color:var(--color-error)}:host.invalid .fe-wrapper>label{background-color:var(--color-error);color:var(--color-white);margin:0 4px}:host.invalid .fe-wrapper>label:after{content:\"!\";margin-left:calc(var(--app-pane-padding)/2)}:host.disabled{opacity:.5}:host.checkbox .fe-wrapper{border-color:transparent!important}:host.checkbox .fe-wrapper>div.control{flex:0 0 auto}:host.checkbox .fe-wrapper>label{flex:0 1 auto}:host-context(.dark) .fe-wrapper{border-color:rgba(var(--color-white-rgb),.54)}:host-context(.dark) .fe-wrapper>label{color:rgba(var(--color-white-rgb),.84)}:host-context(.dark) .fe-wrapper.focused{border-color:var(--color-white)}:host-context(.dark) .fe-wrapper.focused>label{color:var(--color-white)}:host-context(.dark) ::ng-deep .ui-dropdown.range{background-color:rgba(var(--color-white-rgb),.1)}:host-context(.fe-wrapper) .fe-wrapper{background:transparent;padding:0}:host ::ng-deep .ui-inputtext,:host ::ng-deep input{align-items:center;border:0!important;display:flex;flex-wrap:wrap;padding:0;width:100%}:host ::ng-deep input{background-color:transparent}:host ::ng-deep button.ui-button{background:rgba(var(--color-black-rgb),.08);border:0;border-radius:2px;color:var(--text-color-caption);cursor:pointer;height:20px;width:20px}:host ::ng-deep button.ui-button.ui-spinner-button:enabled:hover,:host ::ng-deep button.ui-button:enabled:active,:host ::ng-deep button.ui-button:enabled:focus,:host ::ng-deep button.ui-button:enabled:hover{background:var(--color-accent);border:0;color:var(--color-white)}:host ::ng-deep button.ui-button .fa{color:currentColor!important}:host ::ng-deep button.ui-button eo-icon{height:16px;margin:auto;width:16px}:host ::ng-deep .ui-dropdown.range{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-black-rgb),.1);border:0;border-radius:2px;margin:0 4px;transition:all var(--app-default-transition-duration) ease-in-out;width:20px!important}:host ::ng-deep .ui-dropdown.range.ui-state-focus{background:var(--color-accent)!important}:host ::ng-deep .ui-dropdown.range.ui-state-focus label{color:var(--color-primary-4)}:host ::ng-deep .ui-dropdown.range:not(.ui-state-disabled):hover{background:rgba(var(--color-black-rgb),.2)}:host ::ng-deep .ui-dropdown.range .ui-dropdown-panel .ui-dropdown-items .ui-dropdown-item{padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}:host ::ng-deep .ui-dropdown.range .ui-dropdown-trigger{display:none}:host ::ng-deep .ui-dropdown.range .ui-dropdown-item,:host ::ng-deep .ui-dropdown.range label{display:block;font-family:monospace;text-align:center}:host ::ng-deep .ui-dropdown.range label:after{display:none}"]
6819
6877
  },] }
6820
6878
  ];
@@ -6838,9 +6896,12 @@ class InputFocusDirective {
6838
6896
  this.renderer = renderer;
6839
6897
  this.element = element;
6840
6898
  this.formInput = this.element.nativeElement;
6899
+ this.disabled = false;
6841
6900
  }
6842
6901
  onFocusIn(evt) {
6843
- this.renderer.addClass(this.formInput, 'focused');
6902
+ if (!this.disabled) {
6903
+ this.renderer.addClass(this.formInput, 'focused');
6904
+ }
6844
6905
  }
6845
6906
  onFocusOut(evt) {
6846
6907
  this.renderer.removeClass(this.formInput, 'focused');
@@ -6856,6 +6917,7 @@ InputFocusDirective.ctorParameters = () => [
6856
6917
  { type: ElementRef }
6857
6918
  ];
6858
6919
  InputFocusDirective.propDecorators = {
6920
+ disabled: [{ type: Input }],
6859
6921
  onFocusIn: [{ type: HostListener, args: ['focusin', ['$event'],] }],
6860
6922
  onFocusOut: [{ type: HostListener, args: ['focusout', ['$event'],] }]
6861
6923
  };
@@ -9973,7 +10035,7 @@ class FormElementComponent {
9973
10035
  FormElementComponent.decorators = [
9974
10036
  { type: Component, args: [{
9975
10037
  selector: 'eo-form-element',
9976
- template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\n\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\n [ngSwitch]=\"formElementRef._eoFormElement.type\"\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\">\n\n <!-- STRING -->\n <eo-form-input *ngSwitchCase=\"'STRING'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\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\"\n [regex]=\"formElementRef._eoFormElement.regex\"\n [qname]=\"formElementRef._eoFormElement.qname\"\n [size]=\"formElementRef._eoFormElement.size\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"\n ></eo-string>\n\n <!-- Dynamic List -->\n <eo-dynamic-list\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [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\"\n [reference]=\"formElementRef._eoFormElement.reference\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"\n ></eo-reference>\n </eo-form-input>\n\n <!-- ID-Reference -->\n <eo-form-input *ngSwitchCase=\"'REFERENCE'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-id-reference\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\n [reference]=\"formElementRef._eoFormElement.reference\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [contextId]=\"formElementRef._eoFormElement.contextId\"\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"\n ></eo-id-reference>\n </eo-form-input>\n\n <!-- ID -->\n <eo-form-input *ngSwitchCase=\"'ID'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string\n [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [regex]=\"'^[0-9a-fA-F]*$'\"\n [qname]=\"formElementRef._eoFormElement.qname\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"32\"\n [maxLength]=\"32\"\n ></eo-string>\n\n </eo-form-input>\n\n\n <!-- BOOLEAN -->\n <eo-form-input *ngSwitchCase=\"'BOOLEAN'\" [tag]=\"tag\" class=\"checkbox\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n [required]=\"formElementRef._eoFormElement.required\"\n (onToggleLabel)=\"labelToggled($event)\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [tristate]=\"true\"></eo-checkbox>\n </eo-form-input>\n\n <!-- CODESYSTEM -->\n <eo-form-input *ngSwitchCase=\"'CODESYSTEM'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [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\"\n ></eo-codesystem>\n </eo-form-input>\n\n <!-- ORGANIZATION -->\n <eo-form-input *ngSwitchCase=\"'ORGANIZATION'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [filterObject]=\"formElementRef._eoFormElement.filter\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n ></eo-organization>\n </eo-form-input>\n\n <!-- NUMBER -->\n\n <eo-form-input *ngSwitchCase=\"'NUMBER'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-number *ngIf=\"situation !== 'SEARCH'\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\"\n [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\"\n [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\n </eo-number>\n\n <eo-number-range *ngIf=\"situation === 'SEARCH'\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\"\n [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\"\n [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n ></eo-number-range>\n </eo-form-input>\n\n <!-- TABLE -->\n <div class=\"table\" *ngSwitchCase=\"'TABLE'\">\n <eo-table [params]=\"{\n situation: element._eoFormControlWrapper.situation,\n element: formElementRef._eoFormElement,\n size: formElementRef._eoFormElement.size,\n object: formElementRef._eoFormElement.object\n }\" [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-table>\n </div>\n\n <!-- DATE AND DATETIME -->\n <eo-form-input *ngSwitchCase=\"'DATETIME'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-datetime *ngIf=\"situation !== 'SEARCH'\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [validateDatabaseTimeRange]=\"formElementRef._eoFormElement.withtime\"\n ></eo-datetime>\n\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n ></eo-datetime-range>\n </eo-form-input>\n\n\n <!-- print out the type if it's not matching anything -->\n <div *ngSwitchDefault><b>{{formElementRef._eoFormElement.type}}</b></div>\n\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\">{{formElementRef.errors.precision.translateKey}}</div>\n <div *ngIf=\"formElementRef.errors.scale\" translate\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}</div>\n\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>eo.form.property.string.regex.nomatch</div>\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>eo.form.property.string.error.classification.email</div>\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url</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 [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\n <div *ngIf=\"formElementRef.errors.minlength\" translate [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</div>\n",
10038
+ template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\n\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\n [ngSwitch]=\"formElementRef._eoFormElement.type\"\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\">\n\n <!-- STRING -->\n <eo-form-input *ngSwitchCase=\"'STRING'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [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\"\n [regex]=\"formElementRef._eoFormElement.regex\"\n [qname]=\"formElementRef._eoFormElement.qname\"\n [size]=\"formElementRef._eoFormElement.size\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"\n ></eo-string>\n\n <!-- Dynamic List -->\n <eo-dynamic-list\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [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\"\n [reference]=\"formElementRef._eoFormElement.reference\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"\n ></eo-reference>\n </eo-form-input>\n\n <!-- ID-Reference -->\n <eo-form-input *ngSwitchCase=\"'REFERENCE'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-id-reference\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\n [reference]=\"formElementRef._eoFormElement.reference\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [contextId]=\"formElementRef._eoFormElement.contextId\"\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"\n ></eo-id-reference>\n </eo-form-input>\n\n <!-- ID -->\n <eo-form-input *ngSwitchCase=\"'ID'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string\n [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [regex]=\"'^[0-9a-fA-F]*$'\"\n [qname]=\"formElementRef._eoFormElement.qname\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"32\"\n [maxLength]=\"32\"\n ></eo-string>\n\n </eo-form-input>\n\n\n <!-- BOOLEAN -->\n <eo-form-input *ngSwitchCase=\"'BOOLEAN'\" [tag]=\"tag\" class=\"checkbox\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\"\n (onToggleLabel)=\"labelToggled($event)\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [tristate]=\"true\"></eo-checkbox>\n </eo-form-input>\n\n <!-- CODESYSTEM -->\n <eo-form-input *ngSwitchCase=\"'CODESYSTEM'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [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\"\n ></eo-codesystem>\n </eo-form-input>\n\n <!-- ORGANIZATION -->\n <eo-form-input *ngSwitchCase=\"'ORGANIZATION'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [filterObject]=\"formElementRef._eoFormElement.filter\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n ></eo-organization>\n </eo-form-input>\n\n <!-- NUMBER -->\n\n <eo-form-input *ngSwitchCase=\"'NUMBER'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-number *ngIf=\"situation !== 'SEARCH'\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\"\n [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\"\n [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\n </eo-number>\n\n <eo-number-range *ngIf=\"situation === 'SEARCH'\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\"\n [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\"\n [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n ></eo-number-range>\n </eo-form-input>\n\n <!-- TABLE -->\n <div class=\"table\" *ngSwitchCase=\"'TABLE'\">\n <eo-table [params]=\"{\n situation: element._eoFormControlWrapper.situation,\n element: formElementRef._eoFormElement,\n size: formElementRef._eoFormElement.size,\n object: formElementRef._eoFormElement.object\n }\" [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-table>\n </div>\n\n <!-- DATE AND DATETIME -->\n <eo-form-input *ngSwitchCase=\"'DATETIME'\" [tag]=\"tag\" [label]=\"formElementRef._eoFormElement.label\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\"\n (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-datetime *ngIf=\"situation !== 'SEARCH'\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [validateDatabaseTimeRange]=\"formElementRef._eoFormElement.withtime\"\n ></eo-datetime>\n\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n ></eo-datetime-range>\n </eo-form-input>\n\n\n <!-- print out the type if it's not matching anything -->\n <div *ngSwitchDefault><b>{{formElementRef._eoFormElement.type}}</b></div>\n\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\">{{formElementRef.errors.precision.translateKey}}</div>\n <div *ngIf=\"formElementRef.errors.scale\" translate\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}</div>\n\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>eo.form.property.string.regex.nomatch</div>\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>eo.form.property.string.error.classification.email</div>\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url</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 [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\n <div *ngIf=\"formElementRef.errors.minlength\" translate [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</div>\n",
9977
10039
  styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);border:0;border-radius:2px;color:var(--color-white);margin:calc(var(--app-pane-padding)/4) 0;padding:calc(var(--app-pane-padding)/4)}: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{border:0;color:var(--color-error);padding:calc(var(--app-pane-padding)/4) 0}.form-element .form-field .table{align-items:flex-start;border-color:transparent;flex-flow:column}.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}"]
9978
10040
  },] }
9979
10041
  ];
@@ -12074,10 +12136,12 @@ class SetFilterComponent extends AbstractFilterComponent {
12074
12136
  this.title = '';
12075
12137
  this.searchLimit = 10;
12076
12138
  this.operator = 'OR'; // AND | OR
12139
+ this.selectedAllFilters = false;
12077
12140
  this.id = '#set';
12078
12141
  }
12079
12142
  set options(opts) {
12080
12143
  this._options = this.defaultValue ? opts || [] : this.settingsService.setupSettings(this.id, opts);
12144
+ this.selectedAllFilters = this.options.every(opt => opt.value);
12081
12145
  if (this.options && this.params && this.isFilterActive()) {
12082
12146
  setTimeout(() => this.params.filterChangedCallback(), 0);
12083
12147
  }
@@ -12123,7 +12187,7 @@ class SetFilterComponent extends AbstractFilterComponent {
12123
12187
  SetFilterComponent.decorators = [
12124
12188
  { type: Component, args: [{
12125
12189
  selector: 'eo-set-filter',
12126
- template: "<header class=\"filter__header\">\n <h3 class=\"filter__title title\" *ngIf=\"title\">{{title}}</h3>\n <input *ngIf=\"options?.length > searchLimit\" #input (ngModelChange)=\"onSearchChange($event)\" [ngModel]=\"''\"\n class=\"form-control\" placeholder=\"{{ 'eo.resultlist.grid.searchOoo' | translate}}\">\n <div class=\"option flex-row\">\n <eo-checkbox (ngModelChange)=\"onChange($event)\" [ngModel]=\"operator === 'OR'\" [tristate]=\"false\"></eo-checkbox>\n <label>({{'eo.resultlist.grid.selectAll' | translate}})</label>\n </div>\n</header>\n<div class=\"option flex-row\" *ngFor=\"let item of options\" [hidden]=\"item.hidden\">\n <eo-checkbox (ngModelChange)=\"onChange($event, item)\" [ngModel]=\"item.value\" [tristate]=\"false\"></eo-checkbox>\n <label [innerHTML]=\"item.label | safeHtml\"></label>\n</div>",
12190
+ template: "<header class=\"filter__header\">\n <h3 class=\"filter__title title\" *ngIf=\"title\">{{title}}</h3>\n <input *ngIf=\"options?.length > searchLimit\" #input (ngModelChange)=\"onSearchChange($event)\" [ngModel]=\"''\"\n class=\"form-control\" placeholder=\"{{ 'eo.resultlist.grid.searchOoo' | translate}}\">\n <div class=\"option flex-row\">\n <eo-checkbox (ngModelChange)=\"onChange($event)\" [ngModel]=\"selectedAllFilters\" [tristate]=\"false\"></eo-checkbox>\n <label>({{'eo.resultlist.grid.selectAll' | translate}})</label>\n </div>\n</header>\n<div class=\"option flex-row\" *ngFor=\"let item of options\" [hidden]=\"item.hidden\">\n <eo-checkbox (ngModelChange)=\"onChange($event, item)\" [ngModel]=\"item.value\" [tristate]=\"false\"></eo-checkbox>\n <label [innerHTML]=\"item.label | safeHtml\"></label>\n</div>\n",
12127
12191
  styles: [".title{font-weight:700;margin-top:.5em}.option{margin:.5em 0}label{padding:0 .5em}input{border:none}"]
12128
12192
  },] }
12129
12193
  ];
@@ -12179,7 +12243,7 @@ class ListFilterComponent extends SetFilterComponent {
12179
12243
  ListFilterComponent.decorators = [
12180
12244
  { type: Component, args: [{
12181
12245
  selector: 'eo-list-filter',
12182
- template: "<header class=\"filter__header\">\n <h3 class=\"filter__title title\" *ngIf=\"title\">{{title}}</h3>\n <input *ngIf=\"options?.length > searchLimit\" #input (ngModelChange)=\"onSearchChange($event)\" [ngModel]=\"''\"\n class=\"form-control\" placeholder=\"{{ 'eo.resultlist.grid.searchOoo' | translate}}\">\n <div class=\"option flex-row\">\n <eo-checkbox (ngModelChange)=\"onChange($event)\" [ngModel]=\"operator === 'OR'\" [tristate]=\"false\"></eo-checkbox>\n <label>({{'eo.resultlist.grid.selectAll' | translate}})</label>\n </div>\n</header>\n<div class=\"option flex-row\" *ngFor=\"let item of options\" [hidden]=\"item.hidden\">\n <eo-checkbox (ngModelChange)=\"onChange($event, item)\" [ngModel]=\"item.value\" [tristate]=\"false\"></eo-checkbox>\n <label [innerHTML]=\"item.label | safeHtml\"></label>\n</div>",
12246
+ template: "<header class=\"filter__header\">\n <h3 class=\"filter__title title\" *ngIf=\"title\">{{title}}</h3>\n <input *ngIf=\"options?.length > searchLimit\" #input (ngModelChange)=\"onSearchChange($event)\" [ngModel]=\"''\"\n class=\"form-control\" placeholder=\"{{ 'eo.resultlist.grid.searchOoo' | translate}}\">\n <div class=\"option flex-row\">\n <eo-checkbox (ngModelChange)=\"onChange($event)\" [ngModel]=\"selectedAllFilters\" [tristate]=\"false\"></eo-checkbox>\n <label>({{'eo.resultlist.grid.selectAll' | translate}})</label>\n </div>\n</header>\n<div class=\"option flex-row\" *ngFor=\"let item of options\" [hidden]=\"item.hidden\">\n <eo-checkbox (ngModelChange)=\"onChange($event, item)\" [ngModel]=\"item.value\" [tristate]=\"false\"></eo-checkbox>\n <label [innerHTML]=\"item.label | safeHtml\"></label>\n</div>\n",
12183
12247
  styles: [".title{font-weight:700;margin-top:.5em}.option{margin:.5em 0}label{padding:0 .5em}input{border:none}"]
12184
12248
  },] }
12185
12249
  ];
@@ -12577,6 +12641,7 @@ class ColumnConfiguratorComponent {
12577
12641
  this.hasPrivilege = false;
12578
12642
  this.onConfigChanged = new EventEmitter();
12579
12643
  this.visible = false;
12644
+ this.alignmentValue = 'Automatic';
12580
12645
  this.userService
12581
12646
  .user$
12582
12647
  .subscribe((user) => {
@@ -12594,7 +12659,7 @@ class ColumnConfiguratorComponent {
12594
12659
  * @param boolean asDefault
12595
12660
  */
12596
12661
  saveConfig(asDefault = false) {
12597
- let data = new FieldDefinition([], [], [], []);
12662
+ let data = new FieldDefinition([], [], [], [], []);
12598
12663
  data.elements = this.currentFields.map(col => {
12599
12664
  if (col.confmeta.sort) {
12600
12665
  data.sortorder.push({
@@ -12612,6 +12677,12 @@ class ColumnConfiguratorComponent {
12612
12677
  qname: col.qname
12613
12678
  });
12614
12679
  }
12680
+ if (col.confmeta.alignmentx) {
12681
+ data.alignmentx.push({
12682
+ qname: col.qname,
12683
+ value: col.confmeta.alignmentx
12684
+ });
12685
+ }
12615
12686
  return {
12616
12687
  qname: col.qname
12617
12688
  };
@@ -12635,18 +12706,21 @@ class ColumnConfiguratorComponent {
12635
12706
  let sortEntry = res.current.sortorder.find((a) => el.qname === a.qname);
12636
12707
  // let groupEntry = res.current.grouporder.find((a: any) => el.qname === a.qname);
12637
12708
  let pinnedEntry = res.current.pinned.find((a) => el.qname === a.qname);
12709
+ let alignmentEntry = res.current.alignmentx.find((a) => el.qname === a.qname);
12638
12710
  el.confmeta = {
12639
12711
  sort: sortEntry ? (sortEntry.direction || '').toLowerCase() : null,
12640
12712
  // group: !!groupEntry,
12641
12713
  pinned: !!pinnedEntry,
12642
- modified: false
12714
+ modified: false,
12715
+ alignmentx: alignmentEntry ? alignmentEntry.value : null
12643
12716
  };
12644
12717
  });
12645
12718
  this.isDefaultConfig = res.current.mode !== 'USER';
12646
12719
  this.originalFields = res.current.elements;
12647
12720
  this.currentFields = this.eoGrid.columns.filter(column => column.isVisible()).map(({ colDef, sort, pinned }, index) => {
12648
12721
  const i = this.originalFields.findIndex(f => GridService.qnameMatch(f.qname, colDef.refData.qname)), field = this.originalFields[i];
12649
- return Object.assign(Object.assign({}, field), { confmeta: { sort, pinned, modified: i !== index || (field.confmeta.sort || '') !== (sort || '') || !field.confmeta.pinned !== !pinned } });
12722
+ return Object.assign(Object.assign({}, field), { confmeta: { sort, pinned, alignmentx: field.confmeta.alignmentx,
12723
+ modified: i !== index || (field.confmeta.sort || '') !== (sort || '') || !!field.confmeta.alignmentx } });
12650
12724
  });
12651
12725
  this.availableFields = res.available.elements.filter((col) => {
12652
12726
  return !this.currentFields.find((c) => c.qname === col.qname);
@@ -12708,6 +12782,21 @@ class ColumnConfiguratorComponent {
12708
12782
  item.confmeta.sort = null;
12709
12783
  }
12710
12784
  }
12785
+ toggleAlignment(item, $event) {
12786
+ this.togglePrevent(item, $event);
12787
+ if (!item.confmeta.alignmentx) {
12788
+ item.confmeta.alignmentx = 'right';
12789
+ }
12790
+ else if (item.confmeta.alignmentx === 'right') {
12791
+ item.confmeta.alignmentx = 'center';
12792
+ }
12793
+ else if (item.confmeta.alignmentx === 'center') {
12794
+ item.confmeta.alignmentx = 'left';
12795
+ }
12796
+ else if (item.confmeta.alignmentx === 'left') {
12797
+ item.confmeta.alignmentx = null;
12798
+ }
12799
+ }
12711
12800
  // toggleGroup(item, $event) {
12712
12801
  // this.togglePrevent(item, $event);
12713
12802
  // item.confmeta.group = !item.confmeta.group;
@@ -12727,8 +12816,8 @@ class ColumnConfiguratorComponent {
12727
12816
  ColumnConfiguratorComponent.decorators = [
12728
12817
  { type: Component, args: [{
12729
12818
  selector: 'eo-column-configurator',
12730
- template: "<div class=\"configurator\">\n\n <div class=\"bar\">\n <div class=\"title\" translate>eo.column.config.title</div>\n <button (click)=\"resetDefault()\" *ngIf=\"!isDefaultConfig\" translate>eo.column.config.action.resetdefault</button>\n <button (click)=\"toggleConfigMode()\" translate>eo.column.config.action.close</button>\n <button (click)=\"saveConfig(true)\" class=\"primary\" [disabled]=\"!currentFields?.length\" *ngIf=\"hasPrivilege\" translate>eo.column.config.action.save.default</button>\n <button (click)=\"saveConfig()\" class=\"primary\" [disabled]=\"!currentFields?.length\" translate>eo.column.config.action.save</button>\n </div>\n\n <div class=\"info\" *ngIf=\"info\">{{info}}</div>\n\n <div class=\"column-config\" cdkDropListGroup>\n\n <div class=\"scroller current\">\n <div class=\"headline\" translate>eo.column.config.headline.current</div>\n <div class=\"items\" cdkDropList (cdkDropListDropped)=\"drop($event, 'current')\" [cdkDropListData]=\"currentFields\">\n <div class=\"item\" cdkDragHandle cdkDrag [cdkDragData]=\"field\" *ngFor=\"let field of currentFields; index as i\">\n <div class=\"entry\" [ngClass]=\"{modified: field.confmeta.modified, sfe: field.selectedforenrichment}\">\n <div class=\"label\" [ngClass]=\"{baseparam: field.baseparameter}\">{{field.label}}</div>\n <div class=\"group\" [ngClass]=\"{on: field.confmeta.pinned}\" (click)=\"togglePinned(field, $event)\" translate>eo.column.config.pinned</div>\n <!--<div class=\"group\" [ngClass]=\"{on: field.confmeta.group}\" (click)=\"toggleGroup(field, $event)\" translate>eo.column.config.group</div>-->\n <div class=\"sort\" [ngClass]=\"{on: field.confmeta.sort, asc: field.confmeta.sort === 'asc', desc: field.confmeta.sort === 'desc', disabled: !field.sortable}\" \n (click)=\"field.sortable && toggleSort(field, $event)\" translate>eo.column.config.sort</div>\n </div>\n </div>\n\n </div>\n </div>\n\n <div class=\"scroller available\">\n <div class=\"headline\" translate>eo.column.config.headline.available</div>\n <div class=\"items\" cdkDropList (cdkDropListDropped)=\"drop($event, 'available')\" [cdkDropListData]=\"availableFields\">\n <div class=\"item\" cdkDragHandle cdkDrag [cdkDragData]=\"field\" *ngFor=\"let field of availableFields; index as i\">\n <div class=\"entry\" [ngClass]=\"{modified: field.confmeta.modified, sfe: field.selectedforenrichment}\">\n <div class=\"label\" [ngClass]=\"{baseparam: field.baseparameter}\">{{field.label}}</div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n</div>\n",
12731
- styles: [".cdk-drag-preview{display:none}.cdk-drag-placeholder .entry{border-style:dashed!important;opacity:.9}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}:host{-webkit-animation:eoFadeIn var(--app-default-transition-duration) 1 ease-in-out;animation:eoFadeIn var(--app-default-transition-duration) 1 ease-in-out;background:var(--color-white);bottom:0;display:flex;display:none;flex:1;flex-direction:column;height:100%;left:0;min-height:0;min-width:0;position:absolute;right:0;top:0;width:100%;z-index:10}:host.visible{display:block;overflow-x:auto}:host .configurator{flex:1;flex-direction:column;height:100%}:host .bar,:host .configurator{display:flex;min-height:0;min-width:0}:host .bar{align-items:center;background:var(--color-accent);color:var(--color-white);flex:none;flex-direction:row;min-width:560px;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding)}:host .bar .title{flex:1 1 auto;font-size:var(--font-subhead)}:host .bar button{color:rgba(var(--color-white-rgb),.87);margin:4px}:host .bar button.primary,:host .bar button:hover{background:rgba(var(--color-white-rgb),.1)}:host .bar button.primary{border:1px solid var(--color-white);color:var(--color-white);white-space:nowrap}:host .bar button.primary:hover{background:rgba(var(--color-white-rgb),.3)}:host .info{color:var(--color-accent);font-size:var(--font-title);font-weight:var(--font-weight-light);line-height:1em;margin:var(--app-pane-padding)}:host .column-config{--cc-border-color:rgba(var(--color-black-rgb),0.15);display:flex;flex:1;flex-direction:row;margin:var(--app-pane-padding);min-height:0;min-width:0}:host .column-config .scroller{background:var(--panel-background-lightgrey);border:1px solid var(--cc-border-color);display:flex;flex:2;flex-direction:column;min-height:0;min-width:0;min-width:300px}:host .column-config .scroller:last-child{flex:1;min-width:200px}[dir=ltr] :host .column-config .scroller:last-child{margin-left:var(--app-pane-padding)}[dir=rtl] :host .column-config .scroller:last-child{margin-right:var(--app-pane-padding)}:host .column-config .scroller .headline{border-bottom:1px solid var(--cc-border-color);color:var(--text-color-caption);padding:calc(var(--app-pane-padding)/2)}:host .column-config .scroller .items{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;overflow-y:auto;padding:calc(var(--app-pane-padding)/2)}:host .column-config .scroller .items .entry{-khtml-user-select:none;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-moz-user-select:none;-ms-user-select:none;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-touch-callout:none;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-user-select:none;background:var(--color-white);border:1px solid var(--cc-border-color);cursor:default;cursor:move;display:flex;flex:1;flex-direction:row;margin:4px 0;min-height:0;min-width:0;overflow:hidden;padding:calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out;user-select:none}:host .column-config .scroller .items .entry:before{background:rgba(var(--color-black-rgb),.06);content:\" \";height:1.5em;width:calc(var(--app-pane-padding)/2)}[dir=ltr] :host .column-config .scroller .items .entry:before{margin-right:calc(var(--app-pane-padding)/2)}[dir=rtl] :host .column-config .scroller .items .entry:before{margin-left:calc(var(--app-pane-padding)/2)}:host .column-config .scroller .items .entry.sfe:before{background:rgba(var(--color-black-rgb),.26);color:var(--color-white);content:\"*\";text-align:center}:host .column-config .scroller .items .entry.modified:before{background:var(--color-accent)}:host .column-config .scroller .items .entry .label{flex:1 1 auto}:host .column-config .scroller .items .entry .label.baseparam{font-style:italic}:host .column-config .scroller .items .entry .sort:after{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAGFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAB5sPD/AAAACHRSTlMAAAEnK2xwihv2e6MAAAAkSURBVAgdBcGBAQAgDMMgmvn/zcIGMO6xUBHXIqLkYkmQDfABCHAAOCt/xSYAAAAASUVORK5CYII=);content:\"\";display:inline-block;height:8px;opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;width:8px}[dir=ltr] :host .column-config .scroller .items .entry .sort:after{margin-left:4px}[dir=rtl] :host .column-config .scroller .items .entry .sort:after{margin-right:4px}:host .column-config .scroller .items .entry .sort.asc:after{opacity:1}:host .column-config .scroller .items .entry .sort.desc:after{opacity:1;transform:rotate(180deg)}:host .column-config .scroller .items .entry .group,:host .column-config .scroller .items .entry .sort{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-black-rgb),.06);border:1px solid rgba(var(--color-black-rgb),0);border-radius:2px;color:rgba(var(--color-black-rgb),.33);font-size:var(--font-hint);margin:0 4px;padding:0 4px;transition:all var(--app-default-transition-duration) ease-in-out;white-space:nowrap}:host .column-config .scroller .items .entry .group:hover,:host .column-config .scroller .items .entry .sort:hover{border-color:rgba(var(--color-black-rgb),.22);color:var(--text-color-caption)}:host .column-config .scroller .items .entry .group.on,:host .column-config .scroller .items .entry .sort.on{border-color:var(--color-accent-light);color:var(--color-accent-light)}:host .column-config .scroller .items .entry .group.disabled,:host .column-config .scroller .items .entry .sort.disabled{border:1px solid rgba(var(--color-black-rgb),0);color:rgba(var(--color-black-rgb),.33);cursor:default;text-decoration:line-through}"]
12819
+ template: "<div class=\"configurator\">\n\n <div class=\"bar\">\n <div class=\"title\" translate>eo.column.config.title</div>\n <button (click)=\"resetDefault()\" *ngIf=\"!isDefaultConfig\" translate>eo.column.config.action.resetdefault</button>\n <button (click)=\"toggleConfigMode()\" translate>eo.column.config.action.close</button>\n <button (click)=\"saveConfig(true)\" class=\"primary\" [disabled]=\"!currentFields?.length\" *ngIf=\"hasPrivilege\" translate>eo.column.config.action.save.default</button>\n <button (click)=\"saveConfig()\" class=\"primary\" [disabled]=\"!currentFields?.length\" translate>eo.column.config.action.save</button>\n </div>\n\n <div class=\"info\" *ngIf=\"info\">{{info}}</div>\n\n <div class=\"column-config\" cdkDropListGroup>\n\n <div class=\"scroller current\">\n <div class=\"headline\" translate>eo.column.config.headline.current</div>\n <div class=\"items\" cdkDropList (cdkDropListDropped)=\"drop($event, 'current')\" [cdkDropListData]=\"currentFields\">\n <div class=\"item\" cdkDragHandle cdkDrag [cdkDragData]=\"field\" *ngFor=\"let field of currentFields; index as i\">\n <div class=\"entry\" [ngClass]=\"{modified: field.confmeta.modified, sfe: field.selectedforenrichment}\">\n <div class=\"label\" [ngClass]=\"{baseparam: field.baseparameter}\">{{field.label}}</div>\n <div class=\"group\" [ngClass]=\"{on: field.confmeta.pinned}\" (click)=\"togglePinned(field, $event)\" translate>\n <span class=\"config-label\" translate>eo.column.config.pinned</span>\n </div>\n <!--<div class=\"group\" [ngClass]=\"{on: field.confmeta.group}\" (click)=\"toggleGroup(field, $event)\" translate>eo.column.config.group</div>-->\n <div class=\"sort\" [ngClass]=\"{on: field.confmeta.sort, asc: field.confmeta.sort === 'asc', desc: field.confmeta.sort === 'desc', disabled: !field.sortable}\"\n (click)=\"field.sortable && toggleSort(field, $event)\"><span class=\"config-label\" translate>eo.column.config.sort</span></div>\n <div class=\"alignment\" [ngClass]=\"{on: field.confmeta.alignmentx, left: field.confmeta.alignmentx === 'left',\n right: field.confmeta.alignmentx === 'right', center: field.confmeta.alignmentx === 'center'}\"\n (click)=\"toggleAlignment(field, $event)\"><span class=\"config-label\" translate>eo.column.config.alignment</span>\n <img *ngIf=\"field.confmeta.alignmentx === 'center'\" class=\"center-second\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAGFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAB5sPD/AAAACHRSTlMAAAEnK2xwihv2e6MAAAAkSURBVAgdBcGBAQAgDMMgmvn/zcIGMO6xUBHXIqLkYkmQDfABCHAAOCt/xSYAAAAASUVORK5CYII=\">\n </div>\n </div>\n </div>\n\n </div>\n </div>\n\n <div class=\"scroller available\">\n <div class=\"headline\" translate>eo.column.config.headline.available</div>\n <div class=\"items\" cdkDropList (cdkDropListDropped)=\"drop($event, 'available')\" [cdkDropListData]=\"availableFields\">\n <div class=\"item\" cdkDragHandle cdkDrag [cdkDragData]=\"field\" *ngFor=\"let field of availableFields; index as i\">\n <div class=\"entry\" [ngClass]=\"{modified: field.confmeta.modified, sfe: field.selectedforenrichment}\">\n <div class=\"label\" [ngClass]=\"{baseparam: field.baseparameter}\">{{field.label}}</div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n</div>\n",
12820
+ styles: [".cdk-drag-preview{display:none}.cdk-drag-placeholder .entry{border-style:dashed!important;opacity:.9}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}:host{-webkit-animation:eoFadeIn var(--app-default-transition-duration) 1 ease-in-out;animation:eoFadeIn var(--app-default-transition-duration) 1 ease-in-out;background:var(--color-white);bottom:0;display:flex;display:none;flex:1;flex-direction:column;height:100%;left:0;min-height:0;min-width:0;position:absolute;right:0;top:0;width:100%;z-index:10}:host.visible{display:block;overflow-x:auto}:host .configurator{flex:1;flex-direction:column;height:100%}:host .bar,:host .configurator{display:flex;min-height:0;min-width:0}:host .bar{align-items:center;background:var(--color-accent);color:var(--color-white);flex:none;flex-direction:row;min-width:560px;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding)}:host .bar .title{flex:1 1 auto;font-size:var(--font-subhead)}:host .bar button{color:rgba(var(--color-white-rgb),.87);margin:4px}:host .bar button.primary,:host .bar button:hover{background:rgba(var(--color-white-rgb),.1)}:host .bar button.primary{border:1px solid var(--color-white);color:var(--color-white);white-space:nowrap}:host .bar button.primary:hover{background:rgba(var(--color-white-rgb),.3)}:host .info{color:var(--color-accent);font-size:var(--font-title);font-weight:var(--font-weight-light);line-height:1em;margin:var(--app-pane-padding)}:host .column-config{--cc-border-color:rgba(var(--color-black-rgb),0.15);display:flex;flex:1;flex-direction:row;margin:var(--app-pane-padding);min-height:0;min-width:0}:host .column-config .scroller{background:var(--panel-background-lightgrey);border:1px solid var(--cc-border-color);display:flex;flex:2;flex-direction:column;min-height:0;min-width:0;min-width:300px}:host .column-config .scroller:last-child{flex:1;min-width:200px}[dir=ltr] :host .column-config .scroller:last-child{margin-left:var(--app-pane-padding)}[dir=rtl] :host .column-config .scroller:last-child{margin-right:var(--app-pane-padding)}:host .column-config .scroller .headline{border-bottom:1px solid var(--cc-border-color);color:var(--text-color-caption);padding:calc(var(--app-pane-padding)/2)}:host .column-config .scroller .items{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;overflow-y:auto;padding:calc(var(--app-pane-padding)/2)}:host .column-config .scroller .items .entry{-khtml-user-select:none;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-moz-user-select:none;-ms-user-select:none;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-touch-callout:none;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-user-select:none;background:var(--color-white);border:1px solid var(--cc-border-color);cursor:default;cursor:move;display:flex;flex:1;flex-direction:row;margin:4px 0;min-height:0;min-width:0;overflow:hidden;padding:calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out;user-select:none}:host .column-config .scroller .items .entry:before{background:rgba(var(--color-black-rgb),.06);content:\" \";height:1.5em;width:calc(var(--app-pane-padding)/2)}[dir=ltr] :host .column-config .scroller .items .entry:before{margin-right:calc(var(--app-pane-padding)/2)}[dir=rtl] :host .column-config .scroller .items .entry:before{margin-left:calc(var(--app-pane-padding)/2)}:host .column-config .scroller .items .entry.sfe:before{background:rgba(var(--color-black-rgb),.26);color:var(--color-white);content:\"*\";text-align:center}:host .column-config .scroller .items .entry.modified:before{background:var(--color-accent)}:host .column-config .scroller .items .entry .label{flex:1 1 auto}:host .column-config .scroller .items .entry .label.baseparam{font-style:italic}:host .column-config .scroller .items .entry .sort:after{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAGFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAB5sPD/AAAACHRSTlMAAAEnK2xwihv2e6MAAAAkSURBVAgdBcGBAQAgDMMgmvn/zcIGMO6xUBHXIqLkYkmQDfABCHAAOCt/xSYAAAAASUVORK5CYII=);content:\"\";display:inline-block;height:8px;opacity:0;position:relative;top:2px;transition:all var(--app-default-transition-duration) ease-in-out;width:8px}[dir=ltr] :host .column-config .scroller .items .entry .sort:after{margin-left:4px}[dir=rtl] :host .column-config .scroller .items .entry .sort:after{margin-right:4px}:host .column-config .scroller .items .entry .sort.asc:after{opacity:1}:host .column-config .scroller .items .entry .sort.desc:after{opacity:1;transform:rotate(180deg)}:host .column-config .scroller .items .entry .alignment:after{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAGFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAB5sPD/AAAACHRSTlMAAAEnK2xwihv2e6MAAAAkSURBVAgdBcGBAQAgDMMgmvn/zcIGMO6xUBHXIqLkYkmQDfABCHAAOCt/xSYAAAAASUVORK5CYII=);content:\"\";display:inline-block;height:8px;opacity:0;position:relative;top:2px;transform:rotate(270deg);transition:all var(--app-default-transition-duration) ease-in-out;width:8px}[dir=ltr] :host .column-config .scroller .items .entry .alignment:after{margin-left:4px}[dir=rtl] :host .column-config .scroller .items .entry .alignment:after{margin-right:4px}:host .column-config .scroller .items .entry .alignment.center:after,:host .column-config .scroller .items .entry .alignment.left:after{opacity:1}:host .column-config .scroller .items .entry .alignment.right:after{opacity:1;transform:rotate(90deg)}:host .column-config .scroller .items .entry .alignment .center-second{margin-left:2px;position:relative;top:2px;transform:rotate(90deg)}:host .column-config .scroller .items .entry .alignment,:host .column-config .scroller .items .entry .group,:host .column-config .scroller .items .entry .sort{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-black-rgb),.06);border:1px solid rgba(var(--color-black-rgb),0);border-radius:2px;color:rgba(var(--color-black-rgb),.33);cursor:pointer;font-size:var(--font-hint);margin:0 4px;padding:0 4px;transition:all var(--app-default-transition-duration) ease-in-out;white-space:nowrap}:host .column-config .scroller .items .entry .alignment:hover,:host .column-config .scroller .items .entry .group:hover,:host .column-config .scroller .items .entry .sort:hover{border-color:rgba(var(--color-black-rgb),.22);color:var(--text-color-caption)}:host .column-config .scroller .items .entry .alignment.on,:host .column-config .scroller .items .entry .group.on,:host .column-config .scroller .items .entry .sort.on{border-color:var(--color-accent-light);color:var(--color-accent-light)}:host .column-config .scroller .items .entry .alignment.disabled,:host .column-config .scroller .items .entry .group.disabled,:host .column-config .scroller .items .entry .sort.disabled{border:1px solid rgba(var(--color-black-rgb),0);color:rgba(var(--color-black-rgb),.33);cursor:default;text-decoration:line-through}:host .column-config .scroller .items .entry .alignment .config-label,:host .column-config .scroller .items .entry .group .config-label,:host .column-config .scroller .items .entry .sort .config-label{position:relative;top:2px}"]
12732
12821
  },] }
12733
12822
  ];
12734
12823
  ColumnConfiguratorComponent.ctorParameters = () => [
@@ -12908,7 +12997,7 @@ class TextFilterComponent extends AbstractFilterComponent {
12908
12997
  }
12909
12998
  focusout() {
12910
12999
  this.focused = false;
12911
- if (!this.autocompleteRes.includes(this.value) && this.value !== '' && this.value.trim() !== '') {
13000
+ if (this.value && !this.autocompleteRes.includes(this.value) && this.value !== '' && this.value.trim() !== '') {
12912
13001
  if (this.autocompleteRes.length === 5) {
12913
13002
  this.autocompleteRes.shift();
12914
13003
  }
@@ -12925,7 +13014,6 @@ class TextFilterComponent extends AbstractFilterComponent {
12925
13014
  }
12926
13015
  autocompleteFn(evt) {
12927
13016
  this.autocompleteRes = this.storageService.getItem('eo.inbox.filter.suggestions') || [];
12928
- this.autocompleteRes.reverse();
12929
13017
  }
12930
13018
  }
12931
13019
  TextFilterComponent.decorators = [
@@ -16968,9 +17056,9 @@ class ResultListComponent extends UnsubscribeOnDestroy {
16968
17056
  const searchMode = result.fields.mode ? result.fields.mode : null;
16969
17057
  this.settings = this.limitedList && this.query ? { total: this.totalHits, size: this.VIRTUAL_LIST_CHUNK_SIZE, relation: result.count.relation } : null;
16970
17058
  gridOptions.rowData = result.hits;
16971
- const { elements, sortorder, grouporder, pinned } = result.fields;
17059
+ const { elements, sortorder, grouporder, pinned, alignmentx } = result.fields;
16972
17060
  gridOptions.context.count = result.count;
16973
- gridOptions.columnDefs = this.gridApi.getColumnDefs(elements, sortorder, grouporder, pinned, false, this._cachedColumns, searchMode);
17061
+ gridOptions.columnDefs = this.gridApi.getColumnDefs(elements, sortorder, grouporder, pinned, alignmentx, false, this._cachedColumns, searchMode);
16974
17062
  const refreshGrid = this.hasGridOptions;
16975
17063
  Object.assign(this.resultGridOptions, gridOptions, this.gridOptions);
16976
17064
  if (refreshGrid) {
@@ -18671,8 +18759,9 @@ class ObjectHistoryComponent extends UnsubscribeOnDestroy {
18671
18759
  this.dmsService
18672
18760
  .getHistory(id, type)
18673
18761
  .pipe(map((res) => {
18674
- this.completeHistory = res.reverse();
18675
- this.history = res.reverse();
18762
+ const reversedRes = res.reverse();
18763
+ this.completeHistory = reversedRes;
18764
+ this.history = reversedRes;
18676
18765
  this.toggleFilter(['INFORMATIONAL', true]);
18677
18766
  this.cd.markForCheck();
18678
18767
  }))
@@ -20712,6 +20801,10 @@ class InboxDetailsComponent extends UnsubscribeOnDestroy {
20712
20801
  * @param action The action to be executes
20713
20802
  */
20714
20803
  executeWorkItemAction(action) {
20804
+ this.preventClickThrough = true;
20805
+ setTimeout(() => {
20806
+ this.preventClickThrough = false;
20807
+ }, 1000);
20715
20808
  setTimeout(() => {
20716
20809
  if (!this.formState || !this.formState.invalid) {
20717
20810
  if (action.url) {
@@ -21809,48 +21902,6 @@ const listAnimation = trigger('listAnimation', [
21809
21902
  ])
21810
21903
  ]);
21811
21904
 
21812
- const STATE = {
21813
- LOADING: 'loading',
21814
- READY: 'ready',
21815
- ERROR: 'error'
21816
- };
21817
- class PanelLoading {
21818
- constructor() {
21819
- this.state = '';
21820
- this.loading = () => this._set(STATE.LOADING);
21821
- this.ready = () => this._set(STATE.READY);
21822
- this.error = () => this._set(STATE.ERROR);
21823
- this.isLoading = () => this.state === STATE.LOADING;
21824
- this.isReady = () => this.state === STATE.READY;
21825
- this.isError = () => this.state === STATE.ERROR;
21826
- }
21827
- _set(_state) {
21828
- this.state = _state;
21829
- }
21830
- subscribe(observable, success, error) {
21831
- this.loading();
21832
- return observable.subscribe((res) => {
21833
- if (success) {
21834
- success.call(this, res);
21835
- }
21836
- this.ready();
21837
- }, (err) => {
21838
- if (error) {
21839
- error.call(this, err);
21840
- }
21841
- this.error();
21842
- });
21843
- }
21844
- }
21845
- const panelLoadingAnimations = trigger('panelLoading', [
21846
- state(STATE.ERROR, style({ opacity: 0 })),
21847
- state(STATE.LOADING, style({ opacity: 0.5 })),
21848
- state(STATE.READY, style({ opacity: 1 })),
21849
- transition(STATE.LOADING + ' <=> ' + STATE.READY, [
21850
- animate(200)
21851
- ])
21852
- ]);
21853
-
21854
21905
  class DashboardComponent extends UnsubscribeOnDestroy {
21855
21906
  constructor(userService, titleService, router, route, config, searchService, authService, systemService, inboxService, prepareService, envService, capabilityService, storedQueriesService) {
21856
21907
  super();
@@ -22024,13 +22075,14 @@ var LockSettings;
22024
22075
  })(LockSettings || (LockSettings = {}));
22025
22076
 
22026
22077
  class SettingsComponent extends UnsubscribeOnDestroy {
22027
- constructor(renderer, userService, config, notify, systemService, capabilitiesService, envService, titleService, agentService, fb, cacheService, listSettingsService, storageService, translate) {
22078
+ constructor(renderer, userService, config, notify, systemService, eventService, capabilitiesService, envService, titleService, agentService, fb, cacheService, listSettingsService, storageService, translate, notification) {
22028
22079
  super();
22029
22080
  this.renderer = renderer;
22030
22081
  this.userService = userService;
22031
22082
  this.config = config;
22032
22083
  this.notify = notify;
22033
22084
  this.systemService = systemService;
22085
+ this.eventService = eventService;
22034
22086
  this.capabilitiesService = capabilitiesService;
22035
22087
  this.envService = envService;
22036
22088
  this.titleService = titleService;
@@ -22040,14 +22092,26 @@ class SettingsComponent extends UnsubscribeOnDestroy {
22040
22092
  this.listSettingsService = listSettingsService;
22041
22093
  this.storageService = storageService;
22042
22094
  this.translate = translate;
22095
+ this.notification = notification;
22043
22096
  this.LockSettings = LockSettings;
22044
22097
  this.showAgentConfig = true;
22045
22098
  this.defaultLockSetting = false;
22099
+ this.user$ = this.userService.user$;
22100
+ this.userId = '';
22101
+ this.showDeleteIconTrash = true;
22102
+ this.userImageUri = '';
22103
+ this.hoverSelector = false;
22104
+ this.showPreviewDialog = false;
22105
+ this.showDeleteDialog = false;
22106
+ this.showErrorDialog = false;
22107
+ this.MAX_FILE_SIZE = 524288;
22108
+ this.viewMode = '';
22046
22109
  this.cache = {
22047
22110
  system: true,
22048
22111
  history: true,
22049
22112
  layout: true
22050
22113
  };
22114
+ this.files = {};
22051
22115
  this.titleService.setBaseTitle(this.translate.instant('eo.bar.button.settings.title'));
22052
22116
  this.clientLocales = config.getClientLocales();
22053
22117
  this.capabilities = this.capabilitiesService.getCapabilities();
@@ -22125,15 +22189,104 @@ class SettingsComponent extends UnsubscribeOnDestroy {
22125
22189
  }
22126
22190
  }
22127
22191
  ngAfterViewInit() {
22128
- if (this.user.imageUri) {
22129
- this.renderer.setStyle(this.header.nativeElement, 'background-image', `url(${this.user.imageUri})`);
22130
- }
22192
+ this.user$.subscribe(user => {
22193
+ this.userId = user.id;
22194
+ this.userImageUri = this.userService.getUserImageUri(this.userId);
22195
+ this.setUserImage(this.userImageUri);
22196
+ this.showDeleteIconTrash = !!user.imageUri;
22197
+ });
22131
22198
  }
22132
22199
  setPresence(b) {
22133
22200
  this.userService.setPresence(b)
22134
22201
  .subscribe(_ => {
22135
22202
  }, Utils.throw(null, this.translate.instant('eo.state.settings.presence.error.title'), this.translate.instant('eo.state.settings.presence.error.description')));
22136
22203
  }
22204
+ closePreviewDialog() {
22205
+ this.showPreviewDialog = false;
22206
+ this.profileImageOverlay.nativeElement.focus();
22207
+ }
22208
+ deleteUserImage() {
22209
+ const uploadURI = this.userService.getUserImageUri(this.userId);
22210
+ this.userService
22211
+ .delUserImage(uploadURI).subscribe({
22212
+ next: () => {
22213
+ this.setUserImage(this.userImageUri);
22214
+ this.eventService.trigger(EnaioEvent.SYSTEM_STATUS_IMAGE_CHANGE);
22215
+ this.userAvatar.createUserBackground();
22216
+ this.showDeleteDialog = false;
22217
+ this.showDeleteIconTrash = false;
22218
+ },
22219
+ error: (err) => {
22220
+ this.notification.error('', err.error.cause.messages[0]);
22221
+ this.file = null;
22222
+ this.translate.instant('eo.upload.global.error.title'),
22223
+ this.translate.instant('eo.upload.global.error.description');
22224
+ },
22225
+ });
22226
+ }
22227
+ selectImage(event) {
22228
+ this.file = event.files[0];
22229
+ if (this.file) {
22230
+ this.fileName = this.file.name;
22231
+ switch (false) {
22232
+ case (this.file.type.includes('image/') && this.file.type.includes('jpeg') || this.file.type.includes('png')):
22233
+ this.viewMode = 'image';
22234
+ this.showErrorDialog = true;
22235
+ break;
22236
+ case (this.file.size <= this.MAX_FILE_SIZE):
22237
+ this.viewMode = 'size';
22238
+ this.showErrorDialog = true;
22239
+ break;
22240
+ default:
22241
+ this.preview = '';
22242
+ const reader = new FileReader();
22243
+ reader.onload = (e) => {
22244
+ this.preview = e.target.result;
22245
+ this.showPreviewDialog = true;
22246
+ };
22247
+ reader.readAsDataURL(this.file);
22248
+ break;
22249
+ }
22250
+ }
22251
+ }
22252
+ uploadNewUserImage() {
22253
+ this.userService
22254
+ .setUserImage(this.file).subscribe({
22255
+ next: () => {
22256
+ this.profileImageOverlay.nativeElement.focus();
22257
+ this.setUserImage(this.userImageUri);
22258
+ this.eventService.trigger(EnaioEvent.SYSTEM_STATUS_IMAGE_CHANGE);
22259
+ this.userAvatar.createUserBackground();
22260
+ this.closePreviewDialog();
22261
+ this.showDeleteIconTrash = true;
22262
+ },
22263
+ error: (err) => {
22264
+ this.notification.error('', err.error.cause.messages[0]);
22265
+ this.file = null;
22266
+ this.translate.instant('eo.upload.global.error.title'),
22267
+ this.translate.instant('eo.upload.global.error.description');
22268
+ },
22269
+ });
22270
+ }
22271
+ tabAction(input) {
22272
+ input.blur();
22273
+ this.hoverSelector = false;
22274
+ }
22275
+ mouseEnter() {
22276
+ this.hoverSelector = true;
22277
+ }
22278
+ mouseLeave() {
22279
+ this.hoverSelector = false;
22280
+ }
22281
+ trashIconClick() {
22282
+ this.showDeleteDialog = true;
22283
+ }
22284
+ setUserImage(imageUri) {
22285
+ if (imageUri) {
22286
+ const timestamp = new Date().getTime().toString();
22287
+ this.renderer.setStyle(this.headerBg.nativeElement, 'background-image', `url(${imageUri + '#' + timestamp})`);
22288
+ }
22289
+ }
22137
22290
  clearCache() {
22138
22291
  const actions = [
22139
22292
  this.cache.history && this.listSettingsService.clearSettings(),
@@ -22148,8 +22301,8 @@ class SettingsComponent extends UnsubscribeOnDestroy {
22148
22301
  SettingsComponent.decorators = [
22149
22302
  { type: Component, args: [{
22150
22303
  selector: 'eo-settings',
22151
- template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #header class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <eo-user-avatar class=\"userImage\"></eo-user-avatar>\n\n </div>\n\n <div class=\"body\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.state.settings.deputies.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section *ngIf=\"!isCloud && !isSSO || !isCloud && isSSO\" class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.onTabClose()\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\n [ngClass]=\"{active: translate.currentLang === locale.iso}\"\n *ngFor=\"let locale of clientLocales\">{{locale.label}}\n </button>\n </div>\n </div>\n\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\n [ngClass]=\"{active: activeSchema === locale.code}\"\n *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.cache</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"clearCache()\">eo.state.settings.cache.clear</button>\n <div class=\"cache\">\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.state.settings.config.cache.system' | translate\">\n <eo-checkbox [(ngModel)]=\"cache.system\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.state.settings.config.cache.history' | translate\">\n <eo-checkbox [(ngModel)]=\"cache.history\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.state.settings.config.cache.layout' | translate\">\n <eo-checkbox [(ngModel)]=\"cache.layout\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\n </eo-form-input>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n",
22152
- styles: [":host{bottom:0;justify-content:center;left:0;position:absolute;right:0;top:0}:host,:host .cache{display:flex;flex-flow:row}:host .cache{margin:0 var(--app-pane-padding)}.eo-settings{background:var(--color-white);box-shadow:0 2px 5px 0 rgba(0,0,0,.2);box-sizing:border-box;display:flex;flex-flow:column;margin:var(--app-pane-padding);width:800px}@media (max-width:832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{flex:1 1;max-height:300px;min-height:200px;position:relative}@media (max-width:480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em;margin:0;padding:0}.eo-settings .header .meta{margin:calc(var(--app-pane-padding)/2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding)*2)}.eo-settings .header .bg{background-position:50%;background-size:cover;bottom:0;filter:grayscale(1);left:0;position:absolute;right:0;top:0}.eo-settings .header .fill{background:rgba(var(--color-primary-rgb),.85);bottom:0;color:var(--color-white);left:0;padding:var(--app-pane-padding);position:absolute;right:0;top:0}.eo-settings .header .userImage{background-position:50%;background-size:cover;border:4px solid var(--color-white);bottom:calc(var(--app-pane-padding)*-1);box-shadow:0 2px 5px 0 rgba(var(--color-black-rgb),.26);height:150px;position:absolute;right:var(--app-pane-padding);width:150px;z-index:1}@media (max-width:480px){.eo-settings .header .userImage{height:105px;width:105px}}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{bottom:0;box-sizing:border-box;left:0;overflow-y:auto;padding:var(--app-pane-padding);position:absolute;right:0;top:0}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding)/4)}.eo-settings .body .section.section-deputies form .actions button{border-radius:2px;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}.eo-settings .body .section.section-deputies form.dirty{background-color:rgba(var(--color-black-rgb),.06);padding:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{align-items:center;display:flex;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{border:0;border-radius:4px;color:var(--color-white);height:calc(var(--app-pane-padding)*0.6);width:calc(var(--app-pane-padding)*0.75)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;min-height:27px;padding:0 0 2px 2px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{border-color:transparent;opacity:1}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{color:var(--text-color-caption);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);margin:0;padding:0 0 0 150px}@media (max-width:480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{height:0;opacity:0;overflow:hidden;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{height:100%;opacity:1}@media (max-width:480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{color:var(--text-color-caption);flex:0 0 150px}@media (max-width:480px){.eo-settings .body .section .entry .label{flex:0 0 auto;margin-bottom:calc(var(--app-pane-padding)/2)}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{cursor:pointer;margin:0 4px 4px 0}.eo-settings .body .section .entry .values button.active,.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{align-items:center;display:flex}.eo-settings .body .section .entry .use-agent .use-agent-label{color:var(--text-color-caption);margin:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:var(--text-color-caption);margin:0;padding:3px}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{align-items:flex-start;display:flex;flex-flow:column}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding)/2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{color:var(--text-color-hint);height:18px;width:18px}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section .values.roles .role>div .description{color:var(--text-color-caption);font-size:var(--font-caption)}.eo-settings .body .toggle-btn{-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);border-radius:2px;color:var(--text-color-caption);cursor:pointer;display:inline-block;margin-right:3px;padding:2px 5px;text-decoration:none}.eo-settings.rtl .header .userImage{left:var(--app-pane-padding);right:auto}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}"]
22304
+ template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n autofocus translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img [src]=\"preview\">\n </div>\n <div class=\"user-avatar\">\n <img [src]=\"preview\">\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.state.settings.deputies.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section *ngIf=\"!isCloud && !isSSO || !isCloud && isSSO\" class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.onTabClose()\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\n [ngClass]=\"{active: translate.currentLang === locale.iso}\"\n *ngFor=\"let locale of clientLocales\">{{locale.label}}\n </button>\n </div>\n </div>\n\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\n [ngClass]=\"{active: activeSchema === locale.code}\"\n *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.cache</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"clearCache()\">eo.state.settings.cache.clear</button>\n <div class=\"cache\">\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.state.settings.config.cache.system' | translate\">\n <eo-checkbox [(ngModel)]=\"cache.system\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.state.settings.config.cache.history' | translate\">\n <eo-checkbox [(ngModel)]=\"cache.history\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.state.settings.config.cache.layout' | translate\">\n <eo-checkbox [(ngModel)]=\"cache.layout\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\n </eo-form-input>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.delete.dialog.ok</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\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</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n",
22305
+ styles: [":host{bottom:0;justify-content:center;left:0;position:absolute;right:0;top:0}:host,:host .cache{display:flex;flex-flow:row}:host .cache{margin:0 var(--app-pane-padding)}.eo-settings{background:var(--color-white);box-shadow:0 2px 5px 0 rgba(0,0,0,.2);box-sizing:border-box;display:flex;flex-flow:column;margin:var(--app-pane-padding);width:800px}@media (max-width:832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{flex:1 1;max-height:300px;min-height:200px;position:relative}@media (max-width:480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em;margin:0;padding:0}.eo-settings .header .meta{margin:calc(var(--app-pane-padding)/2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding)*2)}.eo-settings .header .bg{background-position:50%;background-size:cover;bottom:0;filter:grayscale(1);left:0;position:absolute;right:0;top:0}.eo-settings .header .fill{background:rgba(var(--color-primary-rgb),.85);bottom:0;color:var(--color-white);left:0;padding:var(--app-pane-padding);position:absolute;right:0;top:0}.eo-settings .header .userImage{background-position:50%;background-size:cover;border:4px solid var(--color-white);bottom:calc(var(--app-pane-padding)*-1);box-shadow:0 2px 5px 0 rgba(var(--color-black-rgb),.26);height:150px;position:absolute;right:var(--app-pane-padding);width:150px;z-index:1}@media (max-width:480px){.eo-settings .header .userImage{height:105px;width:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{border:4px solid var(--color-white);bottom:calc(var(--app-pane-padding)*-1);box-shadow:0 2px 5px 0 rgba(var(--color-black-rgb),.26);height:150px;position:absolute;right:var(--app-pane-padding);width:150px;z-index:1}@media (max-width:480px){.eo-settings .header .overlay{height:105px;width:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus,.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:1}.eo-settings .header .overlay .updateMessage{align-items:center;background-clip:border-box;background-color:rgba(192,188,188,.9450980392156862);box-sizing:border-box;display:flex;height:100%;justify-content:center;width:100%}.eo-settings .header .overlay .updateMessage eo-icon{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;color:var(--color-white);height:48px;opacity:.5;transition:all var(--app-default-transition-duration) ease-in-out;width:48px}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{bottom:0;box-sizing:border-box;left:0;overflow-y:auto;padding:var(--app-pane-padding);position:absolute;right:0;top:0}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding)/4)}.eo-settings .body .section.section-deputies form .actions button{border-radius:2px;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}.eo-settings .body .section.section-deputies form.dirty{background-color:rgba(var(--color-black-rgb),.06);padding:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{align-items:center;display:flex;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{border:0;border-radius:4px;color:var(--color-white);height:calc(var(--app-pane-padding)*0.6);width:calc(var(--app-pane-padding)*0.75)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;min-height:27px;padding:0 0 2px 2px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{border-color:transparent;opacity:1}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{color:var(--text-color-caption);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);margin:0;padding:0 0 0 150px}@media (max-width:480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{height:0;opacity:0;overflow:hidden;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{height:100%;opacity:1}@media (max-width:480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{color:var(--text-color-caption);flex:0 0 150px}@media (max-width:480px){.eo-settings .body .section .entry .label{flex:0 0 auto;margin-bottom:calc(var(--app-pane-padding)/2)}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{cursor:pointer;margin:0 4px 4px 0}.eo-settings .body .section .entry .values button.active,.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{align-items:center;display:flex}.eo-settings .body .section .entry .use-agent .use-agent-label{color:var(--text-color-caption);margin:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:var(--text-color-caption);margin:0;padding:3px}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{align-items:flex-start;display:flex;flex-flow:column}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding)/2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{color:var(--text-color-hint);height:18px;width:18px}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section .values.roles .role>div .description{color:var(--text-color-caption);font-size:var(--font-caption)}.eo-settings .body .toggle-btn{-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);border-radius:2px;color:var(--text-color-caption);cursor:pointer;display:inline-block;margin-right:3px;padding:2px 5px;text-decoration:none}.eo-settings.rtl .header .userImage{left:var(--app-pane-padding);right:auto}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{height:100%;width:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media (max-width:480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{align-items:center;display:flex;height:100%;justify-content:space-around;margin:5px 60px 0;width:100%}::ng-deep .view .contain .attachments .atta{display:block;padding:0;position:relative}::ng-deep .view .contain .attachments .atta img{border:2px solid #5c5959;box-sizing:border-box;max-height:200px;max-width:200px;min-height:80px;min-width:80px}::ng-deep .view .contain .attachments .user-avatar{align-items:center;display:flex;margin-right:109px}::ng-deep .view .contain .attachments .user-avatar img{background-size:cover;border:2px solid #5c5959;border-radius:50%;box-sizing:border-box;height:90px;width:90px}::ng-deep .view .button-block{display:flex;justify-content:right;margin:8px}::ng-deep .delete__dialog{min-height:unset!important;padding:8px}::ng-deep .delete__dialog--header{background:#fff!important;color:rgba(var(--color-black-rgb),.54)!important;font-size:1.17em!important;font-weight:400!important;margin:0;padding:0 0 1em!important}"]
22153
22306
  },] }
22154
22307
  ];
22155
22308
  SettingsComponent.ctorParameters = () => [
@@ -22158,6 +22311,7 @@ SettingsComponent.ctorParameters = () => [
22158
22311
  { type: Config },
22159
22312
  { type: NotificationsService },
22160
22313
  { type: SystemService },
22314
+ { type: EventService },
22161
22315
  { type: CapabilitiesService },
22162
22316
  { type: EnvironmentService },
22163
22317
  { type: PageTitleService },
@@ -22166,10 +22320,15 @@ SettingsComponent.ctorParameters = () => [
22166
22320
  { type: AppCacheService },
22167
22321
  { type: ListSettingsService },
22168
22322
  { type: LocalStorageService },
22169
- { type: TranslateService }
22323
+ { type: TranslateService },
22324
+ { type: NotificationsService }
22170
22325
  ];
22171
22326
  SettingsComponent.propDecorators = {
22172
- header: [{ type: ViewChild, args: ['header',] }],
22327
+ files: [{ type: ViewChild, args: ['files',] }],
22328
+ headerBg: [{ type: ViewChild, args: ['headerBg',] }],
22329
+ userAvatar: [{ type: ViewChild, args: ['userAvatar',] }],
22330
+ confirmDeleteBtn: [{ type: ViewChild, args: ['confirmDeleteBtn',] }],
22331
+ profileImageOverlay: [{ type: ViewChild, args: ['profileImageOverlay',] }],
22173
22332
  deputiesForm: [{ type: ViewChild, args: [NgForm,] }]
22174
22333
  };
22175
22334
 
@@ -22457,10 +22616,10 @@ class AboutStateComponent {
22457
22616
  this.http = http;
22458
22617
  this.userService = userService;
22459
22618
  this.config = config;
22460
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/common", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/core", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/forms", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/router", "version": "11.2.0", "license": "MIT" }, { "name": "@eo-sdk/core", "version": "9.0.0-rc.4", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "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": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "7.0.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
22619
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/common", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/core", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/forms", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/router", "version": "11.2.0", "license": "MIT" }, { "name": "@eo-sdk/core", "version": "9.0.0-rc.6", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "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": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "7.0.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
22461
22620
  this.ctrl = {
22462
22621
  productName: 'yuuvis® RAD client',
22463
- clientVersion: '9.0.0-rc.4'
22622
+ clientVersion: '9.0.0-rc.6'
22464
22623
  };
22465
22624
  this.licenses = {
22466
22625
  'MIT': {
@@ -24316,5 +24475,5 @@ EoClientModule.ctorParameters = () => [
24316
24475
  * Generated bundle index. Do not edit.
24317
24476
  */
24318
24477
 
24319
- export { ACTIONS, AboutStateComponent, AbstractFilterComponent, AccordionModule, ActionMenuComponent, ActionModule, ActionService, ActionTarget, AgentService, AppAddComponent, AppAddDialogComponent, AppBarComponent, AppLayoutComponent, AppSearchComponent, AppSearchService, AreaState, AuthGuard, CUSTOM_ACTIONS, CapabilitiesGuard, CellRenderer, ChangePasswordFormComponent, CheckboxComponent, ClipboardComponent, CodesystemComponent, CodesystemFilterComponent, ColumnConfiguratorComponent, ContentPreviewService, ContextSearchComponent, ContextType, CtaComponent, CtaModule, CustomFilterComponent, CustomSortComponent, DashboardComponent, DatepickerComponent, DatetimeComponent, DatetimeFilterComponent, DatetimeRangeComponent, DmsObjectTarget, DynamicListComponent, DynamicPropertySwitchComponent, ENTRY_COMPONENTS, ENTRY_LINKS, EmptyComponent, EmptyStateService, EnaioErrorKeys, EoAppShellModule, EoClientModule, EoDialogComponent, EoFrameworkCoreModule, EoFrameworkModule, EoIconComponent, Error404Component, ErrorHandlerService, ErrorMessageComponent, ErrorModule, FavoriteIconComponent, FavoriteStateComponent, FileSizePipe, FormElementComponent, FormElementTableComponent, FormElementsModule, FormInputComponent, FrameComponent, GlobalShortcutsComponent, GlobalShortcutsSectionComponent, GridComponent, GridFilter, GridModule, GridService, HistoryFilterComponent, HistoryFilterPipe, IdReferenceComponent, InboxDetailsComponent, InboxItemTarget, InboxStateComponent, InboxStateModule, InboxTypes, InboxTypesFilter, IndexdataSummaryComponent, InputFocusDirective, KeysPipe, LayoutService, ListContainerComponent, ListContainerModule, ListSettingsService, LoadingSpinnerComponent, LocaleCurrencyPipe, LocaleDatePipe, LocaleDecimalPipe, LocaleNumberPipe, LocalePercentPipe, LocationService, LockSettings, LoginComponent, MediaComponent, MediaModule, NotFoundComponent, NotificationsStateComponent, NumberComponent, NumberRangeComponent, ObjectDetailsComponent, ObjectDetailsModule, ObjectFormComponent, ObjectFormControl, ObjectFormControlWrapper, ObjectFormEditComponent, ObjectFormGroup, ObjectFormGroupComponent, ObjectFormHelperService, ObjectFormModule, ObjectFormScriptService, ObjectFormScriptingScope, ObjectHistoryComponent, ObjectLinksComponent, ObjectStateComponent, ObjectStateDetailsComponent, ObjectStateModule, ObjectStateService, OrganizationComponent, OrganizationFilterComponent, OutsideClickDirective, OverlayComponent, PageTitleService, PanelLoading, PasswordComponent, PendingChangesService, PermissionsComponent, PluginComponent, PluginDirective, PluginService, PluginsModule, PluginsService, PrepareDetailsComponent, PrepareStateComponent, PrepareStateModule, PreparedItemTarget, ProcessDetailsComponent, ProcessFileComponent, ProcessHistoryComponent, ProcessItemTarget, QuickFilterComponent, QuickSearchComponent, QuickSearchModule, ReferenceComponent, ReferenceService, ResetFilterComponent, ResultListComponent, ResultListModule, ResultStateComponent, RouterLinkDirective, RowEditComponent, RtlAwareDirective, STATE, SafeHtmlPipe, SelectionRange, SelectionService, SetFilterComponent, SettingsComponent, SettingsModule, Shortcut, ShortcutsDirective, ShortcutsModule, ShortcutsService, SideBarComponent, SidebarPluginComponent, SimpleAccordionComponent, SplitAreaComponent, SplitComponent, SplitGutterDirective, SplitModule, StoredQueriesStateComponent, StoredQueryComponent, StoredQueryDetailsComponent, StoredQueryModule, StoredQueryTarget, StringComponent, TabContainerComponent, TabContainerModule, TabPanelComponent, TabPluginComponent, TabViewComponent, TabViewNavComponent, TextFilterComponent, TotalCountComponent, TreeComponent, TreeModule, TypeFilter, UNDOCK_WINDOW_NAME, UiModule, UndockSplitComponent, UndockSplitService, UnsubscribeOnDestroy, UploadOverlayComponent, UserAvatarComponent, UtilModule, UtilitiesService, VersionStateComponent, WorkItemTarget, agentConfigKeys, entryComponents, listAnimation, panelLoadingAnimations, ɵ0, ɵ1, PendingChangesGuard as ɵa, UploadOverlayGuard as ɵb, DownloadOriginalActionComponent as ɵba, DownloadPdfActionComponent as ɵbb, OpenDocumentActionComponent as ɵbc, EmailActionComponent as ɵbd, EmailLinkActionComponent as ɵbe, EmailOriginalActionComponent as ɵbf, EmailPdfActionComponent as ɵbg, ClipboardActionComponent as ɵbh, ClipboardLinkActionComponent as ɵbi, ClipboardOriginalActionComponent as ɵbj, ClipboardPdfActionComponent as ɵbk, FavoriteActionComponent as ɵbl, DeleteActionComponent as ɵbm, DeleteComponent as ɵbn, OpenVersionsActionComponent as ɵbo, RestoreVersionActionComponent as ɵbp, DeletePreparedActionComponent as ɵbq, AddSubscriptionActionComponent as ɵbr, AddSubscriptionComponent as ɵbs, RemoveSubscriptionActionComponent as ɵbt, WorkflowActionComponent as ɵbu, WorkflowComponent as ɵbv, CustomActionsComponent as ɵbw, AddResubmissionActionComponent as ɵbx, AddResubmissionComponent as ɵby, UpdateResubmissionActionComponent as ɵbz, AppShellRoutingModule as ɵc, ShareObjectActionComponent as ɵca, ShareObjectComponent as ɵcb, CutActionComponent as ɵcc, FinalizeActionComponent as ɵcd, DefinalizeActionComponent as ɵce, DeleteContentActionComponent as ɵcf, UnlockActionComponent as ɵcg, SimpleWorkflowActionComponent as ɵch, PreventDoubleClickDirective as ɵci, TrapFocusDirective as ɵcj, EditIconComponent as ɵck, DuetimeInfoComponent as ɵcl, PrepareContentExistsInfoComponent as ɵcm, StoredQueryModule as ɵcn, ObjectStateRoutingModule as ɵco, InboxStateRoutingModule as ɵcp, PrepareStateRoutingModule as ɵcq, EoClientRoutingModule as ɵcr, ProcessStateComponent as ɵcs, AppProcessComponent as ɵd, PipesModule as ɵe, UnsubscribeOnDestroy as ɵf, QueryScopeSelectComponent as ɵg, IndexdataSummaryEntryComponent as ɵh, OrderByPipe as ɵi, TreeNodeComponent as ɵj, DatepickerService as ɵk, YearRangeDirective as ɵl, ReferenceFinderComponent as ɵm, fadeInOut as ɵn, ReferenceFinderService as ɵo, ReferenceFinderEntryComponent as ɵp, DynamicListFilterComponent as ɵq, ListFilterComponent as ɵr, PaginationComponent as ɵs, ProcessFormModule as ɵt, ProcessFormComponent as ɵu, ActionComponentAnchorDirective as ɵv, OpenDocumentComponent as ɵw, CopyActionComponent as ɵx, OpenContextActionComponent as ɵy, DownloadActionComponent as ɵz };
24478
+ export { ACTIONS, AboutStateComponent, AbstractFilterComponent, AccordionModule, ActionMenuComponent, ActionModule, ActionService, ActionTarget, AgentService, AppAddComponent, AppAddDialogComponent, AppBarComponent, AppLayoutComponent, AppSearchComponent, AppSearchService, AreaState, AuthGuard, CUSTOM_ACTIONS, CapabilitiesGuard, CellRenderer, ChangePasswordFormComponent, CheckboxComponent, ClipboardComponent, CodesystemComponent, CodesystemFilterComponent, ColumnConfiguratorComponent, ContentPreviewService, ContextSearchComponent, ContextType, CtaComponent, CtaModule, CustomFilterComponent, CustomSortComponent, DashboardComponent, DatepickerComponent, DatetimeComponent, DatetimeFilterComponent, DatetimeRangeComponent, DmsObjectTarget, DynamicListComponent, DynamicPropertySwitchComponent, ENTRY_COMPONENTS, ENTRY_LINKS, EmptyComponent, EmptyStateService, EnaioErrorKeys, EoAppShellModule, EoClientModule, EoDialogComponent, EoFrameworkCoreModule, EoFrameworkModule, EoIconComponent, Error404Component, ErrorHandlerService, ErrorMessageComponent, ErrorModule, FavoriteIconComponent, FavoriteStateComponent, FileSizePipe, FormElementComponent, FormElementTableComponent, FormElementsModule, FormInputComponent, FrameComponent, GlobalShortcutsComponent, GlobalShortcutsSectionComponent, GridComponent, GridFilter, GridModule, GridService, HistoryFilterComponent, HistoryFilterPipe, IdReferenceComponent, InboxDetailsComponent, InboxItemTarget, InboxStateComponent, InboxStateModule, InboxTypes, InboxTypesFilter, IndexdataSummaryComponent, InputFocusDirective, KeysPipe, LayoutService, ListContainerComponent, ListContainerModule, ListSettingsService, LoadingSpinnerComponent, LocaleCurrencyPipe, LocaleDatePipe, LocaleDecimalPipe, LocaleNumberPipe, LocalePercentPipe, LocationService, LockSettings, LoginComponent, MediaComponent, MediaModule, NotFoundComponent, NotificationsStateComponent, NumberComponent, NumberRangeComponent, ObjectDetailsComponent, ObjectDetailsModule, ObjectFormComponent, ObjectFormControl, ObjectFormControlWrapper, ObjectFormEditComponent, ObjectFormGroup, ObjectFormGroupComponent, ObjectFormHelperService, ObjectFormModule, ObjectFormScriptService, ObjectFormScriptingScope, ObjectHistoryComponent, ObjectLinksComponent, ObjectStateComponent, ObjectStateDetailsComponent, ObjectStateModule, ObjectStateService, OrganizationComponent, OrganizationFilterComponent, OutsideClickDirective, OverlayComponent, PageTitleService, PanelLoading, PasswordComponent, PendingChangesService, PermissionsComponent, PluginComponent, PluginDirective, PluginService, PluginsModule, PluginsService, PrepareDetailsComponent, PrepareStateComponent, PrepareStateModule, PreparedItemTarget, ProcessDetailsComponent, ProcessFileComponent, ProcessHistoryComponent, ProcessItemTarget, QuickFilterComponent, QuickSearchComponent, QuickSearchModule, ReferenceComponent, ReferenceService, ResetFilterComponent, ResultListComponent, ResultListModule, ResultStateComponent, RouterLinkDirective, RowEditComponent, RtlAwareDirective, STATE, SafeHtmlPipe, SelectionRange, SelectionService, SetFilterComponent, SettingsComponent, SettingsModule, Shortcut, ShortcutsDirective, ShortcutsModule, ShortcutsService, SideBarComponent, SidebarPluginComponent, SimpleAccordionComponent, SplitAreaComponent, SplitComponent, SplitGutterDirective, SplitModule, StoredQueriesStateComponent, StoredQueryComponent, StoredQueryDetailsComponent, StoredQueryModule, StoredQueryTarget, StringComponent, TabContainerComponent, TabContainerModule, TabPanelComponent, TabPluginComponent, TabViewComponent, TabViewNavComponent, TextFilterComponent, TotalCountComponent, TreeComponent, TreeModule, TypeFilter, UNDOCK_WINDOW_NAME, UiModule, UndockSplitComponent, UndockSplitService, UnsubscribeOnDestroy, UploadOverlayComponent, UserAvatarComponent, UtilModule, UtilitiesService, VersionStateComponent, WorkItemTarget, agentConfigKeys, entryComponents, listAnimation, panelLoadingAnimations, ɵ0, ɵ1, PendingChangesGuard as ɵa, UploadOverlayGuard as ɵb, DownloadOriginalActionComponent as ɵba, DownloadPdfActionComponent as ɵbb, OpenDocumentActionComponent as ɵbc, EmailActionComponent as ɵbd, EmailLinkActionComponent as ɵbe, EmailOriginalActionComponent as ɵbf, EmailPdfActionComponent as ɵbg, ClipboardActionComponent as ɵbh, ClipboardLinkActionComponent as ɵbi, ClipboardOriginalActionComponent as ɵbj, ClipboardPdfActionComponent as ɵbk, FavoriteActionComponent as ɵbl, DeleteActionComponent as ɵbm, DeleteComponent as ɵbn, OpenVersionsActionComponent as ɵbo, RestoreVersionActionComponent as ɵbp, DeletePreparedActionComponent as ɵbq, AddSubscriptionActionComponent as ɵbr, AddSubscriptionComponent as ɵbs, RemoveSubscriptionActionComponent as ɵbt, WorkflowActionComponent as ɵbu, WorkflowComponent as ɵbv, CustomActionsComponent as ɵbw, AddResubmissionActionComponent as ɵbx, AddResubmissionComponent as ɵby, UpdateResubmissionActionComponent as ɵbz, AppShellRoutingModule as ɵc, ShareObjectActionComponent as ɵca, ShareObjectComponent as ɵcb, CutActionComponent as ɵcc, FinalizeActionComponent as ɵcd, DefinalizeActionComponent as ɵce, DeleteContentActionComponent as ɵcf, UnlockActionComponent as ɵcg, SimpleWorkflowActionComponent as ɵch, PreventDoubleClickDirective as ɵci, UserAvatarComponent as ɵcj, TrapFocusDirective as ɵck, EditIconComponent as ɵcl, DuetimeInfoComponent as ɵcm, PrepareContentExistsInfoComponent as ɵcn, StoredQueryModule as ɵco, ObjectStateRoutingModule as ɵcp, InboxStateRoutingModule as ɵcq, PrepareStateRoutingModule as ɵcr, EoClientRoutingModule as ɵcs, ProcessStateComponent as ɵct, AppProcessComponent as ɵd, PipesModule as ɵe, UnsubscribeOnDestroy as ɵf, QueryScopeSelectComponent as ɵg, IndexdataSummaryEntryComponent as ɵh, OrderByPipe as ɵi, TreeNodeComponent as ɵj, DatepickerService as ɵk, YearRangeDirective as ɵl, ReferenceFinderComponent as ɵm, fadeInOut as ɵn, ReferenceFinderService as ɵo, ReferenceFinderEntryComponent as ɵp, DynamicListFilterComponent as ɵq, ListFilterComponent as ɵr, PaginationComponent as ɵs, ProcessFormModule as ɵt, ProcessFormComponent as ɵu, ActionComponentAnchorDirective as ɵv, OpenDocumentComponent as ɵw, CopyActionComponent as ɵx, OpenContextActionComponent as ɵy, DownloadActionComponent as ɵz };
24320
24479
  //# sourceMappingURL=eo-sdk-client.js.map