@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
@@ -4030,7 +4030,7 @@
4030
4030
  IndexdataSummaryComponent.prototype.onStorageInfoToggle = function (info) {
4031
4031
  var _this = this;
4032
4032
  if (!this.storageInfos) {
4033
- this.dmsService.getDmsObjectByParams({ id: this.item.id, type: this.item.typeName, version: this.item.version, withStorageInfo: true })
4033
+ this.dmsService.getDmsObjectByParams({ id: this.item.id, type: this.item.typeName, version: this.item.version, recyclebin: true, withStorageInfo: true })
4034
4034
  .pipe(operators.catchError(i1.Utils.catchSkip(function (err) { return err.status === 404; }))).subscribe(function (res) {
4035
4035
  _this.storageInfos = res.storageInfo;
4036
4036
  _this.dataInfoAcc = info;
@@ -4266,7 +4266,8 @@
4266
4266
  scrollStrategy: this.overlay.scrollStrategies.reposition(),
4267
4267
  positionStrategy: this.getPositionStrategy(),
4268
4268
  minHeight: this.minHeight,
4269
- minWidth: this.minWidth
4269
+ minWidth: this.minWidth,
4270
+ height: this.height
4270
4271
  });
4271
4272
  //Then we create a portal to render a component
4272
4273
  var portal$1 = new portal.TemplatePortal(this.dialogContent, this.viewContainerRef);
@@ -4364,6 +4365,7 @@
4364
4365
  dirtyCheck: [{ type: i0.Input }],
4365
4366
  minWidth: [{ type: i0.Input }],
4366
4367
  minHeight: [{ type: i0.Input }],
4368
+ height: [{ type: i0.Input }],
4367
4369
  focusOnShow: [{ type: i0.Input }],
4368
4370
  align: [{ type: i0.Input }],
4369
4371
  isFormTable: [{ type: i0.Input }],
@@ -4572,8 +4574,8 @@
4572
4574
  SignatureTabComponent.decorators = [
4573
4575
  { type: i0.Component, args: [{
4574
4576
  selector: 'eo-signature-tab',
4575
- 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",
4576
- 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)}"]
4577
+ 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",
4578
+ 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}"]
4577
4579
  },] }
4578
4580
  ];
4579
4581
  SignatureTabComponent.ctorParameters = function () { return [
@@ -4920,7 +4922,7 @@
4920
4922
  SideBarComponent.decorators = [
4921
4923
  { type: i0.Component, args: [{
4922
4924
  selector: 'eo-side-bar',
4923
- 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",
4925
+ 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",
4924
4926
  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)}}"]
4925
4927
  },] }
4926
4928
  ];
@@ -5781,6 +5783,12 @@
5781
5783
  AppProcessComponent.prototype.cancelDialog = function () {
5782
5784
  this.processForm = null;
5783
5785
  };
5786
+ AppProcessComponent.prototype.onCancel = function (dialog) {
5787
+ if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {
5788
+ this.finishPending();
5789
+ dialog.visible = false;
5790
+ }
5791
+ };
5784
5792
  AppProcessComponent.prototype.startPending = function () {
5785
5793
  // because this method will be called every time the form status changes,
5786
5794
  // pending task will only be started once until it was finished
@@ -5809,7 +5817,7 @@
5809
5817
  AppProcessComponent.decorators = [
5810
5818
  { type: i0.Component, args: [{
5811
5819
  selector: 'eo-app-process',
5812
- 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",
5820
+ 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",
5813
5821
  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)}"]
5814
5822
  },] }
5815
5823
  ];
@@ -8104,7 +8112,7 @@
8104
8112
  IdReferenceComponent.decorators = [
8105
8113
  { type: i0.Component, args: [{
8106
8114
  selector: 'eo-id-reference',
8107
- 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",
8115
+ 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",
8108
8116
  providers: [
8109
8117
  {
8110
8118
  provide: forms.NG_VALUE_ACCESSOR,
@@ -8117,7 +8125,7 @@
8117
8125
  multi: true
8118
8126
  }
8119
8127
  ],
8120
- 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%}"]
8128
+ 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%}"]
8121
8129
  },] }
8122
8130
  ];
8123
8131
  IdReferenceComponent.ctorParameters = function () { return [
@@ -11371,15 +11379,17 @@
11371
11379
 
11372
11380
  var FormElementTableComponent = /** @class */ (function (_super) {
11373
11381
  __extends(FormElementTableComponent, _super);
11374
- function FormElementTableComponent(systemService, pendingChanges, gridApi, translate, storageService, eventService) {
11382
+ function FormElementTableComponent(storageService, systemService, pendingChanges, gridApi) {
11375
11383
  var _this = _super.call(this) || this;
11384
+ _this.storageService = storageService;
11376
11385
  _this.systemService = systemService;
11377
11386
  _this.pendingChanges = pendingChanges;
11378
11387
  _this.gridApi = gridApi;
11379
- _this.translate = translate;
11380
- _this.storageService = storageService;
11381
- _this.eventService = eventService;
11382
11388
  _this.modules = [clientSideRowModel.ClientSideRowModelModule, csvExport.CsvExportModule];
11389
+ _this.BASE_CACHE_LAYOUT_KEY = 'table.state';
11390
+ _this.cacheLayoutKey = _this.BASE_CACHE_LAYOUT_KEY;
11391
+ _this.minWidth = '97vw';
11392
+ _this.height = '95vh';
11383
11393
  _this.gridReady = false;
11384
11394
  _this.showDialog = false;
11385
11395
  _this.showPreview = false;
@@ -11436,9 +11446,6 @@
11436
11446
  _this.overlayGridOptions.suppressRowClickSelection = !!_this.rowEdit && !!tasks.includes(_this.rowEdit.pendingTaskId);
11437
11447
  }, 0);
11438
11448
  });
11439
- _this._cachedColumns = _this.storageService.getItem(FormElementTableComponent.COLUMNS_DEFINITION) || [];
11440
- _this._cachedColumnsOverlay = _this.storageService.getItem(FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY) || [];
11441
- _this.showPreview = !!_this.storageService.getItem('eo.table.showPreview');
11442
11449
  return _this;
11443
11450
  }
11444
11451
  Object.defineProperty(FormElementTableComponent.prototype, "params", {
@@ -11446,8 +11453,12 @@
11446
11453
  return this._params;
11447
11454
  },
11448
11455
  set: function (p) {
11456
+ this.cacheLayoutKey = p ? this.BASE_CACHE_LAYOUT_KEY + "." + p.element.name : this.BASE_CACHE_LAYOUT_KEY;
11449
11457
  if (p) {
11450
11458
  this._params = p;
11459
+ this._cachedColumns = this.storageService.getItem(this.cacheLayoutKey + '.colDef') || [];
11460
+ this._cachedColumnsOverlay = this.storageService.getItem(this.cacheLayoutKey + '.colDefOverlay') || [];
11461
+ this.showPreview = this.storageService.getItem(this.cacheLayoutKey + '.showPreview');
11451
11462
  CellRenderer.situation = this._params.situation;
11452
11463
  if (this._params.situation === 'SEARCH') {
11453
11464
  this._params.size = 'supersmall';
@@ -11762,10 +11773,10 @@
11762
11773
  }
11763
11774
  };
11764
11775
  FormElementTableComponent.prototype.onColumnResized = function (column, overlay) {
11765
- var columnsDefinition = FormElementTableComponent.COLUMNS_DEFINITION;
11776
+ var columnsDefinition = this.cacheLayoutKey + '.colDef';
11766
11777
  var cachedColumns = this._cachedColumns;
11767
11778
  if (overlay) {
11768
- columnsDefinition = FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY;
11779
+ columnsDefinition = this.cacheLayoutKey + '.colDefOverlay';
11769
11780
  cachedColumns = this._cachedColumnsOverlay;
11770
11781
  }
11771
11782
  var col = cachedColumns.find(function (c) { return c.qname === column.colDef.refData.qname; });
@@ -11777,18 +11788,32 @@
11777
11788
  }
11778
11789
  this.storageService.setItem(columnsDefinition, cachedColumns);
11779
11790
  };
11791
+ FormElementTableComponent.prototype._updateSplitViewLayoutCache = function () {
11792
+ var _this = this;
11793
+ setTimeout(function () {
11794
+ _this.splitView.updateLayoutCache();
11795
+ });
11796
+ };
11780
11797
  FormElementTableComponent.prototype.togglePreview = function () {
11781
11798
  this.showPreview = !this.showPreview;
11782
- this.storageService.setItem('eo.table.showPreview', this.showPreview);
11799
+ // make sure that the layout of the split view is updated after the preview panels
11800
+ // visibility changed
11801
+ this._updateSplitViewLayoutCache();
11802
+ this.storageService.setItem(this.cacheLayoutKey + '.showPreview', this.showPreview);
11803
+ };
11804
+ FormElementTableComponent.prototype.ngAfterViewInit = function () {
11805
+ this._updateSplitViewLayoutCache();
11806
+ };
11807
+ FormElementTableComponent.prototype.ngOnInit = function () {
11808
+ var _a;
11809
+ this.hasPreviewFile = this.hasPreviewFile !== undefined ? this.hasPreviewFile : !!((_a = this.params.object) === null || _a === void 0 ? void 0 : _a.content);
11783
11810
  };
11784
11811
  return FormElementTableComponent;
11785
11812
  }(UnsubscribeOnDestroy));
11786
- FormElementTableComponent.COLUMNS_DEFINITION = 'eo.framework.cache.tables.columns.definition';
11787
- FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY = 'eo.framework.cache.tables.overlay.columns.definition';
11788
11813
  FormElementTableComponent.decorators = [
11789
11814
  { type: i0.Component, args: [{
11790
11815
  selector: 'eo-table',
11791
- 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",
11816
+ 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",
11792
11817
  providers: [
11793
11818
  {
11794
11819
  provide: forms.NG_VALUE_ACCESSOR,
@@ -11805,16 +11830,18 @@
11805
11830
  },] }
11806
11831
  ];
11807
11832
  FormElementTableComponent.ctorParameters = function () { return [
11833
+ { type: i1.LocalStorageService },
11808
11834
  { type: i1.SystemService },
11809
11835
  { type: PendingChangesService },
11810
- { type: GridService },
11811
- { type: i1.TranslateService },
11812
- { type: i1.LocalStorageService },
11813
- { type: i1.EventService }
11836
+ { type: GridService }
11814
11837
  ]; };
11815
11838
  FormElementTableComponent.propDecorators = {
11816
11839
  rowEdit: [{ type: i0.ViewChild, args: ['rowEdit',] }],
11840
+ splitView: [{ type: i0.ViewChild, args: ['splitView',] }],
11817
11841
  limit: [{ type: i0.Input }],
11842
+ hasPreviewFile: [{ type: i0.Input }],
11843
+ minWidth: [{ type: i0.Input }],
11844
+ height: [{ type: i0.Input }],
11818
11845
  params: [{ type: i0.Input }],
11819
11846
  copyCellHandler: [{ type: i0.HostListener, args: ['keydown.control.alt.shift.c', ['$event'],] }, { type: i0.HostListener, args: ['keydown.control.shift.c', ['$event'],] }, { type: i0.HostListener, args: ['keydown.control.alt.c', ['$event'],] }, { type: i0.HostListener, args: ['keydown.control.c', ['$event'],] }]
11820
11847
  };
@@ -12092,7 +12119,7 @@
12092
12119
  this.layoutService.getLayout("eo.split.layout." + this.cacheLayout)
12093
12120
  .subscribe(function (layout) {
12094
12121
  (layout || []).forEach(function (area) {
12095
- if (area && _this.areas.length) {
12122
+ if (area && _this.areas.length > area.index) {
12096
12123
  _this.areas[area.index].size = area.size;
12097
12124
  _this.areas[area.index].sizeUser = area.size;
12098
12125
  _this.areas[area.index].component.visible = area.visible;
@@ -12145,14 +12172,14 @@
12145
12172
  var item = this.areas.find(function (a) { return a.component === area; });
12146
12173
  if (item) {
12147
12174
  this.refresh();
12148
- this.updateCache();
12175
+ this.updateLayoutCache();
12149
12176
  }
12150
12177
  };
12151
12178
  SplitComponent.prototype.showArea = function (area) {
12152
12179
  var item = this.areas.find(function (a) { return a.component === area; });
12153
12180
  if (item) {
12154
12181
  this.refresh();
12155
- this.updateCache();
12182
+ this.updateLayoutCache();
12156
12183
  }
12157
12184
  };
12158
12185
  SplitComponent.prototype.isLastVisibleArea = function (area) {
@@ -12300,7 +12327,7 @@
12300
12327
  this.containerSize = 0;
12301
12328
  this.areaASize = 0;
12302
12329
  this.areaBSize = 0;
12303
- this.updateCache();
12330
+ this.updateLayoutCache();
12304
12331
  this.isDragging = false;
12305
12332
  this.notify('end');
12306
12333
  };
@@ -12317,7 +12344,7 @@
12317
12344
  return this.visibleTransitionEndInternal.next(data);
12318
12345
  }
12319
12346
  };
12320
- SplitComponent.prototype.updateCache = function () {
12347
+ SplitComponent.prototype.updateLayoutCache = function () {
12321
12348
  if (this.cacheLayout) {
12322
12349
  var layout = this.areas.map(function (a, i) { return ({ index: i, size: a.size, visible: a.component.visible }); });
12323
12350
  this.layoutService.cacheLayout("eo.split.layout." + this.cacheLayout, layout);
@@ -12475,6 +12502,13 @@
12475
12502
  _this.eventsLockFct = [];
12476
12503
  return _this;
12477
12504
  }
12505
+ Object.defineProperty(SplitAreaComponent.prototype, "height", {
12506
+ set: function (height) {
12507
+ this._height = height;
12508
+ },
12509
+ enumerable: false,
12510
+ configurable: true
12511
+ });
12478
12512
  Object.defineProperty(SplitAreaComponent.prototype, "order", {
12479
12513
  set: function (v) {
12480
12514
  this._order = !isNaN(v) ? v : null;
@@ -12568,6 +12602,7 @@
12568
12602
  _height: [{ type: i0.HostBinding, args: ['style.height.%',] }],
12569
12603
  minWidth: [{ type: i0.HostBinding, args: ['style.min-width.px',] }],
12570
12604
  visibleCls: [{ type: i0.HostBinding, args: ['class.visible',] }],
12605
+ height: [{ type: i0.Input }],
12571
12606
  order: [{ type: i0.Input }],
12572
12607
  size: [{ type: i0.Input }],
12573
12608
  minSizePixel: [{ type: i0.Input }],
@@ -14557,7 +14592,7 @@
14557
14592
  }
14558
14593
  };
14559
14594
  TextFilterComponent.prototype.saveFilter = function (term) {
14560
- if (!this.savedFilters.includes(term)) {
14595
+ if (term && !this.savedFilters.includes(term)) {
14561
14596
  this.savedFilters.push(term);
14562
14597
  this.userService.changeSavedInboxFilters(this.savedFilters).subscribe();
14563
14598
  }
@@ -14578,7 +14613,7 @@
14578
14613
  TextFilterComponent.decorators = [
14579
14614
  { type: i0.Component, args: [{
14580
14615
  selector: 'eo-text-filter',
14581
- 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",
14616
+ 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",
14582
14617
  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}"]
14583
14618
  },] }
14584
14619
  ];
@@ -14911,9 +14946,11 @@
14911
14946
  this.finished.emit();
14912
14947
  };
14913
14948
  WorkflowComponent.prototype.cancel = function () {
14914
- this.finishPending();
14915
- this.dialog.visible = false;
14916
- this.canceled.emit();
14949
+ if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {
14950
+ this.finishPending();
14951
+ this.dialog.visible = false;
14952
+ this.canceled.emit();
14953
+ }
14917
14954
  };
14918
14955
  WorkflowComponent.prototype.onIndexDataChanged = function (event) {
14919
14956
  this.form = event;
@@ -15670,8 +15707,8 @@
15670
15707
  if (item.content && item.content.contents && item.content.contents.length) {
15671
15708
  var file = item.content.contents[0] || {};
15672
15709
  this.previewFile = {
15673
- uri: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null),
15674
- uriPdf: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null, 'PDF'),
15710
+ uri: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null, undefined, true),
15711
+ uriPdf: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null, 'PDF', true),
15675
15712
  mimetype: file.mimetype,
15676
15713
  mimegroup: file.mimegroup,
15677
15714
  size: file.size,
@@ -17188,7 +17225,10 @@
17188
17225
  .deleteDmsObject(dmsObject.id, dmsObject.type.name, hardDelete, force)
17189
17226
  .subscribe(function () {
17190
17227
  _this.showForceDeleteDialog = false;
17191
- _this.toast.success(_this.translate.instant('eo.action.delete.dms.object.done.title'), _this.translate.instant('eo.action.delete.dms.object.done.message'));
17228
+ var successMessage = _this.capabilitiesService.hasCapability('recyclebin')
17229
+ ? _this.translate.instant('eo.action.delete.dms.object.done.enabled.message', { title: dmsObject.title })
17230
+ : _this.translate.instant('eo.action.delete.dms.object.done.message', { title: dmsObject.title });
17231
+ _this.toast.success(_this.translate.instant('eo.action.delete.dms.object.done.title'), successMessage);
17192
17232
  _this.eventService.trigger(i1.EnaioEvent.DMS_OBJECT_DELETED, _this.selection[0]);
17193
17233
  if ((dmsObject.isContextFolder || !dmsObject.contextFolder) && _this.isAllowedState()) {
17194
17234
  _this.router.navigate(['/']);
@@ -18450,7 +18490,7 @@
18450
18490
  ];
18451
18491
 
18452
18492
  var SignatureComponent = /** @class */ (function () {
18453
- function SignatureComponent(bpmService, pendingChanges, translate, toaster, signingService, config) {
18493
+ function SignatureComponent(bpmService, pendingChanges, translate, toaster, signingService, config, eventService, dmsService) {
18454
18494
  var _this = this;
18455
18495
  this.bpmService = bpmService;
18456
18496
  this.pendingChanges = pendingChanges;
@@ -18458,6 +18498,8 @@
18458
18498
  this.toaster = toaster;
18459
18499
  this.signingService = signingService;
18460
18500
  this.config = config;
18501
+ this.eventService = eventService;
18502
+ this.dmsService = dmsService;
18461
18503
  this.finished = new i0.EventEmitter();
18462
18504
  this.canceled = new i0.EventEmitter();
18463
18505
  // ID set by pendingChanges service when editing indexdata
@@ -18492,9 +18534,11 @@
18492
18534
  };
18493
18535
  this.signingService
18494
18536
  .signDocument(this.selection[0].id, signingData)
18495
- .subscribe(function () {
18537
+ .pipe(operators.switchMap(function () { return _this.dmsService.getDmsObject(_this.selection[0].id); }))
18538
+ .subscribe(function (dmsObject) {
18496
18539
  _this.processingRequest = false;
18497
18540
  _this.toaster.success(_this.translate.instant('eo.action.signature.request.success'));
18541
+ _this.eventService.trigger(i1.EnaioEvent.DMS_OBJECT_UPDATED, dmsObject);
18498
18542
  _this.finish();
18499
18543
  }, i1.Utils.throw(function (error) {
18500
18544
  _this.toaster.error(error);
@@ -18508,9 +18552,11 @@
18508
18552
  this.finished.emit();
18509
18553
  };
18510
18554
  SignatureComponent.prototype.cancel = function () {
18511
- this.finishPending();
18512
- this.dialog.visible = false;
18513
- this.canceled.emit();
18555
+ if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {
18556
+ this.finishPending();
18557
+ this.dialog.visible = false;
18558
+ this.canceled.emit();
18559
+ }
18514
18560
  };
18515
18561
  SignatureComponent.prototype.onIndexDataChanged = function () {
18516
18562
  if (this.signingForm.dirty) {
@@ -18541,8 +18587,8 @@
18541
18587
  SignatureComponent.decorators = [
18542
18588
  { type: i0.Component, args: [{
18543
18589
  selector: 'eo-signature',
18544
- 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",
18545
- 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)}"]
18590
+ 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",
18591
+ 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}"]
18546
18592
  },] }
18547
18593
  ];
18548
18594
  SignatureComponent.ctorParameters = function () { return [
@@ -18551,7 +18597,9 @@
18551
18597
  { type: i1.TranslateService },
18552
18598
  { type: i1.NotificationsService },
18553
18599
  { type: i1.SigningService },
18554
- { type: i1.Config }
18600
+ { type: i1.Config },
18601
+ { type: i1.EventService },
18602
+ { type: i1.DmsService }
18555
18603
  ]; };
18556
18604
  SignatureComponent.propDecorators = {
18557
18605
  dialog: [{ type: i0.ViewChild, args: ['dialog',] }]
@@ -18563,7 +18611,7 @@
18563
18611
  var _this = _super.call(this) || this;
18564
18612
  _this.translate = translate;
18565
18613
  _this.signingService = signingService;
18566
- _this.priority = 15;
18614
+ _this.priority = 2;
18567
18615
  _this.iconSrc = 'assets/_default/svg/ic_signature.svg';
18568
18616
  _this.group = 'common';
18569
18617
  _this.range = exports.SelectionRange.SINGLE_SELECT;
@@ -18573,14 +18621,20 @@
18573
18621
  return _this;
18574
18622
  }
18575
18623
  SignatureActionComponent.prototype.isExecutable = function (element) {
18576
- return rxjs.of(!this.signingService.signingInProcess(element)
18624
+ return rxjs.of(!this.signingService.signatureRequested(element)
18577
18625
  && this.isAllowedMimeType(element)
18578
18626
  && this.isAllowedObjectType(element)
18579
18627
  && this.hasEditRights(element)
18580
18628
  && !this.isFinalized(element));
18581
18629
  };
18582
18630
  SignatureActionComponent.prototype.isAllowedMimeType = function (item) {
18583
- return item.content && item.content.contents[0].mimetype === 'application/pdf';
18631
+ return item.content && (item.content.contents[0].mimetype === 'application/pdf'
18632
+ || item.content.contents[0].mimetype === 'application/msword'
18633
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
18634
+ || item.content.contents[0].mimetype === 'application/vnd.ms-excel'
18635
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
18636
+ || item.content.contents[0].mimetype === 'application/vnd.ms-powerpoint'
18637
+ || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.presentationml.presentation');
18584
18638
  };
18585
18639
  SignatureActionComponent.prototype.isAllowedObjectType = function (item) {
18586
18640
  return item.type.supertypes.includes('yuvsigning');
@@ -18604,6 +18658,126 @@
18604
18658
  { type: i1.SigningService }
18605
18659
  ]; };
18606
18660
 
18661
+ var CancelSigningComponent = /** @class */ (function () {
18662
+ function CancelSigningComponent(translate, backend, toast, router, capabilitiesService, signingService, elemRef, eventService, dmsService) {
18663
+ this.translate = translate;
18664
+ this.backend = backend;
18665
+ this.toast = toast;
18666
+ this.router = router;
18667
+ this.capabilitiesService = capabilitiesService;
18668
+ this.signingService = signingService;
18669
+ this.elemRef = elemRef;
18670
+ this.eventService = eventService;
18671
+ this.dmsService = dmsService;
18672
+ this.cancelling = false;
18673
+ this.finished = new i0.EventEmitter();
18674
+ this.canceled = new i0.EventEmitter();
18675
+ this.commentLabel = this.translate.instant('eo.action.cancel.signing.reason');
18676
+ this.cancelSigningForm = new forms.FormGroup({});
18677
+ this.commentField = new forms.FormControl();
18678
+ this.cancelSigningForm.addControl('commentField', this.commentField);
18679
+ this.commentField.setValidators(forms.Validators.required);
18680
+ }
18681
+ Object.defineProperty(CancelSigningComponent.prototype, "commentValidity", {
18682
+ get: function () {
18683
+ return this.cancelSigningForm.get('commentField').invalid;
18684
+ },
18685
+ enumerable: false,
18686
+ configurable: true
18687
+ });
18688
+ CancelSigningComponent.prototype.cancelSigning = function (id, comment) {
18689
+ var _this = this;
18690
+ this.cancelling = true;
18691
+ this.signingService
18692
+ .cancelSigning(id, comment)
18693
+ .pipe(operators.switchMap(function () { return _this.dmsService.getDmsObject(_this.selection[0].id); }))
18694
+ .subscribe(function (dmsObject) {
18695
+ _this.cancelling = false;
18696
+ _this.toast.success(null, _this.translate.instant('eo.action.cancel.signing.success.message'));
18697
+ _this.eventService.trigger(i1.EnaioEvent.DMS_OBJECT_UPDATED, dmsObject);
18698
+ _this.finished.emit();
18699
+ }, function (error) {
18700
+ _this.toast.error(_this.translate.instant('eo.action.cancel.signing.error.message'));
18701
+ _this.finished.emit();
18702
+ });
18703
+ };
18704
+ CancelSigningComponent.prototype.run = function () {
18705
+ this.cancelSigning(this.selection[0].id, this.commentField.value);
18706
+ };
18707
+ CancelSigningComponent.prototype.cancel = function () {
18708
+ this.canceled.emit();
18709
+ };
18710
+ CancelSigningComponent.prototype.ngAfterViewInit = function () {
18711
+ var _this = this;
18712
+ setTimeout(function () {
18713
+ _this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
18714
+ });
18715
+ };
18716
+ return CancelSigningComponent;
18717
+ }());
18718
+ CancelSigningComponent.decorators = [
18719
+ { type: i0.Component, args: [{
18720
+ selector: 'eo-cancel-signing',
18721
+ 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",
18722
+ 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}"]
18723
+ },] }
18724
+ ];
18725
+ CancelSigningComponent.ctorParameters = function () { return [
18726
+ { type: i1.TranslateService },
18727
+ { type: i1.BackendService },
18728
+ { type: i1.NotificationsService },
18729
+ { type: i2.Router },
18730
+ { type: i1.CapabilitiesService },
18731
+ { type: i1.SigningService },
18732
+ { type: i0.ElementRef },
18733
+ { type: i1.EventService },
18734
+ { type: i1.DmsService }
18735
+ ]; };
18736
+ CancelSigningComponent.propDecorators = {
18737
+ selection: [{ type: i0.Input }],
18738
+ finished: [{ type: i0.Output }],
18739
+ canceled: [{ type: i0.Output }]
18740
+ };
18741
+
18742
+ var CancelSigningActionComponent = /** @class */ (function (_super) {
18743
+ __extends(CancelSigningActionComponent, _super);
18744
+ function CancelSigningActionComponent(translate, signingService) {
18745
+ var _this = _super.call(this) || this;
18746
+ _this.translate = translate;
18747
+ _this.signingService = signingService;
18748
+ _this.priority = 2;
18749
+ _this.iconSrc = 'assets/_default/svg/ic_signature.svg';
18750
+ _this.group = 'common';
18751
+ _this.range = exports.SelectionRange.SINGLE_SELECT;
18752
+ _this.component = CancelSigningComponent;
18753
+ _this.label = _this.translate.instant('eo.action.cancel.signing.label');
18754
+ _this.description = _this.translate.instant('eo.action.cancel.signing.description');
18755
+ return _this;
18756
+ }
18757
+ CancelSigningActionComponent.prototype.isExecutable = function (element) {
18758
+ return rxjs.of(this.signingService.signingInProcess(element)
18759
+ && this.hasEditRights(element)
18760
+ && !this.isFinalized(element));
18761
+ };
18762
+ CancelSigningActionComponent.prototype.hasEditRights = function (item) {
18763
+ return item.rights.edit;
18764
+ };
18765
+ CancelSigningActionComponent.prototype.isFinalized = function (item) {
18766
+ return item.isFinalized;
18767
+ };
18768
+ return CancelSigningActionComponent;
18769
+ }(DmsObjectTarget));
18770
+ CancelSigningActionComponent.decorators = [
18771
+ { type: i0.Component, args: [{
18772
+ selector: 'eo-cancel-signing',
18773
+ template: ""
18774
+ },] }
18775
+ ];
18776
+ CancelSigningActionComponent.ctorParameters = function () { return [
18777
+ { type: i1.TranslateService },
18778
+ { type: i1.SigningService }
18779
+ ]; };
18780
+
18607
18781
  var entryComponents = [
18608
18782
  CopyActionComponent,
18609
18783
  OpenContextActionComponent,
@@ -18645,7 +18819,9 @@
18645
18819
  UnlockActionComponent,
18646
18820
  SimpleWorkflowActionComponent,
18647
18821
  SignatureActionComponent,
18648
- SignatureComponent
18822
+ SignatureComponent,
18823
+ CancelSigningActionComponent,
18824
+ CancelSigningComponent
18649
18825
  ];
18650
18826
  var ɵ0 = [];
18651
18827
  /**
@@ -18742,7 +18918,9 @@
18742
18918
  SimpleWorkflowActionComponent,
18743
18919
  PreventDoubleClickDirective,
18744
18920
  SignatureActionComponent,
18745
- SignatureComponent
18921
+ SignatureComponent,
18922
+ CancelSigningActionComponent,
18923
+ CancelSigningComponent
18746
18924
  ],
18747
18925
  entryComponents: entryComponents
18748
18926
  },] }
@@ -20098,7 +20276,7 @@
20098
20276
  StoredQueryDetailsComponent.decorators = [
20099
20277
  { type: i0.Component, args: [{
20100
20278
  selector: 'eo-stored-query-details',
20101
- 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",
20279
+ 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",
20102
20280
  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)}"]
20103
20281
  },] }
20104
20282
  ];
@@ -20415,10 +20593,12 @@
20415
20593
  _this.panelOrder = { 'master': ['summary', 'indexdata', 'history', 'links', 'signature'], 'slave': ['preview'] };
20416
20594
  _this.agentIsConnected$ = _this.agentService.isConnected$;
20417
20595
  _this.enableCompare = false;
20596
+ _this.recyclebinTabs = false;
20418
20597
  _this.enableDiff = true;
20419
20598
  _this.enableSync = true;
20420
20599
  _this._emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
20421
20600
  _this.externalPanels = new i0.QueryList();
20601
+ _this.preventClickThrough = false;
20422
20602
  // shortcut actions
20423
20603
  _this.shortcuts = {
20424
20604
  id: 'eo.object-details',
@@ -20575,7 +20755,7 @@
20575
20755
  _this.loadDmsObject(_this.parseDmsParams(res)).subscribe(function (res) {
20576
20756
  // refreshing object details may result in an updated version of the object
20577
20757
  // so we'll use this trigger to also emitt those changes to other listening components
20578
- if (_this.item && res && (_this.item.id === res.id) && res.version > _this.item.version) {
20758
+ if (_this.item && res && (_this.item.id === res.id)) {
20579
20759
  _this.eventService.trigger(i1.EnaioEvent.DMS_OBJECT_UPDATED, res);
20580
20760
  }
20581
20761
  _this.dmsObject = res;
@@ -20589,7 +20769,14 @@
20589
20769
  }
20590
20770
  };
20591
20771
  ObjectDetailsComponent.prototype.refreshContent = function () {
20592
- this.updateContent();
20772
+ var _this = this;
20773
+ if (!this.preventClickThrough) {
20774
+ this.preventClickThrough = true;
20775
+ this.updateContent();
20776
+ }
20777
+ setTimeout(function () {
20778
+ _this.preventClickThrough = false;
20779
+ }, 5000);
20593
20780
  };
20594
20781
  ObjectDetailsComponent.prototype.prepareIndexDataPreview = function (item, formData) {
20595
20782
  var id = item.id, data = item.data, type = item.type, created = item.created, modified = item.modified, content = item.content, contentFileName = item.contentFileName, contentFileSize = item.contentFileSize, version = item.version;
@@ -20741,9 +20928,9 @@
20741
20928
  ObjectDetailsComponent.decorators = [
20742
20929
  { type: i0.Component, args: [{
20743
20930
  selector: 'eo-object-details',
20744
- 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",
20931
+ 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",
20745
20932
  providers: [ContentPreviewService],
20746
- 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}"]
20933
+ 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}"]
20747
20934
  },] }
20748
20935
  ];
20749
20936
  ObjectDetailsComponent.ctorParameters = function () { return [
@@ -20768,6 +20955,7 @@
20768
20955
  reference: [{ type: i0.Input }],
20769
20956
  searchTerm: [{ type: i0.Input }],
20770
20957
  enableCompare: [{ type: i0.Input }],
20958
+ recyclebinTabs: [{ type: i0.Input }],
20771
20959
  enableDiff: [{ type: i0.Input }],
20772
20960
  enableSync: [{ type: i0.Input }],
20773
20961
  cacheLayout: [{ type: i0.Input }],
@@ -21111,7 +21299,7 @@
21111
21299
  ObjectHistoryComponent.prototype.fetchHistory = function (id, type) {
21112
21300
  var _this = this;
21113
21301
  this.dmsService
21114
- .getHistory(id, type)
21302
+ .getHistory(id, type, true)
21115
21303
  .pipe(operators.map(function (res) {
21116
21304
  var reversedRes = res.reverse();
21117
21305
  _this.completeHistory = reversedRes;
@@ -21126,7 +21314,7 @@
21126
21314
  ObjectHistoryComponent.decorators = [
21127
21315
  { type: i0.Component, args: [{
21128
21316
  selector: 'eo-object-history',
21129
- 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",
21317
+ 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",
21130
21318
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
21131
21319
  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)}"]
21132
21320
  },] }
@@ -21647,6 +21835,288 @@
21647
21835
  item: [{ type: i0.Input }]
21648
21836
  };
21649
21837
 
21838
+ var RecyclebinDetailsComponent = /** @class */ (function (_super) {
21839
+ __extends(RecyclebinDetailsComponent, _super);
21840
+ function RecyclebinDetailsComponent(router, route, system, empty, backend, userService, toast, dmsService, selection, capabilityService, eventService, configService, translate) {
21841
+ var _this = _super.call(this) || this;
21842
+ _this.router = router;
21843
+ _this.route = route;
21844
+ _this.system = system;
21845
+ _this.empty = empty;
21846
+ _this.backend = backend;
21847
+ _this.userService = userService;
21848
+ _this.toast = toast;
21849
+ _this.dmsService = dmsService;
21850
+ _this.selection = selection;
21851
+ _this.capabilityService = capabilityService;
21852
+ _this.eventService = eventService;
21853
+ _this.configService = configService;
21854
+ _this.translate = translate;
21855
+ // generate unique id to pass to upload registry
21856
+ _this.user$ = _this.userService.user$;
21857
+ _this._showDeleteDialog = false;
21858
+ _this.userId = '';
21859
+ _this.hasError = false;
21860
+ _this.nodmsobject = false;
21861
+ _this.showLoader = false;
21862
+ _this.panelOrder = { 'master': ['summary', 'history'], 'slave': ['preview'] };
21863
+ _this._emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
21864
+ _this.externalPanels = new i0.QueryList();
21865
+ _this.parseDmsParams = _this.getDmsParams;
21866
+ _this.hasContent = new i0.EventEmitter();
21867
+ _this.panelOrder = _this.configService.getRaw('recyclebinDetailsTabs') || _this.panelOrder;
21868
+ _this.user$.subscribe(function (user) { _this.userId = user.id; });
21869
+ return _this;
21870
+ }
21871
+ Object.defineProperty(RecyclebinDetailsComponent.prototype, "showDeleteDialog", {
21872
+ get: function () {
21873
+ return this._showDeleteDialog;
21874
+ },
21875
+ set: function (val) {
21876
+ var _this = this;
21877
+ this._showDeleteDialog = val;
21878
+ if (this._showDeleteDialog) {
21879
+ setTimeout(function () { return _this.confirmDeleteButton.nativeElement.focus(); }, 0);
21880
+ }
21881
+ },
21882
+ enumerable: false,
21883
+ configurable: true
21884
+ });
21885
+ Object.defineProperty(RecyclebinDetailsComponent.prototype, "emptyState", {
21886
+ get: function () {
21887
+ return this._emptyState;
21888
+ },
21889
+ set: function (e) {
21890
+ this._emptyState = e || EmptyStateService.defaultEmptyState();
21891
+ },
21892
+ enumerable: false,
21893
+ configurable: true
21894
+ });
21895
+ Object.defineProperty(RecyclebinDetailsComponent.prototype, "dmsParams", {
21896
+ set: function (params) {
21897
+ var _this = this;
21898
+ this.showLoader = true;
21899
+ this.loadDmsObject(params).subscribe(function (res) {
21900
+ _this.dmsObject = res;
21901
+ _this.showLoader = false;
21902
+ }, i1.Utils.throw(function () { return _this.onHasError(true, true, false); }));
21903
+ },
21904
+ enumerable: false,
21905
+ configurable: true
21906
+ });
21907
+ Object.defineProperty(RecyclebinDetailsComponent.prototype, "dmsObject", {
21908
+ set: function (v) {
21909
+ this.item = v;
21910
+ this.onHasError();
21911
+ // prepare indexdata preview
21912
+ this.onIndexDataSaved(null, this.item);
21913
+ this.eventService.trigger(i1.EnaioEvent.DMS_OBJECT_LOADED, this.item);
21914
+ if (this.item) {
21915
+ if (this.item.lock) {
21916
+ this.lockTooltip = this.translate.instant('eo.object.lock') + ' '
21917
+ + (new LocaleDatePipe(this.translate).transform(this.item.lock.on))
21918
+ + ', ' + this.item.lock.by.label + ' (' + this.item.lock.by.name + ')';
21919
+ }
21920
+ }
21921
+ else {
21922
+ this.emptyState = this.empty.getEmptyState(0);
21923
+ }
21924
+ },
21925
+ enumerable: false,
21926
+ configurable: true
21927
+ });
21928
+ Object.defineProperty(RecyclebinDetailsComponent.prototype, "dataType", {
21929
+ get: function () {
21930
+ return this.item ? this.item.typeName : 'none';
21931
+ },
21932
+ enumerable: false,
21933
+ configurable: true
21934
+ });
21935
+ RecyclebinDetailsComponent.prototype.getDmsParams = function (data) {
21936
+ return data ? Object.assign(Object.assign({}, data), { type: data.type }) : null;
21937
+ };
21938
+ RecyclebinDetailsComponent.prototype.updateContent = function () {
21939
+ var _this = this;
21940
+ if (this.applySelection) {
21941
+ this.selection
21942
+ .find(this.applySelection.in)
21943
+ .focus$
21944
+ .pipe(operators.takeUntil(this.componentDestroyed$))
21945
+ .subscribe(function (result) {
21946
+ _this.showLoader = true;
21947
+ _this.loadDmsObject(_this.parseDmsParams(result)).subscribe(function (res) {
21948
+ if (_this.item && res && (_this.item.id === res.id) && res.version > _this.item.version) {
21949
+ _this.eventService.trigger(i1.EnaioEvent.DMS_OBJECT_UPDATED, res);
21950
+ }
21951
+ _this.dmsObject = res;
21952
+ _this.showLoader = false;
21953
+ }, i1.Utils.throw(function (error) {
21954
+ return _this.onHasError(true, true, false);
21955
+ }));
21956
+ });
21957
+ }
21958
+ };
21959
+ RecyclebinDetailsComponent.prototype.restoreFile = function (openLocationAfterRestore) {
21960
+ var _this = this;
21961
+ if (openLocationAfterRestore === void 0) { openLocationAfterRestore = false; }
21962
+ this.dmsService.restore(this.item.id, this.userId, this.item.typeName).subscribe(function () {
21963
+ _this.updateContent();
21964
+ if (openLocationAfterRestore) {
21965
+ _this.router.navigate(['/object', _this.item.id]);
21966
+ }
21967
+ _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 }));
21968
+ _this.eventService.trigger(i1.EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED);
21969
+ }, function (error) {
21970
+ if (error.status === 409) {
21971
+ _this.toast.error(_this.translate.instant('eo.recyclebin.details.restore.dms.object.error.409'));
21972
+ }
21973
+ });
21974
+ };
21975
+ RecyclebinDetailsComponent.prototype.deleteDmsObject = function () {
21976
+ var _this = this;
21977
+ this.dmsService
21978
+ .deleteDmsObject(this.item.id, this.item.type.name, true)
21979
+ .subscribe(function () {
21980
+ _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 }));
21981
+ _this._showDeleteDialog = false;
21982
+ _this.eventService.trigger(i1.EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED);
21983
+ });
21984
+ };
21985
+ RecyclebinDetailsComponent.prototype.prepareIndexDataPreview = function (item, formData) {
21986
+ var id = item.id, data = item.data, type = item.type, created = item.created, modified = item.modified, content = item.content, contentFileName = item.contentFileName, contentFileSize = item.contentFileSize, version = item.version;
21987
+ return this.system
21988
+ .getObjectTypeForm(type.name, 'EDIT')
21989
+ .pipe(operators.map(function (form) {
21990
+ var indexDataPreview = {
21991
+ form: form,
21992
+ data: formData || data
21993
+ };
21994
+ var baseparams = {
21995
+ id: id,
21996
+ type: type.name,
21997
+ createdOn: new Date(created.on),
21998
+ modifiedOn: new Date(modified.on),
21999
+ createdBy: created.by.title + " (" + created.by.name + ")",
22000
+ modifiedBy: modified.by.title + " (" + modified.by.name + ")",
22001
+ contentFileName: contentFileName ? contentFileName : null,
22002
+ contentFileSize: contentFileSize ? Number(contentFileSize) : null,
22003
+ version: version || 0,
22004
+ mimeGroup: content ? content.contents ? content.contents[0].mimegroup : null : null,
22005
+ digest: content ? content.contents ? content.contents[0].digest : null : null,
22006
+ contentId: content ? content.contents ? content.id : null : null,
22007
+ mimeType: content ? content.contents ? content.contents[0].mimetype : null : null,
22008
+ };
22009
+ return { indexDataPreview: indexDataPreview, baseparams: baseparams };
22010
+ }));
22011
+ };
22012
+ RecyclebinDetailsComponent.prototype.onHasError = function (hasError, nodmsobject, showLoader) {
22013
+ if (hasError === void 0) { hasError = false; }
22014
+ if (nodmsobject === void 0) { nodmsobject = false; }
22015
+ if (showLoader === void 0) { showLoader = false; }
22016
+ this.hasError = hasError;
22017
+ this.nodmsobject = nodmsobject;
22018
+ this.showLoader = showLoader;
22019
+ this.hasContent.emit(!hasError);
22020
+ };
22021
+ RecyclebinDetailsComponent.prototype.loadDmsObject = function (params) {
22022
+ var _a;
22023
+ if (params) {
22024
+ delete params.version;
22025
+ }
22026
+ // check for valid id
22027
+ return ((_a = params === null || params === void 0 ? void 0 : params.id) === null || _a === void 0 ? void 0 : _a.length) === 32 ? this.dmsService.getDmsObjectByParams(params) : rxjs.of(null);
22028
+ };
22029
+ RecyclebinDetailsComponent.prototype.downloadOriginalContent = function () {
22030
+ this.backend.downloadContent([this.item], null, false, true);
22031
+ };
22032
+ // executed when the dms object changed due to saving its indexdata
22033
+ RecyclebinDetailsComponent.prototype.onIndexDataSaved = function (formData, item) {
22034
+ var _this = this;
22035
+ if (!this.item) {
22036
+ this.indexDataPreview = null;
22037
+ this.baseparams = null;
22038
+ }
22039
+ if (!this.item2) {
22040
+ this.indexDataPreview2 = null;
22041
+ this.baseparams2 = null;
22042
+ }
22043
+ if (item) {
22044
+ this.prepareIndexDataPreview(item, formData)
22045
+ .subscribe(function (data) {
22046
+ if (item === _this.item) {
22047
+ _this.indexDataPreview = data.indexDataPreview;
22048
+ _this.baseparams = data.baseparams;
22049
+ }
22050
+ else {
22051
+ _this.indexDataPreview2 = data.indexDataPreview;
22052
+ _this.baseparams2 = data.baseparams;
22053
+ }
22054
+ });
22055
+ }
22056
+ };
22057
+ RecyclebinDetailsComponent.prototype.isVisible = function (id) {
22058
+ return this.panelOrder.master.includes(id) || this.panelOrder.slave.includes(id);
22059
+ };
22060
+ RecyclebinDetailsComponent.prototype.ngOnInit = function () {
22061
+ var _this = this;
22062
+ this.capabilities = this.capabilityService.getCapabilities();
22063
+ this.updateContent();
22064
+ this.eventService
22065
+ .on(i1.EnaioEvent.DMS_OBJECT_UPDATED)
22066
+ .pipe(operators.takeUntil(this.componentDestroyed$))
22067
+ .subscribe(function (event) {
22068
+ if (event.data && _this.item.id === event.data.id) {
22069
+ _this.dmsObject = _this.dmsService.createLocalCopyOfDMSObject(event.data);
22070
+ if (_this.preview && !_this.preview.disabled) {
22071
+ _this.preview.refresh();
22072
+ }
22073
+ }
22074
+ });
22075
+ };
22076
+ RecyclebinDetailsComponent.prototype.ngAfterViewInit = function () {
22077
+ var panels = this.tabPanels.toArray();
22078
+ this.tabPlugins.forEach(function (p) { return panels = panels.concat(p.tabPanels.toArray()); });
22079
+ this.externalPanels.reset(panels);
22080
+ };
22081
+ return RecyclebinDetailsComponent;
22082
+ }(UnsubscribeOnDestroy));
22083
+ RecyclebinDetailsComponent.decorators = [
22084
+ { type: i0.Component, args: [{
22085
+ selector: 'eo-recyclebin-details',
22086
+ 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",
22087
+ 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}"]
22088
+ },] }
22089
+ ];
22090
+ RecyclebinDetailsComponent.ctorParameters = function () { return [
22091
+ { type: i2.Router },
22092
+ { type: i2.ActivatedRoute },
22093
+ { type: i1.SystemService },
22094
+ { type: EmptyStateService },
22095
+ { type: i1.BackendService },
22096
+ { type: i1.UserService },
22097
+ { type: i1.NotificationsService },
22098
+ { type: i1.DmsService },
22099
+ { type: SelectionService },
22100
+ { type: i1.CapabilitiesService },
22101
+ { type: i1.EventService },
22102
+ { type: i1.Config },
22103
+ { type: i1.TranslateService }
22104
+ ]; };
22105
+ RecyclebinDetailsComponent.propDecorators = {
22106
+ preview: [{ type: i0.ViewChild, args: ['viewer',] }],
22107
+ confirmDeleteButton: [{ type: i0.ViewChild, args: ['confirmDelete',] }],
22108
+ cacheLayout: [{ type: i0.Input }],
22109
+ tabPanels: [{ type: i0.ContentChildren, args: [TabPanelComponent,] }],
22110
+ tabPlugins: [{ type: i0.ContentChildren, args: [TabPluginComponent,] }],
22111
+ applySelection: [{ type: i0.Input }],
22112
+ parseDmsParams: [{ type: i0.Input }],
22113
+ hasContent: [{ type: i0.Output }],
22114
+ emptyState: [{ type: i0.Input }],
22115
+ dmsParams: [{ type: i0.Input, args: ['params',] }],
22116
+ dmsObject: [{ type: i0.Input, args: ['item',] }],
22117
+ dataType: [{ type: i0.HostBinding, args: ['attr.data-type',] }]
22118
+ };
22119
+
21650
22120
  var ObjectDetailsModule = /** @class */ (function () {
21651
22121
  function ObjectDetailsModule() {
21652
22122
  }
@@ -21671,6 +22141,7 @@
21671
22141
  ],
21672
22142
  declarations: [
21673
22143
  ObjectDetailsComponent,
22144
+ RecyclebinDetailsComponent,
21674
22145
  ObjectHistoryComponent,
21675
22146
  ObjectLinksComponent,
21676
22147
  FavoriteIconComponent,
@@ -21678,7 +22149,7 @@
21678
22149
  HistoryFilterComponent,
21679
22150
  EditIconComponent
21680
22151
  ],
21681
- exports: [ObjectDetailsComponent, ObjectHistoryComponent, ObjectLinksComponent, FavoriteIconComponent, HistoryFilterPipe]
22152
+ exports: [ObjectDetailsComponent, RecyclebinDetailsComponent, ObjectHistoryComponent, ObjectLinksComponent, FavoriteIconComponent, HistoryFilterPipe]
21682
22153
  },] }
21683
22154
  ];
21684
22155
 
@@ -22775,8 +23246,17 @@
22775
23246
  _this.initPreparePhase(_this.PHASE_INDEXDATA);
22776
23247
  _this.uploadInProgress = false;
22777
23248
  }, i1.Utils.throw(function (error) {
22778
- _this.notification.error(null, error.error.cause.messages[0]);
23249
+ if (error.error && error.error.cause) {
23250
+ _this.notification.error(null, error.error.cause.messages[0]);
23251
+ }
23252
+ else if (error.error) {
23253
+ _this.notification.error(null, error.error.message);
23254
+ }
23255
+ else {
23256
+ _this.notification.error(_this.translate.instant('eo.prepare.created.error.title'));
23257
+ }
22779
23258
  _this.file.nativeElement.value = null;
23259
+ _this.committing = false;
22780
23260
  _this.uploadInProgress = false;
22781
23261
  }, this.translate.instant('eo.upload.global.error.title'), this.translate.instant('eo.upload.global.error.description')));
22782
23262
  };
@@ -24100,6 +24580,14 @@
24100
24580
  onExecuteAction: function () {
24101
24581
  _this.router.navigateByUrl('/stored-queries');
24102
24582
  }
24583
+ },
24584
+ {
24585
+ name: this.translate.instant('eo.view.navigation.recyclebin'),
24586
+ nameKey: 'eo.view.navigation.recyclebin',
24587
+ shortcut: '8',
24588
+ onExecuteAction: function () {
24589
+ _this.router.navigateByUrl('/recyclebin');
24590
+ }
24103
24591
  }
24104
24592
  ]
24105
24593
  };
@@ -25222,8 +25710,8 @@
25222
25710
  ];
25223
25711
  this.textFilterParams = { context: { defaultValue: '' } };
25224
25712
  this.sortFields = [
25225
- { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
25226
- { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' }
25713
+ { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
25714
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' }
25227
25715
  ];
25228
25716
  var sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
25229
25717
  this.gridOptions = {
@@ -25288,10 +25776,10 @@
25288
25776
  this.backend = backend;
25289
25777
  this.userService = userService;
25290
25778
  this.config = config;
25291
- 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" }];
25779
+ 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" }];
25292
25780
  this.ctrl = {
25293
25781
  componentName: 'yuuvis® RAD client',
25294
- componentVersion: '9.4.0',
25782
+ componentVersion: '9.6.0-rc.1',
25295
25783
  productName: '',
25296
25784
  productVersion: ''
25297
25785
  };
@@ -25956,9 +26444,9 @@
25956
26444
  ];
25957
26445
  this.textFilterParams = { context: { defaultValue: '' } };
25958
26446
  this.sortFields = [
26447
+ { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: '' },
25959
26448
  { field: 'info', headerName: this.translate.instant('eo.notifications.sort.title'), sort: '' },
25960
- { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: '' },
25961
- { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: '' }
26449
+ { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: '' }
25962
26450
  ];
25963
26451
  var sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
25964
26452
  this.gridOptions = {
@@ -26171,6 +26659,131 @@
26171
26659
  eoGrid: [{ type: i0.ViewChild, args: ['eoGrid',] }]
26172
26660
  };
26173
26661
 
26662
+ var RecyclebinStateComponent = /** @class */ (function (_super) {
26663
+ __extends(RecyclebinStateComponent, _super);
26664
+ function RecyclebinStateComponent(selection, translate, system, empty, pendingChanges, eventService, titleService, userService) {
26665
+ var _this = _super.call(this) || this;
26666
+ _this.selection = selection;
26667
+ _this.translate = translate;
26668
+ _this.system = system;
26669
+ _this.empty = empty;
26670
+ _this.pendingChanges = pendingChanges;
26671
+ _this.eventService = eventService;
26672
+ _this.titleService = titleService;
26673
+ _this.userService = userService;
26674
+ _this.inboxDmsObjectSelectionId = 'inbox_dms';
26675
+ _this.emptyState = EmptyStateService.defaultEmptyState();
26676
+ _this.showActionsMenu = true;
26677
+ _this.textFilterParams = {};
26678
+ _this.titleService.setBaseTitle(_this.translate.instant('eo.recyclebin.list.title'));
26679
+ _this.selection.createNew(_this.inboxDmsObjectSelectionId);
26680
+ _this.eventService
26681
+ .on(i1.EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED).pipe(operators.takeUntil(_this.componentDestroyed$))
26682
+ .subscribe(function () { return _this.refreshGrid(); });
26683
+ return _this;
26684
+ }
26685
+ Object.defineProperty(RecyclebinStateComponent.prototype, "hasContent", {
26686
+ get: function () {
26687
+ return this.showActionsMenu;
26688
+ },
26689
+ set: function (hasContent) {
26690
+ this.showActionsMenu = hasContent;
26691
+ },
26692
+ enumerable: false,
26693
+ configurable: true
26694
+ });
26695
+ RecyclebinStateComponent.prototype.hasPendingChanges = function () {
26696
+ return this.pendingChanges.hasPendingTask();
26697
+ };
26698
+ RecyclebinStateComponent.prototype.refreshGrid = function () {
26699
+ this.userService.getRecycleBin().subscribe();
26700
+ };
26701
+ RecyclebinStateComponent.prototype.parseDmsParams = function (data) {
26702
+ return data ? { id: data.id, type: data.type, recyclebin: true } : null;
26703
+ };
26704
+ RecyclebinStateComponent.prototype.typeFilters = function () {
26705
+ var data = this.gridData;
26706
+ var uniqueByType = SetFilterComponent.uniqBy(data, 'type', this.system.getObjectTypes());
26707
+ this.typeFilterFields = uniqueByType.map(function (t) { return Object.assign({
26708
+ label: t.label,
26709
+ value: true,
26710
+ filter: function (node) { return node.data === t.qname; },
26711
+ id: t.qname
26712
+ }); }).sort(i1.Utils.sortValues('label'));
26713
+ };
26714
+ RecyclebinStateComponent.prototype.resetFilters = function () {
26715
+ this.typeFilters();
26716
+ };
26717
+ RecyclebinStateComponent.prototype.updateGrid = function (data) {
26718
+ this.emptyState = this.empty.getEmptyState(data ? data.length : -1, undefined, 'ic_no-file.svg');
26719
+ if (this.eoGrid && this.eoGrid.isReady) {
26720
+ this.eoGrid.updateRowData(data);
26721
+ return this.resetFilters();
26722
+ }
26723
+ this.resetFilters();
26724
+ var colDefs = [{
26725
+ headerName: '',
26726
+ field: '__custom',
26727
+ cellRenderer: this.cellRenderer,
26728
+ filter: false
26729
+ }];
26730
+ this.textFilterParams = { context: { defaultValue: '' } };
26731
+ this.sortFields = [
26732
+ { field: 'recycled', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
26733
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
26734
+ { field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: '' }
26735
+ ];
26736
+ var sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
26737
+ this.gridOptions = {
26738
+ context: { count: data.length },
26739
+ rowData: data,
26740
+ columnDefs: colDefs.concat(sortColDefs),
26741
+ rowBuffer: 20,
26742
+ rowHeight: 80,
26743
+ };
26744
+ };
26745
+ RecyclebinStateComponent.prototype.cellRenderer = function (params) {
26746
+ var icon = params.context.cr.render('type', params, {
26747
+ value: params.data.type
26748
+ });
26749
+ var recycledTime = params.context.cr.render('dateTime', params, { value: params.data.recycled });
26750
+ return "<div class=\"list-item " + (params.data.folder ? 'folder' : '') + "\" unselectable>\n " + icon + "\n <div class=\"content\">\n <div class=\"title\">" + (params.data.title || '') + "</div>\n <div class=\"meta\">\n <div class=\"description\">\n " + params.data.description + "\n </div>\n <div class='description date'>\n <span class=\"period\">" + recycledTime + "</span>\n </div>\n </div>\n </div>\n </div>";
26751
+ };
26752
+ RecyclebinStateComponent.prototype.ngOnInit = function () {
26753
+ var _this = this;
26754
+ this.refreshGrid();
26755
+ this.userService.recyclesGridData$.pipe(operators.takeUntil(this.componentDestroyed$))
26756
+ .subscribe(function (data) {
26757
+ _this.gridData = data;
26758
+ _this.updateGrid(_this.gridData);
26759
+ });
26760
+ };
26761
+ RecyclebinStateComponent.prototype.ngOnDestroy = function () {
26762
+ this.selection.clear();
26763
+ };
26764
+ return RecyclebinStateComponent;
26765
+ }(UnsubscribeOnDestroy));
26766
+ RecyclebinStateComponent.decorators = [
26767
+ { type: i0.Component, args: [{
26768
+ selector: 'eo-recyclebin-state',
26769
+ 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",
26770
+ 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)}"]
26771
+ },] }
26772
+ ];
26773
+ RecyclebinStateComponent.ctorParameters = function () { return [
26774
+ { type: SelectionService },
26775
+ { type: i1$2.TranslateService },
26776
+ { type: i1.SystemService },
26777
+ { type: EmptyStateService },
26778
+ { type: PendingChangesService },
26779
+ { type: i1.EventService },
26780
+ { type: PageTitleService },
26781
+ { type: i1.UserService }
26782
+ ]; };
26783
+ RecyclebinStateComponent.propDecorators = {
26784
+ eoGrid: [{ type: i0.ViewChild, args: ['eoGrid',] }]
26785
+ };
26786
+
26174
26787
  // Configure applications main routes (e.g. 404).
26175
26788
  // Child routes will be added by the feature modules link inbox etc.
26176
26789
  var routes$1 = [
@@ -26183,6 +26796,7 @@
26183
26796
  { path: 'about', component: AboutStateComponent },
26184
26797
  { path: 'process', component: ProcessStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard] },
26185
26798
  { path: 'notifications', component: NotificationsStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard] },
26799
+ { path: 'recyclebin', component: RecyclebinStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard] },
26186
26800
  { path: 'versions/:id', component: VersionStateComponent, canActivate: [AuthGuard, UploadOverlayGuard] },
26187
26801
  // default route
26188
26802
  { path: '', redirectTo: 'dashboard', pathMatch: 'full' },
@@ -26248,7 +26862,7 @@
26248
26862
  var lastModified = null;
26249
26863
  if (res.hits.length) {
26250
26864
  size = res.hits.map(function (a) { return a.filesize || 0; }).reduce(function (acc, cur) { return acc + cur; });
26251
- lastModified = res.hits.sort(i1.Utils.sortValues('modified', 'desc')).slice(0, 10);
26865
+ lastModified = res.hits.sort(i1.Utils.sortValues('modified', 'desc')).slice(0, 100);
26252
26866
  }
26253
26867
  return {
26254
26868
  documentCount: { value: res.count.value },
@@ -26831,11 +27445,12 @@
26831
27445
  // cellRendererFramework: InboxRendererComponent
26832
27446
  }];
26833
27447
  this.sortFields = [
26834
- { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
26835
27448
  {
26836
27449
  field: 'received', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '',
26837
27450
  valueGetter: function (p) { return (p.data[p.colDef.field] || '').match(/\+\d\d:\d\d/) ? new Date(p.data[p.colDef.field]).toISOString() : p.data[p.colDef.field]; }
26838
- }
27451
+ },
27452
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
27453
+ { field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: '' }
26839
27454
  ];
26840
27455
  var sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
26841
27456
  this.gridOptions = {
@@ -26857,7 +27472,8 @@
26857
27472
  var shortDate = params.context.cr.render('dateTime', params, { value: params.data.received, pattern: 'eoShortDate' });
26858
27473
  var shortTime = params.context.cr.render('dateTime', params, { value: params.data.received, pattern: 'eoShortTime' });
26859
27474
  var duetime = params.context.cr.render('dateTime', params, { value: params.data.duetime });
26860
- return "<div class=\"list-item" + (params.data.folder ? ' folder' : '') + "\" unselectable>\n " + icon + "\n <div class='content'>\n <div class='title'>" + (params.data.title || '') + "</div>\n <div class='description'>" + (params.data.description || '') + "</div>\n <div class='notes" + (params.data.isOverdue() ? ' pastDue' : '') + "'>\n " + (params.data.duetime ? '<span class="period">' + duetime + '</span>' : '') + "\n " + (params.data.isdeputy ? '<span>' + params.context.translate.instant('eo.inbox.item.note.absence') + '</span>' : '') + "\n </div>\n </div>\n <div class=\"meta\">\n <div class=\"date\">" + shortDate + "</div>\n <div class=\"date\">" + shortTime + "</div>\n </div>\n </div>\n ";
27475
+ var titleClass = params.data.accepted ? 'title' : 'title-bold';
27476
+ return "<div class=\"list-item" + (params.data.folder ? ' folder' : '') + "\" unselectable>\n " + icon + "\n <div class='content'>\n <div class='" + titleClass + "'>" + (params.data.title || '') + "</div>\n <div class='description'>" + (params.data.description || '') + "</div>\n <div class='notes" + (params.data.isOverdue() ? ' pastDue' : '') + "'>\n " + (params.data.duetime ? '<span class="period">' + duetime + '</span>' : '') + "\n " + (params.data.isdeputy ? '<span>' + params.context.translate.instant('eo.inbox.item.note.absence') + '</span>' : '') + "\n </div>\n </div>\n <div class=\"meta\">\n <div class=\"date\">" + shortDate + "</div>\n <div class=\"date\">" + shortTime + "</div>\n </div>\n </div>\n ";
26861
27477
  };
26862
27478
  InboxStateComponent.prototype.ngOnInit = function () {
26863
27479
  var _this = this;
@@ -26887,7 +27503,7 @@
26887
27503
  { type: i0.Component, args: [{
26888
27504
  selector: 'eo-inbox-state',
26889
27505
  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",
26890
- 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}"]
27506
+ 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}"]
26891
27507
  },] }
26892
27508
  ];
26893
27509
  InboxStateComponent.ctorParameters = function () { return [
@@ -27005,8 +27621,8 @@
27005
27621
  }
27006
27622
  ];
27007
27623
  this.sortFields = [
27008
- { field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' },
27009
- { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' }
27624
+ { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: '' },
27625
+ { field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: '' }
27010
27626
  ];
27011
27627
  var sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
27012
27628
  this.gridOptions = {
@@ -27145,7 +27761,8 @@
27145
27761
  AboutStateComponent,
27146
27762
  StoredQueriesStateComponent,
27147
27763
  ProcessStateComponent,
27148
- VersionStateComponent
27764
+ VersionStateComponent,
27765
+ RecyclebinStateComponent
27149
27766
  ],
27150
27767
  exports: [i2.RouterModule, EoFrameworkModule]
27151
27768
  },] }
@@ -27402,17 +28019,21 @@
27402
28019
  exports.ɵck = SimpleWorkflowActionComponent;
27403
28020
  exports.ɵcl = SignatureActionComponent;
27404
28021
  exports.ɵcm = SignatureComponent;
27405
- exports.ɵcn = FavoriteActionComponent;
27406
- exports.ɵco = PreventDoubleClickDirective;
27407
- exports.ɵcp = EditIconComponent;
27408
- exports.ɵcq = DuetimeInfoComponent;
27409
- exports.ɵcr = PrepareContentExistsInfoComponent;
27410
- exports.ɵcs = ObjectStateRoutingModule;
27411
- exports.ɵct = InboxStateRoutingModule;
27412
- exports.ɵcu = PrepareStateRoutingModule;
27413
- exports.ɵcv = EoClientRoutingModule;
27414
- exports.ɵcw = ProcessStateComponent;
28022
+ exports.ɵcn = CancelSigningActionComponent;
28023
+ exports.ɵco = CancelSigningComponent;
28024
+ exports.ɵcp = FavoriteActionComponent;
28025
+ exports.ɵcq = PreventDoubleClickDirective;
28026
+ exports.ɵcr = RecyclebinDetailsComponent;
28027
+ exports.ɵcs = EditIconComponent;
28028
+ exports.ɵct = DuetimeInfoComponent;
28029
+ exports.ɵcu = PrepareContentExistsInfoComponent;
28030
+ exports.ɵcv = ObjectStateRoutingModule;
28031
+ exports.ɵcw = InboxStateRoutingModule;
28032
+ exports.ɵcx = PrepareStateRoutingModule;
28033
+ exports.ɵcy = EoClientRoutingModule;
28034
+ exports.ɵcz = ProcessStateComponent;
27415
28035
  exports.ɵd = AppProcessComponent;
28036
+ exports.ɵda = RecyclebinStateComponent;
27416
28037
  exports.ɵe = PipesModule;
27417
28038
  exports.ɵf = UnsubscribeOnDestroy;
27418
28039
  exports.ɵg = QueryScopeSelectComponent;