@eo-sdk/client 8.16.0-rc.1 → 8.16.0-rc.3

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 (41) hide show
  1. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts +4 -5
  2. package/app/eo-framework/app-shell/app-bar/app-process/app-process.component.d.ts +7 -1
  3. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +6 -5
  4. package/app/eo-framework/prepare-details/prepare-details.component.d.ts +4 -2
  5. package/app/eo-framework/process-form/process-form.component.d.ts +2 -0
  6. package/assets/_default/i18n/de.json +3 -3
  7. package/assets/_default/i18n/en.json +2 -2
  8. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +6 -6
  9. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  10. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +1 -1
  11. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  12. package/bundles/eo-sdk-client.umd.js +74 -33
  13. package/bundles/eo-sdk-client.umd.js.map +1 -1
  14. package/bundles/eo-sdk-client.umd.min.js +1 -1
  15. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  16. package/eo-sdk-client.d.ts +3 -3
  17. package/eo-sdk-client.metadata.json +1 -1
  18. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  19. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +16 -8
  20. package/esm2015/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.js +2 -2
  21. package/esm2015/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.js +2 -2
  22. package/esm2015/app/eo-framework/app-shell/app-bar/app-process/app-process.component.js +26 -4
  23. package/esm2015/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.js +2 -2
  24. package/esm2015/app/eo-framework/inbox-details/inbox-details.component.js +13 -11
  25. package/esm2015/app/eo-framework/media/media.component.js +4 -3
  26. package/esm2015/app/eo-framework/prepare-details/prepare-details.component.js +10 -5
  27. package/esm2015/app/eo-framework/process-form/process-form.component.js +5 -2
  28. package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +2 -2
  29. package/esm2015/app/eo-framework/ui/outside-click/outside-click.directive.js +3 -2
  30. package/esm2015/eo-sdk-client.js +4 -4
  31. package/esm2015/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.js +1 -1
  32. package/esm2015/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.js +2 -1
  33. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +5 -6
  34. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +5 -5
  35. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  36. package/fesm2015/eo-sdk-client.js +72 -31
  37. package/fesm2015/eo-sdk-client.js.map +1 -1
  38. package/package.json +2 -2
  39. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts +4 -0
  40. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +2 -2
  41. package/projects/eo-sdk/core/package.json +1 -1
@@ -3593,7 +3593,8 @@
3593
3593
  }
3594
3594
  };
3595
3595
  OutsideClickDirective.prototype.onClick = function (event, targetElement) {
3596
- if (this.active && !this._elementRef.nativeElement.contains(targetElement)) {
3596
+ var overlayContainer = document.querySelector('.cdk-overlay-container');
3597
+ if (this.active && !this._elementRef.nativeElement.contains(targetElement) && overlayContainer ? !overlayContainer.contains(targetElement) : false) {
3597
3598
  this.onOutsideEvent(event);
3598
3599
  }
3599
3600
  };
@@ -4224,7 +4225,7 @@
4224
4225
  // this.overlayRef.addPanelClass("example-overlay");
4225
4226
  this.overlayRef.attach(portal$1);
4226
4227
  this.overlayRef.backdropClick().subscribe(function (_) {
4227
- _this.visible = false;
4228
+ _this.closeDialog();
4228
4229
  });
4229
4230
  };
4230
4231
  EoDialogComponent.prototype.getPositionStrategy = function () {
@@ -5542,11 +5543,13 @@
5542
5543
  * Component rendering the app-bar action of starting executable processes.
5543
5544
  */
5544
5545
  var AppProcessComponent = /** @class */ (function () {
5545
- function AppProcessComponent(router, toaster, translate, bpmService) {
5546
+ function AppProcessComponent(router, toaster, translate, bpmService, pendingChanges) {
5546
5547
  this.router = router;
5547
5548
  this.toaster = toaster;
5548
5549
  this.translate = translate;
5549
5550
  this.bpmService = bpmService;
5551
+ this.pendingChanges = pendingChanges;
5552
+ this.pendingTaskIds = [];
5550
5553
  }
5551
5554
  AppProcessComponent.prototype.close = function (evt) {
5552
5555
  this.router.navigate([{ outlets: { modal: null } }], { replaceUrl: true });
@@ -5602,6 +5605,24 @@
5602
5605
  AppProcessComponent.prototype.cancelDialog = function () {
5603
5606
  this.processForm = null;
5604
5607
  };
5608
+ AppProcessComponent.prototype.startPending = function () {
5609
+ // because this method will be called every time the form status changes,
5610
+ // pending task will only be started once until it was finished
5611
+ if (!this.pendingChanges.hasPendingTask(this.pendingTaskIds[0] || ' ')) {
5612
+ this.pendingTaskIds = [this.pendingChanges.startTask()];
5613
+ }
5614
+ };
5615
+ AppProcessComponent.prototype.finishPending = function () {
5616
+ this.pendingChanges.finishTask(this.pendingTaskIds[0]);
5617
+ };
5618
+ AppProcessComponent.prototype.onIndexDataChanged = function (event) {
5619
+ if (event.dirty) {
5620
+ this.startPending();
5621
+ }
5622
+ else {
5623
+ this.finishPending();
5624
+ }
5625
+ };
5605
5626
  AppProcessComponent.prototype.ngOnInit = function () {
5606
5627
  var _this = this;
5607
5628
  this.bpmService.getExecutableProcesses(null, true)
@@ -5612,7 +5633,7 @@
5612
5633
  AppProcessComponent.decorators = [
5613
5634
  { type: i0.Component, args: [{
5614
5635
  selector: 'eo-app-process',
5615
- template: "<eo-dialog [title]=\"'eo.bar.button.execute.actions.tooltip' | translate\"\r\n [visible]=\"true\"\r\n [minWidth]=\"400\"\r\n [styleClass]=\"'more-actions'\"\r\n (hide)=\"close($event)\">\r\n\r\n <section *ngIf=\"processes?.length; else loading\">\r\n\r\n <div class=\"process-item\" *ngFor=\"let process of processes\" (click)=\"selectProcess(process)\">\r\n <eo-icon [iconId]=\"process.iconid\" *ngIf=\"process.iconid; else defaulticon\"></eo-icon>\r\n <ng-template #defaulticon><eo-icon [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon></ng-template>\r\n <div class=\"pi-content\">\r\n <div class=\"title\">{{process.title}}</div>\r\n <div class=\"description\">{{process.description}}</div>\r\n </div>\r\n </div>\r\n\r\n </section>\r\n\r\n <ng-container *ngIf=\"!processForm; else tplProcessForm\" class=\"select-process\"></ng-container>\r\n\r\n <ng-template #loading>\r\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\r\n </ng-template>\r\n\r\n\r\n <ng-template #tplProcessForm>\r\n\r\n <eo-dialog [title]=\"selectedProcess?.title\"\r\n [subtitle]=\"selectedProcess?.description\"\r\n [visible]=\"true\"\r\n [minWidth]=\"1000\"\r\n [minHeight]=\"630\"\r\n [styleClass]=\"'process-form-dialog'\"\r\n (hide)=\"cancelDialog()\" #dialog>\r\n\r\n <eo-process-form [formOptions]=\"processForm\"\r\n (onResetForm)=\"formReset($event)\"\r\n (onCancel)=\"(dialog.visible = false)\"\r\n (onSaveForm)=\"startProcessWithFormData($event)\">\r\n </eo-process-form>\r\n </eo-dialog>\r\n </ng-template>\r\n\r\n</eo-dialog>\r\n",
5636
+ template: "<eo-dialog [title]=\"'eo.bar.button.execute.actions.tooltip' | translate\"\r\n [visible]=\"true\"\r\n [minWidth]=\"400\"\r\n [styleClass]=\"'more-actions'\"\r\n (hide)=\"close($event)\">\r\n\r\n <section *ngIf=\"processes?.length; else loading\">\r\n\r\n <div class=\"process-item\" *ngFor=\"let process of processes\" (click)=\"selectProcess(process)\">\r\n <eo-icon [iconId]=\"process.iconid\" *ngIf=\"process.iconid; else defaulticon\"></eo-icon>\r\n <ng-template #defaulticon><eo-icon [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon></ng-template>\r\n <div class=\"pi-content\">\r\n <div class=\"title\">{{process.title}}</div>\r\n <div class=\"description\">{{process.description}}</div>\r\n </div>\r\n </div>\r\n\r\n </section>\r\n\r\n <ng-container *ngIf=\"!processForm; else tplProcessForm\" class=\"select-process\"></ng-container>\r\n\r\n <ng-template #loading>\r\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\r\n </ng-template>\r\n\r\n\r\n <ng-template #tplProcessForm>\r\n\r\n <eo-dialog [title]=\"selectedProcess?.title\"\r\n [subtitle]=\"selectedProcess?.description\"\r\n [visible]=\"true\"\r\n [dirtyCheck]=\"pendingTaskIds\"\r\n [minWidth]=\"1000\"\r\n [minHeight]=\"630\"\r\n [styleClass]=\"'process-form-dialog'\"\r\n (hide)=\"cancelDialog()\" #dialog>\r\n\r\n <eo-process-form [formOptions]=\"processForm\"\r\n (onResetForm)=\"formReset($event)\"\r\n (onCancel)=\"(dialog.visible = false)\"\r\n (onSaveForm)=\"startProcessWithFormData($event)\"\r\n (statusChanged)=\"onIndexDataChanged($event)\">\r\n </eo-process-form>\r\n </eo-dialog>\r\n </ng-template>\r\n\r\n</eo-dialog>\r\n",
5616
5637
  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)}"]
5617
5638
  },] }
5618
5639
  ];
@@ -5620,7 +5641,8 @@
5620
5641
  { type: i2.Router },
5621
5642
  { type: i1.NotificationsService },
5622
5643
  { type: i1.TranslateService },
5623
- { type: i1.BpmService }
5644
+ { type: i1.BpmService },
5645
+ { type: PendingChangesService }
5624
5646
  ]; };
5625
5647
 
5626
5648
  var routes = [
@@ -6866,7 +6888,7 @@
6866
6888
  var DatepickerComponent = /** @class */ (function () {
6867
6889
  function DatepickerComponent(translate, datepickerService) {
6868
6890
  this.datepickerService = datepickerService;
6869
- this.maxYear = 99999;
6891
+ this.maxYear = 9999;
6870
6892
  this.minYear = 0;
6871
6893
  // ngModel for the year input
6872
6894
  // ngModel for the time inputs
@@ -15723,6 +15745,7 @@
15723
15745
  };
15724
15746
  MediaComponent.prototype.toogleViewer = function () {
15725
15747
  this.open = !this.disabled && !!this.previewUri;
15748
+ this.undockDisabled = this.previewUri === '';
15726
15749
  if (this.undockDisabled) {
15727
15750
  this.isUndocked = false;
15728
15751
  }
@@ -15817,7 +15840,7 @@
15817
15840
  }
15818
15841
  }
15819
15842
  else if (!src && !this.undockWin.document.querySelector('#no-file')) {
15820
- this.undockWin.document.write("<div id=\"no-file\" style=\"opacity: 0.06; display: flex; height: 100%; width: 100%; align-items: center; justify-content: center;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"128\" height=\"128\" viewBox=\"0 0 48 48\">\n <path d=\"M29 4H14.6c-.8 0-1.5.2-2 .6l27.2 27.2v-17L29 4zm-.7 11.6V7.8l7.8 7.8h-7.8zM43.4 40.8l-2.5 2.5-3.5-3.5c-.4.1-.8.2-1.2.2H14.6c-2 \n 0-3.6-1.6-3.6-3.6V13.5L5.9 8.4l2.5-2.5L11 8.4l28.7 28.7 3.1 3.1.6.6z\"/>\n </svg>\n <div>");
15843
+ this.undockWin.document.write("<div id=\"no-file\" style=\"opacity: 0.06; display: flex; height: 100%; width: 100%; align-items: center; justify-content: center;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"128\" height=\"128\" viewBox=\"0 0 48 48\">\n <path d=\"M29 4H14.6c-.8 0-1.5.2-2 .6l27.2 27.2v-17L29 4zm-.7 11.6V7.8l7.8 7.8h-7.8zM43.4 40.8l-2.5 2.5-3.5-3.5c-.4.1-.8.2-1.2.2H14.6c-2\n 0-3.6-1.6-3.6-3.6V13.5L5.9 8.4l2.5-2.5L11 8.4l28.7 28.7 3.1 3.1.6.6z\"/>\n </svg>\n <div>");
15821
15844
  }
15822
15845
  };
15823
15846
  MediaComponent.prototype.loadDocument = function (uri, force) {
@@ -15914,7 +15937,7 @@
15914
15937
  var win = _this.setApi(iframe);
15915
15938
  onload && onload();
15916
15939
  setTimeout(function () {
15917
- // this.loading = false;
15940
+ // this.loading = false;
15918
15941
  _this.searchPDF(_this.searchTerm, win);
15919
15942
  _this.preventDropEvent(win);
15920
15943
  }, 100);
@@ -17596,7 +17619,7 @@
17596
17619
  AddSubscriptionActionComponent.prototype.isExecutable = function (element) {
17597
17620
  var hasPrivilege = this.userService.getCurrentUser().hasPrivilege('MANAGE_SUBSCRIPTIONS');
17598
17621
  var isAllowedType = this.actionService.isAllowedType([element], ['sysemail']);
17599
- if (hasPrivilege && this.isAllowedState() && isAllowedType) {
17622
+ if (hasPrivilege && this.isAllowedState() && isAllowedType && !element.isFinalized) {
17600
17623
  return rxjs.of(!element.subscriptions.length);
17601
17624
  }
17602
17625
  else {
@@ -17890,7 +17913,7 @@
17890
17913
  AddResubmissionActionComponent.prototype.isExecutable = function (element) {
17891
17914
  var hasPrivilege = this.userService.getCurrentUser().hasPrivilege('MANAGE_RESUBMISSIONS');
17892
17915
  var isAllowedType = this.actionService.isAllowedType([element], ['sysemail']);
17893
- if (hasPrivilege && this.isAllowedState() && isAllowedType) {
17916
+ if (hasPrivilege && this.isAllowedState() && isAllowedType && !element.isFinalized) {
17894
17917
  return rxjs.of(!element.resubmissions.length);
17895
17918
  }
17896
17919
  else {
@@ -18273,6 +18296,7 @@
18273
18296
  this.onSaveForm = new i0.EventEmitter();
18274
18297
  this.onResetForm = new i0.EventEmitter();
18275
18298
  this.onCancel = new i0.EventEmitter();
18299
+ this.statusChanged = new i0.EventEmitter();
18276
18300
  }
18277
18301
  ProcessFormComponent.prototype.saveForm = function () {
18278
18302
  var _this = this;
@@ -18289,6 +18313,7 @@
18289
18313
  ProcessFormComponent.prototype.onIndexDataChanged = function (event) {
18290
18314
  this.form = event;
18291
18315
  this.formData = event.data;
18316
+ this.statusChanged.emit(event);
18292
18317
  };
18293
18318
  return ProcessFormComponent;
18294
18319
  }());
@@ -18304,7 +18329,8 @@
18304
18329
  formOptions: [{ type: i0.Input }],
18305
18330
  onSaveForm: [{ type: i0.Output }],
18306
18331
  onResetForm: [{ type: i0.Output }],
18307
- onCancel: [{ type: i0.Output }]
18332
+ onCancel: [{ type: i0.Output }],
18333
+ statusChanged: [{ type: i0.Output }]
18308
18334
  };
18309
18335
 
18310
18336
  var ProcessFormModule = /** @class */ (function () {
@@ -21915,7 +21941,7 @@
21915
21941
 
21916
21942
  var PrepareDetailsComponent = /** @class */ (function (_super) {
21917
21943
  __extends(PrepareDetailsComponent, _super);
21918
- function PrepareDetailsComponent(prepareService, router, pendingChanges, translate, notification, systemService, selection, backend) {
21944
+ function PrepareDetailsComponent(prepareService, router, pendingChanges, translate, notification, systemService, selection, backend, capabilites) {
21919
21945
  var _this = _super.call(this) || this;
21920
21946
  _this.prepareService = prepareService;
21921
21947
  _this.router = router;
@@ -21925,6 +21951,7 @@
21925
21951
  _this.systemService = systemService;
21926
21952
  _this.selection = selection;
21927
21953
  _this.backend = backend;
21954
+ _this.capabilites = capabilites;
21928
21955
  // preparation is divided into several phases
21929
21956
  // select an object type
21930
21957
  _this.PHASE_TYPE = 'type';
@@ -22381,6 +22408,9 @@
22381
22408
  }
22382
22409
  }
22383
22410
  };
22411
+ PrepareDetailsComponent.prototype.hasTemplateCapability = function () {
22412
+ return this.capabilites.hasCapability('template');
22413
+ };
22384
22414
  PrepareDetailsComponent.prototype.trackByIdFn = function (index, item) {
22385
22415
  return item.id;
22386
22416
  };
@@ -22409,7 +22439,7 @@
22409
22439
  PrepareDetailsComponent.decorators = [
22410
22440
  { type: i0.Component, args: [{
22411
22441
  selector: 'eo-prepare-details',
22412
- template: "<div class=\"prepareDetails__wrapper\" *ngIf=\"!loading; else mainSpinner\">\r\n <section class=\"prepareDetails\" *ngIf=\"preparedItem && preparePhase; else noItem\"\r\n [ngClass]=\"{multifile: preparedItem.contentcount > 1, committing: committing}\">\r\n <div class=\"eo-head\">\r\n\r\n <div class=\"header-info\">\r\n <div class=\"header-title\">{{header.title}}</div>\r\n <div class=\"header-sub-title h-location\" *ngIf=\"!header.location.link; else linked\">{{header.location.label}}\r\n </div>\r\n <div class=\"header-sub-title h-subtitle\">{{header.subtitle}}</div>\r\n\r\n <ng-template #linked>\r\n <div class=\"header-sub-title h-subtitle-detailed\">\r\n <span translate>eo.prepare.location.title.prefix</span>\r\n <a [routerLink]=\"header.location.link\">{{header.location.label}}</a>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <eo-icon class=\"btn btn-download\"\r\n *ngIf=\"preparePhase.name === 'content' ? selectedTemplateFile : preparePhase.data.previewFile\"\r\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\r\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\" (click)=\"download()\"></eo-icon>\r\n <eo-icon class=\"btn btn-delete\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\r\n (click)=\"showDeleteDialog = true;\"></eo-icon>\r\n <!-- buttons while choosing a template -->\r\n <ng-container *ngIf=\"chooseTemplate\">\r\n <button class=\"btn-tpl-abort\" (click)=\"showTemplateSelector(false)\"\r\n translate>eo.prepare.template.abort</button>\r\n <button class=\"primary btn-tpl-apply\" (click)=\"addTemplate(selectedTemplate)\" [disabled]=\"!selectedTemplate\"\r\n translate>eo.prepare.template.select</button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"preparePhase.name === 'indexdata'\">\r\n <button (click)=\"commit()\" class=\"btn-idx-save\"\r\n [ngClass]=\"{primary: preparedItem.state.parentisroot && preparedItem.contentcount > 1}\"\r\n [disabled]=\"formState?.invalid || committing\" translate>eo.prepare.save</button>\r\n\r\n <button (click)=\"commit(true)\" [disabled]=\"formState?.invalid || committing\" class=\"primary btn-idx-saveopen\"\r\n [hidden]=\"preparedItem?.state.parentisroot && preparedItem?.contentcount > 1\"\r\n translate>eo.prepare.saveopen</button>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"eo-body\" [ngSwitch]=\"preparePhase.name\" *ngIf=\"!committing; else spinner\">\r\n\r\n <!-- PHASE TYPE -->\r\n <div class=\"phase type\" *ngSwitchCase=\"'type'\">\r\n\r\n <!-- with preview -->\r\n <eo-split [gutterSize]=\"16\" [gutterColor]=\"'#fff'\" [visibleTransition]=\"true\"\r\n *ngIf=\"preparePhase.data.previewFile; else nopreview\" [cacheLayout]=\"'prepare.details.phase.type'\">\r\n <eo-split-area [size]=\"30\">\r\n\r\n <div class=\"form-files\">\r\n <div class=\"object-type-select empty\" *ngIf=\"preparedItem.types.length == 0\" translate>\r\n eo.prepare.details.type.empty</div>\r\n <div class=\"object-type-select empty\"\r\n *ngIf=\"!preparedItem.state.typeselectedallowed && preparedItem.state.typeselected\"\r\n [translateParams]=\"{type: preparedItem.selectedtype.label, filename: getFileNames(preparedItem)}\"\r\n translate>eo.prepare.details.type.notallowed</div>\r\n\r\n <div class=\"object-type-select\">\r\n <div class=\"object-type\" *ngFor=\"let type of preparedItem.types; trackBy: trackByIdFn\"\r\n (click)=\"selectObjectType(type)\">\r\n <div class=\"type-icon\">\r\n <eo-icon [iconId]=\"type.icon.id\"></eo-icon>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">{{type.label}}</div>\r\n <div class=\"description\">{{type.description}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"content-select\">\r\n <h2 translate>eo.prepare.details.contents.title</h2>\r\n <div class=\"content\"\r\n *ngFor=\"let content of preparedItem.contents; trackBy: trackByIndexFn; index as idx;\"\r\n [ngClass]=\"{selected: preparePhase.data.previewIndex == idx}\" (click)=\"setPreviewUri(idx)\">\r\n <span>{{content.path}}</span>\r\n <eo-icon class=\"btn btn-delete-content\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\r\n (click)=\"showContentDeleteDialog = true; deletedContentIndex = idx;\"></eo-icon>\r\n <div *ngIf=\"content.existscount > 0\" class=\"attention\" title=\"{{'eo.prepare.content.existscount.message'|translate: ({count: content.existscount})}}\">!</div>\r\n </div>\r\n </div>\r\n </div>\r\n </eo-split-area>\r\n <eo-split-area [size]=\"70\">\r\n <div class=\"eo-media-wrap\">\r\n <eo-prepare-content-exists-info [content]=\"preparedItem.contents[preparePhase.data.previewIndex]\">\r\n </eo-prepare-content-exists-info>\r\n <eo-media [previewFile]=\"preparePhase.data.previewFile\"></eo-media>\r\n </div>\r\n </eo-split-area>\r\n </eo-split>\r\n\r\n <!-- without preview -->\r\n <ng-template #nopreview>\r\n <div class=\"form-files\">\r\n <div class=\"object-type-select\">\r\n <div class=\"object-type\" *ngFor=\"let type of preparedItem.types; trackBy: trackByIdFn\"\r\n (click)=\"selectObjectType(type)\">\r\n <div class=\"type-icon\">\r\n <eo-icon [iconId]=\"type.icon.id\"></eo-icon>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">{{type.label}}</div>\r\n <div class=\"description\">{{type.description}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <!-- PHASE CONTENT -->\r\n <div class=\"phase content\" *ngSwitchCase=\"'content'\">\r\n\r\n <!-- panel for selecting a template to be used as items content -->\r\n <eo-split [gutterSize]=\"16\" [gutterColor]=\"'#fff'\" [visibleTransition]=\"true\"\r\n *ngIf=\"chooseTemplate; else attach\" [cacheLayout]=\"'prepare.details.phase.content'\">\r\n <eo-split-area [size]=\"40\">\r\n\r\n <!-- list of available templates -->\r\n <eo-list-container #eoList [loading]=\"false\" class=\"templates\">\r\n <div class=\"eo-header\">\r\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_template.svg'\"></eo-icon>\r\n <div class=\"eo-header-info\">\r\n <div class=\"eo-header-title\" translate>eo.prepare.template.list.title</div>\r\n </div>\r\n <div class=\"eo-header-actions\">\r\n\r\n <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconClass]=\"'primary'\"\r\n class=\"overlay-filter\" [title]=\"'eo.list.filter' | translate\"\r\n (active)=\"oFilter.onActiveChanged($event)\">\r\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n (active)=\"oFilter.onActiveChanged($event)\">\r\n <eo-text-filter [title]=\"'eo.prepare.template.filter.text.title' | translate\"\r\n [matchFields]=\"['title', 'description', 'tags']\"\r\n [placeholder]=\"'eo.prepare.template.filter.text.title'\"></eo-text-filter>\r\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.prepare.template.filter.set.title' | translate\"\r\n *ngIf=\"tagFilterOptions?.length\" [options]=\"tagFilterOptions\"></eo-set-filter>\r\n </eo-custom-filter>\r\n </eo-overlay>\r\n\r\n </div>\r\n </div>\r\n <div class=\"eo-body\">\r\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\"\r\n [showHeader]=\"true\" [showFooter]=\"false\" [selectionLimit]=\"1\"\r\n (eoGridSelectionChanged)=\"selectTemplate($event[0])\">\r\n </eo-grid>\r\n </div>\r\n </eo-list-container>\r\n\r\n </eo-split-area>\r\n <eo-split-area [size]=\"60\">\r\n\r\n <!-- preview of selected template -->\r\n <eo-media [previewFile]=\"selectedTemplateFile\"></eo-media>\r\n\r\n </eo-split-area>\r\n </eo-split>\r\n\r\n <!-- add content general overview (upload, template, none) -->\r\n <ng-template #attach>\r\n\r\n <div class=\"info\" *ngIf=\"!uploadInProgress\" translate>eo.prepare.attachment.info</div>\r\n <input type=\"file\" #file (change)=\"fileChangeListener($event.target.files)\">\r\n\r\n <div class=\"attachments\" *ngIf=\"!uploadInProgress; else uploadspinner\">\r\n\r\n <!-- upload a file -->\r\n <div class=\"attachment att-file\" *ngIf=\"preparePhase.data.file\" (click)=\"upload()\">\r\n <div class=\"img\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_file_upload.svg'\"></eo-icon>\r\n </div>\r\n <h3 translate>eo.prepare.attachment.upload.title</h3>\r\n <p translate>eo.prepare.attachment.upload.desc</p>\r\n </div>\r\n\r\n <!-- select a template -->\r\n <div class=\"attachment att-tmpl\" *ngIf=\"preparePhase.data.templates.length > 0\"\r\n (click)=\"showTemplateSelector(true)\">\r\n <div class=\"img\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_prepare_add.svg'\"></eo-icon>\r\n </div>\r\n <h3 translate>eo.prepare.attachment.template.title</h3>\r\n <p translate>eo.prepare.attachment.template.desc</p>\r\n </div>\r\n\r\n <!-- no file -->\r\n <div class=\"attachment att-none\" *ngIf=\"preparePhase.data.withoutFile\" (click)=\"noFile()\">\r\n <div class=\"img\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\r\n </div>\r\n <h3 translate>eo.prepare.attachment.nofile.title</h3>\r\n <p translate>eo.prepare.attachment.nofile.desc</p>\r\n </div>\r\n\r\n </div>\r\n\r\n </ng-template>\r\n\r\n <!-- upload progress indicator -->\r\n <ng-template #uploadspinner>\r\n <div class=\"upload-indicator\">\r\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <!-- PHASE INDEXDATA -->\r\n <div class=\"phase indexdata\" *ngSwitchCase=\"'indexdata'\">\r\n\r\n <!-- form and preview -->\r\n <eo-split [gutterSize]=\"16\" [gutterColor]=\"'#fff'\" [visibleTransition]=\"true\"\r\n *ngIf=\"preparePhase.data.previewFile; else justform\" [cacheLayout]=\"'prepare.details.phase.indexdata'\">\r\n <eo-split-area [size]=\"50\">\r\n\r\n <div class=\"form-files\">\r\n\r\n <!-- indexdata form -->\r\n <ng-container *ngTemplateOutlet=\"justform\"></ng-container>\r\n\r\n <!-- list of contents (in case of bulk upload) that can be previewed -->\r\n <div class=\"content-select\">\r\n\r\n <h2 translate>eo.prepare.details.contents.title</h2>\r\n <div class=\"content\"\r\n *ngFor=\"let content of preparedItem.contents; trackBy: trackByIndexFn; index as idx\"\r\n [ngClass]=\"{selected: preparePhase.data.previewIndex === idx}\" (click)=\"setPreviewUri(idx)\">\r\n {{content.path}} <span *ngIf=\"content.existscount > 0\" class=\"attention\" title=\"{{'eo.prepare.content.existscount.message'|translate: ({count: content.existscount})}}\">!</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </eo-split-area>\r\n <eo-split-area [size]=\"50\">\r\n <div class=\"eo-media-wrap\">\r\n <eo-prepare-content-exists-info [content]=\"preparedItem.contents[preparePhase.data.previewIndex]\">\r\n </eo-prepare-content-exists-info>\r\n <eo-media [previewFile]=\"preparePhase.data.previewFile\"></eo-media>\r\n </div>\r\n </eo-split-area>\r\n </eo-split>\r\n\r\n <!-- just the form -->\r\n <ng-template #justform>\r\n <div class=\"form-container situation-create\" *ngIf=\"formOptions\">\r\n <eo-object-form #form [formOptions]=\"formOptions\" (statusChanged)=\"onFormStatusChanged($event)\">\r\n </eo-object-form>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </section>\r\n\r\n <ng-template #spinner>\r\n <div class=\"eo-body\">\r\n <eo-loading-spinner size=\"medium\"></eo-loading-spinner>\r\n </div>\r\n </ng-template>\r\n\r\n</div>\r\n\r\n<ng-template #mainSpinner>\r\n <div class=\"prepareDetails__main-spinner\">\r\n <eo-loading-spinner size=\"medium\"></eo-loading-spinner>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<ng-template #noItem>\r\n <eo-error-message [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\r\n <ng-content select=\".error\"></ng-content>\r\n </eo-error-message>\r\n</ng-template>\r\n\r\n<eo-dialog [title]=\"'eo.prepare.details.delete.dialog.title' | translate\"\r\n [(visible)]=\"showDeleteDialog\" [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'prepare-delete__dialog'\">\r\n\r\n<div>{{'eo.prepare.details.delete.dialog.message' | translate}}</div>\r\n\r\n <div class=\"action-buttons prepare-delete--action-buttons flex-row\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n translate>eo.prepare.details.delete.dialog.cancel</button>\r\n <button type=\"button\" #confirmDelete (click)=\"removeItem(preparedItem)\" class=\"button primary\"\r\n translate>eo.prepare.details.delete.dialog.ok</button>\r\n </div>\r\n</eo-dialog>\r\n\r\n<eo-dialog [title]=\"'eo.prepare.details.delete.content.dialog.title' | translate\"\r\n [(visible)]=\"showContentDeleteDialog\" [minWidth]=\"400\" [styleClass]=\"'prepare-delete__dialog'\">\r\n\r\n<div>{{'eo.prepare.details.delete.content.dialog.message' | translate: ({contentPath: preparedItem?.contents ? preparedItem?.contents[deletedContentIndex]?.path : ''})}}</div>\r\n\r\n <div class=\"action-buttons prepare-delete--action-buttons flex-row\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showContentDeleteDialog = false\"\r\n translate>eo.prepare.details.delete.dialog.cancel</button>\r\n <button type=\"button\" #confirmContentDelete (click)=\"removeItemContent(preparedItem, deletedContentIndex)\" class=\"button primary\"\r\n translate>eo.prepare.details.delete.dialog.ok</button>\r\n </div>\r\n</eo-dialog>\r\n",
22442
+ template: "<div class=\"prepareDetails__wrapper\" *ngIf=\"!loading; else mainSpinner\">\r\n <section class=\"prepareDetails\" *ngIf=\"preparedItem && preparePhase; else noItem\"\r\n [ngClass]=\"{multifile: preparedItem.contentcount > 1, committing: committing}\">\r\n <div class=\"eo-head\">\r\n\r\n <div class=\"header-info\">\r\n <div class=\"header-title\">{{header.title}}</div>\r\n <div class=\"header-sub-title h-location\" *ngIf=\"!header.location.link; else linked\">{{header.location.label}}\r\n </div>\r\n <div class=\"header-sub-title h-subtitle\">{{header.subtitle}}</div>\r\n\r\n <ng-template #linked>\r\n <div class=\"header-sub-title h-subtitle-detailed\">\r\n <span translate>eo.prepare.location.title.prefix</span>\r\n <a [routerLink]=\"header.location.link\">{{header.location.label}}</a>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <eo-icon class=\"btn btn-download\"\r\n *ngIf=\"preparePhase.name === 'content' ? selectedTemplateFile : preparePhase.data.previewFile\"\r\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\r\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\" (click)=\"download()\"></eo-icon>\r\n <eo-icon class=\"btn btn-delete\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\r\n (click)=\"showDeleteDialog = true;\"></eo-icon>\r\n <!-- buttons while choosing a template -->\r\n <ng-container *ngIf=\"chooseTemplate\">\r\n <button class=\"btn-tpl-abort\" (click)=\"showTemplateSelector(false)\"\r\n translate>eo.prepare.template.abort</button>\r\n <button class=\"primary btn-tpl-apply\" (click)=\"addTemplate(selectedTemplate)\" [disabled]=\"!selectedTemplate\"\r\n translate>eo.prepare.template.select</button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"preparePhase.name === 'indexdata'\">\r\n <button (click)=\"commit()\" class=\"btn-idx-save\"\r\n [ngClass]=\"{primary: preparedItem.state.parentisroot && preparedItem.contentcount > 1}\"\r\n [disabled]=\"formState?.invalid || committing\" translate>eo.prepare.save</button>\r\n\r\n <button (click)=\"commit(true)\" [disabled]=\"formState?.invalid || committing\" class=\"primary btn-idx-saveopen\"\r\n [hidden]=\"preparedItem?.state.parentisroot && preparedItem?.contentcount > 1\"\r\n translate>eo.prepare.saveopen</button>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"eo-body\" [ngSwitch]=\"preparePhase.name\" *ngIf=\"!committing; else spinner\">\r\n\r\n <!-- PHASE TYPE -->\r\n <div class=\"phase type\" *ngSwitchCase=\"'type'\">\r\n\r\n <!-- with preview -->\r\n <eo-split [gutterSize]=\"16\" [gutterColor]=\"'#fff'\" [visibleTransition]=\"true\"\r\n *ngIf=\"preparePhase.data.previewFile; else nopreview\" [cacheLayout]=\"'prepare.details.phase.type'\">\r\n <eo-split-area [size]=\"30\">\r\n\r\n <div class=\"form-files\">\r\n <div class=\"object-type-select empty\" *ngIf=\"preparedItem.types.length == 0\" translate>\r\n eo.prepare.details.type.empty</div>\r\n <div class=\"object-type-select empty\"\r\n *ngIf=\"!preparedItem.state.typeselectedallowed && preparedItem.state.typeselected\"\r\n [translateParams]=\"{type: preparedItem.selectedtype.label, filename: getFileNames(preparedItem)}\"\r\n translate>eo.prepare.details.type.notallowed</div>\r\n\r\n <div class=\"object-type-select\">\r\n <div class=\"object-type\" *ngFor=\"let type of preparedItem.types; trackBy: trackByIdFn\"\r\n (click)=\"selectObjectType(type)\">\r\n <div class=\"type-icon\">\r\n <eo-icon [iconId]=\"type.icon.id\"></eo-icon>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">{{type.label}}</div>\r\n <div class=\"description\">{{type.description}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"content-select\">\r\n <h2 translate>eo.prepare.details.contents.title</h2>\r\n <div class=\"content\"\r\n *ngFor=\"let content of preparedItem.contents; trackBy: trackByIndexFn; index as idx;\"\r\n [ngClass]=\"{selected: preparePhase.data.previewIndex == idx}\" (click)=\"setPreviewUri(idx)\">\r\n <span>{{content.path}}</span>\r\n <eo-icon class=\"btn btn-delete-content\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\r\n (click)=\"showContentDeleteDialog = true; deletedContentIndex = idx;\"></eo-icon>\r\n <div *ngIf=\"content.existscount > 0\" class=\"attention\" title=\"{{'eo.prepare.content.existscount.message'|translate: ({count: content.existscount})}}\">!</div>\r\n </div>\r\n </div>\r\n </div>\r\n </eo-split-area>\r\n <eo-split-area [size]=\"70\">\r\n <div class=\"eo-media-wrap\">\r\n <eo-prepare-content-exists-info [content]=\"preparedItem.contents[preparePhase.data.previewIndex]\">\r\n </eo-prepare-content-exists-info>\r\n <eo-media [previewFile]=\"preparePhase.data.previewFile\"></eo-media>\r\n </div>\r\n </eo-split-area>\r\n </eo-split>\r\n\r\n <!-- without preview -->\r\n <ng-template #nopreview>\r\n <div class=\"form-files\">\r\n <div class=\"object-type-select\">\r\n <div class=\"object-type\" *ngFor=\"let type of preparedItem.types; trackBy: trackByIdFn\"\r\n (click)=\"selectObjectType(type)\">\r\n <div class=\"type-icon\">\r\n <eo-icon [iconId]=\"type.icon.id\"></eo-icon>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">{{type.label}}</div>\r\n <div class=\"description\">{{type.description}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <!-- PHASE CONTENT -->\r\n <div class=\"phase content\" *ngSwitchCase=\"'content'\">\r\n\r\n <!-- panel for selecting a template to be used as items content -->\r\n <eo-split [gutterSize]=\"16\" [gutterColor]=\"'#fff'\" [visibleTransition]=\"true\"\r\n *ngIf=\"chooseTemplate; else attach\" [cacheLayout]=\"'prepare.details.phase.content'\">\r\n <eo-split-area [size]=\"40\">\r\n\r\n <!-- list of available templates -->\r\n <eo-list-container #eoList [loading]=\"false\" class=\"templates\">\r\n <div class=\"eo-header\">\r\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_template.svg'\"></eo-icon>\r\n <div class=\"eo-header-info\">\r\n <div class=\"eo-header-title\" translate>eo.prepare.template.list.title</div>\r\n </div>\r\n <div class=\"eo-header-actions\">\r\n\r\n <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconClass]=\"'primary'\"\r\n class=\"overlay-filter\" [title]=\"'eo.list.filter' | translate\"\r\n (active)=\"oFilter.onActiveChanged($event)\">\r\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n (active)=\"oFilter.onActiveChanged($event)\">\r\n <eo-text-filter [title]=\"'eo.prepare.template.filter.text.title' | translate\"\r\n [matchFields]=\"['title', 'description', 'tags']\"\r\n [placeholder]=\"'eo.prepare.template.filter.text.title'\"></eo-text-filter>\r\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.prepare.template.filter.set.title' | translate\"\r\n *ngIf=\"tagFilterOptions?.length\" [options]=\"tagFilterOptions\"></eo-set-filter>\r\n </eo-custom-filter>\r\n </eo-overlay>\r\n\r\n </div>\r\n </div>\r\n <div class=\"eo-body\">\r\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\"\r\n [showHeader]=\"true\" [showFooter]=\"false\" [selectionLimit]=\"1\"\r\n (eoGridSelectionChanged)=\"selectTemplate($event[0])\">\r\n </eo-grid>\r\n </div>\r\n </eo-list-container>\r\n\r\n </eo-split-area>\r\n <eo-split-area [size]=\"60\">\r\n\r\n <!-- preview of selected template -->\r\n <eo-media [previewFile]=\"selectedTemplateFile\"></eo-media>\r\n\r\n </eo-split-area>\r\n </eo-split>\r\n\r\n <!-- add content general overview (upload, template, none) -->\r\n <ng-template #attach>\r\n\r\n <div class=\"info\" *ngIf=\"!uploadInProgress\" translate>eo.prepare.attachment.info</div>\r\n <input type=\"file\" #file (change)=\"fileChangeListener($event.target.files)\">\r\n\r\n <div class=\"attachments\" *ngIf=\"!uploadInProgress; else uploadspinner\">\r\n\r\n <!-- upload a file -->\r\n <div class=\"attachment att-file\" *ngIf=\"preparePhase.data.file\" (click)=\"upload()\">\r\n <div class=\"img\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_file_upload.svg'\"></eo-icon>\r\n </div>\r\n <h3 translate>eo.prepare.attachment.upload.title</h3>\r\n <p translate>eo.prepare.attachment.upload.desc</p>\r\n </div>\r\n\r\n <!-- select a template -->\r\n <div class=\"attachment att-tmpl\" *ngIf=\"preparePhase.data.templates.length > 0 && hasTemplateCapability()\"\r\n (click)=\"showTemplateSelector(true)\">\r\n <div class=\"img\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_prepare_add.svg'\"></eo-icon>\r\n </div>\r\n <h3 translate>eo.prepare.attachment.template.title</h3>\r\n <p translate>eo.prepare.attachment.template.desc</p>\r\n </div>\r\n\r\n <!-- no file -->\r\n <div class=\"attachment att-none\" *ngIf=\"preparePhase.data.withoutFile\" (click)=\"noFile()\">\r\n <div class=\"img\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\r\n </div>\r\n <h3 translate>eo.prepare.attachment.nofile.title</h3>\r\n <p translate>eo.prepare.attachment.nofile.desc</p>\r\n </div>\r\n\r\n </div>\r\n\r\n </ng-template>\r\n\r\n <!-- upload progress indicator -->\r\n <ng-template #uploadspinner>\r\n <div class=\"upload-indicator\">\r\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <!-- PHASE INDEXDATA -->\r\n <div class=\"phase indexdata\" *ngSwitchCase=\"'indexdata'\">\r\n\r\n <!-- form and preview -->\r\n <eo-split [gutterSize]=\"16\" [gutterColor]=\"'#fff'\" [visibleTransition]=\"true\"\r\n *ngIf=\"preparePhase.data.previewFile; else justform\" [cacheLayout]=\"'prepare.details.phase.indexdata'\">\r\n <eo-split-area [size]=\"50\">\r\n\r\n <div class=\"form-files\">\r\n\r\n <!-- indexdata form -->\r\n <ng-container *ngTemplateOutlet=\"justform\"></ng-container>\r\n\r\n <!-- list of contents (in case of bulk upload) that can be previewed -->\r\n <div class=\"content-select\">\r\n\r\n <h2 translate>eo.prepare.details.contents.title</h2>\r\n <div class=\"content\"\r\n *ngFor=\"let content of preparedItem.contents; trackBy: trackByIndexFn; index as idx\"\r\n [ngClass]=\"{selected: preparePhase.data.previewIndex === idx}\" (click)=\"setPreviewUri(idx)\">\r\n {{content.path}} <span *ngIf=\"content.existscount > 0\" class=\"attention\" title=\"{{'eo.prepare.content.existscount.message'|translate: ({count: content.existscount})}}\">!</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </eo-split-area>\r\n <eo-split-area [size]=\"50\">\r\n <div class=\"eo-media-wrap\">\r\n <eo-prepare-content-exists-info [content]=\"preparedItem.contents[preparePhase.data.previewIndex]\">\r\n </eo-prepare-content-exists-info>\r\n <eo-media [previewFile]=\"preparePhase.data.previewFile\"></eo-media>\r\n </div>\r\n </eo-split-area>\r\n </eo-split>\r\n\r\n <!-- just the form -->\r\n <ng-template #justform>\r\n <div class=\"form-container situation-create\" *ngIf=\"formOptions\">\r\n <eo-object-form #form [formOptions]=\"formOptions\" (statusChanged)=\"onFormStatusChanged($event)\">\r\n </eo-object-form>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </section>\r\n\r\n <ng-template #spinner>\r\n <div class=\"eo-body\">\r\n <eo-loading-spinner size=\"medium\"></eo-loading-spinner>\r\n </div>\r\n </ng-template>\r\n\r\n</div>\r\n\r\n<ng-template #mainSpinner>\r\n <div class=\"prepareDetails__main-spinner\">\r\n <eo-loading-spinner size=\"medium\"></eo-loading-spinner>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<ng-template #noItem>\r\n <eo-error-message [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\r\n <ng-content select=\".error\"></ng-content>\r\n </eo-error-message>\r\n</ng-template>\r\n\r\n<eo-dialog [title]=\"'eo.prepare.details.delete.dialog.title' | translate\"\r\n [(visible)]=\"showDeleteDialog\" [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'prepare-delete__dialog'\">\r\n\r\n<div>{{'eo.prepare.details.delete.dialog.message' | translate}}</div>\r\n\r\n <div class=\"action-buttons prepare-delete--action-buttons flex-row\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n translate>eo.prepare.details.delete.dialog.cancel</button>\r\n <button type=\"button\" #confirmDelete (click)=\"removeItem(preparedItem)\" class=\"button primary\"\r\n translate>eo.prepare.details.delete.dialog.ok</button>\r\n </div>\r\n</eo-dialog>\r\n\r\n<eo-dialog [title]=\"'eo.prepare.details.delete.content.dialog.title' | translate\"\r\n [(visible)]=\"showContentDeleteDialog\" [minWidth]=\"400\" [styleClass]=\"'prepare-delete__dialog'\">\r\n\r\n<div>{{'eo.prepare.details.delete.content.dialog.message' | translate: ({contentPath: preparedItem?.contents ? preparedItem?.contents[deletedContentIndex]?.path : ''})}}</div>\r\n\r\n <div class=\"action-buttons prepare-delete--action-buttons flex-row\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showContentDeleteDialog = false\"\r\n translate>eo.prepare.details.delete.dialog.cancel</button>\r\n <button type=\"button\" #confirmContentDelete (click)=\"removeItemContent(preparedItem, deletedContentIndex)\" class=\"button primary\"\r\n translate>eo.prepare.details.delete.dialog.ok</button>\r\n </div>\r\n</eo-dialog>\r\n",
22413
22443
  styles: [":host{height:100%}:host .prepareDetails{background:var(--panel-background-grey);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0;overflow-y:auto}:host .prepareDetails .eo-media-wrap{display:flex;flex-flow:column;height:100%}:host .prepareDetails .eo-media-wrap eo-media{flex:1;position:relative}:host .prepareDetails__wrapper{height:100%}:host .prepareDetails__main-spinner{align-items:center;display:flex;height:100%;justify-content:center}:host .prepareDetails .content-select{display:none}:host .prepareDetails .eo-head{background-color:var(--color-white);display:flex;flex-flow:row nowrap}:host .prepareDetails .eo-head .header-info{color:var(--text-color-caption);flex:1 1 auto;font-size:var(--font-caption)}:host .prepareDetails .eo-head .header-info .header-title{color:var(--text-color-body);font-size:var(--font-title);padding-bottom:calc(var(--app-pane-padding)/2)}:host .prepareDetails .eo-head .header-info a{color:var(--color-accent);cursor:pointer;text-decoration:none}:host .prepareDetails .eo-head .actions{align-items:center;align-self:flex-start;display:flex}[dir=ltr] :host .prepareDetails .eo-head .actions button{margin-left:calc(var(--app-pane-padding)/2)}[dir=rtl] :host .prepareDetails .eo-head .actions button{margin-right:calc(var(--app-pane-padding)/2)}:host .prepareDetails .eo-head .actions eo-icon{cursor:pointer;padding:calc(var(--app-pane-padding)/4)}:host .prepareDetails .eo-body{overflow-y:hidden}:host .prepareDetails .eo-body eo-split-area{border-top:1px solid rgba(var(--color-black-rgb),.08);box-sizing:border-box}:host .prepareDetails .phase{height:100%;overflow-y:auto}:host .prepareDetails .phase.content{align-items:center;display:flex;flex-flow:column;justify-content:center}:host .prepareDetails .phase.content ::ng-deep eo-list-container.templates{background:linear-gradient(90deg,#fff 70%,var(--panel-background-lightgrey))}:host .prepareDetails .phase.content ::ng-deep eo-list-container.templates eo-grid ag-grid-angular.ag-theme-balham .chip:last-of-type:after{background:transparent!important}:host .prepareDetails .phase.content input[type=file]{display:none}:host .prepareDetails .phase.content .info{color:var(--text-color-caption);flex:0 0 auto;margin-bottom:var(--app-pane-padding)}:host .prepareDetails .phase.content .attachments{display:flex;flex:0 0 auto;flex-flow:row}:host .prepareDetails .phase.content .attachments .attachment:hover .img eo-icon{opacity:1}:host .prepareDetails .phase.content .attachments .attachment{background:var(--color-white);border-bottom:1px solid rgba(var(--color-black-rgb),.1);cursor:pointer;margin:calc(var(--app-pane-padding)/2);max-width:200px}:host .prepareDetails .phase.content .attachments .attachment .img{align-items:center;background:var(--color-accent);display:flex;flex-flow:column;justify-content:center;padding:calc(var(--app-pane-padding)*2) 0}:host .prepareDetails .phase.content .attachments .attachment .img eo-icon{-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);height:48px;opacity:.5;transition:all var(--app-default-transition-duration) ease-in-out;width:48px}:host .prepareDetails .phase.content .attachments .attachment h3{font-size:var(--font-subhead);font-weight:var(--font-weight-normal);margin:0;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding)}:host .prepareDetails .phase.content .attachments .attachment p{color:var(--text-color-caption);margin:0;padding:0 var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}:host .prepareDetails .phase div[eosplitgutter]{background-color:var(--color-light-blue)!important}:host .prepareDetails .phase.type .form-files .object-type-select{flex:1 1 auto;overflow-y:auto;padding:var(--app-pane-padding)}:host .prepareDetails .phase.type .form-files .object-type-select .object-type{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;background:var(--color-white);cursor:pointer;display:flex;flex-flow:row nowrap;margin-bottom:1px;padding:calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out}:host .prepareDetails .phase.type .form-files .object-type-select .object-type .type-icon{color:var(--text-color-hint)}:host .prepareDetails .phase.type .form-files .object-type-select .object-type .content{overflow:hidden;padding-left:calc(var(--app-pane-padding)/2)}:host .prepareDetails .phase.type .form-files .object-type-select .object-type .content .title{font-weight:var(--font-weight-bold);overflow:hidden;text-overflow:ellipsis}:host .prepareDetails .phase.type .form-files .object-type-select .object-type .content .description{color:var(--text-color-caption);overflow:hidden;text-overflow:ellipsis}:host .prepareDetails .phase .form-container eo-object-form{display:block;margin:var(--app-pane-padding)}:host .prepareDetails.committing .eo-head .actions .btn,:host .prepareDetails.committing .eo-head .actions button{display:none}:host .prepareDetails.committing .eo-body{align-items:center;display:flex;flex-flow:column;justify-content:center}:host .prepareDetails.multifile .form-files{bottom:0;display:flex;flex-flow:column;left:0;position:absolute;right:0;top:0}:host .prepareDetails.multifile .form-files .form-container{flex:1 1 auto;overflow-y:auto}:host .prepareDetails.multifile .content-select{border-top:1px solid var(--main-background);box-sizing:border-box;display:block;flex:0 0 30%;overflow-y:auto;padding:calc(var(--app-pane-padding)/2)}:host .prepareDetails.multifile .content-select h2{color:var(--text-color-caption);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);margin:0;padding:calc(var(--app-pane-padding)/2);padding-bottom:var(--app-pane-padding)}:host .prepareDetails.multifile .content-select .content{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background:var(--color-white);color:var(--text-color-caption);cursor:pointer;display:flex;gap:8px;justify-content:space-between;margin-bottom:calc(var(--app-pane-padding)/2);overflow:hidden;padding:calc(var(--app-pane-padding)/2);text-overflow:ellipsis;transition:all var(--app-default-transition-duration) ease-in-out}:host .prepareDetails.multifile .content-select .content>span{flex:1;overflow:hidden;text-overflow:ellipsis}:host .prepareDetails.multifile .content-select .content .btn-delete-content{color:var(--text-color-caption);flex:0 0 16px;height:16px;width:16px}:host .prepareDetails.multifile .content-select .content .btn-delete-content:hover{background-color:var(--text-color-hint)}:host .prepareDetails.multifile .content-select .content div.attention{border:1px solid var(--color-warning);border-radius:2px;color:var(--color-warning);display:block;flex:0 0 auto;line-height:1em;padding:0 4px;right:4px;top:8px}:host .prepareDetails.multifile .content-select .content.selected{color:var(--color-accent)}:host .prepareDetails.multifile .content-select .content:hover{background:var(--panel-background-lightgrey)}:host ::ng-deep eo-grid,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row{background:transparent}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row:hover{background:var(--panel-background-lightgrey)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:var(--panel-header-border-bottom-color)}:host ::ng-deep eo-list-container .eo-head{height:48px}:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-head{background:transparent;border-color:var(--panel-header-border-bottom-color)}:host ::ng-deep .eo-head .eo-header .eo-header-actions eo-icon{color:var(--text-color-hint)!important}:host ::ng-deep .eo-head .eo-header .eo-header-actions eo-icon:hover{color:var(--text-color-caption)!important}:host ::ng-deep .eo-head .eo-header .eo-header-actions eo-icon.active{color:var(--color-accent)!important}:host ::ng-deep .eo-header-icon,:host ::ng-deep .eo-header-title,:host ::ng-deep .template{color:var(--text-color-caption)}:host ::ng-deep .template{cursor:pointer;margin-bottom:1px}:host ::ng-deep .template .title{font-size:var(--font-body);font-weight:var(--font-weight-bold)}:host ::ng-deep .template .description{color:var(--text-color-caption)}:host ::ng-deep .template .chip{display:initial!important}::ng-deep .prepare-delete__dialog{min-height:unset!important;padding:8px}::ng-deep .prepare-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}"]
22414
22444
  },] }
22415
22445
  ];
@@ -22421,7 +22451,8 @@
22421
22451
  { type: i1.NotificationsService },
22422
22452
  { type: i1.SystemService },
22423
22453
  { type: SelectionService },
22424
- { type: i1.BackendService }
22454
+ { type: i1.BackendService },
22455
+ { type: i1.CapabilitiesService }
22425
22456
  ]; };
22426
22457
  PrepareDetailsComponent.propDecorators = {
22427
22458
  file: [{ type: i0.ViewChild, args: ['file',] }],
@@ -22439,7 +22470,7 @@
22439
22470
 
22440
22471
  var InboxDetailsComponent = /** @class */ (function (_super) {
22441
22472
  __extends(InboxDetailsComponent, _super);
22442
- function InboxDetailsComponent(bpmService, userService, inboxService, selection, router, eventService, clipboardService, translate, pendingChanges, notify) {
22473
+ function InboxDetailsComponent(bpmService, userService, inboxService, selection, router, eventService, clipboardService, translate, pendingChanges, notify, storageService) {
22443
22474
  var _this = _super.call(this) || this;
22444
22475
  _this.bpmService = bpmService;
22445
22476
  _this.userService = userService;
@@ -22451,11 +22482,12 @@
22451
22482
  _this.translate = translate;
22452
22483
  _this.pendingChanges = pendingChanges;
22453
22484
  _this.notify = notify;
22485
+ _this.storageService = storageService;
22454
22486
  _this.actionProcessing = { closed: true };
22455
22487
  _this.initializing = { closed: true };
22456
22488
  _this.filesAdding = { closed: true };
22489
+ _this.storageKeyLastItemID = 'eo.inbox.lastItemID';
22457
22490
  _this.externalPanels = new i0.QueryList();
22458
- _this.onDmsItemSelected = new i0.EventEmitter();
22459
22491
  _this.addDefaultActionIfEmpty = function (res) {
22460
22492
  var _a;
22461
22493
  if (!((_a = res.actions) === null || _a === void 0 ? void 0 : _a.length)) {
@@ -22685,13 +22717,12 @@
22685
22717
  }
22686
22718
  };
22687
22719
  /**
22688
- * Selects a work items file entry an emits onDmsItemSelected event.
22720
+ * Selects a work items file entry.
22689
22721
  * @param file FileEntry element to be selected
22690
22722
  */
22691
22723
  InboxDetailsComponent.prototype.openWorkItemContent = function (file) {
22692
22724
  if (!file) {
22693
22725
  this.selectedContentFileId = null;
22694
- this.onDmsItemSelected.emit(null);
22695
22726
  if (this.applySelection) {
22696
22727
  this.selection.find(this.applySelection.out).focus(null);
22697
22728
  }
@@ -22702,7 +22733,6 @@
22702
22733
  id: file.id,
22703
22734
  type: file.type
22704
22735
  };
22705
- this.onDmsItemSelected.emit(params);
22706
22736
  if (this.applySelection) {
22707
22737
  this.selection.find(this.applySelection.out).focus(params);
22708
22738
  }
@@ -22849,7 +22879,10 @@
22849
22879
  this.selection
22850
22880
  .find(this.applySelection.in)
22851
22881
  .focus$.pipe(operators.takeUntil(this.componentDestroyed$))
22852
- .subscribe(function (item) { return (_this.item = item); });
22882
+ .subscribe(function (item) {
22883
+ _this.item = item;
22884
+ _this.storageService.setItem(_this.storageKeyLastItemID, _this.item.id);
22885
+ });
22853
22886
  }
22854
22887
  };
22855
22888
  InboxDetailsComponent.prototype.ngAfterViewInit = function () {
@@ -22876,7 +22909,8 @@
22876
22909
  { type: i1.ClipboardService },
22877
22910
  { type: i1.TranslateService },
22878
22911
  { type: PendingChangesService },
22879
- { type: i1.NotificationsService }
22912
+ { type: i1.NotificationsService },
22913
+ { type: i1.LocalStorageService }
22880
22914
  ]; };
22881
22915
  InboxDetailsComponent.propDecorators = {
22882
22916
  bpmFormEl: [{ type: i0.ViewChild, args: ['bpmForm',] }],
@@ -22885,7 +22919,6 @@
22885
22919
  emptyState: [{ type: i0.Input }],
22886
22920
  applySelection: [{ type: i0.Input }],
22887
22921
  item: [{ type: i0.Input, args: ['item',] }],
22888
- onDmsItemSelected: [{ type: i0.Output }],
22889
22922
  dataType: [{ type: i0.HostBinding, args: ['attr.data-type',] }]
22890
22923
  };
22891
22924
 
@@ -24515,10 +24548,10 @@
24515
24548
  this.http = http;
24516
24549
  this.userService = userService;
24517
24550
  this.config = config;
24518
- 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": "8.16.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" }];
24551
+ 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": "8.16.0-rc.3", "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" }];
24519
24552
  this.ctrl = {
24520
24553
  productName: 'yuuvis® RAD client',
24521
- clientVersion: '8.16.0-rc.1'
24554
+ clientVersion: '8.16.0-rc.3'
24522
24555
  };
24523
24556
  this.licenses = {
24524
24557
  'MIT': {
@@ -25939,7 +25972,7 @@
25939
25972
 
25940
25973
  var InboxStateComponent = /** @class */ (function (_super) {
25941
25974
  __extends(InboxStateComponent, _super);
25942
- function InboxStateComponent(translate, selection, titleService, inboxService, pendingChanges, empty, eventService, route) {
25975
+ function InboxStateComponent(translate, selection, titleService, inboxService, pendingChanges, empty, eventService, route, storageService) {
25943
25976
  var _this = _super.call(this) || this;
25944
25977
  _this.translate = translate;
25945
25978
  _this.selection = selection;
@@ -25949,6 +25982,7 @@
25949
25982
  _this.empty = empty;
25950
25983
  _this.eventService = eventService;
25951
25984
  _this.route = route;
25985
+ _this.storageService = storageService;
25952
25986
  _this.inboxFilterFields = [];
25953
25987
  _this.typeFilterFields = [];
25954
25988
  _this.inboxSelectionId = 'inbox';
@@ -25958,6 +25992,7 @@
25958
25992
  _this.defaultFilterParams = {};
25959
25993
  _this.emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
25960
25994
  _this.inboxChanged = false;
25995
+ _this.storageKeyLastItemID = 'eo.inbox.lastItemID';
25961
25996
  _this.titleService.setBaseTitle(_this.translate.instant('eo.inbox.list.title'));
25962
25997
  //secondary selection instance for inbox items
25963
25998
  _this.inboxSelection = _this.selection.createNew(_this.inboxSelectionId);
@@ -25994,9 +26029,6 @@
25994
26029
  InboxStateComponent.prototype.hasPendingChanges = function () {
25995
26030
  return this.pendingChanges.hasPendingTask();
25996
26031
  };
25997
- InboxStateComponent.prototype.onDmsItemSelected = function (data) {
25998
- this.selectedDmsParams = data;
25999
- };
26000
26032
  InboxStateComponent.prototype.refreshGrid = function () {
26001
26033
  this.inboxChanged = false;
26002
26034
  this.inboxSelection.disable(false);
@@ -26086,6 +26118,14 @@
26086
26118
  _this.gridData = data;
26087
26119
  _this.updateGrid(_this.gridData);
26088
26120
  });
26121
+ var lastInboxItemID = this.storageService.getItem(this.storageKeyLastItemID);
26122
+ if (lastInboxItemID) {
26123
+ var item_1 = this.gridData.find(function (i) { return i.id === lastInboxItemID; });
26124
+ if (item_1) {
26125
+ this.selectFirst = false;
26126
+ setTimeout(function () { return _this.eoGrid.selectRow(item_1); }, 500);
26127
+ }
26128
+ }
26089
26129
  };
26090
26130
  InboxStateComponent.prototype.ngOnDestroy = function () {
26091
26131
  this.selection.clear();
@@ -26095,7 +26135,7 @@
26095
26135
  InboxStateComponent.decorators = [
26096
26136
  { type: i0.Component, args: [{
26097
26137
  selector: 'eo-inbox-state',
26098
- template: "<eo-undock-split>\r\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"'inbox.state'\">\r\n <eo-split-area [size]=\"30\" [minSizePixel]=\"300\">\r\n <ng-template pTemplate=\"content\">\r\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\r\n <div class=\"eo-header\">\r\n\r\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\r\n <div class=\"eo-header-info\">\r\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\r\n </div>\r\n <div class=\"eo-header-actions\">\r\n <eo-icon class=\"button primary refresh-button\"\r\n [ngClass]=\"{inboxChanged: inboxChanged}\"\r\n (click)=\"cFilter.resetFilter(); refreshGrid()\"\r\n [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n <eo-overlay #oFilter class=\"overlay-filter\"\r\n [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\r\n [iconClass]=\"'primary'\"\r\n [iconTitle]=\"'eo.list.filter' | translate\">\r\n <eo-custom-filter #cFilter\r\n (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n (active)=\"oFilter.onActiveChanged($event)\">\r\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\"\r\n [filterParams]=\"defaultFilterParams\" [id]=\"'inbox.text'\" \r\n [matchFields]=\"['title','description','id']\"></eo-text-filter>\r\n <eo-set-filter [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\r\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"\r\n [title]=\"'eo.inbox.filter.section.type' | translate\"></eo-set-filter>\r\n </eo-custom-filter>\r\n </eo-overlay>\r\n\r\n <eo-overlay #oSort class=\"overlay-sort\"\r\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\r\n [iconTitle]=\"'eo.list.sort' | translate\"\r\n [iconClass]=\"'primary'\">\r\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\"\r\n (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n (active)=\"oSort.onActiveChanged($event)\"\r\n [sortFields]=\"sortFields\"></eo-custom-sort>\r\n </eo-overlay>\r\n\r\n </div>\r\n </div>\r\n <div class=\"eo-body\">\r\n <eo-grid #eoGrid\r\n *ngIf=\"gridOptions?.rowData\"\r\n [gridOptions]=\"gridOptions\"\r\n [fullWidth]=\"true\"\r\n [showHeader]=\"true\"\r\n [showFooter]=\"true\"\r\n [selectFirst]=\"selectFirst\"\r\n [options]=\"{filterActive: oFilter.active}\"\r\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\r\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n <div class=\"header\">\r\n </div>\r\n\r\n <div class=\"footer\">\r\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n </div>\r\n\r\n <div class=\"empty\">\r\n <eo-error-message\r\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\r\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n </div>\r\n\r\n </eo-grid>\r\n </div>\r\n </eo-list-container>\r\n </ng-template>\r\n </eo-split-area>\r\n <eo-split-area [size]=\"30\" [minSizePixel]=\"400\">\r\n <ng-template pTemplate=\"content\">\r\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\" [emptyState]=\"emptyState\">\r\n <eo-tab-plugin [type]=\"'inbox-details-tab.inbox'\"></eo-tab-plugin>\r\n </eo-inbox-details>\r\n </ng-template>\r\n </eo-split-area>\r\n <eo-split-area [size]=\"40\" [minSizePixel]=\"400\" [cache]=\"false\">\r\n <ng-template pTemplate=\"content\">\r\n\r\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\">\r\n <eo-tab-plugin [type]=\"'object-details-tab.inbox'\"></eo-tab-plugin>\r\n </eo-object-details>\r\n </ng-template>\r\n </eo-split-area>\r\n </eo-split>\r\n</eo-undock-split>\r\n",
26138
+ template: "<eo-undock-split>\r\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"'inbox.state'\">\r\n <eo-split-area [size]=\"30\" [minSizePixel]=\"300\">\r\n <ng-template pTemplate=\"content\">\r\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\r\n <div class=\"eo-header\">\r\n\r\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\r\n <div class=\"eo-header-info\">\r\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\r\n </div>\r\n <div class=\"eo-header-actions\">\r\n <eo-icon class=\"button primary refresh-button\"\r\n [ngClass]=\"{inboxChanged: inboxChanged}\"\r\n (click)=\"cFilter.resetFilter(); refreshGrid()\"\r\n [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n <eo-overlay #oFilter class=\"overlay-filter\"\r\n [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\r\n [iconClass]=\"'primary'\"\r\n [iconTitle]=\"'eo.list.filter' | translate\">\r\n <eo-custom-filter #cFilter\r\n (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n (active)=\"oFilter.onActiveChanged($event)\">\r\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\"\r\n [filterParams]=\"defaultFilterParams\" [id]=\"'inbox.text'\"\r\n [matchFields]=\"['title','description','id']\"></eo-text-filter>\r\n <eo-set-filter [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\r\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"\r\n [title]=\"'eo.inbox.filter.section.type' | translate\"></eo-set-filter>\r\n </eo-custom-filter>\r\n </eo-overlay>\r\n\r\n <eo-overlay #oSort class=\"overlay-sort\"\r\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\r\n [iconTitle]=\"'eo.list.sort' | translate\"\r\n [iconClass]=\"'primary'\">\r\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\"\r\n (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n (active)=\"oSort.onActiveChanged($event)\"\r\n [sortFields]=\"sortFields\"></eo-custom-sort>\r\n </eo-overlay>\r\n\r\n </div>\r\n </div>\r\n <div class=\"eo-body\">\r\n <eo-grid #eoGrid\r\n *ngIf=\"gridOptions?.rowData\"\r\n [gridOptions]=\"gridOptions\"\r\n [fullWidth]=\"true\"\r\n [showHeader]=\"true\"\r\n [showFooter]=\"true\"\r\n [selectFirst]=\"selectFirst\"\r\n [options]=\"{filterActive: oFilter.active}\"\r\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\r\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n <div class=\"header\">\r\n </div>\r\n\r\n <div class=\"footer\">\r\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n </div>\r\n\r\n <div class=\"empty\">\r\n <eo-error-message\r\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\r\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n </div>\r\n\r\n </eo-grid>\r\n </div>\r\n </eo-list-container>\r\n </ng-template>\r\n </eo-split-area>\r\n <eo-split-area [size]=\"30\" [minSizePixel]=\"400\">\r\n <ng-template pTemplate=\"content\">\r\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\" [emptyState]=\"emptyState\">\r\n <eo-tab-plugin [type]=\"'inbox-details-tab.inbox'\"></eo-tab-plugin>\r\n </eo-inbox-details>\r\n </ng-template>\r\n </eo-split-area>\r\n <eo-split-area [size]=\"40\" [minSizePixel]=\"400\" [cache]=\"false\">\r\n <ng-template pTemplate=\"content\">\r\n\r\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\">\r\n <eo-tab-plugin [type]=\"'object-details-tab.inbox'\"></eo-tab-plugin>\r\n </eo-object-details>\r\n </ng-template>\r\n </eo-split-area>\r\n </eo-split>\r\n</eo-undock-split>\r\n",
26099
26139
  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)}"]
26100
26140
  },] }
26101
26141
  ];
@@ -26107,7 +26147,8 @@
26107
26147
  { type: PendingChangesService },
26108
26148
  { type: EmptyStateService },
26109
26149
  { type: i1.EventService },
26110
- { type: i2.ActivatedRoute }
26150
+ { type: i2.ActivatedRoute },
26151
+ { type: i1.LocalStorageService }
26111
26152
  ]; };
26112
26153
  InboxStateComponent.propDecorators = {
26113
26154
  eoGrid: [{ type: i0.ViewChild, args: ['eoGrid',] }]
@@ -26618,9 +26659,9 @@
26618
26659
  exports.ɵcs = EoClientRoutingModule;
26619
26660
  exports.ɵct = ProcessStateComponent;
26620
26661
  exports.ɵd = AppProcessComponent;
26621
- exports.ɵe = PipesModule;
26622
- exports.ɵf = UnsubscribeOnDestroy;
26623
- exports.ɵg = PendingChangesService;
26662
+ exports.ɵe = PendingChangesService;
26663
+ exports.ɵf = PipesModule;
26664
+ exports.ɵg = UnsubscribeOnDestroy;
26624
26665
  exports.ɵh = QueryScopeSelectComponent;
26625
26666
  exports.ɵi = IndexdataSummaryEntryComponent;
26626
26667
  exports.ɵj = OrderByPipe;