@eo-sdk/client 9.5.0-rc.1 → 9.6.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 (59) hide show
  1. package/app/eo-client/recyclebin-state/recyclebin-state.component.d.ts +3 -2
  2. package/app/eo-framework/app-shell/app-bar/app-process/app-process.component.d.ts +1 -0
  3. package/app/eo-framework/object-details/object-details.component.d.ts +1 -0
  4. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +19 -12
  5. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +75 -0
  6. package/app/eo-framework/split/split/split.component.d.ts +1 -1
  7. package/app/eo-framework/split/split-area/split-area.component.d.ts +1 -0
  8. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +1 -0
  9. package/assets/_default/i18n/de.json +45 -21
  10. package/assets/_default/i18n/en.json +35 -11
  11. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +15 -2
  12. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  13. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  14. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  15. package/bundles/eo-sdk-client.umd.js +428 -70
  16. package/bundles/eo-sdk-client.umd.js.map +1 -1
  17. package/bundles/eo-sdk-client.umd.min.js +1 -1
  18. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  19. package/eo-sdk-client.d.ts +10 -9
  20. package/eo-sdk-client.metadata.json +1 -1
  21. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  22. package/esm2015/app/eo-client/favorite-state/favorite-state.component.js +3 -3
  23. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +7 -5
  24. package/esm2015/app/eo-client/notifications-state/notifications-state.component.js +3 -3
  25. package/esm2015/app/eo-client/object-state/object-state-service/object-state.service.js +2 -2
  26. package/esm2015/app/eo-client/prepare-state/prepare-state/prepare-state.component.js +3 -3
  27. package/esm2015/app/eo-client/recyclebin-state/recyclebin-state.component.js +13 -6
  28. package/esm2015/app/eo-framework/actions/actions/delete-action/delete/delete.component.js +5 -2
  29. package/esm2015/app/eo-framework/actions/actions/signature-action/signature/signature.component.js +8 -6
  30. package/esm2015/app/eo-framework/actions/actions/signature-action/signature-action.component.js +8 -2
  31. package/esm2015/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.js +6 -4
  32. package/esm2015/app/eo-framework/app-shell/app-bar/app-process/app-process.component.js +8 -2
  33. package/esm2015/app/eo-framework/frame/frame.component.js +9 -1
  34. package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +3 -3
  35. package/esm2015/app/eo-framework/object-details/object-details.component.js +12 -5
  36. package/esm2015/app/eo-framework/object-details/object-details.module.js +4 -2
  37. package/esm2015/app/eo-framework/object-details/object-history/object-history.component.js +2 -2
  38. package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +42 -23
  39. package/esm2015/app/eo-framework/recyclebin-details/recyclebin-details.component.js +260 -0
  40. package/esm2015/app/eo-framework/split/split/split.component.js +6 -6
  41. package/esm2015/app/eo-framework/split/split-area/split-area.component.js +5 -1
  42. package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +4 -2
  43. package/esm2015/app/eo-framework/ui/signature-tab/signature-tab.component.js +3 -3
  44. package/esm2015/eo-sdk-client.js +11 -10
  45. package/esm2015/projects/eo-sdk/core/lib/model/dms-object-history.model.js +2 -1
  46. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +3 -3
  47. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +12 -1
  48. package/esm2015/projects/eo-sdk/core/lib/service/events/events.js +2 -1
  49. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +15 -2
  50. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  51. package/fesm2015/eo-sdk-client.js +379 -62
  52. package/fesm2015/eo-sdk-client.js.map +1 -1
  53. package/package.json +2 -2
  54. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  55. package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts +4 -0
  56. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +1 -1
  57. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +8 -0
  58. package/projects/eo-sdk/core/lib/service/events/events.d.ts +1 -0
  59. package/projects/eo-sdk/core/package.json +1 -1
@@ -3674,7 +3674,8 @@ class EoDialogComponent extends UnsubscribeOnDestroy {
3674
3674
  scrollStrategy: this.overlay.scrollStrategies.reposition(),
3675
3675
  positionStrategy: this.getPositionStrategy(),
3676
3676
  minHeight: this.minHeight,
3677
- minWidth: this.minWidth
3677
+ minWidth: this.minWidth,
3678
+ height: this.height
3678
3679
  });
3679
3680
  //Then we create a portal to render a component
3680
3681
  const portal = new TemplatePortal(this.dialogContent, this.viewContainerRef);
@@ -3770,6 +3771,7 @@ EoDialogComponent.propDecorators = {
3770
3771
  dirtyCheck: [{ type: Input }],
3771
3772
  minWidth: [{ type: Input }],
3772
3773
  minHeight: [{ type: Input }],
3774
+ height: [{ type: Input }],
3773
3775
  focusOnShow: [{ type: Input }],
3774
3776
  align: [{ type: Input }],
3775
3777
  isFormTable: [{ type: Input }],
@@ -3959,8 +3961,8 @@ class SignatureTabComponent {
3959
3961
  SignatureTabComponent.decorators = [
3960
3962
  { type: Component, args: [{
3961
3963
  selector: 'eo-signature-tab',
3962
- template: "<ng-container *ngIf=\"dmsObject.data.yuvsigrequester_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigstatus_meta\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigerror.length\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signedate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigrequester_meta.title\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigemailbody\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"isUserAdmin()\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigplatform\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"isUserAdmin()\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigplatformid\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <span class=\"circle\" [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n {{'eo.object.signature-tab.no-signatures'|translate}}\n</ng-template>\n",
3963
- styles: [":host{display:block;height:100%;overflow-y:auto;padding:var(--app-pane-padding)}:host .row{display:flex;line-height:1.5em;margin:0 calc(var(--app-pane-padding)/-4) 2px}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding)/4)}:host .row .label{border-radius:2px;color:var(--color-white);flex-basis:30%;flex-shrink:0;margin:0 calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4);white-space:normal}:host .row .circle,:host .row .label{background-color:var(--color-primary-3);display:inline-block}:host .row .circle{align-self:center;border-radius:50%;color:#fff;height:2em;line-height:1.8em;text-align:center;width:2em}:host .row .signer-container{--signer-border-radius:4px;--signer-icon-color:var(--text-color-hint);--signer-row-gap:calc(var(--app-pane-padding)/2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;display:flex;margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/2)}:host .row .signer-container .signer{-moz-column-gap:var(--app-pane-padding);column-gap:var(--app-pane-padding);display:grid;grid-template-areas:\"name name\" \"email email\" \"state date\" \"reason reason\";grid-template-columns:1fr auto;grid-template-rows:auto auto auto auto;margin-left:5px}:host .row .signer-container .signed{--signer-icon-color:var(--color-success)}:host .row .signer-container .cancelled,:host .row .signer-container .expired,:host .row .signer-container .revised{--signer-icon-color:var(--color-warning)}:host .row .signer-container .error{--signer-icon-color:var(--color-error)}:host .row .signer-container .date{-ms-grid-column:3;-ms-grid-row:3;align-self:center;color:var(--text-color-caption);grid-area:date;margin-top:var(--signer-row-gap)}:host .row .signer-container .name{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:1;font-weight:var(--font-weight-bold);grid-area:name}:host .row .signer-container .email{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:2;grid-area:email}:host .row .signer-container .state{-ms-grid-column:1;-ms-grid-row:3;grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{background-color:var(--signer-icon-color);border-radius:4px;color:#fff;display:inline-block;padding:2px 4px 1px}:host .row .signer-container .reason{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:4;grid-area:reason;margin-top:var(--signer-row-gap)}"]
3964
+ template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigstatus_meta\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigerror.length\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signedate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigrequester_meta.title\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigemailbody\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"isUserAdmin()\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigplatform\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"isUserAdmin()\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigplatformid\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <span class=\"circle\" [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n <div class=\"signature-not-found\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_signature.svg', text:'eo.object.signature-tab.no-signatures'}\"></eo-error-message>\n </div>\n</ng-template>\n",
3965
+ styles: [":host{display:block;height:100%;overflow-y:auto;padding:var(--app-pane-padding)}:host .row{display:flex;line-height:1.5em;margin:0 calc(var(--app-pane-padding)/-4) 2px}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding)/4)}:host .row .label{border-radius:2px;color:var(--color-white);flex-basis:30%;flex-shrink:0;margin:0 calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4);white-space:normal}:host .row .circle,:host .row .label{background-color:var(--color-primary-3);display:inline-block}:host .row .circle{align-self:center;border-radius:50%;color:#fff;height:2em;line-height:1.8em;text-align:center;width:2em}:host .row .signer-container{--signer-border-radius:4px;--signer-icon-color:var(--text-color-hint);--signer-row-gap:calc(var(--app-pane-padding)/2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;display:flex;margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/2)}:host .row .signer-container .signer{-moz-column-gap:var(--app-pane-padding);column-gap:var(--app-pane-padding);display:grid;grid-template-areas:\"name name\" \"email email\" \"state date\" \"reason reason\";grid-template-columns:1fr auto;grid-template-rows:auto auto auto auto;margin-left:5px}:host .row .signer-container .signed{--signer-icon-color:var(--color-success)}:host .row .signer-container .cancelled,:host .row .signer-container .expired,:host .row .signer-container .revised{--signer-icon-color:var(--color-warning)}:host .row .signer-container .error{--signer-icon-color:var(--color-error)}:host .row .signer-container .date{-ms-grid-column:3;-ms-grid-row:3;align-self:center;color:var(--text-color-caption);grid-area:date;margin-top:var(--signer-row-gap)}:host .row .signer-container .name{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:1;font-weight:var(--font-weight-bold);grid-area:name}:host .row .signer-container .email{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:2;grid-area:email}:host .row .signer-container .state{-ms-grid-column:1;-ms-grid-row:3;grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{background-color:var(--signer-icon-color);border-radius:4px;color:#fff;display:inline-block;padding:2px 4px 1px}:host .row .signer-container .reason{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:4;grid-area:reason;margin-top:var(--signer-row-gap)}:host .signature-not-found{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}"]
3964
3966
  },] }
3965
3967
  ];
3966
3968
  SignatureTabComponent.ctorParameters = () => [
@@ -5104,6 +5106,12 @@ class AppProcessComponent {
5104
5106
  cancelDialog() {
5105
5107
  this.processForm = null;
5106
5108
  }
5109
+ onCancel(dialog) {
5110
+ if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {
5111
+ this.finishPending();
5112
+ dialog.visible = false;
5113
+ }
5114
+ }
5107
5115
  startPending() {
5108
5116
  // because this method will be called every time the form status changes,
5109
5117
  // pending task will only be started once until it was finished
@@ -5130,7 +5138,7 @@ class AppProcessComponent {
5130
5138
  AppProcessComponent.decorators = [
5131
5139
  { type: Component, args: [{
5132
5140
  selector: 'eo-app-process',
5133
- template: "<eo-dialog [title]=\"'eo.bar.button.execute.actions.tooltip' | translate\"\n [visible]=\"true\"\n [minWidth]=\"400\"\n [styleClass]=\"'more-actions'\"\n (hide)=\"close($event)\">\n\n <section *ngIf=\"processes?.length; else loading\">\n\n <div class=\"process-item\" *ngFor=\"let process of processes\" (click)=\"selectProcess(process)\">\n <eo-icon [iconId]=\"process.iconid\" *ngIf=\"process.iconid; else defaulticon\"></eo-icon>\n <ng-template #defaulticon><eo-icon [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon></ng-template>\n <div class=\"pi-content\">\n <div class=\"title\">{{process.title}}</div>\n <div class=\"description\">{{process.description}}</div>\n </div>\n </div>\n\n </section>\n\n <ng-container *ngIf=\"!processForm; else tplProcessForm\" class=\"select-process\"></ng-container>\n\n <ng-template #loading>\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </ng-template>\n\n\n <ng-template #tplProcessForm>\n\n <eo-dialog [title]=\"selectedProcess?.title\"\n [subtitle]=\"selectedProcess?.description\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"1000\"\n [styleClass]=\"'process-form-dialog'\"\n (hide)=\"cancelDialog()\" #dialog>\n\n <eo-process-form [formOptions]=\"processForm\"\n (onResetForm)=\"formReset($event)\"\n (onCancel)=\"(dialog.visible = false)\"\n (onSaveForm)=\"startProcessWithFormData($event)\"\n (statusChanged)=\"onIndexDataChanged($event)\">\n </eo-process-form>\n </eo-dialog>\n </ng-template>\n\n</eo-dialog>\n",
5141
+ template: "<eo-dialog [title]=\"'eo.bar.button.execute.actions.tooltip' | translate\"\n [visible]=\"true\"\n [minWidth]=\"400\"\n [styleClass]=\"'more-actions'\"\n (hide)=\"close($event)\">\n\n <section *ngIf=\"processes?.length; else loading\">\n\n <div class=\"process-item\" *ngFor=\"let process of processes\" (click)=\"selectProcess(process)\">\n <eo-icon [iconId]=\"process.iconid\" *ngIf=\"process.iconid; else defaulticon\"></eo-icon>\n <ng-template #defaulticon><eo-icon [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon></ng-template>\n <div class=\"pi-content\">\n <div class=\"title\">{{process.title}}</div>\n <div class=\"description\">{{process.description}}</div>\n </div>\n </div>\n\n </section>\n\n <ng-container *ngIf=\"!processForm; else tplProcessForm\" class=\"select-process\"></ng-container>\n\n <ng-template #loading>\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </ng-template>\n\n\n <ng-template #tplProcessForm>\n\n <eo-dialog [title]=\"selectedProcess?.title\"\n [subtitle]=\"selectedProcess?.description\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"1000\"\n [styleClass]=\"'process-form-dialog'\"\n (hide)=\"cancelDialog()\" #dialog>\n\n <eo-process-form [formOptions]=\"processForm\"\n (onResetForm)=\"formReset($event)\"\n (onCancel)=\"onCancel(dialog)\"\n (onSaveForm)=\"startProcessWithFormData($event)\"\n (statusChanged)=\"onIndexDataChanged($event)\">\n </eo-process-form>\n </eo-dialog>\n </ng-template>\n\n</eo-dialog>\n",
5134
5142
  styles: [".process-item{align-items:center;border-bottom:1px solid var(--list-item-border-color);cursor:pointer;display:flex;padding:var(--app-pane-padding)}.process-item:hover{background-color:var(--list-item-hover-background)}.process-item eo-icon{opacity:.7}.process-item .pi-content{padding:0 var(--app-pane-padding)}.process-item .pi-content .description{color:var(--text-color-caption)}eo-loading-spinner{display:flex;justify-content:center;padding:var(--app-pane-padding)}"]
5135
5143
  },] }
5136
5144
  ];
@@ -10178,15 +10186,17 @@ FormElementComponent.propDecorators = {
10178
10186
  };
10179
10187
 
10180
10188
  class FormElementTableComponent extends UnsubscribeOnDestroy {
10181
- constructor(systemService, pendingChanges, gridApi, translate, storageService, eventService) {
10189
+ constructor(storageService, systemService, pendingChanges, gridApi) {
10182
10190
  super();
10191
+ this.storageService = storageService;
10183
10192
  this.systemService = systemService;
10184
10193
  this.pendingChanges = pendingChanges;
10185
10194
  this.gridApi = gridApi;
10186
- this.translate = translate;
10187
- this.storageService = storageService;
10188
- this.eventService = eventService;
10189
10195
  this.modules = [ClientSideRowModelModule, CsvExportModule];
10196
+ this.BASE_CACHE_LAYOUT_KEY = 'table.state';
10197
+ this.cacheLayoutKey = this.BASE_CACHE_LAYOUT_KEY;
10198
+ this.minWidth = '97vw';
10199
+ this.height = '95vh';
10190
10200
  this.gridReady = false;
10191
10201
  this.showDialog = false;
10192
10202
  this.showPreview = false;
@@ -10243,13 +10253,14 @@ class FormElementTableComponent extends UnsubscribeOnDestroy {
10243
10253
  this.overlayGridOptions.suppressRowClickSelection = !!this.rowEdit && !!tasks.includes(this.rowEdit.pendingTaskId);
10244
10254
  }, 0);
10245
10255
  });
10246
- this._cachedColumns = this.storageService.getItem(FormElementTableComponent.COLUMNS_DEFINITION) || [];
10247
- this._cachedColumnsOverlay = this.storageService.getItem(FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY) || [];
10248
- this.showPreview = !!this.storageService.getItem('eo.table.showPreview');
10249
10256
  }
10250
10257
  set params(p) {
10258
+ this.cacheLayoutKey = p ? `${this.BASE_CACHE_LAYOUT_KEY}.${p.element.name}` : this.BASE_CACHE_LAYOUT_KEY;
10251
10259
  if (p) {
10252
10260
  this._params = p;
10261
+ this._cachedColumns = this.storageService.getItem(this.cacheLayoutKey + '.colDef') || [];
10262
+ this._cachedColumnsOverlay = this.storageService.getItem(this.cacheLayoutKey + '.colDefOverlay') || [];
10263
+ this.showPreview = this.storageService.getItem(this.cacheLayoutKey + '.showPreview');
10253
10264
  CellRenderer.situation = this._params.situation;
10254
10265
  if (this._params.situation === 'SEARCH') {
10255
10266
  this._params.size = 'supersmall';
@@ -10567,10 +10578,10 @@ class FormElementTableComponent extends UnsubscribeOnDestroy {
10567
10578
  }
10568
10579
  }
10569
10580
  onColumnResized(column, overlay) {
10570
- let columnsDefinition = FormElementTableComponent.COLUMNS_DEFINITION;
10581
+ let columnsDefinition = this.cacheLayoutKey + '.colDef';
10571
10582
  let cachedColumns = this._cachedColumns;
10572
10583
  if (overlay) {
10573
- columnsDefinition = FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY;
10584
+ columnsDefinition = this.cacheLayoutKey + '.colDefOverlay';
10574
10585
  cachedColumns = this._cachedColumnsOverlay;
10575
10586
  }
10576
10587
  let col = cachedColumns.find(c => c.qname === column.colDef.refData.qname);
@@ -10582,17 +10593,31 @@ class FormElementTableComponent extends UnsubscribeOnDestroy {
10582
10593
  }
10583
10594
  this.storageService.setItem(columnsDefinition, cachedColumns);
10584
10595
  }
10596
+ _updateSplitViewLayoutCache() {
10597
+ setTimeout(() => {
10598
+ var _a;
10599
+ (_a = this.splitView) === null || _a === void 0 ? void 0 : _a.updateLayoutCache();
10600
+ });
10601
+ }
10585
10602
  togglePreview() {
10586
10603
  this.showPreview = !this.showPreview;
10587
- this.storageService.setItem('eo.table.showPreview', this.showPreview);
10604
+ // make sure that the layout of the split view is updated after the preview panels
10605
+ // visibility changed
10606
+ this._updateSplitViewLayoutCache();
10607
+ this.storageService.setItem(this.cacheLayoutKey + '.showPreview', this.showPreview);
10608
+ }
10609
+ ngAfterViewInit() {
10610
+ this._updateSplitViewLayoutCache();
10611
+ }
10612
+ ngOnInit() {
10613
+ var _a;
10614
+ this.hasPreviewFile = this.hasPreviewFile !== undefined ? this.hasPreviewFile : !!((_a = this.params.object) === null || _a === void 0 ? void 0 : _a.content);
10588
10615
  }
10589
10616
  }
10590
- FormElementTableComponent.COLUMNS_DEFINITION = 'eo.framework.cache.tables.columns.definition';
10591
- FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY = 'eo.framework.cache.tables.overlay.columns.definition';
10592
10617
  FormElementTableComponent.decorators = [
10593
10618
  { type: Component, args: [{
10594
10619
  selector: 'eo-table',
10595
- template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"label\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\" [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\"\n (cellClicked)=\"onCellClicked($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog\n[title]=\"params.element.label\"\n[visible]=\"showDialog\"\n[dirtyCheck]=\"rowEdit?.pendingTaskId\"\n[minWidth]=\"_params.situation !== 'SEARCH' ? '97vw' : 200\"\n[styleClass]=\"'object-form-table-dialog'\"\n(hide)=\"onClose()\"\n[isFormTable]=\"true\"\n[hasPreviewFile]=\"!!params.object?.content\"\n[showPreview]=\"showPreview\"\n(onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\">\n\n <eo-split [gutterSize]=\"16\" [switchable]=\"true\" [cacheLayout]=\"'table.state'\">\n\n <eo-split-area *ngIf=\"_params.situation !== 'SEARCH'\" class=\"table-area\" [size]=\"40\" [minSizePixel]=\"100\" [order]=\"1\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"label\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #agGrid2 *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\"\n (cellClicked)=\"onCellClicked($event);editRow($event)\"\n (mousedown)=\"onMouseDown($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </eo-split-area>\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"300\" *ngIf=\"editingRow\" [order]=\"2\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" [limitReached]=\"limit <= overlayGridOptions.rowData.length\" #rowEdit\n (onSave)=\"updateRow($event)\"\n (onSaveCopy)=\"copyRow($event)\"\n (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </eo-split-area>\n\n <eo-split-area [visible]=\"showPreview && !!params?.object?.content\" *ngIf=\"!!params?.object?.content\" [size]=\"40\" [minSizePixel]=\"150\" [order]=\"3\">\n <eo-media *ngIf=\"!!params?.object?.content\" [dmsObject]=\"params.object\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object?.id === params.object?.content?.id\"></eo-media>\n </eo-split-area>\n </eo-split>\n </div>\n</eo-dialog>\n",
10620
+ template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"label\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\" [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\"\n (cellClicked)=\"onCellClicked($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog\n[title]=\"params.element.label\"\n[visible]=\"showDialog\"\n[dirtyCheck]=\"rowEdit?.pendingTaskId\"\n[minWidth]=\"_params.situation !== 'SEARCH' ? minWidth : 200\"\n[height]=\"height\"\n[styleClass]=\"'object-form-table-dialog'\"\n(hide)=\"onClose()\"\n[isFormTable]=\"true\"\n[hasPreviewFile]=\"hasPreviewFile\"\n[showPreview]=\"showPreview\"\n(onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\" *ngIf=\"showDialog\">\n\n <eo-split #splitView [gutterSize]=\"16\" [switchable]=\"true\" [cacheLayout]=\"cacheLayoutKey\">\n\n <eo-split-area [height]=\"95\" *ngIf=\"_params.situation !== 'SEARCH'\" class=\"table-area\" [size]=\"40\" [minSizePixel]=\"100\" [order]=\"1\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"label\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #agGrid2 *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\"\n (cellClicked)=\"onCellClicked($event);editRow($event)\"\n (mousedown)=\"onMouseDown($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </eo-split-area>\n\n <eo-split-area [height]=\"95\" [size]=\"20\" [minSizePixel]=\"300\" *ngIf=\"editingRow\" [order]=\"2\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" [limitReached]=\"limit <= overlayGridOptions.rowData.length\" #rowEdit\n (onSave)=\"updateRow($event)\"\n (onSaveCopy)=\"copyRow($event)\"\n (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </eo-split-area>\n\n <eo-split-area [height]=\"95\" [visible]=\"showPreview && hasPreviewFile\" [size]=\"40\" [minSizePixel]=\"150\" [order]=\"3\">\n <eo-media *ngIf=\"hasPreviewFile\" [dmsObject]=\"params.object\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object?.id === params.object?.content?.id\"></eo-media>\n </eo-split-area>\n </eo-split>\n </div>\n</eo-dialog>\n",
10596
10621
  providers: [
10597
10622
  {
10598
10623
  provide: NG_VALUE_ACCESSOR,
@@ -10609,16 +10634,18 @@ FormElementTableComponent.decorators = [
10609
10634
  },] }
10610
10635
  ];
10611
10636
  FormElementTableComponent.ctorParameters = () => [
10637
+ { type: LocalStorageService },
10612
10638
  { type: SystemService },
10613
10639
  { type: PendingChangesService },
10614
- { type: GridService },
10615
- { type: TranslateService },
10616
- { type: LocalStorageService },
10617
- { type: EventService }
10640
+ { type: GridService }
10618
10641
  ];
10619
10642
  FormElementTableComponent.propDecorators = {
10620
10643
  rowEdit: [{ type: ViewChild, args: ['rowEdit',] }],
10644
+ splitView: [{ type: ViewChild, args: ['splitView',] }],
10621
10645
  limit: [{ type: Input }],
10646
+ hasPreviewFile: [{ type: Input }],
10647
+ minWidth: [{ type: Input }],
10648
+ height: [{ type: Input }],
10622
10649
  params: [{ type: Input }],
10623
10650
  copyCellHandler: [{ type: HostListener, args: ['keydown.control.alt.shift.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.shift.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.alt.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.c', ['$event'],] }]
10624
10651
  };
@@ -10846,7 +10873,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
10846
10873
  this.layoutService.getLayout(`eo.split.layout.${this.cacheLayout}`)
10847
10874
  .subscribe(layout => {
10848
10875
  (layout || []).forEach((area) => {
10849
- if (area && this.areas.length) {
10876
+ if (area && this.areas.length > area.index) {
10850
10877
  this.areas[area.index].size = area.size;
10851
10878
  this.areas[area.index].sizeUser = area.size;
10852
10879
  this.areas[area.index].component.visible = area.visible;
@@ -10899,14 +10926,14 @@ class SplitComponent extends UnsubscribeOnDestroy {
10899
10926
  const item = this.areas.find(a => a.component === area);
10900
10927
  if (item) {
10901
10928
  this.refresh();
10902
- this.updateCache();
10929
+ this.updateLayoutCache();
10903
10930
  }
10904
10931
  }
10905
10932
  showArea(area) {
10906
10933
  const item = this.areas.find(a => a.component === area);
10907
10934
  if (item) {
10908
10935
  this.refresh();
10909
- this.updateCache();
10936
+ this.updateLayoutCache();
10910
10937
  }
10911
10938
  }
10912
10939
  isLastVisibleArea(area) {
@@ -11052,7 +11079,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
11052
11079
  this.containerSize = 0;
11053
11080
  this.areaASize = 0;
11054
11081
  this.areaBSize = 0;
11055
- this.updateCache();
11082
+ this.updateLayoutCache();
11056
11083
  this.isDragging = false;
11057
11084
  this.notify('end');
11058
11085
  }
@@ -11069,7 +11096,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
11069
11096
  return this.visibleTransitionEndInternal.next(data);
11070
11097
  }
11071
11098
  }
11072
- updateCache() {
11099
+ updateLayoutCache() {
11073
11100
  if (this.cacheLayout) {
11074
11101
  let layout = this.areas.map((a, i) => ({ index: i, size: a.size, visible: a.component.visible }));
11075
11102
  this.layoutService.cacheLayout(`eo.split.layout.${this.cacheLayout}`, layout);
@@ -11207,6 +11234,9 @@ class SplitAreaComponent extends TabPanel {
11207
11234
  this.visibility = 'block';
11208
11235
  this.eventsLockFct = [];
11209
11236
  }
11237
+ set height(height) {
11238
+ this._height = height;
11239
+ }
11210
11240
  set order(v) {
11211
11241
  this._order = !isNaN(v) ? v : null;
11212
11242
  this.split.updateArea(this, this._order, this._size, this._minSizePixel);
@@ -11287,6 +11317,7 @@ SplitAreaComponent.propDecorators = {
11287
11317
  _height: [{ type: HostBinding, args: ['style.height.%',] }],
11288
11318
  minWidth: [{ type: HostBinding, args: ['style.min-width.px',] }],
11289
11319
  visibleCls: [{ type: HostBinding, args: ['class.visible',] }],
11320
+ height: [{ type: Input }],
11290
11321
  order: [{ type: Input }],
11291
11322
  size: [{ type: Input }],
11292
11323
  minSizePixel: [{ type: Input }],
@@ -13134,7 +13165,7 @@ class TextFilterComponent extends AbstractFilterComponent {
13134
13165
  }
13135
13166
  }
13136
13167
  saveFilter(term) {
13137
- if (!this.savedFilters.includes(term)) {
13168
+ if (term && !this.savedFilters.includes(term)) {
13138
13169
  this.savedFilters.push(term);
13139
13170
  this.userService.changeSavedInboxFilters(this.savedFilters).subscribe();
13140
13171
  }
@@ -13154,7 +13185,7 @@ class TextFilterComponent extends AbstractFilterComponent {
13154
13185
  TextFilterComponent.decorators = [
13155
13186
  { type: Component, args: [{
13156
13187
  selector: 'eo-text-filter',
13157
- 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",
13188
+ 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': !value || 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",
13158
13189
  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}"]
13159
13190
  },] }
13160
13191
  ];
@@ -13458,9 +13489,11 @@ class WorkflowComponent {
13458
13489
  this.finished.emit();
13459
13490
  }
13460
13491
  cancel() {
13461
- this.finishPending();
13462
- this.dialog.visible = false;
13463
- this.canceled.emit();
13492
+ if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {
13493
+ this.finishPending();
13494
+ this.dialog.visible = false;
13495
+ this.canceled.emit();
13496
+ }
13464
13497
  }
13465
13498
  onIndexDataChanged(event) {
13466
13499
  this.form = event;
@@ -15540,7 +15573,10 @@ class DeleteComponent {
15540
15573
  .deleteDmsObject(dmsObject.id, dmsObject.type.name, hardDelete, force)
15541
15574
  .subscribe(() => {
15542
15575
  this.showForceDeleteDialog = false;
15543
- this.toast.success(this.translate.instant('eo.action.delete.dms.object.done.title'), this.translate.instant('eo.action.delete.dms.object.done.message'));
15576
+ const successMessage = this.capabilitiesService.hasCapability('recyclebin')
15577
+ ? this.translate.instant('eo.action.delete.dms.object.done.enabled.message', { title: dmsObject.title })
15578
+ : this.translate.instant('eo.action.delete.dms.object.done.message', { title: dmsObject.title });
15579
+ this.toast.success(this.translate.instant('eo.action.delete.dms.object.done.title'), successMessage);
15544
15580
  this.eventService.trigger(EnaioEvent.DMS_OBJECT_DELETED, this.selection[0]);
15545
15581
  if ((dmsObject.isContextFolder || !dmsObject.contextFolder) && this.isAllowedState()) {
15546
15582
  this.router.navigate(['/']);
@@ -16758,9 +16794,11 @@ class SignatureComponent {
16758
16794
  this.finished.emit();
16759
16795
  }
16760
16796
  cancel() {
16761
- this.finishPending();
16762
- this.dialog.visible = false;
16763
- this.canceled.emit();
16797
+ if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {
16798
+ this.finishPending();
16799
+ this.dialog.visible = false;
16800
+ this.canceled.emit();
16801
+ }
16764
16802
  }
16765
16803
  onIndexDataChanged() {
16766
16804
  if (this.signingForm.dirty) {
@@ -16790,8 +16828,8 @@ class SignatureComponent {
16790
16828
  SignatureComponent.decorators = [
16791
16829
  { type: Component, args: [{
16792
16830
  selector: 'eo-signature',
16793
- template: "<eo-dialog [title]=\"headerTitle\"\n [subtitle]=\"headerDescription\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"600\"\n [minHeight]=\"600\"\n [styleClass]=\"'process-form-dialog'\" #dialog>\n\n <section class=\"signature-form form-container\">\n <form class=\"signing-form\" [formGroup]=\"signingForm\">\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailsubject' | translate\">\n <eo-string\n [formControlName]=\"'yuvsigemailsubject'\"\n [minLength]=\"3\"\n [maxLength]=\"100\"\n ></eo-string>\n </eo-form-input>\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\">\n <eo-string\n [formControlName]=\"'yuvsigemailbody'\"\n [multiline]=\"true\"\n [size]=\"'medium'\"\n [minLength]=\"3\"\n [maxLength]=\"4000\"\n ></eo-string>\n </eo-form-input>\n <div class=\"table\">\n <eo-table [limit]=\"maxSigners\" [params]=\"{\n situation: '',\n element: getLocalizedForm(),\n size: 'small',\n object: selection[0]\n }\" [formControlName]=\"'yuvsigners'\"></eo-table>\n </div>\n </form>\n\n <div class=\"actions\">\n <div *ngIf=\"signingForm?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\n <eo-cta [active]=\"true\" class=\"cta-wrapper\">\n <button *ngIf=\"signingForm?.dirty\" (click)=\"signingForm.reset()\" class=\"button-reset\" translate>eo.action.signature.reset</button>\n <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.action.signature.cancel</button>\n <button (click)=\"saveForm()\" [disabled]=\"signingForm?.invalid || processingRequest\" class=\"primary\" translate>eo.action.signature.request</button>\n </eo-cta>\n </div>\n </section>\n</eo-dialog>\n",
16794
- styles: ["::ng-deep .signature-form{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}::ng-deep .signature-form .invalid{color:var(--color-error);margin:40px 0 15px}::ng-deep .signature-form .actions{align-items:flex-end;display:flex;flex:0;flex-direction:column;justify-content:center;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:0;min-height:3em;min-width:0}::ng-deep .signature-form .actions button{white-space:nowrap}::ng-deep .signature-form .actions eo-cta{display:flex;justify-content:flex-end}::ng-deep .signature-form .actions eo-cta button:nth-child(odd){margin:0 5px}@media (max-width:800px){::ng-deep .signature-form .actions{align-items:flex-end;flex-direction:column}}.signing-form{box-sizing:border-box;margin:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}.signing-form .table .label{padding-bottom:calc(var(--app-pane-padding)/4)}"]
16831
+ template: "<eo-dialog [title]=\"headerTitle\"\n [subtitle]=\"headerDescription\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"600\"\n [minHeight]=\"600\"\n [styleClass]=\"'process-form-dialog'\" #dialog>\n\n <section class=\"signature-form form-container\">\n <form class=\"signing-form\" [formGroup]=\"signingForm\">\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailsubject' | translate\">\n <eo-string\n [formControlName]=\"'yuvsigemailsubject'\"\n [minLength]=\"3\"\n [maxLength]=\"100\"\n ></eo-string>\n </eo-form-input>\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\">\n <eo-string\n [formControlName]=\"'yuvsigemailbody'\"\n [multiline]=\"true\"\n [size]=\"'medium'\"\n [minLength]=\"3\"\n [maxLength]=\"4000\"\n ></eo-string>\n </eo-form-input>\n <div class=\"table\">\n <eo-table [limit]=\"maxSigners\" [height]=\"'60vh'\" [minWidth]=\"'68vw'\" [hasPreviewFile]=\"false\" [params]=\"{\n situation: 'CREATE',\n element: getLocalizedForm(),\n size: 'small',\n object: selection[0]\n }\" [formControlName]=\"'yuvsigners'\"></eo-table>\n </div>\n </form>\n\n <div class=\"actions\">\n <div *ngIf=\"signingForm?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\n <eo-cta [active]=\"!processingRequest\" class=\"cta-wrapper\">\n <button *ngIf=\"signingForm?.dirty\" (click)=\"signingForm.reset()\" class=\"button-reset\" translate>eo.action.signature.reset</button>\n <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.action.signature.cancel</button>\n <button (click)=\"saveForm()\" [disabled]=\"signingForm?.invalid || processingRequest || !signers.value || !signers.value.length\" class=\"primary\" translate>eo.action.signature.request</button>\n </eo-cta>\n </div>\n </section>\n <div class=\"loader-overlay__mask\" *ngIf=\"processingRequest\">\n <eo-loading-spinner class=\"signature__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</eo-dialog>\n",
16832
+ styles: ["::ng-deep .signature-form{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}::ng-deep .signature-form .invalid{color:var(--color-error);margin:40px 0 15px}::ng-deep .signature-form .actions{align-items:flex-end;display:flex;flex:0;flex-direction:column;justify-content:center;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:0;min-height:3em;min-width:0}::ng-deep .signature-form .actions button{white-space:nowrap}::ng-deep .signature-form .actions eo-cta{display:flex;justify-content:flex-end}::ng-deep .signature-form .actions eo-cta button:nth-child(odd){margin:0 5px}@media (max-width:800px){::ng-deep .signature-form .actions{align-items:flex-end;flex-direction:column}}.signing-form{box-sizing:border-box;margin:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}.signing-form .table .label{padding-bottom:calc(var(--app-pane-padding)/4)}.loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}.loader-overlay__mask .signature__loader{margin:auto}"]
16795
16833
  },] }
16796
16834
  ];
16797
16835
  SignatureComponent.ctorParameters = () => [
@@ -16829,7 +16867,13 @@ class SignatureActionComponent extends DmsObjectTarget {
16829
16867
  && !this.isFinalized(element));
16830
16868
  }
16831
16869
  isAllowedMimeType(item) {
16832
- return item.content && item.content.contents[0].mimetype === 'application/pdf';
16870
+ return item.content && (item.content.contents[0].mimetype === 'application/pdf'
16871
+ || item.content.contents[0].mimetype === 'application/msword'
16872
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
16873
+ || item.content.contents[0].mimetype === 'application/vnd.ms-excel'
16874
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
16875
+ || item.content.contents[0].mimetype === 'application/vnd.ms-powerpoint'
16876
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.presentationml.presentation');
16833
16877
  }
16834
16878
  isAllowedObjectType(item) {
16835
16879
  return item.type.supertypes.includes('yuvsigning');
@@ -18650,6 +18694,7 @@ class ObjectDetailsComponent extends UnsubscribeOnDestroy {
18650
18694
  this.enableSync = true;
18651
18695
  this._emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
18652
18696
  this.externalPanels = new QueryList();
18697
+ this.preventClickThrough = false;
18653
18698
  // shortcut actions
18654
18699
  this.shortcuts = {
18655
18700
  id: 'eo.object-details',
@@ -18773,7 +18818,7 @@ class ObjectDetailsComponent extends UnsubscribeOnDestroy {
18773
18818
  this.loadDmsObject(this.parseDmsParams(res)).subscribe((res) => {
18774
18819
  // refreshing object details may result in an updated version of the object
18775
18820
  // so we'll use this trigger to also emitt those changes to other listening components
18776
- if (this.item && res && (this.item.id === res.id) && res.version > this.item.version) {
18821
+ if (this.item && res && (this.item.id === res.id)) {
18777
18822
  this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, res);
18778
18823
  }
18779
18824
  this.dmsObject = res;
@@ -18787,7 +18832,13 @@ class ObjectDetailsComponent extends UnsubscribeOnDestroy {
18787
18832
  }
18788
18833
  }
18789
18834
  refreshContent() {
18790
- this.updateContent();
18835
+ if (!this.preventClickThrough) {
18836
+ this.preventClickThrough = true;
18837
+ this.updateContent();
18838
+ }
18839
+ setTimeout(() => {
18840
+ this.preventClickThrough = false;
18841
+ }, 5000);
18791
18842
  }
18792
18843
  prepareIndexDataPreview(item, formData) {
18793
18844
  const { id, data, type, created, modified, content, contentFileName, contentFileSize, version } = item;
@@ -18929,9 +18980,9 @@ class ObjectDetailsComponent extends UnsubscribeOnDestroy {
18929
18980
  ObjectDetailsComponent.decorators = [
18930
18981
  { type: Component, args: [{
18931
18982
  selector: 'eo-object-details',
18932
- template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError; else noItem\">\n\n <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"eo-header-actions-container\">\n <div class=\"eo-header-actions\">\n <ng-container *ngIf=\"!isReference; else tplHeadReference\">\n <eo-icon class=\"button refresh-button\" *ngIf=\"!recyclebinTabs\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\" (click)=\"refreshContent()\"></eo-icon>\n <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare && !recyclebinTabs\" [ngClass]=\"{'enabled': enableSync}\"\n [iconSrc]=\"'assets/_default/svg/ic_link.svg'\" [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\"\n (click)=\"enableSync = !enableSync\"></eo-icon>\n <eo-favorite-icon [item]=\"item\" *ngIf=\"!enableCompare && !recyclebinTabs && capabilities.favorites && !isJournalObject(item)\">\n </eo-favorite-icon>\n <eo-icon class=\"button oc-button\" *ngIf=\"!enableCompare && item.content\" (click)=\"downloadOriginalContent()\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\n <eo-edit-icon [item]=\"item\" *ngIf=\"!enableCompare && !recyclebinTabs && item.content && item.rights.edit && (agentIsConnected$ | async)\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" *ngIf=\"!recyclebinTabs\" (click)=\"showActions()\"\n [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </ng-container>\n\n <ng-template #tplHeadReference>\n <a class=\"button reference primary\"\n [title]=\"('eo.object.reference.tooltip' | translate:{title:referenceTitle})\"\n [routerLink]=\"['/object', item.id]\"\n [queryParams]=\"{type: item.typeName}\">{{'eo.object.reference.open'|translate}}</a>\n </ng-template>\n\n </div>\n\n <div class=\"eo-header-status-icons\">\n <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\n [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\n <span>{{'eo.object.contentlink' | translate}}</span>\n </a>\n <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\"\n [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\n <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\n [iconTitle]=\"'eo.object.resubmission.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"shared-icon\" *ngIf=\"item.additionalvisibility.length && !recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"'eo.object.shared.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\n [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\n <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\n [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon inprocess\" *ngIf=\"item.data.yuvsigstatus === 'inprocess'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.inprocess' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon signed\" *ngIf=\"item.data.yuvsigstatus === 'signed'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.signed' | translate\"></eo-icon>\n </div>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <eo-tab-container [pluginPanels]=\"externalPanels\" [cacheLayout]=\"!enableCompare && cacheLayout\" [defaultPanelOrder]=\"!enableCompare && panelOrder\"\n [dndEnabled]=\"!enableCompare\" [enableSlave]=\"!enableCompare || item2\" [enableSync]=\"enableCompare && enableSync\"\n [version]=\"enableCompare && {master: item && item.version, slave: item2 && item2.version}\">\n\n <eo-tab-panel [id]=\"'summary'\" *ngIf=\"isVisible('summary')\" header=\"{{'eo.object.summary.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\n [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel [id]=\"'indexdata'\" *ngIf=\"isVisible('indexdata') && !recyclebinTabs\" header=\"{{'eo.object.indexdata.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\n [formDisabled]=\"enableCompare || isReference\"></eo-object-form-edit>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel [id]=\"'preview'\" *ngIf=\"isVisible('preview')\" header=\"{{'eo.object.content.title' | translate}}\" [isSlave]=\"!enableCompare\"\n #preview>\n <ng-template pTemplate=\"content\" *ngIf=\"!undockWinActive; else loadPreview\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [disabled]=\"!preview.selected\"\n [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" #viewer></eo-media>\n </ng-template>\n <ng-template #loadPreview>\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\"\n [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" #viewer></eo-media>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('history') && !enableCompare\" [id]=\"'history'\" header=\"{{'eo.object.history.title' | translate}}\" #history>\n <ng-template pTemplate=\"content\">\n <eo-object-history *ngIf=\"history.selected\" [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('links') && !enableCompare && !recyclebinTabs\" [id]=\"'links'\" header=\"{{'eo.object.links.title' | translate}}\" #links>\n <ng-template pTemplate=\"content\">\n <eo-object-links *ngIf=\"links.selected\" [dmsObject]=\"item\"></eo-object-links>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('signature') && hasSigningObjectType() && !recyclebinTabs\" [id]=\"'signature'\" header=\"{{'eo.object.signature-tab.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n </eo-tab-panel>\n <!-- slave tabs -->\n\n <eo-tab-panel *ngIf=\"isVisible('summary') && enableCompare\" [id]=\"'summary2'\" header=\"{{'eo.object.summary.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary *ngIf=\"item2\" [indexdata]=\"indexDataPreview2\" [baseparams]=\"baseparams2\"\n [dmsObject]=\"item2\" [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('indexdata') && enableCompare\" [id]=\"'indexdata2'\" header=\"{{'eo.object.indexdata.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-object-form-edit *ngIf=\"item2\" [dmsObject]=\"item2\" (indexDataSaved)=\"onIndexDataSaved($event, item2)\"\n [formDisabled]=\"enableCompare || isReference\"></eo-object-form-edit>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('preview') && enableCompare\" [id]=\"'preview2'\" header=\"{{'eo.object.content.title' | translate}}\"\n [isSlave]=\"true\" #preview2>\n <ng-template pTemplate=\"content\">\n <eo-media *ngIf=\"item2\" [dmsObject]=\"item2\" [disabled]=\"!preview2.selected\" [undockDisabled]=\"enableCompare\"\n [useVersion]=\"true\" [searchTerm]=\"searchTerm\" #viewer2></eo-media>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"enableCompare && enableDiff\" [id]=\"'changes'\" header=\"{{'eo.object.changes.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary *ngIf=\"item2\" [diff]=\"{indexdata : indexDataPreview, indexdata2: indexDataPreview2, baseparams: baseparams, baseparams2: baseparams2}\"\n [dmsObject]=\"item2\" [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <ng-content></ng-content>\n\n </eo-tab-container>\n </div>\n</ng-container>\n\n<ng-template #noItem>\n <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\n <eo-error-message *ngIf=\"!showLoader\"\n [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\n <ng-content select=\".error\"></ng-content>\n </eo-error-message>\n</ng-template>\n",
18983
+ template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError; else noItem\">\n\n <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"eo-header-actions-container\">\n <div class=\"eo-header-actions\">\n <ng-container *ngIf=\"!isReference; else tplHeadReference\">\n <eo-icon class=\"button refresh-button\" *ngIf=\"!recyclebinTabs\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\" [ngClass]=\"{'disable-refresh': preventClickThrough}\" (click)=\"refreshContent()\"></eo-icon>\n <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare && !recyclebinTabs\" [ngClass]=\"{'enabled': enableSync}\"\n [iconSrc]=\"'assets/_default/svg/ic_link.svg'\" [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\"\n (click)=\"enableSync = !enableSync\"></eo-icon>\n <eo-favorite-icon [item]=\"item\" *ngIf=\"!enableCompare && !recyclebinTabs && capabilities.favorites && !isJournalObject(item)\">\n </eo-favorite-icon>\n <eo-icon class=\"button oc-button\" *ngIf=\"!enableCompare && item.content\" (click)=\"downloadOriginalContent()\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\n <eo-edit-icon [item]=\"item\" *ngIf=\"!enableCompare && !recyclebinTabs && item.content && item.rights.edit && (agentIsConnected$ | async)\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" *ngIf=\"!recyclebinTabs\" (click)=\"showActions()\"\n [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </ng-container>\n\n <ng-template #tplHeadReference>\n <a class=\"button reference primary\"\n [title]=\"('eo.object.reference.tooltip' | translate:{title:referenceTitle})\"\n [routerLink]=\"['/object', item.id]\"\n [queryParams]=\"{type: item.typeName}\">{{'eo.object.reference.open'|translate}}</a>\n </ng-template>\n\n </div>\n\n <div class=\"eo-header-status-icons\">\n <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\n [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\n <span>{{'eo.object.contentlink' | translate}}</span>\n </a>\n <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\"\n [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\n <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\n [iconTitle]=\"'eo.object.resubmission.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"shared-icon\" *ngIf=\"item.additionalvisibility.length && !recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"'eo.object.shared.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\n [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\n <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\n [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon inprocess\" *ngIf=\"item.data.yuvsigstatus === 'inprocess'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.inprocess' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon signed\" *ngIf=\"item.data.yuvsigstatus === 'signed'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.signed' | translate\"></eo-icon>\n </div>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <eo-tab-container [pluginPanels]=\"externalPanels\" [cacheLayout]=\"!enableCompare && cacheLayout\" [defaultPanelOrder]=\"!enableCompare && panelOrder\"\n [dndEnabled]=\"!enableCompare\" [enableSlave]=\"!enableCompare || item2\" [enableSync]=\"enableCompare && enableSync\"\n [version]=\"enableCompare && {master: item && item.version, slave: item2 && item2.version}\">\n\n <eo-tab-panel [id]=\"'summary'\" *ngIf=\"isVisible('summary')\" header=\"{{'eo.object.summary.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\n [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel [id]=\"'indexdata'\" *ngIf=\"isVisible('indexdata') && !recyclebinTabs\" header=\"{{'eo.object.indexdata.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\n [formDisabled]=\"enableCompare || isReference\"></eo-object-form-edit>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel [id]=\"'preview'\" *ngIf=\"isVisible('preview')\" header=\"{{'eo.object.content.title' | translate}}\" [isSlave]=\"!enableCompare\"\n #preview>\n <ng-template pTemplate=\"content\" *ngIf=\"!undockWinActive; else loadPreview\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [disabled]=\"!preview.selected\"\n [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" #viewer></eo-media>\n </ng-template>\n <ng-template #loadPreview>\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\"\n [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" #viewer></eo-media>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('history') && !enableCompare\" [id]=\"'history'\" header=\"{{'eo.object.history.title' | translate}}\" #history>\n <ng-template pTemplate=\"content\">\n <eo-object-history *ngIf=\"history.selected\" [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('links') && !enableCompare && !recyclebinTabs\" [id]=\"'links'\" header=\"{{'eo.object.links.title' | translate}}\" #links>\n <ng-template pTemplate=\"content\">\n <eo-object-links *ngIf=\"links.selected\" [dmsObject]=\"item\"></eo-object-links>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('signature') && hasSigningObjectType() && !recyclebinTabs\" [id]=\"'signature'\" header=\"{{'eo.object.signature-tab.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n </eo-tab-panel>\n <!-- slave tabs -->\n\n <eo-tab-panel *ngIf=\"isVisible('summary') && enableCompare\" [id]=\"'summary2'\" header=\"{{'eo.object.summary.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary *ngIf=\"item2\" [indexdata]=\"indexDataPreview2\" [baseparams]=\"baseparams2\"\n [dmsObject]=\"item2\" [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('indexdata') && enableCompare\" [id]=\"'indexdata2'\" header=\"{{'eo.object.indexdata.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-object-form-edit *ngIf=\"item2\" [dmsObject]=\"item2\" (indexDataSaved)=\"onIndexDataSaved($event, item2)\"\n [formDisabled]=\"enableCompare || isReference\"></eo-object-form-edit>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('preview') && enableCompare\" [id]=\"'preview2'\" header=\"{{'eo.object.content.title' | translate}}\"\n [isSlave]=\"true\" #preview2>\n <ng-template pTemplate=\"content\">\n <eo-media *ngIf=\"item2\" [dmsObject]=\"item2\" [disabled]=\"!preview2.selected\" [undockDisabled]=\"enableCompare\"\n [useVersion]=\"true\" [searchTerm]=\"searchTerm\" #viewer2></eo-media>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"enableCompare && enableDiff\" [id]=\"'changes'\" header=\"{{'eo.object.changes.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary *ngIf=\"item2\" [diff]=\"{indexdata : indexDataPreview, indexdata2: indexDataPreview2, baseparams: baseparams, baseparams2: baseparams2}\"\n [dmsObject]=\"item2\" [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <ng-content></ng-content>\n\n </eo-tab-container>\n </div>\n</ng-container>\n\n<ng-template #noItem>\n <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\n <eo-error-message *ngIf=\"!showLoader\"\n [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\n <ng-content select=\".error\"></ng-content>\n </eo-error-message>\n</ng-template>\n",
18933
18984
  providers: [ContentPreviewService],
18934
- styles: [":host{background:var(--panel-background-grey);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0;overflow-y:auto}:host .eo-head .eo-header .eo-header-info .eo-header-subtitle,:host .eo-head .eo-header .eo-header-info .eo-header-title{-moz-user-select:text;-webkit-user-select:text;user-select:text}:host .eo-body__not-available{background:rgba(var(--color-black-rgb),.4);opacity:.4}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .lock{background:var(--color-error)!important;border-radius:2px;color:var(--color-white);height:18px;padding:1px;width:18px}:host .lock.myLock{background:var(--state-orange)!important;color:var(--color-white)}:host .not-found{background:var(--color-error);border-radius:2px;color:var(--panel-background);flex:0 0 auto;margin:calc(var(--app-pane-padding)/2);padding:calc(var(--app-pane-padding)/4);text-align:center}:host .eo-header-status-icons{display:flex;justify-content:flex-end;margin-top:var(--app-pane-padding)}:host .eo-header-status-icons>eo-icon{background-color:var(--color-primary-2);color:var(--color-white);height:18px;margin-left:1px;padding:calc(var(--app-pane-padding)/4);width:18px}:host .eo-header-status-icons>eo-icon:first-child{border-bottom-left-radius:4px;border-top-left-radius:4px}:host .eo-header-status-icons>eo-icon:last-child{border-bottom-right-radius:4px;border-top-right-radius:4px}:host .eo-header-status-icons>eo-icon.finalized-icon{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.inprocess{background-color:var(--color-light-gray)}:host .eo-header-status-icons>eo-icon.signed-icon.signed{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.lock{background:var(--color-error)!important;border-radius:2px;color:var(--color-white);height:18px;padding:1px;width:18px}:host .eo-header-status-icons>eo-icon.lock.myLock{background:var(--state-orange)!important}:host .eo-header-status-icons>a{align-items:center;background-color:var(--color-success);border-radius:2px;color:var(--color-white);display:flex;font-size:var(--font-hint);line-height:var(--font-hint);margin:0 calc(var(--app-pane-padding)/4);padding:0 4px 1px;text-decoration:none}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .object-detail__loader{margin:auto}:host ::ng-deep .sync-tab-btn{color:rgba(var(--color-black-rgb),.2)}:host ::ng-deep .sync-tab-btn .svg-link{fill:transparent}:host ::ng-deep .sync-tab-btn.enabled .svg-link{fill:currentColor}:host ::ng-deep div[eosplitgutter]{background-color:var(--color-white)!important}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}:host ::ng-deep #indexdata{overflow:hidden}:host ::ng-deep #indexdata .object-form-edit{background:transparent!important;height:100%;margin:0;position:relative}:host ::ng-deep #indexdata .object-form-edit eo-object-form{background:transparent;overflow:auto}:host ::ng-deep #indexdata .object-form-edit eo-object-form .eo-object-form{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding)}:host ::ng-deep #indexdata .object-form-edit .form-controls{-webkit-animation:eoFadeInUp .2s;animation:eoFadeInUp .2s;border:4px solid var(--panel-background-grey)}:host ::ng-deep #indexdata .object-form-edit .form-controls .buttons{background:var(--panel-background);border-top:1px solid var(--panel-divider-color);padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding)!important}"]
18985
+ styles: [":host{background:var(--panel-background-grey);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0;overflow-y:auto}:host .eo-head .eo-header .eo-header-info .eo-header-subtitle,:host .eo-head .eo-header .eo-header-info .eo-header-title{-moz-user-select:text;-webkit-user-select:text;user-select:text}:host .eo-body__not-available{background:rgba(var(--color-black-rgb),.4);opacity:.4}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .lock{background:var(--color-error)!important;border-radius:2px;color:var(--color-white);height:18px;padding:1px;width:18px}:host .lock.myLock{background:var(--state-orange)!important;color:var(--color-white)}:host .not-found{background:var(--color-error);border-radius:2px;color:var(--panel-background);flex:0 0 auto;margin:calc(var(--app-pane-padding)/2);padding:calc(var(--app-pane-padding)/4);text-align:center}:host .eo-header-status-icons{display:flex;justify-content:flex-end;margin-top:var(--app-pane-padding)}:host .eo-header-status-icons>eo-icon{background-color:var(--color-primary-2);color:var(--color-white);height:18px;margin-left:1px;padding:calc(var(--app-pane-padding)/4);width:18px}:host .eo-header-status-icons>eo-icon:first-child{border-bottom-left-radius:4px;border-top-left-radius:4px}:host .eo-header-status-icons>eo-icon:last-child{border-bottom-right-radius:4px;border-top-right-radius:4px}:host .eo-header-status-icons>eo-icon.finalized-icon{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.inprocess{background-color:var(--color-light-gray)}:host .eo-header-status-icons>eo-icon.signed-icon.signed{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.lock{background:var(--color-error)!important;border-radius:2px;color:var(--color-white);height:18px;padding:1px;width:18px}:host .eo-header-status-icons>eo-icon.lock.myLock{background:var(--state-orange)!important}:host .eo-header-status-icons>a{align-items:center;background-color:var(--color-success);border-radius:2px;color:var(--color-white);display:flex;font-size:var(--font-hint);line-height:var(--font-hint);margin:0 calc(var(--app-pane-padding)/4);padding:0 4px 1px;text-decoration:none}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .object-detail__loader{margin:auto}:host ::ng-deep .sync-tab-btn{color:rgba(var(--color-black-rgb),.2)}:host ::ng-deep .sync-tab-btn .svg-link{fill:transparent}:host ::ng-deep .sync-tab-btn.enabled .svg-link{fill:currentColor}:host ::ng-deep div[eosplitgutter]{background-color:var(--color-white)!important}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}:host ::ng-deep #indexdata{overflow:hidden}:host ::ng-deep #indexdata .object-form-edit{background:transparent!important;height:100%;margin:0;position:relative}:host ::ng-deep #indexdata .object-form-edit eo-object-form{background:transparent;overflow:auto}:host ::ng-deep #indexdata .object-form-edit eo-object-form .eo-object-form{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding)}:host ::ng-deep #indexdata .object-form-edit .form-controls{-webkit-animation:eoFadeInUp .2s;animation:eoFadeInUp .2s;border:4px solid var(--panel-background-grey)}:host ::ng-deep #indexdata .object-form-edit .form-controls .buttons{background:var(--panel-background);border-top:1px solid var(--panel-divider-color);padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding)!important}:host ::ng-deep .refresh-button.disable-refresh{color:var(--color-primary-3);cursor:default}"]
18935
18986
  },] }
18936
18987
  ];
18937
18988
  ObjectDetailsComponent.ctorParameters = () => [
@@ -19283,7 +19334,7 @@ class ObjectHistoryComponent extends UnsubscribeOnDestroy {
19283
19334
  ObjectHistoryComponent.decorators = [
19284
19335
  { type: Component, args: [{
19285
19336
  selector: 'eo-object-history',
19286
- template: "<div class=\"object-history\">\n\n <eo-history-filter [filters]=\"filters\"\n [history]=\"history\"\n [(term)]=\"filterterm\"\n [visibleFilter]=\"visibleFilter\"\n (onToggleFilter)=\"toggleFilter($event)\">\n </eo-history-filter>\n\n\n <ng-template #empty>\n <div class=\"history empty\" translate>eo.timeline.empty</div>\n </ng-template>\n\n <div class=\"history eo-timeline\" [ngClass]=\"{single: history?.length === 1}\" *ngIf=\"history?.length; else empty\">\n\n <div class=\"timeline-entry\" [ngClass]=\"{user: !!entry.user, comment: entry.comment}\"\n *ngFor=\"let entry of history | historyFilter: filterterm; trackBy: trackByIndex\">\n\n <div class=\"when\">\n <div class=\"date\">{{entry.time | localeDate: 'eoShortDate'}}</div>\n <div class=\"time\">{{entry.time | localeDate: 'eoShortTime'}}</div>\n </div>\n <div class=\"marker\" [ngClass]=\"{bpm: entry.group === 'PROCESS', mod: entry.group === 'MODIFICATION'}\"></div>\n <div class=\"what\">\n\n <div class=\"title\"><span [translate]=\"'eo.object.history.entry.type.' + entry.type + '.title'\"></span>\n <a class=\"version\" [routerLink]=\"'/versions/' + params.id\" [queryParams]=\"{type: params.type, version: entry.version}\">\n <span>{{'eo.object.history.version' | translate}} {{entry.version}}</span>\n </a>\n </div>\n <div class=\"description\"\n [translateParams]=\"entry.parameter\"\n [translate]=\"'eo.object.history.entry.type.' + entry.type + '.description'\"></div>\n <div class=\"comment\">&quot;{{entry.comment}}&quot;</div>\n\n <div class=\"meta\">\n <span *ngIf=\"entry.user.type === 'serveruser'; else user\">{{entry.user.title}}</span>\n <ng-template #user>\n <span>{{entry.user.lastname}}, {{entry.user.firstname}} ({{entry.user.name}})</span>\n </ng-template>\n </div>\n\n <div class=\"bpm-meta\" *ngIf=\"entry.parameter?.type === 'bpm'\">\n <span *ngIf=\"entry.parameter.processName\">\n <span translate>eo.object.history.workflowprocess</span>\n <span>'{{entry.parameter.processName}}'</span>\n </span>\n <span *ngIf=\"entry.parameter.activityName\">\n <span translate>eo.object.history.activity</span>\n <span>'{{entry.parameter.activityName}}'</span>\n </span>\n </div>\n\n </div>\n </div>\n </div>\n</div>\n",
19337
+ template: "<div class=\"object-history\">\n\n <eo-history-filter [filters]=\"filters\"\n [history]=\"history\"\n [(term)]=\"filterterm\"\n [visibleFilter]=\"visibleFilter\"\n (onToggleFilter)=\"toggleFilter($event)\">\n </eo-history-filter>\n\n\n <ng-template #empty>\n <div class=\"history empty\" translate>eo.timeline.empty</div>\n </ng-template>\n\n <div class=\"history eo-timeline\" [ngClass]=\"{single: history?.length === 1}\" *ngIf=\"history?.length; else empty\">\n\n <div class=\"timeline-entry\" [ngClass]=\"{user: !!entry.user, comment: entry.comment}\"\n *ngFor=\"let entry of history | historyFilter: filterterm; trackBy: trackByIndex\">\n\n <div class=\"when\">\n <div class=\"date\">{{entry.time | localeDate: 'eoShortDate'}}</div>\n <div class=\"time\">{{entry.time | localeDate: 'eoShortTime'}}</div>\n </div>\n <div class=\"marker\" [ngClass]=\"{bpm: entry.group === 'PROCESS', mod: entry.group === 'MODIFICATION'}\"></div>\n <div class=\"what\">\n\n <div class=\"title\"><span [translate]=\"'eo.object.history.entry.type.' + entry.type + '.title'\"></span>\n <a class=\"version\" [routerLink]=\"'/versions/' + params.id\" [queryParams]=\"{type: params.type, version: entry.version}\">\n <span>{{'eo.object.history.version' | translate}} {{entry.version}}</span>\n </a>\n </div>\n <div class=\"description\"\n [translateParams]=\"entry.parameter\"\n [translate]=\"'eo.object.history.entry.type.' + (entry.intent ? entry.intent : entry.type) + '.description'\"></div>\n <div class=\"comment\">&quot;{{entry.comment}}&quot;</div>\n\n <div class=\"meta\">\n <span *ngIf=\"entry.user.type === 'serveruser'; else user\">{{entry.user.title}}</span>\n <ng-template #user>\n <span>{{entry.user.lastname}}, {{entry.user.firstname}} ({{entry.user.name}})</span>\n </ng-template>\n </div>\n\n <div class=\"bpm-meta\" *ngIf=\"entry.parameter?.type === 'bpm'\">\n <span *ngIf=\"entry.parameter.processName\">\n <span translate>eo.object.history.workflowprocess</span>\n <span>'{{entry.parameter.processName}}'</span>\n </span>\n <span *ngIf=\"entry.parameter.activityName\">\n <span translate>eo.object.history.activity</span>\n <span>'{{entry.parameter.activityName}}'</span>\n </span>\n </div>\n\n </div>\n </div>\n </div>\n</div>\n",
19287
19338
  changeDetection: ChangeDetectionStrategy.OnPush,
19288
19339
  styles: [":host .object-history{display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:350px;min-width:0}:host .history{flex:1 1 auto;overflow-y:auto;padding:var(--app-pane-padding)}:host .timeline-entry .marker.bpm:before{border-color:var(--color-warning)}:host .timeline-entry .marker.mod:before{border-color:var(--color-success)}:host .timeline-entry .what{padding-bottom:0}:host .timeline-entry .what .title{display:flex;flex-flow:row nowrap;justify-content:space-between}:host .timeline-entry .what .title .version{color:var(--text-color-caption);font-size:var(--font-hint);font-weight:var(--font-weight-normal);white-space:nowrap}:host .timeline-entry .what .title .version span{padding:0 calc(var(--app-pane-padding)/4)}:host .timeline-entry .what .comment{display:none}:host .timeline-entry .what .bpm-meta{color:var(--text-color-caption);font-size:var(--font-hint);margin-bottom:calc(var(--app-pane-padding)/2)}:host .timeline-entry .what .meta{display:flex;flex-flow:row wrap;margin-bottom:calc(var(--app-pane-padding)/4)}:host .timeline-entry .what .meta>span{background-color:rgba(var(--color-black-rgb),.08);border-radius:2px;display:block;font-size:var(--font-caption);margin:0 calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/4) 0;padding:2px 4px}:host .timeline-entry.comment .what .comment{color:var(--text-color-caption);display:block;font-style:italic;margin-bottom:calc(var(--app-pane-padding)/2)}"]
19289
19340
  },] }
@@ -19787,6 +19838,254 @@ EditIconComponent.propDecorators = {
19787
19838
  item: [{ type: Input }]
19788
19839
  };
19789
19840
 
19841
+ class RecyclebinDetailsComponent extends UnsubscribeOnDestroy {
19842
+ constructor(router, route, system, empty, backend, userService, toast, dmsService, selection, capabilityService, eventService, configService, translate) {
19843
+ super();
19844
+ this.router = router;
19845
+ this.route = route;
19846
+ this.system = system;
19847
+ this.empty = empty;
19848
+ this.backend = backend;
19849
+ this.userService = userService;
19850
+ this.toast = toast;
19851
+ this.dmsService = dmsService;
19852
+ this.selection = selection;
19853
+ this.capabilityService = capabilityService;
19854
+ this.eventService = eventService;
19855
+ this.configService = configService;
19856
+ this.translate = translate;
19857
+ // generate unique id to pass to upload registry
19858
+ this.user$ = this.userService.user$;
19859
+ this._showDeleteDialog = false;
19860
+ this.userId = '';
19861
+ this.hasError = false;
19862
+ this.nodmsobject = false;
19863
+ this.showLoader = false;
19864
+ this.panelOrder = { 'master': ['summary', 'history'], 'slave': ['preview'] };
19865
+ this._emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
19866
+ this.externalPanels = new QueryList();
19867
+ this.parseDmsParams = this.getDmsParams;
19868
+ this.hasContent = new EventEmitter();
19869
+ this.panelOrder = this.configService.getRaw('recyclebinDetailsTabs') || this.panelOrder;
19870
+ this.user$.subscribe(user => { this.userId = user.id; });
19871
+ }
19872
+ set showDeleteDialog(val) {
19873
+ this._showDeleteDialog = val;
19874
+ if (this._showDeleteDialog) {
19875
+ setTimeout(() => this.confirmDeleteButton.nativeElement.focus(), 0);
19876
+ }
19877
+ }
19878
+ get showDeleteDialog() {
19879
+ return this._showDeleteDialog;
19880
+ }
19881
+ set emptyState(e) {
19882
+ this._emptyState = e || EmptyStateService.defaultEmptyState();
19883
+ }
19884
+ get emptyState() {
19885
+ return this._emptyState;
19886
+ }
19887
+ set dmsParams(params) {
19888
+ this.showLoader = true;
19889
+ this.loadDmsObject(params).subscribe((res) => {
19890
+ this.dmsObject = res;
19891
+ this.showLoader = false;
19892
+ }, Utils.throw(() => this.onHasError(true, true, false)));
19893
+ }
19894
+ set dmsObject(v) {
19895
+ this.item = v;
19896
+ this.onHasError();
19897
+ // prepare indexdata preview
19898
+ this.onIndexDataSaved(null, this.item);
19899
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_LOADED, this.item);
19900
+ if (this.item) {
19901
+ if (this.item.lock) {
19902
+ this.lockTooltip = this.translate.instant('eo.object.lock') + ' '
19903
+ + (new LocaleDatePipe(this.translate).transform(this.item.lock.on))
19904
+ + ', ' + this.item.lock.by.label + ' (' + this.item.lock.by.name + ')';
19905
+ }
19906
+ }
19907
+ else {
19908
+ this.emptyState = this.empty.getEmptyState(0);
19909
+ }
19910
+ }
19911
+ get dataType() {
19912
+ return this.item ? this.item.typeName : 'none';
19913
+ }
19914
+ getDmsParams(data) {
19915
+ return data ? Object.assign(Object.assign({}, data), { type: data.type }) : null;
19916
+ }
19917
+ updateContent() {
19918
+ if (this.applySelection) {
19919
+ this.selection
19920
+ .find(this.applySelection.in)
19921
+ .focus$
19922
+ .pipe(takeUntil(this.componentDestroyed$))
19923
+ .subscribe(result => {
19924
+ this.showLoader = true;
19925
+ this.loadDmsObject(this.parseDmsParams(result)).subscribe((res) => {
19926
+ if (this.item && res && (this.item.id === res.id) && res.version > this.item.version) {
19927
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, res);
19928
+ }
19929
+ this.dmsObject = res;
19930
+ this.showLoader = false;
19931
+ }, Utils.throw((error) => {
19932
+ return this.onHasError(true, true, false);
19933
+ }));
19934
+ });
19935
+ }
19936
+ }
19937
+ restoreFile(openLocationAfterRestore = false) {
19938
+ this.dmsService.restore(this.item.id, this.userId, this.item.typeName).subscribe(() => {
19939
+ this.updateContent();
19940
+ if (openLocationAfterRestore) {
19941
+ this.router.navigate(['/object', this.item.id]);
19942
+ }
19943
+ this.toast.success(this.translate.instant('eo.recyclebin.details.restore.done.title'), this.translate.instant('eo.recyclebin.details.restore.done.message', { item: this.item.title }));
19944
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED);
19945
+ }, (error) => {
19946
+ if (error.status === 409) {
19947
+ this.toast.error(this.translate.instant('eo.recyclebin.details.restore.dms.object.error.409'));
19948
+ }
19949
+ });
19950
+ }
19951
+ deleteDmsObject() {
19952
+ this.dmsService
19953
+ .deleteDmsObject(this.item.id, this.item.type.name, true)
19954
+ .subscribe(() => {
19955
+ this.toast.success(this.translate.instant('eo.recyclebin.details.delete.done.title'), this.translate.instant('eo.recyclebin.details.delete.done.message', { item: this.item.title }));
19956
+ this._showDeleteDialog = false;
19957
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED);
19958
+ });
19959
+ }
19960
+ prepareIndexDataPreview(item, formData) {
19961
+ const { id, data, type, created, modified, content, contentFileName, contentFileSize, version } = item;
19962
+ return this.system
19963
+ .getObjectTypeForm(type.name, 'EDIT')
19964
+ .pipe(map(form => {
19965
+ let indexDataPreview = {
19966
+ form,
19967
+ data: formData || data
19968
+ };
19969
+ let baseparams = {
19970
+ id,
19971
+ type: type.name,
19972
+ createdOn: new Date(created.on),
19973
+ modifiedOn: new Date(modified.on),
19974
+ createdBy: `${created.by.title} (${created.by.name})`,
19975
+ modifiedBy: `${modified.by.title} (${modified.by.name})`,
19976
+ contentFileName: contentFileName ? contentFileName : null,
19977
+ contentFileSize: contentFileSize ? Number(contentFileSize) : null,
19978
+ version: version || 0,
19979
+ mimeGroup: content ? content.contents ? content.contents[0].mimegroup : null : null,
19980
+ digest: content ? content.contents ? content.contents[0].digest : null : null,
19981
+ contentId: content ? content.contents ? content.id : null : null,
19982
+ mimeType: content ? content.contents ? content.contents[0].mimetype : null : null,
19983
+ };
19984
+ return { indexDataPreview, baseparams };
19985
+ }));
19986
+ }
19987
+ onHasError(hasError = false, nodmsobject = false, showLoader = false) {
19988
+ this.hasError = hasError;
19989
+ this.nodmsobject = nodmsobject;
19990
+ this.showLoader = showLoader;
19991
+ this.hasContent.emit(!hasError);
19992
+ }
19993
+ loadDmsObject(params) {
19994
+ var _a;
19995
+ if (params) {
19996
+ delete params.version;
19997
+ }
19998
+ // check for valid id
19999
+ return ((_a = params === null || params === void 0 ? void 0 : params.id) === null || _a === void 0 ? void 0 : _a.length) === 32 ? this.dmsService.getDmsObjectByParams(params) : of(null);
20000
+ }
20001
+ downloadOriginalContent() {
20002
+ this.backend.downloadContent([this.item], null, false, true);
20003
+ }
20004
+ // executed when the dms object changed due to saving its indexdata
20005
+ onIndexDataSaved(formData, item) {
20006
+ if (!this.item) {
20007
+ this.indexDataPreview = null;
20008
+ this.baseparams = null;
20009
+ }
20010
+ if (!this.item2) {
20011
+ this.indexDataPreview2 = null;
20012
+ this.baseparams2 = null;
20013
+ }
20014
+ if (item) {
20015
+ this.prepareIndexDataPreview(item, formData)
20016
+ .subscribe(data => {
20017
+ if (item === this.item) {
20018
+ this.indexDataPreview = data.indexDataPreview;
20019
+ this.baseparams = data.baseparams;
20020
+ }
20021
+ else {
20022
+ this.indexDataPreview2 = data.indexDataPreview;
20023
+ this.baseparams2 = data.baseparams;
20024
+ }
20025
+ });
20026
+ }
20027
+ }
20028
+ isVisible(id) {
20029
+ return this.panelOrder.master.includes(id) || this.panelOrder.slave.includes(id);
20030
+ }
20031
+ ngOnInit() {
20032
+ this.capabilities = this.capabilityService.getCapabilities();
20033
+ this.updateContent();
20034
+ this.eventService
20035
+ .on(EnaioEvent.DMS_OBJECT_UPDATED)
20036
+ .pipe(takeUntil(this.componentDestroyed$))
20037
+ .subscribe(event => {
20038
+ if (event.data && this.item.id === event.data.id) {
20039
+ this.dmsObject = this.dmsService.createLocalCopyOfDMSObject(event.data);
20040
+ if (this.preview && !this.preview.disabled) {
20041
+ this.preview.refresh();
20042
+ }
20043
+ }
20044
+ });
20045
+ }
20046
+ ngAfterViewInit() {
20047
+ let panels = this.tabPanels.toArray();
20048
+ this.tabPlugins.forEach(p => panels = panels.concat(p.tabPanels.toArray()));
20049
+ this.externalPanels.reset(panels);
20050
+ }
20051
+ }
20052
+ RecyclebinDetailsComponent.decorators = [
20053
+ { type: Component, args: [{
20054
+ selector: 'eo-recyclebin-details',
20055
+ template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"recyclebin-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError\">\n\n <div class=\"eo-head eo-head-tabs\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"actions\">\n <eo-icon *ngIf=\"item.content\" class=\"btn btn-download\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n (click)=\"downloadOriginalContent()\"></eo-icon>\n <eo-icon class=\"btn btn-delete\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\n [iconTitle]=\"('eo.recyclebin.details.delete.tooltip' | translate)\"\n (click)=\"showDeleteDialog = true;\"></eo-icon>\n <button class=\"btn-tpl-apply\" (click)=\"restoreFile()\" translate>eo.recyclebin.details.restore</button>\n <button (click)=\"restoreFile(true)\" class=\"primary btn-idx-restoreopen\"\n translate>eo.recyclebin.details.restoreopen</button>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <eo-tab-container [defaultPanelOrder]=\"panelOrder\" [pluginPanels]=\"externalPanels\" [cacheLayout]=\"cacheLayout\"\n [enableSlave]=\"true\">\n\n <eo-tab-panel [id]=\"'summary'\" *ngIf=\"isVisible('summary')\"\n header=\"{{'eo.object.summary.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel [id]=\"'preview'\" *ngIf=\"isVisible('preview')\"\n header=\"{{'eo.object.content.title' | translate}}\" [isSlave]=\"true\" #preview>\n <ng-template pTemplate=\"content\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [useVersion]=\"item.id === item.content?.id\" #viewer></eo-media>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('history')\" [id]=\"'history'\"\n header=\"{{'eo.object.history.title' | translate}}\" #history>\n <ng-template pTemplate=\"content\">\n <eo-object-history *ngIf=\"history.selected\" [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </eo-tab-panel>\n\n <ng-content></ng-content>\n\n </eo-tab-container>\n </div>\n</ng-container>\n\n<eo-dialog [title]=\"'eo.recyclebin.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'recyclebin-delete__dialog'\">\n\n <div>{{'eo.recyclebin.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons recyclebin-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.recyclebin.details.delete.dialog.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"deleteDmsObject()\" class=\"button primary\"\n translate>eo.recyclebin.details.delete.dialog.delete</button>\n </div>\n</eo-dialog>\n",
20056
+ styles: [":host{background:var(--panel-background-grey);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0;overflow-y:auto}:host .eo-head .eo-header .eo-header-info .eo-header-subtitle,:host .eo-head .eo-header .eo-header-info .eo-header-title{-moz-user-select:text;-webkit-user-select:text;user-select:text}:host .actions{align-items:center;align-self:flex-start;display:flex}[dir=ltr] :host .actions button{margin-left:calc(var(--app-pane-padding)/2)}[dir=rtl] :host .actions button{margin-right:calc(var(--app-pane-padding)/2)}:host .actions eo-icon{cursor:pointer;padding:calc(var(--app-pane-padding)/4)}:host .eo-body__not-available{background:rgba(var(--color-black-rgb),.4);opacity:.4}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .recyclebin-detail__loader{margin:auto}:host ::ng-deep div[eosplitgutter]{background-color:var(--color-white)!important}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}::ng-deep .recyclebin-delete__dialog{min-height:unset!important;padding:8px}::ng-deep .recyclebin-delete__dialog--header{background:#fff!important;color:rgba(var(--color-black-rgb),.54)!important;font-size:1.17em!important;font-weight:400!important;margin:0;padding:0 0 1em!important}"]
20057
+ },] }
20058
+ ];
20059
+ RecyclebinDetailsComponent.ctorParameters = () => [
20060
+ { type: Router },
20061
+ { type: ActivatedRoute },
20062
+ { type: SystemService },
20063
+ { type: EmptyStateService },
20064
+ { type: BackendService },
20065
+ { type: UserService },
20066
+ { type: NotificationsService },
20067
+ { type: DmsService },
20068
+ { type: SelectionService },
20069
+ { type: CapabilitiesService },
20070
+ { type: EventService },
20071
+ { type: Config },
20072
+ { type: TranslateService }
20073
+ ];
20074
+ RecyclebinDetailsComponent.propDecorators = {
20075
+ preview: [{ type: ViewChild, args: ['viewer',] }],
20076
+ confirmDeleteButton: [{ type: ViewChild, args: ['confirmDelete',] }],
20077
+ cacheLayout: [{ type: Input }],
20078
+ tabPanels: [{ type: ContentChildren, args: [TabPanelComponent,] }],
20079
+ tabPlugins: [{ type: ContentChildren, args: [TabPluginComponent,] }],
20080
+ applySelection: [{ type: Input }],
20081
+ parseDmsParams: [{ type: Input }],
20082
+ hasContent: [{ type: Output }],
20083
+ emptyState: [{ type: Input }],
20084
+ dmsParams: [{ type: Input, args: ['params',] }],
20085
+ dmsObject: [{ type: Input, args: ['item',] }],
20086
+ dataType: [{ type: HostBinding, args: ['attr.data-type',] }]
20087
+ };
20088
+
19790
20089
  class ObjectDetailsModule {
19791
20090
  }
19792
20091
  ObjectDetailsModule.decorators = [
@@ -19808,6 +20107,7 @@ ObjectDetailsModule.decorators = [
19808
20107
  ],
19809
20108
  declarations: [
19810
20109
  ObjectDetailsComponent,
20110
+ RecyclebinDetailsComponent,
19811
20111
  ObjectHistoryComponent,
19812
20112
  ObjectLinksComponent,
19813
20113
  FavoriteIconComponent,
@@ -19815,7 +20115,7 @@ ObjectDetailsModule.decorators = [
19815
20115
  HistoryFilterComponent,
19816
20116
  EditIconComponent
19817
20117
  ],
19818
- exports: [ObjectDetailsComponent, ObjectHistoryComponent, ObjectLinksComponent, FavoriteIconComponent, HistoryFilterPipe]
20118
+ exports: [ObjectDetailsComponent, RecyclebinDetailsComponent, ObjectHistoryComponent, ObjectLinksComponent, FavoriteIconComponent, HistoryFilterPipe]
19819
20119
  },] }
19820
20120
  ];
19821
20121
 
@@ -22112,6 +22412,14 @@ class FrameComponent {
22112
22412
  onExecuteAction: () => {
22113
22413
  this.router.navigateByUrl('/stored-queries');
22114
22414
  }
22415
+ },
22416
+ {
22417
+ name: this.translate.instant('eo.view.navigation.recyclebin'),
22418
+ nameKey: 'eo.view.navigation.recyclebin',
22419
+ shortcut: '8',
22420
+ onExecuteAction: () => {
22421
+ this.router.navigateByUrl('/recyclebin');
22422
+ }
22115
22423
  }
22116
22424
  ]
22117
22425
  };
@@ -23142,8 +23450,8 @@ class FavoriteStateComponent extends UnsubscribeOnDestroy {
23142
23450
  ];
23143
23451
  this.textFilterParams = { context: { defaultValue: '' } };
23144
23452
  this.sortFields = [
23145
- { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
23146
- { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' }
23453
+ { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
23454
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' }
23147
23455
  ];
23148
23456
  const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
23149
23457
  this.gridOptions = {
@@ -23216,10 +23524,10 @@ class AboutStateComponent {
23216
23524
  this.backend = backend;
23217
23525
  this.userService = userService;
23218
23526
  this.config = config;
23219
- 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.5.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" }];
23527
+ 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.6.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" }];
23220
23528
  this.ctrl = {
23221
23529
  componentName: 'yuuvis® RAD client',
23222
- componentVersion: '9.5.0-rc.1',
23530
+ componentVersion: '9.6.0-rc.2',
23223
23531
  productName: '',
23224
23532
  productVersion: ''
23225
23533
  };
@@ -23888,9 +24196,9 @@ class NotificationsStateComponent extends UnsubscribeOnDestroy {
23888
24196
  ];
23889
24197
  this.textFilterParams = { context: { defaultValue: '' } };
23890
24198
  this.sortFields = [
24199
+ { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: '' },
23891
24200
  { field: 'info', headerName: this.translate.instant('eo.notifications.sort.title'), sort: '' },
23892
- { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: '' },
23893
- { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: '' }
24201
+ { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: '' }
23894
24202
  ];
23895
24203
  const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
23896
24204
  this.gridOptions = {
@@ -24121,13 +24429,14 @@ VersionStateComponent.propDecorators = {
24121
24429
  };
24122
24430
 
24123
24431
  class RecyclebinStateComponent extends UnsubscribeOnDestroy {
24124
- constructor(selection, translate, system, empty, pendingChanges, titleService, userService) {
24432
+ constructor(selection, translate, system, empty, pendingChanges, eventService, titleService, userService) {
24125
24433
  super();
24126
24434
  this.selection = selection;
24127
24435
  this.translate = translate;
24128
24436
  this.system = system;
24129
24437
  this.empty = empty;
24130
24438
  this.pendingChanges = pendingChanges;
24439
+ this.eventService = eventService;
24131
24440
  this.titleService = titleService;
24132
24441
  this.userService = userService;
24133
24442
  this.inboxDmsObjectSelectionId = 'inbox_dms';
@@ -24136,6 +24445,9 @@ class RecyclebinStateComponent extends UnsubscribeOnDestroy {
24136
24445
  this.textFilterParams = {};
24137
24446
  this.titleService.setBaseTitle(this.translate.instant('eo.recyclebin.list.title'));
24138
24447
  this.selection.createNew(this.inboxDmsObjectSelectionId);
24448
+ this.eventService
24449
+ .on(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED).pipe(takeUntil(this.componentDestroyed$))
24450
+ .subscribe(() => this.refreshGrid());
24139
24451
  }
24140
24452
  set hasContent(hasContent) {
24141
24453
  this.showActionsMenu = hasContent;
@@ -24180,7 +24492,9 @@ class RecyclebinStateComponent extends UnsubscribeOnDestroy {
24180
24492
  }];
24181
24493
  this.textFilterParams = { context: { defaultValue: '' } };
24182
24494
  this.sortFields = [
24495
+ { field: 'recycled', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
24183
24496
  { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
24497
+ { field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: '' }
24184
24498
  ];
24185
24499
  const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
24186
24500
  this.gridOptions = {
@@ -24195,7 +24509,7 @@ class RecyclebinStateComponent extends UnsubscribeOnDestroy {
24195
24509
  let icon = params.context.cr.render('type', params, {
24196
24510
  value: params.data.type
24197
24511
  });
24198
- let createdTime = params.context.cr.render('dateTime', params, { value: params.data.recycled });
24512
+ let recycledTime = params.context.cr.render('dateTime', params, { value: params.data.recycled });
24199
24513
  return `<div class="list-item ${params.data.folder ? 'folder' : ''}" unselectable>
24200
24514
  ${icon}
24201
24515
  <div class="content">
@@ -24205,7 +24519,7 @@ class RecyclebinStateComponent extends UnsubscribeOnDestroy {
24205
24519
  ${params.data.description}
24206
24520
  </div>
24207
24521
  <div class='description date'>
24208
- <span class="period">${createdTime}</span>
24522
+ <span class="period">${recycledTime}</span>
24209
24523
  </div>
24210
24524
  </div>
24211
24525
  </div>
@@ -24226,7 +24540,7 @@ class RecyclebinStateComponent extends UnsubscribeOnDestroy {
24226
24540
  RecyclebinStateComponent.decorators = [
24227
24541
  { type: Component, args: [{
24228
24542
  selector: 'eo-recyclebin-state',
24229
- template: "<eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"'recyclebin.state'\">\n <eo-split-area [size]=\"25\" [minSizePixel]=\"300\">\n <ng-template pTemplate=\"content\">\n <eo-list-container #eoList [applySelection]=\"{}\"[parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.recyclebin.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\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.sort' | translate\">\n <eo-custom-filter #cFilter\n (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.recyclebin.filter.title' | translate\" [id]=\"'recyclebin.text'\"\n [matchFields]=\"['title']\"\n [filterParams]=\"textFilterParams\">\n </eo-text-filter>\n\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\"\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconClass]=\"'primary'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'recyclebin.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 *ngIf=\"gridOptions?.rowData\"\n [gridOptions]=\"gridOptions\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectFirst]=\"true\"\n (eoGridCountChanged)=\"eoList.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_trash.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.recyclebin.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\n <eo-split-area [size]=\"75\" [minSizePixel]=\"400\" [cache]=\"false\">\n <ng-template pTemplate=\"content\">\n <eo-object-details [applySelection]=\"{}\"\n [parseDmsParams]=\"parseDmsParams\"\n [recyclebinTabs]=\"true\"\n [emptyState]=\"emptyState\"\n [cacheLayout]=\"'favorite.state.object-details'\"\n (hasContent)=\"hasContent = $event\">\n <eo-tab-plugin [type]=\"'object-details-tab.favorite'\"></eo-tab-plugin>\n\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split>\n",
24543
+ template: "<eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"'recyclebin.state'\">\n <eo-split-area [size]=\"25\" [minSizePixel]=\"300\">\n <ng-template pTemplate=\"content\">\n <eo-list-container #eoList [applySelection]=\"{}\"[parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.recyclebin.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\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.sort' | translate\">\n <eo-custom-filter #cFilter\n (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.recyclebin.filter.title' | translate\" [id]=\"'recyclebin.text'\"\n [matchFields]=\"['title','description']\"\n [filterParams]=\"textFilterParams\">\n </eo-text-filter>\n\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\"\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconClass]=\"'primary'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'recyclebin.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 *ngIf=\"gridOptions?.rowData\"\n [gridOptions]=\"gridOptions\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectFirst]=\"true\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n \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_trash.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.recyclebin.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\n <eo-split-area [size]=\"75\" [minSizePixel]=\"400\" [cache]=\"false\">\n <ng-template pTemplate=\"content\">\n <eo-recyclebin-details [applySelection]=\"{}\"\n [parseDmsParams]=\"parseDmsParams\"\n [emptyState]=\"emptyState\"\n [cacheLayout]=\"'recyclebin.state.details'\"\n (hasContent)=\"hasContent = $event\">\n <eo-tab-plugin [type]=\"'object-details-tab.favorite'\"></eo-tab-plugin>\n\n </eo-recyclebin-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split>\n",
24230
24544
  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 .error .button{background-color:#d3d3d3;margin:1em}:host eo-split-area{box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}: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 .title{font-size:var(--font-body);font-weight:var(--font-weight-medium)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}"]
24231
24545
  },] }
24232
24546
  ];
@@ -24236,6 +24550,7 @@ RecyclebinStateComponent.ctorParameters = () => [
24236
24550
  { type: SystemService },
24237
24551
  { type: EmptyStateService },
24238
24552
  { type: PendingChangesService },
24553
+ { type: EventService },
24239
24554
  { type: PageTitleService },
24240
24555
  { type: UserService }
24241
24556
  ];
@@ -24318,7 +24633,7 @@ class ObjectStateService {
24318
24633
  let lastModified = null;
24319
24634
  if (res.hits.length) {
24320
24635
  size = res.hits.map(a => a.filesize || 0).reduce((acc, cur) => acc + cur);
24321
- lastModified = res.hits.sort(Utils.sortValues('modified', 'desc')).slice(0, 10);
24636
+ lastModified = res.hits.sort(Utils.sortValues('modified', 'desc')).slice(0, 100);
24322
24637
  }
24323
24638
  return {
24324
24639
  documentCount: { value: res.count.value },
@@ -24867,11 +25182,12 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
24867
25182
  // cellRendererFramework: InboxRendererComponent
24868
25183
  }];
24869
25184
  this.sortFields = [
24870
- { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
24871
25185
  {
24872
25186
  field: 'received', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '',
24873
25187
  valueGetter: (p) => (p.data[p.colDef.field] || '').match(/\+\d\d:\d\d/) ? new Date(p.data[p.colDef.field]).toISOString() : p.data[p.colDef.field]
24874
- }
25188
+ },
25189
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
25190
+ { field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: '' }
24875
25191
  ];
24876
25192
  let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
24877
25193
  this.gridOptions = {
@@ -24893,10 +25209,11 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
24893
25209
  let shortDate = params.context.cr.render('dateTime', params, { value: params.data.received, pattern: 'eoShortDate' });
24894
25210
  let shortTime = params.context.cr.render('dateTime', params, { value: params.data.received, pattern: 'eoShortTime' });
24895
25211
  let duetime = params.context.cr.render('dateTime', params, { value: params.data.duetime });
25212
+ const titleClass = params.data.accepted ? 'title' : 'title-bold';
24896
25213
  return `<div class="list-item${params.data.folder ? ' folder' : ''}" unselectable>
24897
25214
  ${icon}
24898
25215
  <div class='content'>
24899
- <div class='title'>${params.data.title || ''}</div>
25216
+ <div class='${titleClass}'>${params.data.title || ''}</div>
24900
25217
  <div class='description'>${params.data.description || ''}</div>
24901
25218
  <div class='notes${params.data.isOverdue() ? ' pastDue' : ''}'>
24902
25219
  ${params.data.duetime ? '<span class="period">' + duetime + '</span>' : ''}
@@ -24936,7 +25253,7 @@ InboxStateComponent.decorators = [
24936
25253
  { type: Component, args: [{
24937
25254
  selector: 'eo-inbox-state',
24938
25255
  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",
24939
- 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}"]
25256
+ 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-normal)}:host ::ng-deep .ag-cell .list-item .content .title-bold{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}"]
24940
25257
  },] }
24941
25258
  ];
24942
25259
  InboxStateComponent.ctorParameters = () => [
@@ -25046,8 +25363,8 @@ class PrepareStateComponent extends UnsubscribeOnDestroy {
25046
25363
  }
25047
25364
  ];
25048
25365
  this.sortFields = [
25049
- { field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
25050
- { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' }
25366
+ { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
25367
+ { field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' }
25051
25368
  ];
25052
25369
  let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
25053
25370
  this.gridOptions = {
@@ -25206,5 +25523,5 @@ EoClientModule.ctorParameters = () => [
25206
25523
  * Generated bundle index. Do not edit.
25207
25524
  */
25208
25525
 
25209
- 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, OpenContextActionComponent as ɵba, DownloadActionComponent as ɵbb, DownloadOriginalActionComponent as ɵbc, DownloadPdfActionComponent as ɵbd, OpenDocumentActionComponent as ɵbe, EmailActionComponent as ɵbf, EmailLinkActionComponent as ɵbg, EmailOriginalActionComponent as ɵbh, EmailPdfActionComponent as ɵbi, ClipboardActionComponent as ɵbj, ClipboardLinkActionComponent as ɵbk, ClipboardOriginalActionComponent as ɵbl, ClipboardPdfActionComponent as ɵbm, DeleteActionComponent as ɵbn, DeleteComponent as ɵbo, OpenVersionsActionComponent as ɵbp, RestoreVersionActionComponent as ɵbq, DeletePreparedActionComponent as ɵbr, AddSubscriptionActionComponent as ɵbs, AddSubscriptionComponent as ɵbt, RemoveSubscriptionActionComponent as ɵbu, WorkflowActionComponent as ɵbv, WorkflowComponent as ɵbw, CustomActionsComponent as ɵbx, AddResubmissionActionComponent as ɵby, AddResubmissionComponent as ɵbz, AppShellRoutingModule as ɵc, UpdateResubmissionActionComponent as ɵca, ShareObjectActionComponent as ɵcb, ShareObjectComponent as ɵcc, CutActionComponent as ɵcd, FinalizeActionComponent as ɵce, FinalizeObjectActionComponent as ɵcf, DefinalizeActionComponent as ɵcg, DeleteContentComponent as ɵch, DeleteContentActionComponent as ɵci, UnlockActionComponent as ɵcj, SimpleWorkflowActionComponent as ɵck, SignatureActionComponent as ɵcl, SignatureComponent as ɵcm, CancelSigningActionComponent as ɵcn, CancelSigningComponent as ɵco, FavoriteActionComponent as ɵcp, PreventDoubleClickDirective as ɵcq, EditIconComponent as ɵcr, DuetimeInfoComponent as ɵcs, PrepareContentExistsInfoComponent as ɵct, ObjectStateRoutingModule as ɵcu, InboxStateRoutingModule as ɵcv, PrepareStateRoutingModule as ɵcw, EoClientRoutingModule as ɵcx, ProcessStateComponent as ɵcy, RecyclebinStateComponent as ɵcz, AppProcessComponent as ɵd, PipesModule as ɵe, UnsubscribeOnDestroy as ɵf, QueryScopeSelectComponent as ɵg, TrapFocusDirective as ɵh, SignatureTabComponent as ɵi, IndexdataSummaryEntryComponent as ɵj, OrderByPipe as ɵk, TreeNodeComponent as ɵl, DatepickerService as ɵm, YearRangeDirective as ɵn, ReferenceFinderComponent as ɵo, fadeInOut as ɵp, ReferenceFinderService as ɵq, ReferenceFinderEntryComponent as ɵr, DynamicListFilterComponent as ɵs, ListFilterComponent as ɵt, PaginationComponent as ɵu, ProcessFormModule as ɵv, ProcessFormComponent as ɵw, ActionComponentAnchorDirective as ɵx, OpenDocumentComponent as ɵy, CopyActionComponent as ɵz };
25526
+ 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, OpenContextActionComponent as ɵba, DownloadActionComponent as ɵbb, DownloadOriginalActionComponent as ɵbc, DownloadPdfActionComponent as ɵbd, OpenDocumentActionComponent as ɵbe, EmailActionComponent as ɵbf, EmailLinkActionComponent as ɵbg, EmailOriginalActionComponent as ɵbh, EmailPdfActionComponent as ɵbi, ClipboardActionComponent as ɵbj, ClipboardLinkActionComponent as ɵbk, ClipboardOriginalActionComponent as ɵbl, ClipboardPdfActionComponent as ɵbm, DeleteActionComponent as ɵbn, DeleteComponent as ɵbo, OpenVersionsActionComponent as ɵbp, RestoreVersionActionComponent as ɵbq, DeletePreparedActionComponent as ɵbr, AddSubscriptionActionComponent as ɵbs, AddSubscriptionComponent as ɵbt, RemoveSubscriptionActionComponent as ɵbu, WorkflowActionComponent as ɵbv, WorkflowComponent as ɵbw, CustomActionsComponent as ɵbx, AddResubmissionActionComponent as ɵby, AddResubmissionComponent as ɵbz, AppShellRoutingModule as ɵc, UpdateResubmissionActionComponent as ɵca, ShareObjectActionComponent as ɵcb, ShareObjectComponent as ɵcc, CutActionComponent as ɵcd, FinalizeActionComponent as ɵce, FinalizeObjectActionComponent as ɵcf, DefinalizeActionComponent as ɵcg, DeleteContentComponent as ɵch, DeleteContentActionComponent as ɵci, UnlockActionComponent as ɵcj, SimpleWorkflowActionComponent as ɵck, SignatureActionComponent as ɵcl, SignatureComponent as ɵcm, CancelSigningActionComponent as ɵcn, CancelSigningComponent as ɵco, FavoriteActionComponent as ɵcp, PreventDoubleClickDirective as ɵcq, RecyclebinDetailsComponent as ɵcr, EditIconComponent as ɵcs, DuetimeInfoComponent as ɵct, PrepareContentExistsInfoComponent as ɵcu, ObjectStateRoutingModule as ɵcv, InboxStateRoutingModule as ɵcw, PrepareStateRoutingModule as ɵcx, EoClientRoutingModule as ɵcy, ProcessStateComponent as ɵcz, AppProcessComponent as ɵd, RecyclebinStateComponent as ɵda, PipesModule as ɵe, UnsubscribeOnDestroy as ɵf, QueryScopeSelectComponent as ɵg, TrapFocusDirective as ɵh, SignatureTabComponent as ɵi, IndexdataSummaryEntryComponent as ɵj, OrderByPipe as ɵk, TreeNodeComponent as ɵl, DatepickerService as ɵm, YearRangeDirective as ɵn, ReferenceFinderComponent as ɵo, fadeInOut as ɵp, ReferenceFinderService as ɵq, ReferenceFinderEntryComponent as ɵr, DynamicListFilterComponent as ɵs, ListFilterComponent as ɵt, PaginationComponent as ɵu, ProcessFormModule as ɵv, ProcessFormComponent as ɵw, ActionComponentAnchorDirective as ɵx, OpenDocumentComponent as ɵy, CopyActionComponent as ɵz };
25210
25527
  //# sourceMappingURL=eo-sdk-client.js.map