@eo-sdk/client 11.12.1 → 11.13.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.
- package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts +1 -0
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
- package/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.d.ts +6 -3
- package/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.d.ts.map +1 -1
- package/app/eo-framework/actions/actions/download-action/download-action.d.ts +7 -3
- package/app/eo-framework/actions/actions/download-action/download-action.d.ts.map +1 -1
- package/app/eo-framework/actions/actions/email/email/email.component.d.ts +7 -4
- package/app/eo-framework/actions/actions/email/email/email.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +10 -2
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/form-elements.module.d.ts.map +1 -1
- package/app/eo-framework/grid/filters/dynamic-list-filter.component.d.ts +2 -2
- package/app/eo-framework/grid/filters/dynamic-list-filter.component.d.ts.map +1 -1
- package/app/eo-framework/list-container/list-container.component.d.ts +2 -2
- package/app/eo-framework/list-container/list-container.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +33 -35
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts +10 -3
- package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
- package/app/eo-framework/result-list/result-list.module.d.ts +3 -1
- package/app/eo-framework/result-list/result-list.module.d.ts.map +1 -1
- package/app/eo-framework/settings/permissions/permissions.component.d.ts +3 -1
- package/app/eo-framework/settings/permissions/permissions.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +3 -2
- package/assets/_default/i18n/en.json +3 -2
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +6 -5
- package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
- package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +18 -10
- package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
- package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +1 -1
- package/esm2022/app/eo-client/process-state/process-state.component.mjs +1 -1
- package/esm2022/app/eo-client/result-state/result-state.component.mjs +1 -1
- package/esm2022/app/eo-client/version-state/version-state.component.mjs +1 -1
- package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +16 -8
- package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +11 -7
- package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +21 -12
- package/esm2022/app/eo-framework/eo-framework.module.mjs +2 -2
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +23 -4
- package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +1 -28
- package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/list-container/list-container.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-details/object-details.component.mjs +219 -216
- package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +2 -2
- package/esm2022/app/eo-framework/result-list/result-list.component.mjs +46 -25
- package/esm2022/app/eo-framework/result-list/result-list.module.mjs +12 -4
- package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +10 -2
- package/fesm2022/eo-sdk-client.mjs +1308 -1254
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/misc/scripts/prebuild-about-state.js +7 -5
- package/package.json +2 -2
|
@@ -7,7 +7,7 @@ import { HttpResponse, HttpErrorResponse, HTTP_INTERCEPTORS, provideHttpClient,
|
|
|
7
7
|
import { ReplaySubject, BehaviorSubject, from, forkJoin, of, Subject, debounceTime as debounceTime$1, fromEvent, firstValueFrom, AsyncSubject, tap as tap$1, Observable, EMPTY, map as map$2, skip, switchMap as switchMap$1, catchError as catchError$1 } from 'rxjs';
|
|
8
8
|
import { groupBy, mergeMap, reduce, tap, catchError, map, debounceTime, throttleTime, filter as filter$1, switchMap, take as take$1, delay, combineLatest, finalize, pluck, withLatestFrom, first as first$1 } from 'rxjs/operators';
|
|
9
9
|
import * as i1 from '@eo-sdk/core';
|
|
10
|
-
import { SearchQuery, SearchState, EnaioEvent, Utils, CORE_CONFIG, UploadTarget, DmsObject, EnvironmentEnaio, SearchFilter, RangeValue, AuthService, Logger, NotificationsService, TranslateService, EoError, SearchService, InboxItem, Process, PreparedItem, WorkItem, StoredQuery, ClipboardAction, QueryScope, EoSharedModule, FieldDefinition, SubscriptionMode, TranslateModule, UploadFileItem,
|
|
10
|
+
import { SearchQuery, SearchState, EnaioEvent, Utils, CORE_CONFIG, UploadTarget, DmsObject, EnvironmentEnaio, SearchFilter, RangeValue, AuthService, Logger, NotificationsService, TranslateService, EoError, SearchService, InboxItem, Process, PreparedItem, WorkItem, StoredQuery, ClipboardAction, QueryScope, EoSharedModule, FieldDefinition, SubscriptionMode, TranslateModule, UploadFileItem, StoredQueriesService, SortOption, SearchResult } from '@eo-sdk/core';
|
|
11
11
|
import * as i4 from '@ngx-translate/core';
|
|
12
12
|
import * as i2$1 from '@angular/router';
|
|
13
13
|
import { NavigationStart, Router, RouterModule, NavigationEnd } from '@angular/router';
|
|
@@ -7061,10 +7061,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
7061
7061
|
}], ctorParameters: () => [{ type: i1.AutocompleteService }, { type: ObjectFormHelperService }] });
|
|
7062
7062
|
|
|
7063
7063
|
class DynamicListComponent {
|
|
7064
|
-
|
|
7064
|
+
// eslint-disable-next-line max-len
|
|
7065
|
+
constructor(dynamicListService, localStorageService, objectFormHelperService, eventService) {
|
|
7065
7066
|
this.dynamicListService = dynamicListService;
|
|
7066
7067
|
this.localStorageService = localStorageService;
|
|
7067
7068
|
this.objectFormHelperService = objectFormHelperService;
|
|
7069
|
+
this.eventService = eventService;
|
|
7068
7070
|
this.hasAutocompleteUrl = false;
|
|
7069
7071
|
this.hasAutocompleteValuesCached = false;
|
|
7070
7072
|
this.autocompleteUrlValue = null;
|
|
@@ -7268,6 +7270,12 @@ class DynamicListComponent {
|
|
|
7268
7270
|
if (this.situation === 'SEARCH') {
|
|
7269
7271
|
this.multiselect = true;
|
|
7270
7272
|
}
|
|
7273
|
+
this.eventService.on(EnaioEvent.CLIENT_LOCALE_CHANGED).subscribe(() => {
|
|
7274
|
+
this.resetCachedValues();
|
|
7275
|
+
});
|
|
7276
|
+
this.eventService.on(EnaioEvent.SCHEMA_LOCALE_CHANGED).subscribe(() => {
|
|
7277
|
+
this.resetCachedValues();
|
|
7278
|
+
});
|
|
7271
7279
|
}
|
|
7272
7280
|
validate(c) {
|
|
7273
7281
|
return (this.isValid) ? null : {
|
|
@@ -7440,7 +7448,17 @@ class DynamicListComponent {
|
|
|
7440
7448
|
(acNode.data[this.descriptionField] && acNode.data[this.descriptionField].toString().toLowerCase().indexOf(term?.toString().toLowerCase()) !== -1);
|
|
7441
7449
|
}).slice(0, 10);
|
|
7442
7450
|
}
|
|
7443
|
-
|
|
7451
|
+
/**
|
|
7452
|
+
* Resets the cached autocomplete values.
|
|
7453
|
+
*
|
|
7454
|
+
* This method sets the `hasAutocompleteValuesCached` flag to `false` and removes
|
|
7455
|
+
* the cached autocomplete values from local storage using the `formControlName`.
|
|
7456
|
+
*/
|
|
7457
|
+
resetCachedValues() {
|
|
7458
|
+
this.hasAutocompleteValuesCached = false;
|
|
7459
|
+
this.localStorageService.removeItem('autocomplete_' + this.formControlName);
|
|
7460
|
+
}
|
|
7461
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicListComponent, deps: [{ token: DynamicListService }, { token: i1.LocalStorageService }, { token: ObjectFormHelperService }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7444
7462
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DynamicListComponent, selector: "eo-dynamic-list", inputs: { situation: "situation", multiselect: "multiselect", pickerTitle: "pickerTitle", readonly: "readonly", formControlName: "formControlName", formElementChanges: "formElementChanges", filterFunction: "filterFunction", listObject: "listObject", autocompleteUrl: "autocompleteUrl" }, providers: [
|
|
7445
7463
|
{
|
|
7446
7464
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -7468,7 +7486,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
7468
7486
|
multi: true,
|
|
7469
7487
|
}
|
|
7470
7488
|
], template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{selectedNodes?.title ? title : valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"] }]
|
|
7471
|
-
}], ctorParameters: () => [{ type: DynamicListService }, { type: i1.LocalStorageService }, { type: ObjectFormHelperService }], propDecorators: { autoCompleteInput: [{
|
|
7489
|
+
}], ctorParameters: () => [{ type: DynamicListService }, { type: i1.LocalStorageService }, { type: ObjectFormHelperService }, { type: i1.EventService }], propDecorators: { autoCompleteInput: [{
|
|
7472
7490
|
type: ViewChild,
|
|
7473
7491
|
args: ['autocomplete']
|
|
7474
7492
|
}], autoCompleteButton: [{
|
|
@@ -8839,7 +8857,7 @@ let RowEditComponent = class RowEditComponent {
|
|
|
8839
8857
|
this.onSave.emit({
|
|
8840
8858
|
index: this._row.index,
|
|
8841
8859
|
rowData: this._getFormData(),
|
|
8842
|
-
createNewRow: this.createNewRow
|
|
8860
|
+
createNewRow: this.isNewRow && this.createNewRow
|
|
8843
8861
|
});
|
|
8844
8862
|
}
|
|
8845
8863
|
this.saving = false;
|
|
@@ -11408,9 +11426,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
11408
11426
|
}] } });
|
|
11409
11427
|
|
|
11410
11428
|
class DownloadActionComponent extends DmsObjectTarget {
|
|
11411
|
-
constructor(translate) {
|
|
11429
|
+
constructor(translate, config, userService) {
|
|
11412
11430
|
super();
|
|
11413
11431
|
this.translate = translate;
|
|
11432
|
+
this.config = config;
|
|
11433
|
+
this.userService = userService;
|
|
11414
11434
|
this.priority = 2;
|
|
11415
11435
|
this.iconSrc = 'assets/_default/svg/ic_content-download.svg';
|
|
11416
11436
|
this.group = 'common';
|
|
@@ -11419,20 +11439,22 @@ class DownloadActionComponent extends DmsObjectTarget {
|
|
|
11419
11439
|
this.label = this.translate.instant('eo.action.download.dms.object.content.label');
|
|
11420
11440
|
this.description = this.translate.instant('eo.action.download.dms.object.content.description');
|
|
11421
11441
|
this.header = this.translate.instant('eo.export.title');
|
|
11442
|
+
this.requiredRoles = this.config.getRaw('requiredRolesExport');
|
|
11422
11443
|
}
|
|
11423
11444
|
isExecutable(element) {
|
|
11424
|
-
|
|
11445
|
+
const isAllowed = !this.requiredRoles || this.userService.getCurrentUser().roles.some(role => this.requiredRoles.includes(role.name));
|
|
11446
|
+
return of(!!element.content?.id && isAllowed);
|
|
11425
11447
|
}
|
|
11426
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DownloadActionComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11427
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DownloadActionComponent, selector: "eo-download-content", usesInheritance: true, ngImport: i0, template:
|
|
11448
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DownloadActionComponent, deps: [{ token: i1.TranslateService }, { token: i1.Config }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11449
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DownloadActionComponent, selector: "eo-download-content", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
11428
11450
|
}
|
|
11429
11451
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DownloadActionComponent, decorators: [{
|
|
11430
11452
|
type: Component,
|
|
11431
11453
|
args: [{
|
|
11432
11454
|
selector: 'eo-download-content',
|
|
11433
|
-
template:
|
|
11455
|
+
template: ''
|
|
11434
11456
|
}]
|
|
11435
|
-
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
|
11457
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i1.Config }, { type: i1.UserService }] });
|
|
11436
11458
|
|
|
11437
11459
|
class OpenDocumentComponent {
|
|
11438
11460
|
constructor(userService, agentService, translate, objectFormHelperService) {
|
|
@@ -11645,16 +11667,7 @@ class FormElementsModule {
|
|
|
11645
11667
|
ReactiveFormsModule,
|
|
11646
11668
|
UiModule,
|
|
11647
11669
|
TreeModule,
|
|
11648
|
-
// InputTextModule,
|
|
11649
|
-
// DialogModule,
|
|
11650
|
-
// InputMaskModule,
|
|
11651
|
-
// CheckboxModule,
|
|
11652
|
-
// TriStateCheckboxModule,
|
|
11653
|
-
// InputTextareaModule,
|
|
11654
|
-
// ChipsModule,
|
|
11655
|
-
// DropdownModule,
|
|
11656
11670
|
RouterModule,
|
|
11657
|
-
// SharedModule,
|
|
11658
11671
|
AccordionModule,
|
|
11659
11672
|
YvcChipsModule,
|
|
11660
11673
|
YvcCheckboxModule,
|
|
@@ -11680,16 +11693,7 @@ class FormElementsModule {
|
|
|
11680
11693
|
ReactiveFormsModule,
|
|
11681
11694
|
UiModule,
|
|
11682
11695
|
TreeModule,
|
|
11683
|
-
// InputTextModule,
|
|
11684
|
-
// DialogModule,
|
|
11685
|
-
// InputMaskModule,
|
|
11686
|
-
// CheckboxModule,
|
|
11687
|
-
// TriStateCheckboxModule,
|
|
11688
|
-
// InputTextareaModule,
|
|
11689
|
-
// ChipsModule,
|
|
11690
|
-
// DropdownModule,
|
|
11691
11696
|
RouterModule,
|
|
11692
|
-
// SharedModule,
|
|
11693
11697
|
AccordionModule,
|
|
11694
11698
|
YvcChipsModule,
|
|
11695
11699
|
YvcCheckboxModule,
|
|
@@ -11707,16 +11711,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
11707
11711
|
ReactiveFormsModule,
|
|
11708
11712
|
UiModule,
|
|
11709
11713
|
TreeModule,
|
|
11710
|
-
// InputTextModule,
|
|
11711
|
-
// DialogModule,
|
|
11712
|
-
// InputMaskModule,
|
|
11713
|
-
// CheckboxModule,
|
|
11714
|
-
// TriStateCheckboxModule,
|
|
11715
|
-
// InputTextareaModule,
|
|
11716
|
-
// ChipsModule,
|
|
11717
|
-
// DropdownModule,
|
|
11718
11714
|
RouterModule,
|
|
11719
|
-
// SharedModule,
|
|
11720
11715
|
AccordionModule,
|
|
11721
11716
|
YvcChipsModule,
|
|
11722
11717
|
YvcCheckboxModule,
|
|
@@ -11873,8 +11868,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
11873
11868
|
}] } });
|
|
11874
11869
|
|
|
11875
11870
|
class DynamicListFilterComponent extends DynamicListComponent {
|
|
11876
|
-
constructor(localStorageService, objectFormHelperService, dynamicListService) {
|
|
11877
|
-
super(dynamicListService, localStorageService, objectFormHelperService);
|
|
11871
|
+
constructor(localStorageService, objectFormHelperService, dynamicListService, eventService) {
|
|
11872
|
+
super(dynamicListService, localStorageService, objectFormHelperService, eventService);
|
|
11878
11873
|
this.params = {};
|
|
11879
11874
|
this.multiselect = true;
|
|
11880
11875
|
this.situation = 'SEARCH';
|
|
@@ -11921,13 +11916,13 @@ class DynamicListFilterComponent extends DynamicListComponent {
|
|
|
11921
11916
|
this.listObject = { entries: (this.params.colDef.filterParams.values || []).map(value => ({ value })) };
|
|
11922
11917
|
this.pickerTitle = this.params.colDef.headerName;
|
|
11923
11918
|
}
|
|
11924
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicListFilterComponent, deps: [{ token: i1.LocalStorageService }, { token: ObjectFormHelperService }, { token: DynamicListService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11919
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicListFilterComponent, deps: [{ token: i1.LocalStorageService }, { token: ObjectFormHelperService }, { token: DynamicListService }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11925
11920
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DynamicListFilterComponent, selector: "eo-dynamic-list-filter", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{selectedNodes?.title ? title : valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i5.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }] }); }
|
|
11926
11921
|
}
|
|
11927
11922
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicListFilterComponent, decorators: [{
|
|
11928
11923
|
type: Component,
|
|
11929
11924
|
args: [{ selector: 'eo-dynamic-list-filter', template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{selectedNodes?.title ? title : valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"] }]
|
|
11930
|
-
}], ctorParameters: () => [{ type: i1.LocalStorageService }, { type: ObjectFormHelperService }, { type: DynamicListService }], propDecorators: { eoDialog: [{
|
|
11925
|
+
}], ctorParameters: () => [{ type: i1.LocalStorageService }, { type: ObjectFormHelperService }, { type: DynamicListService }, { type: i1.EventService }], propDecorators: { eoDialog: [{
|
|
11931
11926
|
type: ViewChild,
|
|
11932
11927
|
args: [EoDialogComponent]
|
|
11933
11928
|
}] } });
|
|
@@ -13336,10 +13331,10 @@ class ListContainerComponent {
|
|
|
13336
13331
|
.find(this.applySelection.out)
|
|
13337
13332
|
.focus(data);
|
|
13338
13333
|
}
|
|
13339
|
-
onDoubleClick(event) {
|
|
13334
|
+
onDoubleClick(event, forceOpenObject = false) {
|
|
13340
13335
|
const { id, type, version, intent } = this.parseDmsParams(event.data);
|
|
13341
13336
|
if (id) {
|
|
13342
|
-
return this.openObject(id, type, version, intent, event.event.ctrlKey);
|
|
13337
|
+
return this.openObject(id, type, version, intent, event.event.ctrlKey, forceOpenObject);
|
|
13343
13338
|
}
|
|
13344
13339
|
}
|
|
13345
13340
|
onSelectionChanged(selectedData) {
|
|
@@ -13348,8 +13343,8 @@ class ListContainerComponent {
|
|
|
13348
13343
|
onContextMenu(selectedData, target) {
|
|
13349
13344
|
this.showActions(selectedData, target);
|
|
13350
13345
|
}
|
|
13351
|
-
openObject(id, _type, version, intent, newTab = false) {
|
|
13352
|
-
if (this.router.url.startsWith('/object')) {
|
|
13346
|
+
openObject(id, _type, version, intent, newTab = false, forceOpenObject = false) {
|
|
13347
|
+
if (this.router.url.startsWith('/object') && !forceOpenObject) {
|
|
13353
13348
|
return;
|
|
13354
13349
|
}
|
|
13355
13350
|
version = this.applyVersion ? version : undefined;
|
|
@@ -14068,17 +14063,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
14068
14063
|
}] });
|
|
14069
14064
|
|
|
14070
14065
|
class EmailComponent {
|
|
14071
|
-
constructor(location, agentService, elemRef) {
|
|
14066
|
+
constructor(location, agentService, elemRef, config, userService) {
|
|
14072
14067
|
this.location = location;
|
|
14073
14068
|
this.agentService = agentService;
|
|
14074
14069
|
this.elemRef = elemRef;
|
|
14070
|
+
this.config = config;
|
|
14071
|
+
this.userService = userService;
|
|
14075
14072
|
this.finished = new EventEmitter();
|
|
14076
14073
|
this.canceled = new EventEmitter();
|
|
14074
|
+
this.requiredRoles = this.config.getRaw('requiredRolesExport');
|
|
14077
14075
|
}
|
|
14078
14076
|
ngAfterViewInit() {
|
|
14079
14077
|
setTimeout(() => {
|
|
14080
14078
|
this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
|
|
14081
|
-
|
|
14079
|
+
const isAllowed = !this.requiredRoles || this.userService.getCurrentUser().roles.some(role => this.requiredRoles.includes(role.name));
|
|
14080
|
+
this.isExecutable = isAllowed
|
|
14081
|
+
&& this.agentService.isConnected
|
|
14082
|
+
&& !this.selection[0].isFolder
|
|
14083
|
+
&& this.selection[0].content
|
|
14084
|
+
&& (this.selection[0].content.count !== 0 || this.selection[0].content.linked);
|
|
14082
14085
|
});
|
|
14083
14086
|
}
|
|
14084
14087
|
runLink() {
|
|
@@ -14134,22 +14137,22 @@ class EmailComponent {
|
|
|
14134
14137
|
}
|
|
14135
14138
|
showDescription(i, event) {
|
|
14136
14139
|
this.actionDescription = i === this.actionDescription ? null : i;
|
|
14137
|
-
this.showDescriptionOrginal = this.actionDescription
|
|
14138
|
-
this.showDescriptionPdf = this.actionDescription
|
|
14139
|
-
this.showDescriptionLink = this.actionDescription
|
|
14140
|
+
this.showDescriptionOrginal = this.actionDescription && this.actionDescription === 'original';
|
|
14141
|
+
this.showDescriptionPdf = this.actionDescription && this.actionDescription === 'pdf';
|
|
14142
|
+
this.showDescriptionLink = this.actionDescription && this.actionDescription === 'link';
|
|
14140
14143
|
event.stopPropagation();
|
|
14141
14144
|
event.preventDefault();
|
|
14142
14145
|
}
|
|
14143
14146
|
cancel() {
|
|
14144
14147
|
this.canceled.emit();
|
|
14145
14148
|
}
|
|
14146
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EmailComponent, deps: [{ token: i1$2.Location }, { token: AgentService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14149
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EmailComponent, deps: [{ token: i1$2.Location }, { token: AgentService }, { token: i0.ElementRef }, { token: i1.Config }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14147
14150
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: EmailComponent, selector: "eo-email", inputs: { selection: "selection" }, outputs: { finished: "finished", canceled: "canceled" }, ngImport: i0, template: "<div class=\"body\" eoTrapFocus>\n <div class=\"navigation\">\n <div class=\"group-title\" translate>eo.email.title</div>\n <div class=\"nav-item\">\n <a tabindex=\"0\" (keydown.enter)=\"runLink()\" (click)=\"runLink()\">{{'eo.action.menu.send.email.link.label'|\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('link', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionLink\" translate>eo.action.menu.send.email.link.description\n </div>\n </div>\n <div class=\"nav-item\" *ngIf=\"isExecutable\">\n <a tabindex=\"0\" (keydown.enter)=\"runOriginal()\" (click)=\"runOriginal()\">{{'eo.action.menu.send.email.file.label'|\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('original', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionOrginal\" translate>eo.action.menu.send.email.file.description</div>\n </div>\n <div class=\"nav-item\" *ngIf=\"isExecutable\">\n <a tabindex=\"0\" (keydown.enter)=\"runPdf()\" (click)=\"runPdf()\">{{'eo.action.menu.send.email.file.pdf.label' |\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('pdf', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionPdf\" translate>eo.action.menu.send.email.file.pdf.description</div>\n </div>\n </div>\n <div class=\"form-buttons\">\n <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\n </div>\n</div>", styles: [".body{padding:var(--app-pane-padding);min-width:200px;display:inline-block;width:90%}.body .group-title{background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.body .nav-item{position:relative;top:0;right:0;min-width:100px;z-index:100;padding-bottom:9px;border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.body .nav-item .description{border-radius:2px;-webkit-border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.body .nav-item eo-icon{margin:0 calc(var(--app-pane-padding) / 2)}.body .nav-item eo-icon.info-icon{margin-left:auto;margin-bottom:7px;margin-top:-38px;border-radius:50%;color:rgba(var(--color-white-rgb),.3);cursor:pointer}.body .nav-item eo-icon.info-icon:hover{background-color:var(--color-primary)}.body .nav-item a{padding:var(--app-pane-padding);text-decoration:none;color:inherit;display:block;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.body .nav-item a.active-link{background:rgba(var(--color-white-rgb),.1);cursor:default}.body .nav-item a:not(.active-link):focus,.body .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}.body .form-buttons{padding:5px 0;text-align:right}.body .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2);background-color:#ffffff1a!important}.body .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);background-color:#ffffff1a!important;margin-right:0}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
14148
14151
|
}
|
|
14149
14152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EmailComponent, decorators: [{
|
|
14150
14153
|
type: Component,
|
|
14151
14154
|
args: [{ selector: 'eo-email', template: "<div class=\"body\" eoTrapFocus>\n <div class=\"navigation\">\n <div class=\"group-title\" translate>eo.email.title</div>\n <div class=\"nav-item\">\n <a tabindex=\"0\" (keydown.enter)=\"runLink()\" (click)=\"runLink()\">{{'eo.action.menu.send.email.link.label'|\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('link', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionLink\" translate>eo.action.menu.send.email.link.description\n </div>\n </div>\n <div class=\"nav-item\" *ngIf=\"isExecutable\">\n <a tabindex=\"0\" (keydown.enter)=\"runOriginal()\" (click)=\"runOriginal()\">{{'eo.action.menu.send.email.file.label'|\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('original', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionOrginal\" translate>eo.action.menu.send.email.file.description</div>\n </div>\n <div class=\"nav-item\" *ngIf=\"isExecutable\">\n <a tabindex=\"0\" (keydown.enter)=\"runPdf()\" (click)=\"runPdf()\">{{'eo.action.menu.send.email.file.pdf.label' |\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('pdf', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionPdf\" translate>eo.action.menu.send.email.file.pdf.description</div>\n </div>\n </div>\n <div class=\"form-buttons\">\n <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\n </div>\n</div>", styles: [".body{padding:var(--app-pane-padding);min-width:200px;display:inline-block;width:90%}.body .group-title{background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.body .nav-item{position:relative;top:0;right:0;min-width:100px;z-index:100;padding-bottom:9px;border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.body .nav-item .description{border-radius:2px;-webkit-border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.body .nav-item eo-icon{margin:0 calc(var(--app-pane-padding) / 2)}.body .nav-item eo-icon.info-icon{margin-left:auto;margin-bottom:7px;margin-top:-38px;border-radius:50%;color:rgba(var(--color-white-rgb),.3);cursor:pointer}.body .nav-item eo-icon.info-icon:hover{background-color:var(--color-primary)}.body .nav-item a{padding:var(--app-pane-padding);text-decoration:none;color:inherit;display:block;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.body .nav-item a.active-link{background:rgba(var(--color-white-rgb),.1);cursor:default}.body .nav-item a:not(.active-link):focus,.body .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}.body .form-buttons{padding:5px 0;text-align:right}.body .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2);background-color:#ffffff1a!important}.body .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);background-color:#ffffff1a!important;margin-right:0}\n"] }]
|
|
14152
|
-
}], ctorParameters: () => [{ type: i1$2.Location }, { type: AgentService }, { type: i0.ElementRef }], propDecorators: { selection: [{
|
|
14155
|
+
}], ctorParameters: () => [{ type: i1$2.Location }, { type: AgentService }, { type: i0.ElementRef }, { type: i1.Config }, { type: i1.UserService }], propDecorators: { selection: [{
|
|
14153
14156
|
type: Input
|
|
14154
14157
|
}], finished: [{
|
|
14155
14158
|
type: Output
|
|
@@ -14186,19 +14189,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
14186
14189
|
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
|
14187
14190
|
|
|
14188
14191
|
class ClipboardObjectActionComponent {
|
|
14189
|
-
constructor(translate, toast, location, agentService, elemRef) {
|
|
14192
|
+
constructor(translate, toast, location, agentService, elemRef, config, userService) {
|
|
14190
14193
|
this.translate = translate;
|
|
14191
14194
|
this.toast = toast;
|
|
14192
14195
|
this.location = location;
|
|
14193
14196
|
this.agentService = agentService;
|
|
14194
14197
|
this.elemRef = elemRef;
|
|
14198
|
+
this.config = config;
|
|
14199
|
+
this.userService = userService;
|
|
14195
14200
|
this.finished = new EventEmitter();
|
|
14196
14201
|
this.canceled = new EventEmitter();
|
|
14202
|
+
this.requiredRoles = this.config.getRaw('requiredRolesExport');
|
|
14197
14203
|
}
|
|
14198
14204
|
ngAfterViewInit() {
|
|
14199
14205
|
setTimeout(() => {
|
|
14200
14206
|
this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
|
|
14201
|
-
|
|
14207
|
+
const isAllowed = !this.requiredRoles || this.userService.getCurrentUser().roles.some(role => this.requiredRoles.includes(role.name));
|
|
14208
|
+
this.isExecutable = isAllowed
|
|
14209
|
+
&& this.agentService.isConnected
|
|
14210
|
+
&& !this.selection[0].isFolder
|
|
14211
|
+
&& this.selection[0].content
|
|
14212
|
+
&& (this.selection[0].content.count !== 0 || this.selection[0].content.linked);
|
|
14202
14213
|
});
|
|
14203
14214
|
}
|
|
14204
14215
|
runLink() {
|
|
@@ -14249,22 +14260,22 @@ class ClipboardObjectActionComponent {
|
|
|
14249
14260
|
}
|
|
14250
14261
|
showDescription(i, event) {
|
|
14251
14262
|
this.actionDescription = i === this.actionDescription ? null : i;
|
|
14252
|
-
this.showDescriptionOrginal = this.actionDescription
|
|
14253
|
-
this.showDescriptionPdf = this.actionDescription
|
|
14254
|
-
this.showDescriptionLink = this.actionDescription
|
|
14263
|
+
this.showDescriptionOrginal = this.actionDescription && this.actionDescription === 'original';
|
|
14264
|
+
this.showDescriptionPdf = this.actionDescription && this.actionDescription === 'pdf';
|
|
14265
|
+
this.showDescriptionLink = this.actionDescription && this.actionDescription === 'link';
|
|
14255
14266
|
event.stopPropagation();
|
|
14256
14267
|
event.preventDefault();
|
|
14257
14268
|
}
|
|
14258
14269
|
cancel() {
|
|
14259
14270
|
this.canceled.emit();
|
|
14260
14271
|
}
|
|
14261
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ClipboardObjectActionComponent, deps: [{ token: i1.TranslateService }, { token: i1.NotificationsService }, { token: i1$2.Location }, { token: AgentService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14272
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ClipboardObjectActionComponent, deps: [{ token: i1.TranslateService }, { token: i1.NotificationsService }, { token: i1$2.Location }, { token: AgentService }, { token: i0.ElementRef }, { token: i1.Config }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14262
14273
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ClipboardObjectActionComponent, selector: "eo-clipboard-object-action", inputs: { selection: "selection" }, outputs: { finished: "finished", canceled: "canceled" }, ngImport: i0, template: "<div class=\"body\" eoTrapFocus>\n <div class=\"navigation\">\n <div class=\"group-title\" translate>eo.action.menu.clipboard.label</div>\n <div class=\"nav-item\">\n <a tabindex=\"0\" (keydown.enter)=\"runLink()\" (click)=\"runLink()\">{{'eo.action.menu.clipboard.link.label'|\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('link', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionLink\" translate>eo.action.menu.clipboard.link.description\n </div>\n </div>\n <div class=\"nav-item\" *ngIf=\"isExecutable\">\n <a tabindex=\"0\" (keydown.enter)=\"runOriginal()\" (click)=\"runOriginal()\">{{'eo.action.menu.clipboard.file.label'|\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('original', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionOrginal\" translate>eo.action.menu.clipboard.file.description</div>\n </div>\n <div class=\"nav-item\" *ngIf=\"isExecutable\">\n <a tabindex=\"0\" (keydown.enter)=\"runPdf()\" (click)=\"runPdf()\">{{'eo.action.menu.clipboard.file.pdf.label' |\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('pdf', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionPdf\" translate>eo.action.menu.clipboard.file.pdf.description </div>\n </div>\n </div>\n <div class=\"form-buttons\">\n <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\n </div>\n</div>", styles: [".body{padding:var(--app-pane-padding);min-width:200px;display:inline-block;width:90%}.body .group-title{background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.body .nav-item{position:relative;top:0;right:0;min-width:100px;z-index:100;padding-bottom:8px;border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.body .nav-item .description{border-radius:2px;-webkit-border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.body .nav-item eo-icon{margin:0 calc(var(--app-pane-padding) / 2)}.body .nav-item eo-icon.info-icon{margin-left:auto;margin-bottom:7px;margin-top:-38px;border-radius:50%;color:rgba(var(--color-white-rgb),.3);cursor:pointer}.body .nav-item eo-icon.info-icon:hover{background-color:var(--color-primary)}.body .nav-item a{padding:var(--app-pane-padding);text-decoration:none;color:inherit;display:block;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.body .nav-item a.active-link{background:rgba(var(--color-white-rgb),.1);cursor:default}.body .nav-item a:not(.active-link):focus,.body .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}.body .form-buttons{padding:5px 0;text-align:right}.body .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2);background-color:#ffffff1a!important}.body .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);background-color:#ffffff1a!important;margin-right:0}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
14263
14274
|
}
|
|
14264
14275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ClipboardObjectActionComponent, decorators: [{
|
|
14265
14276
|
type: Component,
|
|
14266
14277
|
args: [{ selector: 'eo-clipboard-object-action', template: "<div class=\"body\" eoTrapFocus>\n <div class=\"navigation\">\n <div class=\"group-title\" translate>eo.action.menu.clipboard.label</div>\n <div class=\"nav-item\">\n <a tabindex=\"0\" (keydown.enter)=\"runLink()\" (click)=\"runLink()\">{{'eo.action.menu.clipboard.link.label'|\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('link', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionLink\" translate>eo.action.menu.clipboard.link.description\n </div>\n </div>\n <div class=\"nav-item\" *ngIf=\"isExecutable\">\n <a tabindex=\"0\" (keydown.enter)=\"runOriginal()\" (click)=\"runOriginal()\">{{'eo.action.menu.clipboard.file.label'|\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('original', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionOrginal\" translate>eo.action.menu.clipboard.file.description</div>\n </div>\n <div class=\"nav-item\" *ngIf=\"isExecutable\">\n <a tabindex=\"0\" (keydown.enter)=\"runPdf()\" (click)=\"runPdf()\">{{'eo.action.menu.clipboard.file.pdf.label' |\n translate}}</a>\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\n (click)=\"showDescription('pdf', $event)\"></eo-icon>\n <div class=\"description\" *ngIf=\"showDescriptionPdf\" translate>eo.action.menu.clipboard.file.pdf.description </div>\n </div>\n </div>\n <div class=\"form-buttons\">\n <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\n </div>\n</div>", styles: [".body{padding:var(--app-pane-padding);min-width:200px;display:inline-block;width:90%}.body .group-title{background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.body .nav-item{position:relative;top:0;right:0;min-width:100px;z-index:100;padding-bottom:8px;border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.body .nav-item .description{border-radius:2px;-webkit-border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.body .nav-item eo-icon{margin:0 calc(var(--app-pane-padding) / 2)}.body .nav-item eo-icon.info-icon{margin-left:auto;margin-bottom:7px;margin-top:-38px;border-radius:50%;color:rgba(var(--color-white-rgb),.3);cursor:pointer}.body .nav-item eo-icon.info-icon:hover{background-color:var(--color-primary)}.body .nav-item a{padding:var(--app-pane-padding);text-decoration:none;color:inherit;display:block;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.body .nav-item a.active-link{background:rgba(var(--color-white-rgb),.1);cursor:default}.body .nav-item a:not(.active-link):focus,.body .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}.body .form-buttons{padding:5px 0;text-align:right}.body .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2);background-color:#ffffff1a!important}.body .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);background-color:#ffffff1a!important;margin-right:0}\n"] }]
|
|
14267
|
-
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i1.NotificationsService }, { type: i1$2.Location }, { type: AgentService }, { type: i0.ElementRef }], propDecorators: { selection: [{
|
|
14278
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i1.NotificationsService }, { type: i1$2.Location }, { type: AgentService }, { type: i0.ElementRef }, { type: i1.Config }, { type: i1.UserService }], propDecorators: { selection: [{
|
|
14268
14279
|
type: Input
|
|
14269
14280
|
}], finished: [{
|
|
14270
14281
|
type: Output
|
|
@@ -19816,76 +19827,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
19816
19827
|
}] } });
|
|
19817
19828
|
|
|
19818
19829
|
let ObjectDetailsComponent = class ObjectDetailsComponent {
|
|
19819
|
-
|
|
19820
|
-
this.isReference = isRef;
|
|
19821
|
-
}
|
|
19822
|
-
set emptyState(e) {
|
|
19823
|
-
this._emptyState = e || EmptyStateService.defaultEmptyState();
|
|
19824
|
-
}
|
|
19825
|
-
get emptyState() {
|
|
19826
|
-
return this._emptyState;
|
|
19827
|
-
}
|
|
19828
|
-
set dmsParams(params) {
|
|
19829
|
-
this.loadDmsObject(params).subscribe((res) => {
|
|
19830
|
-
this.dmsObject = res;
|
|
19831
|
-
}, Utils.throw(() => this.onHasError(true, true, false)));
|
|
19832
|
-
}
|
|
19833
|
-
set dmsParams2(params) {
|
|
19834
|
-
this.loadDmsObject(params)
|
|
19835
|
-
.subscribe((res) => {
|
|
19836
|
-
this.dmsObject2 = res;
|
|
19837
|
-
}, Utils.throw(() => this.onHasError(true, true, false)));
|
|
19838
|
-
}
|
|
19839
|
-
set dmsObject(v) {
|
|
19840
|
-
// show loader if object is different and force change detection to show loader
|
|
19841
|
-
this.showLoader = true;
|
|
19842
|
-
this.cdr.detectChanges();
|
|
19843
|
-
const isDifferent = this.item?.id !== v?.id;
|
|
19844
|
-
this.item = v;
|
|
19845
|
-
this.onHasError();
|
|
19846
|
-
this.setupCapabilities();
|
|
19847
|
-
if (this.item?.id) {
|
|
19848
|
-
this.fetchAtiveProcessData(this.item?.id);
|
|
19849
|
-
}
|
|
19850
|
-
// prepare indexdata preview
|
|
19851
|
-
this.onIndexDataSaved(null, this.item);
|
|
19852
|
-
this.eventService.trigger(EnaioEvent.DMS_OBJECT_LOADED, this.item);
|
|
19853
|
-
if (this.item) {
|
|
19854
|
-
if (isDifferent && this.item.isActiveVersion && !this.enableCompare) {
|
|
19855
|
-
this.uploadTarget.referenceObject = this.item;
|
|
19856
|
-
this.uploadTarget.onUploadSuccess = () => this.dmsParams = { id: v.id, type: v.typeName };
|
|
19857
|
-
this.uploadRegistry.register(this.uploadTarget);
|
|
19858
|
-
}
|
|
19859
|
-
else {
|
|
19860
|
-
this.uploadRegistry.unregister(this.uploadTarget.id);
|
|
19861
|
-
this.uploadTarget.referenceObject = this.item;
|
|
19862
|
-
this.uploadTarget.onUploadSuccess = () => this.dmsParams = { id: v.id, type: v.typeName };
|
|
19863
|
-
this.uploadRegistry.register(this.uploadTarget);
|
|
19864
|
-
}
|
|
19865
|
-
if (this.item.lock) {
|
|
19866
|
-
this.lockTooltip = this.translate.instant('eo.object.lock') + ' '
|
|
19867
|
-
+ (new LocaleDatePipe(this.translate).transform(this.item.lock.on))
|
|
19868
|
-
+ ', ' + this.item.lock.by.label + ' (' + this.item.lock.by.name + ')';
|
|
19869
|
-
}
|
|
19870
|
-
}
|
|
19871
|
-
else {
|
|
19872
|
-
this.emptyState = this.empty.getEmptyState(0);
|
|
19873
|
-
}
|
|
19874
|
-
if (this.item?.subscriptions.length) {
|
|
19875
|
-
this.subscriptionIconTooltip = this.createSubscriptionIconTooltip(this.item);
|
|
19876
|
-
}
|
|
19877
|
-
}
|
|
19878
|
-
set dmsObject2(v) {
|
|
19879
|
-
this.item2 = v;
|
|
19880
|
-
this.enableSync = !!this.item2?.version;
|
|
19881
|
-
this.onHasError();
|
|
19882
|
-
this.onIndexDataSaved(null, this.item2);
|
|
19883
|
-
}
|
|
19884
|
-
get dataType() {
|
|
19885
|
-
return this.item ? this.item.typeName : 'none';
|
|
19886
|
-
}
|
|
19887
|
-
// undockWinActive = false;
|
|
19888
|
-
constructor(router, route, system, empty, agentService, backend, dmsService, selection, actionService, capabilityService, uploadRegistry, eventService, configService, bpmService, translate, cdr) {
|
|
19830
|
+
constructor(router, route, system, empty, agentService, backend, dmsService, selection, actionService, capabilityService, uploadRegistry, eventService, configService, bpmService, translate, cdr, userService) {
|
|
19889
19831
|
this.router = router;
|
|
19890
19832
|
this.route = route;
|
|
19891
19833
|
this.system = system;
|
|
@@ -19902,8 +19844,14 @@ let ObjectDetailsComponent = class ObjectDetailsComponent {
|
|
|
19902
19844
|
this.bpmService = bpmService;
|
|
19903
19845
|
this.translate = translate;
|
|
19904
19846
|
this.cdr = cdr;
|
|
19905
|
-
|
|
19906
|
-
this.
|
|
19847
|
+
this.userService = userService;
|
|
19848
|
+
this.enableCompare = false;
|
|
19849
|
+
this.recyclebinTabs = false;
|
|
19850
|
+
this.versionComponentTabs = false;
|
|
19851
|
+
this.enableDiff = true;
|
|
19852
|
+
this.enableSync = false;
|
|
19853
|
+
this.parseDmsParams = this.getDmsParams;
|
|
19854
|
+
this.hasContent = new EventEmitter();
|
|
19907
19855
|
this.hasError = false;
|
|
19908
19856
|
this.nodmsobject = false;
|
|
19909
19857
|
this.showLoader = false;
|
|
@@ -19911,14 +19859,8 @@ let ObjectDetailsComponent = class ObjectDetailsComponent {
|
|
|
19911
19859
|
this.panelOrder = { 'master': ['summary', 'indexdata', 'history', 'links', 'signature'], 'slave': ['preview'] };
|
|
19912
19860
|
this.agentIsConnected$ = this.agentService.isConnected$;
|
|
19913
19861
|
this.split = false;
|
|
19914
|
-
this.enableCompare = false;
|
|
19915
|
-
this.recyclebinTabs = false;
|
|
19916
|
-
this.versionComponentTabs = false;
|
|
19917
|
-
this.enableDiff = true;
|
|
19918
|
-
this.enableSync = false;
|
|
19919
19862
|
this.onEnableSync = true;
|
|
19920
19863
|
this.tabs = [];
|
|
19921
|
-
this._emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
|
|
19922
19864
|
this.preventClickThrough = false;
|
|
19923
19865
|
// shortcut actions
|
|
19924
19866
|
this.shortcuts = {
|
|
@@ -19956,7 +19898,7 @@ let ObjectDetailsComponent = class ObjectDetailsComponent {
|
|
|
19956
19898
|
this.downloadOriginalContent();
|
|
19957
19899
|
},
|
|
19958
19900
|
isHidden: () => {
|
|
19959
|
-
return !this.enableCompare && this.item.content?.id
|
|
19901
|
+
return !(!this.enableCompare && this.item.content?.id);
|
|
19960
19902
|
}
|
|
19961
19903
|
},
|
|
19962
19904
|
{
|
|
@@ -19983,51 +19925,85 @@ let ObjectDetailsComponent = class ObjectDetailsComponent {
|
|
|
19983
19925
|
}
|
|
19984
19926
|
]
|
|
19985
19927
|
};
|
|
19986
|
-
|
|
19987
|
-
this.
|
|
19928
|
+
// generate unique id to pass to upload registry
|
|
19929
|
+
this.uploadTarget = new UploadTarget(Utils.uuid(), UploadTarget.OBJECT);
|
|
19930
|
+
this._emptyState = { icon: 'ic_no-file.svg', text: '', className: '' };
|
|
19988
19931
|
this.panelOrder = this.configService.getRaw('objectDetailsTabs') || this.panelOrder;
|
|
19932
|
+
const requiredRoles = this.configService.getRaw('requiredRolesExport');
|
|
19933
|
+
this.downloadAllowed = !requiredRoles || this.userService.getCurrentUser().roles.some(role => requiredRoles.includes(role.name));
|
|
19989
19934
|
this.agentService.setAgentStatus(this.route.snapshot.queryParams['connectagent']).subscribe((hasStatus) => {
|
|
19990
19935
|
if (hasStatus) {
|
|
19991
|
-
this.router.navigate([], { queryParams: { connectagent: null }, queryParamsHandling: 'merge' });
|
|
19936
|
+
this.router.navigate([], { queryParams: { connectagent: null }, queryParamsHandling: 'merge' }).then();
|
|
19992
19937
|
}
|
|
19993
19938
|
});
|
|
19994
19939
|
}
|
|
19995
|
-
|
|
19996
|
-
return
|
|
19940
|
+
get dataType() {
|
|
19941
|
+
return this.item ? this.item.typeName : 'none';
|
|
19997
19942
|
}
|
|
19998
|
-
|
|
19999
|
-
|
|
20000
|
-
|
|
20001
|
-
|
|
20002
|
-
|
|
20003
|
-
|
|
20004
|
-
|
|
20005
|
-
|
|
20006
|
-
|
|
20007
|
-
|
|
20008
|
-
|
|
20009
|
-
|
|
19943
|
+
get emptyState() {
|
|
19944
|
+
return this._emptyState;
|
|
19945
|
+
}
|
|
19946
|
+
set reference(isRef) {
|
|
19947
|
+
this.isReference = isRef;
|
|
19948
|
+
}
|
|
19949
|
+
set emptyState(e) {
|
|
19950
|
+
this._emptyState = e || EmptyStateService.defaultEmptyState();
|
|
19951
|
+
}
|
|
19952
|
+
set dmsParams(params) {
|
|
19953
|
+
this.loadDmsObject(params).subscribe((res) => {
|
|
19954
|
+
this.dmsObject = res;
|
|
19955
|
+
}, Utils.throw(() => this.onHasError(true, true, false)));
|
|
19956
|
+
}
|
|
19957
|
+
set dmsParams2(params) {
|
|
19958
|
+
this.loadDmsObject(params)
|
|
19959
|
+
.subscribe((res) => {
|
|
19960
|
+
this.dmsObject2 = res;
|
|
19961
|
+
}, Utils.throw(() => this.onHasError(true, true, false)));
|
|
19962
|
+
}
|
|
19963
|
+
set dmsObject(v) {
|
|
19964
|
+
// show loader if object is different and force change detection to show loader
|
|
19965
|
+
this.showLoader = true;
|
|
19966
|
+
this.cdr.detectChanges();
|
|
19967
|
+
const isDifferent = this.item?.id !== v?.id;
|
|
19968
|
+
this.item = v;
|
|
19969
|
+
this.onHasError();
|
|
19970
|
+
this.setupCapabilities();
|
|
19971
|
+
if (this.item?.id) {
|
|
19972
|
+
this.fetchAtiveProcessData(this.item?.id);
|
|
19973
|
+
}
|
|
19974
|
+
// prepare indexdata preview
|
|
19975
|
+
this.onIndexDataSaved(null, this.item);
|
|
19976
|
+
this.eventService.trigger(EnaioEvent.DMS_OBJECT_LOADED, this.item);
|
|
19977
|
+
if (this.item) {
|
|
19978
|
+
if (isDifferent && this.item.isActiveVersion && !this.enableCompare) {
|
|
19979
|
+
this.uploadTarget.referenceObject = this.item;
|
|
19980
|
+
this.uploadTarget.onUploadSuccess = () => this.dmsParams = { id: v.id, type: v.typeName };
|
|
19981
|
+
this.uploadRegistry.register(this.uploadTarget);
|
|
20010
19982
|
}
|
|
20011
19983
|
else {
|
|
20012
|
-
this.
|
|
20013
|
-
|
|
20014
|
-
|
|
20015
|
-
|
|
20016
|
-
|
|
20017
|
-
|
|
20018
|
-
|
|
20019
|
-
|
|
20020
|
-
|
|
20021
|
-
this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, res);
|
|
20022
|
-
}
|
|
20023
|
-
this.dmsObject = res;
|
|
20024
|
-
}, Utils.throw((error) => {
|
|
20025
|
-
this.uploadRegistry.unregister(this.uploadTarget.id);
|
|
20026
|
-
return this.onHasError(true, true, false);
|
|
20027
|
-
}));
|
|
20028
|
-
});
|
|
19984
|
+
this.uploadRegistry.unregister(this.uploadTarget.id);
|
|
19985
|
+
this.uploadTarget.referenceObject = this.item;
|
|
19986
|
+
this.uploadTarget.onUploadSuccess = () => this.dmsParams = { id: v.id, type: v.typeName };
|
|
19987
|
+
this.uploadRegistry.register(this.uploadTarget);
|
|
19988
|
+
}
|
|
19989
|
+
if (this.item.lock) {
|
|
19990
|
+
this.lockTooltip = this.translate.instant('eo.object.lock') + ' '
|
|
19991
|
+
+ (new LocaleDatePipe(this.translate).transform(this.item.lock.on))
|
|
19992
|
+
+ ', ' + this.item.lock.by.label + ' (' + this.item.lock.by.name + ')';
|
|
20029
19993
|
}
|
|
20030
19994
|
}
|
|
19995
|
+
else {
|
|
19996
|
+
this.emptyState = this.empty.getEmptyState(0);
|
|
19997
|
+
}
|
|
19998
|
+
if (this.item?.subscriptions.length) {
|
|
19999
|
+
this.subscriptionIconTooltip = this.createSubscriptionIconTooltip();
|
|
20000
|
+
}
|
|
20001
|
+
}
|
|
20002
|
+
set dmsObject2(v) {
|
|
20003
|
+
this.item2 = v;
|
|
20004
|
+
this.enableSync = !!this.item2?.version;
|
|
20005
|
+
this.onHasError();
|
|
20006
|
+
this.onIndexDataSaved(null, this.item2);
|
|
20031
20007
|
}
|
|
20032
20008
|
refreshContent() {
|
|
20033
20009
|
if (!this.preventClickThrough) {
|
|
@@ -20038,39 +20014,6 @@ let ObjectDetailsComponent = class ObjectDetailsComponent {
|
|
|
20038
20014
|
this.preventClickThrough = false;
|
|
20039
20015
|
}, 5000);
|
|
20040
20016
|
}
|
|
20041
|
-
prepareIndexDataPreview(item, formData) {
|
|
20042
|
-
const { id, data, type, created, modified, content, contentFileName, contentFileSize, version } = item;
|
|
20043
|
-
return this.system
|
|
20044
|
-
.getObjectTypeForm(type.name, 'EDIT')
|
|
20045
|
-
.pipe(map(form => {
|
|
20046
|
-
let indexDataPreview = {
|
|
20047
|
-
form,
|
|
20048
|
-
data: formData || data
|
|
20049
|
-
};
|
|
20050
|
-
let baseparams = {
|
|
20051
|
-
id,
|
|
20052
|
-
type: type.name,
|
|
20053
|
-
createdOn: new Date(created.on),
|
|
20054
|
-
modifiedOn: new Date(modified.on),
|
|
20055
|
-
createdBy: `${created.by.title} (${created.by.name})`,
|
|
20056
|
-
modifiedBy: `${modified.by.title} (${modified.by.name})`,
|
|
20057
|
-
contentFileName: contentFileName ? contentFileName : null,
|
|
20058
|
-
contentFileSize: contentFileSize ? Number(contentFileSize) : null,
|
|
20059
|
-
version: version || 0,
|
|
20060
|
-
mimeGroup: content ? content.contents ? content.contents[0].mimegroup : null : null,
|
|
20061
|
-
digest: content ? content.contents ? content.contents[0].digest : null : null,
|
|
20062
|
-
contentId: content ? content.contents ? content.id : null : null,
|
|
20063
|
-
mimeType: content ? content.contents ? content.contents[0].mimetype : null : null,
|
|
20064
|
-
};
|
|
20065
|
-
return { indexDataPreview, baseparams };
|
|
20066
|
-
}));
|
|
20067
|
-
}
|
|
20068
|
-
onHasError(hasError = false, nodmsobject = false, showLoader = false) {
|
|
20069
|
-
this.hasError = hasError;
|
|
20070
|
-
this.nodmsobject = nodmsobject;
|
|
20071
|
-
this.showLoader = showLoader;
|
|
20072
|
-
this.hasContent.emit(!hasError);
|
|
20073
|
-
}
|
|
20074
20017
|
loadDmsObject(params) {
|
|
20075
20018
|
if (!this.enableCompare && params) {
|
|
20076
20019
|
delete params.version;
|
|
@@ -20140,63 +20083,14 @@ let ObjectDetailsComponent = class ObjectDetailsComponent {
|
|
|
20140
20083
|
});
|
|
20141
20084
|
}
|
|
20142
20085
|
}
|
|
20143
|
-
get referenceTitle() {
|
|
20144
|
-
return this.item.contextFolder ? this.item.contextFolder.title : this.item.title;
|
|
20145
|
-
}
|
|
20146
20086
|
isJournalObject(item) {
|
|
20147
20087
|
return item.type.supertypes.find(sT => sT === 'sysjournalobject');
|
|
20148
20088
|
}
|
|
20149
|
-
|
|
20150
|
-
|
|
20151
|
-
|
|
20152
|
-
|
|
20153
|
-
const subscribedToMetaChangesOnly = modes.includes(SubscriptionMode.ONLY_INDEX_DATA_CHANGED) && !modes.includes(SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED) && !modes.includes(SubscriptionMode.DMS_OBJECT_CHANGED);
|
|
20154
|
-
const subscribedToContentChangesOnly = modes.includes(SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED) && !modes.includes(SubscriptionMode.ONLY_INDEX_DATA_CHANGED) && !modes.includes(SubscriptionMode.DMS_OBJECT_CHANGED);
|
|
20155
|
-
if (subscribedToAllChanges) {
|
|
20156
|
-
tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.allChanges');
|
|
20157
|
-
}
|
|
20158
|
-
else if (subscribedToMetaChangesOnly) {
|
|
20159
|
-
tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.meta');
|
|
20160
|
-
}
|
|
20161
|
-
else if (subscribedToContentChangesOnly) {
|
|
20162
|
-
tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.content');
|
|
20089
|
+
// custom event handler for layout settings to make sure plugin tabs are saved
|
|
20090
|
+
onLayoutSettingsChanged(event) {
|
|
20091
|
+
if (this.cacheLayout) {
|
|
20092
|
+
localStorage.setItem(this.cacheLayout, JSON.stringify(event));
|
|
20163
20093
|
}
|
|
20164
|
-
return tooltip;
|
|
20165
|
-
}
|
|
20166
|
-
setupCapabilities() {
|
|
20167
|
-
const block = this.capabilities && !this.capabilities.signing ? ['signature'] : [];
|
|
20168
|
-
const cachedOrder = this.cacheLayout && JSON.parse(localStorage.getItem(this.cacheLayout));
|
|
20169
|
-
const primary = cachedOrder?.primary?.tabs;
|
|
20170
|
-
const secondary = cachedOrder?.secondary?.tabs;
|
|
20171
|
-
const _primary = this.panelOrder.master || [];
|
|
20172
|
-
const _secondary = this.panelOrder.slave || [];
|
|
20173
|
-
const plugins = this.plugins?.map(p => p.id) || [];
|
|
20174
|
-
this.tabs = [..._primary, ..._secondary, ...plugins].filter(t => !block.includes(t));
|
|
20175
|
-
if (this.versionComponentTabs) {
|
|
20176
|
-
if (this.item?.isFolder) {
|
|
20177
|
-
this.tabs = this.tabs.filter(tab => ['summary', 'indexdata'].includes(tab));
|
|
20178
|
-
}
|
|
20179
|
-
else {
|
|
20180
|
-
this.tabs = this.tabs.filter(tab => ['summary', 'indexdata', 'preview', 'signature'].includes(tab));
|
|
20181
|
-
}
|
|
20182
|
-
}
|
|
20183
|
-
const diff = this.tabs.filter(t => !primary?.includes(t) && !secondary?.includes(t));
|
|
20184
|
-
const _pTabs = [..._primary, ...plugins.filter(p => !_primary.includes(p))];
|
|
20185
|
-
const pTabs = primary ? [...primary, ...diff] : _pTabs;
|
|
20186
|
-
const sTabs = secondary || _secondary;
|
|
20187
|
-
const p = pTabs.filter(t => this.tabs.includes(t));
|
|
20188
|
-
const s = sTabs.filter(t => this.tabs.includes(t));
|
|
20189
|
-
this.splitTabConfig = {
|
|
20190
|
-
primary: { tabs: p, active: p.includes(cachedOrder?.primary?.active) ? cachedOrder?.primary?.active : p[0] || '' },
|
|
20191
|
-
secondary: { tabs: s, active: s.includes(cachedOrder?.secondary?.active) ? cachedOrder?.secondary?.active : s[0] || '' },
|
|
20192
|
-
split: cachedOrder?.split
|
|
20193
|
-
};
|
|
20194
|
-
// force save of layout settings to include plugin tabs
|
|
20195
|
-
this.onLayoutSettingsChanged(this.splitTabConfig);
|
|
20196
|
-
}
|
|
20197
|
-
// custom event handler for layout settings to make sure plugin tabs are saved
|
|
20198
|
-
onLayoutSettingsChanged(event) {
|
|
20199
|
-
this.cacheLayout && localStorage.setItem(this.cacheLayout, JSON.stringify(event));
|
|
20200
20094
|
}
|
|
20201
20095
|
ngOnInit() {
|
|
20202
20096
|
this.capabilities = this.capabilityService.getCapabilities();
|
|
@@ -20224,26 +20118,146 @@ let ObjectDetailsComponent = class ObjectDetailsComponent {
|
|
|
20224
20118
|
/**
|
|
20225
20119
|
* Handles the `hasContentLoaded` event emitted by the `eo-media` component.
|
|
20226
20120
|
* It sets the `showLoader` property to false, indicating that the content has finished loading.
|
|
20227
|
-
*
|
|
20228
|
-
* @param event - A boolean value representing the loading state of the content.
|
|
20229
|
-
* It is expected to be `true` when the content is fully loaded.
|
|
20230
20121
|
*/
|
|
20231
|
-
hasContentLoaded(
|
|
20122
|
+
hasContentLoaded() {
|
|
20232
20123
|
this.showLoader = false;
|
|
20233
20124
|
}
|
|
20234
20125
|
ngOnDestroy() {
|
|
20235
20126
|
this.uploadRegistry.unregister(this.uploadTarget.id);
|
|
20236
20127
|
}
|
|
20237
|
-
|
|
20238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: { plugins: "plugins", reference: "reference", searchTerm: "searchTerm", enableCompare: "enableCompare", recyclebinTabs: "recyclebinTabs", versionComponentTabs: "versionComponentTabs", enableDiff: "enableDiff", enableSync: "enableSync", cacheLayout: "cacheLayout", emptyState: "emptyState", dmsParams: ["params", "dmsParams"], dmsParams2: ["params2", "dmsParams2"], dmsObject: ["item", "dmsObject"], dmsObject2: ["item2", "dmsObject2"], applySelection: "applySelection", parseDmsParams: "parseDmsParams" }, outputs: { hasContent: "hasContent" }, host: { properties: { "class.reference": "this.isReference", "attr.data-type": "this.dataType" } }, providers: [ContentPreviewService], viewQueries: [{ propertyName: "preview", first: true, predicate: ["viewer"], descendants: true }, { propertyName: "eoSplitTabs", first: true, predicate: SplitTabsComponent, descendants: true }, { propertyName: "favoriteIcon", first: true, predicate: FavoriteIconComponent, descendants: true }, { propertyName: "tabContainers", predicate: Tabs, descendants: true }], ngImport: i0, template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError; else noItem\">\n\n <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"eo-header-actions-container\">\n <div class=\"eo-header-actions\">\n <ng-container>\n <eo-icon class=\"button refresh-button\" *ngIf=\"!recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" [iconTitle]=\"('eo.list.refresh' | translate)\"\n [ngClass]=\"{'disable-refresh': preventClickThrough}\" (click)=\"refreshContent()\"></eo-icon>\n <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare && !recyclebinTabs\"\n [ngClass]=\"{'enabled': onEnableSync,'disable': !enableSync}\" [iconSrc]=\"'assets/_default/svg/ic_link.svg'\"\n [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\" (click)=\"onEnableSync = !onEnableSync\"></eo-icon>\n <eo-favorite-icon [item]=\"item\"\n *ngIf=\"!enableCompare && !recyclebinTabs && capabilities.favorites && !isJournalObject(item)\">\n </eo-favorite-icon>\n <eo-icon class=\"button oc-button\" *ngIf=\"!enableCompare && item.content?.id\" (click)=\"downloadOriginalContent()\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\n <eo-edit-icon [item]=\"item\"\n *ngIf=\"!enableCompare && !recyclebinTabs && item.content?.id && item.rights.edit && (agentIsConnected$ | async)\n && !item.isFinalized && item.data.yuvsigstatus !== 'signed' && item.data.yuvsigstatus !== 'inprocess' && !item.lock\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" *ngIf=\"!recyclebinTabs\" (click)=\"showActions()\"\n [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </ng-container>\n\n </div>\n\n <div class=\"eo-header-status-icons\">\n <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\n [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\n <span>{{'eo.object.contentlink' | translate}}</span>\n </a>\n <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\" [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\n <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\n [iconTitle]=\"'eo.object.resubmission.tooltip' | translate: {due: item.resubmissions[0].due | localeDate, info: item.resubmissions[0].info}\"></eo-icon>\n <eo-icon class=\"shared-icon\" *ngIf=\"item.additionalvisibility.length && !recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"'eo.object.shared.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\n [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\n <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\n [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon inprocess\" *ngIf=\"item.data?.yuvsigstatus === 'inprocess'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.inprocess' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon signed\" *ngIf=\"item.data?.yuvsigstatus === 'signed'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.signed' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon stopped\"\n *ngIf=\"item.data?.yuvsigstatus === 'canceled'\n || item.data?.yuvsigstatus === 'revised' || item.data?.yuvsigstatus === 'error' || item.data?.yuvsigstatus === 'expired'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.stopped' | translate\"></eo-icon>\n @if (item.processcount > 0) {\n <eo-icon class=\"resubmission-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"\n [iconTitle]=\"'eo.object.processcount.tooltip' | translate : {processcount: item?.processcount, text: processTooltip}\"></eo-icon>\n }\n </div>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n\n <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\" [config]=\"splitTabConfig\" *ngIf=\"!item2; else tplCompare\">\n <!-- summary -->\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\n [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n <!-- metadata -->\n <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\n [formDisabled]=\"enableCompare\"></eo-object-form-edit>\n </ng-template>\n <!-- preview -->\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" (hasContentLoaded)=\"hasContentLoaded($event)\"\n #viewer></eo-media>\n </ng-template>\n <!-- history -->\n <ng-template [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\n <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n <!-- links -->\n <ng-template [yvcTab]=\"{id: 'links', label: 'eo.object.links.title' | translate}\">\n <eo-object-links [dmsObject]=\"item\"></eo-object-links>\n </ng-template>\n <!-- signature -->\n <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n </yvc-split-tabs>\n\n <ng-template #tplCompare>\n <yvc-split-view>\n <ng-template yvcSplitArea [size]=\"50\">\n\n <div class=\"cmp-wrapper\">\n <div class=\"cmp-info\">\n <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item.version}}</span></div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"tplTabs; context: {item, baseparams, indexdata: indexDataPreview, searchTerm}\"></ng-container>\n </div>\n\n </ng-template>\n <ng-template yvcSplitArea [size]=\"50\">\n\n <div class=\"cmp-wrapper\">\n <div class=\"cmp-info\">\n <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item2.version}}</span></div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"tplTabs; context: {item: item2, baseparams: baseparams2, indexdata: indexDataPreview2, searchTerm, diff: {baseparams, baseparams2, indexdata: indexDataPreview, indexdata2: indexDataPreview2}}\"></ng-container>\n </div>\n </ng-template>\n\n </yvc-split-view>\n </ng-template>\n\n <ng-template #tplTabs let-item=\"item\" let-indexdata=\"indexdata\" let-baseparams=\"baseparams\"\n let-searchTerm=\"searchTerm\" let-diff=\"diff\">\n <yvc-tabs (tabChange)=\"onCompareTabChange($event)\" layoutSettingsID=\"{{'eo.object.details.compare.tabs' + (diff ? '.0' : '.1')}}\">\n <!-- summary -->\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexdata\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n <!-- metadata -->\n <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\" [formDisabled]=\"enableCompare\"></eo-object-form-edit>\n </ng-template>\n @if (!item?.isFolder){\n <!-- preview -->\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media [useVersion]=\"true\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" #viewer></eo-media>\n </ng-template>\n <!-- signature -->\n @if (capabilities.signing){\n <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n }\n }\n <!-- changes -->\n <ng-template *ngIf=\"diff\"\n [yvcTab]=\"{id: 'changes', label: 'eo.object.changes.title' | translate}\">\n <eo-indexdata-summary [diff]=\"diff\" [enableVersions]=\"false\" [isChangesTab]=\"versionComponentTabs\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n\n\n </yvc-tabs>\n </ng-template>\n\n </div>\n</ng-container>\n\n<ng-template #noItem>\n <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\n <eo-error-message *ngIf=\"!showLoader\"\n [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\n <ng-content select=\".error\"></ng-content>\n </eo-error-message>\n</ng-template>\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto;--panel-divider-color: var(--panel-header-border-bottom-color)}:host .eo-head .eo-header .eo-header-info .eo-header-title,:host .eo-head .eo-header .eo-header-info .eo-header-subtitle{-webkit-user-select:text;user-select:text}:host .eo-body{background-color:var(--panel-background)}:host .eo-body__not-available{opacity:.4;background:rgba(var(--color-black-rgb),.4)}:host .eo-body .cmp-wrapper{height:100%;flex-flow:column;display:flex}:host .eo-body .cmp-wrapper .cmp-info{background-color:var(--panel-background);padding:2px}:host .eo-body .cmp-wrapper .cmp-info .version{margin:2px;border-radius:2px;background-color:var(--panel-background-lightgrey);border:1px dashed var(--panel-divider-color);color:var(--text-color-caption);text-align:center}:host .eo-body .cmp-wrapper .cmp-info .version>span{margin-inline-start:.5em;font-weight:700}:host .eo-body yvc-split-view,:host .eo-body yvc-split-tabs{height:100%}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .sync-tab-btn.disable{display:none}:host .lock{background:var(--color-error)!important;color:var(--color-white);width:18px;height:18px;border-radius:2px;padding:1px}:host .lock.myLock{color:var(--color-white);background:var(--state-orange)!important}:host .not-found{color:var(--panel-background);text-align:center;margin:calc(var(--app-pane-padding) / 2);padding:calc(var(--app-pane-padding) / 4);border-radius:2px;flex:0 0 auto;background:var(--color-error)}:host .eo-header-status-icons{margin-top:var(--app-pane-padding);display:flex;justify-content:flex-end}:host .eo-header-status-icons>eo-icon{width:18px;height:18px;padding:calc(var(--app-pane-padding) / 4);color:var(--color-white);margin-left:1px;background-color:var(--color-primary-2)}:host .eo-header-status-icons>eo-icon:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}:host .eo-header-status-icons>eo-icon:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}:host .eo-header-status-icons>eo-icon.finalized-icon{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.inprocess{background-color:var(--color-light-gray)}:host .eo-header-status-icons>eo-icon.signed-icon.signed{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.stopped{background-color:var(--color-error)}:host .eo-header-status-icons>a{margin:0 calc(var(--app-pane-padding) / 4);display:flex;align-items:center;color:var(--color-white);font-size:var(--font-hint);line-height:var(--font-hint);border-radius:2px;padding:0 4px 1px;text-decoration:none;background-color:var(--color-success)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .object-detail__loader{margin:auto}:host ::ng-deep yvc-tabs{flex:1;height:100%}:host ::ng-deep yvc-tabs>header{background-color:var(--panel-background)}:host ::ng-deep .yvc-split-area{background-color:var(--panel-background-grey)}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}:host ::ng-deep eo-media{height:100%;overflow:hidden;display:block}:host ::ng-deep .object-form-edit{position:relative;height:100%;margin:0;overflow:hidden;background:transparent!important}:host ::ng-deep .object-form-edit eo-object-form{background:transparent;overflow:auto}:host ::ng-deep .object-form-edit eo-object-form .eo-object-form{margin:var(--app-pane-padding);background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1)}:host ::ng-deep .object-form-edit .form-controls{animation:eoFadeInUp .2s}:host ::ng-deep .object-form-edit .form-controls .buttons{background:var(--panel-background);border-top:1px solid var(--panel-divider-color);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)!important}:host ::ng-deep .refresh-button.disable-refresh{cursor:default;color:var(--color-primary-3)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ObjectFormEditComponent, selector: "eo-object-form-edit", inputs: ["formDisabled", "dmsObject"], outputs: ["indexDataSaved"] }, { kind: "component", type: MediaComponent, selector: "eo-media", inputs: ["undockDisabled", "enableCloseBtn", "useVersion", "attachments", "searchTerm", "previewUri", "previewFile", "dmsObject"], outputs: ["hasContentLoaded"] }, { kind: "directive", type: ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: RouterLinkDirective, selector: "a[routerLink]" }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: ["baseparams", "enableVersions", "isChangesTab", "indexdata", "dmsObject", "diff"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: SignatureTabComponent, selector: "eo-signature-tab", inputs: ["dmsObject"] }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i12.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i12.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "component", type: i19.SplitTabsComponent, selector: "yvc-split-tabs", inputs: ["layoutSettingsID", "config", "panelOrder"], outputs: ["layoutSettingsChange"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: PluginComponent, selector: "eo-plugin", inputs: ["type", "id", "parent"] }, { kind: "component", type: ObjectHistoryComponent, selector: "eo-object-history", inputs: ["params"] }, { kind: "component", type: ObjectLinksComponent, selector: "eo-object-links", inputs: ["dmsObject"] }, { kind: "component", type: FavoriteIconComponent, selector: "eo-favorite-icon", inputs: ["item"] }, { kind: "component", type: EditIconComponent, selector: "eo-edit-icon", inputs: ["item"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }] }); }
|
|
20128
|
+
getDmsParams(data) {
|
|
20129
|
+
return data ? { ...data, type: data.typeName || data.type } : null;
|
|
20130
|
+
}
|
|
20131
|
+
updateContent() {
|
|
20132
|
+
if (this.applySelection) {
|
|
20133
|
+
if (this.enableCompare) {
|
|
20134
|
+
this.selection
|
|
20135
|
+
.find(this.applySelection.in)
|
|
20136
|
+
.selection$
|
|
20137
|
+
.pipe(untilDestroyed(this), throttleTime(500))
|
|
20138
|
+
.subscribe((res) => {
|
|
20139
|
+
this.dmsParams = this.parseDmsParams(res[0]);
|
|
20140
|
+
this.dmsParams2 = this.parseDmsParams(res[1]);
|
|
20141
|
+
});
|
|
20142
|
+
return;
|
|
20143
|
+
}
|
|
20144
|
+
else {
|
|
20145
|
+
this.selection
|
|
20146
|
+
.find(this.applySelection.in)
|
|
20147
|
+
.focus$
|
|
20148
|
+
.pipe(untilDestroyed(this))
|
|
20149
|
+
.subscribe(res => {
|
|
20150
|
+
this.loadDmsObject(this.parseDmsParams(res)).subscribe((res2) => {
|
|
20151
|
+
// refreshing object details may result in an updated version of the object
|
|
20152
|
+
// so we'll use this trigger to also emitt those changes to other listening components
|
|
20153
|
+
if (this.item && res2 && (this.item.id === res2.id)) {
|
|
20154
|
+
this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, res2);
|
|
20155
|
+
}
|
|
20156
|
+
this.dmsObject = res2;
|
|
20157
|
+
}, Utils.throw((error) => {
|
|
20158
|
+
this.uploadRegistry.unregister(this.uploadTarget.id);
|
|
20159
|
+
return this.onHasError(true, true, false);
|
|
20160
|
+
}));
|
|
20161
|
+
});
|
|
20162
|
+
}
|
|
20163
|
+
}
|
|
20164
|
+
}
|
|
20165
|
+
prepareIndexDataPreview(item, formData) {
|
|
20166
|
+
const { id, data, type, created, modified, content, contentFileName, contentFileSize, version } = item;
|
|
20167
|
+
return this.system
|
|
20168
|
+
.getObjectTypeForm(type.name, 'EDIT')
|
|
20169
|
+
.pipe(map(form => {
|
|
20170
|
+
let indexDataPreview = {
|
|
20171
|
+
form,
|
|
20172
|
+
data: formData || data
|
|
20173
|
+
};
|
|
20174
|
+
let baseparams = {
|
|
20175
|
+
id,
|
|
20176
|
+
type: type.name,
|
|
20177
|
+
createdOn: new Date(created.on),
|
|
20178
|
+
modifiedOn: new Date(modified.on),
|
|
20179
|
+
createdBy: `${created.by.title} (${created.by.name})`,
|
|
20180
|
+
modifiedBy: `${modified.by.title} (${modified.by.name})`,
|
|
20181
|
+
contentFileName: contentFileName ? contentFileName : null,
|
|
20182
|
+
contentFileSize: contentFileSize ? Number(contentFileSize) : null,
|
|
20183
|
+
version: version || 0,
|
|
20184
|
+
mimeGroup: content ? content.contents ? content.contents[0].mimegroup : null : null,
|
|
20185
|
+
digest: content ? content.contents ? content.contents[0].digest : null : null,
|
|
20186
|
+
contentId: content ? content.contents ? content.id : null : null,
|
|
20187
|
+
mimeType: content ? content.contents ? content.contents[0].mimetype : null : null,
|
|
20188
|
+
};
|
|
20189
|
+
return { indexDataPreview, baseparams };
|
|
20190
|
+
}));
|
|
20191
|
+
}
|
|
20192
|
+
onHasError(hasError = false, nodmsobject = false, showLoader = false) {
|
|
20193
|
+
this.hasError = hasError;
|
|
20194
|
+
this.nodmsobject = nodmsobject;
|
|
20195
|
+
this.showLoader = showLoader;
|
|
20196
|
+
this.hasContent.emit(!hasError);
|
|
20197
|
+
}
|
|
20198
|
+
createSubscriptionIconTooltip() {
|
|
20199
|
+
let tooltip = '';
|
|
20200
|
+
const modes = this.item.subscriptions.map(subscription => subscription.mode);
|
|
20201
|
+
const subscribedToAllChanges = modes.includes(SubscriptionMode.DMS_OBJECT_CHANGED)
|
|
20202
|
+
|| (modes.includes(SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED) && modes.includes(SubscriptionMode.ONLY_INDEX_DATA_CHANGED));
|
|
20203
|
+
const subscribedToMetaChangesOnly = modes.includes(SubscriptionMode.ONLY_INDEX_DATA_CHANGED)
|
|
20204
|
+
&& !modes.includes(SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED)
|
|
20205
|
+
&& !modes.includes(SubscriptionMode.DMS_OBJECT_CHANGED);
|
|
20206
|
+
const subscribedToContentChangesOnly = modes.includes(SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED)
|
|
20207
|
+
&& !modes.includes(SubscriptionMode.ONLY_INDEX_DATA_CHANGED)
|
|
20208
|
+
&& !modes.includes(SubscriptionMode.DMS_OBJECT_CHANGED);
|
|
20209
|
+
if (subscribedToAllChanges) {
|
|
20210
|
+
tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.allChanges');
|
|
20211
|
+
}
|
|
20212
|
+
else if (subscribedToMetaChangesOnly) {
|
|
20213
|
+
tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.meta');
|
|
20214
|
+
}
|
|
20215
|
+
else if (subscribedToContentChangesOnly) {
|
|
20216
|
+
tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.content');
|
|
20217
|
+
}
|
|
20218
|
+
return tooltip;
|
|
20219
|
+
}
|
|
20220
|
+
setupCapabilities() {
|
|
20221
|
+
const block = this.capabilities && !this.capabilities.signing ? ['signature'] : [];
|
|
20222
|
+
const cachedOrder = this.cacheLayout && JSON.parse(localStorage.getItem(this.cacheLayout));
|
|
20223
|
+
const primary = cachedOrder?.primary?.tabs;
|
|
20224
|
+
const secondary = cachedOrder?.secondary?.tabs;
|
|
20225
|
+
const pri = this.panelOrder.master || [];
|
|
20226
|
+
const sec = this.panelOrder.slave || [];
|
|
20227
|
+
const plugins = this.plugins?.map(pl => pl.id) || [];
|
|
20228
|
+
this.tabs = [...pri, ...sec, ...plugins].filter(t => !block.includes(t));
|
|
20229
|
+
if (this.versionComponentTabs) {
|
|
20230
|
+
if (this.item?.isFolder) {
|
|
20231
|
+
this.tabs = this.tabs.filter(tab => ['summary', 'indexdata'].includes(tab));
|
|
20232
|
+
}
|
|
20233
|
+
else {
|
|
20234
|
+
this.tabs = this.tabs.filter(tab => ['summary', 'indexdata', 'preview', 'signature'].includes(tab));
|
|
20235
|
+
}
|
|
20236
|
+
}
|
|
20237
|
+
const diff = this.tabs.filter(t => !primary?.includes(t) && !secondary?.includes(t));
|
|
20238
|
+
const pTabsTemp = [...pri, ...plugins.filter(pl => !pri.includes(pl))];
|
|
20239
|
+
const pTabs = primary ? [...primary, ...diff] : pTabsTemp;
|
|
20240
|
+
const sTabs = secondary || sec;
|
|
20241
|
+
const p = pTabs.filter(t => this.tabs.includes(t));
|
|
20242
|
+
const s = sTabs.filter(t => this.tabs.includes(t));
|
|
20243
|
+
this.splitTabConfig = {
|
|
20244
|
+
primary: { tabs: p, active: p.includes(cachedOrder?.primary?.active) ? cachedOrder?.primary?.active : p[0] || '' },
|
|
20245
|
+
secondary: { tabs: s, active: s.includes(cachedOrder?.secondary?.active) ? cachedOrder?.secondary?.active : s[0] || '' },
|
|
20246
|
+
split: cachedOrder?.split
|
|
20247
|
+
};
|
|
20248
|
+
// force save of layout settings to include plugin tabs
|
|
20249
|
+
this.onLayoutSettingsChanged(this.splitTabConfig);
|
|
20250
|
+
}
|
|
20251
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectDetailsComponent, deps: [{ token: i2$1.Router }, { token: i2$1.ActivatedRoute }, { token: i1.SystemService }, { token: EmptyStateService }, { token: AgentService }, { token: i1.BackendService }, { token: i1.DmsService }, { token: SelectionService }, { token: ActionService }, { token: i1.CapabilitiesService }, { token: i1.UploadRegistryService }, { token: i1.EventService }, { token: i1.Config }, { token: i1.BpmService }, { token: i1.TranslateService }, { token: i0.ChangeDetectorRef }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20252
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: { plugins: "plugins", searchTerm: "searchTerm", enableCompare: "enableCompare", recyclebinTabs: "recyclebinTabs", versionComponentTabs: "versionComponentTabs", enableDiff: "enableDiff", enableSync: "enableSync", cacheLayout: "cacheLayout", applySelection: "applySelection", parseDmsParams: "parseDmsParams", reference: "reference", emptyState: "emptyState", dmsParams: ["params", "dmsParams"], dmsParams2: ["params2", "dmsParams2"], dmsObject: ["item", "dmsObject"], dmsObject2: ["item2", "dmsObject2"] }, outputs: { hasContent: "hasContent" }, host: { properties: { "class.reference": "this.isReference", "attr.data-type": "this.dataType" } }, providers: [ContentPreviewService], viewQueries: [{ propertyName: "preview", first: true, predicate: ["viewer"], descendants: true }, { propertyName: "eoSplitTabs", first: true, predicate: SplitTabsComponent, descendants: true }, { propertyName: "favoriteIcon", first: true, predicate: FavoriteIconComponent, descendants: true }, { propertyName: "tabContainers", predicate: Tabs, descendants: true }], ngImport: i0, template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError; else noItem\">\n\n <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"eo-header-actions-container\">\n <div class=\"eo-header-actions\">\n <ng-container>\n <eo-icon class=\"button refresh-button\" *ngIf=\"!recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" [iconTitle]=\"('eo.list.refresh' | translate)\"\n [ngClass]=\"{'disable-refresh': preventClickThrough}\" (click)=\"refreshContent()\"></eo-icon>\n <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare && !recyclebinTabs\"\n [ngClass]=\"{'enabled': onEnableSync,'disable': !enableSync}\" [iconSrc]=\"'assets/_default/svg/ic_link.svg'\"\n [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\" (click)=\"onEnableSync = !onEnableSync\"></eo-icon>\n <eo-favorite-icon [item]=\"item\"\n *ngIf=\"!enableCompare && !recyclebinTabs && capabilities.favorites && !isJournalObject(item)\">\n </eo-favorite-icon>\n <eo-icon class=\"button oc-button\" *ngIf=\"downloadAllowed && !enableCompare && item.content?.id\" (click)=\"downloadOriginalContent()\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\n <eo-edit-icon [item]=\"item\"\n *ngIf=\"!enableCompare && !recyclebinTabs && item.content?.id && item.rights.edit && (agentIsConnected$ | async)\n && !item.isFinalized && item.data.yuvsigstatus !== 'signed' && item.data.yuvsigstatus !== 'inprocess' && !item.lock\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" *ngIf=\"!recyclebinTabs\" (click)=\"showActions()\"\n [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </ng-container>\n\n </div>\n\n <div class=\"eo-header-status-icons\">\n <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\n [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\n <span>{{'eo.object.contentlink' | translate}}</span>\n </a>\n <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\" [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\n <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\n [iconTitle]=\"'eo.object.resubmission.tooltip' | translate: {due: item.resubmissions[0].due | localeDate, info: item.resubmissions[0].info}\"></eo-icon>\n <eo-icon class=\"shared-icon\" *ngIf=\"item.additionalvisibility.length && !recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"'eo.object.shared.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\n [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\n <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\n [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon inprocess\" *ngIf=\"item.data?.yuvsigstatus === 'inprocess'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.inprocess' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon signed\" *ngIf=\"item.data?.yuvsigstatus === 'signed'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.signed' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon stopped\"\n *ngIf=\"item.data?.yuvsigstatus === 'canceled'\n || item.data?.yuvsigstatus === 'revised' || item.data?.yuvsigstatus === 'error' || item.data?.yuvsigstatus === 'expired'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.stopped' | translate\"></eo-icon>\n @if (item.processcount > 0) {\n <eo-icon class=\"resubmission-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"\n [iconTitle]=\"'eo.object.processcount.tooltip' | translate : {processcount: item?.processcount, text: processTooltip}\"></eo-icon>\n }\n </div>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n\n <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\" [config]=\"splitTabConfig\" *ngIf=\"!item2; else tplCompare\">\n <!-- summary -->\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\n [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n <!-- metadata -->\n <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\n [formDisabled]=\"enableCompare\"></eo-object-form-edit>\n </ng-template>\n <!-- preview -->\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" (hasContentLoaded)=\"hasContentLoaded()\"\n #viewer></eo-media>\n </ng-template>\n <!-- history -->\n <ng-template [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\n <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n <!-- links -->\n <ng-template [yvcTab]=\"{id: 'links', label: 'eo.object.links.title' | translate}\">\n <eo-object-links [dmsObject]=\"item\"></eo-object-links>\n </ng-template>\n <!-- signature -->\n <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n </yvc-split-tabs>\n\n <ng-template #tplCompare>\n <yvc-split-view>\n <ng-template yvcSplitArea [size]=\"50\">\n\n <div class=\"cmp-wrapper\">\n <div class=\"cmp-info\">\n <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item.version}}</span></div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"tplTabs; context: {item, baseparams, indexdata: indexDataPreview, searchTerm}\"></ng-container>\n </div>\n\n </ng-template>\n <ng-template yvcSplitArea [size]=\"50\">\n\n <div class=\"cmp-wrapper\">\n <div class=\"cmp-info\">\n <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item2.version}}</span></div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"tplTabs; context: {item: item2, baseparams: baseparams2, indexdata: indexDataPreview2, searchTerm, diff: {baseparams, baseparams2, indexdata: indexDataPreview, indexdata2: indexDataPreview2}}\"></ng-container>\n </div>\n </ng-template>\n\n </yvc-split-view>\n </ng-template>\n\n <ng-template #tplTabs let-item=\"item\" let-indexdata=\"indexdata\" let-baseparams=\"baseparams\"\n let-searchTerm=\"searchTerm\" let-diff=\"diff\">\n <yvc-tabs (tabChange)=\"onCompareTabChange($event)\" layoutSettingsID=\"{{'eo.object.details.compare.tabs' + (diff ? '.0' : '.1')}}\">\n <!-- summary -->\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexdata\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n <!-- metadata -->\n <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\" [formDisabled]=\"enableCompare\"></eo-object-form-edit>\n </ng-template>\n @if (!item?.isFolder){\n <!-- preview -->\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media [useVersion]=\"true\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" #viewer></eo-media>\n </ng-template>\n <!-- signature -->\n @if (capabilities.signing){\n <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n }\n }\n <!-- changes -->\n <ng-template *ngIf=\"diff\"\n [yvcTab]=\"{id: 'changes', label: 'eo.object.changes.title' | translate}\">\n <eo-indexdata-summary [diff]=\"diff\" [enableVersions]=\"false\" [isChangesTab]=\"versionComponentTabs\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n\n\n </yvc-tabs>\n </ng-template>\n\n </div>\n</ng-container>\n\n<ng-template #noItem>\n <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\n <eo-error-message *ngIf=\"!showLoader\"\n [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\n <ng-content select=\".error\"></ng-content>\n </eo-error-message>\n</ng-template>\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto;--panel-divider-color: var(--panel-header-border-bottom-color)}:host .eo-head .eo-header .eo-header-info .eo-header-title,:host .eo-head .eo-header .eo-header-info .eo-header-subtitle{-webkit-user-select:text;user-select:text}:host .eo-body{background-color:var(--panel-background)}:host .eo-body__not-available{opacity:.4;background:rgba(var(--color-black-rgb),.4)}:host .eo-body .cmp-wrapper{height:100%;flex-flow:column;display:flex}:host .eo-body .cmp-wrapper .cmp-info{background-color:var(--panel-background);padding:2px}:host .eo-body .cmp-wrapper .cmp-info .version{margin:2px;border-radius:2px;background-color:var(--panel-background-lightgrey);border:1px dashed var(--panel-divider-color);color:var(--text-color-caption);text-align:center}:host .eo-body .cmp-wrapper .cmp-info .version>span{margin-inline-start:.5em;font-weight:700}:host .eo-body yvc-split-view,:host .eo-body yvc-split-tabs{height:100%}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .sync-tab-btn.disable{display:none}:host .lock{background:var(--color-error)!important;color:var(--color-white);width:18px;height:18px;border-radius:2px;padding:1px}:host .lock.myLock{color:var(--color-white);background:var(--state-orange)!important}:host .not-found{color:var(--panel-background);text-align:center;margin:calc(var(--app-pane-padding) / 2);padding:calc(var(--app-pane-padding) / 4);border-radius:2px;flex:0 0 auto;background:var(--color-error)}:host .eo-header-status-icons{margin-top:var(--app-pane-padding);display:flex;justify-content:flex-end}:host .eo-header-status-icons>eo-icon{width:18px;height:18px;padding:calc(var(--app-pane-padding) / 4);color:var(--color-white);margin-left:1px;background-color:var(--color-primary-2)}:host .eo-header-status-icons>eo-icon:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}:host .eo-header-status-icons>eo-icon:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}:host .eo-header-status-icons>eo-icon.finalized-icon{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.inprocess{background-color:var(--color-light-gray)}:host .eo-header-status-icons>eo-icon.signed-icon.signed{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.stopped{background-color:var(--color-error)}:host .eo-header-status-icons>a{margin:0 calc(var(--app-pane-padding) / 4);display:flex;align-items:center;color:var(--color-white);font-size:var(--font-hint);line-height:var(--font-hint);border-radius:2px;padding:0 4px 1px;text-decoration:none;background-color:var(--color-success)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .object-detail__loader{margin:auto}:host ::ng-deep yvc-tabs{flex:1;height:100%}:host ::ng-deep yvc-tabs>header{background-color:var(--panel-background)}:host ::ng-deep .yvc-split-area{background-color:var(--panel-background-grey)}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}:host ::ng-deep eo-media{height:100%;overflow:hidden;display:block}:host ::ng-deep .object-form-edit{position:relative;height:100%;margin:0;overflow:hidden;background:transparent!important}:host ::ng-deep .object-form-edit eo-object-form{background:transparent;overflow:auto}:host ::ng-deep .object-form-edit eo-object-form .eo-object-form{margin:var(--app-pane-padding);background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1)}:host ::ng-deep .object-form-edit .form-controls{animation:eoFadeInUp .2s}:host ::ng-deep .object-form-edit .form-controls .buttons{background:var(--panel-background);border-top:1px solid var(--panel-divider-color);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)!important}:host ::ng-deep .refresh-button.disable-refresh{cursor:default;color:var(--color-primary-3)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ObjectFormEditComponent, selector: "eo-object-form-edit", inputs: ["formDisabled", "dmsObject"], outputs: ["indexDataSaved"] }, { kind: "component", type: MediaComponent, selector: "eo-media", inputs: ["undockDisabled", "enableCloseBtn", "useVersion", "attachments", "searchTerm", "previewUri", "previewFile", "dmsObject"], outputs: ["hasContentLoaded"] }, { kind: "directive", type: ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: RouterLinkDirective, selector: "a[routerLink]" }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: ["baseparams", "enableVersions", "isChangesTab", "indexdata", "dmsObject", "diff"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: SignatureTabComponent, selector: "eo-signature-tab", inputs: ["dmsObject"] }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i12.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i12.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "component", type: i19.SplitTabsComponent, selector: "yvc-split-tabs", inputs: ["layoutSettingsID", "config", "panelOrder"], outputs: ["layoutSettingsChange"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: PluginComponent, selector: "eo-plugin", inputs: ["type", "id", "parent"] }, { kind: "component", type: ObjectHistoryComponent, selector: "eo-object-history", inputs: ["params"] }, { kind: "component", type: ObjectLinksComponent, selector: "eo-object-links", inputs: ["dmsObject"] }, { kind: "component", type: FavoriteIconComponent, selector: "eo-favorite-icon", inputs: ["item"] }, { kind: "component", type: EditIconComponent, selector: "eo-edit-icon", inputs: ["item"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }] }); }
|
|
20239
20253
|
};
|
|
20240
20254
|
ObjectDetailsComponent = __decorate([
|
|
20241
20255
|
UntilDestroy()
|
|
20242
20256
|
], ObjectDetailsComponent);
|
|
20243
20257
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectDetailsComponent, decorators: [{
|
|
20244
20258
|
type: Component,
|
|
20245
|
-
args: [{ selector: 'eo-object-details', providers: [ContentPreviewService], template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError; else noItem\">\n\n <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"eo-header-actions-container\">\n <div class=\"eo-header-actions\">\n <ng-container>\n <eo-icon class=\"button refresh-button\" *ngIf=\"!recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" [iconTitle]=\"('eo.list.refresh' | translate)\"\n [ngClass]=\"{'disable-refresh': preventClickThrough}\" (click)=\"refreshContent()\"></eo-icon>\n <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare && !recyclebinTabs\"\n [ngClass]=\"{'enabled': onEnableSync,'disable': !enableSync}\" [iconSrc]=\"'assets/_default/svg/ic_link.svg'\"\n [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\" (click)=\"onEnableSync = !onEnableSync\"></eo-icon>\n <eo-favorite-icon [item]=\"item\"\n *ngIf=\"!enableCompare && !recyclebinTabs && capabilities.favorites && !isJournalObject(item)\">\n </eo-favorite-icon>\n <eo-icon class=\"button oc-button\" *ngIf=\"!enableCompare && item.content?.id\" (click)=\"downloadOriginalContent()\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\n <eo-edit-icon [item]=\"item\"\n *ngIf=\"!enableCompare && !recyclebinTabs && item.content?.id && item.rights.edit && (agentIsConnected$ | async)\n && !item.isFinalized && item.data.yuvsigstatus !== 'signed' && item.data.yuvsigstatus !== 'inprocess' && !item.lock\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" *ngIf=\"!recyclebinTabs\" (click)=\"showActions()\"\n [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </ng-container>\n\n </div>\n\n <div class=\"eo-header-status-icons\">\n <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\n [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\n <span>{{'eo.object.contentlink' | translate}}</span>\n </a>\n <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\" [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\n <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\n [iconTitle]=\"'eo.object.resubmission.tooltip' | translate: {due: item.resubmissions[0].due | localeDate, info: item.resubmissions[0].info}\"></eo-icon>\n <eo-icon class=\"shared-icon\" *ngIf=\"item.additionalvisibility.length && !recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"'eo.object.shared.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\n [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\n <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\n [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon inprocess\" *ngIf=\"item.data?.yuvsigstatus === 'inprocess'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.inprocess' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon signed\" *ngIf=\"item.data?.yuvsigstatus === 'signed'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.signed' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon stopped\"\n *ngIf=\"item.data?.yuvsigstatus === 'canceled'\n || item.data?.yuvsigstatus === 'revised' || item.data?.yuvsigstatus === 'error' || item.data?.yuvsigstatus === 'expired'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.stopped' | translate\"></eo-icon>\n @if (item.processcount > 0) {\n <eo-icon class=\"resubmission-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"\n [iconTitle]=\"'eo.object.processcount.tooltip' | translate : {processcount: item?.processcount, text: processTooltip}\"></eo-icon>\n }\n </div>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n\n <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\" [config]=\"splitTabConfig\" *ngIf=\"!item2; else tplCompare\">\n <!-- summary -->\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\n [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n <!-- metadata -->\n <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\n [formDisabled]=\"enableCompare\"></eo-object-form-edit>\n </ng-template>\n <!-- preview -->\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" (hasContentLoaded)=\"hasContentLoaded($event)\"\n #viewer></eo-media>\n </ng-template>\n <!-- history -->\n <ng-template [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\n <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n <!-- links -->\n <ng-template [yvcTab]=\"{id: 'links', label: 'eo.object.links.title' | translate}\">\n <eo-object-links [dmsObject]=\"item\"></eo-object-links>\n </ng-template>\n <!-- signature -->\n <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n </yvc-split-tabs>\n\n <ng-template #tplCompare>\n <yvc-split-view>\n <ng-template yvcSplitArea [size]=\"50\">\n\n <div class=\"cmp-wrapper\">\n <div class=\"cmp-info\">\n <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item.version}}</span></div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"tplTabs; context: {item, baseparams, indexdata: indexDataPreview, searchTerm}\"></ng-container>\n </div>\n\n </ng-template>\n <ng-template yvcSplitArea [size]=\"50\">\n\n <div class=\"cmp-wrapper\">\n <div class=\"cmp-info\">\n <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item2.version}}</span></div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"tplTabs; context: {item: item2, baseparams: baseparams2, indexdata: indexDataPreview2, searchTerm, diff: {baseparams, baseparams2, indexdata: indexDataPreview, indexdata2: indexDataPreview2}}\"></ng-container>\n </div>\n </ng-template>\n\n </yvc-split-view>\n </ng-template>\n\n <ng-template #tplTabs let-item=\"item\" let-indexdata=\"indexdata\" let-baseparams=\"baseparams\"\n let-searchTerm=\"searchTerm\" let-diff=\"diff\">\n <yvc-tabs (tabChange)=\"onCompareTabChange($event)\" layoutSettingsID=\"{{'eo.object.details.compare.tabs' + (diff ? '.0' : '.1')}}\">\n <!-- summary -->\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexdata\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n <!-- metadata -->\n <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\" [formDisabled]=\"enableCompare\"></eo-object-form-edit>\n </ng-template>\n @if (!item?.isFolder){\n <!-- preview -->\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media [useVersion]=\"true\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" #viewer></eo-media>\n </ng-template>\n <!-- signature -->\n @if (capabilities.signing){\n <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n }\n }\n <!-- changes -->\n <ng-template *ngIf=\"diff\"\n [yvcTab]=\"{id: 'changes', label: 'eo.object.changes.title' | translate}\">\n <eo-indexdata-summary [diff]=\"diff\" [enableVersions]=\"false\" [isChangesTab]=\"versionComponentTabs\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n\n\n </yvc-tabs>\n </ng-template>\n\n </div>\n</ng-container>\n\n<ng-template #noItem>\n <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\n <eo-error-message *ngIf=\"!showLoader\"\n [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\n <ng-content select=\".error\"></ng-content>\n </eo-error-message>\n</ng-template>\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto;--panel-divider-color: var(--panel-header-border-bottom-color)}:host .eo-head .eo-header .eo-header-info .eo-header-title,:host .eo-head .eo-header .eo-header-info .eo-header-subtitle{-webkit-user-select:text;user-select:text}:host .eo-body{background-color:var(--panel-background)}:host .eo-body__not-available{opacity:.4;background:rgba(var(--color-black-rgb),.4)}:host .eo-body .cmp-wrapper{height:100%;flex-flow:column;display:flex}:host .eo-body .cmp-wrapper .cmp-info{background-color:var(--panel-background);padding:2px}:host .eo-body .cmp-wrapper .cmp-info .version{margin:2px;border-radius:2px;background-color:var(--panel-background-lightgrey);border:1px dashed var(--panel-divider-color);color:var(--text-color-caption);text-align:center}:host .eo-body .cmp-wrapper .cmp-info .version>span{margin-inline-start:.5em;font-weight:700}:host .eo-body yvc-split-view,:host .eo-body yvc-split-tabs{height:100%}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .sync-tab-btn.disable{display:none}:host .lock{background:var(--color-error)!important;color:var(--color-white);width:18px;height:18px;border-radius:2px;padding:1px}:host .lock.myLock{color:var(--color-white);background:var(--state-orange)!important}:host .not-found{color:var(--panel-background);text-align:center;margin:calc(var(--app-pane-padding) / 2);padding:calc(var(--app-pane-padding) / 4);border-radius:2px;flex:0 0 auto;background:var(--color-error)}:host .eo-header-status-icons{margin-top:var(--app-pane-padding);display:flex;justify-content:flex-end}:host .eo-header-status-icons>eo-icon{width:18px;height:18px;padding:calc(var(--app-pane-padding) / 4);color:var(--color-white);margin-left:1px;background-color:var(--color-primary-2)}:host .eo-header-status-icons>eo-icon:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}:host .eo-header-status-icons>eo-icon:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}:host .eo-header-status-icons>eo-icon.finalized-icon{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.inprocess{background-color:var(--color-light-gray)}:host .eo-header-status-icons>eo-icon.signed-icon.signed{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.stopped{background-color:var(--color-error)}:host .eo-header-status-icons>a{margin:0 calc(var(--app-pane-padding) / 4);display:flex;align-items:center;color:var(--color-white);font-size:var(--font-hint);line-height:var(--font-hint);border-radius:2px;padding:0 4px 1px;text-decoration:none;background-color:var(--color-success)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .object-detail__loader{margin:auto}:host ::ng-deep yvc-tabs{flex:1;height:100%}:host ::ng-deep yvc-tabs>header{background-color:var(--panel-background)}:host ::ng-deep .yvc-split-area{background-color:var(--panel-background-grey)}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}:host ::ng-deep eo-media{height:100%;overflow:hidden;display:block}:host ::ng-deep .object-form-edit{position:relative;height:100%;margin:0;overflow:hidden;background:transparent!important}:host ::ng-deep .object-form-edit eo-object-form{background:transparent;overflow:auto}:host ::ng-deep .object-form-edit eo-object-form .eo-object-form{margin:var(--app-pane-padding);background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1)}:host ::ng-deep .object-form-edit .form-controls{animation:eoFadeInUp .2s}:host ::ng-deep .object-form-edit .form-controls .buttons{background:var(--panel-background);border-top:1px solid var(--panel-divider-color);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)!important}:host ::ng-deep .refresh-button.disable-refresh{cursor:default;color:var(--color-primary-3)}\n"] }]
|
|
20246
|
-
}], ctorParameters: () => [{ type: i2$1.Router }, { type: i2$1.ActivatedRoute }, { type: i1.SystemService }, { type: EmptyStateService }, { type: AgentService }, { type: i1.BackendService }, { type: i1.DmsService }, { type: SelectionService }, { type: ActionService }, { type: i1.CapabilitiesService }, { type: i1.UploadRegistryService }, { type: i1.EventService }, { type: i1.Config }, { type: i1.BpmService }, { type: i1.TranslateService }, { type: i0.ChangeDetectorRef }], propDecorators: { preview: [{
|
|
20259
|
+
args: [{ selector: 'eo-object-details', providers: [ContentPreviewService], template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError; else noItem\">\n\n <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"eo-header-actions-container\">\n <div class=\"eo-header-actions\">\n <ng-container>\n <eo-icon class=\"button refresh-button\" *ngIf=\"!recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" [iconTitle]=\"('eo.list.refresh' | translate)\"\n [ngClass]=\"{'disable-refresh': preventClickThrough}\" (click)=\"refreshContent()\"></eo-icon>\n <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare && !recyclebinTabs\"\n [ngClass]=\"{'enabled': onEnableSync,'disable': !enableSync}\" [iconSrc]=\"'assets/_default/svg/ic_link.svg'\"\n [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\" (click)=\"onEnableSync = !onEnableSync\"></eo-icon>\n <eo-favorite-icon [item]=\"item\"\n *ngIf=\"!enableCompare && !recyclebinTabs && capabilities.favorites && !isJournalObject(item)\">\n </eo-favorite-icon>\n <eo-icon class=\"button oc-button\" *ngIf=\"downloadAllowed && !enableCompare && item.content?.id\" (click)=\"downloadOriginalContent()\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\n <eo-edit-icon [item]=\"item\"\n *ngIf=\"!enableCompare && !recyclebinTabs && item.content?.id && item.rights.edit && (agentIsConnected$ | async)\n && !item.isFinalized && item.data.yuvsigstatus !== 'signed' && item.data.yuvsigstatus !== 'inprocess' && !item.lock\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" *ngIf=\"!recyclebinTabs\" (click)=\"showActions()\"\n [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </ng-container>\n\n </div>\n\n <div class=\"eo-header-status-icons\">\n <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\n [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\n <span>{{'eo.object.contentlink' | translate}}</span>\n </a>\n <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\" [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\n <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\n [iconTitle]=\"'eo.object.resubmission.tooltip' | translate: {due: item.resubmissions[0].due | localeDate, info: item.resubmissions[0].info}\"></eo-icon>\n <eo-icon class=\"shared-icon\" *ngIf=\"item.additionalvisibility.length && !recyclebinTabs\"\n [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"'eo.object.shared.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\n [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\n <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\n [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon inprocess\" *ngIf=\"item.data?.yuvsigstatus === 'inprocess'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.inprocess' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon signed\" *ngIf=\"item.data?.yuvsigstatus === 'signed'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.signed' | translate\"></eo-icon>\n <eo-icon class=\"signed-icon stopped\"\n *ngIf=\"item.data?.yuvsigstatus === 'canceled'\n || item.data?.yuvsigstatus === 'revised' || item.data?.yuvsigstatus === 'error' || item.data?.yuvsigstatus === 'expired'\"\n [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\n [iconTitle]=\"'eo.object.signature.tooltip.stopped' | translate\"></eo-icon>\n @if (item.processcount > 0) {\n <eo-icon class=\"resubmission-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"\n [iconTitle]=\"'eo.object.processcount.tooltip' | translate : {processcount: item?.processcount, text: processTooltip}\"></eo-icon>\n }\n </div>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n\n <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\" [config]=\"splitTabConfig\" *ngIf=\"!item2; else tplCompare\">\n <!-- summary -->\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\n [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n <!-- metadata -->\n <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\n [formDisabled]=\"enableCompare\"></eo-object-form-edit>\n </ng-template>\n <!-- preview -->\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" (hasContentLoaded)=\"hasContentLoaded()\"\n #viewer></eo-media>\n </ng-template>\n <!-- history -->\n <ng-template [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\n <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n <!-- links -->\n <ng-template [yvcTab]=\"{id: 'links', label: 'eo.object.links.title' | translate}\">\n <eo-object-links [dmsObject]=\"item\"></eo-object-links>\n </ng-template>\n <!-- signature -->\n <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n </yvc-split-tabs>\n\n <ng-template #tplCompare>\n <yvc-split-view>\n <ng-template yvcSplitArea [size]=\"50\">\n\n <div class=\"cmp-wrapper\">\n <div class=\"cmp-info\">\n <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item.version}}</span></div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"tplTabs; context: {item, baseparams, indexdata: indexDataPreview, searchTerm}\"></ng-container>\n </div>\n\n </ng-template>\n <ng-template yvcSplitArea [size]=\"50\">\n\n <div class=\"cmp-wrapper\">\n <div class=\"cmp-info\">\n <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item2.version}}</span></div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"tplTabs; context: {item: item2, baseparams: baseparams2, indexdata: indexDataPreview2, searchTerm, diff: {baseparams, baseparams2, indexdata: indexDataPreview, indexdata2: indexDataPreview2}}\"></ng-container>\n </div>\n </ng-template>\n\n </yvc-split-view>\n </ng-template>\n\n <ng-template #tplTabs let-item=\"item\" let-indexdata=\"indexdata\" let-baseparams=\"baseparams\"\n let-searchTerm=\"searchTerm\" let-diff=\"diff\">\n <yvc-tabs (tabChange)=\"onCompareTabChange($event)\" layoutSettingsID=\"{{'eo.object.details.compare.tabs' + (diff ? '.0' : '.1')}}\">\n <!-- summary -->\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexdata\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n <!-- metadata -->\n <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\" [formDisabled]=\"enableCompare\"></eo-object-form-edit>\n </ng-template>\n @if (!item?.isFolder){\n <!-- preview -->\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media [useVersion]=\"true\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" #viewer></eo-media>\n </ng-template>\n <!-- signature -->\n @if (capabilities.signing){\n <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\n <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\n </ng-template>\n }\n }\n <!-- changes -->\n <ng-template *ngIf=\"diff\"\n [yvcTab]=\"{id: 'changes', label: 'eo.object.changes.title' | translate}\">\n <eo-indexdata-summary [diff]=\"diff\" [enableVersions]=\"false\" [isChangesTab]=\"versionComponentTabs\" [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n\n\n </yvc-tabs>\n </ng-template>\n\n </div>\n</ng-container>\n\n<ng-template #noItem>\n <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\n <eo-error-message *ngIf=\"!showLoader\"\n [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\n <ng-content select=\".error\"></ng-content>\n </eo-error-message>\n</ng-template>\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto;--panel-divider-color: var(--panel-header-border-bottom-color)}:host .eo-head .eo-header .eo-header-info .eo-header-title,:host .eo-head .eo-header .eo-header-info .eo-header-subtitle{-webkit-user-select:text;user-select:text}:host .eo-body{background-color:var(--panel-background)}:host .eo-body__not-available{opacity:.4;background:rgba(var(--color-black-rgb),.4)}:host .eo-body .cmp-wrapper{height:100%;flex-flow:column;display:flex}:host .eo-body .cmp-wrapper .cmp-info{background-color:var(--panel-background);padding:2px}:host .eo-body .cmp-wrapper .cmp-info .version{margin:2px;border-radius:2px;background-color:var(--panel-background-lightgrey);border:1px dashed var(--panel-divider-color);color:var(--text-color-caption);text-align:center}:host .eo-body .cmp-wrapper .cmp-info .version>span{margin-inline-start:.5em;font-weight:700}:host .eo-body yvc-split-view,:host .eo-body yvc-split-tabs{height:100%}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .sync-tab-btn.disable{display:none}:host .lock{background:var(--color-error)!important;color:var(--color-white);width:18px;height:18px;border-radius:2px;padding:1px}:host .lock.myLock{color:var(--color-white);background:var(--state-orange)!important}:host .not-found{color:var(--panel-background);text-align:center;margin:calc(var(--app-pane-padding) / 2);padding:calc(var(--app-pane-padding) / 4);border-radius:2px;flex:0 0 auto;background:var(--color-error)}:host .eo-header-status-icons{margin-top:var(--app-pane-padding);display:flex;justify-content:flex-end}:host .eo-header-status-icons>eo-icon{width:18px;height:18px;padding:calc(var(--app-pane-padding) / 4);color:var(--color-white);margin-left:1px;background-color:var(--color-primary-2)}:host .eo-header-status-icons>eo-icon:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}:host .eo-header-status-icons>eo-icon:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}:host .eo-header-status-icons>eo-icon.finalized-icon{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.inprocess{background-color:var(--color-light-gray)}:host .eo-header-status-icons>eo-icon.signed-icon.signed{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.signed-icon.stopped{background-color:var(--color-error)}:host .eo-header-status-icons>a{margin:0 calc(var(--app-pane-padding) / 4);display:flex;align-items:center;color:var(--color-white);font-size:var(--font-hint);line-height:var(--font-hint);border-radius:2px;padding:0 4px 1px;text-decoration:none;background-color:var(--color-success)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .object-detail__loader{margin:auto}:host ::ng-deep yvc-tabs{flex:1;height:100%}:host ::ng-deep yvc-tabs>header{background-color:var(--panel-background)}:host ::ng-deep .yvc-split-area{background-color:var(--panel-background-grey)}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}:host ::ng-deep eo-media{height:100%;overflow:hidden;display:block}:host ::ng-deep .object-form-edit{position:relative;height:100%;margin:0;overflow:hidden;background:transparent!important}:host ::ng-deep .object-form-edit eo-object-form{background:transparent;overflow:auto}:host ::ng-deep .object-form-edit eo-object-form .eo-object-form{margin:var(--app-pane-padding);background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1)}:host ::ng-deep .object-form-edit .form-controls{animation:eoFadeInUp .2s}:host ::ng-deep .object-form-edit .form-controls .buttons{background:var(--panel-background);border-top:1px solid var(--panel-divider-color);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)!important}:host ::ng-deep .refresh-button.disable-refresh{cursor:default;color:var(--color-primary-3)}\n"] }]
|
|
20260
|
+
}], ctorParameters: () => [{ type: i2$1.Router }, { type: i2$1.ActivatedRoute }, { type: i1.SystemService }, { type: EmptyStateService }, { type: AgentService }, { type: i1.BackendService }, { type: i1.DmsService }, { type: SelectionService }, { type: ActionService }, { type: i1.CapabilitiesService }, { type: i1.UploadRegistryService }, { type: i1.EventService }, { type: i1.Config }, { type: i1.BpmService }, { type: i1.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i1.UserService }], propDecorators: { preview: [{
|
|
20247
20261
|
type: ViewChild,
|
|
20248
20262
|
args: ['viewer']
|
|
20249
20263
|
}], eoSplitTabs: [{
|
|
@@ -20260,8 +20274,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
20260
20274
|
}], isReference: [{
|
|
20261
20275
|
type: HostBinding,
|
|
20262
20276
|
args: ['class.reference']
|
|
20263
|
-
}], reference: [{
|
|
20264
|
-
type: Input
|
|
20265
20277
|
}], searchTerm: [{
|
|
20266
20278
|
type: Input
|
|
20267
20279
|
}], enableCompare: [{
|
|
@@ -20276,6 +20288,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
20276
20288
|
type: Input
|
|
20277
20289
|
}], cacheLayout: [{
|
|
20278
20290
|
type: Input
|
|
20291
|
+
}], applySelection: [{
|
|
20292
|
+
type: Input
|
|
20293
|
+
}], parseDmsParams: [{
|
|
20294
|
+
type: Input
|
|
20295
|
+
}], hasContent: [{
|
|
20296
|
+
type: Output
|
|
20297
|
+
}], dataType: [{
|
|
20298
|
+
type: HostBinding,
|
|
20299
|
+
args: ['attr.data-type']
|
|
20300
|
+
}], reference: [{
|
|
20301
|
+
type: Input
|
|
20279
20302
|
}], emptyState: [{
|
|
20280
20303
|
type: Input
|
|
20281
20304
|
}], dmsParams: [{
|
|
@@ -20290,15 +20313,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
20290
20313
|
}], dmsObject2: [{
|
|
20291
20314
|
type: Input,
|
|
20292
20315
|
args: ['item2']
|
|
20293
|
-
}], applySelection: [{
|
|
20294
|
-
type: Input
|
|
20295
|
-
}], parseDmsParams: [{
|
|
20296
|
-
type: Input
|
|
20297
|
-
}], hasContent: [{
|
|
20298
|
-
type: Output
|
|
20299
|
-
}], dataType: [{
|
|
20300
|
-
type: HostBinding,
|
|
20301
|
-
args: ['attr.data-type']
|
|
20302
20316
|
}] } });
|
|
20303
20317
|
|
|
20304
20318
|
let RecyclebinDetailsComponent = class RecyclebinDetailsComponent {
|
|
@@ -21792,456 +21806,170 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
21792
21806
|
}]
|
|
21793
21807
|
}] });
|
|
21794
21808
|
|
|
21795
|
-
class
|
|
21796
|
-
|
|
21797
|
-
|
|
21798
|
-
|
|
21799
|
-
|
|
21800
|
-
|
|
21801
|
-
|
|
21802
|
-
|
|
21803
|
-
|
|
21804
|
-
|
|
21805
|
-
|
|
21806
|
-
firstValue = firstValue && typeof firstValue === 'string' ? firstValue.replace(/\*/g, '\\*') : firstValue; // wildcard needs to be escaped
|
|
21807
|
-
firstValue = filter.type === SimpleFilter.CONTAINS ? `*${firstValue}*` :
|
|
21808
|
-
filter.type === SimpleFilter.STARTS_WITH ? `${firstValue}*` :
|
|
21809
|
-
filter.type === SimpleFilter.ENDS_WITH ? `*${firstValue}` :
|
|
21810
|
-
op === SearchFilter.OPERATOR.IN ? firstValue.filter(f => f !== '') :
|
|
21811
|
-
firstValue;
|
|
21812
|
-
return new SearchFilter(property, op, firstValue, secondValue, filter.filterType === 'date' ? { time: !!filter.withTime } : undefined);
|
|
21809
|
+
class ChangePasswordFormComponent {
|
|
21810
|
+
constructor(fb, userService, translate, toaster) {
|
|
21811
|
+
this.fb = fb;
|
|
21812
|
+
this.userService = userService;
|
|
21813
|
+
this.translate = translate;
|
|
21814
|
+
this.toaster = toaster;
|
|
21815
|
+
this.userRegex = '';
|
|
21816
|
+
this.onFormSumbit = new EventEmitter();
|
|
21817
|
+
this.passwordIsVisible = false;
|
|
21818
|
+
this.passwordValidation = { type: 'valid', amount: null };
|
|
21819
|
+
this.generateForm();
|
|
21813
21820
|
}
|
|
21814
|
-
|
|
21815
|
-
|
|
21816
|
-
|
|
21817
|
-
|
|
21818
|
-
|
|
21819
|
-
|
|
21820
|
-
|
|
21821
|
-
|
|
21822
|
-
|
|
21823
|
-
|
|
21824
|
-
|
|
21825
|
-
|
|
21826
|
-
|
|
21827
|
-
|
|
21828
|
-
|
|
21829
|
-
|
|
21830
|
-
|
|
21831
|
-
|
|
21832
|
-
}
|
|
21833
|
-
this._query = this.searchService.buildQuery(query);
|
|
21834
|
-
if (this._query) {
|
|
21835
|
-
this.defaultQuery = this.searchService.buildQuery(this._query.getQueryJson());
|
|
21836
|
-
this.appSearchService.setQuery(this.defaultQuery);
|
|
21837
|
-
this.appSearchService.aggregate();
|
|
21838
|
-
const config = this.searchService.getResultFieldDefinitionConfig(this.query);
|
|
21839
|
-
this.configType = config.type;
|
|
21840
|
-
this.configContext = config.contextType;
|
|
21841
|
-
this.showLoader = true;
|
|
21842
|
-
this.searchService
|
|
21843
|
-
.getChunkedResult(this._query, 0, this.VIRTUAL_LIST_CHUNK_SIZE)
|
|
21844
|
-
.subscribe(result => {
|
|
21845
|
-
this.showLoader = false;
|
|
21846
|
-
this.clearQuery(this.clearAfterExecute);
|
|
21847
|
-
this.searchResult = result;
|
|
21848
|
-
}, Utils.throw(() => {
|
|
21849
|
-
this.showLoader = false;
|
|
21850
|
-
this.clearQuery(true);
|
|
21851
|
-
this.invalidQuery();
|
|
21852
|
-
}));
|
|
21853
|
-
this.querySubtitle = '';
|
|
21854
|
-
for (let i = 0; i < this.query.types.length; i++) {
|
|
21855
|
-
this.querySubtitle += this.query.types[i].label;
|
|
21856
|
-
if (i !== this.query.types.length - 1) {
|
|
21857
|
-
this.querySubtitle += ', ';
|
|
21858
|
-
}
|
|
21859
|
-
}
|
|
21860
|
-
}
|
|
21861
|
-
else {
|
|
21862
|
-
this.invalidQuery();
|
|
21821
|
+
generateForm() {
|
|
21822
|
+
const { compose, required, minLength } = Validators;
|
|
21823
|
+
this.changePasswordForm = this.fb.group({
|
|
21824
|
+
currentPassword: ['', compose([required, minLength(1)])],
|
|
21825
|
+
password: ['', compose([required, minLength(1)])],
|
|
21826
|
+
confirmPassword: ['', compose([required, minLength(1)])]
|
|
21827
|
+
}, {
|
|
21828
|
+
validator: compose([
|
|
21829
|
+
this.newPasswordValidator('currentPassword', 'password'),
|
|
21830
|
+
this.matchingPasswordsValidator('password', 'confirmPassword')
|
|
21831
|
+
])
|
|
21832
|
+
});
|
|
21833
|
+
this.onChanges();
|
|
21834
|
+
}
|
|
21835
|
+
newPasswordValidator(current, password) {
|
|
21836
|
+
return (group) => {
|
|
21837
|
+
if (group.controls[current].value !== group.controls[password].value) {
|
|
21838
|
+
return null;
|
|
21863
21839
|
}
|
|
21864
|
-
|
|
21840
|
+
return { 'SAME_PASSWORD': true };
|
|
21841
|
+
};
|
|
21865
21842
|
}
|
|
21866
|
-
|
|
21867
|
-
return
|
|
21843
|
+
matchingPasswordsValidator(password, confirm) {
|
|
21844
|
+
return (group) => {
|
|
21845
|
+
if (group.controls[password].value === group.controls[confirm].value) {
|
|
21846
|
+
return null;
|
|
21847
|
+
}
|
|
21848
|
+
return { 'matchingPasswords': true };
|
|
21849
|
+
};
|
|
21868
21850
|
}
|
|
21869
|
-
|
|
21870
|
-
|
|
21871
|
-
|
|
21872
|
-
|
|
21873
|
-
|
|
21874
|
-
if (fields && this.query && this.query.fields && this.query.fields.length) {
|
|
21875
|
-
fields.elements = this.query.fields.map(f => fields.elements.find(e => f === e.hitname));
|
|
21851
|
+
onChanges() {
|
|
21852
|
+
this.changePasswordForm.valueChanges
|
|
21853
|
+
.subscribe(value => {
|
|
21854
|
+
if (value.password) {
|
|
21855
|
+
this.passwordValidation = this.userService.validatePassword(value.password);
|
|
21876
21856
|
}
|
|
21877
|
-
|
|
21878
|
-
this._result = result;
|
|
21879
|
-
this.processResults(this._result);
|
|
21857
|
+
return this.matchingPasswords;
|
|
21880
21858
|
});
|
|
21881
21859
|
}
|
|
21882
|
-
|
|
21883
|
-
|
|
21884
|
-
}
|
|
21885
|
-
constructor(config, translate, gridApi, backend, appSearchService, searchService, eventService, storageService, storedQueriesService, router) {
|
|
21886
|
-
this.config = config;
|
|
21887
|
-
this.translate = translate;
|
|
21888
|
-
this.gridApi = gridApi;
|
|
21889
|
-
this.backend = backend;
|
|
21890
|
-
this.appSearchService = appSearchService;
|
|
21891
|
-
this.searchService = searchService;
|
|
21892
|
-
this.eventService = eventService;
|
|
21893
|
-
this.storageService = storageService;
|
|
21894
|
-
this.storedQueriesService = storedQueriesService;
|
|
21895
|
-
this.router = router;
|
|
21896
|
-
this.csvLoadingSpinnerVisibility = false;
|
|
21897
|
-
this.visibleConfig = false;
|
|
21898
|
-
this.showLoader = false;
|
|
21899
|
-
this.limitedList = false;
|
|
21900
|
-
this.resultGridOptions = {};
|
|
21901
|
-
this.settings = {};
|
|
21902
|
-
this.querySubtitle = '';
|
|
21903
|
-
this.savedSearchClicked = false;
|
|
21904
|
-
this.showWarnExportCSVThresholdDialog = false;
|
|
21905
|
-
this.title = '';
|
|
21906
|
-
this.emptyMessage = '';
|
|
21907
|
-
this.selectFirst = true;
|
|
21908
|
-
this.hasIcon = false;
|
|
21909
|
-
this.reference = false;
|
|
21910
|
-
this.onSelectionChanged = new EventEmitter();
|
|
21911
|
-
this.onFocusChanged = new EventEmitter();
|
|
21912
|
-
this.onDoubleClick = new EventEmitter();
|
|
21913
|
-
this.onContextMenu = new EventEmitter();
|
|
21914
|
-
this.onCountChanged = new EventEmitter();
|
|
21915
|
-
this.onRefresh = new EventEmitter();
|
|
21916
|
-
this.onResult = new EventEmitter();
|
|
21917
|
-
this.onQueryInvalid = new EventEmitter();
|
|
21918
|
-
// shortcut actions
|
|
21919
|
-
this.shortcuts = {
|
|
21920
|
-
id: 'eo.workspace.widget.hitlist.label',
|
|
21921
|
-
label: this.translate.instant('eo.workspace.widget.hitlist.label'),
|
|
21922
|
-
labelKey: 'eo.workspace.widget.hitlist.label',
|
|
21923
|
-
actions: [{
|
|
21924
|
-
name: this.translate.instant('eo.column.config.title'),
|
|
21925
|
-
nameKey: 'eo.column.config.title',
|
|
21926
|
-
shortcut: new Shortcut('P', false, false),
|
|
21927
|
-
onExecuteAction: () => {
|
|
21928
|
-
this.visibleConfig = !this.visibleConfig;
|
|
21929
|
-
},
|
|
21930
|
-
isHidden: () => {
|
|
21931
|
-
return false;
|
|
21932
|
-
}
|
|
21933
|
-
},
|
|
21934
|
-
{
|
|
21935
|
-
name: this.translate.instant('eo.resultlist.export.csv'),
|
|
21936
|
-
nameKey: 'eo.resultlist.export.csv',
|
|
21937
|
-
shortcut: new Shortcut('X', false, false),
|
|
21938
|
-
onExecuteAction: () => {
|
|
21939
|
-
this.exportCSV();
|
|
21940
|
-
},
|
|
21941
|
-
isHidden: () => {
|
|
21942
|
-
return false;
|
|
21943
|
-
}
|
|
21944
|
-
},
|
|
21945
|
-
{
|
|
21946
|
-
name: this.translate.instant('eo.object.actions.title'),
|
|
21947
|
-
nameKey: 'eo.object.actions.title',
|
|
21948
|
-
shortcut: new Shortcut('M', false, false),
|
|
21949
|
-
onExecuteAction: () => {
|
|
21950
|
-
this.list.showActions();
|
|
21951
|
-
},
|
|
21952
|
-
isHidden: () => {
|
|
21953
|
-
return false;
|
|
21954
|
-
}
|
|
21955
|
-
},
|
|
21956
|
-
{
|
|
21957
|
-
name: this.translate.instant('eo.list.refresh'),
|
|
21958
|
-
nameKey: 'eo.list.refresh',
|
|
21959
|
-
shortcut: new Shortcut('R', false, false),
|
|
21960
|
-
onExecuteAction: () => {
|
|
21961
|
-
this.refreshGrid();
|
|
21962
|
-
},
|
|
21963
|
-
isHidden: () => {
|
|
21964
|
-
return false;
|
|
21965
|
-
}
|
|
21966
|
-
}]
|
|
21967
|
-
};
|
|
21968
|
-
this.VIRTUAL_LIST_CHUNK_SIZE = this.config.getRaw('search.limit');
|
|
21969
|
-
this.resolveReferencesCsv = this.config.getRaw('search.resolveReferencesCSV') || false;
|
|
21970
|
-
this.resolveReferencesCsvThreshold = this.config.getRaw('search.resolveReferencesCSVThreshold') || 10000;
|
|
21971
|
-
this._cachedColumns = this.storageService.getItem(ResultListComponent_1.COLUMNS_DEFINITION) || [];
|
|
21860
|
+
showPasswords() {
|
|
21861
|
+
this.passwordIsVisible = !this.passwordIsVisible;
|
|
21972
21862
|
}
|
|
21973
|
-
|
|
21974
|
-
|
|
21975
|
-
|
|
21863
|
+
get passwordIsNew() {
|
|
21864
|
+
const { errors, controls } = this.changePasswordForm;
|
|
21865
|
+
let passwordIsNewError = false;
|
|
21866
|
+
if (errors) {
|
|
21867
|
+
const currentPassword = controls.currentPassword.touched && controls.currentPassword.dirty;
|
|
21868
|
+
const password = controls.password.touched && controls.password.dirty;
|
|
21869
|
+
passwordIsNewError = errors.SAME_PASSWORD && currentPassword && password;
|
|
21976
21870
|
}
|
|
21871
|
+
return passwordIsNewError;
|
|
21977
21872
|
}
|
|
21978
|
-
|
|
21979
|
-
this.
|
|
21980
|
-
|
|
21981
|
-
|
|
21982
|
-
|
|
21983
|
-
.
|
|
21984
|
-
.
|
|
21985
|
-
.subscribe((res) => {
|
|
21986
|
-
if (this.grid) {
|
|
21987
|
-
this.grid.updateRows(this.backend.update([res.data], [{ id: res.data.id }]));
|
|
21988
|
-
}
|
|
21989
|
-
});
|
|
21990
|
-
this.eventService
|
|
21991
|
-
.on(EnaioEvent.DMS_OBJECT_UPDATED)
|
|
21992
|
-
.pipe(untilDestroyed(this))
|
|
21993
|
-
.subscribe((res) => {
|
|
21994
|
-
if (this.grid) {
|
|
21995
|
-
this.updateRow(res.data.id, res.data.data);
|
|
21996
|
-
}
|
|
21997
|
-
});
|
|
21998
|
-
}
|
|
21999
|
-
ngAfterViewInit() {
|
|
22000
|
-
setTimeout(() => {
|
|
22001
|
-
if (this.grid && this._query) {
|
|
22002
|
-
this._query.sortOptions = (this.grid.api.getColumnState() || [])
|
|
22003
|
-
.map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));
|
|
22004
|
-
this.query = this._query;
|
|
22005
|
-
}
|
|
22006
|
-
}, 200);
|
|
22007
|
-
}
|
|
22008
|
-
updateRow(id, data) {
|
|
22009
|
-
const matchRow = this.resultGridOptions.rowData.find((r) => r.id === id);
|
|
22010
|
-
const systemFields = ['created', 'creatortitle', 'modified', 'modifiertitle', 'title', 'description', 'type', 'version', 'filesize', 'filename', 'mimetypegroup', 'mimetype'];
|
|
22011
|
-
let missingColumns = this.resultGridOptions.columnDefs;
|
|
22012
|
-
if (matchRow) {
|
|
22013
|
-
Object.keys(matchRow).forEach((k) => {
|
|
22014
|
-
if (data.hasOwnProperty(k)) {
|
|
22015
|
-
if (data.hasOwnProperty(k + '_meta')) {
|
|
22016
|
-
// if it is an org field, it will have a title to show, otherwise it is a codesystem and we show the label
|
|
22017
|
-
matchRow[k] = data[k + '_meta'].title ? data[k + '_meta'].title : data[k + '_meta'].label;
|
|
22018
|
-
}
|
|
22019
|
-
else {
|
|
22020
|
-
matchRow[k] = data[k];
|
|
22021
|
-
}
|
|
22022
|
-
missingColumns = missingColumns.filter((column) => column.field !== k);
|
|
22023
|
-
}
|
|
22024
|
-
else if (data.hasOwnProperty(k.split('.')[1])) {
|
|
22025
|
-
// some technical names have the object type as a prefix, we have to get rid of it
|
|
22026
|
-
const kSplit = k.split('.')[1];
|
|
22027
|
-
if (data.hasOwnProperty(kSplit + '_meta')) {
|
|
22028
|
-
matchRow[k] = data[kSplit + '_meta'].title ? data[kSplit + '_meta'].title : data[kSplit + '_meta'].label;
|
|
22029
|
-
}
|
|
22030
|
-
else {
|
|
22031
|
-
matchRow[k] = data[kSplit];
|
|
22032
|
-
}
|
|
22033
|
-
missingColumns = missingColumns.filter((column) => column.field !== k);
|
|
22034
|
-
}
|
|
22035
|
-
});
|
|
22036
|
-
// we need to iterate through the not already applied columns, which were changed from null or to null
|
|
22037
|
-
missingColumns.forEach((column) => {
|
|
22038
|
-
if (data.hasOwnProperty(column.field)) {
|
|
22039
|
-
matchRow[column.field] = data[column.field];
|
|
22040
|
-
}
|
|
22041
|
-
else if (data.hasOwnProperty(column.field.split('.')[1])) {
|
|
22042
|
-
matchRow[column.field] = data[column.field.split('.')[1]];
|
|
22043
|
-
}
|
|
22044
|
-
else {
|
|
22045
|
-
if (!systemFields.includes(column.field)) {
|
|
22046
|
-
matchRow[column.field] = null;
|
|
22047
|
-
}
|
|
22048
|
-
}
|
|
22049
|
-
});
|
|
22050
|
-
matchRow.id = id;
|
|
22051
|
-
const rowNode = this.grid.api.getRowNode(id);
|
|
22052
|
-
rowNode && rowNode.setData(matchRow);
|
|
21873
|
+
get matchingPasswords() {
|
|
21874
|
+
const { errors, controls } = this.changePasswordForm;
|
|
21875
|
+
let matchingPasswordsError = false;
|
|
21876
|
+
if (errors) {
|
|
21877
|
+
const password = controls.password.touched && controls.password.dirty;
|
|
21878
|
+
const confirmPassword = controls.confirmPassword.touched && controls.confirmPassword.dirty;
|
|
21879
|
+
matchingPasswordsError = errors.matchingPasswords && password && confirmPassword;
|
|
22053
21880
|
}
|
|
21881
|
+
return matchingPasswordsError;
|
|
22054
21882
|
}
|
|
22055
|
-
|
|
22056
|
-
|
|
22057
|
-
|
|
22058
|
-
|
|
22059
|
-
|
|
22060
|
-
|
|
22061
|
-
this.onRefresh.emit(this.query);
|
|
21883
|
+
changePasswordOnSuccess() {
|
|
21884
|
+
this.changePasswordForm.reset();
|
|
21885
|
+
this.changePasswordForm.markAsPristine();
|
|
21886
|
+
this.changePasswordForm.markAsUntouched();
|
|
21887
|
+
this.onFormSumbit.emit(true);
|
|
21888
|
+
this.toaster.success(this.translate.instant('eo.password.reset.success'));
|
|
22062
21889
|
}
|
|
22063
|
-
|
|
22064
|
-
|
|
22065
|
-
if (
|
|
22066
|
-
|
|
21890
|
+
changePasswordOnError(error) {
|
|
21891
|
+
const errorTitle = this.translate.instant('eo.password.reset.error.password.title');
|
|
21892
|
+
if (error.error.key === 'USER_OLD_PASSWORD_WRONG') {
|
|
21893
|
+
this.toaster.error(errorTitle, this.translate.instant('eo.password.reset.error.old.password.message'));
|
|
21894
|
+
}
|
|
21895
|
+
else if (error.error.key === 'USER_NEW_PASSWORD_INVALID') {
|
|
21896
|
+
this.toaster.error(errorTitle, this.translate.instant('eo.password.reset.error.new.password.message'));
|
|
22067
21897
|
}
|
|
22068
21898
|
else {
|
|
22069
|
-
this.
|
|
21899
|
+
this.toaster.error(errorTitle);
|
|
22070
21900
|
}
|
|
22071
|
-
this.storageService.setItem(ResultListComponent_1.COLUMNS_DEFINITION, this._cachedColumns);
|
|
22072
21901
|
}
|
|
22073
|
-
|
|
22074
|
-
|
|
22075
|
-
|
|
22076
|
-
|
|
22077
|
-
|
|
22078
|
-
|
|
22079
|
-
|
|
22080
|
-
|
|
21902
|
+
onSubmit() {
|
|
21903
|
+
const { currentPassword, password } = this.changePasswordForm.value;
|
|
21904
|
+
const payload = {
|
|
21905
|
+
old: currentPassword,
|
|
21906
|
+
new: password
|
|
21907
|
+
};
|
|
21908
|
+
this.userService
|
|
21909
|
+
.changePassword(payload)
|
|
21910
|
+
.subscribe(() => this.changePasswordOnSuccess(), (error) => this.changePasswordOnError(error));
|
|
22081
21911
|
}
|
|
22082
|
-
|
|
22083
|
-
|
|
22084
|
-
|
|
22085
|
-
|
|
22086
|
-
|
|
22087
|
-
|
|
22088
|
-
|
|
22089
|
-
|
|
22090
|
-
|
|
22091
|
-
|
|
22092
|
-
|
|
22093
|
-
|
|
22094
|
-
|
|
22095
|
-
|
|
22096
|
-
|
|
22097
|
-
gridOptions.columnDefs = this.gridApi.getColumnDefs(elements, sortorder, grouporder, pinned, alignmentx, false, this._cachedColumns, searchMode);
|
|
22098
|
-
const refreshGrid = this.hasGridOptions;
|
|
22099
|
-
Object.assign(this.resultGridOptions, gridOptions, this.gridOptions);
|
|
22100
|
-
if (refreshGrid) {
|
|
22101
|
-
// reload grid component
|
|
22102
|
-
this.resultGridOptions = {};
|
|
22103
|
-
setTimeout(() => Object.assign(this.resultGridOptions, gridOptions, this.gridOptions), 0);
|
|
22104
|
-
}
|
|
22105
|
-
}
|
|
22106
|
-
postfixSort(id) {
|
|
22107
|
-
// todo: remove when it's fixed on backend
|
|
22108
|
-
return id.match(/(^sysobject\.|^sysdocument\.)(creator$|modifier$)/) ? 'title' : '';
|
|
22109
|
-
}
|
|
22110
|
-
onPageChanged(page = 1) {
|
|
22111
|
-
if (this.limitedList && this.query) {
|
|
22112
|
-
this.fetchRowData({
|
|
22113
|
-
startRow: this.VIRTUAL_LIST_CHUNK_SIZE * (page - 1),
|
|
22114
|
-
sortModel: this.grid.api.getColumnState(),
|
|
22115
|
-
filterModel: this.grid.api.getFilterModel(),
|
|
22116
|
-
successCallback: (rows, total, relation) => {
|
|
22117
|
-
this.settings = { total, relation, size: this.VIRTUAL_LIST_CHUNK_SIZE, page };
|
|
22118
|
-
this.grid.api.setGridOption('rowData', rows);
|
|
22119
|
-
this.grid.selectRow(0);
|
|
22120
|
-
}
|
|
22121
|
-
});
|
|
22122
|
-
}
|
|
22123
|
-
}
|
|
22124
|
-
/**
|
|
22125
|
-
* Function for fetching the items to be displayed with a virtual row model.
|
|
22126
|
-
*
|
|
22127
|
-
* @param params - row model params (incl. startRow, endRow, sortModel and filterModel)
|
|
22128
|
-
*/
|
|
22129
|
-
fetchRowData(params) {
|
|
22130
|
-
if (this.query) {
|
|
22131
|
-
this.updateQuery(params);
|
|
22132
|
-
this.searchService
|
|
22133
|
-
.getChunkedResult(this.query, params.startRow, this.VIRTUAL_LIST_CHUNK_SIZE)
|
|
22134
|
-
.subscribe(result => {
|
|
22135
|
-
this.totalHits = this.grid.gridOptions.context.rowCount = result.count.value;
|
|
22136
|
-
this.grid.gridOptions.context.count = result.count;
|
|
22137
|
-
params.successCallback(result.hits, this.totalHits, result.count.relation);
|
|
22138
|
-
});
|
|
22139
|
-
}
|
|
22140
|
-
}
|
|
22141
|
-
updateQuery(params) {
|
|
22142
|
-
this.query.sortOptions = (params.sortModel || this.grid.api.getColumnState() || [])
|
|
22143
|
-
.map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));
|
|
22144
|
-
this.query.filters = this.defaultQuery.filters
|
|
22145
|
-
.concat((Object.keys(params.filterModel || this.grid.api.getFilterModel()) || [])
|
|
22146
|
-
.map(key => GridFilter.operator(GridService.qnameFormatter(key), (params.filterModel || this.grid.api.getFilterModel())[key])));
|
|
22147
|
-
this.query.searchMode = SearchQuery.DEFAULT_SEARCH_MODE;
|
|
22148
|
-
}
|
|
22149
|
-
executeSuggestSearch() {
|
|
22150
|
-
// todo: implement
|
|
22151
|
-
}
|
|
22152
|
-
resultHasReferences() {
|
|
22153
|
-
return this._result.fields.elements.some(element => element.type === 'ORGANIZATION' || element.type === 'REFERENCE');
|
|
22154
|
-
}
|
|
22155
|
-
exportCSV(ignoreThreshold = false) {
|
|
22156
|
-
if (!ignoreThreshold && this.resolveReferencesCsv
|
|
22157
|
-
&& (this.list.gridCount.totalCount > this.resolveReferencesCsvThreshold || this.list.gridCount.relation === 'gte')
|
|
22158
|
-
&& this.resultHasReferences()) {
|
|
22159
|
-
this.showWarnExportCSVThresholdDialog = true;
|
|
22160
|
-
return;
|
|
22161
|
-
}
|
|
22162
|
-
this.csvLoadingSpinnerVisibility = true;
|
|
22163
|
-
this.updateQuery({});
|
|
22164
|
-
this.showWarnExportCSVThresholdDialog = false;
|
|
22165
|
-
const queryJson = this.query.getQueryJson(this.resolveReferencesCsv);
|
|
22166
|
-
queryJson.fields = [];
|
|
22167
|
-
this.resultGridOptions?.columnDefs.forEach(colDef => {
|
|
22168
|
-
queryJson.fields.push(colDef['field'] + ' ' + colDef.headerName);
|
|
22169
|
-
});
|
|
22170
|
-
this.searchService.downloadCsvFromQuery(queryJson).subscribe(() => {
|
|
22171
|
-
this.csvLoadingSpinnerVisibility = false;
|
|
22172
|
-
});
|
|
22173
|
-
}
|
|
22174
|
-
parseDmsParams(data) {
|
|
22175
|
-
return { id: data && data.id ? data.id : null, type: data && data.type ? data.type : null };
|
|
22176
|
-
}
|
|
22177
|
-
get hasGridOptions() {
|
|
22178
|
-
return !!(this.resultGridOptions.datasource || this.resultGridOptions.rowData);
|
|
21912
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChangePasswordFormComponent, deps: [{ token: i1$3.UntypedFormBuilder }, { token: i1.UserService }, { token: i1.TranslateService }, { token: i1.NotificationsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21913
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ChangePasswordFormComponent, selector: "eo-change-password-form", inputs: { userRegex: "userRegex" }, outputs: { onFormSumbit: "onFormSumbit" }, ngImport: i0, template: "<section class=\"change-password\">\n <form #changePasswordFormElement [formGroup]=\"changePasswordForm\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\">\n <div class=\"form-item\">\n\n <eo-form-input [label]=\"('eo.password.reset.current-password' | translate)\" [required]=\"true\" [invalid]=\"passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'currentPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.current-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.new-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords || passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'password'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.new-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.confirm-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'confirmPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.confirm-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <div class=\"invalid error\" *ngIf=\"passwordIsNew\">\n {{'eo.password.reset.error.same.password' | translate}}\n </div>\n\n <div class=\"invalid error\" *ngIf=\"matchingPasswords\">\n {{'eo.password.reset.error.matiching.password' | translate}}\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'short'\">\n eo.password.reset.error.new.password.short\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'number'\">\n eo.password.reset.error.new.password.number\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'specialchars'\">\n eo.password.reset.error.new.password.specialchars\n </div>\n\n <section class=\"change-password__cta\">\n <button class=\"change-password__submit-button\" type=\"submit\"\n [disabled]=\"changePasswordForm.invalid || passwordValidation.type !== 'valid'\" translate>eo.password.reset.confirm-button</button>\n\n <a (click)=\"showPasswords()\" tabindex=\"0\" (keydown.enter)=\"showPasswords()\" >\n <eo-icon class=\"change-password__icon-show\"\n [iconSrc]=\"'assets/_default/svg/ic_eye.svg'\"\n [iconTitle]=\"('eo.password.reset.toogle.icon' | translate)\"\n [ngClass]=\"{'visible': passwordIsVisible}\"></eo-icon>\n </a>\n </section>\n </div>\n </form>\n\n</section>\n", styles: [".change-password .invalid.error{color:var(--color-error);padding:5px 0}.change-password :focus{outline:2px solid var(--text-color-caption)}.change-password__cta{margin-top:10px;display:flex;align-items:center}.change-password__submit-button{margin-right:10px}.change-password__icon-show{cursor:pointer;color:var(--text-color-caption)}.change-password__icon-show:hover{color:var(--color-accent)}.change-password__icon-show.visible{color:var(--color-primary-3)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: PasswordComponent, selector: "eo-password", inputs: ["pattern", "parent", "element", "placeholder", "canChangepasswordVisiblety", "passwordVisible"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
21914
|
+
}
|
|
21915
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChangePasswordFormComponent, decorators: [{
|
|
21916
|
+
type: Component,
|
|
21917
|
+
args: [{ selector: 'eo-change-password-form', template: "<section class=\"change-password\">\n <form #changePasswordFormElement [formGroup]=\"changePasswordForm\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\">\n <div class=\"form-item\">\n\n <eo-form-input [label]=\"('eo.password.reset.current-password' | translate)\" [required]=\"true\" [invalid]=\"passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'currentPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.current-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.new-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords || passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'password'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.new-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.confirm-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'confirmPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.confirm-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <div class=\"invalid error\" *ngIf=\"passwordIsNew\">\n {{'eo.password.reset.error.same.password' | translate}}\n </div>\n\n <div class=\"invalid error\" *ngIf=\"matchingPasswords\">\n {{'eo.password.reset.error.matiching.password' | translate}}\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'short'\">\n eo.password.reset.error.new.password.short\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'number'\">\n eo.password.reset.error.new.password.number\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'specialchars'\">\n eo.password.reset.error.new.password.specialchars\n </div>\n\n <section class=\"change-password__cta\">\n <button class=\"change-password__submit-button\" type=\"submit\"\n [disabled]=\"changePasswordForm.invalid || passwordValidation.type !== 'valid'\" translate>eo.password.reset.confirm-button</button>\n\n <a (click)=\"showPasswords()\" tabindex=\"0\" (keydown.enter)=\"showPasswords()\" >\n <eo-icon class=\"change-password__icon-show\"\n [iconSrc]=\"'assets/_default/svg/ic_eye.svg'\"\n [iconTitle]=\"('eo.password.reset.toogle.icon' | translate)\"\n [ngClass]=\"{'visible': passwordIsVisible}\"></eo-icon>\n </a>\n </section>\n </div>\n </form>\n\n</section>\n", styles: [".change-password .invalid.error{color:var(--color-error);padding:5px 0}.change-password :focus{outline:2px solid var(--text-color-caption)}.change-password__cta{margin-top:10px;display:flex;align-items:center}.change-password__submit-button{margin-right:10px}.change-password__icon-show{cursor:pointer;color:var(--text-color-caption)}.change-password__icon-show:hover{color:var(--color-accent)}.change-password__icon-show.visible{color:var(--color-primary-3)}\n"] }]
|
|
21918
|
+
}], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }, { type: i1.UserService }, { type: i1.TranslateService }, { type: i1.NotificationsService }], propDecorators: { userRegex: [{
|
|
21919
|
+
type: Input
|
|
21920
|
+
}], onFormSumbit: [{
|
|
21921
|
+
type: Output
|
|
21922
|
+
}] } });
|
|
21923
|
+
|
|
21924
|
+
class PermissionsComponent {
|
|
21925
|
+
constructor() {
|
|
21926
|
+
this._roles = [];
|
|
22179
21927
|
}
|
|
22180
|
-
|
|
22181
|
-
this.
|
|
22182
|
-
this.router.navigate([{ outlets: { modal: 'search' } }]);
|
|
21928
|
+
set roles(roles) {
|
|
21929
|
+
this._roles = roles.sort(Utils.sortValues('name'));
|
|
22183
21930
|
}
|
|
22184
|
-
|
|
22185
|
-
|
|
22186
|
-
|
|
22187
|
-
const uriParamQuery = { queryParams: { 'query': uriParam } };
|
|
22188
|
-
this.router.navigate(['/result'], uriParamQuery);
|
|
21931
|
+
;
|
|
21932
|
+
get roles() {
|
|
21933
|
+
return this._roles;
|
|
22189
21934
|
}
|
|
22190
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type:
|
|
22191
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ResultListComponent, selector: "eo-result-list", inputs: { title: "title", configType: "configType", configContext: "configContext", clearAfterExecute: "clearAfterExecute", emptyMessage: "emptyMessage", selectFirst: "selectFirst", gridOptions: "gridOptions", hasIcon: "hasIcon", reference: "reference", query: "query", searchResult: "searchResult" }, outputs: { onSelectionChanged: "onSelectionChanged", onFocusChanged: "onFocusChanged", onDoubleClick: "onDoubleClick", onContextMenu: "onContextMenu", onCountChanged: "onCountChanged", onRefresh: "onRefresh", onResult: "onResult", onQueryInvalid: "onQueryInvalid" }, viewQueries: [{ propertyName: "grid", first: true, predicate: ["eoGrid"], descendants: true }, { propertyName: "list", first: true, predicate: ["eoList"], descendants: true }], ngImport: i0, template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\n</div>\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\n\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\" [eoShortcuts]=\"shortcuts\">\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\n <div class=\"eo-header-subtitle\">\n <span *ngIf=\"!storedQuery; else storedQueryText\" class=\"eo-header-subtitle__label\" [title]=\"querySubtitle\">{{querySubtitle}}</span>\n <ng-template #storedQueryText>\n <ng-container *ngIf=\"storedQuery.parameter.length === 0; else storedQueryDialog\">\n <span class=\"eo-header-subtitle__label\" [title]=\"('eo.search.aside.summary.storedquery' | translate) + ': ' + storedQuery.name\">\n {{'eo.search.aside.summary.storedquery' | translate}}: {{storedQuery.name}}\n </span>\n </ng-container>\n </ng-template>\n <ng-template #storedQueryDialog>\n <div class=\"stored-query\">\n <span>\n {{'eo.search.aside.summary.storedquery' | translate}}:\n </span>\n <button class=\"sq\" (click)=\"savedSearchClicked = true\" (keyup.enter)=\"savedSearchClicked = true\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{storedQuery.name}}</span>\n </button>\n </div>\n </ng-template>\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\n <span class=\"term\" *ngIf=\"!storedQuery && query?.term && !clearAfterExecute\" [title]=\"('eo.search.result.term' | translate) + ': ' + query.term\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\n </div>\n </div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\n (click)=\"exportCSV()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\n </div>\n </eo-grid>\n </div>\n <ng-template #error>\n\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\n </eo-error-message>\n\n </ng-template>\n</eo-list-container>\n\n<eo-dialog [visible]=\"savedSearchClicked\" (hide)=\"savedSearchClicked = false\" [title]=\"'eo.search.aside.summary.storedquery' | translate\">\n\n</eo-dialog>\n\n<eo-dialog [title]=\"'eo.resultlist.export.csv.threshold.dialog.title' | translate\"\n [(visible)]=\"showWarnExportCSVThresholdDialog\" [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'threshold__dialog'\">\n\n <div>{{'eo.resultlist.export.csv.threshold.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showWarnExportCSVThresholdDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"exportCSV(true)\" class=\"button primary\"\n translate>eo.resultlist.export.csv.threshold.dialog.export</button>\n </div>\n</eo-dialog>\n\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background);height:100%}:host .spinner{padding:calc(var(--app-pane-padding) / 4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{padding-bottom:calc(var(--app-pane-padding) / 4);font-size:20px;-webkit-user-select:none;user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{padding:calc(var(--app-pane-padding) / 4);cursor:pointer}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .result-list__loader{margin:auto}:host .stored-query{display:flex;max-height:45vh}:host .stored-query span{padding-right:calc(var(--app-pane-padding) / 2)}:host .stored-query>div{background-color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);margin:0 1px;border-radius:2px 0 0 2px}:host .stored-query>div eo-icon{padding:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption)}:host .stored-query .sq{overflow:hidden;border-radius:2px;padding:calc(var(--app-pane-padding) / 100);background-color:var(--color-white);color:var(--text-color-caption);text-decoration:none;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;flex-flow:row;align-items:center;background-color:var(--list-item-hover-background)}:host .stored-query .sq>eo-icon{color:var(--text-color-hint);flex-shrink:0}:host .stored-query .sq>span{text-overflow:ellipsis;overflow:hidden;padding:0 calc(var(--app-pane-padding) / 2)}eo-stored-query{border-radius:0 2px 2px 0;background-color:var(--color-white);padding:var(--app-pane-padding);overflow-y:auto}::ng-deep .threshold__dialog{padding:8px;min-height:unset!important}::ng-deep .threshold__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: ColumnConfiguratorComponent, selector: "eo-column-configurator", inputs: ["configType", "configContext", "visible", "eoGrid"], outputs: ["onConfigChanged"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: PaginationComponent, selector: "eo-pagination", inputs: ["settings"], outputs: ["pageChanged"] }, { kind: "directive", type: ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
22192
|
-
}
|
|
22193
|
-
|
|
22194
|
-
UntilDestroy()
|
|
22195
|
-
], ResultListComponent);
|
|
22196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResultListComponent, decorators: [{
|
|
21935
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PermissionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21936
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: PermissionsComponent, selector: "eo-permissions", inputs: { roles: "roles" }, ngImport: i0, template: "<div class=\"role\" *ngFor=\"let role of roles\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_shield.svg'\"></eo-icon>\n <div>\n <div class=\"name\">{{role.name}}</div>\n <div class=\"description\">{{role.description}}</div>\n </div>\n</div>\n", styles: [".role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.role>div{padding:0 calc(var(--app-pane-padding) / 2)}.role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }] }); }
|
|
21937
|
+
}
|
|
21938
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PermissionsComponent, decorators: [{
|
|
22197
21939
|
type: Component,
|
|
22198
|
-
args: [{ selector: 'eo-
|
|
22199
|
-
}],
|
|
22200
|
-
type: ViewChild,
|
|
22201
|
-
args: ['eoGrid']
|
|
22202
|
-
}], list: [{
|
|
22203
|
-
type: ViewChild,
|
|
22204
|
-
args: ['eoList']
|
|
22205
|
-
}], title: [{
|
|
22206
|
-
type: Input
|
|
22207
|
-
}], configType: [{
|
|
22208
|
-
type: Input
|
|
22209
|
-
}], configContext: [{
|
|
22210
|
-
type: Input
|
|
22211
|
-
}], clearAfterExecute: [{
|
|
22212
|
-
type: Input
|
|
22213
|
-
}], emptyMessage: [{
|
|
22214
|
-
type: Input
|
|
22215
|
-
}], selectFirst: [{
|
|
22216
|
-
type: Input
|
|
22217
|
-
}], gridOptions: [{
|
|
22218
|
-
type: Input
|
|
22219
|
-
}], hasIcon: [{
|
|
22220
|
-
type: Input
|
|
22221
|
-
}], reference: [{
|
|
22222
|
-
type: Input
|
|
22223
|
-
}], onSelectionChanged: [{
|
|
22224
|
-
type: Output
|
|
22225
|
-
}], onFocusChanged: [{
|
|
22226
|
-
type: Output
|
|
22227
|
-
}], onDoubleClick: [{
|
|
22228
|
-
type: Output
|
|
22229
|
-
}], onContextMenu: [{
|
|
22230
|
-
type: Output
|
|
22231
|
-
}], onCountChanged: [{
|
|
22232
|
-
type: Output
|
|
22233
|
-
}], onRefresh: [{
|
|
22234
|
-
type: Output
|
|
22235
|
-
}], onResult: [{
|
|
22236
|
-
type: Output
|
|
22237
|
-
}], onQueryInvalid: [{
|
|
22238
|
-
type: Output
|
|
22239
|
-
}], query: [{
|
|
22240
|
-
type: Input
|
|
22241
|
-
}], searchResult: [{
|
|
21940
|
+
args: [{ selector: 'eo-permissions', template: "<div class=\"role\" *ngFor=\"let role of roles\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_shield.svg'\"></eo-icon>\n <div>\n <div class=\"name\">{{role.name}}</div>\n <div class=\"description\">{{role.description}}</div>\n </div>\n</div>\n", styles: [".role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.role>div{padding:0 calc(var(--app-pane-padding) / 2)}.role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}\n"] }]
|
|
21941
|
+
}], propDecorators: { roles: [{
|
|
22242
21942
|
type: Input
|
|
22243
21943
|
}] } });
|
|
22244
21944
|
|
|
21945
|
+
class SettingsModule {
|
|
21946
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SettingsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
21947
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: SettingsModule, declarations: [ChangePasswordFormComponent, PermissionsComponent], imports: [CommonModule,
|
|
21948
|
+
ReactiveFormsModule,
|
|
21949
|
+
FormElementsModule,
|
|
21950
|
+
EoSharedModule,
|
|
21951
|
+
UiModule], exports: [ChangePasswordFormComponent, PermissionsComponent] }); }
|
|
21952
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SettingsModule, imports: [CommonModule,
|
|
21953
|
+
ReactiveFormsModule,
|
|
21954
|
+
FormElementsModule,
|
|
21955
|
+
EoSharedModule,
|
|
21956
|
+
UiModule] }); }
|
|
21957
|
+
}
|
|
21958
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SettingsModule, decorators: [{
|
|
21959
|
+
type: NgModule,
|
|
21960
|
+
args: [{
|
|
21961
|
+
imports: [
|
|
21962
|
+
CommonModule,
|
|
21963
|
+
ReactiveFormsModule,
|
|
21964
|
+
FormElementsModule,
|
|
21965
|
+
EoSharedModule,
|
|
21966
|
+
UiModule
|
|
21967
|
+
],
|
|
21968
|
+
declarations: [ChangePasswordFormComponent, PermissionsComponent],
|
|
21969
|
+
exports: [ChangePasswordFormComponent, PermissionsComponent]
|
|
21970
|
+
}]
|
|
21971
|
+
}] });
|
|
21972
|
+
|
|
22245
21973
|
class StoredQueryComponent {
|
|
22246
21974
|
set query(storedQuery) {
|
|
22247
21975
|
if (storedQuery instanceof StoredQuery) {
|
|
@@ -22614,434 +22342,906 @@ let StoredQueryDetailsComponent = class StoredQueryDetailsComponent {
|
|
|
22614
22342
|
this.eventService.trigger(EnaioEvent.STORED_OBJECT_FAVORISED);
|
|
22615
22343
|
}, Utils.throw(null, this.translate.instant('eo.search.storedquery.save.error')));
|
|
22616
22344
|
}
|
|
22617
|
-
cancelEdit() {
|
|
22618
|
-
this.resetEditForm();
|
|
22619
|
-
this.finishPending();
|
|
22620
|
-
if (this.storedQuery.isNew()) {
|
|
22621
|
-
this.query = null;
|
|
22345
|
+
cancelEdit() {
|
|
22346
|
+
this.resetEditForm();
|
|
22347
|
+
this.finishPending();
|
|
22348
|
+
if (this.storedQuery.isNew()) {
|
|
22349
|
+
this.query = null;
|
|
22350
|
+
}
|
|
22351
|
+
this.notifyList.emit({ unselect: false, update: false, payload: this.storedQuery });
|
|
22352
|
+
}
|
|
22353
|
+
setQueryToAppSearch() {
|
|
22354
|
+
this.storedQueryForm.load();
|
|
22355
|
+
}
|
|
22356
|
+
executeQuery() {
|
|
22357
|
+
this.storedQueryForm.execute();
|
|
22358
|
+
}
|
|
22359
|
+
// Save the current stored query
|
|
22360
|
+
updateStoredQuery() {
|
|
22361
|
+
const formData = this.getFormData();
|
|
22362
|
+
this.storedQuery.filters = this.storedQuery.filters.filter(f => ~this.BASE_PARAMS_FIELDS.indexOf(f.property));
|
|
22363
|
+
Object.keys(formData)
|
|
22364
|
+
.forEach(k => {
|
|
22365
|
+
if (k === this.FORM_INPUT_TITLE) {
|
|
22366
|
+
this.storedQuery.name = formData[k];
|
|
22367
|
+
}
|
|
22368
|
+
else if (k === this.FORM_INPUT_FULLTEXT) {
|
|
22369
|
+
this.storedQuery.term = formData[k];
|
|
22370
|
+
}
|
|
22371
|
+
else {
|
|
22372
|
+
let filters = this.searchService.getSearchFilter(this.storedQuery.types, k, formData[k]);
|
|
22373
|
+
filters.forEach(f => this.storedQuery.addFilter(f));
|
|
22374
|
+
}
|
|
22375
|
+
});
|
|
22376
|
+
this.storedQueriesService
|
|
22377
|
+
.saveStoredQuery(this.storedQuery)
|
|
22378
|
+
.subscribe(updatedStoredQuery => {
|
|
22379
|
+
this.query = updatedStoredQuery;
|
|
22380
|
+
this.resetEditForm();
|
|
22381
|
+
this.finishPending();
|
|
22382
|
+
this.notifyList.emit({ unselect: false, update: false, payload: updatedStoredQuery });
|
|
22383
|
+
}, Utils.throw(null, this.translate.instant('eo.search.storedquery.save.error')));
|
|
22384
|
+
}
|
|
22385
|
+
/**
|
|
22386
|
+
* Toggle form elements to be a dynamic parameter or not
|
|
22387
|
+
* @param event
|
|
22388
|
+
*/
|
|
22389
|
+
parameterChanged(event) {
|
|
22390
|
+
let m = this.storedQuery.parameter.find(p => p.qname === event.control);
|
|
22391
|
+
if (m && !event.value) {
|
|
22392
|
+
// remove existing parameter
|
|
22393
|
+
this.storedQuery.parameter = this.storedQuery.parameter.filter(p => p.qname !== event.control);
|
|
22394
|
+
}
|
|
22395
|
+
else if (!m && event.value) {
|
|
22396
|
+
// add parameter element
|
|
22397
|
+
let param = this.formFieldToParameter(event.control);
|
|
22398
|
+
if (param) {
|
|
22399
|
+
this.storedQuery.parameter.push(param);
|
|
22400
|
+
}
|
|
22401
|
+
}
|
|
22402
|
+
}
|
|
22403
|
+
getFormData() {
|
|
22404
|
+
const properties = Object.keys(this.editForm.form.value);
|
|
22405
|
+
let data = {};
|
|
22406
|
+
properties.forEach(property => {
|
|
22407
|
+
const fc = this.editForm.form.controls[property];
|
|
22408
|
+
let formElement;
|
|
22409
|
+
if (fc.controls && fc.controls[property]) {
|
|
22410
|
+
const fe = fc.controls[property];
|
|
22411
|
+
formElement = fe._eoFormElement;
|
|
22412
|
+
}
|
|
22413
|
+
if (formElement && formElement.isNotSetValue) {
|
|
22414
|
+
data[property] = null;
|
|
22415
|
+
}
|
|
22416
|
+
else {
|
|
22417
|
+
switch (property) {
|
|
22418
|
+
case this.FORM_INPUT_TITLE: {
|
|
22419
|
+
data[property] = this.editForm.form.value[property] || '';
|
|
22420
|
+
break;
|
|
22421
|
+
}
|
|
22422
|
+
case this.FORM_INPUT_FULLTEXT: {
|
|
22423
|
+
data[property] = this.editForm.form.value[property][StoredQueriesService.FULLTEXT] || '';
|
|
22424
|
+
break;
|
|
22425
|
+
}
|
|
22426
|
+
default: {
|
|
22427
|
+
const v = this.editForm.form.value[property][property];
|
|
22428
|
+
if (!UtilitiesService.isEmpty(v)) {
|
|
22429
|
+
data[property] = v;
|
|
22430
|
+
}
|
|
22431
|
+
}
|
|
22432
|
+
}
|
|
22433
|
+
}
|
|
22434
|
+
});
|
|
22435
|
+
return data;
|
|
22436
|
+
}
|
|
22437
|
+
/**
|
|
22438
|
+
* Create a dynamic stored query parameter for a form element
|
|
22439
|
+
* @param qname The form elements qname
|
|
22440
|
+
* @returns
|
|
22441
|
+
*/
|
|
22442
|
+
formFieldToParameter(qname) {
|
|
22443
|
+
try {
|
|
22444
|
+
let param;
|
|
22445
|
+
// special handling for fulltext fields
|
|
22446
|
+
if (qname === StoredQueriesService.FULLTEXT) {
|
|
22447
|
+
param = {
|
|
22448
|
+
qname: qname,
|
|
22449
|
+
type: qname,
|
|
22450
|
+
};
|
|
22451
|
+
}
|
|
22452
|
+
else {
|
|
22453
|
+
const fc = this.editForm.form.controls[qname].controls[qname];
|
|
22454
|
+
const fe = fc._eoFormElement;
|
|
22455
|
+
param = {
|
|
22456
|
+
qname: fe.qname,
|
|
22457
|
+
type: fe.type
|
|
22458
|
+
};
|
|
22459
|
+
}
|
|
22460
|
+
return param;
|
|
22461
|
+
}
|
|
22462
|
+
catch (e) {
|
|
22463
|
+
return null;
|
|
22464
|
+
}
|
|
22465
|
+
}
|
|
22466
|
+
resetEditForm() {
|
|
22467
|
+
this.editForm = {
|
|
22468
|
+
form: null,
|
|
22469
|
+
fulltextFormControl: null,
|
|
22470
|
+
controls: [],
|
|
22471
|
+
contextControls: []
|
|
22472
|
+
};
|
|
22473
|
+
}
|
|
22474
|
+
onFormChanges() {
|
|
22475
|
+
this.editForm
|
|
22476
|
+
.form
|
|
22477
|
+
.valueChanges
|
|
22478
|
+
.subscribe(() => this.onFormStatusChanged(this.editForm.form));
|
|
22479
|
+
}
|
|
22480
|
+
createEditForm() {
|
|
22481
|
+
this.resetEditForm();
|
|
22482
|
+
this.setupFormControls().subscribe(_ => {
|
|
22483
|
+
let form = new ObjectFormGroup({});
|
|
22484
|
+
let fcTitle = new UntypedFormControl('', Validators.required);
|
|
22485
|
+
fcTitle.setValue(this.storedQuery.name);
|
|
22486
|
+
let fcFulltext = this.toFormControl(this.storedQueriesService.getFulltextFormElement(this.translate.instant('eo.storedquery.search.term'), this.storedQuery.term));
|
|
22487
|
+
this.editForm.fulltextFormControl = fcFulltext;
|
|
22488
|
+
// add title and fulltext field
|
|
22489
|
+
form.addControl(this.FORM_INPUT_TITLE, fcTitle);
|
|
22490
|
+
form.addControl(this.FORM_INPUT_FULLTEXT, fcFulltext);
|
|
22491
|
+
if (this.editForm.controls.length || this.editForm.contextControls.length) {
|
|
22492
|
+
this.editForm.controls
|
|
22493
|
+
.forEach((c) => form.addControl(c._eoFormControlWrapper.controlName, c));
|
|
22494
|
+
this.editForm.contextControls
|
|
22495
|
+
.forEach((c) => form.addControl(c._eoFormControlWrapper.controlName, c));
|
|
22496
|
+
}
|
|
22497
|
+
this.editForm.form = form;
|
|
22498
|
+
this.onFormChanges();
|
|
22499
|
+
});
|
|
22500
|
+
}
|
|
22501
|
+
setupFormControls() {
|
|
22502
|
+
const tasks = [];
|
|
22503
|
+
// setting up object type form only makes sense with one target type
|
|
22504
|
+
if (this.storedQuery.types.length === 1) {
|
|
22505
|
+
tasks.push(this.systemService.getFormElementsFromFormModel(this.storedQuery.types[0].qname, 'SEARCH').pipe(tap((elements) => {
|
|
22506
|
+
elements.forEach(e => {
|
|
22507
|
+
// prevent tables and binary types from being rendered in the stored query form
|
|
22508
|
+
if (e.type !== 'BINARY') {
|
|
22509
|
+
if (e.required) {
|
|
22510
|
+
e.required = false;
|
|
22511
|
+
}
|
|
22512
|
+
if (e.readonly) {
|
|
22513
|
+
e.readonly = false;
|
|
22514
|
+
}
|
|
22515
|
+
const fc = this.toFormControl(e);
|
|
22516
|
+
if (fc) {
|
|
22517
|
+
this.editForm.controls.push(fc);
|
|
22518
|
+
}
|
|
22519
|
+
}
|
|
22520
|
+
});
|
|
22521
|
+
})));
|
|
22522
|
+
}
|
|
22523
|
+
// add context form controls as well
|
|
22524
|
+
if (this.storedQuery.contextFolderTypes.length) {
|
|
22525
|
+
tasks.push(this.systemService.getFormElementsFromFormModel(this.storedQuery.contextFolderTypes[0].qname, 'SEARCH', true).pipe(tap((elements) => {
|
|
22526
|
+
elements.forEach(e => {
|
|
22527
|
+
const fc = this.toFormControl(e);
|
|
22528
|
+
if (fc) {
|
|
22529
|
+
this.editForm.contextControls.push(fc);
|
|
22530
|
+
}
|
|
22531
|
+
});
|
|
22532
|
+
})));
|
|
22533
|
+
}
|
|
22534
|
+
return tasks.length ? forkJoin(tasks) : of(tasks);
|
|
22535
|
+
}
|
|
22536
|
+
fetchRoles() {
|
|
22537
|
+
if (!this.systemRoles || this.systemRoles.length === 0) {
|
|
22538
|
+
this.systemService
|
|
22539
|
+
.getRoles()
|
|
22540
|
+
.subscribe(res => {
|
|
22541
|
+
this.systemRoles = res;
|
|
22542
|
+
this.rolesPicker.codesystem = {
|
|
22543
|
+
entries: this.systemRoles.map(role => ({
|
|
22544
|
+
id: role.id,
|
|
22545
|
+
label: role.name,
|
|
22546
|
+
defaultrepresentation: role.name,
|
|
22547
|
+
data: role.name
|
|
22548
|
+
})).sort(Utils.sortValues('label'))
|
|
22549
|
+
};
|
|
22550
|
+
});
|
|
22551
|
+
}
|
|
22552
|
+
}
|
|
22553
|
+
getRestrictions() {
|
|
22554
|
+
let restrictions = [];
|
|
22555
|
+
// type restriction
|
|
22556
|
+
if (this.storedQuery.types && this.storedQuery.types.length) {
|
|
22557
|
+
restrictions.push({
|
|
22558
|
+
field: SearchQuery.BASE_PARAMS.TYPE,
|
|
22559
|
+
label: this.translate.instant('eo.storedquery.restriction.type'),
|
|
22560
|
+
items: this.storedQuery.types.map(t => t.label)
|
|
22561
|
+
});
|
|
22562
|
+
}
|
|
22563
|
+
// add base params restrictions
|
|
22564
|
+
(this.storedQuery.filters || []).forEach(filter => {
|
|
22565
|
+
if (filter && ~this.BASE_PARAMS_FIELDS.indexOf(filter.property)) {
|
|
22566
|
+
const field = filter.property;
|
|
22567
|
+
const label = this.translate.instant('eo.storedquery.restriction.' + field);
|
|
22568
|
+
switch (field) {
|
|
22569
|
+
case SearchQuery.BASE_PARAMS.MIMETYPEGROUP:
|
|
22570
|
+
restrictions.push({
|
|
22571
|
+
field, label, items: Array.isArray(filter.firstValue) ? filter.firstValue : [filter.firstValue]
|
|
22572
|
+
});
|
|
22573
|
+
break;
|
|
22574
|
+
case SearchQuery.BASE_PARAMS.FILENAME:
|
|
22575
|
+
restrictions.push({
|
|
22576
|
+
field, label, items: [filter.firstValue]
|
|
22577
|
+
});
|
|
22578
|
+
break;
|
|
22579
|
+
case SearchQuery.BASE_PARAMS.FILESIZE:
|
|
22580
|
+
restrictions.push({
|
|
22581
|
+
field, label, items: [this.translate.instant('eo.search.agg.filesize.' + filter.firstValue)]
|
|
22582
|
+
});
|
|
22583
|
+
break;
|
|
22584
|
+
case SearchQuery.BASE_PARAMS.CREATED:
|
|
22585
|
+
case SearchQuery.BASE_PARAMS.MODIFIED:
|
|
22586
|
+
restrictions.push({
|
|
22587
|
+
field, label, items: [this.createDateRestriction(filter)]
|
|
22588
|
+
});
|
|
22589
|
+
break;
|
|
22590
|
+
case SearchQuery.BASE_PARAMS.CREATOR:
|
|
22591
|
+
case SearchQuery.BASE_PARAMS.MODIFIER:
|
|
22592
|
+
this.systemService.getOrganizationObjects(filter.firstValue)
|
|
22593
|
+
.subscribe(orgUsers => restrictions.push({
|
|
22594
|
+
field, label, items: orgUsers.map(u => u.title)
|
|
22595
|
+
}));
|
|
22596
|
+
break;
|
|
22597
|
+
}
|
|
22598
|
+
}
|
|
22599
|
+
});
|
|
22600
|
+
return restrictions;
|
|
22601
|
+
}
|
|
22602
|
+
createDateRestriction(filter) {
|
|
22603
|
+
switch (filter.operator) {
|
|
22604
|
+
case SearchFilter.OPERATOR.RANGE:
|
|
22605
|
+
return this.translate.instant(`eo.search.agg.time.${filter.firstValue}`);
|
|
22606
|
+
case SearchFilter.OPERATOR.EQUAL:
|
|
22607
|
+
return `= ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;
|
|
22608
|
+
case SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH:
|
|
22609
|
+
return `${this.datePipe.transform(filter.firstValue, 'eoShortDate')} - ${this.datePipe.transform(filter.secondValue, 'eoShortDate')}`;
|
|
22610
|
+
case SearchFilter.OPERATOR.GREATER_OR_EQUAL:
|
|
22611
|
+
return `${this.translate.instant('eo.search.agg.time.span.since')} ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;
|
|
22612
|
+
case SearchFilter.OPERATOR.LESS_OR_EQUAL:
|
|
22613
|
+
return `${this.translate.instant('eo.search.agg.time.span.until')} ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;
|
|
22614
|
+
default:
|
|
22615
|
+
return `(${filter.operator}) ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;
|
|
22616
|
+
}
|
|
22617
|
+
}
|
|
22618
|
+
/**
|
|
22619
|
+
* Creates a form control from a given form element
|
|
22620
|
+
* @param formElement
|
|
22621
|
+
* @returns
|
|
22622
|
+
*/
|
|
22623
|
+
toFormControl(formElement) {
|
|
22624
|
+
// the `name` property of stored query form element has to be `qname` of form element,
|
|
22625
|
+
// because we may combine multiple forms (context form) and in this case there may
|
|
22626
|
+
// be conflicts in namings
|
|
22627
|
+
formElement.name = formElement.qname;
|
|
22628
|
+
if (formElement.type === 'TABLE') {
|
|
22629
|
+
let filters = this.storedQuery.getTableFilters(formElement.qname);
|
|
22630
|
+
if (filters && filters.length) {
|
|
22631
|
+
formElement.value = this.searchService.tableFiltersToElementValue(filters, formElement.elements);
|
|
22632
|
+
}
|
|
22633
|
+
else {
|
|
22634
|
+
formElement.value = [{}];
|
|
22635
|
+
delete formElement.isNotSetValue;
|
|
22636
|
+
}
|
|
22637
|
+
}
|
|
22638
|
+
else {
|
|
22639
|
+
// grab value for the control from corresponding query filters
|
|
22640
|
+
let filter = this.storedQuery.getFilter(formElement.qname);
|
|
22641
|
+
// we may have params that are not part of the queries filters. This may be the
|
|
22642
|
+
// case when we mark form elements as dynamic fields without providing a value
|
|
22643
|
+
if (filter) {
|
|
22644
|
+
// filter to have no value
|
|
22645
|
+
if (filter.operator === SearchFilter.OPERATOR.EQUAL && filter.firstValue === null) {
|
|
22646
|
+
formElement.isNotSetValue = true;
|
|
22647
|
+
}
|
|
22648
|
+
else {
|
|
22649
|
+
delete formElement.isNotSetValue;
|
|
22650
|
+
}
|
|
22651
|
+
formElement.value = this.searchService.filterToElementValue(this.storedQuery.getFilter(formElement.qname), formElement.type);
|
|
22652
|
+
}
|
|
22653
|
+
else if (formElement.qname !== StoredQueriesService.FULLTEXT) {
|
|
22654
|
+
formElement.value = undefined;
|
|
22655
|
+
delete formElement.isNotSetValue;
|
|
22656
|
+
}
|
|
22657
|
+
}
|
|
22658
|
+
// sync with params
|
|
22659
|
+
const match = this.storedQuery.parameter.find(param => {
|
|
22660
|
+
return (param.qname === formElement.qname) || (param.type === StoredQueriesService.FULLTEXT && formElement.qname === StoredQueriesService.FULLTEXT);
|
|
22661
|
+
});
|
|
22662
|
+
// every field that is part of the params is supposed to be dynamic
|
|
22663
|
+
formElement._dynamic = !!match;
|
|
22664
|
+
// create actual form control that could be used with
|
|
22665
|
+
// FormElementComponent to then render for elements
|
|
22666
|
+
// wrapper may be null in case of an error
|
|
22667
|
+
return this.formHelperService.elementToFormControl(formElement, 'SEARCH');
|
|
22668
|
+
}
|
|
22669
|
+
onStoredQueryLoaded() {
|
|
22670
|
+
this.router.navigate([{ outlets: { modal: 'search' } }]);
|
|
22671
|
+
}
|
|
22672
|
+
onStoredQueryExecute(evt) {
|
|
22673
|
+
const uriParam = encodeURIComponent(JSON.stringify(evt.queryJson));
|
|
22674
|
+
const uriParamQuery = { queryParams: { 'query': uriParam } };
|
|
22675
|
+
this.router.navigate(['/result'], uriParamQuery);
|
|
22676
|
+
}
|
|
22677
|
+
setIconTitles() {
|
|
22678
|
+
this.iconTitles = {
|
|
22679
|
+
share: this.translate.instant('eo.storedquery.share.title'),
|
|
22680
|
+
shared: this.translate.instant('eo.storedquery.sharedfor.title'),
|
|
22681
|
+
favor: this.translate.instant('eo.storedquery.favor.title'),
|
|
22682
|
+
favored: this.translate.instant('eo.storedquery.favoredfor.title')
|
|
22683
|
+
};
|
|
22684
|
+
}
|
|
22685
|
+
ngOnInit() {
|
|
22686
|
+
this.selection.focus$
|
|
22687
|
+
.pipe(untilDestroyed(this))
|
|
22688
|
+
.subscribe(q => {
|
|
22689
|
+
this.query = q;
|
|
22690
|
+
});
|
|
22691
|
+
this.setIconTitles();
|
|
22692
|
+
}
|
|
22693
|
+
trackByQName(index, item) {
|
|
22694
|
+
return item.qname;
|
|
22695
|
+
}
|
|
22696
|
+
trackByIndex(index, item) {
|
|
22697
|
+
return index;
|
|
22698
|
+
}
|
|
22699
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryDetailsComponent, deps: [{ token: i2$1.Router }, { token: i1.SearchService }, { token: i1.UserService }, { token: i1.SystemService }, { token: SelectionService }, { token: PendingChangesService }, { token: i1.StoredQueriesService }, { token: ObjectFormHelperService }, { token: i0.ElementRef }, { token: i1.TranslateService }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22700
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: StoredQueryDetailsComponent, selector: "eo-stored-query-details", inputs: { query: "query" }, outputs: { notifyList: "notifyList" }, viewQueries: [{ propertyName: "storedQueryForm", first: true, predicate: ["storedQueryForm"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"storedQuery\">\n <div class=\"eo-head\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\n </eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{ storedQuery.name }}</h2>\n <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\n </div>\n </header>\n </div>\n\n <div class=\"eo-body\">\n\n <div class=\"form\">\n\n <ng-template #queryForm>\n <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </ng-template>\n\n <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\n\n <div class=\"context dark\">\n\n <!-- title and fulltext term fields -->\n <eo-form-input class=\"title\">\n <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\"\n [formControlName]=\"'storedQueryTitle'\"/>\n </eo-form-input>\n\n <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\n <div class=\"form-field\">\n <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\"\n [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n\n <!-- context type form controls -->\n <h3>{{ storedQuery.contextFolderTypes[0]?.label }}</h3>\n <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\n <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n\n <!-- object type form controls -->\n <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\n <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\n <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"element\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n </form>\n </div>\n\n <aside class=\"aside\">\n\n <!-- favorite and share -->\n <div class=\"meta-actions\" *ngIf=\"!isNewQuery\">\n\n <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\n <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\n [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\n (click)=\"toggleShareEdit()\"\n [iconTitle]=\"iconTitles.share\"></eo-icon>\n\n <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [ngClass]=\"{active: storedQuery.favorite}\"\n (click)=\"toggleFavoriteState()\"\n [iconTitle]=\"iconTitles.favor\"></eo-icon>\n </ng-container>\n\n <ng-template #sharedWithMe>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"iconTitles.shared\"></eo-icon>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [iconTitle]=\"iconTitles.favored\"></eo-icon>\n </ng-template>\n\n </div>\n\n <!-- roles that share this query -->\n <div class=\"meta-roles\" *ngIf=\"!isNewQuery\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\n\n <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\n <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\n <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\n [codesystem]=\"rolesPicker.codesystem\"\n [multiselect]=\"true\"\n [readonly]=\"!editingShare\"\n [inputStyleClass]=\"'stored-query__share'\"\n [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\n </div>\n\n <div class=\"share-actions\" *ngIf=\"editingShare\">\n <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\n </div>\n </div>\n\n <!-- queries meta info like baseparam settings -->\n <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\n <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\n <div class=\"label\">{{ restriction.label }}</div>\n <div class=\"items\">\n <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{ item }}</div>\n </div>\n </div>\n </div>\n\n </aside>\n\n </div>\n\n <div class=\"actions\">\n <ng-container *ngIf=\"!editForm.form; else actionEdit\">\n <button class=\"secondary btn-delete\" (click)=\"isStoredQueryUsed() ? showDeleteDialog = true : delete()\"\n [disabled]=\"!isOwnQuery\" translate>eo.cta.button.delete\n </button>\n <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" translate>eo.storedquery.load</button>\n <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>\n eo.storedquery.action.edit\n </button>\n <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>\n eo.storedquery.run\n </button>\n </ng-container>\n\n <eo-dialog [title]=\"'eo.storedquery.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'storedQuery-delete__dialog'\">\n <div>\n <span>{{'eo.storedquery.delete.dialog.message' | translate: {\n storedquery: this.storedQuery.name,\n name: this.info\n }\n }}\n </span>\n </div>\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel\n </button>\n <button type=\"button\" #confirmDelete (click)=\"delete(); showDeleteDialog = false\" class=\"button primary\"\n translate>eo.cta.button.delete\n </button>\n </div>\n </eo-dialog>\n\n <ng-template #actionEdit>\n <!-- action while editing the query form -->\n <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>\n eo.storedquery.action.save\n </button>\n </ng-template>\n </div>\n\n</ng-container>\n", styles: [":host{--stored-query-aside-width: 300px;display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto}:host .eo-head{background-color:var(--color-white);border-bottom:1px solid var(--panel-header-border-bottom-color)}:host .eo-body{overflow-y:hidden}:host .eo-body .form{overflow-y:auto;padding:var(--app-pane-padding);padding-right:calc(var(--stored-query-aside-width) + var(--app-pane-padding) * 2)}:host .eo-body .form eo-stored-query{background-color:var(--color-white);padding:var(--app-pane-padding)}:host .eo-body .aside{width:var(--stored-query-aside-width);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding);background-color:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1);box-sizing:border-box;padding:var(--app-pane-padding)}:host .eo-body .aside .meta-actions{display:flex;justify-content:flex-end;margin:0 -2px}:host .eo-body .aside .meta-actions eo-icon{margin:0 2px;padding:4px;color:var(--text-color-hint)}:host .eo-body .aside .meta-actions eo-icon.active{color:var(--color-favorite)}:host .eo-body .aside .meta-actions eo-icon.editing{background-color:var(--color-primary-2);color:var(--color-white);border-radius:2px 2px 0 0}:host .eo-body .aside .meta-actions eo-icon.sharedWithMe{background-color:var(--text-color-hint);color:var(--color-white);border-radius:2px}:host .eo-body .aside .meta-roles.dark{background-color:var(--color-primary-2);color:var(--color-white);border-radius:2px;padding:calc(var(--app-pane-padding) / 2);margin-bottom:var(--app-pane-padding)}:host .eo-body .aside .meta-roles.dark .actions{display:flex}:host .eo-body .aside .meta-roles.dark .label{display:none}:host .eo-body .aside .meta-roles.dark .form-field{background-color:rgba(var(--color-white-rgb),.2)}:host .eo-body .aside .meta-roles .form-field{background-color:rgba(var(--color-white-rgb),.2);border:1px solid rgba(var(--color-black-rgb),.1);padding:2px 2px 4px 4px;margin-bottom:calc(var(--app-pane-padding) / 2)}:host .eo-body .aside .meta-roles .label{color:var(--text-color-caption);font-style:italic;margin-bottom:calc(var(--app-pane-padding) / 4)}:host .eo-body .aside .meta-roles .share-actions{display:flex;justify-content:flex-end;margin:0 calc(var(--app-pane-padding) / 8 * -1)}:host .eo-body .aside .meta-roles .share-actions button{margin:0 calc(var(--app-pane-padding) / 8);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}:host .eo-body .aside .meta-roles.empty:not(.dark) .label,:host .eo-body .aside .meta-roles.empty:not(.dark) .form-field{display:none}:host .eo-body .aside .meta-data{order:1;flex:1 1 40%;margin:0 0 var(--app-pane-padding) 0;display:table;border-collapse:collapse}:host .eo-body .aside .meta-data .restriction{display:table-row}:host .eo-body .aside .meta-data .restriction .label{display:table-cell;padding-right:calc(var(--app-pane-padding) / 2);color:var(--text-color-caption);font-style:italic}:host .eo-body .aside .meta-data .restriction .items{display:table-cell;border-left:1px solid rgba(var(--color-black-rgb),.1);padding:0 0 calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2)}:host .actions{display:flex;flex-flow:row;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) - 2px);background-color:var(--color-white);border-top:1px solid var(--panel-header-border-bottom-color)}:host .actions button{margin:0 2px}:host .edit-form{background-color:var(--color-white);max-width:500px}:host .edit-form .context{background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2)}:host .edit-form .context h3{padding:var(--app-pane-padding) 0 calc(var(--app-pane-padding) / 2) 0;margin:0;font-weight:var(--font-weight-light);font-size:var(--font-subhead);color:var(--color-white);display:flex;justify-content:flex-end}:host .edit-form .form-fields{padding:calc(var(--app-pane-padding) / 2)}:host .edit-form .form-fields.empty{display:none}:host .edit-form .form-field{display:flex;flex-flow:row nowrap;align-items:center}:host .edit-form .form-field eo-form-element{flex:1 1 auto}:host .edit-form .form-field eo-dynamic-property-switch{flex:0 0 auto}:host eo-stored-query{max-width:500px;display:block}:host ::ng-deep eo-form-input.title{display:block;margin-bottom:var(--app-pane-padding)}:host ::ng-deep eo-form-input.title input{width:100%;font-size:var(--font-title);font-weight:var(--font-weight-light);border:0;background-color:transparent}::ng-deep .storedQuery-delete__dialog{padding:8px;min-height:unset!important}::ng-deep .storedQuery-delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}::ng-deep .storedQuery-delete__dialog .storedQuery-delete__dialog_warning{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: QueryScopeSelectComponent, selector: "eo-query-scope-select", inputs: ["selection"], outputs: ["select"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: StoredQueryComponent, selector: "eo-stored-query", inputs: ["query", "formOnly"], outputs: ["onQueryLoaded", "onQueryExecute"] }, { kind: "component", type: DynamicPropertySwitchComponent, selector: "eo-dynamic-property-switch", inputs: ["parentFormControl"], outputs: ["onPropertyChanged"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
22701
|
+
};
|
|
22702
|
+
StoredQueryDetailsComponent = __decorate([
|
|
22703
|
+
UntilDestroy()
|
|
22704
|
+
], StoredQueryDetailsComponent);
|
|
22705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryDetailsComponent, decorators: [{
|
|
22706
|
+
type: Component,
|
|
22707
|
+
args: [{ selector: 'eo-stored-query-details', template: "<ng-container *ngIf=\"storedQuery\">\n <div class=\"eo-head\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\n </eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{ storedQuery.name }}</h2>\n <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\n </div>\n </header>\n </div>\n\n <div class=\"eo-body\">\n\n <div class=\"form\">\n\n <ng-template #queryForm>\n <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </ng-template>\n\n <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\n\n <div class=\"context dark\">\n\n <!-- title and fulltext term fields -->\n <eo-form-input class=\"title\">\n <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\"\n [formControlName]=\"'storedQueryTitle'\"/>\n </eo-form-input>\n\n <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\n <div class=\"form-field\">\n <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\"\n [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n\n <!-- context type form controls -->\n <h3>{{ storedQuery.contextFolderTypes[0]?.label }}</h3>\n <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\n <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n\n <!-- object type form controls -->\n <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\n <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\n <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"element\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n </form>\n </div>\n\n <aside class=\"aside\">\n\n <!-- favorite and share -->\n <div class=\"meta-actions\" *ngIf=\"!isNewQuery\">\n\n <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\n <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\n [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\n (click)=\"toggleShareEdit()\"\n [iconTitle]=\"iconTitles.share\"></eo-icon>\n\n <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [ngClass]=\"{active: storedQuery.favorite}\"\n (click)=\"toggleFavoriteState()\"\n [iconTitle]=\"iconTitles.favor\"></eo-icon>\n </ng-container>\n\n <ng-template #sharedWithMe>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"iconTitles.shared\"></eo-icon>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [iconTitle]=\"iconTitles.favored\"></eo-icon>\n </ng-template>\n\n </div>\n\n <!-- roles that share this query -->\n <div class=\"meta-roles\" *ngIf=\"!isNewQuery\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\n\n <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\n <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\n <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\n [codesystem]=\"rolesPicker.codesystem\"\n [multiselect]=\"true\"\n [readonly]=\"!editingShare\"\n [inputStyleClass]=\"'stored-query__share'\"\n [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\n </div>\n\n <div class=\"share-actions\" *ngIf=\"editingShare\">\n <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\n </div>\n </div>\n\n <!-- queries meta info like baseparam settings -->\n <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\n <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\n <div class=\"label\">{{ restriction.label }}</div>\n <div class=\"items\">\n <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{ item }}</div>\n </div>\n </div>\n </div>\n\n </aside>\n\n </div>\n\n <div class=\"actions\">\n <ng-container *ngIf=\"!editForm.form; else actionEdit\">\n <button class=\"secondary btn-delete\" (click)=\"isStoredQueryUsed() ? showDeleteDialog = true : delete()\"\n [disabled]=\"!isOwnQuery\" translate>eo.cta.button.delete\n </button>\n <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" translate>eo.storedquery.load</button>\n <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>\n eo.storedquery.action.edit\n </button>\n <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>\n eo.storedquery.run\n </button>\n </ng-container>\n\n <eo-dialog [title]=\"'eo.storedquery.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'storedQuery-delete__dialog'\">\n <div>\n <span>{{'eo.storedquery.delete.dialog.message' | translate: {\n storedquery: this.storedQuery.name,\n name: this.info\n }\n }}\n </span>\n </div>\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel\n </button>\n <button type=\"button\" #confirmDelete (click)=\"delete(); showDeleteDialog = false\" class=\"button primary\"\n translate>eo.cta.button.delete\n </button>\n </div>\n </eo-dialog>\n\n <ng-template #actionEdit>\n <!-- action while editing the query form -->\n <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>\n eo.storedquery.action.save\n </button>\n </ng-template>\n </div>\n\n</ng-container>\n", styles: [":host{--stored-query-aside-width: 300px;display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto}:host .eo-head{background-color:var(--color-white);border-bottom:1px solid var(--panel-header-border-bottom-color)}:host .eo-body{overflow-y:hidden}:host .eo-body .form{overflow-y:auto;padding:var(--app-pane-padding);padding-right:calc(var(--stored-query-aside-width) + var(--app-pane-padding) * 2)}:host .eo-body .form eo-stored-query{background-color:var(--color-white);padding:var(--app-pane-padding)}:host .eo-body .aside{width:var(--stored-query-aside-width);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding);background-color:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1);box-sizing:border-box;padding:var(--app-pane-padding)}:host .eo-body .aside .meta-actions{display:flex;justify-content:flex-end;margin:0 -2px}:host .eo-body .aside .meta-actions eo-icon{margin:0 2px;padding:4px;color:var(--text-color-hint)}:host .eo-body .aside .meta-actions eo-icon.active{color:var(--color-favorite)}:host .eo-body .aside .meta-actions eo-icon.editing{background-color:var(--color-primary-2);color:var(--color-white);border-radius:2px 2px 0 0}:host .eo-body .aside .meta-actions eo-icon.sharedWithMe{background-color:var(--text-color-hint);color:var(--color-white);border-radius:2px}:host .eo-body .aside .meta-roles.dark{background-color:var(--color-primary-2);color:var(--color-white);border-radius:2px;padding:calc(var(--app-pane-padding) / 2);margin-bottom:var(--app-pane-padding)}:host .eo-body .aside .meta-roles.dark .actions{display:flex}:host .eo-body .aside .meta-roles.dark .label{display:none}:host .eo-body .aside .meta-roles.dark .form-field{background-color:rgba(var(--color-white-rgb),.2)}:host .eo-body .aside .meta-roles .form-field{background-color:rgba(var(--color-white-rgb),.2);border:1px solid rgba(var(--color-black-rgb),.1);padding:2px 2px 4px 4px;margin-bottom:calc(var(--app-pane-padding) / 2)}:host .eo-body .aside .meta-roles .label{color:var(--text-color-caption);font-style:italic;margin-bottom:calc(var(--app-pane-padding) / 4)}:host .eo-body .aside .meta-roles .share-actions{display:flex;justify-content:flex-end;margin:0 calc(var(--app-pane-padding) / 8 * -1)}:host .eo-body .aside .meta-roles .share-actions button{margin:0 calc(var(--app-pane-padding) / 8);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}:host .eo-body .aside .meta-roles.empty:not(.dark) .label,:host .eo-body .aside .meta-roles.empty:not(.dark) .form-field{display:none}:host .eo-body .aside .meta-data{order:1;flex:1 1 40%;margin:0 0 var(--app-pane-padding) 0;display:table;border-collapse:collapse}:host .eo-body .aside .meta-data .restriction{display:table-row}:host .eo-body .aside .meta-data .restriction .label{display:table-cell;padding-right:calc(var(--app-pane-padding) / 2);color:var(--text-color-caption);font-style:italic}:host .eo-body .aside .meta-data .restriction .items{display:table-cell;border-left:1px solid rgba(var(--color-black-rgb),.1);padding:0 0 calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2)}:host .actions{display:flex;flex-flow:row;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) - 2px);background-color:var(--color-white);border-top:1px solid var(--panel-header-border-bottom-color)}:host .actions button{margin:0 2px}:host .edit-form{background-color:var(--color-white);max-width:500px}:host .edit-form .context{background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2)}:host .edit-form .context h3{padding:var(--app-pane-padding) 0 calc(var(--app-pane-padding) / 2) 0;margin:0;font-weight:var(--font-weight-light);font-size:var(--font-subhead);color:var(--color-white);display:flex;justify-content:flex-end}:host .edit-form .form-fields{padding:calc(var(--app-pane-padding) / 2)}:host .edit-form .form-fields.empty{display:none}:host .edit-form .form-field{display:flex;flex-flow:row nowrap;align-items:center}:host .edit-form .form-field eo-form-element{flex:1 1 auto}:host .edit-form .form-field eo-dynamic-property-switch{flex:0 0 auto}:host eo-stored-query{max-width:500px;display:block}:host ::ng-deep eo-form-input.title{display:block;margin-bottom:var(--app-pane-padding)}:host ::ng-deep eo-form-input.title input{width:100%;font-size:var(--font-title);font-weight:var(--font-weight-light);border:0;background-color:transparent}::ng-deep .storedQuery-delete__dialog{padding:8px;min-height:unset!important}::ng-deep .storedQuery-delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}::ng-deep .storedQuery-delete__dialog .storedQuery-delete__dialog_warning{color:var(--color-error)}\n"] }]
|
|
22708
|
+
}], ctorParameters: () => [{ type: i2$1.Router }, { type: i1.SearchService }, { type: i1.UserService }, { type: i1.SystemService }, { type: SelectionService }, { type: PendingChangesService }, { type: i1.StoredQueriesService }, { type: ObjectFormHelperService }, { type: i0.ElementRef }, { type: i1.TranslateService }, { type: i1.EventService }], propDecorators: { storedQueryForm: [{
|
|
22709
|
+
type: ViewChild,
|
|
22710
|
+
args: ['storedQueryForm']
|
|
22711
|
+
}], query: [{
|
|
22712
|
+
type: Input
|
|
22713
|
+
}], notifyList: [{
|
|
22714
|
+
type: Output
|
|
22715
|
+
}] } });
|
|
22716
|
+
|
|
22717
|
+
class StoredQueryModule {
|
|
22718
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
22719
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryModule, declarations: [StoredQueryComponent,
|
|
22720
|
+
StoredQueryDetailsComponent,
|
|
22721
|
+
DynamicPropertySwitchComponent], imports: [CommonModule,
|
|
22722
|
+
ObjectFormModule,
|
|
22723
|
+
UiModule,
|
|
22724
|
+
GridModule,
|
|
22725
|
+
FormsModule,
|
|
22726
|
+
ReactiveFormsModule,
|
|
22727
|
+
FormElementsModule], exports: [StoredQueryComponent,
|
|
22728
|
+
StoredQueryDetailsComponent] }); }
|
|
22729
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryModule, imports: [CommonModule,
|
|
22730
|
+
ObjectFormModule,
|
|
22731
|
+
UiModule,
|
|
22732
|
+
GridModule,
|
|
22733
|
+
FormsModule,
|
|
22734
|
+
ReactiveFormsModule,
|
|
22735
|
+
FormElementsModule] }); }
|
|
22736
|
+
}
|
|
22737
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryModule, decorators: [{
|
|
22738
|
+
type: NgModule,
|
|
22739
|
+
args: [{
|
|
22740
|
+
imports: [
|
|
22741
|
+
CommonModule,
|
|
22742
|
+
ObjectFormModule,
|
|
22743
|
+
UiModule,
|
|
22744
|
+
GridModule,
|
|
22745
|
+
FormsModule,
|
|
22746
|
+
ReactiveFormsModule,
|
|
22747
|
+
FormElementsModule
|
|
22748
|
+
],
|
|
22749
|
+
declarations: [
|
|
22750
|
+
StoredQueryComponent,
|
|
22751
|
+
StoredQueryDetailsComponent,
|
|
22752
|
+
DynamicPropertySwitchComponent
|
|
22753
|
+
],
|
|
22754
|
+
exports: [
|
|
22755
|
+
StoredQueryComponent,
|
|
22756
|
+
StoredQueryDetailsComponent
|
|
22757
|
+
]
|
|
22758
|
+
}]
|
|
22759
|
+
}] });
|
|
22760
|
+
|
|
22761
|
+
class GridFilter {
|
|
22762
|
+
static operator(property, filter) {
|
|
22763
|
+
let firstValue = Array.isArray(filter) ? filter : (filter.filter || filter.dateFrom);
|
|
22764
|
+
const secondValue = filter.filterTo || filter.dateTo;
|
|
22765
|
+
const op = Array.isArray(firstValue) ? SearchFilter.OPERATOR.IN :
|
|
22766
|
+
filter.type === SimpleFilter.GREATER_THAN ? SearchFilter.OPERATOR.GREATER_THAN :
|
|
22767
|
+
filter.type === SimpleFilter.GREATER_THAN_OR_EQUAL ? SearchFilter.OPERATOR.GREATER_OR_EQUAL :
|
|
22768
|
+
filter.type === SimpleFilter.LESS_THAN ? SearchFilter.OPERATOR.LESS_THAN :
|
|
22769
|
+
filter.type === SimpleFilter.LESS_THAN_OR_EQUAL ? SearchFilter.OPERATOR.LESS_OR_EQUAL :
|
|
22770
|
+
filter.type === SimpleFilter.IN_RANGE ? SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH :
|
|
22771
|
+
SearchFilter.OPERATOR.EQUAL;
|
|
22772
|
+
firstValue = firstValue && typeof firstValue === 'string' ? firstValue.replace(/\*/g, '\\*') : firstValue; // wildcard needs to be escaped
|
|
22773
|
+
firstValue = filter.type === SimpleFilter.CONTAINS ? `*${firstValue}*` :
|
|
22774
|
+
filter.type === SimpleFilter.STARTS_WITH ? `${firstValue}*` :
|
|
22775
|
+
filter.type === SimpleFilter.ENDS_WITH ? `*${firstValue}` :
|
|
22776
|
+
op === SearchFilter.OPERATOR.IN ? firstValue.filter(f => f !== '') :
|
|
22777
|
+
firstValue;
|
|
22778
|
+
return new SearchFilter(property, op, firstValue, secondValue, filter.filterType === 'date' ? { time: !!filter.withTime } : undefined);
|
|
22779
|
+
}
|
|
22780
|
+
}
|
|
22781
|
+
|
|
22782
|
+
var ResultListComponent_1;
|
|
22783
|
+
let ResultListComponent = class ResultListComponent {
|
|
22784
|
+
static { ResultListComponent_1 = this; }
|
|
22785
|
+
static { this.COLUMNS_DEFINITION = 'eo.framework.cache.columns.definition'; }
|
|
22786
|
+
set query(query) {
|
|
22787
|
+
this.storedQuery = undefined;
|
|
22788
|
+
if (!query) {
|
|
22789
|
+
this.invalidQuery();
|
|
22790
|
+
}
|
|
22791
|
+
else {
|
|
22792
|
+
if (query.name) {
|
|
22793
|
+
this.storedQueriesService.getStoredQueries$()
|
|
22794
|
+
.pipe(untilDestroyed(this))
|
|
22795
|
+
.subscribe((queriesSubscription) => {
|
|
22796
|
+
this.storedQuery = queriesSubscription.queries.filter(q => q.name === query.name)[0];
|
|
22797
|
+
});
|
|
22798
|
+
}
|
|
22799
|
+
this._query = this.searchService.buildQuery(query);
|
|
22800
|
+
if (this._query) {
|
|
22801
|
+
this.defaultQuery = this.searchService.buildQuery(this._query.getQueryJson());
|
|
22802
|
+
this.appSearchService.setQuery(this.defaultQuery);
|
|
22803
|
+
this.appSearchService.aggregate();
|
|
22804
|
+
const config = this.searchService.getResultFieldDefinitionConfig(this.query);
|
|
22805
|
+
this.configType = config.type;
|
|
22806
|
+
this.configContext = config.contextType;
|
|
22807
|
+
this.showLoader = true;
|
|
22808
|
+
this.searchService
|
|
22809
|
+
.getChunkedResult(this._query, 0, this.VIRTUAL_LIST_CHUNK_SIZE)
|
|
22810
|
+
.subscribe(result => {
|
|
22811
|
+
this.showLoader = false;
|
|
22812
|
+
this.clearQuery(this.clearAfterExecute);
|
|
22813
|
+
this.searchResult = result;
|
|
22814
|
+
}, Utils.throw(() => {
|
|
22815
|
+
this.showLoader = false;
|
|
22816
|
+
this.clearQuery(true);
|
|
22817
|
+
this.invalidQuery();
|
|
22818
|
+
}));
|
|
22819
|
+
this.querySubtitle = '';
|
|
22820
|
+
for (let i = 0; i < this.query.types.length; i++) {
|
|
22821
|
+
this.querySubtitle += this.query.types[i].label;
|
|
22822
|
+
if (i !== this.query.types.length - 1) {
|
|
22823
|
+
this.querySubtitle += ', ';
|
|
22824
|
+
}
|
|
22825
|
+
}
|
|
22826
|
+
}
|
|
22827
|
+
else {
|
|
22828
|
+
this.invalidQuery();
|
|
22829
|
+
}
|
|
22830
|
+
}
|
|
22831
|
+
}
|
|
22832
|
+
get query() {
|
|
22833
|
+
return this._query;
|
|
22834
|
+
}
|
|
22835
|
+
set searchResult(result) {
|
|
22836
|
+
// todo: backend should resolve query.fields and return config in specific order
|
|
22837
|
+
const _fields = result.fields ? of(result.fields) :
|
|
22838
|
+
this.searchService.fetchResultFieldDefinition(this.configType, this.configContext, 'ALL');
|
|
22839
|
+
_fields.subscribe(fields => {
|
|
22840
|
+
if (fields && this.query && this.query.fields && this.query.fields.length) {
|
|
22841
|
+
fields.elements = this.query.fields.map(f => fields.elements.find(e => f === e.hitname));
|
|
22842
|
+
}
|
|
22843
|
+
result.fields = fields || new FieldDefinition();
|
|
22844
|
+
this._result = result;
|
|
22845
|
+
this.processResults(this._result);
|
|
22846
|
+
});
|
|
22847
|
+
}
|
|
22848
|
+
get searchResult() {
|
|
22849
|
+
return this._result;
|
|
22850
|
+
}
|
|
22851
|
+
constructor(config, translate, gridApi, backend, appSearchService, searchService, eventService, storageService, storedQueriesService, router, fb) {
|
|
22852
|
+
this.config = config;
|
|
22853
|
+
this.translate = translate;
|
|
22854
|
+
this.gridApi = gridApi;
|
|
22855
|
+
this.backend = backend;
|
|
22856
|
+
this.appSearchService = appSearchService;
|
|
22857
|
+
this.searchService = searchService;
|
|
22858
|
+
this.eventService = eventService;
|
|
22859
|
+
this.storageService = storageService;
|
|
22860
|
+
this.storedQueriesService = storedQueriesService;
|
|
22861
|
+
this.router = router;
|
|
22862
|
+
this.fb = fb;
|
|
22863
|
+
this.setupForm = this.fb.group({
|
|
22864
|
+
exportCSVwithUrl: [false],
|
|
22865
|
+
});
|
|
22866
|
+
this.exportCSVwithUrlKey = 'eo.resultlist.cache.withUrl';
|
|
22867
|
+
this._exportCSVwithUrl = false;
|
|
22868
|
+
this.csvLoadingSpinnerVisibility = false;
|
|
22869
|
+
this.visibleConfig = false;
|
|
22870
|
+
this.showLoader = false;
|
|
22871
|
+
this.limitedList = false;
|
|
22872
|
+
this.resultGridOptions = {};
|
|
22873
|
+
this.settings = {};
|
|
22874
|
+
this.querySubtitle = '';
|
|
22875
|
+
this.savedSearchClicked = false;
|
|
22876
|
+
this.showDialogExport = false;
|
|
22877
|
+
this.showWarnExportCSVThreshold = false;
|
|
22878
|
+
this.title = '';
|
|
22879
|
+
this.emptyMessage = '';
|
|
22880
|
+
this.selectFirst = true;
|
|
22881
|
+
this.hasIcon = false;
|
|
22882
|
+
this.reference = false;
|
|
22883
|
+
this.onSelectionChanged = new EventEmitter();
|
|
22884
|
+
this.onFocusChanged = new EventEmitter();
|
|
22885
|
+
this.onDoubleClick = new EventEmitter();
|
|
22886
|
+
this.onContextMenu = new EventEmitter();
|
|
22887
|
+
this.onCountChanged = new EventEmitter();
|
|
22888
|
+
this.onRefresh = new EventEmitter();
|
|
22889
|
+
this.onResult = new EventEmitter();
|
|
22890
|
+
this.onQueryInvalid = new EventEmitter();
|
|
22891
|
+
// shortcut actions
|
|
22892
|
+
this.shortcuts = {
|
|
22893
|
+
id: 'eo.workspace.widget.hitlist.label',
|
|
22894
|
+
label: this.translate.instant('eo.workspace.widget.hitlist.label'),
|
|
22895
|
+
labelKey: 'eo.workspace.widget.hitlist.label',
|
|
22896
|
+
actions: [{
|
|
22897
|
+
name: this.translate.instant('eo.column.config.title'),
|
|
22898
|
+
nameKey: 'eo.column.config.title',
|
|
22899
|
+
shortcut: new Shortcut('P', false, false),
|
|
22900
|
+
onExecuteAction: () => {
|
|
22901
|
+
this.visibleConfig = !this.visibleConfig;
|
|
22902
|
+
},
|
|
22903
|
+
isHidden: () => {
|
|
22904
|
+
return false;
|
|
22905
|
+
}
|
|
22906
|
+
},
|
|
22907
|
+
{
|
|
22908
|
+
name: this.translate.instant('eo.resultlist.export.csv'),
|
|
22909
|
+
nameKey: 'eo.resultlist.export.csv',
|
|
22910
|
+
shortcut: new Shortcut('X', false, false),
|
|
22911
|
+
onExecuteAction: () => {
|
|
22912
|
+
this.exportCSV();
|
|
22913
|
+
},
|
|
22914
|
+
isHidden: () => {
|
|
22915
|
+
return false;
|
|
22916
|
+
}
|
|
22917
|
+
},
|
|
22918
|
+
{
|
|
22919
|
+
name: this.translate.instant('eo.object.actions.title'),
|
|
22920
|
+
nameKey: 'eo.object.actions.title',
|
|
22921
|
+
shortcut: new Shortcut('M', false, false),
|
|
22922
|
+
onExecuteAction: () => {
|
|
22923
|
+
this.list.showActions();
|
|
22924
|
+
},
|
|
22925
|
+
isHidden: () => {
|
|
22926
|
+
return false;
|
|
22927
|
+
}
|
|
22928
|
+
},
|
|
22929
|
+
{
|
|
22930
|
+
name: this.translate.instant('eo.list.refresh'),
|
|
22931
|
+
nameKey: 'eo.list.refresh',
|
|
22932
|
+
shortcut: new Shortcut('R', false, false),
|
|
22933
|
+
onExecuteAction: () => {
|
|
22934
|
+
this.refreshGrid();
|
|
22935
|
+
},
|
|
22936
|
+
isHidden: () => {
|
|
22937
|
+
return false;
|
|
22938
|
+
}
|
|
22939
|
+
}]
|
|
22940
|
+
};
|
|
22941
|
+
this.VIRTUAL_LIST_CHUNK_SIZE = this.config.getRaw('search.limit');
|
|
22942
|
+
this.resolveReferencesCsv = this.config.getRaw('search.resolveReferencesCSV') || false;
|
|
22943
|
+
this.resolveReferencesCsvThreshold = this.config.getRaw('search.resolveReferencesCSVThreshold') || 10000;
|
|
22944
|
+
this._cachedColumns = this.storageService.getItem(ResultListComponent_1.COLUMNS_DEFINITION) || [];
|
|
22945
|
+
this.setupForm.valueChanges.pipe(untilDestroyed(this)).subscribe((_) => {
|
|
22946
|
+
this._exportCSVwithUrl = this.setupForm.get('exportCSVwithUrl').value;
|
|
22947
|
+
this.storageService.setItem(this.exportCSVwithUrlKey, this.setupForm.get('exportCSVwithUrl').value);
|
|
22948
|
+
});
|
|
22949
|
+
}
|
|
22950
|
+
clearQuery(clearAfterExecute) {
|
|
22951
|
+
if (clearAfterExecute) {
|
|
22952
|
+
this.appSearchService.clearQuery();
|
|
22622
22953
|
}
|
|
22623
|
-
this.notifyList.emit({ unselect: false, update: false, payload: this.storedQuery });
|
|
22624
|
-
}
|
|
22625
|
-
setQueryToAppSearch() {
|
|
22626
|
-
this.storedQueryForm.load();
|
|
22627
22954
|
}
|
|
22628
|
-
|
|
22629
|
-
this.
|
|
22955
|
+
invalidQuery() {
|
|
22956
|
+
this.onQueryInvalid.emit();
|
|
22630
22957
|
}
|
|
22631
|
-
|
|
22632
|
-
|
|
22633
|
-
|
|
22634
|
-
|
|
22635
|
-
|
|
22636
|
-
.
|
|
22637
|
-
|
|
22638
|
-
this.storedQuery.name = formData[k];
|
|
22639
|
-
}
|
|
22640
|
-
else if (k === this.FORM_INPUT_FULLTEXT) {
|
|
22641
|
-
this.storedQuery.term = formData[k];
|
|
22958
|
+
ngOnInit() {
|
|
22959
|
+
this.eventService
|
|
22960
|
+
.on(EnaioEvent.DMS_OBJECT_DELETED)
|
|
22961
|
+
.pipe(untilDestroyed(this))
|
|
22962
|
+
.subscribe((res) => {
|
|
22963
|
+
if (this.grid) {
|
|
22964
|
+
this.grid.updateRows(this.backend.update([res.data], [{ id: res.data.id }]));
|
|
22642
22965
|
}
|
|
22643
|
-
|
|
22644
|
-
|
|
22645
|
-
|
|
22966
|
+
});
|
|
22967
|
+
this._exportCSVwithUrl = this.storageService.getItem(this.exportCSVwithUrlKey) || this.setupForm.get('exportCSVwithUrl').value;
|
|
22968
|
+
this.setupForm.patchValue({
|
|
22969
|
+
exportCSVwithUrl: this._exportCSVwithUrl
|
|
22970
|
+
});
|
|
22971
|
+
this.eventService
|
|
22972
|
+
.on(EnaioEvent.DMS_OBJECT_UPDATED)
|
|
22973
|
+
.pipe(untilDestroyed(this))
|
|
22974
|
+
.subscribe((res) => {
|
|
22975
|
+
if (this.grid) {
|
|
22976
|
+
this.updateRow(res.data.id, res.data.data);
|
|
22646
22977
|
}
|
|
22647
22978
|
});
|
|
22648
|
-
this.storedQueriesService
|
|
22649
|
-
.saveStoredQuery(this.storedQuery)
|
|
22650
|
-
.subscribe(updatedStoredQuery => {
|
|
22651
|
-
this.query = updatedStoredQuery;
|
|
22652
|
-
this.resetEditForm();
|
|
22653
|
-
this.finishPending();
|
|
22654
|
-
this.notifyList.emit({ unselect: false, update: false, payload: updatedStoredQuery });
|
|
22655
|
-
}, Utils.throw(null, this.translate.instant('eo.search.storedquery.save.error')));
|
|
22656
22979
|
}
|
|
22657
|
-
|
|
22658
|
-
|
|
22659
|
-
|
|
22660
|
-
|
|
22661
|
-
|
|
22662
|
-
|
|
22663
|
-
if (m && !event.value) {
|
|
22664
|
-
// remove existing parameter
|
|
22665
|
-
this.storedQuery.parameter = this.storedQuery.parameter.filter(p => p.qname !== event.control);
|
|
22666
|
-
}
|
|
22667
|
-
else if (!m && event.value) {
|
|
22668
|
-
// add parameter element
|
|
22669
|
-
let param = this.formFieldToParameter(event.control);
|
|
22670
|
-
if (param) {
|
|
22671
|
-
this.storedQuery.parameter.push(param);
|
|
22980
|
+
ngAfterViewInit() {
|
|
22981
|
+
setTimeout(() => {
|
|
22982
|
+
if (this.grid && this._query) {
|
|
22983
|
+
this._query.sortOptions = (this.grid.api.getColumnState() || [])
|
|
22984
|
+
.map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));
|
|
22985
|
+
this.query = this._query;
|
|
22672
22986
|
}
|
|
22673
|
-
}
|
|
22987
|
+
}, 200);
|
|
22674
22988
|
}
|
|
22675
|
-
|
|
22676
|
-
const
|
|
22677
|
-
|
|
22678
|
-
|
|
22679
|
-
|
|
22680
|
-
|
|
22681
|
-
|
|
22682
|
-
|
|
22683
|
-
|
|
22684
|
-
|
|
22685
|
-
if (formElement && formElement.isNotSetValue) {
|
|
22686
|
-
data[property] = null;
|
|
22687
|
-
}
|
|
22688
|
-
else {
|
|
22689
|
-
switch (property) {
|
|
22690
|
-
case this.FORM_INPUT_TITLE: {
|
|
22691
|
-
data[property] = this.editForm.form.value[property] || '';
|
|
22692
|
-
break;
|
|
22693
|
-
}
|
|
22694
|
-
case this.FORM_INPUT_FULLTEXT: {
|
|
22695
|
-
data[property] = this.editForm.form.value[property][StoredQueriesService.FULLTEXT] || '';
|
|
22696
|
-
break;
|
|
22989
|
+
updateRow(id, data) {
|
|
22990
|
+
const matchRow = this.resultGridOptions.rowData.find((r) => r.id === id);
|
|
22991
|
+
const systemFields = ['created', 'creatortitle', 'modified', 'modifiertitle', 'title', 'description', 'type', 'version', 'filesize', 'filename', 'mimetypegroup', 'mimetype'];
|
|
22992
|
+
let missingColumns = this.resultGridOptions.columnDefs;
|
|
22993
|
+
if (matchRow) {
|
|
22994
|
+
Object.keys(matchRow).forEach((k) => {
|
|
22995
|
+
if (data.hasOwnProperty(k)) {
|
|
22996
|
+
if (data.hasOwnProperty(k + '_meta')) {
|
|
22997
|
+
// if it is an org field, it will have a title to show, otherwise it is a codesystem and we show the label
|
|
22998
|
+
matchRow[k] = data[k + '_meta'].title ? data[k + '_meta'].title : data[k + '_meta'].label;
|
|
22697
22999
|
}
|
|
22698
|
-
|
|
22699
|
-
|
|
22700
|
-
if (!UtilitiesService.isEmpty(v)) {
|
|
22701
|
-
data[property] = v;
|
|
22702
|
-
}
|
|
23000
|
+
else {
|
|
23001
|
+
matchRow[k] = data[k];
|
|
22703
23002
|
}
|
|
23003
|
+
missingColumns = missingColumns.filter((column) => column.field !== k);
|
|
22704
23004
|
}
|
|
22705
|
-
|
|
22706
|
-
|
|
22707
|
-
|
|
22708
|
-
|
|
22709
|
-
|
|
22710
|
-
* Create a dynamic stored query parameter for a form element
|
|
22711
|
-
* @param qname The form elements qname
|
|
22712
|
-
* @returns
|
|
22713
|
-
*/
|
|
22714
|
-
formFieldToParameter(qname) {
|
|
22715
|
-
try {
|
|
22716
|
-
let param;
|
|
22717
|
-
// special handling for fulltext fields
|
|
22718
|
-
if (qname === StoredQueriesService.FULLTEXT) {
|
|
22719
|
-
param = {
|
|
22720
|
-
qname: qname,
|
|
22721
|
-
type: qname,
|
|
22722
|
-
};
|
|
22723
|
-
}
|
|
22724
|
-
else {
|
|
22725
|
-
const fc = this.editForm.form.controls[qname].controls[qname];
|
|
22726
|
-
const fe = fc._eoFormElement;
|
|
22727
|
-
param = {
|
|
22728
|
-
qname: fe.qname,
|
|
22729
|
-
type: fe.type
|
|
22730
|
-
};
|
|
22731
|
-
}
|
|
22732
|
-
return param;
|
|
22733
|
-
}
|
|
22734
|
-
catch (e) {
|
|
22735
|
-
return null;
|
|
22736
|
-
}
|
|
22737
|
-
}
|
|
22738
|
-
resetEditForm() {
|
|
22739
|
-
this.editForm = {
|
|
22740
|
-
form: null,
|
|
22741
|
-
fulltextFormControl: null,
|
|
22742
|
-
controls: [],
|
|
22743
|
-
contextControls: []
|
|
22744
|
-
};
|
|
22745
|
-
}
|
|
22746
|
-
onFormChanges() {
|
|
22747
|
-
this.editForm
|
|
22748
|
-
.form
|
|
22749
|
-
.valueChanges
|
|
22750
|
-
.subscribe(() => this.onFormStatusChanged(this.editForm.form));
|
|
22751
|
-
}
|
|
22752
|
-
createEditForm() {
|
|
22753
|
-
this.resetEditForm();
|
|
22754
|
-
this.setupFormControls().subscribe(_ => {
|
|
22755
|
-
let form = new ObjectFormGroup({});
|
|
22756
|
-
let fcTitle = new UntypedFormControl('', Validators.required);
|
|
22757
|
-
fcTitle.setValue(this.storedQuery.name);
|
|
22758
|
-
let fcFulltext = this.toFormControl(this.storedQueriesService.getFulltextFormElement(this.translate.instant('eo.storedquery.search.term'), this.storedQuery.term));
|
|
22759
|
-
this.editForm.fulltextFormControl = fcFulltext;
|
|
22760
|
-
// add title and fulltext field
|
|
22761
|
-
form.addControl(this.FORM_INPUT_TITLE, fcTitle);
|
|
22762
|
-
form.addControl(this.FORM_INPUT_FULLTEXT, fcFulltext);
|
|
22763
|
-
if (this.editForm.controls.length || this.editForm.contextControls.length) {
|
|
22764
|
-
this.editForm.controls
|
|
22765
|
-
.forEach((c) => form.addControl(c._eoFormControlWrapper.controlName, c));
|
|
22766
|
-
this.editForm.contextControls
|
|
22767
|
-
.forEach((c) => form.addControl(c._eoFormControlWrapper.controlName, c));
|
|
22768
|
-
}
|
|
22769
|
-
this.editForm.form = form;
|
|
22770
|
-
this.onFormChanges();
|
|
22771
|
-
});
|
|
22772
|
-
}
|
|
22773
|
-
setupFormControls() {
|
|
22774
|
-
const tasks = [];
|
|
22775
|
-
// setting up object type form only makes sense with one target type
|
|
22776
|
-
if (this.storedQuery.types.length === 1) {
|
|
22777
|
-
tasks.push(this.systemService.getFormElementsFromFormModel(this.storedQuery.types[0].qname, 'SEARCH').pipe(tap((elements) => {
|
|
22778
|
-
elements.forEach(e => {
|
|
22779
|
-
// prevent tables and binary types from being rendered in the stored query form
|
|
22780
|
-
if (e.type !== 'BINARY') {
|
|
22781
|
-
if (e.required) {
|
|
22782
|
-
e.required = false;
|
|
22783
|
-
}
|
|
22784
|
-
if (e.readonly) {
|
|
22785
|
-
e.readonly = false;
|
|
22786
|
-
}
|
|
22787
|
-
const fc = this.toFormControl(e);
|
|
22788
|
-
if (fc) {
|
|
22789
|
-
this.editForm.controls.push(fc);
|
|
22790
|
-
}
|
|
23005
|
+
else if (data.hasOwnProperty(k.split('.')[1])) {
|
|
23006
|
+
// some technical names have the object type as a prefix, we have to get rid of it
|
|
23007
|
+
const kSplit = k.split('.')[1];
|
|
23008
|
+
if (data.hasOwnProperty(kSplit + '_meta')) {
|
|
23009
|
+
matchRow[k] = data[kSplit + '_meta'].title ? data[kSplit + '_meta'].title : data[kSplit + '_meta'].label;
|
|
22791
23010
|
}
|
|
22792
|
-
|
|
22793
|
-
|
|
22794
|
-
}
|
|
22795
|
-
// add context form controls as well
|
|
22796
|
-
if (this.storedQuery.contextFolderTypes.length) {
|
|
22797
|
-
tasks.push(this.systemService.getFormElementsFromFormModel(this.storedQuery.contextFolderTypes[0].qname, 'SEARCH', true).pipe(tap((elements) => {
|
|
22798
|
-
elements.forEach(e => {
|
|
22799
|
-
const fc = this.toFormControl(e);
|
|
22800
|
-
if (fc) {
|
|
22801
|
-
this.editForm.contextControls.push(fc);
|
|
23011
|
+
else {
|
|
23012
|
+
matchRow[k] = data[kSplit];
|
|
22802
23013
|
}
|
|
22803
|
-
|
|
22804
|
-
|
|
22805
|
-
|
|
22806
|
-
|
|
22807
|
-
|
|
22808
|
-
|
|
22809
|
-
|
|
22810
|
-
|
|
22811
|
-
.
|
|
22812
|
-
|
|
22813
|
-
|
|
22814
|
-
|
|
22815
|
-
|
|
22816
|
-
|
|
22817
|
-
|
|
22818
|
-
|
|
22819
|
-
data: role.name
|
|
22820
|
-
})).sort(Utils.sortValues('label'))
|
|
22821
|
-
};
|
|
23014
|
+
missingColumns = missingColumns.filter((column) => column.field !== k);
|
|
23015
|
+
}
|
|
23016
|
+
});
|
|
23017
|
+
// we need to iterate through the not already applied columns, which were changed from null or to null
|
|
23018
|
+
missingColumns.forEach((column) => {
|
|
23019
|
+
if (data.hasOwnProperty(column.field)) {
|
|
23020
|
+
matchRow[column.field] = data[column.field];
|
|
23021
|
+
}
|
|
23022
|
+
else if (data.hasOwnProperty(column.field.split('.')[1])) {
|
|
23023
|
+
matchRow[column.field] = data[column.field.split('.')[1]];
|
|
23024
|
+
}
|
|
23025
|
+
else {
|
|
23026
|
+
if (!systemFields.includes(column.field)) {
|
|
23027
|
+
matchRow[column.field] = null;
|
|
23028
|
+
}
|
|
23029
|
+
}
|
|
22822
23030
|
});
|
|
23031
|
+
matchRow.id = id;
|
|
23032
|
+
const rowNode = this.grid.api.getRowNode(id);
|
|
23033
|
+
rowNode && rowNode.setData(matchRow);
|
|
22823
23034
|
}
|
|
22824
23035
|
}
|
|
22825
|
-
|
|
22826
|
-
|
|
22827
|
-
|
|
22828
|
-
|
|
22829
|
-
|
|
22830
|
-
field: SearchQuery.BASE_PARAMS.TYPE,
|
|
22831
|
-
label: this.translate.instant('eo.storedquery.restriction.type'),
|
|
22832
|
-
items: this.storedQuery.types.map(t => t.label)
|
|
22833
|
-
});
|
|
23036
|
+
refreshGrid() {
|
|
23037
|
+
if (this.query) {
|
|
23038
|
+
this._query.sortOptions = (this.grid.api.getColumnState() || [])
|
|
23039
|
+
.map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));
|
|
23040
|
+
this.query = this._query;
|
|
22834
23041
|
}
|
|
22835
|
-
|
|
22836
|
-
(this.storedQuery.filters || []).forEach(filter => {
|
|
22837
|
-
if (filter && ~this.BASE_PARAMS_FIELDS.indexOf(filter.property)) {
|
|
22838
|
-
const field = filter.property;
|
|
22839
|
-
const label = this.translate.instant('eo.storedquery.restriction.' + field);
|
|
22840
|
-
switch (field) {
|
|
22841
|
-
case SearchQuery.BASE_PARAMS.MIMETYPEGROUP:
|
|
22842
|
-
restrictions.push({
|
|
22843
|
-
field, label, items: Array.isArray(filter.firstValue) ? filter.firstValue : [filter.firstValue]
|
|
22844
|
-
});
|
|
22845
|
-
break;
|
|
22846
|
-
case SearchQuery.BASE_PARAMS.FILENAME:
|
|
22847
|
-
restrictions.push({
|
|
22848
|
-
field, label, items: [filter.firstValue]
|
|
22849
|
-
});
|
|
22850
|
-
break;
|
|
22851
|
-
case SearchQuery.BASE_PARAMS.FILESIZE:
|
|
22852
|
-
restrictions.push({
|
|
22853
|
-
field, label, items: [this.translate.instant('eo.search.agg.filesize.' + filter.firstValue)]
|
|
22854
|
-
});
|
|
22855
|
-
break;
|
|
22856
|
-
case SearchQuery.BASE_PARAMS.CREATED:
|
|
22857
|
-
case SearchQuery.BASE_PARAMS.MODIFIED:
|
|
22858
|
-
restrictions.push({
|
|
22859
|
-
field, label, items: [this.createDateRestriction(filter)]
|
|
22860
|
-
});
|
|
22861
|
-
break;
|
|
22862
|
-
case SearchQuery.BASE_PARAMS.CREATOR:
|
|
22863
|
-
case SearchQuery.BASE_PARAMS.MODIFIER:
|
|
22864
|
-
this.systemService.getOrganizationObjects(filter.firstValue)
|
|
22865
|
-
.subscribe(orgUsers => restrictions.push({
|
|
22866
|
-
field, label, items: orgUsers.map(u => u.title)
|
|
22867
|
-
}));
|
|
22868
|
-
break;
|
|
22869
|
-
}
|
|
22870
|
-
}
|
|
22871
|
-
});
|
|
22872
|
-
return restrictions;
|
|
23042
|
+
this.onRefresh.emit(this.query);
|
|
22873
23043
|
}
|
|
22874
|
-
|
|
22875
|
-
|
|
22876
|
-
|
|
22877
|
-
|
|
22878
|
-
|
|
22879
|
-
|
|
22880
|
-
|
|
22881
|
-
return `${this.datePipe.transform(filter.firstValue, 'eoShortDate')} - ${this.datePipe.transform(filter.secondValue, 'eoShortDate')}`;
|
|
22882
|
-
case SearchFilter.OPERATOR.GREATER_OR_EQUAL:
|
|
22883
|
-
return `${this.translate.instant('eo.search.agg.time.span.since')} ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;
|
|
22884
|
-
case SearchFilter.OPERATOR.LESS_OR_EQUAL:
|
|
22885
|
-
return `${this.translate.instant('eo.search.agg.time.span.until')} ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;
|
|
22886
|
-
default:
|
|
22887
|
-
return `(${filter.operator}) ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;
|
|
23044
|
+
onColumnResized(column) {
|
|
23045
|
+
let col = this._cachedColumns.find(c => c.qname === column.colDef.refData.qname);
|
|
23046
|
+
if (col) {
|
|
23047
|
+
col.width = column.actualWidth;
|
|
23048
|
+
}
|
|
23049
|
+
else {
|
|
23050
|
+
this._cachedColumns.push({ qname: column.colDef.refData.qname, width: column.actualWidth });
|
|
22888
23051
|
}
|
|
23052
|
+
this.storageService.setItem(ResultListComponent_1.COLUMNS_DEFINITION, this._cachedColumns);
|
|
22889
23053
|
}
|
|
22890
23054
|
/**
|
|
22891
|
-
*
|
|
22892
|
-
* @param
|
|
22893
|
-
* @returns
|
|
23055
|
+
* Event handler for grid configuration
|
|
23056
|
+
* @param $event
|
|
22894
23057
|
*/
|
|
22895
|
-
|
|
22896
|
-
|
|
22897
|
-
|
|
22898
|
-
// be conflicts in namings
|
|
22899
|
-
formElement.name = formElement.qname;
|
|
22900
|
-
if (formElement.type === 'TABLE') {
|
|
22901
|
-
let filters = this.storedQuery.getTableFilters(formElement.qname);
|
|
22902
|
-
if (filters && filters.length) {
|
|
22903
|
-
formElement.value = this.searchService.tableFiltersToElementValue(filters, formElement.elements);
|
|
22904
|
-
}
|
|
22905
|
-
else {
|
|
22906
|
-
formElement.value = [{}];
|
|
22907
|
-
delete formElement.isNotSetValue;
|
|
22908
|
-
}
|
|
23058
|
+
onConfigChanged(refresh) {
|
|
23059
|
+
if (refresh) {
|
|
23060
|
+
this.refreshGrid();
|
|
22909
23061
|
}
|
|
22910
|
-
|
|
22911
|
-
|
|
22912
|
-
|
|
22913
|
-
|
|
22914
|
-
|
|
22915
|
-
|
|
22916
|
-
|
|
22917
|
-
|
|
22918
|
-
|
|
22919
|
-
|
|
22920
|
-
|
|
22921
|
-
|
|
23062
|
+
}
|
|
23063
|
+
/**
|
|
23064
|
+
* Process Search result & generate column definitions
|
|
23065
|
+
* @param result
|
|
23066
|
+
*/
|
|
23067
|
+
processResults(result) {
|
|
23068
|
+
this.visibleConfig = false;
|
|
23069
|
+
this.onResult.emit(result);
|
|
23070
|
+
this.totalHits = result.count.value;
|
|
23071
|
+
this.limitedList = this.totalHits > result.hits.length;
|
|
23072
|
+
let gridOptions = { context: {}, onSortChanged: () => this.onPageChanged(), onFilterChanged: () => this.onPageChanged() };
|
|
23073
|
+
const searchMode = result.fields.mode ? result.fields.mode : null;
|
|
23074
|
+
this.settings = this.limitedList && this.query ? { total: this.totalHits, size: this.VIRTUAL_LIST_CHUNK_SIZE, relation: result.count.relation } : null;
|
|
23075
|
+
gridOptions.rowData = result.hits;
|
|
23076
|
+
const { elements, sortorder, grouporder, pinned, alignmentx } = result.fields;
|
|
23077
|
+
gridOptions.context.count = result.count;
|
|
23078
|
+
gridOptions.columnDefs = this.gridApi.getColumnDefs(elements, sortorder, grouporder, pinned, alignmentx, false, this._cachedColumns, searchMode);
|
|
23079
|
+
const refreshGrid = this.hasGridOptions;
|
|
23080
|
+
Object.assign(this.resultGridOptions, gridOptions, this.gridOptions);
|
|
23081
|
+
if (refreshGrid) {
|
|
23082
|
+
// reload grid component
|
|
23083
|
+
this.resultGridOptions = {};
|
|
23084
|
+
setTimeout(() => Object.assign(this.resultGridOptions, gridOptions, this.gridOptions), 0);
|
|
23085
|
+
}
|
|
23086
|
+
}
|
|
23087
|
+
postfixSort(id) {
|
|
23088
|
+
// todo: remove when it's fixed on backend
|
|
23089
|
+
return id.match(/(^sysobject\.|^sysdocument\.)(creator$|modifier$)/) ? 'title' : '';
|
|
23090
|
+
}
|
|
23091
|
+
onPageChanged(page = 1) {
|
|
23092
|
+
if (this.limitedList && this.query) {
|
|
23093
|
+
this.fetchRowData({
|
|
23094
|
+
startRow: this.VIRTUAL_LIST_CHUNK_SIZE * (page - 1),
|
|
23095
|
+
sortModel: this.grid.api.getColumnState(),
|
|
23096
|
+
filterModel: this.grid.api.getFilterModel(),
|
|
23097
|
+
successCallback: (rows, total, relation) => {
|
|
23098
|
+
this.settings = { total, relation, size: this.VIRTUAL_LIST_CHUNK_SIZE, page };
|
|
23099
|
+
this.grid.api.setGridOption('rowData', rows);
|
|
23100
|
+
this.grid.selectRow(0);
|
|
22922
23101
|
}
|
|
22923
|
-
|
|
22924
|
-
}
|
|
22925
|
-
else if (formElement.qname !== StoredQueriesService.FULLTEXT) {
|
|
22926
|
-
formElement.value = undefined;
|
|
22927
|
-
delete formElement.isNotSetValue;
|
|
22928
|
-
}
|
|
23102
|
+
});
|
|
22929
23103
|
}
|
|
22930
|
-
|
|
22931
|
-
|
|
22932
|
-
|
|
23104
|
+
}
|
|
23105
|
+
/**
|
|
23106
|
+
* Function for fetching the items to be displayed with a virtual row model.
|
|
23107
|
+
*
|
|
23108
|
+
* @param params - row model params (incl. startRow, endRow, sortModel and filterModel)
|
|
23109
|
+
*/
|
|
23110
|
+
fetchRowData(params) {
|
|
23111
|
+
if (this.query) {
|
|
23112
|
+
this.updateQuery(params);
|
|
23113
|
+
this.searchService
|
|
23114
|
+
.getChunkedResult(this.query, params.startRow, this.VIRTUAL_LIST_CHUNK_SIZE)
|
|
23115
|
+
.subscribe(result => {
|
|
23116
|
+
this.totalHits = this.grid.gridOptions.context.rowCount = result.count.value;
|
|
23117
|
+
this.grid.gridOptions.context.count = result.count;
|
|
23118
|
+
params.successCallback(result.hits, this.totalHits, result.count.relation);
|
|
23119
|
+
});
|
|
23120
|
+
}
|
|
23121
|
+
}
|
|
23122
|
+
updateQuery(params) {
|
|
23123
|
+
this.query.sortOptions = (params.sortModel || this.grid.api.getColumnState() || [])
|
|
23124
|
+
.map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));
|
|
23125
|
+
this.query.filters = this.defaultQuery.filters
|
|
23126
|
+
.concat((Object.keys(params.filterModel || this.grid.api.getFilterModel()) || [])
|
|
23127
|
+
.map(key => GridFilter.operator(GridService.qnameFormatter(key), (params.filterModel || this.grid.api.getFilterModel())[key])));
|
|
23128
|
+
this.query.searchMode = SearchQuery.DEFAULT_SEARCH_MODE;
|
|
23129
|
+
}
|
|
23130
|
+
executeSuggestSearch() {
|
|
23131
|
+
// todo: implement
|
|
23132
|
+
}
|
|
23133
|
+
resultHasReferences() {
|
|
23134
|
+
return this._result.fields.elements.some(element => element.type === 'ORGANIZATION' || element.type === 'REFERENCE');
|
|
23135
|
+
}
|
|
23136
|
+
openDialogExport() {
|
|
23137
|
+
this.showDialogExport = true;
|
|
23138
|
+
if (this.resolveReferencesCsv
|
|
23139
|
+
&& (this.list.gridCount.totalCount > this.resolveReferencesCsvThreshold || this.list.gridCount.relation === 'gte')
|
|
23140
|
+
&& this.resultHasReferences()) {
|
|
23141
|
+
this.showWarnExportCSVThreshold = true;
|
|
23142
|
+
}
|
|
23143
|
+
}
|
|
23144
|
+
exportCSV() {
|
|
23145
|
+
this.csvLoadingSpinnerVisibility = true;
|
|
23146
|
+
this.updateQuery({});
|
|
23147
|
+
this.showWarnExportCSVThreshold = false;
|
|
23148
|
+
this.showDialogExport = false;
|
|
23149
|
+
const queryJson = this.query.getQueryJson(this.resolveReferencesCsv);
|
|
23150
|
+
queryJson.fields = [];
|
|
23151
|
+
this.resultGridOptions?.columnDefs.forEach(colDef => {
|
|
23152
|
+
queryJson.fields.push(colDef['field'] + ' ' + colDef.headerName);
|
|
22933
23153
|
});
|
|
22934
|
-
|
|
22935
|
-
|
|
22936
|
-
|
|
22937
|
-
|
|
22938
|
-
|
|
22939
|
-
return
|
|
23154
|
+
this.searchService.downloadCsvFromQuery(queryJson, this._exportCSVwithUrl).subscribe(() => {
|
|
23155
|
+
this.csvLoadingSpinnerVisibility = false;
|
|
23156
|
+
});
|
|
23157
|
+
}
|
|
23158
|
+
parseDmsParams(data) {
|
|
23159
|
+
return { id: data && data.id ? data.id : null, type: data && data.type ? data.type : null };
|
|
23160
|
+
}
|
|
23161
|
+
get hasGridOptions() {
|
|
23162
|
+
return !!(this.resultGridOptions.datasource || this.resultGridOptions.rowData);
|
|
22940
23163
|
}
|
|
22941
23164
|
onStoredQueryLoaded() {
|
|
23165
|
+
this.savedSearchClicked = false;
|
|
22942
23166
|
this.router.navigate([{ outlets: { modal: 'search' } }]);
|
|
22943
23167
|
}
|
|
22944
23168
|
onStoredQueryExecute(evt) {
|
|
23169
|
+
this.savedSearchClicked = false;
|
|
22945
23170
|
const uriParam = encodeURIComponent(JSON.stringify(evt.queryJson));
|
|
22946
23171
|
const uriParamQuery = { queryParams: { 'query': uriParam } };
|
|
22947
23172
|
this.router.navigate(['/result'], uriParamQuery);
|
|
22948
23173
|
}
|
|
22949
|
-
|
|
22950
|
-
this.iconTitles = {
|
|
22951
|
-
share: this.translate.instant('eo.storedquery.share.title'),
|
|
22952
|
-
shared: this.translate.instant('eo.storedquery.sharedfor.title'),
|
|
22953
|
-
favor: this.translate.instant('eo.storedquery.favor.title'),
|
|
22954
|
-
favored: this.translate.instant('eo.storedquery.favoredfor.title')
|
|
22955
|
-
};
|
|
22956
|
-
}
|
|
22957
|
-
ngOnInit() {
|
|
22958
|
-
this.selection.focus$
|
|
22959
|
-
.pipe(untilDestroyed(this))
|
|
22960
|
-
.subscribe(q => {
|
|
22961
|
-
this.query = q;
|
|
22962
|
-
});
|
|
22963
|
-
this.setIconTitles();
|
|
22964
|
-
}
|
|
22965
|
-
trackByQName(index, item) {
|
|
22966
|
-
return item.qname;
|
|
22967
|
-
}
|
|
22968
|
-
trackByIndex(index, item) {
|
|
22969
|
-
return index;
|
|
22970
|
-
}
|
|
22971
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryDetailsComponent, deps: [{ token: i2$1.Router }, { token: i1.SearchService }, { token: i1.UserService }, { token: i1.SystemService }, { token: SelectionService }, { token: PendingChangesService }, { token: i1.StoredQueriesService }, { token: ObjectFormHelperService }, { token: i0.ElementRef }, { token: i1.TranslateService }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22972
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: StoredQueryDetailsComponent, selector: "eo-stored-query-details", inputs: { query: "query" }, outputs: { notifyList: "notifyList" }, viewQueries: [{ propertyName: "storedQueryForm", first: true, predicate: ["storedQueryForm"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"storedQuery\">\n <div class=\"eo-head\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\n </eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{ storedQuery.name }}</h2>\n <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\n </div>\n </header>\n </div>\n\n <div class=\"eo-body\">\n\n <div class=\"form\">\n\n <ng-template #queryForm>\n <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </ng-template>\n\n <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\n\n <div class=\"context dark\">\n\n <!-- title and fulltext term fields -->\n <eo-form-input class=\"title\">\n <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\"\n [formControlName]=\"'storedQueryTitle'\"/>\n </eo-form-input>\n\n <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\n <div class=\"form-field\">\n <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\"\n [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n\n <!-- context type form controls -->\n <h3>{{ storedQuery.contextFolderTypes[0]?.label }}</h3>\n <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\n <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n\n <!-- object type form controls -->\n <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\n <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\n <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"element\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n </form>\n </div>\n\n <aside class=\"aside\">\n\n <!-- favorite and share -->\n <div class=\"meta-actions\" *ngIf=\"!isNewQuery\">\n\n <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\n <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\n [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\n (click)=\"toggleShareEdit()\"\n [iconTitle]=\"iconTitles.share\"></eo-icon>\n\n <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [ngClass]=\"{active: storedQuery.favorite}\"\n (click)=\"toggleFavoriteState()\"\n [iconTitle]=\"iconTitles.favor\"></eo-icon>\n </ng-container>\n\n <ng-template #sharedWithMe>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"iconTitles.shared\"></eo-icon>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [iconTitle]=\"iconTitles.favored\"></eo-icon>\n </ng-template>\n\n </div>\n\n <!-- roles that share this query -->\n <div class=\"meta-roles\" *ngIf=\"!isNewQuery\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\n\n <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\n <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\n <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\n [codesystem]=\"rolesPicker.codesystem\"\n [multiselect]=\"true\"\n [readonly]=\"!editingShare\"\n [inputStyleClass]=\"'stored-query__share'\"\n [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\n </div>\n\n <div class=\"share-actions\" *ngIf=\"editingShare\">\n <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\n </div>\n </div>\n\n <!-- queries meta info like baseparam settings -->\n <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\n <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\n <div class=\"label\">{{ restriction.label }}</div>\n <div class=\"items\">\n <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{ item }}</div>\n </div>\n </div>\n </div>\n\n </aside>\n\n </div>\n\n <div class=\"actions\">\n <ng-container *ngIf=\"!editForm.form; else actionEdit\">\n <button class=\"secondary btn-delete\" (click)=\"isStoredQueryUsed() ? showDeleteDialog = true : delete()\"\n [disabled]=\"!isOwnQuery\" translate>eo.cta.button.delete\n </button>\n <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" translate>eo.storedquery.load</button>\n <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>\n eo.storedquery.action.edit\n </button>\n <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>\n eo.storedquery.run\n </button>\n </ng-container>\n\n <eo-dialog [title]=\"'eo.storedquery.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'storedQuery-delete__dialog'\">\n <div>\n <span>{{'eo.storedquery.delete.dialog.message' | translate: {\n storedquery: this.storedQuery.name,\n name: this.info\n }\n }}\n </span>\n </div>\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel\n </button>\n <button type=\"button\" #confirmDelete (click)=\"delete(); showDeleteDialog = false\" class=\"button primary\"\n translate>eo.cta.button.delete\n </button>\n </div>\n </eo-dialog>\n\n <ng-template #actionEdit>\n <!-- action while editing the query form -->\n <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>\n eo.storedquery.action.save\n </button>\n </ng-template>\n </div>\n\n</ng-container>\n", styles: [":host{--stored-query-aside-width: 300px;display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto}:host .eo-head{background-color:var(--color-white);border-bottom:1px solid var(--panel-header-border-bottom-color)}:host .eo-body{overflow-y:hidden}:host .eo-body .form{overflow-y:auto;padding:var(--app-pane-padding);padding-right:calc(var(--stored-query-aside-width) + var(--app-pane-padding) * 2)}:host .eo-body .form eo-stored-query{background-color:var(--color-white);padding:var(--app-pane-padding)}:host .eo-body .aside{width:var(--stored-query-aside-width);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding);background-color:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1);box-sizing:border-box;padding:var(--app-pane-padding)}:host .eo-body .aside .meta-actions{display:flex;justify-content:flex-end;margin:0 -2px}:host .eo-body .aside .meta-actions eo-icon{margin:0 2px;padding:4px;color:var(--text-color-hint)}:host .eo-body .aside .meta-actions eo-icon.active{color:var(--color-favorite)}:host .eo-body .aside .meta-actions eo-icon.editing{background-color:var(--color-primary-2);color:var(--color-white);border-radius:2px 2px 0 0}:host .eo-body .aside .meta-actions eo-icon.sharedWithMe{background-color:var(--text-color-hint);color:var(--color-white);border-radius:2px}:host .eo-body .aside .meta-roles.dark{background-color:var(--color-primary-2);color:var(--color-white);border-radius:2px;padding:calc(var(--app-pane-padding) / 2);margin-bottom:var(--app-pane-padding)}:host .eo-body .aside .meta-roles.dark .actions{display:flex}:host .eo-body .aside .meta-roles.dark .label{display:none}:host .eo-body .aside .meta-roles.dark .form-field{background-color:rgba(var(--color-white-rgb),.2)}:host .eo-body .aside .meta-roles .form-field{background-color:rgba(var(--color-white-rgb),.2);border:1px solid rgba(var(--color-black-rgb),.1);padding:2px 2px 4px 4px;margin-bottom:calc(var(--app-pane-padding) / 2)}:host .eo-body .aside .meta-roles .label{color:var(--text-color-caption);font-style:italic;margin-bottom:calc(var(--app-pane-padding) / 4)}:host .eo-body .aside .meta-roles .share-actions{display:flex;justify-content:flex-end;margin:0 calc(var(--app-pane-padding) / 8 * -1)}:host .eo-body .aside .meta-roles .share-actions button{margin:0 calc(var(--app-pane-padding) / 8);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}:host .eo-body .aside .meta-roles.empty:not(.dark) .label,:host .eo-body .aside .meta-roles.empty:not(.dark) .form-field{display:none}:host .eo-body .aside .meta-data{order:1;flex:1 1 40%;margin:0 0 var(--app-pane-padding) 0;display:table;border-collapse:collapse}:host .eo-body .aside .meta-data .restriction{display:table-row}:host .eo-body .aside .meta-data .restriction .label{display:table-cell;padding-right:calc(var(--app-pane-padding) / 2);color:var(--text-color-caption);font-style:italic}:host .eo-body .aside .meta-data .restriction .items{display:table-cell;border-left:1px solid rgba(var(--color-black-rgb),.1);padding:0 0 calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2)}:host .actions{display:flex;flex-flow:row;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) - 2px);background-color:var(--color-white);border-top:1px solid var(--panel-header-border-bottom-color)}:host .actions button{margin:0 2px}:host .edit-form{background-color:var(--color-white);max-width:500px}:host .edit-form .context{background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2)}:host .edit-form .context h3{padding:var(--app-pane-padding) 0 calc(var(--app-pane-padding) / 2) 0;margin:0;font-weight:var(--font-weight-light);font-size:var(--font-subhead);color:var(--color-white);display:flex;justify-content:flex-end}:host .edit-form .form-fields{padding:calc(var(--app-pane-padding) / 2)}:host .edit-form .form-fields.empty{display:none}:host .edit-form .form-field{display:flex;flex-flow:row nowrap;align-items:center}:host .edit-form .form-field eo-form-element{flex:1 1 auto}:host .edit-form .form-field eo-dynamic-property-switch{flex:0 0 auto}:host eo-stored-query{max-width:500px;display:block}:host ::ng-deep eo-form-input.title{display:block;margin-bottom:var(--app-pane-padding)}:host ::ng-deep eo-form-input.title input{width:100%;font-size:var(--font-title);font-weight:var(--font-weight-light);border:0;background-color:transparent}::ng-deep .storedQuery-delete__dialog{padding:8px;min-height:unset!important}::ng-deep .storedQuery-delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}::ng-deep .storedQuery-delete__dialog .storedQuery-delete__dialog_warning{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: QueryScopeSelectComponent, selector: "eo-query-scope-select", inputs: ["selection"], outputs: ["select"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: StoredQueryComponent, selector: "eo-stored-query", inputs: ["query", "formOnly"], outputs: ["onQueryLoaded", "onQueryExecute"] }, { kind: "component", type: DynamicPropertySwitchComponent, selector: "eo-dynamic-property-switch", inputs: ["parentFormControl"], outputs: ["onPropertyChanged"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
23174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResultListComponent, deps: [{ token: i1.Config }, { token: i1.TranslateService }, { token: GridService }, { token: i1.BackendService }, { token: AppSearchService }, { token: i1.SearchService }, { token: i1.EventService }, { token: i1.LocalStorageService }, { token: i1.StoredQueriesService }, { token: i2$1.Router }, { token: i1$3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ResultListComponent, selector: "eo-result-list", inputs: { title: "title", configType: "configType", configContext: "configContext", clearAfterExecute: "clearAfterExecute", emptyMessage: "emptyMessage", selectFirst: "selectFirst", gridOptions: "gridOptions", hasIcon: "hasIcon", reference: "reference", query: "query", searchResult: "searchResult" }, outputs: { onSelectionChanged: "onSelectionChanged", onFocusChanged: "onFocusChanged", onDoubleClick: "onDoubleClick", onContextMenu: "onContextMenu", onCountChanged: "onCountChanged", onRefresh: "onRefresh", onResult: "onResult", onQueryInvalid: "onQueryInvalid" }, viewQueries: [{ propertyName: "grid", first: true, predicate: ["eoGrid"], descendants: true }, { propertyName: "list", first: true, predicate: ["eoList"], descendants: true }], ngImport: i0, template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\n</div>\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\n\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\" [eoShortcuts]=\"shortcuts\">\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\n <div class=\"eo-header-subtitle\">\n <span *ngIf=\"!storedQuery; else storedQueryText\" class=\"eo-header-subtitle__label\" [title]=\"querySubtitle\">{{querySubtitle}}</span>\n <ng-template #storedQueryText>\n <ng-container *ngIf=\"storedQuery.parameter.length === 0; else storedQueryDialog\">\n <span class=\"eo-header-subtitle__label\" [title]=\"('eo.search.aside.summary.storedquery' | translate) + ': ' + storedQuery.name\">\n {{'eo.search.aside.summary.storedquery' | translate}}: {{storedQuery.name}}\n </span>\n </ng-container>\n </ng-template>\n <ng-template #storedQueryDialog>\n <div class=\"stored-query\">\n <span>\n {{'eo.search.aside.summary.storedquery' | translate}}:\n </span>\n <button class=\"sq\" (click)=\"savedSearchClicked = true\" (keyup.enter)=\"savedSearchClicked = true\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{storedQuery.name}}</span>\n </button>\n </div>\n </ng-template>\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\n <span class=\"term\" *ngIf=\"!storedQuery && query?.term && !clearAfterExecute\" [title]=\"('eo.search.result.term' | translate) + ': ' + query.term\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\n </div>\n </div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\n (click)=\"openDialogExport()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\n </div>\n </eo-grid>\n </div>\n <ng-template #error>\n\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\n </eo-error-message>\n\n </ng-template>\n</eo-list-container>\n\n<eo-dialog [visible]=\"savedSearchClicked\" (hide)=\"savedSearchClicked = false\" [title]=\"'eo.search.aside.summary.storedquery' | translate\">\n\n</eo-dialog>\n<eo-dialog [title]=\"'eo.resultlist.export.csv.dialog.title' | translate\" [(visible)]=\"showDialogExport\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'export__dialog'\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.resultlist.export.csv.dialog.objectUrl.label' | translate\">\n <eo-checkbox formControlName=\"exportCSVwithUrl\">\n </eo-checkbox>\n </eo-form-input>\n </form>\n\n @if(showWarnExportCSVThreshold){\n <div class=\"threshold-warning\">{{'eo.resultlist.export.csv.threshold.dialog.message' | translate}}</div>\n }\n\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDialogExport = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"exportCSV()\" class=\"button primary\"\n translate>eo.resultlist.export.csv.dialog.export</button>\n </div>\n</eo-dialog>\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background);height:100%}:host .spinner{padding:calc(var(--app-pane-padding) / 4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{padding-bottom:calc(var(--app-pane-padding) / 4);font-size:20px;-webkit-user-select:none;user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{padding:calc(var(--app-pane-padding) / 4);cursor:pointer}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .result-list__loader{margin:auto}:host .stored-query{display:flex;max-height:45vh}:host .stored-query span{padding-right:calc(var(--app-pane-padding) / 2)}:host .stored-query>div{background-color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);margin:0 1px;border-radius:2px 0 0 2px}:host .stored-query>div eo-icon{padding:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption)}:host .stored-query .sq{overflow:hidden;border-radius:2px;padding:calc(var(--app-pane-padding) / 100);background-color:var(--color-white);color:var(--text-color-caption);text-decoration:none;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;flex-flow:row;align-items:center;background-color:var(--list-item-hover-background)}:host .stored-query .sq>eo-icon{color:var(--text-color-hint);flex-shrink:0}:host .stored-query .sq>span{text-overflow:ellipsis;overflow:hidden;padding:0 calc(var(--app-pane-padding) / 2)}eo-stored-query{border-radius:0 2px 2px 0;background-color:var(--color-white);padding:var(--app-pane-padding);overflow-y:auto}::ng-deep .export__dialog{padding:8px;min-height:unset!important}::ng-deep .export__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}.threshold-warning{padding-top:var(--app-pane-padding)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: ColumnConfiguratorComponent, selector: "eo-column-configurator", inputs: ["configType", "configContext", "visible", "eoGrid"], outputs: ["onConfigChanged"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: PaginationComponent, selector: "eo-pagination", inputs: ["settings"], outputs: ["pageChanged"] }, { kind: "directive", type: ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
22973
23176
|
};
|
|
22974
|
-
|
|
23177
|
+
ResultListComponent = ResultListComponent_1 = __decorate([
|
|
22975
23178
|
UntilDestroy()
|
|
22976
|
-
],
|
|
22977
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type:
|
|
23179
|
+
], ResultListComponent);
|
|
23180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResultListComponent, decorators: [{
|
|
22978
23181
|
type: Component,
|
|
22979
|
-
args: [{ selector: 'eo-stored-query-details', template: "<ng-container *ngIf=\"storedQuery\">\n <div class=\"eo-head\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\n </eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{ storedQuery.name }}</h2>\n <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\n </div>\n </header>\n </div>\n\n <div class=\"eo-body\">\n\n <div class=\"form\">\n\n <ng-template #queryForm>\n <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </ng-template>\n\n <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\n\n <div class=\"context dark\">\n\n <!-- title and fulltext term fields -->\n <eo-form-input class=\"title\">\n <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\"\n [formControlName]=\"'storedQueryTitle'\"/>\n </eo-form-input>\n\n <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\n <div class=\"form-field\">\n <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\"\n [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n\n <!-- context type form controls -->\n <h3>{{ storedQuery.contextFolderTypes[0]?.label }}</h3>\n <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\n <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n\n <!-- object type form controls -->\n <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\n <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\n <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"element\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n </form>\n </div>\n\n <aside class=\"aside\">\n\n <!-- favorite and share -->\n <div class=\"meta-actions\" *ngIf=\"!isNewQuery\">\n\n <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\n <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\n [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\n (click)=\"toggleShareEdit()\"\n [iconTitle]=\"iconTitles.share\"></eo-icon>\n\n <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [ngClass]=\"{active: storedQuery.favorite}\"\n (click)=\"toggleFavoriteState()\"\n [iconTitle]=\"iconTitles.favor\"></eo-icon>\n </ng-container>\n\n <ng-template #sharedWithMe>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"iconTitles.shared\"></eo-icon>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [iconTitle]=\"iconTitles.favored\"></eo-icon>\n </ng-template>\n\n </div>\n\n <!-- roles that share this query -->\n <div class=\"meta-roles\" *ngIf=\"!isNewQuery\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\n\n <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\n <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\n <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\n [codesystem]=\"rolesPicker.codesystem\"\n [multiselect]=\"true\"\n [readonly]=\"!editingShare\"\n [inputStyleClass]=\"'stored-query__share'\"\n [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\n </div>\n\n <div class=\"share-actions\" *ngIf=\"editingShare\">\n <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\n </div>\n </div>\n\n <!-- queries meta info like baseparam settings -->\n <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\n <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\n <div class=\"label\">{{ restriction.label }}</div>\n <div class=\"items\">\n <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{ item }}</div>\n </div>\n </div>\n </div>\n\n </aside>\n\n </div>\n\n <div class=\"actions\">\n <ng-container *ngIf=\"!editForm.form; else actionEdit\">\n <button class=\"secondary btn-delete\" (click)=\"isStoredQueryUsed() ? showDeleteDialog = true : delete()\"\n [disabled]=\"!isOwnQuery\" translate>eo.cta.button.delete\n </button>\n <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" translate>eo.storedquery.load</button>\n <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>\n eo.storedquery.action.edit\n </button>\n <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>\n eo.storedquery.run\n </button>\n </ng-container>\n\n <eo-dialog [title]=\"'eo.storedquery.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'storedQuery-delete__dialog'\">\n <div>\n <span>{{'eo.storedquery.delete.dialog.message' | translate: {\n storedquery: this.storedQuery.name,\n name: this.info\n }\n }}\n </span>\n </div>\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel\n </button>\n <button type=\"button\" #confirmDelete (click)=\"delete(); showDeleteDialog = false\" class=\"button primary\"\n translate>eo.cta.button.delete\n </button>\n </div>\n </eo-dialog>\n\n <ng-template #actionEdit>\n <!-- action while editing the query form -->\n <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>\n eo.storedquery.action.save\n </button>\n </ng-template>\n </div>\n\n</ng-container>\n", styles: [":host{--stored-query-aside-width: 300px;display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto}:host .eo-head{background-color:var(--color-white);border-bottom:1px solid var(--panel-header-border-bottom-color)}:host .eo-body{overflow-y:hidden}:host .eo-body .form{overflow-y:auto;padding:var(--app-pane-padding);padding-right:calc(var(--stored-query-aside-width) + var(--app-pane-padding) * 2)}:host .eo-body .form eo-stored-query{background-color:var(--color-white);padding:var(--app-pane-padding)}:host .eo-body .aside{width:var(--stored-query-aside-width);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding);background-color:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1);box-sizing:border-box;padding:var(--app-pane-padding)}:host .eo-body .aside .meta-actions{display:flex;justify-content:flex-end;margin:0 -2px}:host .eo-body .aside .meta-actions eo-icon{margin:0 2px;padding:4px;color:var(--text-color-hint)}:host .eo-body .aside .meta-actions eo-icon.active{color:var(--color-favorite)}:host .eo-body .aside .meta-actions eo-icon.editing{background-color:var(--color-primary-2);color:var(--color-white);border-radius:2px 2px 0 0}:host .eo-body .aside .meta-actions eo-icon.sharedWithMe{background-color:var(--text-color-hint);color:var(--color-white);border-radius:2px}:host .eo-body .aside .meta-roles.dark{background-color:var(--color-primary-2);color:var(--color-white);border-radius:2px;padding:calc(var(--app-pane-padding) / 2);margin-bottom:var(--app-pane-padding)}:host .eo-body .aside .meta-roles.dark .actions{display:flex}:host .eo-body .aside .meta-roles.dark .label{display:none}:host .eo-body .aside .meta-roles.dark .form-field{background-color:rgba(var(--color-white-rgb),.2)}:host .eo-body .aside .meta-roles .form-field{background-color:rgba(var(--color-white-rgb),.2);border:1px solid rgba(var(--color-black-rgb),.1);padding:2px 2px 4px 4px;margin-bottom:calc(var(--app-pane-padding) / 2)}:host .eo-body .aside .meta-roles .label{color:var(--text-color-caption);font-style:italic;margin-bottom:calc(var(--app-pane-padding) / 4)}:host .eo-body .aside .meta-roles .share-actions{display:flex;justify-content:flex-end;margin:0 calc(var(--app-pane-padding) / 8 * -1)}:host .eo-body .aside .meta-roles .share-actions button{margin:0 calc(var(--app-pane-padding) / 8);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}:host .eo-body .aside .meta-roles.empty:not(.dark) .label,:host .eo-body .aside .meta-roles.empty:not(.dark) .form-field{display:none}:host .eo-body .aside .meta-data{order:1;flex:1 1 40%;margin:0 0 var(--app-pane-padding) 0;display:table;border-collapse:collapse}:host .eo-body .aside .meta-data .restriction{display:table-row}:host .eo-body .aside .meta-data .restriction .label{display:table-cell;padding-right:calc(var(--app-pane-padding) / 2);color:var(--text-color-caption);font-style:italic}:host .eo-body .aside .meta-data .restriction .items{display:table-cell;border-left:1px solid rgba(var(--color-black-rgb),.1);padding:0 0 calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2)}:host .actions{display:flex;flex-flow:row;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) - 2px);background-color:var(--color-white);border-top:1px solid var(--panel-header-border-bottom-color)}:host .actions button{margin:0 2px}:host .edit-form{background-color:var(--color-white);max-width:500px}:host .edit-form .context{background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2)}:host .edit-form .context h3{padding:var(--app-pane-padding) 0 calc(var(--app-pane-padding) / 2) 0;margin:0;font-weight:var(--font-weight-light);font-size:var(--font-subhead);color:var(--color-white);display:flex;justify-content:flex-end}:host .edit-form .form-fields{padding:calc(var(--app-pane-padding) / 2)}:host .edit-form .form-fields.empty{display:none}:host .edit-form .form-field{display:flex;flex-flow:row nowrap;align-items:center}:host .edit-form .form-field eo-form-element{flex:1 1 auto}:host .edit-form .form-field eo-dynamic-property-switch{flex:0 0 auto}:host eo-stored-query{max-width:500px;display:block}:host ::ng-deep eo-form-input.title{display:block;margin-bottom:var(--app-pane-padding)}:host ::ng-deep eo-form-input.title input{width:100%;font-size:var(--font-title);font-weight:var(--font-weight-light);border:0;background-color:transparent}::ng-deep .storedQuery-delete__dialog{padding:8px;min-height:unset!important}::ng-deep .storedQuery-delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}::ng-deep .storedQuery-delete__dialog .storedQuery-delete__dialog_warning{color:var(--color-error)}\n"] }]
|
|
22980
|
-
}], ctorParameters: () => [{ type:
|
|
23182
|
+
args: [{ selector: 'eo-result-list', template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\n</div>\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\n\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\" [eoShortcuts]=\"shortcuts\">\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\n <div class=\"eo-header-subtitle\">\n <span *ngIf=\"!storedQuery; else storedQueryText\" class=\"eo-header-subtitle__label\" [title]=\"querySubtitle\">{{querySubtitle}}</span>\n <ng-template #storedQueryText>\n <ng-container *ngIf=\"storedQuery.parameter.length === 0; else storedQueryDialog\">\n <span class=\"eo-header-subtitle__label\" [title]=\"('eo.search.aside.summary.storedquery' | translate) + ': ' + storedQuery.name\">\n {{'eo.search.aside.summary.storedquery' | translate}}: {{storedQuery.name}}\n </span>\n </ng-container>\n </ng-template>\n <ng-template #storedQueryDialog>\n <div class=\"stored-query\">\n <span>\n {{'eo.search.aside.summary.storedquery' | translate}}:\n </span>\n <button class=\"sq\" (click)=\"savedSearchClicked = true\" (keyup.enter)=\"savedSearchClicked = true\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{storedQuery.name}}</span>\n </button>\n </div>\n </ng-template>\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\n <span class=\"term\" *ngIf=\"!storedQuery && query?.term && !clearAfterExecute\" [title]=\"('eo.search.result.term' | translate) + ': ' + query.term\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\n </div>\n </div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\n (click)=\"openDialogExport()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\n </div>\n </eo-grid>\n </div>\n <ng-template #error>\n\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\n </eo-error-message>\n\n </ng-template>\n</eo-list-container>\n\n<eo-dialog [visible]=\"savedSearchClicked\" (hide)=\"savedSearchClicked = false\" [title]=\"'eo.search.aside.summary.storedquery' | translate\">\n\n</eo-dialog>\n<eo-dialog [title]=\"'eo.resultlist.export.csv.dialog.title' | translate\" [(visible)]=\"showDialogExport\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'export__dialog'\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\n [label]=\"'eo.resultlist.export.csv.dialog.objectUrl.label' | translate\">\n <eo-checkbox formControlName=\"exportCSVwithUrl\">\n </eo-checkbox>\n </eo-form-input>\n </form>\n\n @if(showWarnExportCSVThreshold){\n <div class=\"threshold-warning\">{{'eo.resultlist.export.csv.threshold.dialog.message' | translate}}</div>\n }\n\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDialogExport = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"exportCSV()\" class=\"button primary\"\n translate>eo.resultlist.export.csv.dialog.export</button>\n </div>\n</eo-dialog>\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background);height:100%}:host .spinner{padding:calc(var(--app-pane-padding) / 4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{padding-bottom:calc(var(--app-pane-padding) / 4);font-size:20px;-webkit-user-select:none;user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{padding:calc(var(--app-pane-padding) / 4);cursor:pointer}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}:host .loader-overlay__mask .result-list__loader{margin:auto}:host .stored-query{display:flex;max-height:45vh}:host .stored-query span{padding-right:calc(var(--app-pane-padding) / 2)}:host .stored-query>div{background-color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);margin:0 1px;border-radius:2px 0 0 2px}:host .stored-query>div eo-icon{padding:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption)}:host .stored-query .sq{overflow:hidden;border-radius:2px;padding:calc(var(--app-pane-padding) / 100);background-color:var(--color-white);color:var(--text-color-caption);text-decoration:none;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;flex-flow:row;align-items:center;background-color:var(--list-item-hover-background)}:host .stored-query .sq>eo-icon{color:var(--text-color-hint);flex-shrink:0}:host .stored-query .sq>span{text-overflow:ellipsis;overflow:hidden;padding:0 calc(var(--app-pane-padding) / 2)}eo-stored-query{border-radius:0 2px 2px 0;background-color:var(--color-white);padding:var(--app-pane-padding);overflow-y:auto}::ng-deep .export__dialog{padding:8px;min-height:unset!important}::ng-deep .export__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}.threshold-warning{padding-top:var(--app-pane-padding)}\n"] }]
|
|
23183
|
+
}], ctorParameters: () => [{ type: i1.Config }, { type: i1.TranslateService }, { type: GridService }, { type: i1.BackendService }, { type: AppSearchService }, { type: i1.SearchService }, { type: i1.EventService }, { type: i1.LocalStorageService }, { type: i1.StoredQueriesService }, { type: i2$1.Router }, { type: i1$3.UntypedFormBuilder }], propDecorators: { grid: [{
|
|
22981
23184
|
type: ViewChild,
|
|
22982
|
-
args: ['
|
|
22983
|
-
}],
|
|
23185
|
+
args: ['eoGrid']
|
|
23186
|
+
}], list: [{
|
|
23187
|
+
type: ViewChild,
|
|
23188
|
+
args: ['eoList']
|
|
23189
|
+
}], title: [{
|
|
22984
23190
|
type: Input
|
|
22985
|
-
}],
|
|
23191
|
+
}], configType: [{
|
|
23192
|
+
type: Input
|
|
23193
|
+
}], configContext: [{
|
|
23194
|
+
type: Input
|
|
23195
|
+
}], clearAfterExecute: [{
|
|
23196
|
+
type: Input
|
|
23197
|
+
}], emptyMessage: [{
|
|
23198
|
+
type: Input
|
|
23199
|
+
}], selectFirst: [{
|
|
23200
|
+
type: Input
|
|
23201
|
+
}], gridOptions: [{
|
|
23202
|
+
type: Input
|
|
23203
|
+
}], hasIcon: [{
|
|
23204
|
+
type: Input
|
|
23205
|
+
}], reference: [{
|
|
23206
|
+
type: Input
|
|
23207
|
+
}], onSelectionChanged: [{
|
|
23208
|
+
type: Output
|
|
23209
|
+
}], onFocusChanged: [{
|
|
23210
|
+
type: Output
|
|
23211
|
+
}], onDoubleClick: [{
|
|
23212
|
+
type: Output
|
|
23213
|
+
}], onContextMenu: [{
|
|
23214
|
+
type: Output
|
|
23215
|
+
}], onCountChanged: [{
|
|
23216
|
+
type: Output
|
|
23217
|
+
}], onRefresh: [{
|
|
23218
|
+
type: Output
|
|
23219
|
+
}], onResult: [{
|
|
23220
|
+
type: Output
|
|
23221
|
+
}], onQueryInvalid: [{
|
|
22986
23222
|
type: Output
|
|
23223
|
+
}], query: [{
|
|
23224
|
+
type: Input
|
|
23225
|
+
}], searchResult: [{
|
|
23226
|
+
type: Input
|
|
22987
23227
|
}] } });
|
|
22988
23228
|
|
|
22989
|
-
class StoredQueryModule {
|
|
22990
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
22991
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryModule, declarations: [StoredQueryComponent,
|
|
22992
|
-
StoredQueryDetailsComponent,
|
|
22993
|
-
DynamicPropertySwitchComponent], imports: [CommonModule,
|
|
22994
|
-
ObjectFormModule,
|
|
22995
|
-
UiModule,
|
|
22996
|
-
GridModule,
|
|
22997
|
-
FormsModule,
|
|
22998
|
-
ReactiveFormsModule,
|
|
22999
|
-
FormElementsModule], exports: [StoredQueryComponent,
|
|
23000
|
-
StoredQueryDetailsComponent] }); }
|
|
23001
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryModule, imports: [CommonModule,
|
|
23002
|
-
ObjectFormModule,
|
|
23003
|
-
UiModule,
|
|
23004
|
-
GridModule,
|
|
23005
|
-
FormsModule,
|
|
23006
|
-
ReactiveFormsModule,
|
|
23007
|
-
FormElementsModule] }); }
|
|
23008
|
-
}
|
|
23009
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StoredQueryModule, decorators: [{
|
|
23010
|
-
type: NgModule,
|
|
23011
|
-
args: [{
|
|
23012
|
-
imports: [
|
|
23013
|
-
CommonModule,
|
|
23014
|
-
ObjectFormModule,
|
|
23015
|
-
UiModule,
|
|
23016
|
-
GridModule,
|
|
23017
|
-
FormsModule,
|
|
23018
|
-
ReactiveFormsModule,
|
|
23019
|
-
FormElementsModule
|
|
23020
|
-
],
|
|
23021
|
-
declarations: [
|
|
23022
|
-
StoredQueryComponent,
|
|
23023
|
-
StoredQueryDetailsComponent,
|
|
23024
|
-
DynamicPropertySwitchComponent
|
|
23025
|
-
],
|
|
23026
|
-
exports: [
|
|
23027
|
-
StoredQueryComponent,
|
|
23028
|
-
StoredQueryDetailsComponent
|
|
23029
|
-
]
|
|
23030
|
-
}]
|
|
23031
|
-
}] });
|
|
23032
|
-
|
|
23033
23229
|
class ResultListModule {
|
|
23034
23230
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResultListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23035
23231
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: ResultListModule, declarations: [ResultListComponent], imports: [UiModule,
|
|
23036
23232
|
ListContainerModule,
|
|
23037
23233
|
GridModule,
|
|
23038
23234
|
ShortcutsModule,
|
|
23039
|
-
StoredQueryModule
|
|
23235
|
+
StoredQueryModule,
|
|
23236
|
+
FormElementsModule,
|
|
23237
|
+
ReactiveFormsModule], exports: [ResultListComponent] }); }
|
|
23040
23238
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResultListModule, imports: [UiModule,
|
|
23041
23239
|
ListContainerModule,
|
|
23042
23240
|
GridModule,
|
|
23043
23241
|
ShortcutsModule,
|
|
23044
|
-
StoredQueryModule
|
|
23242
|
+
StoredQueryModule,
|
|
23243
|
+
FormElementsModule,
|
|
23244
|
+
ReactiveFormsModule] }); }
|
|
23045
23245
|
}
|
|
23046
23246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResultListModule, decorators: [{
|
|
23047
23247
|
type: NgModule,
|
|
@@ -23051,170 +23251,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
23051
23251
|
ListContainerModule,
|
|
23052
23252
|
GridModule,
|
|
23053
23253
|
ShortcutsModule,
|
|
23054
|
-
StoredQueryModule
|
|
23254
|
+
StoredQueryModule,
|
|
23255
|
+
FormElementsModule,
|
|
23256
|
+
ReactiveFormsModule
|
|
23055
23257
|
],
|
|
23056
23258
|
exports: [ResultListComponent],
|
|
23057
23259
|
declarations: [ResultListComponent]
|
|
23058
23260
|
}]
|
|
23059
23261
|
}] });
|
|
23060
23262
|
|
|
23061
|
-
class ChangePasswordFormComponent {
|
|
23062
|
-
constructor(fb, userService, translate, toaster) {
|
|
23063
|
-
this.fb = fb;
|
|
23064
|
-
this.userService = userService;
|
|
23065
|
-
this.translate = translate;
|
|
23066
|
-
this.toaster = toaster;
|
|
23067
|
-
this.userRegex = '';
|
|
23068
|
-
this.onFormSumbit = new EventEmitter();
|
|
23069
|
-
this.passwordIsVisible = false;
|
|
23070
|
-
this.passwordValidation = { type: 'valid', amount: null };
|
|
23071
|
-
this.generateForm();
|
|
23072
|
-
}
|
|
23073
|
-
generateForm() {
|
|
23074
|
-
const { compose, required, minLength } = Validators;
|
|
23075
|
-
this.changePasswordForm = this.fb.group({
|
|
23076
|
-
currentPassword: ['', compose([required, minLength(1)])],
|
|
23077
|
-
password: ['', compose([required, minLength(1)])],
|
|
23078
|
-
confirmPassword: ['', compose([required, minLength(1)])]
|
|
23079
|
-
}, {
|
|
23080
|
-
validator: compose([
|
|
23081
|
-
this.newPasswordValidator('currentPassword', 'password'),
|
|
23082
|
-
this.matchingPasswordsValidator('password', 'confirmPassword')
|
|
23083
|
-
])
|
|
23084
|
-
});
|
|
23085
|
-
this.onChanges();
|
|
23086
|
-
}
|
|
23087
|
-
newPasswordValidator(current, password) {
|
|
23088
|
-
return (group) => {
|
|
23089
|
-
if (group.controls[current].value !== group.controls[password].value) {
|
|
23090
|
-
return null;
|
|
23091
|
-
}
|
|
23092
|
-
return { 'SAME_PASSWORD': true };
|
|
23093
|
-
};
|
|
23094
|
-
}
|
|
23095
|
-
matchingPasswordsValidator(password, confirm) {
|
|
23096
|
-
return (group) => {
|
|
23097
|
-
if (group.controls[password].value === group.controls[confirm].value) {
|
|
23098
|
-
return null;
|
|
23099
|
-
}
|
|
23100
|
-
return { 'matchingPasswords': true };
|
|
23101
|
-
};
|
|
23102
|
-
}
|
|
23103
|
-
onChanges() {
|
|
23104
|
-
this.changePasswordForm.valueChanges
|
|
23105
|
-
.subscribe(value => {
|
|
23106
|
-
if (value.password) {
|
|
23107
|
-
this.passwordValidation = this.userService.validatePassword(value.password);
|
|
23108
|
-
}
|
|
23109
|
-
return this.matchingPasswords;
|
|
23110
|
-
});
|
|
23111
|
-
}
|
|
23112
|
-
showPasswords() {
|
|
23113
|
-
this.passwordIsVisible = !this.passwordIsVisible;
|
|
23114
|
-
}
|
|
23115
|
-
get passwordIsNew() {
|
|
23116
|
-
const { errors, controls } = this.changePasswordForm;
|
|
23117
|
-
let passwordIsNewError = false;
|
|
23118
|
-
if (errors) {
|
|
23119
|
-
const currentPassword = controls.currentPassword.touched && controls.currentPassword.dirty;
|
|
23120
|
-
const password = controls.password.touched && controls.password.dirty;
|
|
23121
|
-
passwordIsNewError = errors.SAME_PASSWORD && currentPassword && password;
|
|
23122
|
-
}
|
|
23123
|
-
return passwordIsNewError;
|
|
23124
|
-
}
|
|
23125
|
-
get matchingPasswords() {
|
|
23126
|
-
const { errors, controls } = this.changePasswordForm;
|
|
23127
|
-
let matchingPasswordsError = false;
|
|
23128
|
-
if (errors) {
|
|
23129
|
-
const password = controls.password.touched && controls.password.dirty;
|
|
23130
|
-
const confirmPassword = controls.confirmPassword.touched && controls.confirmPassword.dirty;
|
|
23131
|
-
matchingPasswordsError = errors.matchingPasswords && password && confirmPassword;
|
|
23132
|
-
}
|
|
23133
|
-
return matchingPasswordsError;
|
|
23134
|
-
}
|
|
23135
|
-
changePasswordOnSuccess() {
|
|
23136
|
-
this.changePasswordForm.reset();
|
|
23137
|
-
this.changePasswordForm.markAsPristine();
|
|
23138
|
-
this.changePasswordForm.markAsUntouched();
|
|
23139
|
-
this.onFormSumbit.emit(true);
|
|
23140
|
-
this.toaster.success(this.translate.instant('eo.password.reset.success'));
|
|
23141
|
-
}
|
|
23142
|
-
changePasswordOnError(error) {
|
|
23143
|
-
const errorTitle = this.translate.instant('eo.password.reset.error.password.title');
|
|
23144
|
-
if (error.error.key === 'USER_OLD_PASSWORD_WRONG') {
|
|
23145
|
-
this.toaster.error(errorTitle, this.translate.instant('eo.password.reset.error.old.password.message'));
|
|
23146
|
-
}
|
|
23147
|
-
else if (error.error.key === 'USER_NEW_PASSWORD_INVALID') {
|
|
23148
|
-
this.toaster.error(errorTitle, this.translate.instant('eo.password.reset.error.new.password.message'));
|
|
23149
|
-
}
|
|
23150
|
-
else {
|
|
23151
|
-
this.toaster.error(errorTitle);
|
|
23152
|
-
}
|
|
23153
|
-
}
|
|
23154
|
-
onSubmit() {
|
|
23155
|
-
const { currentPassword, password } = this.changePasswordForm.value;
|
|
23156
|
-
const payload = {
|
|
23157
|
-
old: currentPassword,
|
|
23158
|
-
new: password
|
|
23159
|
-
};
|
|
23160
|
-
this.userService
|
|
23161
|
-
.changePassword(payload)
|
|
23162
|
-
.subscribe(() => this.changePasswordOnSuccess(), (error) => this.changePasswordOnError(error));
|
|
23163
|
-
}
|
|
23164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChangePasswordFormComponent, deps: [{ token: i1$3.UntypedFormBuilder }, { token: i1.UserService }, { token: i1.TranslateService }, { token: i1.NotificationsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ChangePasswordFormComponent, selector: "eo-change-password-form", inputs: { userRegex: "userRegex" }, outputs: { onFormSumbit: "onFormSumbit" }, ngImport: i0, template: "<section class=\"change-password\">\n <form #changePasswordFormElement [formGroup]=\"changePasswordForm\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\">\n <div class=\"form-item\">\n\n <eo-form-input [label]=\"('eo.password.reset.current-password' | translate)\" [required]=\"true\" [invalid]=\"passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'currentPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.current-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.new-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords || passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'password'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.new-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.confirm-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'confirmPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.confirm-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <div class=\"invalid error\" *ngIf=\"passwordIsNew\">\n {{'eo.password.reset.error.same.password' | translate}}\n </div>\n\n <div class=\"invalid error\" *ngIf=\"matchingPasswords\">\n {{'eo.password.reset.error.matiching.password' | translate}}\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'short'\">\n eo.password.reset.error.new.password.short\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'number'\">\n eo.password.reset.error.new.password.number\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'specialchars'\">\n eo.password.reset.error.new.password.specialchars\n </div>\n\n <section class=\"change-password__cta\">\n <button class=\"change-password__submit-button\" type=\"submit\"\n [disabled]=\"changePasswordForm.invalid || passwordValidation.type !== 'valid'\" translate>eo.password.reset.confirm-button</button>\n\n <a (click)=\"showPasswords()\" tabindex=\"0\" (keydown.enter)=\"showPasswords()\" >\n <eo-icon class=\"change-password__icon-show\"\n [iconSrc]=\"'assets/_default/svg/ic_eye.svg'\"\n [iconTitle]=\"('eo.password.reset.toogle.icon' | translate)\"\n [ngClass]=\"{'visible': passwordIsVisible}\"></eo-icon>\n </a>\n </section>\n </div>\n </form>\n\n</section>\n", styles: [".change-password .invalid.error{color:var(--color-error);padding:5px 0}.change-password :focus{outline:2px solid var(--text-color-caption)}.change-password__cta{margin-top:10px;display:flex;align-items:center}.change-password__submit-button{margin-right:10px}.change-password__icon-show{cursor:pointer;color:var(--text-color-caption)}.change-password__icon-show:hover{color:var(--color-accent)}.change-password__icon-show.visible{color:var(--color-primary-3)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: PasswordComponent, selector: "eo-password", inputs: ["pattern", "parent", "element", "placeholder", "canChangepasswordVisiblety", "passwordVisible"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
23166
|
-
}
|
|
23167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChangePasswordFormComponent, decorators: [{
|
|
23168
|
-
type: Component,
|
|
23169
|
-
args: [{ selector: 'eo-change-password-form', template: "<section class=\"change-password\">\n <form #changePasswordFormElement [formGroup]=\"changePasswordForm\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\">\n <div class=\"form-item\">\n\n <eo-form-input [label]=\"('eo.password.reset.current-password' | translate)\" [required]=\"true\" [invalid]=\"passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'currentPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.current-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.new-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords || passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'password'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.new-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.confirm-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'confirmPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.confirm-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <div class=\"invalid error\" *ngIf=\"passwordIsNew\">\n {{'eo.password.reset.error.same.password' | translate}}\n </div>\n\n <div class=\"invalid error\" *ngIf=\"matchingPasswords\">\n {{'eo.password.reset.error.matiching.password' | translate}}\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'short'\">\n eo.password.reset.error.new.password.short\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'number'\">\n eo.password.reset.error.new.password.number\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'specialchars'\">\n eo.password.reset.error.new.password.specialchars\n </div>\n\n <section class=\"change-password__cta\">\n <button class=\"change-password__submit-button\" type=\"submit\"\n [disabled]=\"changePasswordForm.invalid || passwordValidation.type !== 'valid'\" translate>eo.password.reset.confirm-button</button>\n\n <a (click)=\"showPasswords()\" tabindex=\"0\" (keydown.enter)=\"showPasswords()\" >\n <eo-icon class=\"change-password__icon-show\"\n [iconSrc]=\"'assets/_default/svg/ic_eye.svg'\"\n [iconTitle]=\"('eo.password.reset.toogle.icon' | translate)\"\n [ngClass]=\"{'visible': passwordIsVisible}\"></eo-icon>\n </a>\n </section>\n </div>\n </form>\n\n</section>\n", styles: [".change-password .invalid.error{color:var(--color-error);padding:5px 0}.change-password :focus{outline:2px solid var(--text-color-caption)}.change-password__cta{margin-top:10px;display:flex;align-items:center}.change-password__submit-button{margin-right:10px}.change-password__icon-show{cursor:pointer;color:var(--text-color-caption)}.change-password__icon-show:hover{color:var(--color-accent)}.change-password__icon-show.visible{color:var(--color-primary-3)}\n"] }]
|
|
23170
|
-
}], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }, { type: i1.UserService }, { type: i1.TranslateService }, { type: i1.NotificationsService }], propDecorators: { userRegex: [{
|
|
23171
|
-
type: Input
|
|
23172
|
-
}], onFormSumbit: [{
|
|
23173
|
-
type: Output
|
|
23174
|
-
}] } });
|
|
23175
|
-
|
|
23176
|
-
class PermissionsComponent {
|
|
23177
|
-
constructor() {
|
|
23178
|
-
this.roles = [];
|
|
23179
|
-
}
|
|
23180
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PermissionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: PermissionsComponent, selector: "eo-permissions", inputs: { roles: "roles" }, ngImport: i0, template: "<div class=\"role\" *ngFor=\"let role of roles\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_shield.svg'\"></eo-icon>\n <div>\n <div class=\"name\">{{role.name}}</div>\n <div class=\"description\">{{role.description}}</div>\n </div>\n</div>\n", styles: [".role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.role>div{padding:0 calc(var(--app-pane-padding) / 2)}.role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }] }); }
|
|
23182
|
-
}
|
|
23183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PermissionsComponent, decorators: [{
|
|
23184
|
-
type: Component,
|
|
23185
|
-
args: [{ selector: 'eo-permissions', template: "<div class=\"role\" *ngFor=\"let role of roles\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_shield.svg'\"></eo-icon>\n <div>\n <div class=\"name\">{{role.name}}</div>\n <div class=\"description\">{{role.description}}</div>\n </div>\n</div>\n", styles: [".role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.role>div{padding:0 calc(var(--app-pane-padding) / 2)}.role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}\n"] }]
|
|
23186
|
-
}], propDecorators: { roles: [{
|
|
23187
|
-
type: Input
|
|
23188
|
-
}] } });
|
|
23189
|
-
|
|
23190
|
-
class SettingsModule {
|
|
23191
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SettingsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23192
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: SettingsModule, declarations: [ChangePasswordFormComponent, PermissionsComponent], imports: [CommonModule,
|
|
23193
|
-
ReactiveFormsModule,
|
|
23194
|
-
FormElementsModule,
|
|
23195
|
-
EoSharedModule,
|
|
23196
|
-
UiModule], exports: [ChangePasswordFormComponent, PermissionsComponent] }); }
|
|
23197
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SettingsModule, imports: [CommonModule,
|
|
23198
|
-
ReactiveFormsModule,
|
|
23199
|
-
FormElementsModule,
|
|
23200
|
-
EoSharedModule,
|
|
23201
|
-
UiModule] }); }
|
|
23202
|
-
}
|
|
23203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SettingsModule, decorators: [{
|
|
23204
|
-
type: NgModule,
|
|
23205
|
-
args: [{
|
|
23206
|
-
imports: [
|
|
23207
|
-
CommonModule,
|
|
23208
|
-
ReactiveFormsModule,
|
|
23209
|
-
FormElementsModule,
|
|
23210
|
-
EoSharedModule,
|
|
23211
|
-
UiModule
|
|
23212
|
-
],
|
|
23213
|
-
declarations: [ChangePasswordFormComponent, PermissionsComponent],
|
|
23214
|
-
exports: [ChangePasswordFormComponent, PermissionsComponent]
|
|
23215
|
-
}]
|
|
23216
|
-
}] });
|
|
23217
|
-
|
|
23218
23263
|
class EoFrameworkModule {
|
|
23219
23264
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EoFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23220
23265
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: EoFrameworkModule, declarations: [UploadOverlayComponent,
|
|
@@ -23465,10 +23510,10 @@ class AboutStateComponent {
|
|
|
23465
23510
|
this.backend = backend;
|
|
23466
23511
|
this.userService = userService;
|
|
23467
23512
|
this.config = config;
|
|
23468
|
-
this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/common", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/core", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/forms", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/router", "version": "18.1.0", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.
|
|
23513
|
+
this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/common", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/core", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/forms", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/router", "version": "18.1.0", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.13.0-rc.1", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "18.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "18.1.9", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "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": "karma-coverage-istanbul-reporter", "version": "3.0.3", "license": "MIT" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "19.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.3", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.7", "license": "MIT" }];
|
|
23469
23514
|
this.ctrl = {
|
|
23470
23515
|
componentName: 'yuuvis® RAD client',
|
|
23471
|
-
componentVersion: '11.
|
|
23516
|
+
componentVersion: '11.13.0-rc.2',
|
|
23472
23517
|
productName: '',
|
|
23473
23518
|
productVersion: ''
|
|
23474
23519
|
};
|
|
@@ -23509,6 +23554,7 @@ class AboutStateComponent {
|
|
|
23509
23554
|
'url': 'http://opensource.org/licenses/0BSD'
|
|
23510
23555
|
}
|
|
23511
23556
|
};
|
|
23557
|
+
this.__libraries__ = this.__libraries__.filter(lib => this.licenses[lib.license]);
|
|
23512
23558
|
this.getUserLang();
|
|
23513
23559
|
this.backgroundImage = `url(${this.config.getDashboardBackgroundImage()})`;
|
|
23514
23560
|
this.headerLogo = this.config.getRaw('about.headerLogo');
|
|
@@ -23529,11 +23575,11 @@ class AboutStateComponent {
|
|
|
23529
23575
|
return index;
|
|
23530
23576
|
}
|
|
23531
23577
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AboutStateComponent, deps: [{ token: i1.BackendService }, { token: i1.UserService }, { token: i1.Config }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23532
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: AboutStateComponent, selector: "eo-about-state", ngImport: i0, template: "<div class=\"eo-about-state\">\n\n <div class=\"about\">\n <div class=\"header\" [style.background-image]=\"backgroundImage\">\n <img [src]=\"headerLogo\"/>\n </div>\n\n <div class=\"body\">\n <div class=\"claim\" translate>eo.help.about.claim</div>\n\n <div class=\"wrap\">\n <table>\n <tbody>\n <tr>\n <th translate>eo.help.about.component.label</th>\n <td>{{ctrl.componentName}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.component.version.label</th>\n <td>{{ctrl.componentVersion}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.label</th>\n <td>{{ ctrl.productName }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.version.label</th>\n <td>{{ ctrl.productVersion }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.producer.label</th>\n <td translate>eo.help.about.producer.text</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n <h2 translate>eo.help.license.title</h2>\n <p translate>eo.help.license.intro</p>\n <div class=\"showLic\" (click)=\"licenseShow = !licenseShow\">\n <span class=\"toggle\"><span translate>eo.help.license.title</span><span class=\"toggle-indicator\">{{licenseShow ? '-' : '+'}}</span></span></div>\n <div class=\"licenses\" *ngIf=\"licenseShow\">\n <div class=\"lib\" *ngFor=\"let lib of __libraries__; trackBy: trackByFn\">\n <div class=\"name\">{{lib.name}}</div>\n <div class=\"lic\"
|
|
23578
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: AboutStateComponent, selector: "eo-about-state", ngImport: i0, template: "<div class=\"eo-about-state\">\n\n <div class=\"about\">\n <div class=\"header\" [style.background-image]=\"backgroundImage\">\n <img [src]=\"headerLogo\"/>\n </div>\n\n <div class=\"body\">\n <div class=\"claim\" translate>eo.help.about.claim</div>\n\n <div class=\"wrap\">\n <table>\n <tbody>\n <tr>\n <th translate>eo.help.about.component.label</th>\n <td>{{ctrl.componentName}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.component.version.label</th>\n <td>{{ctrl.componentVersion}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.label</th>\n <td>{{ ctrl.productName }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.version.label</th>\n <td>{{ ctrl.productVersion }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.producer.label</th>\n <td translate>eo.help.about.producer.text</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n <h2 translate>eo.help.license.title</h2>\n <p translate>eo.help.license.intro</p>\n <div class=\"showLic\" (click)=\"licenseShow = !licenseShow\">\n <span class=\"toggle\"><span translate>eo.help.license.title</span><span class=\"toggle-indicator\">{{licenseShow ? '-' : '+'}}</span></span></div>\n <div class=\"licenses\" *ngIf=\"licenseShow\">\n <div class=\"lib\" *ngFor=\"let lib of __libraries__; trackBy: trackByFn\">\n <div class=\"name\">{{lib.name}}</div>\n <div class=\"lic\">\n <a href=\"{{licenses[lib.license].url}}\" target=\"_blank\" *ngIf=\"licenses[lib.license].url\">{{licenses[lib.license].label}}</a>\n <span *ngIf=\"!licenses[lib.license].url\">{{licenses[lib.license].label}}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n</div>\n", styles: [":host{--about-header-height: 300px;position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center;overflow-y:auto}.eo-about-state{box-sizing:border-box;width:800px;display:flex;flex-flow:column}@media screen and (max-width: 832px){.eo-about-state{margin:0;min-width:inherit;width:100%}}.eo-about-state .about{box-shadow:0 2px 5px #0003;background:var(--panel-background);margin:var(--app-pane-padding)}.eo-about-state .about .header{position:relative;height:var(--about-header-height);background-size:cover}.eo-about-state .about .header:after{content:\"\";position:absolute;inset:0;background-color:rgba(var(--color-accent-rgb),.8)}.eo-about-state .about .header img{right:8%;bottom:18%;position:absolute;z-index:20;width:40%}.eo-about-state .about .body{padding:var(--app-pane-padding)}.eo-about-state .about .body .claim{padding:var(--app-pane-padding) 0}.eo-about-state .about .body h2{margin:1.5em 0 0;color:var(--text-color-caption);font-weight:var(--font-weight-light);font-size:var(--font-title)}.eo-about-state .about .body .wrap{display:flex;flex-flow:row wrap}.eo-about-state .about .body ul.links{color:var(--color-accent);list-style-type:none}.eo-about-state .about .body ul.links li{padding:2px 0}.eo-about-state .about .body ul.links a{text-decoration:none;color:var(--color-accent)}.eo-about-state .about .body ul.links a:hover{text-decoration:underline}.eo-about-state .about .body table{margin:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 4) 0;background-color:rgba(var(--color-black-rgb),.06);border-radius:2px}.eo-about-state .about .body table th{display:flex;flex-flow:column;align-items:flex-start;justify-content:center;font-size:var(--font-hint);color:var(--text-color-caption)}.eo-about-state .about .body table th,.eo-about-state .about .body table td{padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 2)}.eo-about-state .about .body .showLic span.toggle{color:var(--color-accent);display:inline-block;padding:0 4px 2px;border-radius:4px;border:1px solid var(--color-accent);cursor:pointer}.eo-about-state .about .body .showLic .toggle-indicator{padding:0 4px}.eo-about-state .about .body .licenses{padding-top:var(--app-pane-padding)}.eo-about-state .about .body .licenses .lib{display:flex;flex-flow:row nowrap;padding:calc(var(--app-pane-padding) / 4);border-top:1px solid var(--list-item-border-color)}.eo-about-state .about .body .licenses .lib .name{flex:1 1 auto}.eo-about-state .about .body .licenses .lib .lic{flex:0 0 auto;font-size:var(--font-hint);color:var(--text-color-caption)}.eo-about-state .about .body .licenses .lib .lic a{text-decoration:none;border-radius:2px;border:1px solid var(--color-accent);color:var(--color-accent);display:inline-block;padding:2px 4px;background-color:rgba(var(--color-black-rgb),.06);line-height:1em}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
23533
23579
|
}
|
|
23534
23580
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AboutStateComponent, decorators: [{
|
|
23535
23581
|
type: Component,
|
|
23536
|
-
args: [{ selector: 'eo-about-state', template: "<div class=\"eo-about-state\">\n\n <div class=\"about\">\n <div class=\"header\" [style.background-image]=\"backgroundImage\">\n <img [src]=\"headerLogo\"/>\n </div>\n\n <div class=\"body\">\n <div class=\"claim\" translate>eo.help.about.claim</div>\n\n <div class=\"wrap\">\n <table>\n <tbody>\n <tr>\n <th translate>eo.help.about.component.label</th>\n <td>{{ctrl.componentName}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.component.version.label</th>\n <td>{{ctrl.componentVersion}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.label</th>\n <td>{{ ctrl.productName }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.version.label</th>\n <td>{{ ctrl.productVersion }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.producer.label</th>\n <td translate>eo.help.about.producer.text</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n <h2 translate>eo.help.license.title</h2>\n <p translate>eo.help.license.intro</p>\n <div class=\"showLic\" (click)=\"licenseShow = !licenseShow\">\n <span class=\"toggle\"><span translate>eo.help.license.title</span><span class=\"toggle-indicator\">{{licenseShow ? '-' : '+'}}</span></span></div>\n <div class=\"licenses\" *ngIf=\"licenseShow\">\n <div class=\"lib\" *ngFor=\"let lib of __libraries__; trackBy: trackByFn\">\n <div class=\"name\">{{lib.name}}</div>\n <div class=\"lic\"
|
|
23582
|
+
args: [{ selector: 'eo-about-state', template: "<div class=\"eo-about-state\">\n\n <div class=\"about\">\n <div class=\"header\" [style.background-image]=\"backgroundImage\">\n <img [src]=\"headerLogo\"/>\n </div>\n\n <div class=\"body\">\n <div class=\"claim\" translate>eo.help.about.claim</div>\n\n <div class=\"wrap\">\n <table>\n <tbody>\n <tr>\n <th translate>eo.help.about.component.label</th>\n <td>{{ctrl.componentName}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.component.version.label</th>\n <td>{{ctrl.componentVersion}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.label</th>\n <td>{{ ctrl.productName }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.version.label</th>\n <td>{{ ctrl.productVersion }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.producer.label</th>\n <td translate>eo.help.about.producer.text</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n <h2 translate>eo.help.license.title</h2>\n <p translate>eo.help.license.intro</p>\n <div class=\"showLic\" (click)=\"licenseShow = !licenseShow\">\n <span class=\"toggle\"><span translate>eo.help.license.title</span><span class=\"toggle-indicator\">{{licenseShow ? '-' : '+'}}</span></span></div>\n <div class=\"licenses\" *ngIf=\"licenseShow\">\n <div class=\"lib\" *ngFor=\"let lib of __libraries__; trackBy: trackByFn\">\n <div class=\"name\">{{lib.name}}</div>\n <div class=\"lic\">\n <a href=\"{{licenses[lib.license].url}}\" target=\"_blank\" *ngIf=\"licenses[lib.license].url\">{{licenses[lib.license].label}}</a>\n <span *ngIf=\"!licenses[lib.license].url\">{{licenses[lib.license].label}}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n</div>\n", styles: [":host{--about-header-height: 300px;position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center;overflow-y:auto}.eo-about-state{box-sizing:border-box;width:800px;display:flex;flex-flow:column}@media screen and (max-width: 832px){.eo-about-state{margin:0;min-width:inherit;width:100%}}.eo-about-state .about{box-shadow:0 2px 5px #0003;background:var(--panel-background);margin:var(--app-pane-padding)}.eo-about-state .about .header{position:relative;height:var(--about-header-height);background-size:cover}.eo-about-state .about .header:after{content:\"\";position:absolute;inset:0;background-color:rgba(var(--color-accent-rgb),.8)}.eo-about-state .about .header img{right:8%;bottom:18%;position:absolute;z-index:20;width:40%}.eo-about-state .about .body{padding:var(--app-pane-padding)}.eo-about-state .about .body .claim{padding:var(--app-pane-padding) 0}.eo-about-state .about .body h2{margin:1.5em 0 0;color:var(--text-color-caption);font-weight:var(--font-weight-light);font-size:var(--font-title)}.eo-about-state .about .body .wrap{display:flex;flex-flow:row wrap}.eo-about-state .about .body ul.links{color:var(--color-accent);list-style-type:none}.eo-about-state .about .body ul.links li{padding:2px 0}.eo-about-state .about .body ul.links a{text-decoration:none;color:var(--color-accent)}.eo-about-state .about .body ul.links a:hover{text-decoration:underline}.eo-about-state .about .body table{margin:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 4) 0;background-color:rgba(var(--color-black-rgb),.06);border-radius:2px}.eo-about-state .about .body table th{display:flex;flex-flow:column;align-items:flex-start;justify-content:center;font-size:var(--font-hint);color:var(--text-color-caption)}.eo-about-state .about .body table th,.eo-about-state .about .body table td{padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 2)}.eo-about-state .about .body .showLic span.toggle{color:var(--color-accent);display:inline-block;padding:0 4px 2px;border-radius:4px;border:1px solid var(--color-accent);cursor:pointer}.eo-about-state .about .body .showLic .toggle-indicator{padding:0 4px}.eo-about-state .about .body .licenses{padding-top:var(--app-pane-padding)}.eo-about-state .about .body .licenses .lib{display:flex;flex-flow:row nowrap;padding:calc(var(--app-pane-padding) / 4);border-top:1px solid var(--list-item-border-color)}.eo-about-state .about .body .licenses .lib .name{flex:1 1 auto}.eo-about-state .about .body .licenses .lib .lic{flex:0 0 auto;font-size:var(--font-hint);color:var(--text-color-caption)}.eo-about-state .about .body .licenses .lib .lic a{text-decoration:none;border-radius:2px;border:1px solid var(--color-accent);color:var(--color-accent);display:inline-block;padding:2px 4px;background-color:rgba(var(--color-black-rgb),.06);line-height:1em}\n"] }]
|
|
23537
23583
|
}], ctorParameters: () => [{ type: i1.BackendService }, { type: i1.UserService }, { type: i1.Config }] });
|
|
23538
23584
|
|
|
23539
23585
|
let SearchWidgetComponent = class SearchWidgetComponent {
|
|
@@ -26618,7 +26664,7 @@ let ResultStateComponent = class ResultStateComponent {
|
|
|
26618
26664
|
this.selection.clear();
|
|
26619
26665
|
}
|
|
26620
26666
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResultStateComponent, deps: [{ token: PendingChangesService }, { token: i2$1.ActivatedRoute }, { token: PageTitleService }, { token: SelectionService }, { token: i2$1.Router }, { token: i1.NotificationsService }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26621
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ResultStateComponent, selector: "eo-result-state", ngImport: i0, template: "<yvc-master-details [layoutOptions]=\"{masterSize: 60, detailsSize: 40}\" [layoutSettingsID]=\"'result.state--' + typeName\"\n [detailsActive]=\"true\">\n <!-- master -->\n <ng-template #yvcMasterPane>\n <eo-result-list [query]=\"query\" [hasIcon]=\"true\" [clearAfterExecute]=\"clearAfterExecute\"\n (onResult)=\"onResult($event)\" (onQueryInvalid)=\"onQueryInvalid()\"></eo-result-list>\n </ng-template>\n\n <!-- details -->\n <ng-template #yvcDetailsPane>\n <eo-object-details [searchTerm]=\"searchTerm\" [applySelection]=\"{}\"\n [cacheLayout]=\"'result.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.result' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-master-details>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden;display:block}:host yvc-master-details{height:100%}\n"], dependencies: [{ kind: "component", type: ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "
|
|
26667
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ResultStateComponent, selector: "eo-result-state", ngImport: i0, template: "<yvc-master-details [layoutOptions]=\"{masterSize: 60, detailsSize: 40}\" [layoutSettingsID]=\"'result.state--' + typeName\"\n [detailsActive]=\"true\">\n <!-- master -->\n <ng-template #yvcMasterPane>\n <eo-result-list [query]=\"query\" [hasIcon]=\"true\" [clearAfterExecute]=\"clearAfterExecute\"\n (onResult)=\"onResult($event)\" (onQueryInvalid)=\"onQueryInvalid()\"></eo-result-list>\n </ng-template>\n\n <!-- details -->\n <ng-template #yvcDetailsPane>\n <eo-object-details [searchTerm]=\"searchTerm\" [applySelection]=\"{}\"\n [cacheLayout]=\"'result.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.result' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-master-details>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden;display:block}:host yvc-master-details{height:100%}\n"], dependencies: [{ kind: "component", type: ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "applySelection", "parseDmsParams", "reference", "emptyState", "params", "params2", "item", "item2"], outputs: ["hasContent"] }, { kind: "component", type: i8$3.MasterDetailsComponent, selector: "yvc-master-details", inputs: ["detailsActive", "layoutSettingsID", "layoutOptions", "undockableDetails", "panelStyle", "gutterSize", "mode"] }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
|
|
26622
26668
|
};
|
|
26623
26669
|
ResultStateComponent = __decorate([
|
|
26624
26670
|
UntilDestroy()
|
|
@@ -26736,7 +26782,7 @@ let FavoriteStateComponent = class FavoriteStateComponent {
|
|
|
26736
26782
|
this.selection.clear();
|
|
26737
26783
|
}
|
|
26738
26784
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FavoriteStateComponent, deps: [{ token: SelectionService }, { token: i1.TranslateService }, { token: i1.SystemService }, { token: EmptyStateService }, { token: PendingChangesService }, { token: PageTitleService }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26739
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: FavoriteStateComponent, selector: "eo-favorite-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'favorite.state'\">\n\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.favorites.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.favorites.filter.title' | translate\" [id]=\"'favorites.text'\"\n [matchFields]=\"['title']\" [filterParams]=\"textFilterParams\">\n </eo-text-filter>\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'favorites.set'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'favorites.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button\" (click)=\"hasContent ? eoList.showActions() : false\"\n [ngClass]=\"{'disabled': !hasContent, 'actions-button': hasContent}\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'DMS_OBJECT')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event)\" (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_favorite.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.favorites.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-object-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [emptyState]=\"emptyState\"\n [cacheLayout]=\"'favorite.state.object-details'\" (hasContent)=\"hasContent = $event\"\n [plugins]=\"'object-details-tab.favorite' | plugins\">\n <div class=\"error\" *ngIf=\"gridData?.length && !hasContent\">\n <button class=\"button\" (click)=\"remove()\" translate>eo.favorite.details.item.gone.remove</button>\n </div>\n </eo-object-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .error .button{margin:1em;background-color:#d3d3d3}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-medium);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "
|
|
26785
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: FavoriteStateComponent, selector: "eo-favorite-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'favorite.state'\">\n\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.favorites.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.favorites.filter.title' | translate\" [id]=\"'favorites.text'\"\n [matchFields]=\"['title']\" [filterParams]=\"textFilterParams\">\n </eo-text-filter>\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'favorites.set'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'favorites.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button\" (click)=\"hasContent ? eoList.showActions() : false\"\n [ngClass]=\"{'disabled': !hasContent, 'actions-button': hasContent}\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'DMS_OBJECT')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event)\" (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_favorite.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.favorites.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-object-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [emptyState]=\"emptyState\"\n [cacheLayout]=\"'favorite.state.object-details'\" (hasContent)=\"hasContent = $event\"\n [plugins]=\"'object-details-tab.favorite' | plugins\">\n <div class=\"error\" *ngIf=\"gridData?.length && !hasContent\">\n <button class=\"button\" (click)=\"remove()\" translate>eo.favorite.details.item.gone.remove</button>\n </div>\n </eo-object-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .error .button{margin:1em;background-color:#d3d3d3}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-medium);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "applySelection", "parseDmsParams", "reference", "emptyState", "params", "params2", "item", "item2"], outputs: ["hasContent"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
|
|
26740
26786
|
};
|
|
26741
26787
|
FavoriteStateComponent = __decorate([
|
|
26742
26788
|
UntilDestroy()
|
|
@@ -27227,7 +27273,7 @@ class ProcessStateComponent {
|
|
|
27227
27273
|
return this.pendingChanges.hasPendingTask();
|
|
27228
27274
|
}
|
|
27229
27275
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ProcessStateComponent, deps: [{ token: i1.TranslateService }, { token: i1.BpmService }, { token: SelectionService }, { token: EmptyStateService }, { token: i1.BackendService }, { token: i1$3.UntypedFormBuilder }, { token: PageTitleService }, { token: i1.AppCacheService }, { token: PendingChangesService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27230
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ProcessStateComponent, selector: "eo-process-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: processSelectionId}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.state.process</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"refreshList()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n class=\"overlay-filter\"\n [iconTitle]=\"'eo.list.filter' | translate\"\n [active]=\"hasChanged(defaultFilterFormValue, filterForm?.value)\"\n (onToggle)=\"onFilterOverlayToggle($event)\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <div class=\"filter-title\" translate>eo.filter.by</div>\n <form [formGroup]=\"filterForm\" *ngIf='filterForm'>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.model' | translate)\" *ngIf=\"processModelsListObject.entries.length\">\n <eo-dynamic-list formControlName=\"modelFCN\" [pickerTitle]=\"'eo.state.process.filter.title' | translate\" [listObject]=\"processModelsListObject\"></eo-dynamic-list>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.running' | translate)\">\n <eo-checkbox formControlName=\"runningFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.paused' | translate)\">\n <eo-checkbox formControlName=\"pausedFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.created' | translate)\">\n <eo-checkbox formControlName=\"createdFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.canceled' | translate)\">\n <eo-checkbox formControlName=\"canceledFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.failed' | translate)\">\n <eo-checkbox formControlName=\"failedFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.completed' | translate)\">\n <eo-checkbox formControlName=\"completedFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.starttime' | translate)\">\n <eo-datetime-range formControlName=\"startTimeFCN\" [withTime]=\"false\"></eo-datetime-range>\n </eo-form-input>\n </form>\n <button class=\"reset-filter\" (click)=\"resetFilters()\" *ngIf=\"hasChanged(defaultFilterFormValue, filterForm?.value)\">Reset filter</button>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort\n class=\"overlay-sort\"\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\"\n [active]=\"hasChanged(defaultSortParams, sortParams)\">\n <eo-custom-sort [id]=\"'process.sort'\" (change)=\"sort($event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid\n *ngIf=\"gridOptions\"\n [gridOptions]=\"gridOptions\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectFirst]=\"true\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{icon: 'ic_bpm.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.process.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"resetFilters()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <!-- process details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-process-details [applySelection]=\"{in: processSelectionId}\" [emptyState]=\"emptyState1\"\n [plugins]=\"'process-details-tab.process' | plugins\">\n </eo-process-details>\n </ng-template>\n\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{}\"\n [cacheLayout]=\"'process.state.object-details'\"\n [emptyState]=\"emptyState2\"\n [plugins]=\"'object-details-tab.process' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host .error .button{margin:1em}:host yvc-split-view{height:100%}:host::ng-deep .list-item{display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host::ng-deep .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host::ng-deep .list-item .content{flex:1;padding:16px;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host::ng-deep .list-item .content .title{font-weight:700;font-size:13px}:host::ng-deep .list-item .content .description{font-size:12px;color:rgba(var(--color-black-rgb),.54)}:host::ng-deep .list-item .meta{padding:0 8px;display:flex;flex-flow:column;align-items:flex-end}:host::ng-deep .list-item .meta .datelabel{display:flex;flex-flow:column}:host::ng-deep .list-item .meta .date{display:flex;font-size:var(--font-hint);color:var(--text-color-caption);flex-direction:row;border-radius:2px;padding:2px;line-height:1em}:host::ng-deep .list-item .meta .date.end{background-color:rgba(var(--color-success),.3)}:host::ng-deep .list-item .meta .time{padding-left:2px}:host::ng-deep .list-item.notstarted{opacity:.5}:host::ng-deep .list-item.error .content .title,:host::ng-deep .list-item.error .content .description{color:var(--color-error)}:host::ng-deep .list-item.error .meta .datelabel{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: PaginationComponent, selector: "eo-pagination", inputs: ["settings"], outputs: ["pageChanged"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: DatetimeRangeComponent, selector: "eo-datetime-range", inputs: ["withTime", "pickerTitle", "operator", "situation"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: DynamicListComponent, selector: "eo-dynamic-list", inputs: ["situation", "multiselect", "pickerTitle", "readonly", "formControlName", "formElementChanges", "filterFunction", "listObject", "autocompleteUrl"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: ProcessDetailsComponent, selector: "eo-process-details", inputs: ["plugins", "emptyState", "applySelection", "item"], outputs: ["onDmsItemSelected"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
|
|
27276
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ProcessStateComponent, selector: "eo-process-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: processSelectionId}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.state.process</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"refreshList()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n class=\"overlay-filter\"\n [iconTitle]=\"'eo.list.filter' | translate\"\n [active]=\"hasChanged(defaultFilterFormValue, filterForm?.value)\"\n (onToggle)=\"onFilterOverlayToggle($event)\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <div class=\"filter-title\" translate>eo.filter.by</div>\n <form [formGroup]=\"filterForm\" *ngIf='filterForm'>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.model' | translate)\" *ngIf=\"processModelsListObject.entries.length\">\n <eo-dynamic-list formControlName=\"modelFCN\" [pickerTitle]=\"'eo.state.process.filter.title' | translate\" [listObject]=\"processModelsListObject\"></eo-dynamic-list>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.running' | translate)\">\n <eo-checkbox formControlName=\"runningFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.paused' | translate)\">\n <eo-checkbox formControlName=\"pausedFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.created' | translate)\">\n <eo-checkbox formControlName=\"createdFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.canceled' | translate)\">\n <eo-checkbox formControlName=\"canceledFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.failed' | translate)\">\n <eo-checkbox formControlName=\"failedFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.completed' | translate)\">\n <eo-checkbox formControlName=\"completedFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [label]=\"('eo.state.process.filter.labels.starttime' | translate)\">\n <eo-datetime-range formControlName=\"startTimeFCN\" [withTime]=\"false\"></eo-datetime-range>\n </eo-form-input>\n </form>\n <button class=\"reset-filter\" (click)=\"resetFilters()\" *ngIf=\"hasChanged(defaultFilterFormValue, filterForm?.value)\">Reset filter</button>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort\n class=\"overlay-sort\"\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\"\n [active]=\"hasChanged(defaultSortParams, sortParams)\">\n <eo-custom-sort [id]=\"'process.sort'\" (change)=\"sort($event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid\n *ngIf=\"gridOptions\"\n [gridOptions]=\"gridOptions\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectFirst]=\"true\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{icon: 'ic_bpm.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.process.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"resetFilters()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <!-- process details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-process-details [applySelection]=\"{in: processSelectionId}\" [emptyState]=\"emptyState1\"\n [plugins]=\"'process-details-tab.process' | plugins\">\n </eo-process-details>\n </ng-template>\n\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{}\"\n [cacheLayout]=\"'process.state.object-details'\"\n [emptyState]=\"emptyState2\"\n [plugins]=\"'object-details-tab.process' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host .error .button{margin:1em}:host yvc-split-view{height:100%}:host::ng-deep .list-item{display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host::ng-deep .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host::ng-deep .list-item .content{flex:1;padding:16px;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host::ng-deep .list-item .content .title{font-weight:700;font-size:13px}:host::ng-deep .list-item .content .description{font-size:12px;color:rgba(var(--color-black-rgb),.54)}:host::ng-deep .list-item .meta{padding:0 8px;display:flex;flex-flow:column;align-items:flex-end}:host::ng-deep .list-item .meta .datelabel{display:flex;flex-flow:column}:host::ng-deep .list-item .meta .date{display:flex;font-size:var(--font-hint);color:var(--text-color-caption);flex-direction:row;border-radius:2px;padding:2px;line-height:1em}:host::ng-deep .list-item .meta .date.end{background-color:rgba(var(--color-success),.3)}:host::ng-deep .list-item .meta .time{padding-left:2px}:host::ng-deep .list-item.notstarted{opacity:.5}:host::ng-deep .list-item.error .content .title,:host::ng-deep .list-item.error .content .description{color:var(--color-error)}:host::ng-deep .list-item.error .meta .datelabel{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "applySelection", "parseDmsParams", "reference", "emptyState", "params", "params2", "item", "item2"], outputs: ["hasContent"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: PaginationComponent, selector: "eo-pagination", inputs: ["settings"], outputs: ["pageChanged"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: DatetimeRangeComponent, selector: "eo-datetime-range", inputs: ["withTime", "pickerTitle", "operator", "situation"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: DynamicListComponent, selector: "eo-dynamic-list", inputs: ["situation", "multiselect", "pickerTitle", "readonly", "formControlName", "formElementChanges", "filterFunction", "listObject", "autocompleteUrl"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: ProcessDetailsComponent, selector: "eo-process-details", inputs: ["plugins", "emptyState", "applySelection", "item"], outputs: ["onDmsItemSelected"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
|
|
27231
27277
|
}
|
|
27232
27278
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ProcessStateComponent, decorators: [{
|
|
27233
27279
|
type: Component,
|
|
@@ -27426,7 +27472,7 @@ let NotificationsStateComponent = class NotificationsStateComponent {
|
|
|
27426
27472
|
this.selection.clear();
|
|
27427
27473
|
}
|
|
27428
27474
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NotificationsStateComponent, deps: [{ token: SelectionService }, { token: i1.TranslateService }, { token: i1.SystemService }, { token: PendingChangesService }, { token: EmptyStateService }, { token: i1.BackendService }, { token: i1.EventService }, { token: i1.DmsService }, { token: PageTitleService }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27429
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NotificationsStateComponent, selector: "eo-notifications-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'notification.state'\">\n <ng-template yvcSplitArea [size]=\"25\"><eo-list-container #eoList [applySelection]=\"{}\"\n [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.notifications.list.title</div>\n <div class=\"header-sub-title\" translate>eo.notifications.list.subtitle</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n class=\"overlay-filter\" [iconTitle]=\"'eo.list.filter' | translate\" (onToggle)=\"onFilterOverlayToggle($event)\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.notifications.filter.title' | translate\" [matchFields]=\"['info']\"\n [filterParams]=\"textFilterParams\" [id]=\"'notifications.text'\"></eo-text-filter>\n\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.notifications.filter.section.title' | translate\"\n [options]=\"objectTypeFilterFields\" [id]=\"'notifications.object.type'\"></eo-set-filter>\n\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.notifications.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\" [id]=\"'notifications.type'\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" class=\"overlay-sort\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'notifications.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event)\" (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.notifications.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"75\">\n <eo-object-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\"\n [cacheLayout]=\"'notification.state.object-details'\" [emptyState]=\"emptyState\" [plugins]=\"'object-details-tab.notifications' | plugins\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.notifications.details.item.gone.remove</button>\n <button class=\"button secondary\" (click)=\"removeSubscriptionAndResubmissions()\"\n translate>eo.notifications.details.item.gone.remove.subscriptions</button>\n </div>\n </eo-object-details>\n </ng-template>\n\n</yvc-split-view>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host .error .button{margin:1em}:host yvc-split-view{height:100%}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-medium);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .meta{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .ag-cell .list-item .content .meta .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .meta .description.date{font-size:var(--font-hint)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "
|
|
27475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NotificationsStateComponent, selector: "eo-notifications-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'notification.state'\">\n <ng-template yvcSplitArea [size]=\"25\"><eo-list-container #eoList [applySelection]=\"{}\"\n [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.notifications.list.title</div>\n <div class=\"header-sub-title\" translate>eo.notifications.list.subtitle</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n class=\"overlay-filter\" [iconTitle]=\"'eo.list.filter' | translate\" (onToggle)=\"onFilterOverlayToggle($event)\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.notifications.filter.title' | translate\" [matchFields]=\"['info']\"\n [filterParams]=\"textFilterParams\" [id]=\"'notifications.text'\"></eo-text-filter>\n\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.notifications.filter.section.title' | translate\"\n [options]=\"objectTypeFilterFields\" [id]=\"'notifications.object.type'\"></eo-set-filter>\n\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.notifications.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\" [id]=\"'notifications.type'\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" class=\"overlay-sort\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'notifications.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event)\" (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.notifications.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"75\">\n <eo-object-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\"\n [cacheLayout]=\"'notification.state.object-details'\" [emptyState]=\"emptyState\" [plugins]=\"'object-details-tab.notifications' | plugins\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.notifications.details.item.gone.remove</button>\n <button class=\"button secondary\" (click)=\"removeSubscriptionAndResubmissions()\"\n translate>eo.notifications.details.item.gone.remove.subscriptions</button>\n </div>\n </eo-object-details>\n </ng-template>\n\n</yvc-split-view>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host .error .button{margin:1em}:host yvc-split-view{height:100%}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-medium);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .meta{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .ag-cell .list-item .content .meta .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .meta .description.date{font-size:var(--font-hint)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "applySelection", "parseDmsParams", "reference", "emptyState", "params", "params2", "item", "item2"], outputs: ["hasContent"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
|
|
27430
27476
|
};
|
|
27431
27477
|
NotificationsStateComponent = __decorate([
|
|
27432
27478
|
UntilDestroy()
|
|
@@ -27542,7 +27588,7 @@ let VersionStateComponent = class VersionStateComponent {
|
|
|
27542
27588
|
`;
|
|
27543
27589
|
}
|
|
27544
27590
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VersionStateComponent, deps: [{ token: i2$1.ActivatedRoute }, { token: i1.TranslateService }, { token: PageTitleService }, { token: i1.EventService }, { token: i1.DmsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27545
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: VersionStateComponent, selector: "eo-version-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'version.state'\">\n <!-- list of versions -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_format_list_numbered.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.versions.list.title</div>\n <div class=\"eo-header-subtitle\">{{versionItem?.title}}</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconClass]=\"'primary'\" class=\"overlay-filter\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter\n (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.versions.filter.title' | translate\" [matchFields]=\"['title']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.versions.list.users' | translate\"\n [options]=\"userFilterFields\" [id]=\"'versions.user'\"></eo-set-filter>\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.versions.list.types' | translate\"\n [options]=\"typeFilterFields\" [id]=\"'versions.type'\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\" class=\"overlay-sort\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort\n (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\"\n [sortFields]=\"sortFields\" [id]=\"'versions.sort'\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"'eo.object.actions.title' | translate\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions?.rowData\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectionLimit]=\"2\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_no-file.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.versions.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <!-- version compare/details-->\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-object-details [enableCompare]=\"true\" [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [versionComponentTabs]=\"true\"\n [cacheLayout]=\"'version.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.version' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host .error .button{margin:1em}:host yvc-split-view{height:100%}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px;--version-icon-width: 28px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .ag-cell .list-item .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .ag-cell .list-item .icon.circle{display:flex;width:var(--version-icon-width);height:var(--version-icon-width);font-weight:var(--font-weight-bold);font-size:var(--font-caption);justify-content:center;align-items:center;border-radius:50%;-webkit-border-radius:50%;border:3px solid var(--color-primary-4);color:var(--color-primary-4)}:host ::ng-deep .ag-row-selected .ag-cell .list-item .icon.circle{border-color:var(--color-primary);color:var(--color-primary)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "
|
|
27591
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: VersionStateComponent, selector: "eo-version-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'version.state'\">\n <!-- list of versions -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_format_list_numbered.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.versions.list.title</div>\n <div class=\"eo-header-subtitle\">{{versionItem?.title}}</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconClass]=\"'primary'\" class=\"overlay-filter\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter\n (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.versions.filter.title' | translate\" [matchFields]=\"['title']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.versions.list.users' | translate\"\n [options]=\"userFilterFields\" [id]=\"'versions.user'\"></eo-set-filter>\n <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.versions.list.types' | translate\"\n [options]=\"typeFilterFields\" [id]=\"'versions.type'\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\" class=\"overlay-sort\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort\n (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\"\n [sortFields]=\"sortFields\" [id]=\"'versions.sort'\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"'eo.object.actions.title' | translate\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions?.rowData\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectionLimit]=\"2\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_no-file.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.versions.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <!-- version compare/details-->\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-object-details [enableCompare]=\"true\" [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [versionComponentTabs]=\"true\"\n [cacheLayout]=\"'version.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.version' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host .error .button{margin:1em}:host yvc-split-view{height:100%}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px;--version-icon-width: 28px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .ag-cell .list-item .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .ag-cell .list-item .icon.circle{display:flex;width:var(--version-icon-width);height:var(--version-icon-width);font-weight:var(--font-weight-bold);font-size:var(--font-caption);justify-content:center;align-items:center;border-radius:50%;-webkit-border-radius:50%;border:3px solid var(--color-primary-4);color:var(--color-primary-4)}:host ::ng-deep .ag-row-selected .ag-cell .list-item .icon.circle{border-color:var(--color-primary);color:var(--color-primary)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "applySelection", "parseDmsParams", "reference", "emptyState", "params", "params2", "item", "item2"], outputs: ["hasContent"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
|
|
27546
27592
|
};
|
|
27547
27593
|
VersionStateComponent = __decorate([
|
|
27548
27594
|
UntilDestroy()
|
|
@@ -27798,14 +27844,7 @@ let InboxStateComponent = class InboxStateComponent {
|
|
|
27798
27844
|
this.getStorageCache();
|
|
27799
27845
|
});
|
|
27800
27846
|
this.filterForm.valueChanges.pipe(untilDestroyed(this)).subscribe((e) => {
|
|
27801
|
-
|
|
27802
|
-
this.storageService.setItem(this.filterCacheKey, this.filterForm.get('modelFCN').value);
|
|
27803
|
-
this.onPageChanged();
|
|
27804
|
-
}
|
|
27805
|
-
else if (e.modelFCN === null) {
|
|
27806
|
-
this.updateGrid(this.gridData);
|
|
27807
|
-
this.storageService.setItem(this.filterCacheKey, null);
|
|
27808
|
-
}
|
|
27847
|
+
this.setSelectedModel(e);
|
|
27809
27848
|
});
|
|
27810
27849
|
this.inboxService.inboxState$
|
|
27811
27850
|
.pipe(untilDestroyed(this))
|
|
@@ -27816,6 +27855,16 @@ let InboxStateComponent = class InboxStateComponent {
|
|
|
27816
27855
|
}
|
|
27817
27856
|
});
|
|
27818
27857
|
}
|
|
27858
|
+
setSelectedModel(e) {
|
|
27859
|
+
if (e.modelFCN !== null && e.modelFCN?.modelFCN !== null) {
|
|
27860
|
+
this.storageService.setItem(this.filterCacheKey, this.filterForm.get('modelFCN').value);
|
|
27861
|
+
this.onPageChanged();
|
|
27862
|
+
}
|
|
27863
|
+
else if (e.modelFCN === null) {
|
|
27864
|
+
this.updateGrid(this.gridData);
|
|
27865
|
+
this.storageService.setItem(this.filterCacheKey, null);
|
|
27866
|
+
}
|
|
27867
|
+
}
|
|
27819
27868
|
getStorageCache() {
|
|
27820
27869
|
this.storageFilterValue = this.storageService.getItem(this.filterCacheKey);
|
|
27821
27870
|
setTimeout(() => {
|
|
@@ -27905,6 +27954,11 @@ let InboxStateComponent = class InboxStateComponent {
|
|
|
27905
27954
|
this.inboxSelection.disable(false);
|
|
27906
27955
|
this.inboxService.getItems().subscribe();
|
|
27907
27956
|
this.inboxService.refreshInboxState();
|
|
27957
|
+
setTimeout(() => {
|
|
27958
|
+
if (this.filterForm.get('modelFCN').value) {
|
|
27959
|
+
this.setSelectedModel(this.filterForm.get('modelFCN').value);
|
|
27960
|
+
}
|
|
27961
|
+
}, 200);
|
|
27908
27962
|
}
|
|
27909
27963
|
itemFilterFields(node, item) {
|
|
27910
27964
|
const value = node.data[InboxTypesFilter[item]];
|
|
@@ -28063,7 +28117,7 @@ let InboxStateComponent = class InboxStateComponent {
|
|
|
28063
28117
|
this.actionService.showActions([], 'COMPONENT_SPECIFIC_ACTIONS');
|
|
28064
28118
|
}
|
|
28065
28119
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InboxStateComponent, deps: [{ token: i1.TranslateService }, { token: SelectionService }, { token: PageTitleService }, { token: i1.InboxService }, { token: PendingChangesService }, { token: EmptyStateService }, { token: i1.BpmService }, { token: i1$3.UntypedFormBuilder }, { token: i1.BackendService }, { token: i1.EventService }, { token: i2$1.ActivatedRoute }, { token: i1.LocalStorageService }, { token: ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28066
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InboxStateComponent, selector: "eo-inbox-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\" [eoShortcuts]=\"shortcuts\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\"\n [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconTitle]=\"'eo.list.filter' | translate\"\n [active]=\"hasChanged(filterForm?.value)\"\n (onToggle)=\"onFilterOverlayToggle($event)\">\n\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\"\n [filterForm]=\"filterForm\"\n [isFilterActive]=\"oFilter.active || hasChanged(filterForm?.value)\">\n\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\n\n <form [formGroup]=\"filterForm\">\n @if (processModelsListObject.entries.length) {\n <eo-form-input [label]=\"('eo.state.process.filter.labels.model' | translate)\">\n <eo-dynamic-list formControlName=\"modelFCN\" [pickerTitle]=\"'eo.state.process.filter.title' | translate\" [listObject]=\"processModelsListObject\"></eo-dynamic-list>\n </eo-form-input>\n }\n </form>\n\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"showActions()\" [iconTitle]=\"'eo.shortcuts.action.task' | translate\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active || hasChanged(filterForm?.value)\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\n [plugins]=\"'object-details-tab.inbox' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;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-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}::ng-deep eo-form-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "directive", type: ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: DynamicListComponent, selector: "eo-dynamic-list", inputs: ["situation", "multiselect", "pickerTitle", "readonly", "formControlName", "formElementChanges", "filterFunction", "listObject", "autocompleteUrl"] }, { kind: "component", type: InboxDetailsComponent, selector: "eo-inbox-details", inputs: ["plugins", "emptyState", "applySelection", "item"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
|
|
28120
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InboxStateComponent, selector: "eo-inbox-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\" [eoShortcuts]=\"shortcuts\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\"\n [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconTitle]=\"'eo.list.filter' | translate\"\n [active]=\"hasChanged(filterForm?.value)\"\n (onToggle)=\"onFilterOverlayToggle($event)\">\n\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\"\n [filterForm]=\"filterForm\"\n [isFilterActive]=\"oFilter.active || hasChanged(filterForm?.value)\">\n\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\n\n <form [formGroup]=\"filterForm\">\n @if (processModelsListObject.entries.length) {\n <eo-form-input [label]=\"('eo.state.process.filter.labels.model' | translate)\">\n <eo-dynamic-list formControlName=\"modelFCN\" [pickerTitle]=\"'eo.state.process.filter.title' | translate\" [listObject]=\"processModelsListObject\"></eo-dynamic-list>\n </eo-form-input>\n }\n </form>\n\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"showActions()\" [iconTitle]=\"'eo.shortcuts.action.task' | translate\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active || hasChanged(filterForm?.value)\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\n [plugins]=\"'object-details-tab.inbox' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;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-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}::ng-deep eo-form-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "applySelection", "parseDmsParams", "reference", "emptyState", "params", "params2", "item", "item2"], outputs: ["hasContent"] }, { kind: "directive", type: ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: DynamicListComponent, selector: "eo-dynamic-list", inputs: ["situation", "multiselect", "pickerTitle", "readonly", "formControlName", "formElementChanges", "filterFunction", "listObject", "autocompleteUrl"] }, { kind: "component", type: InboxDetailsComponent, selector: "eo-inbox-details", inputs: ["plugins", "emptyState", "applySelection", "item"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }] }); }
|
|
28067
28121
|
};
|
|
28068
28122
|
InboxStateComponent = __decorate([
|
|
28069
28123
|
UntilDestroy()
|
|
@@ -28545,7 +28599,7 @@ let ObjectStateComponent = class ObjectStateComponent {
|
|
|
28545
28599
|
this.selection.clear();
|
|
28546
28600
|
}
|
|
28547
28601
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectStateComponent, deps: [{ token: i2$1.ActivatedRoute }, { token: PageTitleService }, { token: i1.SystemService }, { token: i1.DmsService }, { token: SelectionService }, { token: i1.TranslateService }, { token: ObjectStateService }, { token: ActionService }, { token: LocationService }, { token: PendingChangesService }, { token: i1.EventService }, { token: GridService }, { token: LayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28548
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ObjectStateComponent, selector: "eo-object-state", outputs: { onTermFilterChange: "onTermFilterChange" }, providers: [ObjectStateService], viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\" [iconTitle]=\"context.type.label\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || ' '}}</div>\n <div class=\"description\">{{context.description || ' '}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view *ngIf=\"cacheLayout\" [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree && (contextTree.length > 1 || (contextTree.length === 1 && contextTree[0].children.length && contextTree[0].name))\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\" [plugins]=\"'object-state-details-tab.object' | plugins\">\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.object' | plugins\">\n </eo-object-details>\n </ng-template>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box;flex:none}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:1;padding:var(--app-pane-padding) 0;display:inline-grid;min-height:0;min-width:0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{display:inline-block;max-width:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end;min-height:50px}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form input{background-color:transparent;border:0;outline:0}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: Error404Component, selector: "eo-error404" }, { kind: "component", type: ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: ["plugins", "context", "selectedItem", "seenItems", "frontPageData", "visible"], outputs: ["onTabChange"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }], animations: [panelLoadingAnimations] }); }
|
|
28602
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ObjectStateComponent, selector: "eo-object-state", outputs: { onTermFilterChange: "onTermFilterChange" }, providers: [ObjectStateService], viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\" [iconTitle]=\"context.type.label\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || ' '}}</div>\n <div class=\"description\">{{context.description || ' '}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view *ngIf=\"cacheLayout\" [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree && (contextTree.length > 1 || (contextTree.length === 1 && contextTree[0].children.length && contextTree[0].name))\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\" [plugins]=\"'object-state-details-tab.object' | plugins\">\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.object' | plugins\">\n </eo-object-details>\n </ng-template>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>\n", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box;flex:none}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:1;padding:var(--app-pane-padding) 0;display:inline-grid;min-height:0;min-width:0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{display:inline-block;max-width:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end;min-height:50px}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form input{background-color:transparent;border:0;outline:0}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "searchTerm", "enableCompare", "recyclebinTabs", "versionComponentTabs", "enableDiff", "enableSync", "cacheLayout", "applySelection", "parseDmsParams", "reference", "emptyState", "params", "params2", "item", "item2"], outputs: ["hasContent"] }, { kind: "component", type: TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: Error404Component, selector: "eo-error404" }, { kind: "component", type: ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: ["plugins", "context", "selectedItem", "seenItems", "frontPageData", "visible"], outputs: ["onTabChange"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: PluginPipe, name: "plugins" }], animations: [panelLoadingAnimations] }); }
|
|
28549
28603
|
};
|
|
28550
28604
|
ObjectStateComponent = __decorate([
|
|
28551
28605
|
UntilDestroy()
|