@eo-sdk/client 9.4.0 → 9.6.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/app/eo-client/recyclebin-state/recyclebin-state.component.d.ts +44 -0
  2. package/app/eo-framework/actions/action.module.d.ts +3 -1
  3. package/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.d.ts +30 -0
  4. package/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.d.ts +22 -0
  5. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts +4 -2
  6. package/app/eo-framework/app-shell/app-bar/app-process/app-process.component.d.ts +1 -0
  7. package/app/eo-framework/object-details/object-details.component.d.ts +2 -0
  8. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +17 -11
  9. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +75 -0
  10. package/app/eo-framework/split/split/split.component.d.ts +1 -1
  11. package/app/eo-framework/split/split-area/split-area.component.d.ts +1 -0
  12. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +1 -0
  13. package/assets/_default/config/main.json +1 -1
  14. package/assets/_default/i18n/de.json +50 -12
  15. package/assets/_default/i18n/en.json +42 -4
  16. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +81 -14
  17. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  18. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  19. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  20. package/bundles/eo-sdk-client.umd.js +705 -84
  21. package/bundles/eo-sdk-client.umd.js.map +1 -1
  22. package/bundles/eo-sdk-client.umd.min.js +1 -1
  23. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  24. package/eo-sdk-client.d.ts +14 -10
  25. package/eo-sdk-client.metadata.json +1 -1
  26. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  27. package/esm2015/app/eo-client/eo-client-routing.module.js +3 -1
  28. package/esm2015/app/eo-client/eo-client.module.js +4 -2
  29. package/esm2015/app/eo-client/favorite-state/favorite-state.component.js +3 -3
  30. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +7 -5
  31. package/esm2015/app/eo-client/notifications-state/notifications-state.component.js +3 -3
  32. package/esm2015/app/eo-client/object-state/object-state-service/object-state.service.js +2 -2
  33. package/esm2015/app/eo-client/prepare-state/prepare-state/prepare-state.component.js +3 -3
  34. package/esm2015/app/eo-client/recyclebin-state/recyclebin-state.component.js +141 -0
  35. package/esm2015/app/eo-framework/actions/action.module.js +9 -3
  36. package/esm2015/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.js +80 -0
  37. package/esm2015/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.js +42 -0
  38. package/esm2015/app/eo-framework/actions/actions/delete-action/delete/delete.component.js +5 -2
  39. package/esm2015/app/eo-framework/actions/actions/signature-action/signature/signature.component.js +19 -10
  40. package/esm2015/app/eo-framework/actions/actions/signature-action/signature-action.component.js +10 -4
  41. package/esm2015/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.js +6 -4
  42. package/esm2015/app/eo-framework/app-shell/app-bar/app-process/app-process.component.js +8 -2
  43. package/esm2015/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.js +2 -2
  44. package/esm2015/app/eo-framework/form-elements/id-reference/id-reference.component.js +3 -3
  45. package/esm2015/app/eo-framework/frame/frame.component.js +9 -1
  46. package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +3 -3
  47. package/esm2015/app/eo-framework/media/media.component.js +3 -3
  48. package/esm2015/app/eo-framework/object-details/object-details.component.js +14 -5
  49. package/esm2015/app/eo-framework/object-details/object-details.module.js +4 -2
  50. package/esm2015/app/eo-framework/object-details/object-history/object-history.component.js +3 -3
  51. package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +41 -23
  52. package/esm2015/app/eo-framework/prepare-details/prepare-details.component.js +11 -2
  53. package/esm2015/app/eo-framework/recyclebin-details/recyclebin-details.component.js +260 -0
  54. package/esm2015/app/eo-framework/split/split/split.component.js +6 -6
  55. package/esm2015/app/eo-framework/split/split-area/split-area.component.js +5 -1
  56. package/esm2015/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.js +2 -2
  57. package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +4 -2
  58. package/esm2015/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.js +2 -2
  59. package/esm2015/app/eo-framework/ui/signature-tab/signature-tab.component.js +3 -3
  60. package/esm2015/eo-sdk-client.js +15 -11
  61. package/esm2015/projects/eo-sdk/core/lib/config/translate-json-loader.js +23 -2
  62. package/esm2015/projects/eo-sdk/core/lib/model/dms-object-history.model.js +2 -1
  63. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +3 -3
  64. package/esm2015/projects/eo-sdk/core/lib/service/config/config.service.js +2 -2
  65. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +20 -6
  66. package/esm2015/projects/eo-sdk/core/lib/service/events/events.js +2 -1
  67. package/esm2015/projects/eo-sdk/core/lib/service/signing/signing.service.js +15 -2
  68. package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +17 -1
  69. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +76 -10
  70. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  71. package/fesm2015/eo-sdk-client.js +647 -75
  72. package/fesm2015/eo-sdk-client.js.map +1 -1
  73. package/package.json +2 -2
  74. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  75. package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts +4 -0
  76. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +1 -1
  77. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +13 -3
  78. package/projects/eo-sdk/core/lib/service/events/events.d.ts +1 -0
  79. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +8 -0
  80. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +11 -0
  81. package/projects/eo-sdk/core/package.json +1 -1
@@ -3454,7 +3454,7 @@ class IndexdataSummaryComponent {
3454
3454
  }
3455
3455
  onStorageInfoToggle(info) {
3456
3456
  if (!this.storageInfos) {
3457
- this.dmsService.getDmsObjectByParams({ id: this.item.id, type: this.item.typeName, version: this.item.version, withStorageInfo: true })
3457
+ this.dmsService.getDmsObjectByParams({ id: this.item.id, type: this.item.typeName, version: this.item.version, recyclebin: true, withStorageInfo: true })
3458
3458
  .pipe(catchError(Utils.catchSkip(err => err.status === 404))).subscribe(res => {
3459
3459
  this.storageInfos = res.storageInfo;
3460
3460
  this.dataInfoAcc = info;
@@ -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\">\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.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\" *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 = () => [
@@ -4279,7 +4281,7 @@ class SideBarComponent extends UnsubscribeOnDestroy {
4279
4281
  SideBarComponent.decorators = [
4280
4282
  { type: Component, args: [{
4281
4283
  selector: 'eo-side-bar',
4282
- template: "<div class=\"eo-side-bar\" eoTrapFocus>\n <eo-icon (click)=\"close()\" (keydown.enter)=\"close()\" tabindex=\"0\" class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" focusable></eo-icon>\n\n <div class=\"head\" [style.background-image]=\"backgroundImage\">\n\n\n </div>\n\n <div class=\"body\">\n <a href=\"{{docu.link}}\" target=\"_blank\">\n <eo-icon class=\"button docu\" [iconTitle]=\"docu.label | translate\" [iconSrc]=\"'assets/_default/svg/ic_book.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/about\"><eo-icon class=\"button about\" [iconTitle]=\"'eo.sidebar.help.about.tooltip' | translate\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon></a>\n\n <p-tabView styleClass=\"tab-sidebar\">\n <p-tabPanel header=\"{{'eo.view.navigation.title'|translate}}\" headerStyleClass=\"tab-nav\">\n\n <div class=\"navigation\">\n <div class=\"nav-item\" *ngIf=\"capabilities.favorites\">\n <a routerLink=\"/favorites\" routerLinkActive=\"active-link\" translate>eo.view.navigation.favorites</a>\n </div>\n <div class=\"nav-item\" *ngIf=\"capabilities.inbox\">\n <a routerLink=\"/inbox\" routerLinkActive=\"active-link\" translate>eo.view.navigation.inbox</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.intray\">\n <a routerLink=\"/prepare\" routerLinkActive=\"active-link\" translate>eo.view.navigation.prepare</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.bpm\">\n <a routerLink=\"/process\" routerLinkActive=\"active-link\" translate>eo.view.navigation.process</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.notifications\">\n <a routerLink=\"/notifications\" routerLinkActive=\"active-link\" translate>eo.view.navigation.notifications</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.storedqueries\">\n <a routerLink=\"/stored-queries\" routerLinkActive=\"active-link\" translate>eo.view.navigation.storedqueries</a>\n </div>\n <ng-content select=\".navi\"></ng-content>\n </div>\n\n </p-tabPanel>\n </p-tabView>\n </div>\n\n</div>\n",
4284
+ template: "<div class=\"eo-side-bar\" eoTrapFocus>\n <eo-icon (click)=\"close()\" (keydown.enter)=\"close()\" tabindex=\"0\" class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" focusable></eo-icon>\n\n <div class=\"head\" [style.background-image]=\"backgroundImage\">\n\n\n </div>\n\n <div class=\"body\">\n <a href=\"{{docu.link}}\" target=\"_blank\">\n <eo-icon class=\"button docu\" [iconTitle]=\"docu.label | translate\" [iconSrc]=\"'assets/_default/svg/ic_book.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/about\"><eo-icon class=\"button about\" [iconTitle]=\"'eo.sidebar.help.about.tooltip' | translate\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon></a>\n\n <p-tabView styleClass=\"tab-sidebar\">\n <p-tabPanel header=\"{{'eo.view.navigation.title'|translate}}\" headerStyleClass=\"tab-nav\">\n\n <div class=\"navigation\">\n <div class=\"nav-item\" *ngIf=\"capabilities.favorites\">\n <a routerLink=\"/favorites\" routerLinkActive=\"active-link\" translate>eo.view.navigation.favorites</a>\n </div>\n <div class=\"nav-item\" *ngIf=\"capabilities.inbox\">\n <a routerLink=\"/inbox\" routerLinkActive=\"active-link\" translate>eo.view.navigation.inbox</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.intray\">\n <a routerLink=\"/prepare\" routerLinkActive=\"active-link\" translate>eo.view.navigation.prepare</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.bpm\">\n <a routerLink=\"/process\" routerLinkActive=\"active-link\" translate>eo.view.navigation.process</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.notifications\">\n <a routerLink=\"/notifications\" routerLinkActive=\"active-link\" translate>eo.view.navigation.notifications</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.storedqueries\">\n <a routerLink=\"/stored-queries\" routerLinkActive=\"active-link\" translate>eo.view.navigation.storedqueries</a>\n </div>\n\n <div class=\"nav-item\" *ngIf=\"capabilities.recyclebin\">\n <a routerLink=\"/recyclebin\" routerLinkActive=\"active-link\" translate>eo.view.navigation.recyclebin</a>\n </div>\n <ng-content select=\".navi\"></ng-content>\n </div>\n\n </p-tabPanel>\n </p-tabView>\n </div>\n\n</div>\n",
4283
4285
  styles: [":host{--sidebar-header-height:250px}:host .eo-side-bar{-webkit-animation-duration:.2s;animation-duration:.2s;background-color:var(--color-primary);bottom:0;box-shadow:0 0 20px 0 rgba(var(--color-black-rgb),.5);position:absolute;top:0;width:300px;z-index:20}[dir=ltr] :host .eo-side-bar{left:0;right:inherit}[dir=rtl] :host .eo-side-bar{left:inherit;right:0}[dir=ltr] :host .eo-side-bar{-webkit-animation-name:sidebarAppearLeft;animation-name:sidebarAppearLeft}[dir=rtl] :host .eo-side-bar{-webkit-animation-name:sidebarAppearRight;animation-name:sidebarAppearRight}:host .eo-side-bar .close{position:absolute;top:var(--app-pane-padding);z-index:22}[dir=ltr] :host .eo-side-bar .close{left:var(--app-pane-padding)}[dir=rtl] :host .eo-side-bar .close{right:var(--app-pane-padding)}:host .eo-side-bar .head{background-position:50%;background-size:cover;height:var(--sidebar-header-height);left:0;position:absolute;right:0;top:0;z-index:21}:host .eo-side-bar .body ::ng-deep{bottom:0;left:0;position:absolute;right:0;top:calc(var(--sidebar-header-height) - 30px);z-index:22}:host .eo-side-bar .body ::ng-deep p-tabView{display:flex;flex:1;flex-direction:row;height:100%;min-height:0;min-width:0}:host .eo-side-bar .body ::ng-deep p-tabView .tab-sidebar{flex:1}:host .eo-side-bar .body ::ng-deep p-tabView .ui-tabview-panels{height:100%;overflow:auto}:host .eo-side-bar .body ::ng-deep .navigation{padding-top:var(--app-pane-padding)}:host .eo-side-bar .body ::ng-deep a:focus eo-icon,:host .eo-side-bar .body ::ng-deep a:hover eo-icon{background:rgba(var(--color-white-rgb),.1)}:host .eo-side-bar .body ::ng-deep eo-icon.about{color:var(--color-white);padding:3px;position:absolute;top:-6px}[dir=ltr] :host .eo-side-bar .body ::ng-deep eo-icon.about{right:8px}[dir=rtl] :host .eo-side-bar .body ::ng-deep eo-icon.about{left:8px}:host .eo-side-bar .body ::ng-deep eo-icon.docu{color:var(--color-white);padding:3px;position:absolute;top:-6px}[dir=ltr] :host .eo-side-bar .body ::ng-deep eo-icon.docu{right:43px}[dir=rtl] :host .eo-side-bar .body ::ng-deep eo-icon.docu{left:43px}:host .eo-side-bar .body ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-side-bar .body ::ng-deep .nav-item a{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;color:var(--color-white);cursor:pointer;display:block;padding:var(--app-pane-padding);text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-side-bar .body ::ng-deep .nav-item a{border-left:4px solid transparent}[dir=rtl] :host .eo-side-bar .body ::ng-deep .nav-item a{border-right:4px solid transparent}:host .eo-side-bar .body ::ng-deep .nav-item a.active-link{background:rgba(var(--color-white-rgb),.06);border-color:var(--color-accent);cursor:default}:host .eo-side-bar .body ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-side-bar .body ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}@-webkit-keyframes sidebarAppearLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes sidebarAppearLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes sidebarAppearRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes sidebarAppearRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}"]
4284
4286
  },] }
4285
4287
  ];
@@ -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
  ];
@@ -7237,7 +7245,7 @@ class IdReferenceComponent {
7237
7245
  IdReferenceComponent.decorators = [
7238
7246
  { type: Component, args: [{
7239
7247
  selector: 'eo-id-reference',
7240
- template: "<div class=\"eo-id-reference\">\n <p-autoComplete [(ngModel)]=\"innerValues\" [minLength]=\"1\" [delay]=\"500\" #autocomplete\n (onSelect)=\"onAutoCompleteSelect($event)\"\n (onUnselect)=\"removeItem($event)\"\n (onBlur)=\"onAutoCompleteBlur()\"\n [suggestions]=\"autocompleteRes\" field=\"title\"\n [readonly]=\"readonly\"\n [disabled]=\"readonly\"\n [forceSelection]=\"true\"\n (completeMethod)=\"autocompleteFn($event)\" [multiple]=\"true\" [styleClass]=\"!multiselect && innerValues.length === 1 ? 'xxx' : ''\">\n <ng-template pTemplate=\"selectedItem\" let-item>\n <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\" [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\n <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\n 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"></path>\n </svg>\n </a>\n <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\n <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\" eoRtlAware=\"full\">{{item.title || referenceType.label}}</span>\n <ng-template #deleted>\n <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\n </ng-template>\n </ng-template>\n </p-autoComplete>\n\n <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' | translate) : ''}}</span></ng-template>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\"\n title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\"\n [disabled]=\"selectionDisabled\"\n (click)=\"showDialog()\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\n </button>\n</div>\n\n<eo-dialog [title]=\"('eo.references.add' | translate)\"\n [subtitle]=\"referenceType?.label\"\n [(visible)]=\"visibleDialog\"\n [minWidth]=\"577\"\n [minHeight]=\"590\"\n [styleClass]=\"'reference-field-dialog'\"\n #dialog>\n\n <eo-reference-finder *ngIf=\"dialog.visible\"\n [isDisabled]=\"isDisabled\"\n [types]=\"referenceType.qname\"\n [multiselect]=\"multiselect\"\n [currentSelection]=\"innerValues\"\n [clipboard]=\"clipboard\"\n [contextId]=\"contextId\"\n [exceptionIDs]=\"exceptionIDs\"\n [queryFilters]=\"queryFilters\"\n (addDmsObjects)=\"paste($event)\">\n </eo-reference-finder>\n</eo-dialog>\n",
7248
+ template: "<div class=\"eo-id-reference\">\n <p-autoComplete [(ngModel)]=\"innerValues\" [minLength]=\"1\" [delay]=\"500\" #autocomplete\n (onSelect)=\"onAutoCompleteSelect($event)\"\n (onUnselect)=\"removeItem($event)\"\n (onBlur)=\"onAutoCompleteBlur()\"\n [suggestions]=\"autocompleteRes\" field=\"title\"\n [readonly]=\"readonly\"\n [disabled]=\"readonly\"\n [forceSelection]=\"true\"\n (completeMethod)=\"autocompleteFn($event)\" [multiple]=\"true\" [styleClass]=\"!multiselect && innerValues.length === 1 ? 'xxx' : ''\">\n <ng-template pTemplate=\"selectedItem\" let-item>\n <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\" [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\n <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\n 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"></path>\n </svg>\n </a>\n <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType?.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\n <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\" eoRtlAware=\"full\">\n <span *ngIf=\"item.title || referenceType?.label; else noAccess\">\n {{item.title || referenceType?.label}}\n </span>\n </span>\n <ng-template #noAccess>\n <span class=\"label no-access-reference-label\">{{('eo.references.noAccess' | translate)}}</span>\n </ng-template>\n <ng-template #deleted>\n <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\n </ng-template>\n </ng-template>\n </p-autoComplete>\n\n <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' | translate) : ''}}</span></ng-template>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\"\n title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\"\n [disabled]=\"selectionDisabled\"\n (click)=\"showDialog()\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\n </button>\n</div>\n\n<eo-dialog [title]=\"('eo.references.add' | translate)\"\n [subtitle]=\"referenceType?.label\"\n [(visible)]=\"visibleDialog\"\n [minWidth]=\"577\"\n [minHeight]=\"590\"\n [styleClass]=\"'reference-field-dialog'\"\n #dialog>\n\n <eo-reference-finder *ngIf=\"dialog.visible\"\n [isDisabled]=\"isDisabled\"\n [types]=\"referenceType.qname\"\n [multiselect]=\"multiselect\"\n [currentSelection]=\"innerValues\"\n [clipboard]=\"clipboard\"\n [contextId]=\"contextId\"\n [exceptionIDs]=\"exceptionIDs\"\n [queryFilters]=\"queryFilters\"\n (addDmsObjects)=\"paste($event)\">\n </eo-reference-finder>\n</eo-dialog>\n",
7241
7249
  providers: [
7242
7250
  {
7243
7251
  provide: NG_VALUE_ACCESSOR,
@@ -7250,7 +7258,7 @@ IdReferenceComponent.decorators = [
7250
7258
  multi: true
7251
7259
  }
7252
7260
  ],
7253
- styles: [".eo-id-reference{align-items:center;display:flex}.eo-id-reference__element{align-self:center;display:flex;flex-wrap:wrap}.eo-id-reference .ui-button:disabled{cursor:default}::ng-deep .reference-field-dialog{width:577px}::ng-deep .ref-type-icon{height:16px;width:16px}::ng-deep .deleted-reference-label{color:var(--color-error)}::ng-deep .label{display:flex;display:inline-block;flex-flow:column;margin-left:4px;margin-right:1em;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .label>span{font-size:var(--font-hint)}::ng-deep .label.rtl{margin-left:1em;margin-right:4px}::ng-deep .remove-icon{color:var(--text-color-hint);flex:0 0 auto;height:14px;width:14px}::ng-deep .remove-icon:hover{color:var(--text-color-caption);cursor:pointer}::ng-deep .ui-autocomplete.xxx .ui-autocomplete-multiple-container.ui-inputtext{cursor:default}::ng-deep .ui-autocomplete.xxx .ui-autocomplete-input-token{display:none}p-autoComplete{width:100%}"]
7261
+ styles: [".eo-id-reference{align-items:center;display:flex}.eo-id-reference__element{align-self:center;display:flex;flex-wrap:wrap}.eo-id-reference .ui-button:disabled{cursor:default}::ng-deep .reference-field-dialog{width:577px}::ng-deep .ref-type-icon{height:16px;width:16px}::ng-deep .deleted-reference-label,::ng-deep .no-access-reference-label{color:var(--color-error)}::ng-deep .label{display:flex;display:inline-block;flex-flow:column;margin-left:4px;margin-right:1em;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .label>span{font-size:var(--font-hint)}::ng-deep .label.rtl{margin-left:1em;margin-right:4px}::ng-deep .remove-icon{color:var(--text-color-hint);flex:0 0 auto;height:14px;width:14px}::ng-deep .remove-icon:hover{color:var(--text-color-caption);cursor:pointer}::ng-deep .ui-autocomplete.xxx .ui-autocomplete-multiple-container.ui-inputtext{cursor:default}::ng-deep .ui-autocomplete.xxx .ui-autocomplete-input-token{display:none}p-autoComplete{width:100%}"]
7254
7262
  },] }
7255
7263
  ];
7256
7264
  IdReferenceComponent.ctorParameters = () => [
@@ -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,30 @@ class FormElementTableComponent extends UnsubscribeOnDestroy {
10582
10593
  }
10583
10594
  this.storageService.setItem(columnsDefinition, cachedColumns);
10584
10595
  }
10596
+ _updateSplitViewLayoutCache() {
10597
+ setTimeout(() => {
10598
+ this.splitView.updateLayoutCache();
10599
+ });
10600
+ }
10585
10601
  togglePreview() {
10586
10602
  this.showPreview = !this.showPreview;
10587
- this.storageService.setItem('eo.table.showPreview', this.showPreview);
10603
+ // make sure that the layout of the split view is updated after the preview panels
10604
+ // visibility changed
10605
+ this._updateSplitViewLayoutCache();
10606
+ this.storageService.setItem(this.cacheLayoutKey + '.showPreview', this.showPreview);
10607
+ }
10608
+ ngAfterViewInit() {
10609
+ this._updateSplitViewLayoutCache();
10610
+ }
10611
+ ngOnInit() {
10612
+ var _a;
10613
+ this.hasPreviewFile = this.hasPreviewFile !== undefined ? this.hasPreviewFile : !!((_a = this.params.object) === null || _a === void 0 ? void 0 : _a.content);
10588
10614
  }
10589
10615
  }
10590
- FormElementTableComponent.COLUMNS_DEFINITION = 'eo.framework.cache.tables.columns.definition';
10591
- FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY = 'eo.framework.cache.tables.overlay.columns.definition';
10592
10616
  FormElementTableComponent.decorators = [
10593
10617
  { type: Component, args: [{
10594
10618
  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\" [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\n",
10619
+ 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
10620
  providers: [
10597
10621
  {
10598
10622
  provide: NG_VALUE_ACCESSOR,
@@ -10609,16 +10633,18 @@ FormElementTableComponent.decorators = [
10609
10633
  },] }
10610
10634
  ];
10611
10635
  FormElementTableComponent.ctorParameters = () => [
10636
+ { type: LocalStorageService },
10612
10637
  { type: SystemService },
10613
10638
  { type: PendingChangesService },
10614
- { type: GridService },
10615
- { type: TranslateService },
10616
- { type: LocalStorageService },
10617
- { type: EventService }
10639
+ { type: GridService }
10618
10640
  ];
10619
10641
  FormElementTableComponent.propDecorators = {
10620
10642
  rowEdit: [{ type: ViewChild, args: ['rowEdit',] }],
10643
+ splitView: [{ type: ViewChild, args: ['splitView',] }],
10621
10644
  limit: [{ type: Input }],
10645
+ hasPreviewFile: [{ type: Input }],
10646
+ minWidth: [{ type: Input }],
10647
+ height: [{ type: Input }],
10622
10648
  params: [{ type: Input }],
10623
10649
  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
10650
  };
@@ -10846,7 +10872,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
10846
10872
  this.layoutService.getLayout(`eo.split.layout.${this.cacheLayout}`)
10847
10873
  .subscribe(layout => {
10848
10874
  (layout || []).forEach((area) => {
10849
- if (area && this.areas.length) {
10875
+ if (area && this.areas.length > area.index) {
10850
10876
  this.areas[area.index].size = area.size;
10851
10877
  this.areas[area.index].sizeUser = area.size;
10852
10878
  this.areas[area.index].component.visible = area.visible;
@@ -10899,14 +10925,14 @@ class SplitComponent extends UnsubscribeOnDestroy {
10899
10925
  const item = this.areas.find(a => a.component === area);
10900
10926
  if (item) {
10901
10927
  this.refresh();
10902
- this.updateCache();
10928
+ this.updateLayoutCache();
10903
10929
  }
10904
10930
  }
10905
10931
  showArea(area) {
10906
10932
  const item = this.areas.find(a => a.component === area);
10907
10933
  if (item) {
10908
10934
  this.refresh();
10909
- this.updateCache();
10935
+ this.updateLayoutCache();
10910
10936
  }
10911
10937
  }
10912
10938
  isLastVisibleArea(area) {
@@ -11052,7 +11078,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
11052
11078
  this.containerSize = 0;
11053
11079
  this.areaASize = 0;
11054
11080
  this.areaBSize = 0;
11055
- this.updateCache();
11081
+ this.updateLayoutCache();
11056
11082
  this.isDragging = false;
11057
11083
  this.notify('end');
11058
11084
  }
@@ -11069,7 +11095,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
11069
11095
  return this.visibleTransitionEndInternal.next(data);
11070
11096
  }
11071
11097
  }
11072
- updateCache() {
11098
+ updateLayoutCache() {
11073
11099
  if (this.cacheLayout) {
11074
11100
  let layout = this.areas.map((a, i) => ({ index: i, size: a.size, visible: a.component.visible }));
11075
11101
  this.layoutService.cacheLayout(`eo.split.layout.${this.cacheLayout}`, layout);
@@ -11207,6 +11233,9 @@ class SplitAreaComponent extends TabPanel {
11207
11233
  this.visibility = 'block';
11208
11234
  this.eventsLockFct = [];
11209
11235
  }
11236
+ set height(height) {
11237
+ this._height = height;
11238
+ }
11210
11239
  set order(v) {
11211
11240
  this._order = !isNaN(v) ? v : null;
11212
11241
  this.split.updateArea(this, this._order, this._size, this._minSizePixel);
@@ -11287,6 +11316,7 @@ SplitAreaComponent.propDecorators = {
11287
11316
  _height: [{ type: HostBinding, args: ['style.height.%',] }],
11288
11317
  minWidth: [{ type: HostBinding, args: ['style.min-width.px',] }],
11289
11318
  visibleCls: [{ type: HostBinding, args: ['class.visible',] }],
11319
+ height: [{ type: Input }],
11290
11320
  order: [{ type: Input }],
11291
11321
  size: [{ type: Input }],
11292
11322
  minSizePixel: [{ type: Input }],
@@ -13134,7 +13164,7 @@ class TextFilterComponent extends AbstractFilterComponent {
13134
13164
  }
13135
13165
  }
13136
13166
  saveFilter(term) {
13137
- if (!this.savedFilters.includes(term)) {
13167
+ if (term && !this.savedFilters.includes(term)) {
13138
13168
  this.savedFilters.push(term);
13139
13169
  this.userService.changeSavedInboxFilters(this.savedFilters).subscribe();
13140
13170
  }
@@ -13154,7 +13184,7 @@ class TextFilterComponent extends AbstractFilterComponent {
13154
13184
  TextFilterComponent.decorators = [
13155
13185
  { type: Component, args: [{
13156
13186
  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",
13187
+ 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
13188
  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
13189
  },] }
13160
13190
  ];
@@ -13458,9 +13488,11 @@ class WorkflowComponent {
13458
13488
  this.finished.emit();
13459
13489
  }
13460
13490
  cancel() {
13461
- this.finishPending();
13462
- this.dialog.visible = false;
13463
- this.canceled.emit();
13491
+ if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {
13492
+ this.finishPending();
13493
+ this.dialog.visible = false;
13494
+ this.canceled.emit();
13495
+ }
13464
13496
  }
13465
13497
  onIndexDataChanged(event) {
13466
13498
  this.form = event;
@@ -14117,8 +14149,8 @@ class MediaComponent extends UnsubscribeOnDestroy {
14117
14149
  if (item.content && item.content.contents && item.content.contents.length) {
14118
14150
  const file = item.content.contents[0] || {};
14119
14151
  this.previewFile = {
14120
- uri: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null),
14121
- uriPdf: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null, 'PDF'),
14152
+ uri: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null, undefined, true),
14153
+ uriPdf: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null, 'PDF', true),
14122
14154
  mimetype: file.mimetype,
14123
14155
  mimegroup: file.mimegroup,
14124
14156
  size: file.size,
@@ -15540,7 +15572,10 @@ class DeleteComponent {
15540
15572
  .deleteDmsObject(dmsObject.id, dmsObject.type.name, hardDelete, force)
15541
15573
  .subscribe(() => {
15542
15574
  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'));
15575
+ const successMessage = this.capabilitiesService.hasCapability('recyclebin')
15576
+ ? this.translate.instant('eo.action.delete.dms.object.done.enabled.message', { title: dmsObject.title })
15577
+ : this.translate.instant('eo.action.delete.dms.object.done.message', { title: dmsObject.title });
15578
+ this.toast.success(this.translate.instant('eo.action.delete.dms.object.done.title'), successMessage);
15544
15579
  this.eventService.trigger(EnaioEvent.DMS_OBJECT_DELETED, this.selection[0]);
15545
15580
  if ((dmsObject.isContextFolder || !dmsObject.contextFolder) && this.isAllowedState()) {
15546
15581
  this.router.navigate(['/']);
@@ -16698,13 +16733,15 @@ ProcessFormModule.decorators = [
16698
16733
  ];
16699
16734
 
16700
16735
  class SignatureComponent {
16701
- constructor(bpmService, pendingChanges, translate, toaster, signingService, config) {
16736
+ constructor(bpmService, pendingChanges, translate, toaster, signingService, config, eventService, dmsService) {
16702
16737
  this.bpmService = bpmService;
16703
16738
  this.pendingChanges = pendingChanges;
16704
16739
  this.translate = translate;
16705
16740
  this.toaster = toaster;
16706
16741
  this.signingService = signingService;
16707
16742
  this.config = config;
16743
+ this.eventService = eventService;
16744
+ this.dmsService = dmsService;
16708
16745
  this.finished = new EventEmitter();
16709
16746
  this.canceled = new EventEmitter();
16710
16747
  // ID set by pendingChanges service when editing indexdata
@@ -16738,9 +16775,11 @@ class SignatureComponent {
16738
16775
  };
16739
16776
  this.signingService
16740
16777
  .signDocument(this.selection[0].id, signingData)
16741
- .subscribe(() => {
16778
+ .pipe(switchMap(() => this.dmsService.getDmsObject(this.selection[0].id)))
16779
+ .subscribe((dmsObject) => {
16742
16780
  this.processingRequest = false;
16743
16781
  this.toaster.success(this.translate.instant('eo.action.signature.request.success'));
16782
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, dmsObject);
16744
16783
  this.finish();
16745
16784
  }, Utils.throw(error => {
16746
16785
  this.toaster.error(error);
@@ -16754,9 +16793,11 @@ class SignatureComponent {
16754
16793
  this.finished.emit();
16755
16794
  }
16756
16795
  cancel() {
16757
- this.finishPending();
16758
- this.dialog.visible = false;
16759
- this.canceled.emit();
16796
+ if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {
16797
+ this.finishPending();
16798
+ this.dialog.visible = false;
16799
+ this.canceled.emit();
16800
+ }
16760
16801
  }
16761
16802
  onIndexDataChanged() {
16762
16803
  if (this.signingForm.dirty) {
@@ -16786,8 +16827,8 @@ class SignatureComponent {
16786
16827
  SignatureComponent.decorators = [
16787
16828
  { type: Component, args: [{
16788
16829
  selector: 'eo-signature',
16789
- 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",
16790
- 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)}"]
16830
+ 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",
16831
+ 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}"]
16791
16832
  },] }
16792
16833
  ];
16793
16834
  SignatureComponent.ctorParameters = () => [
@@ -16796,7 +16837,9 @@ SignatureComponent.ctorParameters = () => [
16796
16837
  { type: TranslateService },
16797
16838
  { type: NotificationsService },
16798
16839
  { type: SigningService },
16799
- { type: Config }
16840
+ { type: Config },
16841
+ { type: EventService },
16842
+ { type: DmsService }
16800
16843
  ];
16801
16844
  SignatureComponent.propDecorators = {
16802
16845
  dialog: [{ type: ViewChild, args: ['dialog',] }]
@@ -16807,7 +16850,7 @@ class SignatureActionComponent extends DmsObjectTarget {
16807
16850
  super();
16808
16851
  this.translate = translate;
16809
16852
  this.signingService = signingService;
16810
- this.priority = 15;
16853
+ this.priority = 2;
16811
16854
  this.iconSrc = 'assets/_default/svg/ic_signature.svg';
16812
16855
  this.group = 'common';
16813
16856
  this.range = SelectionRange.SINGLE_SELECT;
@@ -16816,14 +16859,20 @@ class SignatureActionComponent extends DmsObjectTarget {
16816
16859
  this.description = this.translate.instant('eo.action.signature.description');
16817
16860
  }
16818
16861
  isExecutable(element) {
16819
- return of(!this.signingService.signingInProcess(element)
16862
+ return of(!this.signingService.signatureRequested(element)
16820
16863
  && this.isAllowedMimeType(element)
16821
16864
  && this.isAllowedObjectType(element)
16822
16865
  && this.hasEditRights(element)
16823
16866
  && !this.isFinalized(element));
16824
16867
  }
16825
16868
  isAllowedMimeType(item) {
16826
- return item.content && item.content.contents[0].mimetype === 'application/pdf';
16869
+ return item.content && (item.content.contents[0].mimetype === 'application/pdf'
16870
+ || item.content.contents[0].mimetype === 'application/msword'
16871
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
16872
+ || item.content.contents[0].mimetype === 'application/vnd.ms-excel'
16873
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
16874
+ || item.content.contents[0].mimetype === 'application/vnd.ms-powerpoint'
16875
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.presentationml.presentation');
16827
16876
  }
16828
16877
  isAllowedObjectType(item) {
16829
16878
  return item.type.supertypes.includes('yuvsigning');
@@ -16846,6 +16895,116 @@ SignatureActionComponent.ctorParameters = () => [
16846
16895
  { type: SigningService }
16847
16896
  ];
16848
16897
 
16898
+ class CancelSigningComponent {
16899
+ constructor(translate, backend, toast, router, capabilitiesService, signingService, elemRef, eventService, dmsService) {
16900
+ this.translate = translate;
16901
+ this.backend = backend;
16902
+ this.toast = toast;
16903
+ this.router = router;
16904
+ this.capabilitiesService = capabilitiesService;
16905
+ this.signingService = signingService;
16906
+ this.elemRef = elemRef;
16907
+ this.eventService = eventService;
16908
+ this.dmsService = dmsService;
16909
+ this.cancelling = false;
16910
+ this.finished = new EventEmitter();
16911
+ this.canceled = new EventEmitter();
16912
+ this.commentLabel = this.translate.instant('eo.action.cancel.signing.reason');
16913
+ this.cancelSigningForm = new FormGroup({});
16914
+ this.commentField = new FormControl();
16915
+ this.cancelSigningForm.addControl('commentField', this.commentField);
16916
+ this.commentField.setValidators(Validators.required);
16917
+ }
16918
+ get commentValidity() {
16919
+ return this.cancelSigningForm.get('commentField').invalid;
16920
+ }
16921
+ cancelSigning(id, comment) {
16922
+ this.cancelling = true;
16923
+ this.signingService
16924
+ .cancelSigning(id, comment)
16925
+ .pipe(switchMap(() => this.dmsService.getDmsObject(this.selection[0].id)))
16926
+ .subscribe((dmsObject) => {
16927
+ this.cancelling = false;
16928
+ this.toast.success(null, this.translate.instant('eo.action.cancel.signing.success.message'));
16929
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, dmsObject);
16930
+ this.finished.emit();
16931
+ }, (error) => {
16932
+ this.toast.error(this.translate.instant('eo.action.cancel.signing.error.message'));
16933
+ this.finished.emit();
16934
+ });
16935
+ }
16936
+ run() {
16937
+ this.cancelSigning(this.selection[0].id, this.commentField.value);
16938
+ }
16939
+ cancel() {
16940
+ this.canceled.emit();
16941
+ }
16942
+ ngAfterViewInit() {
16943
+ setTimeout(() => {
16944
+ this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
16945
+ });
16946
+ }
16947
+ }
16948
+ CancelSigningComponent.decorators = [
16949
+ { type: Component, args: [{
16950
+ selector: 'eo-cancel-signing',
16951
+ template: "<div class=\"eo-cancel-signing\" eoTrapFocus>\n\n <h2 translate>eo.action.cancel.signing.label</h2>\n <form *ngIf=\"!cancelling\" [formGroup]=\"cancelSigningForm\">\n <eo-form-input [skipToggle]=\"true\" [required]=\"true\" [label]=\"commentLabel\" [invalid]=\"commentValidity\" tabindex=\"0\">\n <eo-string [multiline]=\"true\" [minlength]=\"3\" [maxlength]=\"100\" formControlName=\"commentField\"></eo-string>\n </eo-form-input>\n </form>\n <div *ngIf=\"!cancelling\">\n <div class=\"form-buttons\">\n <button (click)=\"cancel()\" translate>eo.action.cancel.signing.cancel</button>\n <button class=\"primary\" (click)=\"run()\"\n [disabled]=\"cancelSigningForm.errors || cancelSigningForm.invalid || !cancelSigningForm.dirty\"\n translate>eo.action.cancel.signing.cancelSigning</button>\n </div>\n </div>\n\n <div class=\"spinner-container\" *ngIf=\"cancelling\">\n <eo-loading-spinner></eo-loading-spinner>\n </div>\n</div>\n\n\n",
16952
+ styles: [".eo-cancel-signing{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-cancel-signing h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-cancel-signing .form-buttons{padding:5px 0;text-align:right}.eo-cancel-signing .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-cancel-signing .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}.eo-cancel-signing .spinner-container{align-items:center;display:flex;justify-content:center}"]
16953
+ },] }
16954
+ ];
16955
+ CancelSigningComponent.ctorParameters = () => [
16956
+ { type: TranslateService },
16957
+ { type: BackendService },
16958
+ { type: NotificationsService },
16959
+ { type: Router },
16960
+ { type: CapabilitiesService },
16961
+ { type: SigningService },
16962
+ { type: ElementRef },
16963
+ { type: EventService },
16964
+ { type: DmsService }
16965
+ ];
16966
+ CancelSigningComponent.propDecorators = {
16967
+ selection: [{ type: Input }],
16968
+ finished: [{ type: Output }],
16969
+ canceled: [{ type: Output }]
16970
+ };
16971
+
16972
+ class CancelSigningActionComponent extends DmsObjectTarget {
16973
+ constructor(translate, signingService) {
16974
+ super();
16975
+ this.translate = translate;
16976
+ this.signingService = signingService;
16977
+ this.priority = 2;
16978
+ this.iconSrc = 'assets/_default/svg/ic_signature.svg';
16979
+ this.group = 'common';
16980
+ this.range = SelectionRange.SINGLE_SELECT;
16981
+ this.component = CancelSigningComponent;
16982
+ this.label = this.translate.instant('eo.action.cancel.signing.label');
16983
+ this.description = this.translate.instant('eo.action.cancel.signing.description');
16984
+ }
16985
+ isExecutable(element) {
16986
+ return of(this.signingService.signingInProcess(element)
16987
+ && this.hasEditRights(element)
16988
+ && !this.isFinalized(element));
16989
+ }
16990
+ hasEditRights(item) {
16991
+ return item.rights.edit;
16992
+ }
16993
+ isFinalized(item) {
16994
+ return item.isFinalized;
16995
+ }
16996
+ }
16997
+ CancelSigningActionComponent.decorators = [
16998
+ { type: Component, args: [{
16999
+ selector: 'eo-cancel-signing',
17000
+ template: ``
17001
+ },] }
17002
+ ];
17003
+ CancelSigningActionComponent.ctorParameters = () => [
17004
+ { type: TranslateService },
17005
+ { type: SigningService }
17006
+ ];
17007
+
16849
17008
  const entryComponents = [
16850
17009
  CopyActionComponent,
16851
17010
  OpenContextActionComponent,
@@ -16887,7 +17046,9 @@ const entryComponents = [
16887
17046
  UnlockActionComponent,
16888
17047
  SimpleWorkflowActionComponent,
16889
17048
  SignatureActionComponent,
16890
- SignatureComponent
17049
+ SignatureComponent,
17050
+ CancelSigningActionComponent,
17051
+ CancelSigningComponent
16891
17052
  ];
16892
17053
  const ɵ0 = [];
16893
17054
  /**
@@ -16980,7 +17141,9 @@ ActionModule.decorators = [
16980
17141
  SimpleWorkflowActionComponent,
16981
17142
  PreventDoubleClickDirective,
16982
17143
  SignatureActionComponent,
16983
- SignatureComponent
17144
+ SignatureComponent,
17145
+ CancelSigningActionComponent,
17146
+ CancelSigningComponent
16984
17147
  ],
16985
17148
  entryComponents
16986
17149
  },] }
@@ -18237,7 +18400,7 @@ class StoredQueryDetailsComponent extends UnsubscribeOnDestroy {
18237
18400
  StoredQueryDetailsComponent.decorators = [
18238
18401
  { type: Component, args: [{
18239
18402
  selector: 'eo-stored-query-details',
18240
- template: "<ng-container *ngIf=\"storedQuery\">\n <div class=\"eo-head\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"\n [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\n </eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{storedQuery.name}}</h2>\n <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\n </div>\n </header>\n </div>\n\n <div class=\"eo-body\">\n\n <div class=\"form\">\n\n <ng-template #queryForm>\n <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </ng-template>\n\n <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\n\n <div class=\"context dark\">\n\n <!-- title and fulltext term fields -->\n <eo-form-input class=\"title\">\n <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\" [formControlName]=\"'storedQueryTitle'\"/>\n </eo-form-input>\n \n <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\n <div class=\"form-field\">\n <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n\n <!-- context type form controls -->\n <h3>{{storedQuery.contextFolderTypes[0]?.label}}</h3>\n <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\n <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\" (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n\n <!-- object type form controls -->\n <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\n <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\n <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"element\" (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n </form>\n </div>\n\n <aside class=\"aside\" *ngIf=\"!isNewQuery\">\n\n <!-- favorite and share -->\n <div class=\"meta-actions\">\n\n <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\n <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\n [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\n (click)=\"toggleShareEdit()\"\n [iconTitle]=\"iconTitles.share\"></eo-icon>\n\n <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [ngClass]=\"{active: storedQuery.favorite}\"\n (click)=\"toggleFavoriteState()\"\n [iconTitle]=\"iconTitles.favor\"></eo-icon>\n </ng-container>\n\n <ng-template #sharedWithMe>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" [iconTitle]=\"iconTitles.shared\"></eo-icon>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\" [iconTitle]=\"iconTitles.favored\"></eo-icon>\n </ng-template>\n\n </div>\n\n <!-- roles that share this query -->\n <div class=\"meta-roles\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\n\n <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\n <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\n <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\n [codesystem]=\"rolesPicker.codesystem\"\n [multiselect]=\"true\"\n [readonly]=\"!editingShare\"\n [inputStyleClass]=\"'stored-query__share'\"\n [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\n </div>\n\n <div class=\"share-actions\" *ngIf=\"editingShare\">\n <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.storedquery.share.cancel</button>\n <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\n </div>\n </div>\n\n <!-- queries meta info like baseparam settings -->\n <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\n <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\n <div class=\"label\">{{restriction.label}}</div>\n <div class=\"items\">\n <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{item}}</div>\n </div>\n </div>\n </div>\n\n </aside>\n\n </div>\n\n <div class=\"actions\">\n <ng-container *ngIf=\"!editForm.form; else actionEdit\">\n <button class=\"secondary btn-delete\" (click)=\"delete()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.action.delete</button>\n <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.load</button>\n <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.action.edit</button>\n <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>eo.storedquery.run</button>\n </ng-container>\n\n <ng-template #actionEdit>\n <!-- action while editing the query form -->\n <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.storedquery.action.cancel</button>\n <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>eo.storedquery.action.save</button>\n </ng-template>\n </div>\n\n</ng-container>\n",
18403
+ template: "<ng-container *ngIf=\"storedQuery\">\n <div class=\"eo-head\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"\n [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\n </eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{storedQuery.name}}</h2>\n <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\n </div>\n </header>\n </div>\n\n <div class=\"eo-body\">\n\n <div class=\"form\">\n\n <ng-template #queryForm>\n <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </ng-template>\n\n <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\n\n <div class=\"context dark\">\n\n <!-- title and fulltext term fields -->\n <eo-form-input class=\"title\">\n <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\" [formControlName]=\"'storedQueryTitle'\"/>\n </eo-form-input>\n\n <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\n <div class=\"form-field\">\n <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n\n <!-- context type form controls -->\n <h3>{{storedQuery.contextFolderTypes[0]?.label}}</h3>\n <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\n <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\" (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n\n <!-- object type form controls -->\n <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\n <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\n <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"element\" (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n </form>\n </div>\n\n <aside class=\"aside\" *ngIf=\"!isNewQuery\">\n\n <!-- favorite and share -->\n <div class=\"meta-actions\">\n\n <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\n <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\n [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\n (click)=\"toggleShareEdit()\"\n [iconTitle]=\"iconTitles.share\"></eo-icon>\n\n <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [ngClass]=\"{active: storedQuery.favorite}\"\n (click)=\"toggleFavoriteState()\"\n [iconTitle]=\"iconTitles.favor\"></eo-icon>\n </ng-container>\n\n <ng-template #sharedWithMe>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" [iconTitle]=\"iconTitles.shared\"></eo-icon>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\" [iconTitle]=\"iconTitles.favored\"></eo-icon>\n </ng-template>\n\n </div>\n\n <!-- roles that share this query -->\n <div class=\"meta-roles\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\n\n <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\n <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\n <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\n [codesystem]=\"rolesPicker.codesystem\"\n [multiselect]=\"true\"\n [readonly]=\"!editingShare\"\n [inputStyleClass]=\"'stored-query__share'\"\n [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\n </div>\n\n <div class=\"share-actions\" *ngIf=\"editingShare\">\n <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.storedquery.share.cancel</button>\n <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\n </div>\n </div>\n\n <!-- queries meta info like baseparam settings -->\n <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\n <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\n <div class=\"label\">{{restriction.label}}</div>\n <div class=\"items\">\n <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{item}}</div>\n </div>\n </div>\n </div>\n\n </aside>\n\n </div>\n\n <div class=\"actions\">\n <ng-container *ngIf=\"!editForm.form; else actionEdit\">\n <button class=\"secondary btn-delete\" (click)=\"delete()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.action.delete</button>\n <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" translate>eo.storedquery.load</button>\n <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.action.edit</button>\n <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>eo.storedquery.run</button>\n </ng-container>\n\n <ng-template #actionEdit>\n <!-- action while editing the query form -->\n <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.storedquery.action.cancel</button>\n <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>eo.storedquery.action.save</button>\n </ng-template>\n </div>\n\n</ng-container>\n",
18241
18404
  styles: [":host{--stored-query-aside-width:300px;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{background-color:var(--color-white);border-bottom:1px solid var(--panel-header-border-bottom-color)}:host .eo-body{overflow-y:hidden}:host .eo-body .form{overflow-y:auto;padding:var(--app-pane-padding);padding-right:calc(var(--stored-query-aside-width) + var(--app-pane-padding)*2)}:host .eo-body .form eo-stored-query{background-color:var(--color-white);padding:var(--app-pane-padding)}:host .eo-body .aside{background-color:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1);box-sizing:border-box;padding:var(--app-pane-padding);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding);width:var(--stored-query-aside-width)}:host .eo-body .aside .meta-actions{display:flex;justify-content:flex-end;margin:0 -2px}:host .eo-body .aside .meta-actions eo-icon{color:var(--text-color-hint);margin:0 2px;padding:4px}:host .eo-body .aside .meta-actions eo-icon.active{color:var(--color-favorite)}:host .eo-body .aside .meta-actions eo-icon.editing{background-color:var(--color-primary-2);border-radius:2px 2px 0 0;color:var(--color-white)}:host .eo-body .aside .meta-actions eo-icon.sharedWithMe{background-color:var(--text-color-hint);border-radius:2px;color:var(--color-white)}:host .eo-body .aside .meta-roles.dark{background-color:var(--color-primary-2);border-radius:2px;color:var(--color-white);margin-bottom:var(--app-pane-padding);padding:calc(var(--app-pane-padding)/2)}:host .eo-body .aside .meta-roles.dark .actions{display:flex}:host .eo-body .aside .meta-roles.dark .label{display:none}:host .eo-body .aside .meta-roles.dark .form-field,:host .eo-body .aside .meta-roles .form-field{background-color:rgba(var(--color-white-rgb),.2)}:host .eo-body .aside .meta-roles .form-field{border:1px solid rgba(var(--color-black-rgb),.1);margin-bottom:calc(var(--app-pane-padding)/2);padding:2px 2px 4px 4px}:host .eo-body .aside .meta-roles .label{color:var(--text-color-caption);font-style:italic;margin-bottom:calc(var(--app-pane-padding)/4)}:host .eo-body .aside .meta-roles .share-actions{display:flex;justify-content:flex-end;margin:0 calc(var(--app-pane-padding)/8*-1)}:host .eo-body .aside .meta-roles .share-actions button{margin:0 calc(var(--app-pane-padding)/8);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}:host .eo-body .aside .meta-roles.empty:not(.dark) .form-field,:host .eo-body .aside .meta-roles.empty:not(.dark) .label{display:none}:host .eo-body .aside .meta-data{border-collapse:collapse;display:table;flex:1 1 40%;margin:0 0 var(--app-pane-padding) 0;order:1}:host .eo-body .aside .meta-data .restriction{display:table-row}:host .eo-body .aside .meta-data .restriction .label{color:var(--text-color-caption);display:table-cell;font-style:italic;padding-right:calc(var(--app-pane-padding)/2)}:host .eo-body .aside .meta-data .restriction .items{border-left:1px solid rgba(var(--color-black-rgb),.1);display:table-cell;padding:0 0 calc(var(--app-pane-padding)/2) calc(var(--app-pane-padding)/2)}:host .actions{background-color:var(--color-white);border-top:1px solid var(--panel-header-border-bottom-color);display:flex;flex-flow:row;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) - 2px)}:host .actions button{margin:0 2px}:host .edit-form{background-color:var(--color-white);max-width:500px}:host .edit-form .context{background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding)/2)}:host .edit-form .context h3{color:var(--color-white);display:flex;font-size:var(--font-subhead);font-weight:var(--font-weight-light);justify-content:flex-end;margin:0;padding:var(--app-pane-padding) 0 calc(var(--app-pane-padding)/2) 0}:host .edit-form .form-fields{padding:calc(var(--app-pane-padding)/2)}:host .edit-form .form-fields.empty{display:none}:host .edit-form .form-field{align-items:center;display:flex;flex-flow:row nowrap}:host .edit-form .form-field eo-form-element{flex:1 1 auto}:host .edit-form .form-field eo-dynamic-property-switch{flex:0 0 auto}:host eo-stored-query{display:block;max-width:500px}:host ::ng-deep eo-form-input.title{display:block;margin-bottom:var(--app-pane-padding)}:host ::ng-deep eo-form-input.title input{font-size:var(--font-title);font-weight:var(--font-weight-light)}"]
18242
18405
  },] }
18243
18406
  ];
@@ -18525,10 +18688,12 @@ class ObjectDetailsComponent extends UnsubscribeOnDestroy {
18525
18688
  this.panelOrder = { 'master': ['summary', 'indexdata', 'history', 'links', 'signature'], 'slave': ['preview'] };
18526
18689
  this.agentIsConnected$ = this.agentService.isConnected$;
18527
18690
  this.enableCompare = false;
18691
+ this.recyclebinTabs = false;
18528
18692
  this.enableDiff = true;
18529
18693
  this.enableSync = true;
18530
18694
  this._emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
18531
18695
  this.externalPanels = new QueryList();
18696
+ this.preventClickThrough = false;
18532
18697
  // shortcut actions
18533
18698
  this.shortcuts = {
18534
18699
  id: 'eo.object-details',
@@ -18652,7 +18817,7 @@ class ObjectDetailsComponent extends UnsubscribeOnDestroy {
18652
18817
  this.loadDmsObject(this.parseDmsParams(res)).subscribe((res) => {
18653
18818
  // refreshing object details may result in an updated version of the object
18654
18819
  // so we'll use this trigger to also emitt those changes to other listening components
18655
- if (this.item && res && (this.item.id === res.id) && res.version > this.item.version) {
18820
+ if (this.item && res && (this.item.id === res.id)) {
18656
18821
  this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, res);
18657
18822
  }
18658
18823
  this.dmsObject = res;
@@ -18666,7 +18831,13 @@ class ObjectDetailsComponent extends UnsubscribeOnDestroy {
18666
18831
  }
18667
18832
  }
18668
18833
  refreshContent() {
18669
- this.updateContent();
18834
+ if (!this.preventClickThrough) {
18835
+ this.preventClickThrough = true;
18836
+ this.updateContent();
18837
+ }
18838
+ setTimeout(() => {
18839
+ this.preventClickThrough = false;
18840
+ }, 5000);
18670
18841
  }
18671
18842
  prepareIndexDataPreview(item, formData) {
18672
18843
  const { id, data, type, created, modified, content, contentFileName, contentFileSize, version } = item;
@@ -18808,9 +18979,9 @@ class ObjectDetailsComponent extends UnsubscribeOnDestroy {
18808
18979
  ObjectDetailsComponent.decorators = [
18809
18980
  { type: Component, args: [{
18810
18981
  selector: 'eo-object-details',
18811
- 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\" [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\" [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 && 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 && item.content && item.rights.edit && (agentIsConnected$ | async)\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" (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\"\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 </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')\" 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\" [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()\" [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",
18982
+ 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",
18812
18983
  providers: [ContentPreviewService],
18813
- 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.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}"]
18984
+ 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}"]
18814
18985
  },] }
18815
18986
  ];
18816
18987
  ObjectDetailsComponent.ctorParameters = () => [
@@ -18835,6 +19006,7 @@ ObjectDetailsComponent.propDecorators = {
18835
19006
  reference: [{ type: Input }],
18836
19007
  searchTerm: [{ type: Input }],
18837
19008
  enableCompare: [{ type: Input }],
19009
+ recyclebinTabs: [{ type: Input }],
18838
19010
  enableDiff: [{ type: Input }],
18839
19011
  enableSync: [{ type: Input }],
18840
19012
  cacheLayout: [{ type: Input }],
@@ -19147,7 +19319,7 @@ class ObjectHistoryComponent extends UnsubscribeOnDestroy {
19147
19319
  }
19148
19320
  fetchHistory(id, type) {
19149
19321
  this.dmsService
19150
- .getHistory(id, type)
19322
+ .getHistory(id, type, true)
19151
19323
  .pipe(map((res) => {
19152
19324
  const reversedRes = res.reverse();
19153
19325
  this.completeHistory = reversedRes;
@@ -19161,7 +19333,7 @@ class ObjectHistoryComponent extends UnsubscribeOnDestroy {
19161
19333
  ObjectHistoryComponent.decorators = [
19162
19334
  { type: Component, args: [{
19163
19335
  selector: 'eo-object-history',
19164
- 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>{{entry.user.lastname}}, {{entry.user.firstname}} ({{entry.user.name}})</span>\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",
19336
+ 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",
19165
19337
  changeDetection: ChangeDetectionStrategy.OnPush,
19166
19338
  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)}"]
19167
19339
  },] }
@@ -19665,6 +19837,254 @@ EditIconComponent.propDecorators = {
19665
19837
  item: [{ type: Input }]
19666
19838
  };
19667
19839
 
19840
+ class RecyclebinDetailsComponent extends UnsubscribeOnDestroy {
19841
+ constructor(router, route, system, empty, backend, userService, toast, dmsService, selection, capabilityService, eventService, configService, translate) {
19842
+ super();
19843
+ this.router = router;
19844
+ this.route = route;
19845
+ this.system = system;
19846
+ this.empty = empty;
19847
+ this.backend = backend;
19848
+ this.userService = userService;
19849
+ this.toast = toast;
19850
+ this.dmsService = dmsService;
19851
+ this.selection = selection;
19852
+ this.capabilityService = capabilityService;
19853
+ this.eventService = eventService;
19854
+ this.configService = configService;
19855
+ this.translate = translate;
19856
+ // generate unique id to pass to upload registry
19857
+ this.user$ = this.userService.user$;
19858
+ this._showDeleteDialog = false;
19859
+ this.userId = '';
19860
+ this.hasError = false;
19861
+ this.nodmsobject = false;
19862
+ this.showLoader = false;
19863
+ this.panelOrder = { 'master': ['summary', 'history'], 'slave': ['preview'] };
19864
+ this._emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
19865
+ this.externalPanels = new QueryList();
19866
+ this.parseDmsParams = this.getDmsParams;
19867
+ this.hasContent = new EventEmitter();
19868
+ this.panelOrder = this.configService.getRaw('recyclebinDetailsTabs') || this.panelOrder;
19869
+ this.user$.subscribe(user => { this.userId = user.id; });
19870
+ }
19871
+ set showDeleteDialog(val) {
19872
+ this._showDeleteDialog = val;
19873
+ if (this._showDeleteDialog) {
19874
+ setTimeout(() => this.confirmDeleteButton.nativeElement.focus(), 0);
19875
+ }
19876
+ }
19877
+ get showDeleteDialog() {
19878
+ return this._showDeleteDialog;
19879
+ }
19880
+ set emptyState(e) {
19881
+ this._emptyState = e || EmptyStateService.defaultEmptyState();
19882
+ }
19883
+ get emptyState() {
19884
+ return this._emptyState;
19885
+ }
19886
+ set dmsParams(params) {
19887
+ this.showLoader = true;
19888
+ this.loadDmsObject(params).subscribe((res) => {
19889
+ this.dmsObject = res;
19890
+ this.showLoader = false;
19891
+ }, Utils.throw(() => this.onHasError(true, true, false)));
19892
+ }
19893
+ set dmsObject(v) {
19894
+ this.item = v;
19895
+ this.onHasError();
19896
+ // prepare indexdata preview
19897
+ this.onIndexDataSaved(null, this.item);
19898
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_LOADED, this.item);
19899
+ if (this.item) {
19900
+ if (this.item.lock) {
19901
+ this.lockTooltip = this.translate.instant('eo.object.lock') + ' '
19902
+ + (new LocaleDatePipe(this.translate).transform(this.item.lock.on))
19903
+ + ', ' + this.item.lock.by.label + ' (' + this.item.lock.by.name + ')';
19904
+ }
19905
+ }
19906
+ else {
19907
+ this.emptyState = this.empty.getEmptyState(0);
19908
+ }
19909
+ }
19910
+ get dataType() {
19911
+ return this.item ? this.item.typeName : 'none';
19912
+ }
19913
+ getDmsParams(data) {
19914
+ return data ? Object.assign(Object.assign({}, data), { type: data.type }) : null;
19915
+ }
19916
+ updateContent() {
19917
+ if (this.applySelection) {
19918
+ this.selection
19919
+ .find(this.applySelection.in)
19920
+ .focus$
19921
+ .pipe(takeUntil(this.componentDestroyed$))
19922
+ .subscribe(result => {
19923
+ this.showLoader = true;
19924
+ this.loadDmsObject(this.parseDmsParams(result)).subscribe((res) => {
19925
+ if (this.item && res && (this.item.id === res.id) && res.version > this.item.version) {
19926
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, res);
19927
+ }
19928
+ this.dmsObject = res;
19929
+ this.showLoader = false;
19930
+ }, Utils.throw((error) => {
19931
+ return this.onHasError(true, true, false);
19932
+ }));
19933
+ });
19934
+ }
19935
+ }
19936
+ restoreFile(openLocationAfterRestore = false) {
19937
+ this.dmsService.restore(this.item.id, this.userId, this.item.typeName).subscribe(() => {
19938
+ this.updateContent();
19939
+ if (openLocationAfterRestore) {
19940
+ this.router.navigate(['/object', this.item.id]);
19941
+ }
19942
+ 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 }));
19943
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED);
19944
+ }, (error) => {
19945
+ if (error.status === 409) {
19946
+ this.toast.error(this.translate.instant('eo.recyclebin.details.restore.dms.object.error.409'));
19947
+ }
19948
+ });
19949
+ }
19950
+ deleteDmsObject() {
19951
+ this.dmsService
19952
+ .deleteDmsObject(this.item.id, this.item.type.name, true)
19953
+ .subscribe(() => {
19954
+ 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 }));
19955
+ this._showDeleteDialog = false;
19956
+ this.eventService.trigger(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED);
19957
+ });
19958
+ }
19959
+ prepareIndexDataPreview(item, formData) {
19960
+ const { id, data, type, created, modified, content, contentFileName, contentFileSize, version } = item;
19961
+ return this.system
19962
+ .getObjectTypeForm(type.name, 'EDIT')
19963
+ .pipe(map(form => {
19964
+ let indexDataPreview = {
19965
+ form,
19966
+ data: formData || data
19967
+ };
19968
+ let baseparams = {
19969
+ id,
19970
+ type: type.name,
19971
+ createdOn: new Date(created.on),
19972
+ modifiedOn: new Date(modified.on),
19973
+ createdBy: `${created.by.title} (${created.by.name})`,
19974
+ modifiedBy: `${modified.by.title} (${modified.by.name})`,
19975
+ contentFileName: contentFileName ? contentFileName : null,
19976
+ contentFileSize: contentFileSize ? Number(contentFileSize) : null,
19977
+ version: version || 0,
19978
+ mimeGroup: content ? content.contents ? content.contents[0].mimegroup : null : null,
19979
+ digest: content ? content.contents ? content.contents[0].digest : null : null,
19980
+ contentId: content ? content.contents ? content.id : null : null,
19981
+ mimeType: content ? content.contents ? content.contents[0].mimetype : null : null,
19982
+ };
19983
+ return { indexDataPreview, baseparams };
19984
+ }));
19985
+ }
19986
+ onHasError(hasError = false, nodmsobject = false, showLoader = false) {
19987
+ this.hasError = hasError;
19988
+ this.nodmsobject = nodmsobject;
19989
+ this.showLoader = showLoader;
19990
+ this.hasContent.emit(!hasError);
19991
+ }
19992
+ loadDmsObject(params) {
19993
+ var _a;
19994
+ if (params) {
19995
+ delete params.version;
19996
+ }
19997
+ // check for valid id
19998
+ 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);
19999
+ }
20000
+ downloadOriginalContent() {
20001
+ this.backend.downloadContent([this.item], null, false, true);
20002
+ }
20003
+ // executed when the dms object changed due to saving its indexdata
20004
+ onIndexDataSaved(formData, item) {
20005
+ if (!this.item) {
20006
+ this.indexDataPreview = null;
20007
+ this.baseparams = null;
20008
+ }
20009
+ if (!this.item2) {
20010
+ this.indexDataPreview2 = null;
20011
+ this.baseparams2 = null;
20012
+ }
20013
+ if (item) {
20014
+ this.prepareIndexDataPreview(item, formData)
20015
+ .subscribe(data => {
20016
+ if (item === this.item) {
20017
+ this.indexDataPreview = data.indexDataPreview;
20018
+ this.baseparams = data.baseparams;
20019
+ }
20020
+ else {
20021
+ this.indexDataPreview2 = data.indexDataPreview;
20022
+ this.baseparams2 = data.baseparams;
20023
+ }
20024
+ });
20025
+ }
20026
+ }
20027
+ isVisible(id) {
20028
+ return this.panelOrder.master.includes(id) || this.panelOrder.slave.includes(id);
20029
+ }
20030
+ ngOnInit() {
20031
+ this.capabilities = this.capabilityService.getCapabilities();
20032
+ this.updateContent();
20033
+ this.eventService
20034
+ .on(EnaioEvent.DMS_OBJECT_UPDATED)
20035
+ .pipe(takeUntil(this.componentDestroyed$))
20036
+ .subscribe(event => {
20037
+ if (event.data && this.item.id === event.data.id) {
20038
+ this.dmsObject = this.dmsService.createLocalCopyOfDMSObject(event.data);
20039
+ if (this.preview && !this.preview.disabled) {
20040
+ this.preview.refresh();
20041
+ }
20042
+ }
20043
+ });
20044
+ }
20045
+ ngAfterViewInit() {
20046
+ let panels = this.tabPanels.toArray();
20047
+ this.tabPlugins.forEach(p => panels = panels.concat(p.tabPanels.toArray()));
20048
+ this.externalPanels.reset(panels);
20049
+ }
20050
+ }
20051
+ RecyclebinDetailsComponent.decorators = [
20052
+ { type: Component, args: [{
20053
+ selector: 'eo-recyclebin-details',
20054
+ 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",
20055
+ 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}"]
20056
+ },] }
20057
+ ];
20058
+ RecyclebinDetailsComponent.ctorParameters = () => [
20059
+ { type: Router },
20060
+ { type: ActivatedRoute },
20061
+ { type: SystemService },
20062
+ { type: EmptyStateService },
20063
+ { type: BackendService },
20064
+ { type: UserService },
20065
+ { type: NotificationsService },
20066
+ { type: DmsService },
20067
+ { type: SelectionService },
20068
+ { type: CapabilitiesService },
20069
+ { type: EventService },
20070
+ { type: Config },
20071
+ { type: TranslateService }
20072
+ ];
20073
+ RecyclebinDetailsComponent.propDecorators = {
20074
+ preview: [{ type: ViewChild, args: ['viewer',] }],
20075
+ confirmDeleteButton: [{ type: ViewChild, args: ['confirmDelete',] }],
20076
+ cacheLayout: [{ type: Input }],
20077
+ tabPanels: [{ type: ContentChildren, args: [TabPanelComponent,] }],
20078
+ tabPlugins: [{ type: ContentChildren, args: [TabPluginComponent,] }],
20079
+ applySelection: [{ type: Input }],
20080
+ parseDmsParams: [{ type: Input }],
20081
+ hasContent: [{ type: Output }],
20082
+ emptyState: [{ type: Input }],
20083
+ dmsParams: [{ type: Input, args: ['params',] }],
20084
+ dmsObject: [{ type: Input, args: ['item',] }],
20085
+ dataType: [{ type: HostBinding, args: ['attr.data-type',] }]
20086
+ };
20087
+
19668
20088
  class ObjectDetailsModule {
19669
20089
  }
19670
20090
  ObjectDetailsModule.decorators = [
@@ -19686,6 +20106,7 @@ ObjectDetailsModule.decorators = [
19686
20106
  ],
19687
20107
  declarations: [
19688
20108
  ObjectDetailsComponent,
20109
+ RecyclebinDetailsComponent,
19689
20110
  ObjectHistoryComponent,
19690
20111
  ObjectLinksComponent,
19691
20112
  FavoriteIconComponent,
@@ -19693,7 +20114,7 @@ ObjectDetailsModule.decorators = [
19693
20114
  HistoryFilterComponent,
19694
20115
  EditIconComponent
19695
20116
  ],
19696
- exports: [ObjectDetailsComponent, ObjectHistoryComponent, ObjectLinksComponent, FavoriteIconComponent, HistoryFilterPipe]
20117
+ exports: [ObjectDetailsComponent, RecyclebinDetailsComponent, ObjectHistoryComponent, ObjectLinksComponent, FavoriteIconComponent, HistoryFilterPipe]
19697
20118
  },] }
19698
20119
  ];
19699
20120
 
@@ -20722,8 +21143,17 @@ class PrepareDetailsComponent extends UnsubscribeOnDestroy {
20722
21143
  this.initPreparePhase(this.PHASE_INDEXDATA);
20723
21144
  this.uploadInProgress = false;
20724
21145
  }, Utils.throw(error => {
20725
- this.notification.error(null, error.error.cause.messages[0]);
21146
+ if (error.error && error.error.cause) {
21147
+ this.notification.error(null, error.error.cause.messages[0]);
21148
+ }
21149
+ else if (error.error) {
21150
+ this.notification.error(null, error.error.message);
21151
+ }
21152
+ else {
21153
+ this.notification.error(this.translate.instant('eo.prepare.created.error.title'));
21154
+ }
20726
21155
  this.file.nativeElement.value = null;
21156
+ this.committing = false;
20727
21157
  this.uploadInProgress = false;
20728
21158
  }, this.translate.instant('eo.upload.global.error.title'), this.translate.instant('eo.upload.global.error.description')));
20729
21159
  }
@@ -21981,6 +22411,14 @@ class FrameComponent {
21981
22411
  onExecuteAction: () => {
21982
22412
  this.router.navigateByUrl('/stored-queries');
21983
22413
  }
22414
+ },
22415
+ {
22416
+ name: this.translate.instant('eo.view.navigation.recyclebin'),
22417
+ nameKey: 'eo.view.navigation.recyclebin',
22418
+ shortcut: '8',
22419
+ onExecuteAction: () => {
22420
+ this.router.navigateByUrl('/recyclebin');
22421
+ }
21984
22422
  }
21985
22423
  ]
21986
22424
  };
@@ -23011,8 +23449,8 @@ class FavoriteStateComponent extends UnsubscribeOnDestroy {
23011
23449
  ];
23012
23450
  this.textFilterParams = { context: { defaultValue: '' } };
23013
23451
  this.sortFields = [
23014
- { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
23015
- { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' }
23452
+ { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
23453
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' }
23016
23454
  ];
23017
23455
  const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
23018
23456
  this.gridOptions = {
@@ -23085,10 +23523,10 @@ class AboutStateComponent {
23085
23523
  this.backend = backend;
23086
23524
  this.userService = userService;
23087
23525
  this.config = config;
23088
- 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.4.0", "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" }];
23526
+ 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.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" }];
23089
23527
  this.ctrl = {
23090
23528
  componentName: 'yuuvis® RAD client',
23091
- componentVersion: '9.4.0',
23529
+ componentVersion: '9.6.0-rc.1',
23092
23530
  productName: '',
23093
23531
  productVersion: ''
23094
23532
  };
@@ -23757,9 +24195,9 @@ class NotificationsStateComponent extends UnsubscribeOnDestroy {
23757
24195
  ];
23758
24196
  this.textFilterParams = { context: { defaultValue: '' } };
23759
24197
  this.sortFields = [
24198
+ { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: '' },
23760
24199
  { field: 'info', headerName: this.translate.instant('eo.notifications.sort.title'), sort: '' },
23761
- { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: '' },
23762
- { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: '' }
24200
+ { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: '' }
23763
24201
  ];
23764
24202
  const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
23765
24203
  this.gridOptions = {
@@ -23989,6 +24427,136 @@ VersionStateComponent.propDecorators = {
23989
24427
  eoGrid: [{ type: ViewChild, args: ['eoGrid',] }]
23990
24428
  };
23991
24429
 
24430
+ class RecyclebinStateComponent extends UnsubscribeOnDestroy {
24431
+ constructor(selection, translate, system, empty, pendingChanges, eventService, titleService, userService) {
24432
+ super();
24433
+ this.selection = selection;
24434
+ this.translate = translate;
24435
+ this.system = system;
24436
+ this.empty = empty;
24437
+ this.pendingChanges = pendingChanges;
24438
+ this.eventService = eventService;
24439
+ this.titleService = titleService;
24440
+ this.userService = userService;
24441
+ this.inboxDmsObjectSelectionId = 'inbox_dms';
24442
+ this.emptyState = EmptyStateService.defaultEmptyState();
24443
+ this.showActionsMenu = true;
24444
+ this.textFilterParams = {};
24445
+ this.titleService.setBaseTitle(this.translate.instant('eo.recyclebin.list.title'));
24446
+ this.selection.createNew(this.inboxDmsObjectSelectionId);
24447
+ this.eventService
24448
+ .on(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED).pipe(takeUntil(this.componentDestroyed$))
24449
+ .subscribe(() => this.refreshGrid());
24450
+ }
24451
+ set hasContent(hasContent) {
24452
+ this.showActionsMenu = hasContent;
24453
+ }
24454
+ get hasContent() {
24455
+ return this.showActionsMenu;
24456
+ }
24457
+ hasPendingChanges() {
24458
+ return this.pendingChanges.hasPendingTask();
24459
+ }
24460
+ refreshGrid() {
24461
+ this.userService.getRecycleBin().subscribe();
24462
+ }
24463
+ parseDmsParams(data) {
24464
+ return data ? { id: data.id, type: data.type, recyclebin: true } : null;
24465
+ }
24466
+ typeFilters() {
24467
+ const data = this.gridData;
24468
+ let uniqueByType = SetFilterComponent.uniqBy(data, 'type', this.system.getObjectTypes());
24469
+ this.typeFilterFields = uniqueByType.map(t => Object.assign({
24470
+ label: t.label,
24471
+ value: true,
24472
+ filter: (node) => node.data === t.qname,
24473
+ id: t.qname
24474
+ })).sort(Utils.sortValues('label'));
24475
+ }
24476
+ resetFilters() {
24477
+ this.typeFilters();
24478
+ }
24479
+ updateGrid(data) {
24480
+ this.emptyState = this.empty.getEmptyState(data ? data.length : -1, undefined, 'ic_no-file.svg');
24481
+ if (this.eoGrid && this.eoGrid.isReady) {
24482
+ this.eoGrid.updateRowData(data);
24483
+ return this.resetFilters();
24484
+ }
24485
+ this.resetFilters();
24486
+ let colDefs = [{
24487
+ headerName: '',
24488
+ field: '__custom',
24489
+ cellRenderer: this.cellRenderer,
24490
+ filter: false
24491
+ }];
24492
+ this.textFilterParams = { context: { defaultValue: '' } };
24493
+ this.sortFields = [
24494
+ { field: 'recycled', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
24495
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
24496
+ { field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: '' }
24497
+ ];
24498
+ const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
24499
+ this.gridOptions = {
24500
+ context: { count: data.length },
24501
+ rowData: data,
24502
+ columnDefs: colDefs.concat(sortColDefs),
24503
+ rowBuffer: 20,
24504
+ rowHeight: 80,
24505
+ };
24506
+ }
24507
+ cellRenderer(params) {
24508
+ let icon = params.context.cr.render('type', params, {
24509
+ value: params.data.type
24510
+ });
24511
+ let recycledTime = params.context.cr.render('dateTime', params, { value: params.data.recycled });
24512
+ return `<div class="list-item ${params.data.folder ? 'folder' : ''}" unselectable>
24513
+ ${icon}
24514
+ <div class="content">
24515
+ <div class="title">${params.data.title || ''}</div>
24516
+ <div class="meta">
24517
+ <div class="description">
24518
+ ${params.data.description}
24519
+ </div>
24520
+ <div class='description date'>
24521
+ <span class="period">${recycledTime}</span>
24522
+ </div>
24523
+ </div>
24524
+ </div>
24525
+ </div>`;
24526
+ }
24527
+ ngOnInit() {
24528
+ this.refreshGrid();
24529
+ this.userService.recyclesGridData$.pipe(takeUntil(this.componentDestroyed$))
24530
+ .subscribe(data => {
24531
+ this.gridData = data;
24532
+ this.updateGrid(this.gridData);
24533
+ });
24534
+ }
24535
+ ngOnDestroy() {
24536
+ this.selection.clear();
24537
+ }
24538
+ }
24539
+ RecyclebinStateComponent.decorators = [
24540
+ { type: Component, args: [{
24541
+ selector: 'eo-recyclebin-state',
24542
+ 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",
24543
+ 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)}"]
24544
+ },] }
24545
+ ];
24546
+ RecyclebinStateComponent.ctorParameters = () => [
24547
+ { type: SelectionService },
24548
+ { type: TranslateService$1 },
24549
+ { type: SystemService },
24550
+ { type: EmptyStateService },
24551
+ { type: PendingChangesService },
24552
+ { type: EventService },
24553
+ { type: PageTitleService },
24554
+ { type: UserService }
24555
+ ];
24556
+ RecyclebinStateComponent.propDecorators = {
24557
+ eoGrid: [{ type: ViewChild, args: ['eoGrid',] }]
24558
+ };
24559
+
23992
24560
  // Configure applications main routes (e.g. 404).
23993
24561
  // Child routes will be added by the feature modules link inbox etc.
23994
24562
  const routes$1 = [
@@ -24001,6 +24569,7 @@ const routes$1 = [
24001
24569
  { path: 'about', component: AboutStateComponent },
24002
24570
  { path: 'process', component: ProcessStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard] },
24003
24571
  { path: 'notifications', component: NotificationsStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard] },
24572
+ { path: 'recyclebin', component: RecyclebinStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard] },
24004
24573
  { path: 'versions/:id', component: VersionStateComponent, canActivate: [AuthGuard, UploadOverlayGuard] },
24005
24574
  // default route
24006
24575
  { path: '', redirectTo: 'dashboard', pathMatch: 'full' },
@@ -24063,7 +24632,7 @@ class ObjectStateService {
24063
24632
  let lastModified = null;
24064
24633
  if (res.hits.length) {
24065
24634
  size = res.hits.map(a => a.filesize || 0).reduce((acc, cur) => acc + cur);
24066
- lastModified = res.hits.sort(Utils.sortValues('modified', 'desc')).slice(0, 10);
24635
+ lastModified = res.hits.sort(Utils.sortValues('modified', 'desc')).slice(0, 100);
24067
24636
  }
24068
24637
  return {
24069
24638
  documentCount: { value: res.count.value },
@@ -24612,11 +25181,12 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
24612
25181
  // cellRendererFramework: InboxRendererComponent
24613
25182
  }];
24614
25183
  this.sortFields = [
24615
- { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
24616
25184
  {
24617
25185
  field: 'received', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '',
24618
25186
  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]
24619
- }
25187
+ },
25188
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
25189
+ { field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: '' }
24620
25190
  ];
24621
25191
  let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
24622
25192
  this.gridOptions = {
@@ -24638,10 +25208,11 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
24638
25208
  let shortDate = params.context.cr.render('dateTime', params, { value: params.data.received, pattern: 'eoShortDate' });
24639
25209
  let shortTime = params.context.cr.render('dateTime', params, { value: params.data.received, pattern: 'eoShortTime' });
24640
25210
  let duetime = params.context.cr.render('dateTime', params, { value: params.data.duetime });
25211
+ const titleClass = params.data.accepted ? 'title' : 'title-bold';
24641
25212
  return `<div class="list-item${params.data.folder ? ' folder' : ''}" unselectable>
24642
25213
  ${icon}
24643
25214
  <div class='content'>
24644
- <div class='title'>${params.data.title || ''}</div>
25215
+ <div class='${titleClass}'>${params.data.title || ''}</div>
24645
25216
  <div class='description'>${params.data.description || ''}</div>
24646
25217
  <div class='notes${params.data.isOverdue() ? ' pastDue' : ''}'>
24647
25218
  ${params.data.duetime ? '<span class="period">' + duetime + '</span>' : ''}
@@ -24681,7 +25252,7 @@ InboxStateComponent.decorators = [
24681
25252
  { type: Component, args: [{
24682
25253
  selector: 'eo-inbox-state',
24683
25254
  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",
24684
- 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}"]
25255
+ 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}"]
24685
25256
  },] }
24686
25257
  ];
24687
25258
  InboxStateComponent.ctorParameters = () => [
@@ -24791,8 +25362,8 @@ class PrepareStateComponent extends UnsubscribeOnDestroy {
24791
25362
  }
24792
25363
  ];
24793
25364
  this.sortFields = [
24794
- { field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
24795
- { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' }
25365
+ { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
25366
+ { field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' }
24796
25367
  ];
24797
25368
  let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
24798
25369
  this.gridOptions = {
@@ -24933,7 +25504,8 @@ EoClientModule.decorators = [
24933
25504
  AboutStateComponent,
24934
25505
  StoredQueriesStateComponent,
24935
25506
  ProcessStateComponent,
24936
- VersionStateComponent
25507
+ VersionStateComponent,
25508
+ RecyclebinStateComponent
24937
25509
  ],
24938
25510
  exports: [RouterModule, EoFrameworkModule]
24939
25511
  },] }
@@ -24950,5 +25522,5 @@ EoClientModule.ctorParameters = () => [
24950
25522
  * Generated bundle index. Do not edit.
24951
25523
  */
24952
25524
 
24953
- 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, FavoriteActionComponent as ɵcn, PreventDoubleClickDirective as ɵco, EditIconComponent as ɵcp, DuetimeInfoComponent as ɵcq, PrepareContentExistsInfoComponent as ɵcr, ObjectStateRoutingModule as ɵcs, InboxStateRoutingModule as ɵct, PrepareStateRoutingModule as ɵcu, EoClientRoutingModule as ɵcv, ProcessStateComponent as ɵcw, 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 };
25525
+ 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 };
24954
25526
  //# sourceMappingURL=eo-sdk-client.js.map