@eo-sdk/client 8.15.0-rc.1 → 8.16.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts +4 -5
  2. package/app/eo-framework/actions/actions/open-context-action/open-context-action.d.ts +2 -0
  3. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts +1 -0
  4. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +6 -5
  5. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +3 -1
  6. package/app/eo-framework-core/agent/agent.service.d.ts +3 -2
  7. package/assets/_default/i18n/de.json +5 -3
  8. package/assets/_default/i18n/en.json +5 -3
  9. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +4274 -4240
  10. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  11. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  12. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  13. package/bundles/eo-sdk-client.umd.js +64 -34
  14. package/bundles/eo-sdk-client.umd.js.map +1 -1
  15. package/bundles/eo-sdk-client.umd.min.js +1 -1
  16. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  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-client/result-state/result-state.component.js +3 -3
  21. package/esm2015/app/eo-framework/actions/actions/delete-content-action/delete-content-action.js +2 -3
  22. package/esm2015/app/eo-framework/actions/actions/open-context-action/open-context-action.js +11 -4
  23. package/esm2015/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.js +10 -4
  24. package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +2 -2
  25. package/esm2015/app/eo-framework/inbox-details/inbox-details.component.js +13 -11
  26. package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +3 -3
  27. package/esm2015/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.js +11 -4
  28. package/esm2015/app/eo-framework/object-form/object-form/object-form.component.js +4 -4
  29. package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +1 -2
  30. package/esm2015/app/eo-framework-core/agent/agent.service.js +7 -5
  31. package/esm2015/projects/eo-sdk/core/lib/config/core-config.js +3 -1
  32. package/esm2015/projects/eo-sdk/core/lib/config/core-init.service.js +4 -2
  33. package/esm2015/projects/eo-sdk/core/lib/service/auth/auth.service.js +4 -3
  34. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +11 -7
  35. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +6 -5
  36. package/esm2015/projects/eo-sdk/core/lib/service/upload/upload.service.js +8 -4
  37. package/esm2015/projects/eo-sdk/core/lib/util/utils.js +25 -1
  38. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +3769 -3736
  39. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  40. package/fesm2015/eo-sdk-client.js +65 -36
  41. package/fesm2015/eo-sdk-client.js.map +1 -1
  42. package/package.json +2 -2
  43. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  44. package/projects/eo-sdk/core/lib/config/core-config.d.ts +1 -0
  45. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +3 -1
  46. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +4 -3
  47. package/projects/eo-sdk/core/lib/service/upload/upload.service.d.ts +3 -1
  48. package/projects/eo-sdk/core/lib/util/utils.d.ts +3 -0
  49. package/projects/eo-sdk/core/package.json +1 -1
@@ -1,9 +1,9 @@
1
- import { Injectable, ApplicationRef, NgZone, Pipe, NgModule, EventEmitter, Injector, ɵɵdefineInjectable, ɵɵinject, ErrorHandler, Optional, SkipSelf, Component, Input, Output, ViewEncapsulation, ElementRef, Renderer2, Directive, HostListener, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, HostBinding, ViewContainerRef, forwardRef, ViewChildren, ContentChildren, ANALYZE_FOR_ENTRY_COMPONENTS, InjectionToken, Inject, ComponentFactoryResolver, ContentChild, QueryList } from '@angular/core';
1
+ import { Injectable, Inject, ApplicationRef, NgZone, Pipe, NgModule, EventEmitter, Injector, ɵɵdefineInjectable, ɵɵinject, ErrorHandler, Optional, SkipSelf, Component, Input, Output, ViewEncapsulation, ElementRef, Renderer2, Directive, HostListener, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, HostBinding, ViewContainerRef, forwardRef, ViewChildren, ContentChildren, ANALYZE_FOR_ENTRY_COMPONENTS, InjectionToken, ComponentFactoryResolver, ContentChild, QueryList } from '@angular/core';
2
2
  import { DecimalPipe, PercentPipe, CurrencyPipe, DatePipe, getLocaleDateTimeFormat, FormatWidth, getLocaleTimeFormat, getLocaleDateFormat, CommonModule, Location, PlatformLocation } from '@angular/common';
3
3
  import { HttpClient, HttpResponse, HttpErrorResponse, HttpClientModule, HTTP_INTERCEPTORS, HttpHeaders } from '@angular/common/http';
4
4
  import { ReplaySubject, BehaviorSubject, from, forkJoin, of, Subject, fromEvent, AsyncSubject, Observable } from 'rxjs';
5
5
  import { groupBy, mergeMap, reduce, tap, catchError, map, debounceTime, takeUntil, filter, switchMap, pluck, finalize, combineLatest, takeWhile, throttleTime, take, withLatestFrom, first } from 'rxjs/operators';
6
- import { SearchQuery, SearchState, EnaioEvent, Utils, SearchService, EventService, SystemService, Logger, BackendService, UserService, TranslateService, NotificationsService, AppCacheService, UploadTarget, UploadRegistryService, DmsObject, ClipboardService, DmsService, EnvironmentEnaio, SearchFilter, RangeValue, AuthService, EoError, CapabilitiesService, Config, ClipboardAction, PrepareService, QueryScope, EoSharedModule, InboxService, BpmService, StoredQuery, StoredQueriesService, EnvironmentService, LocalStorageService, FieldDefinition, SortOption, InboxItem, Process, PreparedItem, WorkItem, SubscriptionMode, TranslateModule, UploadFileItem, SearchResult } from '@eo-sdk/core';
6
+ import { SearchQuery, SearchState, EnaioEvent, Utils, SearchService, EventService, SystemService, CoreConfig, CORE_CONFIG, Logger, BackendService, UserService, TranslateService, NotificationsService, AppCacheService, UploadTarget, UploadRegistryService, DmsObject, ClipboardService, DmsService, EnvironmentEnaio, SearchFilter, RangeValue, AuthService, EoError, CapabilitiesService, Config, ClipboardAction, PrepareService, QueryScope, EoSharedModule, InboxService, BpmService, StoredQuery, StoredQueriesService, EnvironmentService, LocalStorageService, FieldDefinition, SortOption, InboxItem, Process, PreparedItem, WorkItem, SubscriptionMode, TranslateModule, UploadFileItem, SearchResult } from '@eo-sdk/core';
7
7
  import { Router, NavigationStart, RouterModule, ActivatedRoute, NavigationEnd } from '@angular/router';
8
8
  import { NumberFilter, Utils as Utils$1, SimpleFilter, NumberSequence, _ as _$1, RowNode, Autowired, PostConstruct, Bean, ModuleNames, DateFilter } from '@ag-grid-community/core';
9
9
  import { Title, DomSanitizer } from '@angular/platform-browser';
@@ -400,7 +400,8 @@ var agentConfigKeys;
400
400
  agentConfigKeys["LOCKSETTINGS"] = "locksettings";
401
401
  })(agentConfigKeys || (agentConfigKeys = {}));
402
402
  class AgentService {
403
- constructor(logger, http, systemService, backendService, userService, translate, notifications, appCacheService) {
403
+ constructor(coreConfig, logger, http, systemService, backendService, userService, translate, notifications, appCacheService) {
404
+ this.coreConfig = coreConfig;
404
405
  this.logger = logger;
405
406
  this.http = http;
406
407
  this.systemService = systemService;
@@ -427,7 +428,7 @@ class AgentService {
427
428
  .pipe(tap(([storage, config]) => this.isConnected = (config && config.hasOwnProperty(agentConfigKeys.AUTOCONNECT) ? config.autoconnect : storage !== null ? storage : null))).subscribe();
428
429
  }
429
430
  getAgentConfig() {
430
- return this.http.get('assets/_default/config/extend.json').pipe(catchError(() => of(null)), tap((config) => this.agentConfig.next(Object.assign({}, config === null || config === void 0 ? void 0 : config.agent))), map((config) => config === null || config === void 0 ? void 0 : config.agent));
431
+ return this.http.get('assets/_default/config/extend.json', { withCredentials: this.coreConfig.withCredentials }).pipe(catchError(() => of(null)), tap((config) => this.agentConfig.next(Object.assign({}, config === null || config === void 0 ? void 0 : config.agent))), map((config) => config === null || config === void 0 ? void 0 : config.agent));
431
432
  }
432
433
  set isConnected(isConnected) {
433
434
  this._isConnected = isConnected;
@@ -559,6 +560,7 @@ AgentService.decorators = [
559
560
  { type: Injectable }
560
561
  ];
561
562
  AgentService.ctorParameters = () => [
563
+ { type: CoreConfig, decorators: [{ type: Inject, args: [CORE_CONFIG,] }] },
562
564
  { type: Logger },
563
565
  { type: HttpClient },
564
566
  { type: SystemService },
@@ -3591,7 +3593,6 @@ class EoDialogComponent extends UnsubscribeOnDestroy {
3591
3593
  .pipe(takeUntil(this.componentDestroyed$), filter(evt => (this.active || evt.data.id === this.parentId) &&
3592
3594
  evt.data.id !== this.id))
3593
3595
  .subscribe((event) => {
3594
- this.toggleActive(!event.data.active, !event.data.active);
3595
3596
  this.parentId = event.data.active ? event.data.id : '';
3596
3597
  });
3597
3598
  }
@@ -4633,7 +4634,7 @@ class AppSearchComponent {
4633
4634
  // query and display the results
4634
4635
  triggerSearch() {
4635
4636
  this.query.resolveReference = true;
4636
- const uriParam = encodeURIComponent(JSON.stringify(this.query.getQueryJson()));
4637
+ const uriParam = encodeURIComponent(Utils.formDataStringify(this.query.getQueryJson()));
4637
4638
  this.router.navigate([{ outlets: { modal: null } }]).then(() => {
4638
4639
  const uriParamQuery = { queryParams: { query: uriParam } };
4639
4640
  this.router.navigate(['/result'], uriParamQuery);
@@ -9269,7 +9270,7 @@ class ObjectFormComponent extends UnsubscribeOnDestroy {
9269
9270
  // check if indexdata has been changed
9270
9271
  let currentFormData = this.getFormData();
9271
9272
  let idxChange = compare ? JSON.stringify(this.formData) !== JSON.stringify(currentFormData) : false;
9272
- this.formData = JSON.parse(JSON.stringify(currentFormData));
9273
+ this.formData = Utils.formDataParse(Utils.formDataStringify(currentFormData));
9273
9274
  if (this.form) {
9274
9275
  this.statusChanged.emit({
9275
9276
  invalid: this.form.invalid,
@@ -9402,7 +9403,7 @@ class ObjectFormComponent extends UnsubscribeOnDestroy {
9402
9403
  // copy by value for arrays of objects (e.g. table data)
9403
9404
  value = [];
9404
9405
  formElement.value.forEach((o) => {
9405
- value.push(JSON.parse(JSON.stringify(o)));
9406
+ value.push(Utils.formDataParse(Utils.formDataStringify(o)));
9406
9407
  });
9407
9408
  }
9408
9409
  else {
@@ -10066,7 +10067,7 @@ class FormElementTableComponent extends UnsubscribeOnDestroy {
10066
10067
  }
10067
10068
  this.value = value instanceof Array ? value : [];
10068
10069
  // create a clone of the actual value for internal usage
10069
- this.innerValue = JSON.parse(JSON.stringify(this.value));
10070
+ this.innerValue = Utils.formDataParse(Utils.formDataStringify(this.value));
10070
10071
  if (this.gridOptions.api) {
10071
10072
  this.gridOptions.api.setRowData(this.innerValue);
10072
10073
  }
@@ -10387,10 +10388,11 @@ FormElementTableComponent.propDecorators = {
10387
10388
  * Component for editing a row from an object forms table.
10388
10389
  */
10389
10390
  class RowEditComponent extends UnsubscribeOnDestroy {
10390
- constructor(pendingChanges, fb) {
10391
+ constructor(pendingChanges, fb, storageService) {
10391
10392
  super();
10392
10393
  this.pendingChanges = pendingChanges;
10393
10394
  this.fb = fb;
10395
+ this.storageService = storageService;
10394
10396
  this.formState = {};
10395
10397
  this.queryEnabled = true;
10396
10398
  this.copyEnabled = true;
@@ -10403,8 +10405,12 @@ class RowEditComponent extends UnsubscribeOnDestroy {
10403
10405
  this.onSave = new EventEmitter();
10404
10406
  this.onSaveCopy = new EventEmitter();
10405
10407
  this.onDelete = new EventEmitter();
10408
+ this.createNewRow = !!this.storageService.getItem('createNewRow');
10406
10409
  this.createNewCheckbox = this.fb.control(this.createNewRow);
10407
- this.createNewCheckbox.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((v) => this.createNewRow = v);
10410
+ this.createNewCheckbox.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((v) => {
10411
+ this.createNewRow = v;
10412
+ this.storageService.setItem('createNewRow', this.createNewRow);
10413
+ });
10408
10414
  }
10409
10415
  set showDeleteDialog(val) {
10410
10416
  this._showDeleteDialog = val;
@@ -10509,7 +10515,8 @@ RowEditComponent.decorators = [
10509
10515
  ];
10510
10516
  RowEditComponent.ctorParameters = () => [
10511
10517
  { type: PendingChangesService },
10512
- { type: FormBuilder }
10518
+ { type: FormBuilder },
10519
+ { type: LocalStorageService }
10513
10520
  ];
10514
10521
  RowEditComponent.propDecorators = {
10515
10522
  confirmDeleteButton: [{ type: ViewChild, args: ['confirmDelete',] }],
@@ -14873,9 +14880,9 @@ class OpenContextActionComponent extends DmsObjectTarget {
14873
14880
  this.description = this.translate.instant('eo.shortcuts.action.open.context.description');
14874
14881
  }
14875
14882
  isExecutable(item) {
14876
- return of(true);
14883
+ const isExecutable = !this.isFolder(item) || (this.isFolder(item) && this.isNotInObjectState());
14884
+ return of(isExecutable);
14877
14885
  }
14878
- ;
14879
14886
  getParams(selection) {
14880
14887
  const item = selection[0];
14881
14888
  return { type: item.typeName };
@@ -14887,6 +14894,13 @@ class OpenContextActionComponent extends DmsObjectTarget {
14887
14894
  }
14888
14895
  return `/object/${id}`;
14889
14896
  }
14897
+ isFolder(item) {
14898
+ return item.isFolder;
14899
+ }
14900
+ isNotInObjectState() {
14901
+ const disabledStates = ['/object'];
14902
+ return !disabledStates.some(s => this.router.url.includes(s));
14903
+ }
14890
14904
  }
14891
14905
  OpenContextActionComponent.decorators = [
14892
14906
  { type: Component, args: [{
@@ -16222,14 +16236,20 @@ class ShareObjectComponent {
16222
16236
  this.finished = new EventEmitter();
16223
16237
  this.canceled = new EventEmitter();
16224
16238
  this.dataMeta = [];
16225
- this.header = this.translate.instant('eo.manage.rights.title');
16239
+ this.header = this.translate.instant('eo.manage.rights.document.title');
16226
16240
  this.orgaLabel = this.translate.instant('eo.manage.rights.element.label');
16227
16241
  this.shareForm = new FormGroup({});
16228
16242
  this.orgaField = new FormControl();
16243
+ this.includeChildrenField = new FormControl();
16229
16244
  this.shareForm.addControl('orgaFieldFCN', this.orgaField);
16245
+ this.shareForm.addControl('includeChildren', this.includeChildrenField);
16230
16246
  }
16231
16247
  ngOnInit() {
16232
16248
  let orgaValue = [];
16249
+ this.includeChildrenField.setValue(true);
16250
+ if (this.selection[0].isFolder) {
16251
+ this.header = this.translate.instant('eo.manage.rights.folder.title');
16252
+ }
16233
16253
  this.selection[0].additionalvisibility.forEach(avObject => {
16234
16254
  orgaValue.push(avObject.name);
16235
16255
  });
@@ -16248,7 +16268,7 @@ class ShareObjectComponent {
16248
16268
  }
16249
16269
  }
16250
16270
  save() {
16251
- this.dms.setOrganizationObjectsWithReadRights(this.selection, this.orgaField.value)
16271
+ this.dms.setOrganizationObjectsWithReadRights(this.selection, this.orgaField.value, this.includeChildrenField.value)
16252
16272
  .subscribe(() => {
16253
16273
  this.shareMessage();
16254
16274
  this.finished.emit();
@@ -16261,7 +16281,7 @@ class ShareObjectComponent {
16261
16281
  ShareObjectComponent.decorators = [
16262
16282
  { type: Component, args: [{
16263
16283
  selector: 'eo-share-object',
16264
- template: "<div class=\"eo-share-object\">\r\n <h2>{{header}}</h2>\r\n\r\n <form [formGroup]=\"shareForm\">\r\n <eo-form-input [label]=\"orgaLabel\">\r\n <eo-organization [dataMeta]=\"dataMeta\" [multiselect]=\"true\" formControlName=\"orgaFieldFCN\"></eo-organization>\r\n </eo-form-input>\r\n </form>\r\n\r\n <div class=\"form-buttons\">\r\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.manage.rights.cancel</button>\r\n <button class=\"primary\" (click)=\"save()\" [disabled]=\"shareForm.errors || !shareForm.dirty\" translate>eo.manage.rights.save</button>\r\n </div>\r\n</div>\r\n",
16284
+ template: "<div class=\"eo-share-object\">\r\n <h2>{{header}}</h2>\r\n\r\n <form [formGroup]=\"shareForm\">\r\n <eo-form-input [label]=\"orgaLabel\">\r\n <eo-organization [dataMeta]=\"dataMeta\" [multiselect]=\"true\" formControlName=\"orgaFieldFCN\"></eo-organization>\r\n </eo-form-input>\r\n <eo-form-input *ngIf=\"selection[0].isFolder\" [label]=\"('eo.manage.rights.folder.include.documents.label' | translate)\">\r\n <eo-checkbox formControlName=\"includeChildren\" [tristate]=\"false\"></eo-checkbox>\r\n </eo-form-input>\r\n </form>\r\n\r\n <div class=\"form-buttons\">\r\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.manage.rights.cancel</button>\r\n <button class=\"primary\" (click)=\"save()\" [disabled]=\"shareForm.errors || !shareForm.dirty\" translate>eo.manage.rights.apply</button>\r\n </div>\r\n</div>\r\n",
16265
16285
  styles: [".eo-share-object{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-share-object h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-share-object .form-buttons{padding:5px 0;text-align:right}.eo-share-object .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-share-object .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}"]
16266
16286
  },] }
16267
16287
  ];
@@ -16432,9 +16452,8 @@ class DeleteContentActionComponent extends DmsObjectTarget {
16432
16452
  isExecutable(item) {
16433
16453
  const isLocked = item.lock && item.lock.by.other;
16434
16454
  const hasContent = item.content && item.content.id === item.id;
16435
- return of(this.isAllowedState() && !item.isFinalized && hasContent && item.rights.edit && !isLocked);
16455
+ return of(this.isAllowedState() && !item.isFinalized && hasContent && item.rights.edit && !isLocked && item.type.minFiles === 0);
16436
16456
  }
16437
- ;
16438
16457
  run(selection) {
16439
16458
  selection.forEach(item => {
16440
16459
  this.dms.removeContent(item).subscribe(() => {
@@ -20393,7 +20412,7 @@ PrepareDetailsComponent.propDecorators = {
20393
20412
  };
20394
20413
 
20395
20414
  class InboxDetailsComponent extends UnsubscribeOnDestroy {
20396
- constructor(bpmService, userService, inboxService, selection, router, eventService, clipboardService, translate, pendingChanges, notify) {
20415
+ constructor(bpmService, userService, inboxService, selection, router, eventService, clipboardService, translate, pendingChanges, notify, storageService) {
20397
20416
  super();
20398
20417
  this.bpmService = bpmService;
20399
20418
  this.userService = userService;
@@ -20405,11 +20424,12 @@ class InboxDetailsComponent extends UnsubscribeOnDestroy {
20405
20424
  this.translate = translate;
20406
20425
  this.pendingChanges = pendingChanges;
20407
20426
  this.notify = notify;
20427
+ this.storageService = storageService;
20408
20428
  this.actionProcessing = { closed: true };
20409
20429
  this.initializing = { closed: true };
20410
20430
  this.filesAdding = { closed: true };
20431
+ this.storageKeyLastItemID = 'eo.inbox.lastItemID';
20411
20432
  this.externalPanels = new QueryList();
20412
- this.onDmsItemSelected = new EventEmitter();
20413
20433
  this.addDefaultActionIfEmpty = (res) => {
20414
20434
  var _a;
20415
20435
  if (!((_a = res.actions) === null || _a === void 0 ? void 0 : _a.length)) {
@@ -20625,13 +20645,12 @@ class InboxDetailsComponent extends UnsubscribeOnDestroy {
20625
20645
  }
20626
20646
  }
20627
20647
  /**
20628
- * Selects a work items file entry an emits onDmsItemSelected event.
20648
+ * Selects a work items file entry.
20629
20649
  * @param file FileEntry element to be selected
20630
20650
  */
20631
20651
  openWorkItemContent(file) {
20632
20652
  if (!file) {
20633
20653
  this.selectedContentFileId = null;
20634
- this.onDmsItemSelected.emit(null);
20635
20654
  if (this.applySelection) {
20636
20655
  this.selection.find(this.applySelection.out).focus(null);
20637
20656
  }
@@ -20642,7 +20661,6 @@ class InboxDetailsComponent extends UnsubscribeOnDestroy {
20642
20661
  id: file.id,
20643
20662
  type: file.type
20644
20663
  };
20645
- this.onDmsItemSelected.emit(params);
20646
20664
  if (this.applySelection) {
20647
20665
  this.selection.find(this.applySelection.out).focus(params);
20648
20666
  }
@@ -20782,7 +20800,10 @@ class InboxDetailsComponent extends UnsubscribeOnDestroy {
20782
20800
  this.selection
20783
20801
  .find(this.applySelection.in)
20784
20802
  .focus$.pipe(takeUntil(this.componentDestroyed$))
20785
- .subscribe((item) => (this.item = item));
20803
+ .subscribe((item) => {
20804
+ this.item = item;
20805
+ this.storageService.setItem(this.storageKeyLastItemID, this.item.id);
20806
+ });
20786
20807
  }
20787
20808
  }
20788
20809
  ngAfterViewInit() {
@@ -20808,7 +20829,8 @@ InboxDetailsComponent.ctorParameters = () => [
20808
20829
  { type: ClipboardService },
20809
20830
  { type: TranslateService },
20810
20831
  { type: PendingChangesService },
20811
- { type: NotificationsService }
20832
+ { type: NotificationsService },
20833
+ { type: LocalStorageService }
20812
20834
  ];
20813
20835
  InboxDetailsComponent.propDecorators = {
20814
20836
  bpmFormEl: [{ type: ViewChild, args: ['bpmForm',] }],
@@ -20817,7 +20839,6 @@ InboxDetailsComponent.propDecorators = {
20817
20839
  emptyState: [{ type: Input }],
20818
20840
  applySelection: [{ type: Input }],
20819
20841
  item: [{ type: Input, args: ['item',] }],
20820
- onDmsItemSelected: [{ type: Output }],
20821
20842
  dataType: [{ type: HostBinding, args: ['attr.data-type',] }]
20822
20843
  };
20823
20844
 
@@ -22151,7 +22172,7 @@ class ResultStateComponent extends UnsubscribeOnDestroy {
22151
22172
  if (params.query) {
22152
22173
  if (!!this.pendingChanges.check())
22153
22174
  return;
22154
- this.query = JSON.parse(decodeURIComponent(params.query));
22175
+ this.query = Utils.formDataParse(decodeURIComponent(params.query));
22155
22176
  this.typeName = this.query.types && this.query.types.length === 1 ? this.query.types[0] : 'default';
22156
22177
  this.clearAfterExecute = params.silent;
22157
22178
  this.searchTerm = this.query.term;
@@ -22330,10 +22351,10 @@ class AboutStateComponent {
22330
22351
  this.http = http;
22331
22352
  this.userService = userService;
22332
22353
  this.config = config;
22333
- 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.15.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" }];
22354
+ 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.2", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "7.0.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
22334
22355
  this.ctrl = {
22335
22356
  productName: 'yuuvis® RAD client',
22336
- clientVersion: '8.15.0-rc.1'
22357
+ clientVersion: '8.16.0-rc.2'
22337
22358
  };
22338
22359
  this.licenses = {
22339
22360
  'MIT': {
@@ -23740,7 +23761,7 @@ var InboxTypes;
23740
23761
  })(InboxTypes || (InboxTypes = {}));
23741
23762
 
23742
23763
  class InboxStateComponent extends UnsubscribeOnDestroy {
23743
- constructor(translate, selection, titleService, inboxService, pendingChanges, empty, eventService, route) {
23764
+ constructor(translate, selection, titleService, inboxService, pendingChanges, empty, eventService, route, storageService) {
23744
23765
  super();
23745
23766
  this.translate = translate;
23746
23767
  this.selection = selection;
@@ -23750,6 +23771,7 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
23750
23771
  this.empty = empty;
23751
23772
  this.eventService = eventService;
23752
23773
  this.route = route;
23774
+ this.storageService = storageService;
23753
23775
  this.inboxFilterFields = [];
23754
23776
  this.typeFilterFields = [];
23755
23777
  this.inboxSelectionId = 'inbox';
@@ -23759,6 +23781,7 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
23759
23781
  this.defaultFilterParams = {};
23760
23782
  this.emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
23761
23783
  this.inboxChanged = false;
23784
+ this.storageKeyLastItemID = 'eo.inbox.lastItemID';
23762
23785
  this.titleService.setBaseTitle(this.translate.instant('eo.inbox.list.title'));
23763
23786
  //secondary selection instance for inbox items
23764
23787
  this.inboxSelection = this.selection.createNew(this.inboxSelectionId);
@@ -23794,9 +23817,6 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
23794
23817
  hasPendingChanges() {
23795
23818
  return this.pendingChanges.hasPendingTask();
23796
23819
  }
23797
- onDmsItemSelected(data) {
23798
- this.selectedDmsParams = data;
23799
- }
23800
23820
  refreshGrid() {
23801
23821
  this.inboxChanged = false;
23802
23822
  this.inboxSelection.disable(false);
@@ -23899,6 +23919,14 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
23899
23919
  this.gridData = data;
23900
23920
  this.updateGrid(this.gridData);
23901
23921
  });
23922
+ const lastInboxItemID = this.storageService.getItem(this.storageKeyLastItemID);
23923
+ if (lastInboxItemID) {
23924
+ const item = this.gridData.find(i => i.id === lastInboxItemID);
23925
+ if (item) {
23926
+ this.selectFirst = false;
23927
+ setTimeout(() => this.eoGrid.selectRow(item), 500);
23928
+ }
23929
+ }
23902
23930
  }
23903
23931
  ngOnDestroy() {
23904
23932
  this.selection.clear();
@@ -23907,7 +23935,7 @@ class InboxStateComponent extends UnsubscribeOnDestroy {
23907
23935
  InboxStateComponent.decorators = [
23908
23936
  { type: Component, args: [{
23909
23937
  selector: 'eo-inbox-state',
23910
- 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",
23938
+ 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",
23911
23939
  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)}"]
23912
23940
  },] }
23913
23941
  ];
@@ -23919,7 +23947,8 @@ InboxStateComponent.ctorParameters = () => [
23919
23947
  { type: PendingChangesService },
23920
23948
  { type: EmptyStateService },
23921
23949
  { type: EventService },
23922
- { type: ActivatedRoute }
23950
+ { type: ActivatedRoute },
23951
+ { type: LocalStorageService }
23923
23952
  ];
23924
23953
  InboxStateComponent.propDecorators = {
23925
23954
  eoGrid: [{ type: ViewChild, args: ['eoGrid',] }]