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

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 (75) 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 +6 -2
  3. package/app/eo-framework/actions/action.module.d.ts +3 -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/delete-content-action/delete-content/delete-content.component.d.ts +22 -0
  8. package/app/eo-framework/actions/actions/delete-content-action/delete-content-action.d.ts +6 -7
  9. package/app/eo-framework/actions/actions/finalize/finalize-action.d.ts +5 -5
  10. package/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.d.ts +14 -0
  11. package/app/eo-framework/actions/actions/open-context-action/open-context-action.d.ts +1 -0
  12. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts +5 -2
  13. package/app/eo-framework/form-elements/organization/organization.component.d.ts +3 -2
  14. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +0 -1
  15. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts +8 -4
  16. package/app/eo-framework/util/directive/prevent-double-click.directive.d.ts +1 -0
  17. package/assets/_default/i18n/de.json +12 -6
  18. package/assets/_default/i18n/en.json +12 -5
  19. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +547 -515
  20. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  21. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -3
  22. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  23. package/bundles/eo-sdk-client.umd.js +432 -242
  24. package/bundles/eo-sdk-client.umd.js.map +1 -1
  25. package/bundles/eo-sdk-client.umd.min.js +1 -1
  26. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  27. package/eo-sdk-client.d.ts +66 -65
  28. package/eo-sdk-client.metadata.json +1 -1
  29. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  30. package/esm2015/app/eo-client/dashboard/dashboard.component.js +2 -4
  31. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +9 -7
  32. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox.types.enum.js +3 -3
  33. package/esm2015/app/eo-client/object-state/object-state/object-state.component.js +2 -2
  34. package/esm2015/app/eo-framework/actions/action-menu/action-menu.component.js +40 -7
  35. package/esm2015/app/eo-framework/actions/action.module.js +7 -1
  36. package/esm2015/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.js +7 -3
  37. package/esm2015/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.js +8 -4
  38. package/esm2015/app/eo-framework/actions/actions/delete-action/delete/delete.component.js +11 -4
  39. package/esm2015/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.js +60 -0
  40. package/esm2015/app/eo-framework/actions/actions/delete-content-action/delete-content-action.js +5 -17
  41. package/esm2015/app/eo-framework/actions/actions/finalize/finalize-action.js +12 -11
  42. package/esm2015/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.js +39 -0
  43. package/esm2015/app/eo-framework/actions/actions/open-context-action/open-context-action.js +6 -2
  44. package/esm2015/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.js +44 -17
  45. package/esm2015/app/eo-framework/app-shell/app-shell.module.js +1 -3
  46. package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +5 -2
  47. package/esm2015/app/eo-framework/form-elements/string/string.component.js +2 -2
  48. package/esm2015/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.js +2 -4
  49. package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +30 -17
  50. package/esm2015/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.js +2 -2
  51. package/esm2015/app/eo-framework/grid/filters/codesystem-filter.component.js +2 -2
  52. package/esm2015/app/eo-framework/grid/filters/dynamic-list-filter.component.js +1 -2
  53. package/esm2015/app/eo-framework/grid/filters/list-filter.component.js +2 -3
  54. package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +3 -3
  55. package/esm2015/app/eo-framework/media/media.component.js +2 -2
  56. package/esm2015/app/eo-framework/result-list/result-list.module.js +2 -2
  57. package/esm2015/app/eo-framework/tree/tree.component.js +2 -2
  58. package/esm2015/app/eo-framework/ui/ui.module.js +6 -3
  59. package/esm2015/app/eo-framework/util/directive/prevent-double-click.directive.js +8 -2
  60. package/esm2015/eo-sdk-client.js +67 -66
  61. package/esm2015/projects/eo-sdk/core/lib/model/inbox-item.model.js +2 -2
  62. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +35 -9
  63. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +10 -11
  64. package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +11 -1
  65. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +54 -19
  66. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  67. package/fesm2015/eo-sdk-client.js +353 -172
  68. package/fesm2015/eo-sdk-client.js.map +1 -1
  69. package/package.json +2 -2
  70. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  71. package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts +2 -2
  72. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +1 -0
  73. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +3 -2
  74. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +5 -0
  75. 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
  ];
@@ -5565,7 +5635,7 @@ class TreeComponent {
5565
5635
  }
5566
5636
  // Recursive function walking the tree nodes and setting the nodes `selected` flags
5567
5637
  updateTreeNode(node, parents) {
5568
- node.selected = !!this.selectedNodes.find(n => node.id === n.value);
5638
+ node.selected = !!this.selectedNodes.find(n => node.id === n.id);
5569
5639
  node.expanded = this._expandedNodes.length ? !!this._expandedNodes.find(id => id === node.id) : node.expanded;
5570
5640
  node.highlighted = !!this._highlightedNodes.find(id => id === node.id);
5571
5641
  node.focused = this.focusedNode && this.focusedNode.id === node.id ? this.focusedNode.focused : false;
@@ -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 = () => [
@@ -8262,7 +8335,7 @@ class StringComponent {
8262
8335
  return false;
8263
8336
  }
8264
8337
  autocompleteFn(evt) {
8265
- const uri = `/autocomplete/element?prefix=${evt.query}&qname=${this.qname}`;
8338
+ const uri = `/autocomplete/element?prefix=${encodeURIComponent(evt.query)}&qname=${this.qname}`;
8266
8339
  const base = this.backend.getSearchBase();
8267
8340
  this.backend
8268
8341
  .getJson(uri, base)
@@ -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,13 +13106,24 @@ 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;
13043
13113
  }
13114
+ else {
13115
+ this.savedFilters = this.storageService.getItem('eo.inbox.filter.suggestions') ? this.storageService.getItem('eo.inbox.filter.suggestions') : [];
13116
+ }
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();
13044
13127
  }
13045
13128
  focus() {
13046
13129
  if (!this.focused) {
@@ -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
 
@@ -13939,7 +14021,7 @@ class MediaComponent extends UnsubscribeOnDestroy {
13939
14021
  "viewer": "viewer/view/api/video/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}"
13940
14022
  },
13941
14023
  {
13942
- "mimeType": ["image/jpeg", "image/png", "image/apng", "image/gif", "image/svg+xml", "image/webp"],
14024
+ "mimeType": ["image/tiff", "image/jpeg", "image/png", "image/apng", "image/gif", "image/svg+xml", "image/webp"],
13943
14025
  "viewer": "viewer/view/api/img/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}"
13944
14026
  },
13945
14027
  {
@@ -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: []
@@ -14535,6 +14624,7 @@ class ActionMenuComponent extends UnsubscribeOnDestroy {
14535
14624
  this.showComponent = false;
14536
14625
  this.showMenu = false;
14537
14626
  this.loading = false;
14627
+ this.activeActionIndex = 0;
14538
14628
  // subscribe for visibility observable indicating whether to show or hide the actions
14539
14629
  this.actionService
14540
14630
  .actionsShowing$.pipe(takeUntil(this.componentDestroyed$))
@@ -14577,12 +14667,39 @@ class ActionMenuComponent extends UnsubscribeOnDestroy {
14577
14667
  event.preventDefault();
14578
14668
  this.actionDescription = i === this.actionDescription ? null : i;
14579
14669
  }
14670
+ catchFocus() {
14671
+ setTimeout(() => {
14672
+ this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
14673
+ });
14674
+ }
14675
+ isArrowUpOrDownPressed(event) {
14676
+ const key = event.key;
14677
+ let length = this.actionLists.common.length + this.actionLists.further.length - 1;
14678
+ if (key === 'ArrowUp') {
14679
+ this.activeActionIndex = (this.activeActionIndex === 0) ? length : this.activeActionIndex - 1;
14680
+ }
14681
+ else if (key === 'ArrowDown') {
14682
+ this.activeActionIndex = (this.activeActionIndex === length) ? 0 : this.activeActionIndex + 1;
14683
+ }
14684
+ else if (key === 'Enter') {
14685
+ let clickedListEntry;
14686
+ if (this.activeActionIndex < this.actionLists.common.length) {
14687
+ clickedListEntry = this.actionLists.common[this.activeActionIndex];
14688
+ }
14689
+ else {
14690
+ clickedListEntry = this.actionLists.further[this.activeActionIndex - this.actionLists.common.length];
14691
+ }
14692
+ this.onClick(clickedListEntry);
14693
+ }
14694
+ }
14580
14695
  showActionMenu() {
14696
+ this.activeActionIndex = 0;
14581
14697
  this.getActions();
14582
14698
  if (this.target === 'DMS_OBJECT') {
14583
14699
  this.getMoreActions();
14584
14700
  }
14585
14701
  this.showMenu = true;
14702
+ this.catchFocus();
14586
14703
  }
14587
14704
  hideActionMenu() {
14588
14705
  this.clear();
@@ -14623,8 +14740,10 @@ class ActionMenuComponent extends UnsubscribeOnDestroy {
14623
14740
  this.showActionComponent(extComponentAction.extComponents, this.externalDialog, this.componentFactoryResolver, false);
14624
14741
  }
14625
14742
  else if (isWorkFlowAction) {
14626
- const extComponentAction = actionListEntry.action;
14627
- this.showActionComponent(extComponentAction.extComponents, this.externalDialog, this.componentFactoryResolver, false, { executableProcess: extComponentAction.executableProcess });
14743
+ setTimeout(() => {
14744
+ const extComponentAction = actionListEntry.action;
14745
+ this.showActionComponent(extComponentAction.extComponents, this.externalDialog, this.componentFactoryResolver, false, { executableProcess: extComponentAction.executableProcess });
14746
+ });
14628
14747
  }
14629
14748
  }
14630
14749
  showActionComponent(component, viewContRef, factoryResolver, showComponent, inputs) {
@@ -14657,6 +14776,7 @@ class ActionMenuComponent extends UnsubscribeOnDestroy {
14657
14776
  }
14658
14777
  onCancel() {
14659
14778
  this.clear();
14779
+ this.catchFocus();
14660
14780
  }
14661
14781
  onFinish() {
14662
14782
  this.hideActionMenu();
@@ -14665,15 +14785,16 @@ class ActionMenuComponent extends UnsubscribeOnDestroy {
14665
14785
  ActionMenuComponent.decorators = [
14666
14786
  { type: Component, args: [{
14667
14787
  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",
14788
+ 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\" (keydown)=\"isArrowUpOrDownPressed($event)\">\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; let i = index\"\n (click)=\"onClick(actionListEntry)\" [ngClass]=\"{active: activeActionIndex === i}\">\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\"\n eoPreventDoubleClick [ngClass]=\"{active: activeActionIndex === i + actionLists?.common.length }\"\n (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",
14669
14789
  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}"]
14790
+ 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.active{background:rgba(var(--color-white-rgb),.1)}.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}"]
14671
14791
  },] }
14672
14792
  ];
14673
14793
  ActionMenuComponent.ctorParameters = () => [
14674
14794
  { type: ActionService },
14675
14795
  { type: Router },
14676
14796
  { type: ViewContainerRef },
14797
+ { type: ElementRef },
14677
14798
  { type: ComponentFactoryResolver }
14678
14799
  ];
14679
14800
  ActionMenuComponent.propDecorators = {
@@ -14736,7 +14857,7 @@ class OpenContextActionComponent extends DmsObjectTarget {
14736
14857
  this.description = this.translate.instant('eo.shortcuts.action.open.context.description');
14737
14858
  }
14738
14859
  isExecutable(item) {
14739
- const isExecutable = !this.isFolder(item) || (this.isFolder(item) && this.isNotInObjectState());
14860
+ const isExecutable = (!this.isFolder(item) && this.isNotAlreadyOpened(item.id)) || (this.isFolder(item) && this.isNotInObjectState());
14740
14861
  return of(isExecutable);
14741
14862
  }
14742
14863
  getParams(selection) {
@@ -14757,6 +14878,10 @@ class OpenContextActionComponent extends DmsObjectTarget {
14757
14878
  const disabledStates = ['/object'];
14758
14879
  return !disabledStates.some(s => this.router.url.includes(s));
14759
14880
  }
14881
+ isNotAlreadyOpened(id) {
14882
+ const disabledStates = ['/object/' + id];
14883
+ return !disabledStates.some(s => this.router.url.includes(s));
14884
+ }
14760
14885
  }
14761
14886
  OpenContextActionComponent.decorators = [
14762
14887
  { type: Component, args: [{
@@ -15369,13 +15494,14 @@ FavoriteActionComponent.ctorParameters = () => [
15369
15494
  ];
15370
15495
 
15371
15496
  class DeleteComponent {
15372
- constructor(translate, backend, toast, router, capabilitiesService, dmsService, eventService) {
15497
+ constructor(translate, backend, toast, router, capabilitiesService, dmsService, elemRef, eventService) {
15373
15498
  this.translate = translate;
15374
15499
  this.backend = backend;
15375
15500
  this.toast = toast;
15376
15501
  this.router = router;
15377
15502
  this.capabilitiesService = capabilitiesService;
15378
15503
  this.dmsService = dmsService;
15504
+ this.elemRef = elemRef;
15379
15505
  this.eventService = eventService;
15380
15506
  this.deleting = false;
15381
15507
  this.folder = '';
@@ -15424,6 +15550,11 @@ class DeleteComponent {
15424
15550
  isExpired(dateString) {
15425
15551
  return new Date(dateString).setHours(0, 0, 0, 0) < new Date().setHours(0, 0, 0, 0);
15426
15552
  }
15553
+ ngAfterViewInit() {
15554
+ setTimeout(() => {
15555
+ this.elemRef.nativeElement.querySelector('.primary').focus();
15556
+ });
15557
+ }
15427
15558
  ngOnInit() {
15428
15559
  if (this.selection[0].isContextFolder) {
15429
15560
  this.folder = this.selection[0].title;
@@ -15442,7 +15573,7 @@ class DeleteComponent {
15442
15573
  DeleteComponent.decorators = [
15443
15574
  { type: Component, args: [{
15444
15575
  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",
15576
+ 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
15577
  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
15578
  },] }
15448
15579
  ];
@@ -15453,6 +15584,7 @@ DeleteComponent.ctorParameters = () => [
15453
15584
  { type: Router },
15454
15585
  { type: CapabilitiesService },
15455
15586
  { type: DmsService },
15587
+ { type: ElementRef },
15456
15588
  { type: EventService }
15457
15589
  ];
15458
15590
  DeleteComponent.propDecorators = {
@@ -15677,6 +15809,9 @@ class AddSubscriptionComponent {
15677
15809
  ]
15678
15810
  };
15679
15811
  }
15812
+ setTimeout(() => {
15813
+ this.titleField.nativeElement.getElementsByTagName('input')[0].select();
15814
+ });
15680
15815
  }
15681
15816
  get titleValidity() {
15682
15817
  return this.addSubscriptionForm.get('titleFieldFCN').invalid;
@@ -15724,7 +15859,7 @@ class AddSubscriptionComponent {
15724
15859
  AddSubscriptionComponent.decorators = [
15725
15860
  { type: Component, args: [{
15726
15861
  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",
15862
+ 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
15863
  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
15864
  },] }
15730
15865
  ];
@@ -15737,7 +15872,8 @@ AddSubscriptionComponent.ctorParameters = () => [
15737
15872
  AddSubscriptionComponent.propDecorators = {
15738
15873
  selection: [{ type: Input }],
15739
15874
  finished: [{ type: Output }],
15740
- canceled: [{ type: Output }]
15875
+ canceled: [{ type: Output }],
15876
+ titleField: [{ type: ViewChild, args: ['titleField', { static: true },] }]
15741
15877
  };
15742
15878
 
15743
15879
  class AddSubscriptionActionComponent extends DmsObjectTarget {
@@ -15984,12 +16120,15 @@ class AddResubmissionComponent {
15984
16120
  this.inboxCbLabel = this.translate.instant('eo.resubmission.field.notification.inbox');
15985
16121
  this.emailCbLabel = this.translate.instant('eo.resubmission.field.notification.email');
15986
16122
  this.createResubmissionForm();
16123
+ setTimeout(() => {
16124
+ this.titleField.nativeElement.getElementsByTagName('input')[0].select();
16125
+ });
15987
16126
  }
15988
16127
  }
15989
16128
  AddResubmissionComponent.decorators = [
15990
16129
  { type: Component, args: [{
15991
16130
  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",
16131
+ 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
16132
  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
16133
  },] }
15995
16134
  ];
@@ -16001,6 +16140,7 @@ AddResubmissionComponent.ctorParameters = () => [
16001
16140
  ];
16002
16141
  AddResubmissionComponent.propDecorators = {
16003
16142
  selection: [{ type: Input }],
16143
+ titleField: [{ type: ViewChild, args: ['titleField', { static: true },] }],
16004
16144
  finished: [{ type: Output }],
16005
16145
  canceled: [{ type: Output }]
16006
16146
  };
@@ -16084,10 +16224,11 @@ UpdateResubmissionActionComponent.ctorParameters = () => [
16084
16224
  ];
16085
16225
 
16086
16226
  class ShareObjectComponent {
16087
- constructor(translate, dms, toast) {
16227
+ constructor(translate, dms, toast, elemRef) {
16088
16228
  this.translate = translate;
16089
16229
  this.dms = dms;
16090
16230
  this.toast = toast;
16231
+ this.elemRef = elemRef;
16091
16232
  this.finished = new EventEmitter();
16092
16233
  this.canceled = new EventEmitter();
16093
16234
  this.dataMeta = [];
@@ -16101,35 +16242,60 @@ class ShareObjectComponent {
16101
16242
  }
16102
16243
  ngOnInit() {
16103
16244
  let orgaValue = [];
16104
- const shareChildren = this.selection[0].shares[0] ? this.selection[0].shares[0].sharechildren : true;
16105
- this.includeChildrenField.setValue(shareChildren);
16245
+ let shareChildren = [];
16246
+ this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
16106
16247
  if (this.selection[0].isFolder) {
16107
16248
  this.header = this.translate.instant('eo.manage.rights.folder.title');
16108
16249
  }
16109
- this.selection[0].additionalvisibility.forEach(avObject => {
16110
- orgaValue.push(avObject.name);
16250
+ this.selection[0].shares.forEach(avObject => {
16251
+ if (avObject.sharechildren === true) {
16252
+ shareChildren.push(avObject.name);
16253
+ }
16254
+ else {
16255
+ orgaValue.push(avObject.name);
16256
+ }
16111
16257
  });
16112
16258
  this.orgaField.setValue(orgaValue);
16113
- this.dataMeta = this.dataMeta.concat(this.selection[0].additionalvisibility);
16259
+ this.includeChildrenField.setValue(shareChildren);
16114
16260
  }
16115
16261
  shareMessage() {
16262
+ let shared = '';
16263
+ let field = '';
16116
16264
  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));
16265
+ shared = this.orgaField.value.toString();
16266
+ }
16267
+ else if (this.includeChildrenField.value.length > 0) {
16268
+ shared = this.includeChildrenField.value.toString();
16121
16269
  }
16122
16270
  else {
16123
- this.toast.info(this.translate.instant('eo.manage.rights.message.notshared'));
16271
+ this.toast.success(this.translate.instant('eo.manage.rights.message.notshared'));
16272
+ return;
16273
+ }
16274
+ field = 'eo.manage.rights.message';
16275
+ if (this.orgaField.value.length > 0 && this.includeChildrenField.value.length > 0) {
16276
+ shared = `${this.orgaField.value.toString()}, ${this.includeChildrenField.value.toString()}`;
16124
16277
  }
16278
+ this.translate.get(field, {
16279
+ title: this.selection[0].title,
16280
+ shared: shared,
16281
+ }).subscribe(val => this.toast.success(val));
16125
16282
  }
16126
16283
  save() {
16127
- this.dms.setOrganizationObjectsWithReadRights(this.selection, this.orgaField.value, this.includeChildrenField.value)
16284
+ this.objectId = this.selection[0].id;
16285
+ this.dms.setOrganizationObjectsWithReadRights(this.selection, this.objectId, this.orgaField.value, this.includeChildrenField.value)
16128
16286
  .subscribe(() => {
16129
16287
  this.shareMessage();
16130
16288
  this.finished.emit();
16131
16289
  });
16132
16290
  }
16291
+ stop() {
16292
+ this.objectId = this.selection[0].id;
16293
+ this.dms.setOrganizationObjectsWithReadRights(this.selection, this.objectId, [], [])
16294
+ .subscribe(() => {
16295
+ this.toast.success(this.translate.instant('eo.manage.rights.message.notshared'));
16296
+ this.finished.emit();
16297
+ });
16298
+ }
16133
16299
  cancel() {
16134
16300
  this.canceled.emit();
16135
16301
  }
@@ -16137,14 +16303,15 @@ class ShareObjectComponent {
16137
16303
  ShareObjectComponent.decorators = [
16138
16304
  { type: Component, args: [{
16139
16305
  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}"]
16306
+ 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",
16307
+ 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
16308
  },] }
16143
16309
  ];
16144
16310
  ShareObjectComponent.ctorParameters = () => [
16145
16311
  { type: TranslateService },
16146
16312
  { type: DmsService },
16147
- { type: NotificationsService }
16313
+ { type: NotificationsService },
16314
+ { type: ElementRef }
16148
16315
  ];
16149
16316
 
16150
16317
  class ShareObjectActionComponent extends DmsObjectTarget {
@@ -16220,6 +16387,43 @@ CutActionComponent.ctorParameters = () => [
16220
16387
  { type: ActionService }
16221
16388
  ];
16222
16389
 
16390
+ class FinalizeObjectActionComponent {
16391
+ constructor(elemRef, dmsService) {
16392
+ this.elemRef = elemRef;
16393
+ this.dmsService = dmsService;
16394
+ this.finished = new EventEmitter();
16395
+ this.canceled = new EventEmitter();
16396
+ }
16397
+ onClick() {
16398
+ this.dmsService.finalize(this.selection[0]).subscribe();
16399
+ this.finished.emit();
16400
+ }
16401
+ cancel() {
16402
+ this.canceled.emit();
16403
+ }
16404
+ ngAfterViewInit() {
16405
+ setTimeout(() => {
16406
+ this.elemRef.nativeElement.querySelector('.primary').focus();
16407
+ });
16408
+ }
16409
+ }
16410
+ FinalizeObjectActionComponent.decorators = [
16411
+ { type: Component, args: [{
16412
+ selector: 'eo-finalize-object-action',
16413
+ 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>",
16414
+ 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}"]
16415
+ },] }
16416
+ ];
16417
+ FinalizeObjectActionComponent.ctorParameters = () => [
16418
+ { type: ElementRef },
16419
+ { type: DmsService }
16420
+ ];
16421
+ FinalizeObjectActionComponent.propDecorators = {
16422
+ selection: [{ type: Input }],
16423
+ finished: [{ type: Output }],
16424
+ canceled: [{ type: Output }]
16425
+ };
16426
+
16223
16427
  class FinalizeActionComponent extends DmsObjectTarget {
16224
16428
  constructor(translate, dmsService) {
16225
16429
  super();
@@ -16228,26 +16432,23 @@ class FinalizeActionComponent extends DmsObjectTarget {
16228
16432
  this.priority = 13;
16229
16433
  this.iconSrc = 'assets/_default/svg/ic_finalized.svg';
16230
16434
  this.group = 'common';
16231
- this.range = SelectionRange.MULTI_SELECT;
16435
+ this.range = SelectionRange.SINGLE_SELECT;
16436
+ this.component = FinalizeObjectActionComponent;
16232
16437
  this.label = this.translate.instant('eo.action.finalize.label');
16233
16438
  this.description = this.translate.instant('eo.action.finalize.description');
16234
16439
  }
16235
16440
  isExecutable(item) {
16236
16441
  return of((item.rights && item.rights.finalize) && !item.lock && !item.isFinalized && !window.location.href.includes('/versions'));
16237
16442
  }
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
16443
  }
16444
+ FinalizeActionComponent.ɵprov = ɵɵdefineInjectable({ factory: function FinalizeActionComponent_Factory() { return new FinalizeActionComponent(ɵɵinject(TranslateService$1), ɵɵinject(DmsService)); }, token: FinalizeActionComponent, providedIn: "root" });
16247
16445
  FinalizeActionComponent.decorators = [
16248
16446
  { type: Component, args: [{
16249
16447
  selector: 'eo-finalize-action',
16250
16448
  template: ``
16449
+ },] },
16450
+ { type: Injectable, args: [{
16451
+ providedIn: 'root'
16251
16452
  },] }
16252
16453
  ];
16253
16454
  FinalizeActionComponent.ctorParameters = () => [
@@ -16291,17 +16492,72 @@ DefinalizeActionComponent.ctorParameters = () => [
16291
16492
  { type: DmsService }
16292
16493
  ];
16293
16494
 
16495
+ class DeleteContentComponent {
16496
+ constructor(translate, backend, toast, router, capabilitiesService, dmsService, elemRef) {
16497
+ this.translate = translate;
16498
+ this.backend = backend;
16499
+ this.toast = toast;
16500
+ this.router = router;
16501
+ this.capabilitiesService = capabilitiesService;
16502
+ this.dmsService = dmsService;
16503
+ this.elemRef = elemRef;
16504
+ this.deleting = false;
16505
+ this.finished = new EventEmitter();
16506
+ this.canceled = new EventEmitter();
16507
+ }
16508
+ run() {
16509
+ this.deleting = true;
16510
+ this.selection.forEach(item => {
16511
+ this.dmsService.removeContent(item).subscribe(() => {
16512
+ this.toast.success(item.title, this.translate.instant('eo.action.delete.content.success'));
16513
+ this.finished.emit();
16514
+ }, () => {
16515
+ this.toast.error(item.title, this.translate.instant('eo.action.delete.content.error'));
16516
+ this.finished.emit();
16517
+ });
16518
+ });
16519
+ }
16520
+ cancel() {
16521
+ this.canceled.emit();
16522
+ }
16523
+ ngAfterViewInit() {
16524
+ setTimeout(() => {
16525
+ this.elemRef.nativeElement.querySelector('.primary').focus();
16526
+ });
16527
+ }
16528
+ }
16529
+ DeleteContentComponent.decorators = [
16530
+ { type: Component, args: [{
16531
+ selector: 'eo-delete-content',
16532
+ template: "<div class=\"eo-delete\" eoTrapFocus>\n\n <h2 translate [translateParams]=\"{item: selection[0].title}\">eo.action.delete.content.confirm.message</h2>\n\n <div *ngIf=\"!deleting\">\n <div class=\"form-buttons\">\n <button (click)=\"cancel()\" translate>eo.checkout.cancel</button>\n <button 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",
16533
+ 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}"]
16534
+ },] }
16535
+ ];
16536
+ DeleteContentComponent.ctorParameters = () => [
16537
+ { type: TranslateService },
16538
+ { type: BackendService },
16539
+ { type: NotificationsService },
16540
+ { type: Router },
16541
+ { type: CapabilitiesService },
16542
+ { type: DmsService },
16543
+ { type: ElementRef }
16544
+ ];
16545
+ DeleteContentComponent.propDecorators = {
16546
+ selection: [{ type: Input }],
16547
+ finished: [{ type: Output }],
16548
+ canceled: [{ type: Output }]
16549
+ };
16550
+
16294
16551
  class DeleteContentActionComponent extends DmsObjectTarget {
16295
- constructor(router, translate, dms, notificationService) {
16552
+ constructor(router, translate) {
16296
16553
  super();
16297
16554
  this.router = router;
16298
16555
  this.translate = translate;
16299
- this.dms = dms;
16300
- this.notificationService = notificationService;
16301
16556
  this.priority = 8.1;
16302
16557
  this.iconSrc = 'assets/_default/svg/ic_delete_sweep.svg';
16303
16558
  this.group = 'common';
16304
16559
  this.range = SelectionRange.MULTI_SELECT;
16560
+ this.component = DeleteContentComponent;
16305
16561
  this.label = this.translate.instant('eo.action.delete.content.label');
16306
16562
  this.description = this.translate.instant('eo.action.delete.content.description');
16307
16563
  }
@@ -16310,15 +16566,6 @@ class DeleteContentActionComponent extends DmsObjectTarget {
16310
16566
  const hasContent = item.content && item.content.id === item.id;
16311
16567
  return of(this.isAllowedState() && !item.isFinalized && hasContent && item.rights.edit && !isLocked && item.type.minFiles === 0);
16312
16568
  }
16313
- run(selection) {
16314
- selection.forEach(item => {
16315
- this.dms.removeContent(item).subscribe(() => {
16316
- this.notificationService.success(item.title, this.translate.instant('eo.action.delete.content.success'));
16317
- }, () => {
16318
- this.notificationService.error(item.title, this.translate.instant('eo.action.delete.content.error'));
16319
- });
16320
- });
16321
- }
16322
16569
  isAllowedState() {
16323
16570
  const disabledStates = ['/versions'];
16324
16571
  return !disabledStates.some(s => this.router.url.startsWith(s));
@@ -16332,9 +16579,7 @@ DeleteContentActionComponent.decorators = [
16332
16579
  ];
16333
16580
  DeleteContentActionComponent.ctorParameters = () => [
16334
16581
  { type: Router },
16335
- { type: TranslateService },
16336
- { type: DmsService },
16337
- { type: NotificationsService }
16582
+ { type: TranslateService }
16338
16583
  ];
16339
16584
 
16340
16585
  class UnlockActionComponent extends DmsObjectTarget {
@@ -16459,7 +16704,9 @@ const entryComponents = [
16459
16704
  ShareObjectComponent,
16460
16705
  CutActionComponent,
16461
16706
  FinalizeActionComponent,
16707
+ FinalizeObjectActionComponent,
16462
16708
  DefinalizeActionComponent,
16709
+ DeleteContentComponent,
16463
16710
  DeleteContentActionComponent,
16464
16711
  UnlockActionComponent,
16465
16712
  SimpleWorkflowActionComponent
@@ -16547,7 +16794,9 @@ ActionModule.decorators = [
16547
16794
  ShareObjectComponent,
16548
16795
  CutActionComponent,
16549
16796
  FinalizeActionComponent,
16797
+ FinalizeObjectActionComponent,
16550
16798
  DefinalizeActionComponent,
16799
+ DeleteContentComponent,
16551
16800
  DeleteContentActionComponent,
16552
16801
  UnlockActionComponent,
16553
16802
  SimpleWorkflowActionComponent,
@@ -16618,73 +16867,6 @@ AppLayoutComponent.propDecorators = {
16618
16867
  undockArea: [{ type: Input }]
16619
16868
  };
16620
16869
 
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
16870
  /**
16689
16871
  * Module holding the base components of the application shell like application bar, side, search etc.
16690
16872
  */
@@ -16719,7 +16901,6 @@ EoAppShellModule.decorators = [
16719
16901
  AppLayoutComponent,
16720
16902
  ContextSearchComponent,
16721
16903
  AppProcessComponent,
16722
- TrapFocusDirective,
16723
16904
  ]
16724
16905
  },] }
16725
16906
  ];
@@ -17965,13 +18146,6 @@ StoredQueryModule.decorators = [
17965
18146
  },] }
17966
18147
  ];
17967
18148
 
17968
- var TypeFilter;
17969
- (function (TypeFilter) {
17970
- TypeFilter["favored"] = "favorite";
17971
- TypeFilter["shared"] = "roles";
17972
- TypeFilter["others"] = "others";
17973
- })(TypeFilter || (TypeFilter = {}));
17974
-
17975
18149
  class ResultListModule {
17976
18150
  }
17977
18151
  ResultListModule.decorators = [
@@ -21973,6 +22147,13 @@ const listAnimation = trigger('listAnimation', [
21973
22147
  ])
21974
22148
  ]);
21975
22149
 
22150
+ var TypeFilter;
22151
+ (function (TypeFilter) {
22152
+ TypeFilter["favored"] = "favorite";
22153
+ TypeFilter["shared"] = "roles";
22154
+ TypeFilter["others"] = "others";
22155
+ })(TypeFilter || (TypeFilter = {}));
22156
+
21976
22157
  class DashboardComponent extends UnsubscribeOnDestroy {
21977
22158
  constructor(userService, titleService, router, route, config, searchService, authService, systemService, inboxService, prepareService, envService, capabilityService, storedQueriesService) {
21978
22159
  super();
@@ -22086,9 +22267,7 @@ class DashboardComponent extends UnsubscribeOnDestroy {
22086
22267
  .pipe(takeUntil(this.componentDestroyed$))
22087
22268
  .subscribe(user => {
22088
22269
  this.user = user;
22089
- if (!this.isCloud) {
22090
- this.captureObjectLists();
22091
- }
22270
+ this.captureObjectLists();
22092
22271
  });
22093
22272
  this.capabilities = this.capabilityService.getCapabilities();
22094
22273
  if (this.capabilities.storedqueries) {
@@ -22681,10 +22860,10 @@ class AboutStateComponent {
22681
22860
  this.backend = backend;
22682
22861
  this.userService = userService;
22683
22862
  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" }];
22863
+ 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.2", "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
22864
  this.ctrl = {
22686
22865
  componentName: 'yuuvis® RAD client',
22687
- componentVersion: '9.1.0-rc.1',
22866
+ componentVersion: '9.2.0-rc.2',
22688
22867
  productName: '',
22689
22868
  productVersion: ''
22690
22869
  };
@@ -24032,7 +24211,7 @@ class ObjectStateComponent extends UnsubscribeOnDestroy {
24032
24211
  ObjectStateComponent.decorators = [
24033
24212
  { type: Component, args: [{
24034
24213
  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",
24214
+ 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
24215
  providers: [ObjectStateService],
24037
24216
  animations: [panelLoadingAnimations],
24038
24217
  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 +24266,8 @@ ObjectStateModule.decorators = [
24087
24266
 
24088
24267
  var InboxTypesFilter;
24089
24268
  (function (InboxTypesFilter) {
24090
- InboxTypesFilter["mytasks"] = "mytasks";
24091
- InboxTypesFilter["opentasks"] = "opentasks";
24269
+ InboxTypesFilter["acceptedTasks"] = "acceptedtasks";
24270
+ InboxTypesFilter["unacceptedTasks"] = "unacceptedtasks";
24092
24271
  InboxTypesFilter["absent"] = "isdeputy";
24093
24272
  InboxTypesFilter["overdue"] = "overdue";
24094
24273
  })(InboxTypesFilter || (InboxTypesFilter = {}));
@@ -24164,15 +24343,17 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
24164
24343
  }
24165
24344
  itemFilterFields(node, item) {
24166
24345
  const value = node.data[InboxTypesFilter[item]];
24346
+ const acceptedAndUnacceptedCombined = this.inboxFilterFields.find(filter => filter.id === 'acceptedTasks').value
24347
+ && this.inboxFilterFields.find(filter => filter.id === 'unacceptedTasks').value;
24167
24348
  switch (InboxTypesFilter[item]) {
24168
24349
  case InboxTypesFilter.overdue:
24169
24350
  return node.data.isOverdue();
24170
24351
  case InboxTypesFilter.absent:
24171
24352
  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);
24353
+ case InboxTypesFilter.acceptedTasks:
24354
+ return acceptedAndUnacceptedCombined ? node.data.type === 'BPM' : node.data.type === 'BPM' && !!node.data.accepted;
24355
+ case InboxTypesFilter.unacceptedTasks:
24356
+ return acceptedAndUnacceptedCombined ? node.data.type === 'BPM' : node.data.type === 'BPM' && !node.data.accepted;
24176
24357
  }
24177
24358
  }
24178
24359
  fieldFilters() {
@@ -24274,8 +24455,8 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
24274
24455
  InboxStateComponent.decorators = [
24275
24456
  { type: Component, args: [{
24276
24457
  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)}"]
24458
+ 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",
24459
+ 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
24460
  },] }
24280
24461
  ];
24281
24462
  InboxStateComponent.ctorParameters = () => [
@@ -24544,5 +24725,5 @@ EoClientModule.ctorParameters = () => [
24544
24725
  * Generated bundle index. Do not edit.
24545
24726
  */
24546
24727
 
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 };
24728
+ 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, DeleteContentComponent as ɵcg, DeleteContentActionComponent as ɵch, UnlockActionComponent as ɵci, SimpleWorkflowActionComponent as ɵcj, FavoriteActionComponent as ɵck, PreventDoubleClickDirective as ɵcl, UserAvatarComponent as ɵcm, EditIconComponent as ɵcn, DuetimeInfoComponent as ɵco, PrepareContentExistsInfoComponent as ɵcp, ObjectStateRoutingModule as ɵcq, InboxStateRoutingModule as ɵcr, PrepareStateRoutingModule as ɵcs, EoClientRoutingModule as ɵct, ProcessStateComponent as ɵcu, 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
24729
  //# sourceMappingURL=eo-sdk-client.js.map