@eo-sdk/client 9.1.0-rc.1 → 9.2.0-rc.1

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 (66) hide show
  1. package/app/eo-client/inbox-state/inbox-state/inbox.types.enum.d.ts +2 -2
  2. package/app/eo-framework/actions/action-menu/action-menu.component.d.ts +4 -2
  3. package/app/eo-framework/actions/action.module.d.ts +2 -1
  4. package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts +2 -1
  5. package/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.d.ts +2 -1
  6. package/app/eo-framework/actions/actions/delete-action/delete/delete.component.d.ts +4 -2
  7. package/app/eo-framework/actions/actions/finalize/finalize-action.d.ts +5 -5
  8. package/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.d.ts +14 -0
  9. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts +5 -2
  10. package/app/eo-framework/form-elements/organization/organization.component.d.ts +3 -2
  11. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +0 -1
  12. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts +8 -4
  13. package/app/eo-framework/util/directive/prevent-double-click.directive.d.ts +1 -0
  14. package/assets/_default/i18n/de.json +11 -6
  15. package/assets/_default/i18n/en.json +11 -5
  16. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +547 -515
  17. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  18. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -3
  19. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  20. package/bundles/eo-sdk-client.umd.js +326 -214
  21. package/bundles/eo-sdk-client.umd.js.map +1 -1
  22. package/bundles/eo-sdk-client.umd.min.js +1 -1
  23. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  24. package/eo-sdk-client.d.ts +60 -60
  25. package/eo-sdk-client.metadata.json +1 -1
  26. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  27. package/esm2015/app/eo-client/dashboard/dashboard.component.js +2 -4
  28. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +9 -7
  29. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox.types.enum.js +3 -3
  30. package/esm2015/app/eo-client/object-state/object-state/object-state.component.js +2 -2
  31. package/esm2015/app/eo-framework/actions/action-menu/action-menu.component.js +14 -5
  32. package/esm2015/app/eo-framework/actions/action.module.js +4 -1
  33. package/esm2015/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.js +7 -3
  34. package/esm2015/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.js +8 -4
  35. package/esm2015/app/eo-framework/actions/actions/delete-action/delete/delete.component.js +11 -4
  36. package/esm2015/app/eo-framework/actions/actions/finalize/finalize-action.js +12 -11
  37. package/esm2015/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.js +39 -0
  38. package/esm2015/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.js +43 -16
  39. package/esm2015/app/eo-framework/app-shell/app-shell.module.js +1 -3
  40. package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +5 -2
  41. package/esm2015/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.js +2 -4
  42. package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +30 -17
  43. package/esm2015/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.js +2 -2
  44. package/esm2015/app/eo-framework/grid/filters/codesystem-filter.component.js +2 -2
  45. package/esm2015/app/eo-framework/grid/filters/dynamic-list-filter.component.js +1 -2
  46. package/esm2015/app/eo-framework/grid/filters/list-filter.component.js +2 -3
  47. package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +3 -3
  48. package/esm2015/app/eo-framework/result-list/result-list.module.js +2 -2
  49. package/esm2015/app/eo-framework/ui/ui.module.js +6 -3
  50. package/esm2015/app/eo-framework/util/directive/prevent-double-click.directive.js +8 -2
  51. package/esm2015/eo-sdk-client.js +61 -61
  52. package/esm2015/projects/eo-sdk/core/lib/model/inbox-item.model.js +2 -2
  53. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +35 -9
  54. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +10 -11
  55. package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +11 -1
  56. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +54 -19
  57. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  58. package/fesm2015/eo-sdk-client.js +257 -150
  59. package/fesm2015/eo-sdk-client.js.map +1 -1
  60. package/package.json +2 -2
  61. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  62. package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts +2 -2
  63. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +1 -0
  64. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +3 -2
  65. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +5 -0
  66. package/projects/eo-sdk/core/package.json +1 -1
@@ -24,6 +24,7 @@ import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-mod
24
24
  import { CsvExportModule } from '@ag-grid-community/csv-export';
25
25
  import { __decorate } from 'tslib';
26
26
  import { transferArrayItem, DragDropModule } from '@angular/cdk/drag-drop';
27
+ import { TranslateService as TranslateService$1 } from '@ngx-translate/core';
27
28
 
28
29
  /**
29
30
  * AppSearchService is the apps main entry point for searching (used by the appBarSearch component).
@@ -3855,6 +3856,73 @@ QueryScopeSelectComponent.propDecorators = {
3855
3856
  select: [{ type: Output }]
3856
3857
  };
3857
3858
 
3859
+ /**
3860
+ * This directive traps the focus inside the element it is applied to.
3861
+ * When applied, a users can't "tab out" of the element.
3862
+ * You need at least two focusable children in the element for it to work properly.
3863
+ * See the querySelector in the trapFocus method to know which elements count as focusable.
3864
+ * Additionally you can add the attribute "focusable" to an element if you are unsure.
3865
+ */
3866
+ class TrapFocusDirective {
3867
+ constructor(el) {
3868
+ this.el = el;
3869
+ this.focusableSelectors = 'a[href], button, textarea, input[type="text"],' +
3870
+ 'input[type="radio"], input[type="checkbox"], select, [focusable]';
3871
+ }
3872
+ ngAfterViewInit() {
3873
+ this.trapFocus(this.el.nativeElement);
3874
+ }
3875
+ trapFocus(element) {
3876
+ let focusableElements = element.querySelectorAll(this.focusableSelectors);
3877
+ focusableElements = Array.from(focusableElements)
3878
+ .filter((el) => !el.disabled && !el.classList.contains('disabled'));
3879
+ const firstFocusableElement = focusableElements[0];
3880
+ const lastFocusableElement = focusableElements[focusableElements.length - 1];
3881
+ element.addEventListener('keydown', ((event) => {
3882
+ const isTabPressed = event.keyCode === 9; // tab key code
3883
+ if (!isTabPressed)
3884
+ return;
3885
+ if (event.shiftKey) /* shift + tab */ {
3886
+ if (document.activeElement === firstFocusableElement) {
3887
+ lastFocusableElement.focus();
3888
+ event.preventDefault();
3889
+ }
3890
+ }
3891
+ else /* tab */ {
3892
+ if (document.activeElement === lastFocusableElement) {
3893
+ firstFocusableElement.focus();
3894
+ event.preventDefault();
3895
+ }
3896
+ }
3897
+ }));
3898
+ }
3899
+ isArrowUpOrDownPressed(event) {
3900
+ const key = event.key;
3901
+ if (key === 'ArrowUp' || key === 'ArrowDown') {
3902
+ event.preventDefault();
3903
+ let focusableElements = this.el.nativeElement.parentElement.querySelectorAll(this.focusableSelectors);
3904
+ const currentIndex = Array.from(focusableElements).indexOf(document.activeElement);
3905
+ if (key === 'ArrowDown' && currentIndex < focusableElements.length - 1) {
3906
+ focusableElements[currentIndex + 1].focus();
3907
+ }
3908
+ else if (key === 'ArrowUp' && currentIndex > 0) {
3909
+ focusableElements[currentIndex - 1].focus();
3910
+ }
3911
+ }
3912
+ }
3913
+ }
3914
+ TrapFocusDirective.decorators = [
3915
+ { type: Directive, args: [{
3916
+ selector: '[eoTrapFocus]'
3917
+ },] }
3918
+ ];
3919
+ TrapFocusDirective.ctorParameters = () => [
3920
+ { type: ElementRef }
3921
+ ];
3922
+ TrapFocusDirective.propDecorators = {
3923
+ isArrowUpOrDownPressed: [{ type: HostListener, args: ['keydown', ['$event'],] }]
3924
+ };
3925
+
3858
3926
  /**
3859
3927
  * Shared module for all ui components that are used across the whole app
3860
3928
  * and in other components.
@@ -3893,7 +3961,8 @@ UiModule.decorators = [
3893
3961
  OverlayComponent,
3894
3962
  ErrorMessageComponent,
3895
3963
  EoDialogComponent,
3896
- QueryScopeSelectComponent
3964
+ QueryScopeSelectComponent,
3965
+ TrapFocusDirective,
3897
3966
  ],
3898
3967
  declarations: [
3899
3968
  EoIconComponent,
@@ -3908,7 +3977,8 @@ UiModule.decorators = [
3908
3977
  ErrorMessageComponent,
3909
3978
  EoDialogComponent,
3910
3979
  IndexdataSummaryEntryComponent,
3911
- QueryScopeSelectComponent
3980
+ QueryScopeSelectComponent,
3981
+ TrapFocusDirective
3912
3982
  ]
3913
3983
  },] }
3914
3984
  ];
@@ -7833,6 +7903,9 @@ class OrganizationComponent {
7833
7903
  this.innerValue = Array.isArray(dM) ? dM : [dM];
7834
7904
  }
7835
7905
  }
7906
+ ngAfterViewInit() {
7907
+ this.autoCompleteInput.focusInput();
7908
+ }
7836
7909
  validate() {
7837
7910
  return null;
7838
7911
  }
@@ -7957,7 +8030,7 @@ OrganizationComponent.decorators = [
7957
8030
  multi: true
7958
8031
  }
7959
8032
  ],
7960
- styles: [".eo-organization .ui-autocomplete-token-label{display:inline-block}.eo-organization .fa.fa-user,.eo-organization .fa.fa-users{margin:0 4px;text-align:center;width:18px}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .ui-autocomplete-token{border:none!important;margin:0!important;padding:0!important}:host ::ng-deep .ui-autocomplete-token .token{align-items:center;border:1px solid rgba(0,0,0,.1);display:flex;overflow:hidden;padding:2px}:host ::ng-deep .ui-autocomplete-token-icon{opacity:1}[dir=ltr] :host ::ng-deep .ui-autocomplete-token-icon{margin-right:4px}[dir=rtl] :host ::ng-deep .ui-autocomplete-token-icon{margin-left:4px}:host ::ng-deep .ui-autocomplete-token-icon.del{color:var(--color-white)!important}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .ui-autocomplete-input-token{margin:0;padding:0;width:0!important}:host ::ng-deep .eo-organization.acInputHidden .ui-autocomplete-input-token input{width:0!important}"]
8033
+ styles: [".eo-organization .ui-autocomplete-token-label{display:inline-block}.eo-organization .fa.fa-user,.eo-organization .fa.fa-users{margin:0 4px;text-align:center;width:18px}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .ui-autocomplete-token{border:none!important;margin:0!important;padding:0!important}:host ::ng-deep .ui-autocomplete-token .token{align-items:center;border:1px solid rgba(0,0,0,.1);display:flex;overflow:hidden;padding:2px}:host ::ng-deep .ui-autocomplete-token-icon{opacity:1}[dir=ltr] :host ::ng-deep .ui-autocomplete-token-icon{margin-right:4px}[dir=rtl] :host ::ng-deep .ui-autocomplete-token-icon{margin-left:4px}:host ::ng-deep .ui-autocomplete-token-icon.del{color:var(--color-white)!important}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .ui-autocomplete-input-token{margin:0;padding:0;width:0!important}:host ::ng-deep .eo-organization.acInputHidden .ui-autocomplete-input-token input{width:0!important}:host ::ng-deep .ui-autocomplete-panel{left:0!important}"]
7961
8034
  },] }
7962
8035
  ];
7963
8036
  OrganizationComponent.ctorParameters = () => [
@@ -11838,7 +11911,7 @@ class OrganizationFilterComponent extends OrganizationComponent {
11838
11911
  super(backend, translate, systemService);
11839
11912
  this.params = {};
11840
11913
  this.multiselect = true;
11841
- this.placeholder = translate.instant('eo.resultlist.grid.filterOoo');
11914
+ this.placeholder = translate.instant('eo.filter.input.placeholder');
11842
11915
  }
11843
11916
  onValueChange() {
11844
11917
  if (!this.params.filterParams || !this.params.filterParams.applyButton) {
@@ -11885,7 +11958,7 @@ OrganizationFilterComponent.decorators = [
11885
11958
  { type: Component, args: [{
11886
11959
  selector: 'eo-organization-filter',
11887
11960
  template: "<div class=\"eo-organization\" [ngClass]=\"{acInputHidden: !multiselect && innerValue.length}\">\n\n <p-autoComplete [(ngModel)]=\"innerValue\" [minLength]=\"1\" #autocomplete\n (onSelect)=\"onSelect($event)\" (onUnselect)=\"onUnselect($event)\"\n (onBlur)=\"onAutoCompleteBlur()\"\n [readonly]=\"readonly\"\n [disabled]=\"readonly\"\n [placeholder]=\"placeholder\"\n [suggestions]=\"autocompleteRes\" field=\"title\"\n (completeMethod)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <!-- template for the suggest list -->\n <ng-template let-item pTemplate=\"item\">\n <i class=\"fa {{item.type === 'group' ? 'fa-users' : 'fa-user'}}\"></i>\n <span *ngIf=\"(item.firstname?.length && item.lastname?.length) || item.type === 'group'\" class=\"ui-autocomplete-token-label\">{{item.title}} ({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.type !== 'group'\" class=\"ui-autocomplete-token-label\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\" class=\"ui-autocomplete-token-label\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\" class=\"ui-autocomplete-token-label\">{{item.firstname}} ({{item.name}})</span>\n </ng-template>\n\n <!-- template for the selected items when multiple -->\n <ng-template let-item pTemplate=\"selectedItem\">\n <div class=\"token\">\n <i class=\"fa {{item.type === 'group' ? 'fa-users' : 'fa-user'}}\" [ngClass]=\"{'deleted-user-label': !item.firstname?.length && !item.lastname?.length && !item.active && !item.type}\"></i>\n <span *ngIf=\"(item.firstname?.length && item.lastname?.length && item.active) || item.type === 'group'\" class=\"ui-autocomplete-token-label\">{{item.title}} ({{item.name}})</span>\n <span *ngIf=\"(!item.firstname?.length && !item.lastname?.length && !item.active && !item.type)\" class=\"ui-autocomplete-token-label deleted-user-label\">{{'eo.form.property.organization.error.usernotfound'|translate}}</span>\n <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.active && item.type !== 'group'\" class=\"ui-autocomplete-token-label\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\" class=\"ui-autocomplete-token-label\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\" class=\"ui-autocomplete-token-label\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n </p-autoComplete>\n</div>\n",
11888
- styles: [".eo-organization .ui-autocomplete-token-label{display:inline-block}.eo-organization .fa.fa-user,.eo-organization .fa.fa-users{margin:0 4px;text-align:center;width:18px}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .ui-autocomplete-token{border:none!important;margin:0!important;padding:0!important}:host ::ng-deep .ui-autocomplete-token .token{align-items:center;border:1px solid rgba(0,0,0,.1);display:flex;overflow:hidden;padding:2px}:host ::ng-deep .ui-autocomplete-token-icon{opacity:1}[dir=ltr] :host ::ng-deep .ui-autocomplete-token-icon{margin-right:4px}[dir=rtl] :host ::ng-deep .ui-autocomplete-token-icon{margin-left:4px}:host ::ng-deep .ui-autocomplete-token-icon.del{color:var(--color-white)!important}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .ui-autocomplete-input-token{margin:0;padding:0;width:0!important}:host ::ng-deep .eo-organization.acInputHidden .ui-autocomplete-input-token input{width:0!important}"]
11961
+ styles: [".eo-organization .ui-autocomplete-token-label{display:inline-block}.eo-organization .fa.fa-user,.eo-organization .fa.fa-users{margin:0 4px;text-align:center;width:18px}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .ui-autocomplete-token{border:none!important;margin:0!important;padding:0!important}:host ::ng-deep .ui-autocomplete-token .token{align-items:center;border:1px solid rgba(0,0,0,.1);display:flex;overflow:hidden;padding:2px}:host ::ng-deep .ui-autocomplete-token-icon{opacity:1}[dir=ltr] :host ::ng-deep .ui-autocomplete-token-icon{margin-right:4px}[dir=rtl] :host ::ng-deep .ui-autocomplete-token-icon{margin-left:4px}:host ::ng-deep .ui-autocomplete-token-icon.del{color:var(--color-white)!important}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .ui-autocomplete-input-token{margin:0;padding:0;width:0!important}:host ::ng-deep .eo-organization.acInputHidden .ui-autocomplete-input-token input{width:0!important}:host ::ng-deep .ui-autocomplete-panel{left:0!important}"]
11889
11962
  },] }
11890
11963
  ];
11891
11964
  OrganizationFilterComponent.ctorParameters = () => [
@@ -11901,7 +11974,7 @@ class CodesystemFilterComponent extends CodesystemComponent {
11901
11974
  this.params = {};
11902
11975
  this.multiselect = true;
11903
11976
  this.situation = 'SEARCH';
11904
- this.placeholder = translate.instant('eo.resultlist.grid.filterOoo');
11977
+ this.placeholder = translate.instant('eo.filter.input.placeholder');
11905
11978
  }
11906
11979
  onValueChange() {
11907
11980
  if (!this.params.filterParams || !this.params.filterParams.applyButton) {
@@ -11986,7 +12059,6 @@ class DynamicListFilterComponent extends DynamicListComponent {
11986
12059
  this.params = {};
11987
12060
  this.multiselect = true;
11988
12061
  this.situation = 'SEARCH';
11989
- // this.placeholder = translate.instant('eo.resultlist.grid.filterOoo');
11990
12062
  }
11991
12063
  onValueChange() {
11992
12064
  if (!this.params.filterParams || !this.params.filterParams.applyButton) {
@@ -12173,12 +12245,10 @@ class SetFilterComponent extends AbstractFilterComponent {
12173
12245
  this.title = '';
12174
12246
  this.searchLimit = 10;
12175
12247
  this.operator = 'OR'; // AND | OR
12176
- this.selectedAllFilters = false;
12177
12248
  this.id = '#set';
12178
12249
  }
12179
12250
  set options(opts) {
12180
12251
  this._options = this.defaultValue ? opts || [] : this.settingsService.setupSettings(this.id, opts);
12181
- this.selectedAllFilters = this.options.every(opt => opt.value);
12182
12252
  if (this.options && this.params && this.isFilterActive()) {
12183
12253
  setTimeout(() => this.params.filterChangedCallback(), 0);
12184
12254
  }
@@ -12224,7 +12294,7 @@ class SetFilterComponent extends AbstractFilterComponent {
12224
12294
  SetFilterComponent.decorators = [
12225
12295
  { type: Component, args: [{
12226
12296
  selector: 'eo-set-filter',
12227
- 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",
12297
+ 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</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",
12228
12298
  styles: [".title{font-weight:700;margin-top:.5em}.option{margin:.5em 0}label{padding:0 .5em}input{border:none}"]
12229
12299
  },] }
12230
12300
  ];
@@ -12244,7 +12314,6 @@ class ListFilterComponent extends SetFilterComponent {
12244
12314
  this.gridApi = gridApi;
12245
12315
  this.params = {};
12246
12316
  this.operator = 'OR';
12247
- // this.placeholder = translate.instant('eo.resultlist.grid.filterOoo');
12248
12317
  }
12249
12318
  onValueChange() {
12250
12319
  this.value = this.isFilterActive() ? [''].concat(this.options.filter(o => o.value).map(o => o.val)) : null;
@@ -12280,7 +12349,7 @@ class ListFilterComponent extends SetFilterComponent {
12280
12349
  ListFilterComponent.decorators = [
12281
12350
  { type: Component, args: [{
12282
12351
  selector: 'eo-list-filter',
12283
- 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",
12352
+ 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</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",
12284
12353
  styles: [".title{font-weight:700;margin-top:.5em}.option{margin:.5em 0}label{padding:0 .5em}input{border:none}"]
12285
12354
  },] }
12286
12355
  ];
@@ -12912,7 +12981,7 @@ QuickFilterComponent.decorators = [
12912
12981
  </label>
12913
12982
  <eo-form-input>
12914
12983
  <input (keyup)="eoGrid.onQuickFilterChanged($event)" class="qInput" [style.border]="'none'"
12915
- placeholder="{{'eo.resultlist.grid.filterOoo' | translate}}"/>
12984
+ placeholder="{{'eo.filter.input.placeholder' | translate}}"/>
12916
12985
  </eo-form-input>
12917
12986
  </div>
12918
12987
  `
@@ -12998,15 +13067,18 @@ CustomSortComponent.propDecorators = {
12998
13067
  };
12999
13068
 
13000
13069
  class TextFilterComponent extends AbstractFilterComponent {
13001
- constructor(settingsService, storageService) {
13070
+ constructor(settingsService, storageService, userService) {
13002
13071
  super();
13003
13072
  this.settingsService = settingsService;
13004
13073
  this.storageService = storageService;
13074
+ this.userService = userService;
13005
13075
  this.title = '';
13006
- this.placeholder = 'eo.resultlist.grid.filterOoo';
13076
+ this.placeholder = 'eo.filter.input.placeholder';
13077
+ this.enableSave = false;
13007
13078
  this.focused = false;
13008
- this.autocompleteRes = [];
13079
+ this.savedFilters = [];
13009
13080
  this.id = '#text';
13081
+ this.getSavedFilters();
13010
13082
  }
13011
13083
  set matchFields(fields) {
13012
13084
  this.valueGetter = (rowNode) => fields.map(f => Utils.getProperty(rowNode.data, f)).join('\n');
@@ -13034,14 +13106,25 @@ class TextFilterComponent extends AbstractFilterComponent {
13034
13106
  }
13035
13107
  focusout() {
13036
13108
  this.focused = false;
13037
- if (this.value && !this.autocompleteRes.includes(this.value) && this.value !== '' && this.value.trim() !== '') {
13038
- if (this.autocompleteRes.length === 5) {
13039
- this.autocompleteRes.shift();
13040
- }
13041
- this.autocompleteRes.push(this.value);
13042
- this.storageService.setItem('eo.inbox.filter.suggestions', this.autocompleteRes);
13109
+ }
13110
+ getSavedFilters() {
13111
+ if (this.userService.getCurrentUser().userSettings.savedInboxFilter) {
13112
+ this.savedFilters = this.userService.getCurrentUser().userSettings.savedInboxFilter;
13113
+ }
13114
+ else {
13115
+ this.savedFilters = this.storageService.getItem('eo.inbox.filter.suggestions');
13043
13116
  }
13044
13117
  }
13118
+ saveFilter(term) {
13119
+ if (!this.savedFilters.includes(term)) {
13120
+ this.savedFilters.push(term);
13121
+ this.userService.changeSavedInboxFilters(this.savedFilters).subscribe();
13122
+ }
13123
+ }
13124
+ removeFilter(term) {
13125
+ this.savedFilters = this.savedFilters.filter(t => t !== term);
13126
+ this.userService.changeSavedInboxFilters(this.savedFilters).subscribe();
13127
+ }
13045
13128
  focus() {
13046
13129
  if (!this.focused) {
13047
13130
  this.focused = true;
@@ -13049,24 +13132,23 @@ class TextFilterComponent extends AbstractFilterComponent {
13049
13132
  setTimeout(() => { document.execCommand('selectall', false, null); });
13050
13133
  }
13051
13134
  }
13052
- autocompleteFn(evt) {
13053
- this.autocompleteRes = this.storageService.getItem('eo.inbox.filter.suggestions') || [];
13054
- }
13055
13135
  }
13056
13136
  TextFilterComponent.decorators = [
13057
13137
  { type: Component, args: [{
13058
13138
  selector: 'eo-text-filter',
13059
- template: "<header class=\"filter__header\">\n <h3 class=\"filter__title title\" *ngIf=\"title\">{{title}}</h3>\n</header>\n<eo-form-input>\n <p-autoComplete #input (ngModelChange)=\"onChange($event)\" [ngModel]=\"value\" class=\"form-control\"\n placeholder=\"{{ placeholder | translate}}\" (focus)=\"focus()\" (focusout)=\"focusout()\" (completeMethod)=\"autocompleteFn($event)\" [suggestions]=\"autocompleteRes\"></p-autoComplete>\n</eo-form-input>\n",
13060
- styles: [".title{font-weight:700;margin-top:.5em}input{border:none}.form-control::-ms-clear{display:none}"]
13139
+ template: "<header class=\"filter__header\">\n <h3 class=\"filter__title title\" *ngIf=\"title\">{{title}}</h3>\n</header>\n<div class=\"flex-row\">\n <eo-form-input>\n <input (ngModelChange)=\"onChange($event)\" [ngModel]=\"value\" class=\"form-control\"\n placeholder=\"{{ placeholder | translate}}\" (focus)=\"focus()\" (focusout)=\"focusout()\">\n </eo-form-input>\n <eo-icon class=\"save-filter-icon\" *ngIf=\"enableSave\" [ngClass]=\"{'disable-save-filter': savedFilters.includes(value)}\"\n (click)=\"saveFilter(value)\"\n [iconTitle]=\"'eo.filter.save' | translate\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n</div>\n\n<div *ngIf=\"enableSave && savedFilters && savedFilters.length !== 0\">\n <h4 class=\"filter__title saved-filters-title\" translate>eo.filter.save.title</h4>\n <div class=\"saved-filters-container\">\n <div class=\"saved-filter flex-row\" *ngFor=\"let savedFilter of savedFilters\">\n <span class=\"saved-filter-text\" (click)=\"onChange(savedFilter, value)\">{{savedFilter}}</span>\n <eo-icon class=\"remove-filter-icon\" (click)=\"removeFilter(savedFilter)\"\n [iconTitle]=\"'eo.filter.delete' | translate\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n </div>\n </div>\n</div>\n",
13140
+ styles: [".title{font-weight:700;margin-top:.5em}input{border:none}.form-control::-ms-clear{display:none}.save-filter-icon{cursor:pointer}.save-filter-icon.disable-save-filter{color:var(--color-primary-3);cursor:default}.remove-filter-icon{cursor:pointer;margin-left:auto}.saved-filter-text{cursor:pointer;margin-left:5px}.saved-filter{text-decoration:underline}.saved-filters-title{margin-top:1em}.saved-filters-container{max-height:200px;overflow:auto}"]
13061
13141
  },] }
13062
13142
  ];
13063
13143
  TextFilterComponent.ctorParameters = () => [
13064
13144
  { type: ListSettingsService },
13065
- { type: LocalStorageService }
13145
+ { type: LocalStorageService },
13146
+ { type: UserService }
13066
13147
  ];
13067
13148
  TextFilterComponent.propDecorators = {
13068
13149
  title: [{ type: Input }],
13069
13150
  placeholder: [{ type: Input }],
13151
+ enableSave: [{ type: Input }],
13070
13152
  matchFields: [{ type: Input }]
13071
13153
  };
13072
13154
 
@@ -14494,6 +14576,11 @@ class PreventDoubleClickDirective {
14494
14576
  event.stopPropagation();
14495
14577
  this.clicks.next(event);
14496
14578
  }
14579
+ onkeyDown(event) {
14580
+ event.preventDefault();
14581
+ event.stopPropagation();
14582
+ this.clicks.next(event);
14583
+ }
14497
14584
  }
14498
14585
  PreventDoubleClickDirective.decorators = [
14499
14586
  { type: Directive, args: [{
@@ -14504,7 +14591,8 @@ PreventDoubleClickDirective.ctorParameters = () => [];
14504
14591
  PreventDoubleClickDirective.propDecorators = {
14505
14592
  debounceTime: [{ type: Input }],
14506
14593
  debounceClick: [{ type: Output }],
14507
- clickEvent: [{ type: HostListener, args: ['click', ['$event'],] }]
14594
+ clickEvent: [{ type: HostListener, args: ['click', ['$event'],] }],
14595
+ onkeyDown: [{ type: HostListener, args: ['keydown.enter', ['$event'],] }]
14508
14596
  };
14509
14597
 
14510
14598
  class ActionComponentAnchorDirective {
@@ -14522,11 +14610,12 @@ ActionComponentAnchorDirective.ctorParameters = () => [
14522
14610
  ];
14523
14611
 
14524
14612
  class ActionMenuComponent extends UnsubscribeOnDestroy {
14525
- constructor(actionService, router, viewContainerRef, componentFactoryResolver) {
14613
+ constructor(actionService, router, viewContainerRef, elemRef, componentFactoryResolver) {
14526
14614
  super();
14527
14615
  this.actionService = actionService;
14528
14616
  this.router = router;
14529
14617
  this.viewContainerRef = viewContainerRef;
14618
+ this.elemRef = elemRef;
14530
14619
  this.componentFactoryResolver = componentFactoryResolver;
14531
14620
  this.actionLists = {
14532
14621
  common: [], further: []
@@ -14577,12 +14666,18 @@ class ActionMenuComponent extends UnsubscribeOnDestroy {
14577
14666
  event.preventDefault();
14578
14667
  this.actionDescription = i === this.actionDescription ? null : i;
14579
14668
  }
14669
+ catchFocus() {
14670
+ setTimeout(() => {
14671
+ this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
14672
+ });
14673
+ }
14580
14674
  showActionMenu() {
14581
14675
  this.getActions();
14582
14676
  if (this.target === 'DMS_OBJECT') {
14583
14677
  this.getMoreActions();
14584
14678
  }
14585
14679
  this.showMenu = true;
14680
+ this.catchFocus();
14586
14681
  }
14587
14682
  hideActionMenu() {
14588
14683
  this.clear();
@@ -14657,6 +14752,7 @@ class ActionMenuComponent extends UnsubscribeOnDestroy {
14657
14752
  }
14658
14753
  onCancel() {
14659
14754
  this.clear();
14755
+ this.catchFocus();
14660
14756
  }
14661
14757
  onFinish() {
14662
14758
  this.hideActionMenu();
@@ -14665,15 +14761,16 @@ class ActionMenuComponent extends UnsubscribeOnDestroy {
14665
14761
  ActionMenuComponent.decorators = [
14666
14762
  { type: Component, args: [{
14667
14763
  selector: 'eo-action-menu',
14668
- template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div>\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.common; index as i\" (click)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.further; index as i\" eoPreventDoubleClick (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.export.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n",
14764
+ template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div tabindex=\"0\">\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.common; index as i\" (click)=\"onClick(actionListEntry)\" (keydown.enter)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.further; index as i\" eoPreventDoubleClick (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" eoTrapFocus *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.export.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n",
14669
14765
  encapsulation: ViewEncapsulation.None,
14670
- styles: [".action-menu{-webkit-animation:eoFadeInRight var(--app-default-transition-duration);animation:eoFadeInRight var(--app-default-transition-duration);background-color:rgba(var(--color-primary-rgb),.95);bottom:0;box-shadow:0 0 10px 0 rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;min-width:300px;overflow:hidden;position:absolute;right:0;top:0;width:25vw;z-index:100}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{display:inline-block;min-width:200px;padding:var(--app-pane-padding);width:90%}.action-menu .group .group-title{-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-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action a.link{color:inherit;display:block;opacity:1;text-decoration:none}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{-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;cursor:pointer;display:flex;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding) calc(var(--app-pane-padding)/2) 0;transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding)/2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{color:rgba(var(--color-white-rgb),.3)}.action-menu .action .available-count,.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding)/2)}.action-menu .action eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:rgba(var(--color-white-rgb),.3);margin:0;padding:3px}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-border-radius:2px;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;border-radius:2px;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding)/4) var(--app-pane-padding) calc(var(--app-pane-padding)/2) var(--app-pane-padding);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action:last-child{border:0}.action-menu .action:focus,.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{align-items:center;display:flex;justify-content:center;margin:50% auto;padding:16px}"]
14766
+ styles: [".action-menu{-webkit-animation:eoFadeInRight var(--app-default-transition-duration);animation:eoFadeInRight var(--app-default-transition-duration);background-color:rgba(var(--color-primary-rgb),.95);bottom:0;box-shadow:0 0 10px 0 rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;min-width:300px;overflow:hidden;position:absolute;right:0;top:0;width:25vw;z-index:100}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{display:inline-block;min-width:200px;padding:var(--app-pane-padding);width:90%}.action-menu .group .group-title{-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-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action :focus{background:rgba(var(--color-white-rgb),.1)}.action-menu .action a.link{color:inherit;display:block;opacity:1;text-decoration:none}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{-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;cursor:pointer;display:flex;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding) calc(var(--app-pane-padding)/2) 0;transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding)/2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{color:rgba(var(--color-white-rgb),.3)}.action-menu .action .available-count,.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding)/2)}.action-menu .action eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:rgba(var(--color-white-rgb),.3);margin:0;padding:3px}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-border-radius:2px;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;border-radius:2px;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding)/4) var(--app-pane-padding) calc(var(--app-pane-padding)/2) var(--app-pane-padding);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action:last-child{border:0}.action-menu .action:focus,.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{align-items:center;display:flex;justify-content:center;margin:50% auto;padding:16px}:host ::ng-deep #default .allActionEntry{focus:red}"]
14671
14767
  },] }
14672
14768
  ];
14673
14769
  ActionMenuComponent.ctorParameters = () => [
14674
14770
  { type: ActionService },
14675
14771
  { type: Router },
14676
14772
  { type: ViewContainerRef },
14773
+ { type: ElementRef },
14677
14774
  { type: ComponentFactoryResolver }
14678
14775
  ];
14679
14776
  ActionMenuComponent.propDecorators = {
@@ -15369,13 +15466,14 @@ FavoriteActionComponent.ctorParameters = () => [
15369
15466
  ];
15370
15467
 
15371
15468
  class DeleteComponent {
15372
- constructor(translate, backend, toast, router, capabilitiesService, dmsService, eventService) {
15469
+ constructor(translate, backend, toast, router, capabilitiesService, dmsService, elemRef, eventService) {
15373
15470
  this.translate = translate;
15374
15471
  this.backend = backend;
15375
15472
  this.toast = toast;
15376
15473
  this.router = router;
15377
15474
  this.capabilitiesService = capabilitiesService;
15378
15475
  this.dmsService = dmsService;
15476
+ this.elemRef = elemRef;
15379
15477
  this.eventService = eventService;
15380
15478
  this.deleting = false;
15381
15479
  this.folder = '';
@@ -15424,6 +15522,11 @@ class DeleteComponent {
15424
15522
  isExpired(dateString) {
15425
15523
  return new Date(dateString).setHours(0, 0, 0, 0) < new Date().setHours(0, 0, 0, 0);
15426
15524
  }
15525
+ ngAfterViewInit() {
15526
+ setTimeout(() => {
15527
+ this.elemRef.nativeElement.querySelector('.primary').focus();
15528
+ });
15529
+ }
15427
15530
  ngOnInit() {
15428
15531
  if (this.selection[0].isContextFolder) {
15429
15532
  this.folder = this.selection[0].title;
@@ -15442,7 +15545,7 @@ class DeleteComponent {
15442
15545
  DeleteComponent.decorators = [
15443
15546
  { type: Component, args: [{
15444
15547
  selector: 'eo-delete',
15445
- template: "<div class=\"eo-delete\">\n\n <h2 *ngIf=\"!folder && !retentionTime\" translate [translateParams]=\"{item: selection[0].title}\">eo.action.delete.dms.object.confirm.message</h2>\n <h2 *ngIf=\"folder && !retentionTime\" translate [translateParams]=\"{folder: folder, count: count}\">eo.action.delete.dms.object.confirm.context.folder.title</h2>\n <h2 *ngIf=\"retentionTime\" translate [translateParams]=\"{retentionTime: retentionTime}\">eo.action.delete.dms.object.error.retention.title</h2>\n\n <div *ngIf=\"!deleting\">\n <div class=\"form-buttons\">\n <button (click)=\"cancel()\" translate>eo.checkout.cancel</button>\n <button *ngIf=\"!retentionTime\" class=\"primary\" (click)=\"run()\">OK</button>\n </div>\n </div>\n\n <div class=\"spinner-container\" *ngIf=\"deleting\">\n <eo-loading-spinner></eo-loading-spinner>\n </div>\n</div>\n",
15548
+ template: "<div class=\"eo-delete\" eoTrapFocus>\n\n <h2 *ngIf=\"!folder && !retentionTime\" translate [translateParams]=\"{item: selection[0].title}\">eo.action.delete.dms.object.confirm.message</h2>\n <h2 *ngIf=\"folder && !retentionTime\" translate [translateParams]=\"{folder: folder, count: count}\">eo.action.delete.dms.object.confirm.context.folder.title</h2>\n <h2 *ngIf=\"retentionTime\" translate [translateParams]=\"{retentionTime: retentionTime}\">eo.action.delete.dms.object.error.retention.title</h2>\n\n <div *ngIf=\"!deleting\">\n <div class=\"form-buttons\">\n <button (click)=\"cancel()\" translate>eo.checkout.cancel</button>\n <button *ngIf=\"!retentionTime\" class=\"primary\" (click)=\"run()\">OK</button>\n </div>\n </div>\n\n <div class=\"spinner-container\" *ngIf=\"deleting\">\n <eo-loading-spinner></eo-loading-spinner>\n </div>\n</div>\n",
15446
15549
  styles: [".eo-delete{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-delete h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-delete .form-buttons{padding:5px 0;text-align:right}.eo-delete .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-delete .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}.eo-delete .spinner-container{align-items:center;display:flex;justify-content:center}"]
15447
15550
  },] }
15448
15551
  ];
@@ -15453,6 +15556,7 @@ DeleteComponent.ctorParameters = () => [
15453
15556
  { type: Router },
15454
15557
  { type: CapabilitiesService },
15455
15558
  { type: DmsService },
15559
+ { type: ElementRef },
15456
15560
  { type: EventService }
15457
15561
  ];
15458
15562
  DeleteComponent.propDecorators = {
@@ -15677,6 +15781,9 @@ class AddSubscriptionComponent {
15677
15781
  ]
15678
15782
  };
15679
15783
  }
15784
+ setTimeout(() => {
15785
+ this.titleField.nativeElement.getElementsByTagName('input')[0].select();
15786
+ });
15680
15787
  }
15681
15788
  get titleValidity() {
15682
15789
  return this.addSubscriptionForm.get('titleFieldFCN').invalid;
@@ -15724,7 +15831,7 @@ class AddSubscriptionComponent {
15724
15831
  AddSubscriptionComponent.decorators = [
15725
15832
  { type: Component, args: [{
15726
15833
  selector: 'eo-add-subscription',
15727
- template: "<div class=\"eo-subscription\">\n <h2>{{header}}</h2>\n <form [formGroup]=\"addSubscriptionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\n <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\"translate>eo.subscription.cancel</button>\n <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n",
15834
+ template: "<div class=\"eo-subscription\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addSubscriptionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\n <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\"translate>eo.subscription.cancel</button>\n <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n",
15728
15835
  styles: [".eo-subscription{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-subscription h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-subscription .form-buttons{padding:5px 0;text-align:right}.eo-subscription .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-subscription .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}.eo-subscription .process-indicator{display:flex;justify-content:flex-end}.eo-subscription .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)}.eo-subscription .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding)/4)}"]
15729
15836
  },] }
15730
15837
  ];
@@ -15737,7 +15844,8 @@ AddSubscriptionComponent.ctorParameters = () => [
15737
15844
  AddSubscriptionComponent.propDecorators = {
15738
15845
  selection: [{ type: Input }],
15739
15846
  finished: [{ type: Output }],
15740
- canceled: [{ type: Output }]
15847
+ canceled: [{ type: Output }],
15848
+ titleField: [{ type: ViewChild, args: ['titleField', { static: true },] }]
15741
15849
  };
15742
15850
 
15743
15851
  class AddSubscriptionActionComponent extends DmsObjectTarget {
@@ -15984,12 +16092,15 @@ class AddResubmissionComponent {
15984
16092
  this.inboxCbLabel = this.translate.instant('eo.resubmission.field.notification.inbox');
15985
16093
  this.emailCbLabel = this.translate.instant('eo.resubmission.field.notification.email');
15986
16094
  this.createResubmissionForm();
16095
+ setTimeout(() => {
16096
+ this.titleField.nativeElement.getElementsByTagName('input')[0].select();
16097
+ });
15987
16098
  }
15988
16099
  }
15989
16100
  AddResubmissionComponent.decorators = [
15990
16101
  { type: Component, args: [{
15991
16102
  selector: 'eo-add-resubmission',
15992
- template: "<div class=\"eo-resubmission\">\n <h2>{{header}}</h2>\n <form [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\">\n <eo-datetime [withTime]=\"true\" [onlyFutureDates]=\"true\" formControlName=\"dueFieldFCN\"></eo-datetime>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\" translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\" *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n",
16103
+ template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\">\n <eo-datetime [withTime]=\"true\" [onlyFutureDates]=\"true\" formControlName=\"dueFieldFCN\"></eo-datetime>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\" translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\" *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n",
15993
16104
  styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-resubmission .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .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)}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding)/4)}"]
15994
16105
  },] }
15995
16106
  ];
@@ -16001,6 +16112,7 @@ AddResubmissionComponent.ctorParameters = () => [
16001
16112
  ];
16002
16113
  AddResubmissionComponent.propDecorators = {
16003
16114
  selection: [{ type: Input }],
16115
+ titleField: [{ type: ViewChild, args: ['titleField', { static: true },] }],
16004
16116
  finished: [{ type: Output }],
16005
16117
  canceled: [{ type: Output }]
16006
16118
  };
@@ -16084,10 +16196,11 @@ UpdateResubmissionActionComponent.ctorParameters = () => [
16084
16196
  ];
16085
16197
 
16086
16198
  class ShareObjectComponent {
16087
- constructor(translate, dms, toast) {
16199
+ constructor(translate, dms, toast, elemRef) {
16088
16200
  this.translate = translate;
16089
16201
  this.dms = dms;
16090
16202
  this.toast = toast;
16203
+ this.elemRef = elemRef;
16091
16204
  this.finished = new EventEmitter();
16092
16205
  this.canceled = new EventEmitter();
16093
16206
  this.dataMeta = [];
@@ -16101,35 +16214,60 @@ class ShareObjectComponent {
16101
16214
  }
16102
16215
  ngOnInit() {
16103
16216
  let orgaValue = [];
16104
- const shareChildren = this.selection[0].shares[0] ? this.selection[0].shares[0].sharechildren : true;
16105
- this.includeChildrenField.setValue(shareChildren);
16217
+ let shareChildren = [];
16218
+ this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
16106
16219
  if (this.selection[0].isFolder) {
16107
16220
  this.header = this.translate.instant('eo.manage.rights.folder.title');
16108
16221
  }
16109
- this.selection[0].additionalvisibility.forEach(avObject => {
16110
- orgaValue.push(avObject.name);
16222
+ this.selection[0].shares.forEach(avObject => {
16223
+ if (avObject.sharechildren === true) {
16224
+ shareChildren.push(avObject.name);
16225
+ }
16226
+ else {
16227
+ orgaValue.push(avObject.name);
16228
+ }
16111
16229
  });
16112
16230
  this.orgaField.setValue(orgaValue);
16113
- this.dataMeta = this.dataMeta.concat(this.selection[0].additionalvisibility);
16231
+ this.includeChildrenField.setValue(shareChildren);
16114
16232
  }
16115
16233
  shareMessage() {
16234
+ let shared = '';
16235
+ let field = '';
16116
16236
  if (this.orgaField.value.length > 0) {
16117
- this.translate.get('eo.manage.rights.message', {
16118
- title: this.selection[0].title,
16119
- shared: this.orgaField.value.toString()
16120
- }).subscribe(val => this.toast.info(val));
16237
+ shared = this.orgaField.value.toString();
16238
+ }
16239
+ else if (this.includeChildrenField.value.length > 0) {
16240
+ shared = this.includeChildrenField.value.toString();
16121
16241
  }
16122
16242
  else {
16123
16243
  this.toast.info(this.translate.instant('eo.manage.rights.message.notshared'));
16244
+ return;
16245
+ }
16246
+ field = 'eo.manage.rights.message';
16247
+ if (this.orgaField.value.length > 0 && this.includeChildrenField.value.length > 0) {
16248
+ shared = `${this.orgaField.value.toString()}, ${this.includeChildrenField.value.toString()}`;
16124
16249
  }
16250
+ this.translate.get(field, {
16251
+ title: this.selection[0].title,
16252
+ shared: shared,
16253
+ }).subscribe(val => this.toast.info(val));
16125
16254
  }
16126
16255
  save() {
16127
- this.dms.setOrganizationObjectsWithReadRights(this.selection, this.orgaField.value, this.includeChildrenField.value)
16256
+ this.objectId = this.selection[0].id;
16257
+ this.dms.setOrganizationObjectsWithReadRights(this.selection, this.objectId, this.orgaField.value, this.includeChildrenField.value)
16128
16258
  .subscribe(() => {
16129
16259
  this.shareMessage();
16130
16260
  this.finished.emit();
16131
16261
  });
16132
16262
  }
16263
+ stop() {
16264
+ this.objectId = this.selection[0].id;
16265
+ this.dms.setOrganizationObjectsWithReadRights(this.selection, this.objectId, [], [])
16266
+ .subscribe(() => {
16267
+ this.toast.info(this.translate.instant('eo.manage.rights.message.notshared'));
16268
+ this.finished.emit();
16269
+ });
16270
+ }
16133
16271
  cancel() {
16134
16272
  this.canceled.emit();
16135
16273
  }
@@ -16137,14 +16275,15 @@ class ShareObjectComponent {
16137
16275
  ShareObjectComponent.decorators = [
16138
16276
  { type: Component, args: [{
16139
16277
  selector: 'eo-share-object',
16140
- template: "<div class=\"eo-share-object\">\n <h2>{{header}}</h2>\n\n <form [formGroup]=\"shareForm\">\n <eo-form-input [label]=\"orgaLabel\">\n <eo-organization [dataMeta]=\"dataMeta\" [multiselect]=\"true\" formControlName=\"orgaFieldFCN\"></eo-organization>\n </eo-form-input>\n <eo-form-input *ngIf=\"selection[0].isFolder\" [label]=\"('eo.manage.rights.folder.include.documents.label' | translate)\">\n <eo-checkbox formControlName=\"includeChildren\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <div class=\"form-buttons\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.manage.rights.cancel</button>\n <button class=\"primary\" (click)=\"save()\" [disabled]=\"shareForm.errors || !shareForm.dirty\" translate>eo.manage.rights.apply</button>\n </div>\n</div>\n",
16141
- styles: [".eo-share-object{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-share-object h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-share-object .form-buttons{padding:5px 0;text-align:right}.eo-share-object .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-share-object .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}"]
16278
+ template: "<div class=\"eo-share-object\" eoTrapFocus>\n <h2>{{header}}</h2>\n <div class=\"fieldset\">\n <div class=\"legend\"><span style=\"background-color: transparent !important;\" *ngIf=\"selection[0].isFolder\" translate>eo.manage.rights.folder.label</span></div>\n <div>\n <form [formGroup]=\"shareForm\">\n <eo-form-input [label]=\"orgaLabel\" tabindex=\"0\">\n <eo-organization [dataMeta]=\"dataMeta\" [multiselect]=\"true\" formControlName=\"orgaFieldFCN\"></eo-organization>\n </eo-form-input>\n </form>\n </div>\n <div *ngIf=\"selection[0].isFolder\">\n <div class=\"legend\"><span translate>eo.manage.rights.folder.include.children.label</span></div>\n <form [formGroup]=\"shareForm\">\n <eo-form-input [label]=\"orgaLabel\">\n <eo-organization [dataMeta]=\"dataMeta\" [multiselect]=\"true\" formControlName=\"includeChildren\"></eo-organization>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"form-buttons\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.manage.rights.cancel</button>\n <button class=\"danger\" (click)=\"stop()\" *ngIf=\"selection[0].additionalvisibility.length\" translate>eo.manage.rights.stop</button>\n <button class=\"primary\" (click)=\"save()\" [disabled]=\"shareForm.errors || !shareForm.dirty\" translate>eo.manage.rights.apply</button>\n </div>\n</div>\n",
16279
+ styles: [".eo-share-object{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-share-object h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-share-object>.fieldset>:not(.legend){align-content:flex-start;align-items:flex-start;display:contents;flex-flow:row wrap;justify-content:flex-start}.eo-share-object>.fieldset>:not(.legend) span{background-color:transparent!important}.eo-share-object>.fieldset>:not(.legend) eo-form-group{flex:1 1 auto;min-width:200px}.eo-share-object .form-buttons{padding:5px 0;text-align:right}.eo-share-object .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-share-object .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}"]
16142
16280
  },] }
16143
16281
  ];
16144
16282
  ShareObjectComponent.ctorParameters = () => [
16145
16283
  { type: TranslateService },
16146
16284
  { type: DmsService },
16147
- { type: NotificationsService }
16285
+ { type: NotificationsService },
16286
+ { type: ElementRef }
16148
16287
  ];
16149
16288
 
16150
16289
  class ShareObjectActionComponent extends DmsObjectTarget {
@@ -16220,6 +16359,43 @@ CutActionComponent.ctorParameters = () => [
16220
16359
  { type: ActionService }
16221
16360
  ];
16222
16361
 
16362
+ class FinalizeObjectActionComponent {
16363
+ constructor(elemRef, dmsService) {
16364
+ this.elemRef = elemRef;
16365
+ this.dmsService = dmsService;
16366
+ this.finished = new EventEmitter();
16367
+ this.canceled = new EventEmitter();
16368
+ }
16369
+ onClick() {
16370
+ this.dmsService.finalize(this.selection[0]).subscribe();
16371
+ this.finished.emit();
16372
+ }
16373
+ cancel() {
16374
+ this.canceled.emit();
16375
+ }
16376
+ ngAfterViewInit() {
16377
+ setTimeout(() => {
16378
+ this.elemRef.nativeElement.querySelector('.primary').focus();
16379
+ });
16380
+ }
16381
+ }
16382
+ FinalizeObjectActionComponent.decorators = [
16383
+ { type: Component, args: [{
16384
+ selector: 'eo-finalize-object-action',
16385
+ template: "<div class=\"finalize\">\n\n <h2 translate>eo.action.finalize.confirm</h2>\n\n <div class=\"form-buttons\" eoTrapFocus>\n <button (click)=\"cancel()\" translate>eo.checkout.cancel</button>\n <button class=\"primary\" (click)=\"onClick()\">OK</button>\n </div>\n\n</div>",
16386
+ styles: [".finalize{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.finalize h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.finalize .form-buttons{padding:5px 0;text-align:right}.finalize .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.finalize .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}"]
16387
+ },] }
16388
+ ];
16389
+ FinalizeObjectActionComponent.ctorParameters = () => [
16390
+ { type: ElementRef },
16391
+ { type: DmsService }
16392
+ ];
16393
+ FinalizeObjectActionComponent.propDecorators = {
16394
+ selection: [{ type: Input }],
16395
+ finished: [{ type: Output }],
16396
+ canceled: [{ type: Output }]
16397
+ };
16398
+
16223
16399
  class FinalizeActionComponent extends DmsObjectTarget {
16224
16400
  constructor(translate, dmsService) {
16225
16401
  super();
@@ -16228,26 +16404,23 @@ class FinalizeActionComponent extends DmsObjectTarget {
16228
16404
  this.priority = 13;
16229
16405
  this.iconSrc = 'assets/_default/svg/ic_finalized.svg';
16230
16406
  this.group = 'common';
16231
- this.range = SelectionRange.MULTI_SELECT;
16407
+ this.range = SelectionRange.SINGLE_SELECT;
16408
+ this.component = FinalizeObjectActionComponent;
16232
16409
  this.label = this.translate.instant('eo.action.finalize.label');
16233
16410
  this.description = this.translate.instant('eo.action.finalize.description');
16234
16411
  }
16235
16412
  isExecutable(item) {
16236
16413
  return of((item.rights && item.rights.finalize) && !item.lock && !item.isFinalized && !window.location.href.includes('/versions'));
16237
16414
  }
16238
- ;
16239
- run(selection) {
16240
- if (confirm(this.translate.instant('eo.action.finalize.confirm'))) {
16241
- selection.forEach(item => {
16242
- this.dmsService.finalize(item).subscribe();
16243
- });
16244
- }
16245
- }
16246
16415
  }
16416
+ FinalizeActionComponent.ɵprov = ɵɵdefineInjectable({ factory: function FinalizeActionComponent_Factory() { return new FinalizeActionComponent(ɵɵinject(TranslateService$1), ɵɵinject(DmsService)); }, token: FinalizeActionComponent, providedIn: "root" });
16247
16417
  FinalizeActionComponent.decorators = [
16248
16418
  { type: Component, args: [{
16249
16419
  selector: 'eo-finalize-action',
16250
16420
  template: ``
16421
+ },] },
16422
+ { type: Injectable, args: [{
16423
+ providedIn: 'root'
16251
16424
  },] }
16252
16425
  ];
16253
16426
  FinalizeActionComponent.ctorParameters = () => [
@@ -16459,6 +16632,7 @@ const entryComponents = [
16459
16632
  ShareObjectComponent,
16460
16633
  CutActionComponent,
16461
16634
  FinalizeActionComponent,
16635
+ FinalizeObjectActionComponent,
16462
16636
  DefinalizeActionComponent,
16463
16637
  DeleteContentActionComponent,
16464
16638
  UnlockActionComponent,
@@ -16547,6 +16721,7 @@ ActionModule.decorators = [
16547
16721
  ShareObjectComponent,
16548
16722
  CutActionComponent,
16549
16723
  FinalizeActionComponent,
16724
+ FinalizeObjectActionComponent,
16550
16725
  DefinalizeActionComponent,
16551
16726
  DeleteContentActionComponent,
16552
16727
  UnlockActionComponent,
@@ -16618,73 +16793,6 @@ AppLayoutComponent.propDecorators = {
16618
16793
  undockArea: [{ type: Input }]
16619
16794
  };
16620
16795
 
16621
- /**
16622
- * This directive traps the focus inside the element it is applied to.
16623
- * When applied, a users can't "tab out" of the element.
16624
- * You need at least two focusable children in the element for it to work properly.
16625
- * See the querySelector in the trapFocus method to know which elements count as focusable.
16626
- * Additionally you can add the attribute "focusable" to an element if you are unsure.
16627
- */
16628
- class TrapFocusDirective {
16629
- constructor(el) {
16630
- this.el = el;
16631
- this.focusableSelectors = 'a[href], button, textarea, input[type="text"],' +
16632
- 'input[type="radio"], input[type="checkbox"], select, [focusable]';
16633
- }
16634
- ngAfterViewInit() {
16635
- this.trapFocus(this.el.nativeElement);
16636
- }
16637
- trapFocus(element) {
16638
- let focusableElements = element.querySelectorAll(this.focusableSelectors);
16639
- focusableElements = Array.from(focusableElements)
16640
- .filter((el) => !el.disabled && !el.classList.contains('disabled'));
16641
- const firstFocusableElement = focusableElements[0];
16642
- const lastFocusableElement = focusableElements[focusableElements.length - 1];
16643
- element.addEventListener('keydown', ((event) => {
16644
- const isTabPressed = event.keyCode === 9; // tab key code
16645
- if (!isTabPressed)
16646
- return;
16647
- if (event.shiftKey) /* shift + tab */ {
16648
- if (document.activeElement === firstFocusableElement) {
16649
- lastFocusableElement.focus();
16650
- event.preventDefault();
16651
- }
16652
- }
16653
- else /* tab */ {
16654
- if (document.activeElement === lastFocusableElement) {
16655
- firstFocusableElement.focus();
16656
- event.preventDefault();
16657
- }
16658
- }
16659
- }));
16660
- }
16661
- isArrowUpOrDownPressed(event) {
16662
- const key = event.key;
16663
- if (key === 'ArrowUp' || key === 'ArrowDown') {
16664
- event.preventDefault();
16665
- let focusableElements = this.el.nativeElement.parentElement.querySelectorAll(this.focusableSelectors);
16666
- const currentIndex = Array.from(focusableElements).indexOf(document.activeElement);
16667
- if (key === 'ArrowDown' && currentIndex < focusableElements.length - 1) {
16668
- focusableElements[currentIndex + 1].focus();
16669
- }
16670
- else if (key === 'ArrowUp' && currentIndex > 0) {
16671
- focusableElements[currentIndex - 1].focus();
16672
- }
16673
- }
16674
- }
16675
- }
16676
- TrapFocusDirective.decorators = [
16677
- { type: Directive, args: [{
16678
- selector: '[eoTrapFocus]'
16679
- },] }
16680
- ];
16681
- TrapFocusDirective.ctorParameters = () => [
16682
- { type: ElementRef }
16683
- ];
16684
- TrapFocusDirective.propDecorators = {
16685
- isArrowUpOrDownPressed: [{ type: HostListener, args: ['keydown', ['$event'],] }]
16686
- };
16687
-
16688
16796
  /**
16689
16797
  * Module holding the base components of the application shell like application bar, side, search etc.
16690
16798
  */
@@ -16719,7 +16827,6 @@ EoAppShellModule.decorators = [
16719
16827
  AppLayoutComponent,
16720
16828
  ContextSearchComponent,
16721
16829
  AppProcessComponent,
16722
- TrapFocusDirective,
16723
16830
  ]
16724
16831
  },] }
16725
16832
  ];
@@ -17965,13 +18072,6 @@ StoredQueryModule.decorators = [
17965
18072
  },] }
17966
18073
  ];
17967
18074
 
17968
- var TypeFilter;
17969
- (function (TypeFilter) {
17970
- TypeFilter["favored"] = "favorite";
17971
- TypeFilter["shared"] = "roles";
17972
- TypeFilter["others"] = "others";
17973
- })(TypeFilter || (TypeFilter = {}));
17974
-
17975
18075
  class ResultListModule {
17976
18076
  }
17977
18077
  ResultListModule.decorators = [
@@ -21973,6 +22073,13 @@ const listAnimation = trigger('listAnimation', [
21973
22073
  ])
21974
22074
  ]);
21975
22075
 
22076
+ var TypeFilter;
22077
+ (function (TypeFilter) {
22078
+ TypeFilter["favored"] = "favorite";
22079
+ TypeFilter["shared"] = "roles";
22080
+ TypeFilter["others"] = "others";
22081
+ })(TypeFilter || (TypeFilter = {}));
22082
+
21976
22083
  class DashboardComponent extends UnsubscribeOnDestroy {
21977
22084
  constructor(userService, titleService, router, route, config, searchService, authService, systemService, inboxService, prepareService, envService, capabilityService, storedQueriesService) {
21978
22085
  super();
@@ -22086,9 +22193,7 @@ class DashboardComponent extends UnsubscribeOnDestroy {
22086
22193
  .pipe(takeUntil(this.componentDestroyed$))
22087
22194
  .subscribe(user => {
22088
22195
  this.user = user;
22089
- if (!this.isCloud) {
22090
- this.captureObjectLists();
22091
- }
22196
+ this.captureObjectLists();
22092
22197
  });
22093
22198
  this.capabilities = this.capabilityService.getCapabilities();
22094
22199
  if (this.capabilities.storedqueries) {
@@ -22681,10 +22786,10 @@ class AboutStateComponent {
22681
22786
  this.backend = backend;
22682
22787
  this.userService = userService;
22683
22788
  this.config = config;
22684
- 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.1.0-rc.1", "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" }];
22789
+ 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.2.0-rc.1", "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" }];
22685
22790
  this.ctrl = {
22686
22791
  componentName: 'yuuvis® RAD client',
22687
- componentVersion: '9.1.0-rc.1',
22792
+ componentVersion: '9.2.0-rc.1',
22688
22793
  productName: '',
22689
22794
  productVersion: ''
22690
22795
  };
@@ -24032,7 +24137,7 @@ class ObjectStateComponent extends UnsubscribeOnDestroy {
24032
24137
  ObjectStateComponent.decorators = [
24033
24138
  { type: Component, args: [{
24034
24139
  selector: 'eo-object-state',
24035
- template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"cacheLayout\">\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"230\" class=\"tree\">\n <ng-template pTemplate=\"content\">\n\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" (ngModelChange)=\"onTermFilterChange.emit($event)\"/>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.tree.state\"\n *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\" translate>eo.state.object.tree.references</h3> \n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.treeRef.state\"\n *ngIf=\"contextTreeRef?.length\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"35\" [minSizePixel]=\"250\" [@panelLoading]=\"loadingState.list.state\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\" [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\" [reference]=\"selectedNode?.isReference\"\n [searchResult]=\"searchResult\" [configType]=\"configType\" [configContext]=\"\"\n [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"45\" [minSizePixel]=\"250\" [cache]=\"false\" [@panelLoading]=\"loadingState.details.state\">\n <ng-template pTemplate=\"content\">\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\" [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>\n\n",
24140
+ template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"cacheLayout\">\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"230\" class=\"tree\">\n <ng-template pTemplate=\"content\">\n\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" (ngModelChange)=\"onTermFilterChange.emit($event)\"/>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.tree.state\"\n *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\" translate>eo.state.object.tree.references</h3> \n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.treeRef.state\"\n *ngIf=\"contextTreeRef?.length\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"35\" [minSizePixel]=\"250\" [@panelLoading]=\"loadingState.list.state\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\" [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\" [reference]=\"selectedNode?.isReference\"\n [searchResult]=\"searchResult\" [configType]=\"configType\" [configContext]=\"\"\n [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"45\" [minSizePixel]=\"250\" [cache]=\"false\" [@panelLoading]=\"loadingState.details.state\">\n <ng-template pTemplate=\"content\">\n <eo-object-details eoTrapFocus [applySelection]=\"{}\" [reference]=\"isReferenceActive\" [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>\n\n",
24036
24141
  providers: [ObjectStateService],
24037
24142
  animations: [panelLoadingAnimations],
24038
24143
  styles: [":host{bottom:var(--app-pane-padding);left:var(--app-pane-padding);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host eo-split-area{box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}:host .eo-body.tree h3{border-top:1px solid var(--list-item-border-color);color:var(--text-color-caption);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);margin:0;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding) 0 var(--app-pane-padding)}:host .file{display:flex;flex-flow:column;height:100%}:host .file .file-body,:host .file .file-head{-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;opacity:0;transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-body,:host .file.ready .file-head{opacity:1}:host .file .empty-state{align-items:center;background:rgba(var(--color-white-rgb),.3);display:flex;flex-flow:column;height:100%;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding)/4);width:100%}:host .file-head eo-icon{box-sizing:content-box;padding:var(--app-pane-padding)}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{background:var(--color-white);display:flex;flex:0 0 auto;flex-flow:row nowrap;max-width:calc(100% - 350px)}:host .file-head .left div.title{cursor:pointer;flex:0 0 auto;padding:var(--app-pane-padding) 0}[dir=ltr] :host .file-head .left div.title{padding-left:0;padding-right:calc(var(--app-pane-padding)*2)}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding)*2);padding-right:0}:host .file-head .left div.title .description,:host .file-head .left div.title .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{display:flex;flex:1 1 auto;flex-flow:column;min-width:350px}:host .file-head .right .fold{background:var(--main-background);color:var(--text-color-caption);display:flex;flex:0 0 auto;justify-content:flex-end;padding-bottom:calc(var(--app-pane-padding)/2);text-align:right}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{align-items:center;background:var(--color-white);display:flex;flex:1 1 auto;justify-content:flex-end;padding:0 var(--app-pane-padding)}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap,:host .file-body .file-body-wrap .frontPage{bottom:0;left:0;position:absolute;right:0;top:0}:host ::ng-deep .tree .tree-panel-error{align-items:center;color:var(--text-color-caption);display:flex;flex-flow:column;height:100%;justify-content:center}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{color:var(--color-white);flex:1 1 auto}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{align-self:flex-end;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;width:61%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}"]
@@ -24087,8 +24192,8 @@ ObjectStateModule.decorators = [
24087
24192
 
24088
24193
  var InboxTypesFilter;
24089
24194
  (function (InboxTypesFilter) {
24090
- InboxTypesFilter["mytasks"] = "mytasks";
24091
- InboxTypesFilter["opentasks"] = "opentasks";
24195
+ InboxTypesFilter["acceptedTasks"] = "acceptedtasks";
24196
+ InboxTypesFilter["unacceptedTasks"] = "unacceptedtasks";
24092
24197
  InboxTypesFilter["absent"] = "isdeputy";
24093
24198
  InboxTypesFilter["overdue"] = "overdue";
24094
24199
  })(InboxTypesFilter || (InboxTypesFilter = {}));
@@ -24164,15 +24269,17 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
24164
24269
  }
24165
24270
  itemFilterFields(node, item) {
24166
24271
  const value = node.data[InboxTypesFilter[item]];
24272
+ const acceptedAndUnacceptedCombined = this.inboxFilterFields.find(filter => filter.id === 'acceptedTasks').value
24273
+ && this.inboxFilterFields.find(filter => filter.id === 'unacceptedTasks').value;
24167
24274
  switch (InboxTypesFilter[item]) {
24168
24275
  case InboxTypesFilter.overdue:
24169
24276
  return node.data.isOverdue();
24170
24277
  case InboxTypesFilter.absent:
24171
24278
  return !!value;
24172
- case InboxTypesFilter.mytasks:
24173
- return !(node.data.type === 'BPM' && !node.data.read);
24174
- case InboxTypesFilter.opentasks:
24175
- return (node.data.type === 'BPM' && !node.data.read);
24279
+ case InboxTypesFilter.acceptedTasks:
24280
+ return acceptedAndUnacceptedCombined ? node.data.type === 'BPM' : node.data.type === 'BPM' && !!node.data.accepted;
24281
+ case InboxTypesFilter.unacceptedTasks:
24282
+ return acceptedAndUnacceptedCombined ? node.data.type === 'BPM' : node.data.type === 'BPM' && !node.data.accepted;
24176
24283
  }
24177
24284
  }
24178
24285
  fieldFilters() {
@@ -24274,8 +24381,8 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
24274
24381
  InboxStateComponent.decorators = [
24275
24382
  { type: Component, args: [{
24276
24383
  selector: 'eo-inbox-state',
24277
- template: "<eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"'inbox.state'\">\n <eo-split-area [size]=\"30\" [minSizePixel]=\"300\">\n <ng-template pTemplate=\"content\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\"\n [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\"\n [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\"\n [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter\n (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\"\n [filterParams]=\"defaultFilterParams\" [id]=\"'inbox.text'\"\n [matchFields]=\"['title','description','id']\"></eo-text-filter>\n <eo-set-filter [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"\n [title]=\"'eo.inbox.filter.section.type' | translate\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\"\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\"\n [iconClass]=\"'primary'\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\"\n (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\"\n [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid\n *ngIf=\"gridOptions?.rowData\"\n [gridOptions]=\"gridOptions\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectFirst]=\"selectFirst\"\n [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n </eo-split-area>\n <eo-split-area [size]=\"30\" [minSizePixel]=\"400\">\n <ng-template pTemplate=\"content\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\" [emptyState]=\"emptyState\">\n <eo-tab-plugin [type]=\"'inbox-details-tab.inbox'\"></eo-tab-plugin>\n </eo-inbox-details>\n </ng-template>\n </eo-split-area>\n <eo-split-area [size]=\"40\" [minSizePixel]=\"400\" [cache]=\"false\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.inbox'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n </eo-split>\n</eo-undock-split>\n",
24278
- styles: [":host{bottom:var(--app-pane-padding);left:var(--app-pane-padding);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host eo-split-area{background-color:var(--panel-background-grey);box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}:host .inboxChanged,:host .inboxChanged:hover{background:var(--color-success);color:#fff}:host ::ng-deep .ag-cell .list-item{align-items:center;display:flex;flex:1;flex-direction:row;height:80px;min-height:0;min-width:0}:host ::ng-deep .ag-cell .list-item[unselectable]{-moz-user-select:none;-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{display:inline-block;flex:1;max-width:none;overflow:hidden;padding:var(--app-pane-padding);text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .notes>span{-webkit-border-radius:2px;background-color:var(--color-primary-4);border-radius:2px;color:var(--color-white);font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding)/4) 0 calc(var(--app-pane-padding)/4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-size:var(--font-body);font-weight:var(--font-weight-bold)}:host ::ng-deep .ag-cell .list-item .content .description{color:var(--text-color-caption);font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .meta{align-items:flex-end;display:flex;flex-flow:column;padding:0 calc(var(--app-pane-padding)/2)}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}"]
24384
+ template: "<eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"'inbox.state'\">\n <eo-split-area [size]=\"30\" [minSizePixel]=\"300\">\n <ng-template pTemplate=\"content\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\"\n [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"refreshGrid()\"\n [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\"\n [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter\n (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\"\n [filterParams]=\"defaultFilterParams\" [id]=\"'inbox.text'\"\n [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\"\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\"\n [iconClass]=\"'primary'\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\"\n (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\"\n [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid\n *ngIf=\"gridOptions?.rowData\"\n [gridOptions]=\"gridOptions\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectFirst]=\"selectFirst\"\n [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n </eo-split-area>\n <eo-split-area [size]=\"30\" [minSizePixel]=\"400\">\n <ng-template pTemplate=\"content\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\" [emptyState]=\"emptyState\">\n <eo-tab-plugin [type]=\"'inbox-details-tab.inbox'\"></eo-tab-plugin>\n </eo-inbox-details>\n </ng-template>\n </eo-split-area>\n <eo-split-area [size]=\"40\" [minSizePixel]=\"400\" [cache]=\"false\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.inbox'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n </eo-split>\n</eo-undock-split>\n",
24385
+ styles: [":host{bottom:var(--app-pane-padding);left:var(--app-pane-padding);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host eo-split-area{background-color:var(--panel-background-grey);box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}:host .inboxChanged,:host .inboxChanged:hover{background:var(--color-success);color:#fff}:host ::ng-deep .ag-cell .list-item{align-items:center;display:flex;flex:1;flex-direction:row;height:80px;min-height:0;min-width:0}:host ::ng-deep .ag-cell .list-item[unselectable]{-moz-user-select:none;-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{display:inline-block;flex:1;max-width:none;overflow:hidden;padding:var(--app-pane-padding);text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .notes>span{-webkit-border-radius:2px;background-color:var(--color-primary-4);border-radius:2px;color:var(--color-white);font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding)/4) 0 calc(var(--app-pane-padding)/4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-size:var(--font-body);font-weight:var(--font-weight-bold)}:host ::ng-deep .ag-cell .list-item .content .description{color:var(--text-color-caption);font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .meta{align-items:flex-end;display:flex;flex-flow:column;padding:0 calc(var(--app-pane-padding)/2)}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .type-filters .option{margin:1.5em 0}:host ::ng-deep .inbox-filters{bottom:15px;left:25px;position:relative}"]
24279
24386
  },] }
24280
24387
  ];
24281
24388
  InboxStateComponent.ctorParameters = () => [
@@ -24544,5 +24651,5 @@ EoClientModule.ctorParameters = () => [
24544
24651
  * Generated bundle index. Do not edit.
24545
24652
  */
24546
24653
 
24547
- 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, DeleteActionComponent as ɵbl, DeleteComponent as ɵbm, OpenVersionsActionComponent as ɵbn, RestoreVersionActionComponent as ɵbo, DeletePreparedActionComponent as ɵbp, AddSubscriptionActionComponent as ɵbq, AddSubscriptionComponent as ɵbr, RemoveSubscriptionActionComponent as ɵbs, WorkflowActionComponent as ɵbt, WorkflowComponent as ɵbu, CustomActionsComponent as ɵbv, AddResubmissionActionComponent as ɵbw, AddResubmissionComponent as ɵbx, UpdateResubmissionActionComponent as ɵby, ShareObjectActionComponent as ɵbz, AppShellRoutingModule as ɵc, ShareObjectComponent as ɵca, CutActionComponent as ɵcb, FinalizeActionComponent as ɵcc, DefinalizeActionComponent as ɵcd, DeleteContentActionComponent as ɵce, UnlockActionComponent as ɵcf, SimpleWorkflowActionComponent as ɵcg, FavoriteActionComponent 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 };
24654
+ 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, DownloadActionComponent as ɵba, DownloadOriginalActionComponent as ɵbb, DownloadPdfActionComponent as ɵbc, OpenDocumentActionComponent as ɵbd, EmailActionComponent as ɵbe, EmailLinkActionComponent as ɵbf, EmailOriginalActionComponent as ɵbg, EmailPdfActionComponent as ɵbh, ClipboardActionComponent as ɵbi, ClipboardLinkActionComponent as ɵbj, ClipboardOriginalActionComponent as ɵbk, ClipboardPdfActionComponent 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, FinalizeObjectActionComponent as ɵce, DefinalizeActionComponent as ɵcf, DeleteContentActionComponent as ɵcg, UnlockActionComponent as ɵch, SimpleWorkflowActionComponent as ɵci, FavoriteActionComponent as ɵcj, PreventDoubleClickDirective as ɵck, UserAvatarComponent as ɵcl, EditIconComponent as ɵcm, DuetimeInfoComponent as ɵcn, PrepareContentExistsInfoComponent 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, TrapFocusDirective as ɵh, IndexdataSummaryEntryComponent as ɵi, OrderByPipe as ɵj, TreeNodeComponent as ɵk, DatepickerService as ɵl, YearRangeDirective as ɵm, ReferenceFinderComponent as ɵn, fadeInOut as ɵo, ReferenceFinderService as ɵp, ReferenceFinderEntryComponent as ɵq, DynamicListFilterComponent as ɵr, ListFilterComponent as ɵs, PaginationComponent as ɵt, ProcessFormModule as ɵu, ProcessFormComponent as ɵv, ActionComponentAnchorDirective as ɵw, OpenDocumentComponent as ɵx, CopyActionComponent as ɵy, OpenContextActionComponent as ɵz };
24548
24655
  //# sourceMappingURL=eo-sdk-client.js.map